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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?collate@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::collate
PUBLIC	?ctype@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::ctype
PUBLIC	?monetary@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::monetary
PUBLIC	?numeric@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::numeric
PUBLIC	?time@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::time
PUBLIC	?messages@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::messages
PUBLIC	?all@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::all
PUBLIC	?none@?$_Locbase@H@std@@2HB			; std::_Locbase<int>::none
PUBLIC	?table_size@?$ctype@D@std@@2IB			; std::ctype<char>::table_size
PUBLIC	?skipws@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::skipws
PUBLIC	?unitbuf@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::unitbuf
PUBLIC	?uppercase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::uppercase
PUBLIC	?showbase@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showbase
PUBLIC	?showpoint@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpoint
PUBLIC	?showpos@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::showpos
PUBLIC	?left@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::left
PUBLIC	?right@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::right
PUBLIC	?internal@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::internal
PUBLIC	?dec@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::dec
PUBLIC	?oct@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::oct
PUBLIC	?hex@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::hex
PUBLIC	?scientific@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::scientific
PUBLIC	?fixed@?$_Iosb@H@std@@2W4_Fmtflags@12@B		; std::_Iosb<int>::fixed
PUBLIC	?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::boolalpha
PUBLIC	?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::_Stdio
PUBLIC	?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::adjustfield
PUBLIC	?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::basefield
PUBLIC	?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::floatfield
PUBLIC	?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::goodbit
PUBLIC	?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::eofbit
PUBLIC	?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::failbit
PUBLIC	?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::badbit
PUBLIC	?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::_Hardfail
PUBLIC	?in@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::in
PUBLIC	?out@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::out
PUBLIC	?ate@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::ate
PUBLIC	?app@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::app
PUBLIC	?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::trunc
PUBLIC	?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Nocreate
PUBLIC	?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Noreplace
PUBLIC	?binary@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::binary
PUBLIC	?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::beg
PUBLIC	?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::cur
PUBLIC	?end@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::end
PUBLIC	?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A	; gzAntiCheatMgr
_BSS	SEGMENT
?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A DD 01H DUP (?) ; gzAntiCheatMgr
_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
EXTRN	__stat64i32:PROC
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\sys\stat.inl
;	COMDAT _stat
_TEXT	SEGMENT
_stat	PROC						; COMDAT
; __Filename$ = ecx
; __Stat$ = eax

; 60   :     _STATIC_ASSERT( sizeof(struct stat) == sizeof(struct _stat64i32) );
; 61   :     return _stat64i32(_Filename,(struct _stat64i32 *)_Stat);

	push	eax
	push	ecx
	call	__stat64i32
	add	esp, 8

; 62   : }

	ret	0
_stat	ENDP
_TEXT	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	?GetBuffer@aStringData@@QAEPAXXZ		; aStringData::GetBuffer
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\astring.h
;	COMDAT ?GetBuffer@aStringData@@QAEPAXXZ
_TEXT	SEGMENT
?GetBuffer@aStringData@@QAEPAXXZ PROC			; aStringData::GetBuffer, COMDAT
; _this$ = ecx

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

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

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

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

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

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

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

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@GetString
	mov	eax, DWORD PTR [eax]
	ret	0
$LN3@GetString:
	xor	eax, eax
	ret	0
?GetString@aString@@QBEPBDXZ ENDP			; aString::GetString
_TEXT	ENDS
PUBLIC	??1aString@@UAE@XZ				; aString::~aString
EXTRN	??1aStringBase@@UAE@XZ:PROC			; aStringBase::~aStringBase
; Function compile flags: /Ogtpy
;	COMDAT ??1aString@@UAE@XZ
_TEXT	SEGMENT
??1aString@@UAE@XZ PROC					; aString::~aString, COMDAT
; _this$ = ecx
	jmp	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
??1aString@@UAE@XZ ENDP					; aString::~aString
_TEXT	ENDS
PUBLIC	??H@YA?AVaString@@ABV0@0@Z			; operator+
EXTRN	??YaString@@QAEAAV0@ABV0@@Z:PROC		; aString::operator+=
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??H@YA?AVaString@@ABV0@0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??H@YA?AVaString@@ABV0@0@Z$0
__ehfuncinfo$??H@YA?AVaString@@ABV0@0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??H@YA?AVaString@@ABV0@0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??H@YA?AVaString@@ABV0@0@Z
_TEXT	SEGMENT
$T64506 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_str1$ = 12						; size = 4
_str2$ = 16						; size = 4
??H@YA?AVaString@@ABV0@0@Z PROC				; operator+, COMDAT

; 195  : {

	push	-1
	push	__ehhandler$??H@YA?AVaString@@ABV0@0@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx

; 196  : 	aString ret = str1;

	mov	eax, DWORD PTR _str1$[esp+12]
	push	esi
	mov	DWORD PTR $T64506[esp+20], 0
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+16]
	push	eax
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	mov	DWORD PTR [esi], OFFSET ??_7aString@@6B@

; 197  : 	ret += str2;
; 198  : 	return ret;

	mov	ecx, DWORD PTR _str2$[esp+16]
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	mov	DWORD PTR $T64506[esp+24], 1
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=

; 199  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??H@YA?AVaString@@ABV0@0@Z$0:
	mov	eax, DWORD PTR $T64506[ebp]
	and	eax, 1
	je	$LN4@operator
	and	DWORD PTR $T64506[ebp], -2		; fffffffeH
	mov	ecx, DWORD PTR ___$ReturnUdt$[ebp-4]
	jmp	??1aString@@UAE@XZ
$LN4@operator:
	ret	0
__ehhandler$??H@YA?AVaString@@ABV0@0@Z:
	mov	eax, OFFSET __ehfuncinfo$??H@YA?AVaString@@ABV0@0@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??H@YA?AVaString@@ABV0@0@Z ENDP				; operator+
PUBLIC	??_7aWideString@@6B@				; aWideString::`vftable'
PUBLIC	??0aWideString@@QAE@ABV0@@Z			; aWideString::aWideString
PUBLIC	??_R4aWideString@@6B@				; aWideString::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVaWideString@@@8				; aWideString `RTTI Type Descriptor'
PUBLIC	??_R3aWideString@@8				; aWideString::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aWideString@@8				; aWideString::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@aWideString@@8			; aWideString::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?CharSize@aWideString@@UBEIXZ			; aWideString::CharSize
EXTRN	??_EaWideString@@UAEPAXI@Z:PROC			; aWideString::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@aWideString@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@aWideString@@8 DD FLAT:??_R0?AVaWideString@@@8 ; aWideString::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aWideString@@8
rdata$r	ENDS
;	COMDAT ??_R2aWideString@@8
rdata$r	SEGMENT
??_R2aWideString@@8 DD FLAT:??_R1A@?0A@EA@aWideString@@8 ; aWideString::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@aStringBase@@8
rdata$r	ENDS
;	COMDAT ??_R3aWideString@@8
rdata$r	SEGMENT
??_R3aWideString@@8 DD 00H				; aWideString::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2aWideString@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaWideString@@@8
_DATA	SEGMENT
??_R0?AVaWideString@@@8 DD FLAT:??_7type_info@@6B@	; aWideString `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaWideString@@', 00H
_DATA	ENDS
;	COMDAT ??_R4aWideString@@6B@
rdata$r	SEGMENT
??_R4aWideString@@6B@ DD 00H				; aWideString::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVaWideString@@@8
	DD	FLAT:??_R3aWideString@@8
rdata$r	ENDS
;	COMDAT ??_7aWideString@@6B@
CONST	SEGMENT
??_7aWideString@@6B@ DD FLAT:??_R4aWideString@@6B@	; aWideString::`vftable'
	DD	FLAT:??_EaWideString@@UAEPAXI@Z
	DD	FLAT:?CharSize@aWideString@@UBEIXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0aWideString@@QAE@ABV0@@Z
_TEXT	SEGMENT
_str$ = 8						; size = 4
??0aWideString@@QAE@ABV0@@Z PROC			; aWideString::aWideString, COMDAT
; _this$ = ecx

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

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

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

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

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

	mov	eax, DWORD PTR [ecx+4]
	test	eax, eax
	je	SHORT $LN3@GetString@2
	mov	eax, DWORD PTR [eax]
	ret	0
$LN3@GetString@2:
	xor	eax, eax
	ret	0
?GetString@aWideString@@QBEPB_WXZ ENDP			; aWideString::GetString
_TEXT	ENDS
PUBLIC	??1aWideString@@UAE@XZ				; aWideString::~aWideString
; Function compile flags: /Ogtpy
;	COMDAT ??1aWideString@@UAE@XZ
_TEXT	SEGMENT
??1aWideString@@UAE@XZ PROC				; aWideString::~aWideString, COMDAT
; _this$ = ecx
	jmp	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
??1aWideString@@UAE@XZ ENDP				; aWideString::~aWideString
_TEXT	ENDS
PUBLIC	_ceilf
EXTRN	_ceil:PROC
EXTRN	__fltused:DWORD
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\math.h
;	COMDAT _ceilf
_TEXT	SEGMENT
__X$ = 8						; size = 4
_ceilf	PROC						; COMDAT

; 397  :         {return ((float)ceil((double)_X)); }

	fld	DWORD PTR __X$[esp-4]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	_ceil
	add	esp, 8
	ret	0
_ceilf	ENDP
_TEXT	ENDS
PUBLIC	_floorf
EXTRN	_floor:PROC
; Function compile flags: /Ogtpy
;	COMDAT _floorf
_TEXT	SEGMENT
__X$ = 8						; size = 4
_floorf	PROC						; COMDAT

; 405  :         {return ((float)floor((double)_X)); }

	fld	DWORD PTR __X$[esp-4]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	_floor
	add	esp, 8
	ret	0
_floorf	ENDP
_TEXT	ENDS
PUBLIC	?ceil@@YAMM@Z					; ceil
; Function compile flags: /Ogtpy
;	COMDAT ?ceil@@YAMM@Z
_TEXT	SEGMENT
__X$ = 8						; size = 4
?ceil@@YAMM@Z PROC					; ceil, COMDAT

; 502  :         {return (ceilf(_X)); }

	fld	DWORD PTR __X$[esp-4]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	_ceil
	add	esp, 8
	ret	0
?ceil@@YAMM@Z ENDP					; ceil
_TEXT	ENDS
PUBLIC	?floor@@YAMM@Z					; floor
; Function compile flags: /Ogtpy
;	COMDAT ?floor@@YAMM@Z
_TEXT	SEGMENT
__X$ = 8						; size = 4
?floor@@YAMM@Z PROC					; floor, COMDAT

; 512  :         {return (floorf(_X)); }

	fld	DWORD PTR __X$[esp-4]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	_floor
	add	esp, 8
	ret	0
?floor@@YAMM@Z ENDP					; floor
_TEXT	ENDS
PUBLIC	?Skip@stEventSkippable@gzEventObjectDamage@@QAEXXZ ; gzEventObjectDamage::stEventSkippable::Skip
; Function compile flags: /Ogtpy
; File d:\source code\stgm\steventbase.h
;	COMDAT ?Skip@stEventSkippable@gzEventObjectDamage@@QAEXXZ
_TEXT	SEGMENT
?Skip@stEventSkippable@gzEventObjectDamage@@QAEXXZ PROC	; gzEventObjectDamage::stEventSkippable::Skip, COMDAT
; _this$ = ecx

; 222  : 	EVT_SKIPPABLE();

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

; 222  : 	EVT_SKIPPABLE();

	mov	BYTE PTR [ecx+40], 0
	ret	0
?Skip@gzEventObjectDamage@@QAEXXZ ENDP			; gzEventObjectDamage::Skip
_TEXT	ENDS
PUBLIC	??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@	; `string'
PUBLIC	?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z	; stSettingsBase::Load_Bool
EXTRN	?ToLong@aString@@QAEJXZ:PROC			; aString::ToLong
EXTRN	?Format@aString@@SA?AV1@PBDZZ:PROC		; aString::Format
EXTRN	??0aString@@QAE@H@Z:PROC			; aString::aString
;	COMDAT ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@ DB '"%s".%s', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$2
__ehfuncinfo$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stsetting.h
xdata$x	ENDS
;	COMDAT ?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z
_TEXT	SEGMENT
$T64576 = -36						; size = 8
$T64578 = -28						; size = 8
$T64577 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_section$ = 8						; size = 4
_item$ = 12						; size = 4
_default$ = 16						; size = 1
?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z PROC		; stSettingsBase::Load_Bool, COMDAT
; _this$ = ecx

; 38   : 	{

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	esi
	mov	esi, ecx

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

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

; 40   : 			return (this->m_cfg->GetData(aString::Format("\"%s\".%s", section, item), default).ToLong() == 0) ? false : true;

	movzx	eax, BYTE PTR _default$[esp+36]
	push	ebx
	push	eax
	lea	ecx, DWORD PTR $T64576[esp+48]
	call	??0aString@@QAE@H@Z			; aString::aString
	mov	ecx, DWORD PTR _item$[esp+40]
	mov	edx, DWORD PTR _section$[esp+40]
	push	ecx
	push	edx
	lea	eax, DWORD PTR $T64577[esp+52]
	push	OFFSET ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
	push	eax
	mov	DWORD PTR __$EHRec$[esp+68], 0
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	esi, DWORD PTR $T64576[esp+44]
	push	esi
	push	eax
	lea	eax, DWORD PTR $T64578[esp+52]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+64], 1
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+52], 2
	call	?ToLong@aString@@QAEJXZ			; aString::ToLong
	test	eax, eax
	lea	ecx, DWORD PTR $T64578[esp+44]
	setne	bl
	mov	BYTE PTR __$EHRec$[esp+52], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T64577[esp+44]
	mov	BYTE PTR __$EHRec$[esp+52], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+52], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	al, bl
	pop	ebx
	pop	esi

; 41   : 		return default;
; 42   : 	};

	mov	ecx, DWORD PTR __$EHRec$[esp+36]
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	12					; 0000000cH
$LN1@Load_Bool:
	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	mov	al, BYTE PTR _default$[esp+36]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 36					; 00000024H
	ret	12					; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$0:
	lea	ecx, DWORD PTR $T64576[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$1:
	lea	ecx, DWORD PTR $T64577[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$2:
	lea	ecx, DWORD PTR $T64578[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z:
	mov	eax, OFFSET __ehfuncinfo$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z ENDP		; stSettingsBase::Load_Bool
PUBLIC	?Load_Float@stSettingsBase@@IAEMPBD0M@Z		; stSettingsBase::Load_Float
EXTRN	?ToDouble@aString@@QAENXZ:PROC			; aString::ToDouble
EXTRN	??0aString@@QAE@N@Z:PROC			; aString::aString
;	COMDAT xdata$x
; File d:\source code\alib\include\astring.h
xdata$x	SEGMENT
__unwindtable$?Load_Float@stSettingsBase@@IAEMPBD0M@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBD0M@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBD0M@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?Load_Float@stSettingsBase@@IAEMPBD0M@Z$2
__ehfuncinfo$?Load_Float@stSettingsBase@@IAEMPBD0M@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?Load_Float@stSettingsBase@@IAEMPBD0M@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stsetting.h
xdata$x	ENDS
;	COMDAT ?Load_Float@stSettingsBase@@IAEMPBD0M@Z
_TEXT	SEGMENT
$T64604 = -36						; size = 8
$T64606 = -28						; size = 8
$T64605 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_section$ = 8						; size = 4
_item$ = 12						; size = 4
$T64603 = 16						; size = 4
_default$ = 16						; size = 4
?Load_Float@stSettingsBase@@IAEMPBD0M@Z PROC		; stSettingsBase::Load_Float, COMDAT
; _this$ = ecx

; 56   : 	{

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Load_Float@stSettingsBase@@IAEMPBD0M@Z
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	esi
	mov	esi, ecx

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

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

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

	fld	DWORD PTR _default$[esp+36]
	sub	esp, 8
	lea	ecx, DWORD PTR $T64604[esp+48]
	fstp	QWORD PTR [esp]
	call	??0aString@@QAE@N@Z			; aString::aString
	mov	eax, DWORD PTR _item$[esp+36]
	mov	ecx, DWORD PTR _section$[esp+36]
	push	eax
	push	ecx
	lea	edx, DWORD PTR $T64605[esp+48]
	push	OFFSET ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
	push	edx
	mov	DWORD PTR __$EHRec$[esp+64], 0
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	mov	ecx, DWORD PTR [esi+12]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+24]
	lea	esi, DWORD PTR $T64604[esp+40]
	push	esi
	push	eax
	lea	eax, DWORD PTR $T64606[esp+48]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+60], 1
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+48], 2
	call	?ToDouble@aString@@QAENXZ		; aString::ToDouble
	fstp	DWORD PTR $T64603[esp+36]
	lea	ecx, DWORD PTR $T64606[esp+40]
	mov	BYTE PTR __$EHRec$[esp+48], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T64605[esp+40]
	mov	BYTE PTR __$EHRec$[esp+48], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+48], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN1@Load_Float:

; 59   : 		return default;
; 60   : 	};

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

; 101  : 	stSettingsBase()

	push	ecx

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

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

; 104  : 		this->m_confModTime = 0;

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

; 105  : 		this->m_owner = NULL;

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

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

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

; 107  : 	};

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

; 108  : 	virtual void Delete() { };

	ret	0
?Delete@stSettingsBase@@UAEXXZ ENDP			; stSettingsBase::Delete
_TEXT	ENDS
PUBLIC	?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ	; gzPlayer::GetPlayerData
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stplayer.h
;	COMDAT ?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ
_TEXT	SEGMENT
?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ PROC	; gzPlayer::GetPlayerData, COMDAT
; _this$ = ecx

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

	mov	eax, DWORD PTR [ecx+76]
	ret	0
?GetPlayerData@gzPlayer@@QAEPAVnc_cPlayer@@XZ ENDP	; gzPlayer::GetPlayerData
_TEXT	ENDS
PUBLIC	?IsActive@gzPlayer@@QAE_NXZ			; gzPlayer::IsActive
; Function compile flags: /Ogtpy
;	COMDAT ?IsActive@gzPlayer@@QAE_NXZ
_TEXT	SEGMENT
?IsActive@gzPlayer@@QAE_NXZ PROC			; gzPlayer::IsActive, COMDAT
; _this$ = ecx

; 89   : 	inline bool IsActive() { return this->m_isActive; };

	mov	al, BYTE PTR [ecx+88]
	ret	0
?IsActive@gzPlayer@@QAE_NXZ ENDP			; gzPlayer::IsActive
_TEXT	ENDS
PUBLIC	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ	; gzPlayer::GetPlayerName
; Function compile flags: /Ogtpy
;	COMDAT ?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ
_TEXT	SEGMENT
$T64645 = -4						; size = 4
___$ReturnUdt$ = 8					; size = 4
?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ PROC	; gzPlayer::GetPlayerName, COMDAT
; _this$ = ecx

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

	push	ecx
	push	esi
	mov	esi, DWORD PTR ___$ReturnUdt$[esp+4]
	add	ecx, 80					; 00000050H
	push	ecx
	mov	ecx, esi
	mov	DWORD PTR $T64645[esp+12], 0
	call	??0aStringBase@@QAE@ABV0@@Z		; aStringBase::aStringBase
	mov	DWORD PTR [esi], OFFSET ??_7aWideString@@6B@
	mov	eax, esi
	pop	esi
	pop	ecx
	ret	4
?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ENDP	; gzPlayer::GetPlayerName
_TEXT	ENDS
PUBLIC	??_C@_0BD@GJEMOLKA@VariationAllowance?$AA@	; `string'
PUBLIC	__real@3f8ccccd
PUBLIC	??_C@_0L@NEHKGNF@RateOfFire?$AA@		; `string'
PUBLIC	??_C@_07ECEMPDJM@General?$AA@			; `string'
PUBLIC	??_C@_08BLOJFPBE@AmmoLive?$AA@			; `string'
PUBLIC	__real@41200000
PUBLIC	??_C@_08GNCNJAMD@Spectate?$AA@			; `string'
PUBLIC	??_C@_06CKGENIKG@Enable?$AA@			; `string'
PUBLIC	??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@	; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	??_C@_0O@HDNEHCAJ@AntiCheat?4ini?$AA@		; `string'
PUBLIC	?Load@gzSettingsAntiCheatClass@@UAEXXZ		; gzSettingsAntiCheatClass::Load
EXTRN	??0aTextConfig@@QAE@ABVaString@@_N@Z:PROC	; aTextConfig::aTextConfig
EXTRN	??0aString@@QAE@PBD@Z:PROC			; aString::aString
EXTRN	??2@YAPAXI@Z:PROC				; operator new
EXTRN	?m_setOwner@@YAXPBDI0@Z:PROC			; m_setOwner
;	COMDAT ??_C@_0BD@GJEMOLKA@VariationAllowance?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_0BD@GJEMOLKA@VariationAllowance?$AA@ DB 'VariationAllowance', 00H ; `string'
CONST	ENDS
;	COMDAT __real@3f8ccccd
CONST	SEGMENT
__real@3f8ccccd DD 03f8ccccdr			; 1.1
CONST	ENDS
;	COMDAT ??_C@_0L@NEHKGNF@RateOfFire?$AA@
CONST	SEGMENT
??_C@_0L@NEHKGNF@RateOfFire?$AA@ DB 'RateOfFire', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_07ECEMPDJM@General?$AA@
CONST	SEGMENT
??_C@_07ECEMPDJM@General?$AA@ DB 'General', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_08BLOJFPBE@AmmoLive?$AA@
CONST	SEGMENT
??_C@_08BLOJFPBE@AmmoLive?$AA@ DB 'AmmoLive', 00H	; `string'
CONST	ENDS
;	COMDAT __real@41200000
CONST	SEGMENT
__real@41200000 DD 041200000r			; 10
CONST	ENDS
;	COMDAT ??_C@_08GNCNJAMD@Spectate?$AA@
CONST	SEGMENT
??_C@_08GNCNJAMD@Spectate?$AA@ DB 'Spectate', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_06CKGENIKG@Enable?$AA@
CONST	SEGMENT
??_C@_06CKGENIKG@Enable?$AA@ DB 'Enable', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
CONST	SEGMENT
??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@ DB '.\stanticheat.cpp', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@HDNEHCAJ@AntiCheat?4ini?$AA@
CONST	SEGMENT
??_C@_0O@HDNEHCAJ@AntiCheat?4ini?$AA@ DB 'AntiCheat.ini', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Load@gzSettingsAntiCheatClass@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzSettingsAntiCheatClass@@UAEXXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load@gzSettingsAntiCheatClass@@UAEXXZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzSettingsAntiCheatClass@@UAEXXZ$1
__ehfuncinfo$?Load@gzSettingsAntiCheatClass@@UAEXXZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?Load@gzSettingsAntiCheatClass@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
xdata$x	ENDS
;	COMDAT ?Load@gzSettingsAntiCheatClass@@UAEXXZ
_TEXT	SEGMENT
$T64668 = -76						; size = 4
$T64655 = -72						; size = 4
$T64656 = -68						; size = 8
_attrib$ = -60						; size = 48
__$EHRec$ = -12						; size = 12
?Load@gzSettingsAntiCheatClass@@UAEXXZ PROC		; gzSettingsAntiCheatClass::Load, COMDAT
; _this$ = ecx

; 8    : {

	push	-1
	push	__ehhandler$?Load@gzSettingsAntiCheatClass@@UAEXXZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 64					; 00000040H
	push	ebx
	push	esi

; 9    : 	struct stat attrib;
; 10   : 	stat("AntiCheat.ini", &attrib);

	lea	eax, DWORD PTR _attrib$[esp+84]
	push	eax
	xor	ebx, ebx
	push	OFFSET ??_C@_0O@HDNEHCAJ@AntiCheat?4ini?$AA@
	mov	esi, ecx
	mov	DWORD PTR $T64668[esp+92], ebx
	call	__stat64i32

; 11   : 	if (this->m_confModTime != attrib.st_mtime)

	mov	ecx, DWORD PTR [esi+16]
	mov	eax, DWORD PTR _attrib$[esp+124]
	add	esp, 8
	cmp	ecx, eax
	mov	ecx, DWORD PTR _attrib$[esp+120]
	jne	SHORT $LN21@Load
	mov	edx, DWORD PTR [esi+20]
	cmp	edx, ecx
	je	$LN1@Load
$LN21@Load:
	push	edi

; 12   : 	{
; 13   : 		this->m_confModTime = attrib.st_mtime;
; 14   : 
; 15   : 		this->m_cfg = new aTextConfig("AntiCheat.ini");

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	15					; 0000000fH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	mov	DWORD PTR [esi+16], eax
	mov	DWORD PTR [esi+20], ecx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	52					; 00000034H
	call	??2@YAPAXI@Z				; operator new
	mov	edi, eax
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T64655[esp+88], edi
	test	edi, edi
	mov	DWORD PTR __$EHRec$[esp+96], 0
	je	SHORT $LN4@Load
	push	OFFSET ??_C@_0O@HDNEHCAJ@AntiCheat?4ini?$AA@
	lea	ecx, DWORD PTR $T64656[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	0
	lea	eax, DWORD PTR $T64656[esp+92]
	mov	ebx, 1
	push	eax
	mov	ecx, edi
	mov	BYTE PTR __$EHRec$[esp+104], 1
	mov	DWORD PTR $T64668[esp+96], ebx
	call	??0aTextConfig@@QAE@ABVaString@@_N@Z	; aTextConfig::aTextConfig
	jmp	SHORT $LN5@Load
$LN4@Load:
	xor	eax, eax
$LN5@Load:
	test	bl, 1
	mov	DWORD PTR [esi+12], eax
	mov	DWORD PTR __$EHRec$[esp+96], -1
	pop	edi
	je	SHORT $LN15@Load
	lea	ecx, DWORD PTR $T64656[esp+84]
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN15@Load:

; 16   : 		this->m_enableSpectate       = this->Load_Bool("Spectate", "Enable", false);

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

; 17   : 		this->m_ammoLive             = this->Load_Float("General", "AmmoLive", 10.0f);

	fld	DWORD PTR __real@41200000
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_08BLOJFPBE@AmmoLive?$AA@
	push	OFFSET ??_C@_07ECEMPDJM@General?$AA@
	mov	ecx, esi
	mov	BYTE PTR [esi+24], al
	call	?Load_Float@stSettingsBase@@IAEMPBD0M@Z	; stSettingsBase::Load_Float
	fstp	DWORD PTR [esi+28]

; 18   : 		this->RoF.Enable             = this->Load_Bool("RateOfFire", "Enable", false);

	push	0
	push	OFFSET ??_C@_06CKGENIKG@Enable?$AA@
	push	OFFSET ??_C@_0L@NEHKGNF@RateOfFire?$AA@
	mov	ecx, esi
	call	?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z ; stSettingsBase::Load_Bool

; 19   : 		this->RoF.VariationAllowance = this->Load_Float("RateOfFire", "VariationAllowance", 1.1f);

	fld	DWORD PTR __real@3f8ccccd
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET ??_C@_0BD@GJEMOLKA@VariationAllowance?$AA@
	push	OFFSET ??_C@_0L@NEHKGNF@RateOfFire?$AA@
	mov	ecx, esi
	mov	BYTE PTR [esi+32], al
	call	?Load_Float@stSettingsBase@@IAEMPBD0M@Z	; stSettingsBase::Load_Float
	fstp	DWORD PTR [esi+36]

; 20   : 		delete this->m_cfg;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	20					; 00000014H
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+12]
	add	esp, 12					; 0000000cH
	test	ecx, ecx
	je	SHORT $LN8@Load
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN8@Load:

; 21   : 		this->m_cfg = NULL;

	mov	DWORD PTR [esi+12], 0
$LN1@Load:

; 22   : 	}
; 23   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+84]
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 76					; 0000004cH
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Load@gzSettingsAntiCheatClass@@UAEXXZ$0:
	mov	eax, DWORD PTR $T64655[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__unwindfunclet$?Load@gzSettingsAntiCheatClass@@UAEXXZ$1:
	mov	eax, DWORD PTR $T64668[ebp]
	and	eax, 1
	je	$LN14@Load
	and	DWORD PTR $T64668[ebp], -2		; fffffffeH
	lea	ecx, DWORD PTR $T64656[ebp]
	jmp	??1aString@@UAE@XZ
$LN14@Load:
	ret	0
__ehhandler$?Load@gzSettingsAntiCheatClass@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Load@gzSettingsAntiCheatClass@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load@gzSettingsAntiCheatClass@@UAEXXZ ENDP		; gzSettingsAntiCheatClass::Load
PUBLIC	??_7gzAntiCheatBaseClass@@6B@			; gzAntiCheatBaseClass::`vftable'
PUBLIC	??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z	; gzAntiCheatBaseClass::gzAntiCheatBaseClass
PUBLIC	??_R4gzAntiCheatBaseClass@@6B@			; gzAntiCheatBaseClass::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzAntiCheatBaseClass@@@8		; gzAntiCheatBaseClass `RTTI Type Descriptor'
PUBLIC	??_R3gzAntiCheatBaseClass@@8			; gzAntiCheatBaseClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzAntiCheatBaseClass@@8			; gzAntiCheatBaseClass::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzAntiCheatBaseClass@@8		; gzAntiCheatBaseClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@EventHandler@@8			; EventHandler::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVEventHandler@@@8			; EventHandler `RTTI Type Descriptor'
PUBLIC	??_R3EventHandler@@8				; EventHandler::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2EventHandler@@8				; EventHandler::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzBase@@8				; gzBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVgzBase@@@8				; gzBase `RTTI Type Descriptor'
PUBLIC	??_R3gzBase@@8					; gzBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzBase@@8					; gzBase::`RTTI Base Class Array'
PUBLIC	?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
PUBLIC	?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ	; gzAntiCheatBaseClass::WriteLog
EXTRN	??1EventHandler@@UAE@XZ:PROC			; EventHandler::~EventHandler
EXTRN	?RegisterEvent@EventHandler@@QAEXHH@Z:PROC	; EventHandler::RegisterEvent
EXTRN	??0EventHandler@@QAE@XZ:PROC			; EventHandler::EventHandler
EXTRN	??_EgzAntiCheatBaseClass@@UAEPAXI@Z:PROC	; gzAntiCheatBaseClass::`vector deleting destructor'
EXTRN	?SetDeletePending@gzBase@@UAEXXZ:PROC		; gzBase::SetDeletePending
;	COMDAT ??_R2gzBase@@8
rdata$r	SEGMENT
??_R2gzBase@@8 DD FLAT:??_R1A@?0A@EA@gzBase@@8		; gzBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3gzBase@@8
rdata$r	SEGMENT
??_R3gzBase@@8 DD 00H					; gzBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzBase@@@8
_DATA	SEGMENT
??_R0?AVgzBase@@@8 DD FLAT:??_7type_info@@6B@		; gzBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@gzBase@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzBase@@8 DD FLAT:??_R0?AVgzBase@@@8	; gzBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R2EventHandler@@8
rdata$r	SEGMENT
??_R2EventHandler@@8 DD FLAT:??_R1A@?0A@EA@EventHandler@@8 ; EventHandler::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3EventHandler@@8
rdata$r	SEGMENT
??_R3EventHandler@@8 DD 00H				; EventHandler::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2EventHandler@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVEventHandler@@@8
_DATA	SEGMENT
??_R0?AVEventHandler@@@8 DD FLAT:??_7type_info@@6B@	; EventHandler `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVEventHandler@@', 00H
_DATA	ENDS
;	COMDAT ??_R1A@?0A@EA@EventHandler@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@EventHandler@@8 DD FLAT:??_R0?AVEventHandler@@@8 ; EventHandler::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3EventHandler@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@gzAntiCheatBaseClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzAntiCheatBaseClass@@8 DD FLAT:??_R0?AVgzAntiCheatBaseClass@@@8 ; gzAntiCheatBaseClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzAntiCheatBaseClass@@8
rdata$r	ENDS
;	COMDAT ??_R2gzAntiCheatBaseClass@@8
rdata$r	SEGMENT
??_R2gzAntiCheatBaseClass@@8 DD FLAT:??_R1A@?0A@EA@gzAntiCheatBaseClass@@8 ; gzAntiCheatBaseClass::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzAntiCheatBaseClass@@8
rdata$r	SEGMENT
??_R3gzAntiCheatBaseClass@@8 DD 00H			; gzAntiCheatBaseClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2gzAntiCheatBaseClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzAntiCheatBaseClass@@@8
_DATA	SEGMENT
??_R0?AVgzAntiCheatBaseClass@@@8 DD FLAT:??_7type_info@@6B@ ; gzAntiCheatBaseClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzAntiCheatBaseClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzAntiCheatBaseClass@@6B@
rdata$r	SEGMENT
??_R4gzAntiCheatBaseClass@@6B@ DD 00H			; gzAntiCheatBaseClass::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzAntiCheatBaseClass@@@8
	DD	FLAT:??_R3gzAntiCheatBaseClass@@8
rdata$r	ENDS
;	COMDAT ??_7gzAntiCheatBaseClass@@6B@
CONST	SEGMENT
??_7gzAntiCheatBaseClass@@6B@ DD FLAT:??_R4gzAntiCheatBaseClass@@6B@ ; gzAntiCheatBaseClass::`vftable'
	DD	FLAT:??_EgzAntiCheatBaseClass@@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
	DD	FLAT:?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z$0
__ehfuncinfo$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_owner$ = 8						; size = 4
??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z PROC	; gzAntiCheatBaseClass::gzAntiCheatBaseClass, COMDAT
; _this$ = ecx

; 29   : {

	push	-1
	push	__ehhandler$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z
	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	??0EventHandler@@QAE@XZ			; EventHandler::EventHandler

; 30   : 	this->RegisterEvent(EVT_GAME_LEVEL_LOADED);

	push	0
	push	4096					; 00001000H
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+36], 0
	mov	DWORD PTR [esi], OFFSET ??_7gzAntiCheatBaseClass@@6B@
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 31   : 	this->RegisterEvent(EVT_GAME_THINK);

	push	0
	push	4098					; 00001002H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 32   : 	this->RegisterEvent(EVT_PLAYER_RAWDAMAGE);

	push	0
	push	8200					; 00002008H
	mov	ecx, esi
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 33   : 
; 34   : 	this->m_owner = owner;

	mov	eax, DWORD PTR _owner$[esp+16]

; 35   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	DWORD PTR [esi+36], eax
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__ehhandler$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z ENDP	; gzAntiCheatBaseClass::gzAntiCheatBaseClass
; 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	??1gzAntiCheatBaseClass@@UAE@XZ			; gzAntiCheatBaseClass::~gzAntiCheatBaseClass
; Function compile flags: /Ogtpy
;	COMDAT ??1gzAntiCheatBaseClass@@UAE@XZ
_TEXT	SEGMENT
??1gzAntiCheatBaseClass@@UAE@XZ PROC			; gzAntiCheatBaseClass::~gzAntiCheatBaseClass, COMDAT
; _this$ = ecx
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
??1gzAntiCheatBaseClass@@UAE@XZ ENDP			; gzAntiCheatBaseClass::~gzAntiCheatBaseClass
_TEXT	ENDS
PUBLIC	??_C@_02EMFKHFLK@?$CFX?$AA@			; `string'
PUBLIC	??_C@_01OHGJGJJP@?$FL?$AA@			; `string'
PUBLIC	??_C@_02PBFOLPKM@?$FN?5?$AA@			; `string'
PUBLIC	??_C@_01MCMALHOG@a?$AA@				; `string'
PUBLIC	??_C@_0BF@BBCBMIHC@cheat_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@ ; `string'
EXTRN	??1aFile@@UAE@XZ:PROC				; aFile::~aFile
EXTRN	?Write@aFile@@QAEIABVaString@@I@Z:PROC		; aFile::Write
EXTRN	?Format@aDateTime@@QAE?AVaString@@PBD@Z:PROC	; aDateTime::Format
EXTRN	?Format_Args@aString@@QAEXPBDPAD@Z:PROC		; aString::Format_Args
EXTRN	??0aString@@QAE@XZ:PROC				; aString::aString
EXTRN	?IsOpened@aFile@@UAE_NXZ:PROC			; aFile::IsOpened
EXTRN	??0aFile@@QAE@ABVaString@@PBD@Z:PROC		; aFile::aFile
EXTRN	?GetMonth@aDateTime@@QAEIXZ:PROC		; aDateTime::GetMonth
EXTRN	?GetDay@aDateTime@@QAEIXZ:PROC			; aDateTime::GetDay
EXTRN	?GetYear@aDateTime@@QAEIXZ:PROC			; aDateTime::GetYear
EXTRN	?Now@aDateTime@@SA?AV1@XZ:PROC			; aDateTime::Now
;	COMDAT ??_C@_02EMFKHFLK@?$CFX?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_02EMFKHFLK@?$CFX?$AA@ DB '%X', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_01OHGJGJJP@?$FL?$AA@
CONST	SEGMENT
??_C@_01OHGJGJJP@?$FL?$AA@ DB '[', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_02PBFOLPKM@?$FN?5?$AA@
CONST	SEGMENT
??_C@_02PBFOLPKM@?$FN?5?$AA@ DB '] ', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_01MCMALHOG@a?$AA@
CONST	SEGMENT
??_C@_01MCMALHOG@a?$AA@ DB 'a', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@BBCBMIHC@cheat_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@
CONST	SEGMENT
??_C@_0BF@BBCBMIHC@cheat_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@ DB 'cheat_%d-%d-'
	DB	'%04d.txt', 00H				; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ DD 019930522H
	DD	0aH
	DD	FLAT:__unwindtable$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$1
	DD	02H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$2
	DD	03H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$3
	DD	04H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$4
	DD	05H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$5
	DD	06H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$6
	DD	07H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$7
	DD	08H
	DD	FLAT:__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$8
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
xdata$x	ENDS
;	COMDAT ?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
_TEXT	SEGMENT
_fmtMsg$57464 = -124					; size = 8
$T64801 = -116						; size = 8
$T64799 = -108						; size = 8
$T64798 = -100						; size = 8
$T64804 = -92						; size = 8
$T64803 = -84						; size = 8
$T64802 = -76						; size = 8
$T64800 = -68						; size = 8
_logFile$ = -60						; size = 20
_now$ = -40						; size = 24
__$EHRec$ = -12						; size = 12
_this$ = 8						; size = 4
_msg$ = 12						; size = 4
?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ PROC		; gzAntiCheatBaseClass::WriteLog, COMDAT

; 37   : {

	push	ebp
	mov	ebp, esp
	and	esp, -8					; fffffff8H
	push	-1
	push	__ehhandler$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 116				; 00000074H

; 38   : 	aDateTime now = aDateTime::Now();

	lea	eax, DWORD PTR _now$[esp+128]
	push	eax
	call	?Now@aDateTime@@SA?AV1@XZ		; aDateTime::Now
	add	esp, 4

; 39   : 	aFile logFile(aString::Format("cheat_%d-%d-%04d.txt", now.GetMonth(), now.GetDay(), now.GetYear()), "a");

	lea	ecx, DWORD PTR _now$[esp+128]
	call	?GetYear@aDateTime@@QAEIXZ		; aDateTime::GetYear
	push	eax
	lea	ecx, DWORD PTR _now$[esp+132]
	call	?GetDay@aDateTime@@QAEIXZ		; aDateTime::GetDay
	push	eax
	lea	ecx, DWORD PTR _now$[esp+136]
	call	?GetMonth@aDateTime@@QAEIXZ		; aDateTime::GetMonth
	push	eax
	lea	ecx, DWORD PTR $T64798[esp+140]
	push	OFFSET ??_C@_0BF@BBCBMIHC@cheat_?$CFd?9?$CFd?9?$CF04d?4txt?$AA@
	push	ecx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 20					; 00000014H
	push	OFFSET ??_C@_01MCMALHOG@a?$AA@
	push	eax
	lea	ecx, DWORD PTR _logFile$[esp+136]
	mov	DWORD PTR __$EHRec$[esp+144], 0
	call	??0aFile@@QAE@ABVaString@@PBD@Z		; aFile::aFile
	lea	ecx, DWORD PTR $T64798[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 2
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 40   : 	if (logFile.IsOpened())

	lea	ecx, DWORD PTR _logFile$[esp+128]
	call	?IsOpened@aFile@@UAE_NXZ		; aFile::IsOpened
	test	al, al
	je	$LN1@WriteLog

; 41   : 	{
; 42   : 		// Formsg string
; 43   : 		va_list args;
; 44   : 		va_start(args, msg);
; 45   : 		aString fmtMsg;

	lea	ecx, DWORD PTR _fmtMsg$57464[esp+128]
	call	??0aString@@QAE@XZ			; aString::aString

; 46   : 		fmtMsg.Format_Args(msg, args);

	mov	eax, DWORD PTR _msg$[ebp]
	lea	edx, DWORD PTR _msg$[ebp+4]
	push	edx
	push	eax
	lea	ecx, DWORD PTR _fmtMsg$57464[esp+136]
	mov	BYTE PTR __$EHRec$[esp+144], 3
	call	?Format_Args@aString@@QAEXPBDPAD@Z	; aString::Format_Args

; 47   : 		va_end(args);
; 48   : 
; 49   : 		logFile.Write("[" + now.Format("%X") + "] " + fmtMsg);

	push	OFFSET ??_C@_02PBFOLPKM@?$FN?5?$AA@
	lea	ecx, DWORD PTR $T64799[esp+132]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	OFFSET ??_C@_01OHGJGJJP@?$FL?$AA@
	lea	ecx, DWORD PTR $T64801[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 4
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	OFFSET ??_C@_02EMFKHFLK@?$CFX?$AA@
	lea	ecx, DWORD PTR $T64800[esp+132]
	push	ecx
	lea	ecx, DWORD PTR _now$[esp+136]
	mov	BYTE PTR __$EHRec$[esp+144], 5
	call	?Format@aDateTime@@QAE?AVaString@@PBD@Z	; aDateTime::Format
	push	eax
	lea	edx, DWORD PTR $T64801[esp+132]
	push	edx
	lea	eax, DWORD PTR $T64802[esp+136]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+148], 6
	call	??H@YA?AVaString@@ABV0@0@Z		; operator+
	lea	ecx, DWORD PTR $T64799[esp+140]
	push	ecx
	push	eax
	lea	edx, DWORD PTR $T64803[esp+148]
	push	edx
	mov	BYTE PTR __$EHRec$[esp+160], 7
	call	??H@YA?AVaString@@ABV0@0@Z		; operator+
	lea	ecx, DWORD PTR _fmtMsg$57464[esp+152]
	push	ecx
	push	eax
	lea	edx, DWORD PTR $T64804[esp+160]
	push	edx
	mov	BYTE PTR __$EHRec$[esp+172], 8
	call	??H@YA?AVaString@@ABV0@0@Z		; operator+
	add	esp, 36					; 00000024H
	push	0
	push	eax
	lea	ecx, DWORD PTR _logFile$[esp+136]
	mov	BYTE PTR __$EHRec$[esp+144], 9
	call	?Write@aFile@@QAEIABVaString@@I@Z	; aFile::Write
	lea	ecx, DWORD PTR $T64804[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 8
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T64803[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 7
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T64802[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 6
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T64800[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 5
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T64801[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 4
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T64799[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 3
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 50   : 	}

	lea	ecx, DWORD PTR _fmtMsg$57464[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 2
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN1@WriteLog:

; 51   : }

	lea	ecx, DWORD PTR _logFile$[esp+128]
	mov	DWORD PTR __$EHRec$[esp+136], -1
	call	??1aFile@@UAE@XZ			; aFile::~aFile
	mov	ecx, DWORD PTR __$EHRec$[esp+128]
	mov	DWORD PTR fs:0, ecx
	mov	esp, ebp
	pop	ebp
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$0:
	lea	ecx, DWORD PTR $T64798[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$1:
	lea	ecx, DWORD PTR _logFile$[ebp]
	jmp	??1aFile@@UAE@XZ			; aFile::~aFile
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$2:
	lea	ecx, DWORD PTR _fmtMsg$57464[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$3:
	lea	ecx, DWORD PTR $T64799[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$4:
	lea	ecx, DWORD PTR $T64801[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$5:
	lea	ecx, DWORD PTR $T64800[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$6:
	lea	ecx, DWORD PTR $T64802[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$7:
	lea	ecx, DWORD PTR $T64803[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ$8:
	lea	ecx, DWORD PTR $T64804[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ:
	mov	eax, OFFSET __ehfuncinfo$?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ ENDP		; gzAntiCheatBaseClass::WriteLog
PUBLIC	?Level_Loaded@gzAntiCheatSpec@@UAEXXZ		; gzAntiCheatSpec::Level_Loaded
; Function compile flags: /Ogtpy
;	COMDAT ?Level_Loaded@gzAntiCheatSpec@@UAEXXZ
_TEXT	SEGMENT
?Level_Loaded@gzAntiCheatSpec@@UAEXXZ PROC		; gzAntiCheatSpec::Level_Loaded, COMDAT
; _this$ = ecx

; 71   : 	this->Delete();

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+8]
	jmp	edx
?Level_Loaded@gzAntiCheatSpec@@UAEXXZ ENDP		; gzAntiCheatSpec::Level_Loaded
_TEXT	ENDS
PUBLIC	?Object_Created@gzAntiCheatSpec@@UAEXAAVgzEventObjectCreate@@@Z ; gzAntiCheatSpec::Object_Created
; Function compile flags: /Ogtpy
;	COMDAT ?Object_Created@gzAntiCheatSpec@@UAEXAAVgzEventObjectCreate@@@Z
_TEXT	SEGMENT
_RGHData$57568 = 8					; size = 4
_evt$ = 8						; size = 4
?Object_Created@gzAntiCheatSpec@@UAEXAAVgzEventObjectCreate@@@Z PROC ; gzAntiCheatSpec::Object_Created, COMDAT
; _this$ = ecx

; 232  : 	if (!gzAntiCheatMgr->m_settings->m_enableSpectate)

	mov	eax, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	push	edi
	mov	edi, ecx
	mov	ecx, DWORD PTR [eax+36]
	cmp	BYTE PTR [ecx+24], 0
	je	SHORT $LN1@Object_Cre
	push	esi

; 233  : 		return;
; 234  : 
; 235  : 	if (evt.m_obj->As_SmartGameObj())

	mov	esi, DWORD PTR _evt$[esp+4]
	mov	ecx, DWORD PTR [esi+24]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+44]
	call	eax
	test	eax, eax
	je	SHORT $LN7@Object_Cre

; 236  : 	{
; 237  : 		gzRGHSpecDataStruct *RGHData = new gzRGHSpecDataStruct;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	237					; 000000edH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	8
	call	??2@YAPAXI@Z				; operator new
	mov	DWORD PTR _RGHData$57568[esp+20], eax

; 238  : 		RGHData->lastSeen = 0;

	mov	DWORD PTR [eax+4], 0

; 239  : 		RGHData->objId = evt.m_obj->NetworkID;

	mov	ecx, DWORD PTR [esi+24]
	mov	edx, DWORD PTR [ecx+12]
	mov	eax, DWORD PTR _RGHData$57568[esp+20]
	mov	DWORD PTR [eax], edx

; 240  : 		this->m_data.Add(RGHData);

	mov	edx, DWORD PTR [edi+48]
	mov	edx, DWORD PTR [edx+12]
	lea	ecx, DWORD PTR [edi+48]
	add	esp, 16					; 00000010H
	lea	eax, DWORD PTR _RGHData$57568[esp+4]
	push	eax
	call	edx
$LN7@Object_Cre:
	pop	esi
$LN1@Object_Cre:
	pop	edi

; 241  : 	}
; 242  : }

	ret	4
?Object_Created@gzAntiCheatSpec@@UAEXAAVgzEventObjectCreate@@@Z ENDP ; gzAntiCheatSpec::Object_Created
_TEXT	ENDS
PUBLIC	?Level_Loaded@gzAntiCheatWeapons@@UAEXXZ	; gzAntiCheatWeapons::Level_Loaded
; Function compile flags: /Ogtpy
;	COMDAT ?Level_Loaded@gzAntiCheatWeapons@@UAEXXZ
_TEXT	SEGMENT
?Level_Loaded@gzAntiCheatWeapons@@UAEXXZ PROC		; gzAntiCheatWeapons::Level_Loaded, COMDAT
; _this$ = ecx

; 266  : 	this->Delete();

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+8]
	jmp	edx
?Level_Loaded@gzAntiCheatWeapons@@UAEXXZ ENDP		; gzAntiCheatWeapons::Level_Loaded
_TEXT	ENDS
PUBLIC	??_7gzEventBase@@6B@				; gzEventBase::`vftable'
PUBLIC	??0gzEventBase@@QAE@ABV0@@Z			; gzEventBase::gzEventBase
PUBLIC	??_R4gzEventBase@@6B@				; gzEventBase::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzEventBase@@@8				; gzEventBase `RTTI Type Descriptor'
PUBLIC	??_R3gzEventBase@@8				; gzEventBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzEventBase@@8				; gzEventBase::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzEventBase@@8			; gzEventBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?CanContinue@gzEventBase@@UAE_NXZ		; gzEventBase::CanContinue
PUBLIC	?Skippable@gzEventBase@@UAE_NXZ			; gzEventBase::Skippable
;	COMDAT ??_R1A@?0A@EA@gzEventBase@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzEventBase@@8 DD FLAT:??_R0?AVgzEventBase@@@8 ; gzEventBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzEventBase@@8
rdata$r	ENDS
;	COMDAT ??_R2gzEventBase@@8
rdata$r	SEGMENT
??_R2gzEventBase@@8 DD FLAT:??_R1A@?0A@EA@gzEventBase@@8 ; gzEventBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3gzEventBase@@8
rdata$r	SEGMENT
??_R3gzEventBase@@8 DD 00H				; gzEventBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2gzEventBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzEventBase@@@8
_DATA	SEGMENT
??_R0?AVgzEventBase@@@8 DD FLAT:??_7type_info@@6B@	; gzEventBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzEventBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzEventBase@@6B@
rdata$r	SEGMENT
??_R4gzEventBase@@6B@ DD 00H				; gzEventBase::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzEventBase@@@8
	DD	FLAT:??_R3gzEventBase@@8
rdata$r	ENDS
;	COMDAT ??_7gzEventBase@@6B@
CONST	SEGMENT
??_7gzEventBase@@6B@ DD FLAT:??_R4gzEventBase@@6B@	; gzEventBase::`vftable'
	DD	FLAT:?CanContinue@gzEventBase@@UAE_NXZ
	DD	FLAT:?Skippable@gzEventBase@@UAE_NXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzEventBase@@QAE@ABV0@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0gzEventBase@@QAE@ABV0@@Z PROC			; gzEventBase::gzEventBase, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	ecx, DWORD PTR ___that$[esp-4]
	mov	DWORD PTR [eax], OFFSET ??_7gzEventBase@@6B@
	fld	QWORD PTR [ecx+8]
	fstp	QWORD PTR [eax+8]
	mov	edx, DWORD PTR [ecx+16]
	mov	DWORD PTR [eax+16], edx
	mov	ecx, DWORD PTR [ecx+20]
	mov	DWORD PTR [eax+20], ecx
	ret	4
??0gzEventBase@@QAE@ABV0@@Z ENDP			; gzEventBase::gzEventBase
; Function compile flags: /Ogtpy
; File d:\source code\stgm\steventbase.h
_TEXT	ENDS
;	COMDAT ?CanContinue@gzEventBase@@UAE_NXZ
_TEXT	SEGMENT
?CanContinue@gzEventBase@@UAE_NXZ PROC			; gzEventBase::CanContinue, COMDAT
; _this$ = ecx

; 117  : 		return true;

	mov	al, 1

; 118  : 	};

	ret	0
?CanContinue@gzEventBase@@UAE_NXZ ENDP			; gzEventBase::CanContinue
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Skippable@gzEventBase@@UAE_NXZ
_TEXT	SEGMENT
?Skippable@gzEventBase@@UAE_NXZ PROC			; gzEventBase::Skippable, COMDAT
; _this$ = ecx

; 121  : 		return false;

	xor	al, al

; 122  : 	};

	ret	0
?Skippable@gzEventBase@@UAE_NXZ ENDP			; gzEventBase::Skippable
_TEXT	ENDS
PUBLIC	__real@3a83126f
PUBLIC	__real@4f800000
PUBLIC	?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::IsAmmoExpired
EXTRN	?SystemTime@@3AAKA:DWORD			; SystemTime
EXTRN	__imp__GetTickCount@0:PROC
;	COMDAT __real@3a83126f
; File d:\source code\stgm\stanticheat.cpp
CONST	SEGMENT
__real@3a83126f DD 03a83126fr			; 0.001
CONST	ENDS
;	COMDAT __real@4f800000
CONST	SEGMENT
__real@4f800000 DD 04f800000r			; 4.29497e+009
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z
_TEXT	SEGMENT
tv146 = -4						; size = 4
_weapon$ = 8						; size = 4
?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z PROC ; gzAntiCheatWeapons::IsAmmoExpired, COMDAT
; _this$ = ecx

; 739  : {

	push	ecx

; 740  : 	if ((((float)(GetTickCount() - SystemTime) / 1000.0f) - weapon->lastSelectTime) > gzAntiCheatMgr->m_settings->m_ammoLive)

	call	DWORD PTR __imp__GetTickCount@0
	mov	ecx, DWORD PTR ?SystemTime@@3AAKA	; SystemTime
	sub	eax, DWORD PTR [ecx]
	test	eax, eax
	mov	DWORD PTR tv146[esp+4], eax
	fild	DWORD PTR tv146[esp+4]
	jge	SHORT $LN4@IsAmmoExpi
	fadd	DWORD PTR __real@4f800000
$LN4@IsAmmoExpi:
	fmul	DWORD PTR __real@3a83126f
	mov	edx, DWORD PTR _weapon$[esp]
	mov	eax, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	mov	ecx, DWORD PTR [eax+36]
	fsub	DWORD PTR [edx+20]
	fcomp	DWORD PTR [ecx+28]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN1@IsAmmoExpi

; 741  : 		return true;

	mov	al, 1

; 743  : }

	pop	ecx
	ret	4
$LN1@IsAmmoExpi:

; 742  : 	return false;

	xor	al, al

; 743  : }

	pop	ecx
	ret	4
?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z ENDP ; gzAntiCheatWeapons::IsAmmoExpired
_TEXT	ENDS
PUBLIC	__real@00000000
PUBLIC	?AddHitCount@gzAntiCheatWeapons@@QAEXPAUgzRoFAmmoDataStruct@@VgzEventObjectDamage@@@Z ; gzAntiCheatWeapons::AddHitCount
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?AddHitCount@gzAntiCheatWeapons@@QAEXPAUgzRoFAmmoDataStruct@@VgzEventObjectDamage@@@Z
_TEXT	SEGMENT
_ammo$ = 8						; size = 4
_evt$ = 12						; size = 48
?AddHitCount@gzAntiCheatWeapons@@QAEXPAUgzRoFAmmoDataStruct@@VgzEventObjectDamage@@@Z PROC ; gzAntiCheatWeapons::AddHitCount, COMDAT
; _this$ = ecx

; 746  : 	// Repair
; 747  : 	if (evt.m_warhead == 15 && evt.m_damage < 0.0f)

	cmp	DWORD PTR _evt$[esp+32], 15		; 0000000fH
	push	edi
	mov	edi, DWORD PTR _ammo$[esp]
	jne	SHORT $LN1@AddHitCoun
	fldz
	fcomp	DWORD PTR _evt$[esp+32]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $LN1@AddHitCoun
	push	esi

; 748  : 	{
; 749  : 		// C4
; 750  : 		if (evt.m_defender && evt.m_defender->definition->Get_Class_ID() == 0x3006)

	mov	esi, DWORD PTR _evt$[esp+32]
	test	esi, esi
	je	SHORT $LN6@AddHitCoun
	mov	ecx, DWORD PTR [esi+1724]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+32]
	call	edx
	cmp	eax, 12294				; 00003006H
	jne	SHORT $LN6@AddHitCoun

; 751  : 		{
; 752  : 			nc_C4GameObj *c4 = gzStatic_Cast(nc_C4GameObj, evt.m_defender);
; 753  : 
; 754  : 			// Attached to an object and is not building because buildings are controlled server-side
; 755  : 			if (c4->Attached.Reference && c4->Attached.Reference->obj->As_BuildingGameObj() == NULL)

	cmp	DWORD PTR [esi+2012], 0
	je	SHORT $LN6@AddHitCoun
	mov	eax, DWORD PTR [esi+2012]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+64]
	call	eax
	test	eax, eax
	jne	SHORT $LN6@AddHitCoun

; 756  : 			{
; 757  : 				// Add an addition allowed hit because if C4 is attached to an object other building,
; 758  : 				// it repair the attached object too cause an another hit!
; 759  : 				ammo->additionMaxHit += 1;

	add	DWORD PTR [edi+32], 1
$LN6@AddHitCoun:
	pop	esi
$LN1@AddHitCoun:

; 760  : 			}
; 761  : 		}
; 762  : 	}
; 763  : 	ammo->hitCount++;

	add	DWORD PTR [edi+16], 1
	pop	edi

; 764  : }

	ret	52					; 00000034H
?AddHitCount@gzAntiCheatWeapons@@QAEXPAUgzRoFAmmoDataStruct@@VgzEventObjectDamage@@@Z ENDP ; gzAntiCheatWeapons::AddHitCount
_TEXT	ENDS
PUBLIC	?Delete@gzAntiCheatHitLog@@UAEXXZ		; gzAntiCheatHitLog::Delete
; Function compile flags: /Ogtpy
;	COMDAT ?Delete@gzAntiCheatHitLog@@UAEXXZ
_TEXT	SEGMENT
?Delete@gzAntiCheatHitLog@@UAEXXZ PROC			; gzAntiCheatHitLog::Delete, COMDAT
; _this$ = ecx

; 802  : 	this->m_data.Clear();

	mov	eax, DWORD PTR [ecx+44]
	mov	edx, DWORD PTR [eax+4]
	add	ecx, 44					; 0000002cH
	jmp	edx
?Delete@gzAntiCheatHitLog@@UAEXXZ ENDP			; gzAntiCheatHitLog::Delete
_TEXT	ENDS
PUBLIC	?Level_Loaded@gzAntiCheatHitLog@@UAEXXZ		; gzAntiCheatHitLog::Level_Loaded
; Function compile flags: /Ogtpy
;	COMDAT ?Level_Loaded@gzAntiCheatHitLog@@UAEXXZ
_TEXT	SEGMENT
?Level_Loaded@gzAntiCheatHitLog@@UAEXXZ PROC		; gzAntiCheatHitLog::Level_Loaded, COMDAT
; _this$ = ecx

; 806  : 	this->Delete();

	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+8]
	jmp	edx
?Level_Loaded@gzAntiCheatHitLog@@UAEXXZ ENDP		; gzAntiCheatHitLog::Level_Loaded
_TEXT	ENDS
PUBLIC	?Player_RawDamage@gzAntiCheatHitLog@@UAEXAAVgzEventObjectDamage@@@Z ; gzAntiCheatHitLog::Player_RawDamage
; Function compile flags: /Ogtpy
;	COMDAT ?Player_RawDamage@gzAntiCheatHitLog@@UAEXAAVgzEventObjectDamage@@@Z
_TEXT	SEGMENT
_log$57990 = -12					; size = 12
_evt$ = 8						; size = 4
?Player_RawDamage@gzAntiCheatHitLog@@UAEXAAVgzEventObjectDamage@@@Z PROC ; gzAntiCheatHitLog::Player_RawDamage, COMDAT
; _this$ = ecx

; 825  : {

	sub	esp, 12					; 0000000cH
	push	ebx
	push	esi

; 826  : 	if (evt.m_attacker->As_SoldierGameObj() && evt.m_attacker->As_SoldierGameObj()->Player == this->m_owner->GetPlayerData())

	mov	esi, DWORD PTR _evt$[esp+16]
	mov	ebx, ecx
	mov	ecx, DWORD PTR [esi+24]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+68]
	call	edx
	test	eax, eax
	je	SHORT $LN1@Player_Raw
	mov	eax, DWORD PTR [ebx+36]
	mov	ecx, DWORD PTR [esi+24]
	mov	edx, DWORD PTR [ecx]
	push	edi
	mov	edi, DWORD PTR [eax+76]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	cmp	DWORD PTR [eax+2400], edi
	pop	edi
	jne	SHORT $LN1@Player_Raw

; 827  : 	{
; 828  : 		if (!evt.m_defender)

	cmp	DWORD PTR [esi+28], 0
	je	SHORT $LN1@Player_Raw

; 829  : 			return;
; 830  : 
; 831  : 		// Log soldier and vehicle only
; 832  : 		if (!evt.m_defender->As_SoldierGameObj() && !evt.m_defender->As_VehicleGameObj())

	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	test	eax, eax
	jne	SHORT $LN2@Player_Raw
	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+40]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Player_Raw
$LN2@Player_Raw:

; 833  : 			return;
; 834  : 
; 835  : 		if (evt.m_damage > 0.0f)

	fldz
	fcomp	DWORD PTR [esi+32]
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN1@Player_Raw

; 836  : 		{
; 837  : 			gzHitLogStruct log;
; 838  : 			log.m_obj = evt.m_defender->NetworkID;

	mov	ecx, DWORD PTR [esi+28]

; 839  : 			log.m_damage = evt.m_damage;

	fld	DWORD PTR [esi+32]
	mov	edx, DWORD PTR [ecx+12]
	fstp	DWORD PTR _log$57990[esp+20]
	mov	DWORD PTR _log$57990[esp+28], edx

; 840  : 			log.m_time = GetTickCount();

	call	DWORD PTR __imp__GetTickCount@0
	mov	DWORD PTR _log$57990[esp+24], eax

; 841  : 			this->m_data.Add(log);

	mov	eax, DWORD PTR [ebx+44]
	mov	eax, DWORD PTR [eax+12]
	lea	ecx, DWORD PTR [ebx+44]
	lea	edx, DWORD PTR _log$57990[esp+20]
	push	edx
	call	eax
$LN1@Player_Raw:
	pop	esi
	pop	ebx

; 842  : 		}
; 843  : 	}
; 844  : }

	add	esp, 12					; 0000000cH
	ret	4
?Player_RawDamage@gzAntiCheatHitLog@@UAEXAAVgzEventObjectDamage@@@Z ENDP ; gzAntiCheatHitLog::Player_RawDamage
_TEXT	ENDS
PUBLIC	??_7gzSettingsAntiCheatClass@@6B@		; gzSettingsAntiCheatClass::`vftable'
PUBLIC	??0gzSettingsAntiCheatClass@@QAE@XZ		; gzSettingsAntiCheatClass::gzSettingsAntiCheatClass
PUBLIC	??_R4gzSettingsAntiCheatClass@@6B@		; gzSettingsAntiCheatClass::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzSettingsAntiCheatClass@@@8		; gzSettingsAntiCheatClass `RTTI Type Descriptor'
PUBLIC	??_R3gzSettingsAntiCheatClass@@8		; gzSettingsAntiCheatClass::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzSettingsAntiCheatClass@@8		; gzSettingsAntiCheatClass::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzSettingsAntiCheatClass@@8	; gzSettingsAntiCheatClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
;	COMDAT ??_R1A@?0A@EA@gzSettingsAntiCheatClass@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzSettingsAntiCheatClass@@8 DD FLAT:??_R0?AVgzSettingsAntiCheatClass@@@8 ; gzSettingsAntiCheatClass::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzSettingsAntiCheatClass@@8
rdata$r	ENDS
;	COMDAT ??_R2gzSettingsAntiCheatClass@@8
rdata$r	SEGMENT
??_R2gzSettingsAntiCheatClass@@8 DD FLAT:??_R1A@?0A@EA@gzSettingsAntiCheatClass@@8 ; gzSettingsAntiCheatClass::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@stSettingsBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzSettingsAntiCheatClass@@8
rdata$r	SEGMENT
??_R3gzSettingsAntiCheatClass@@8 DD 00H			; gzSettingsAntiCheatClass::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2gzSettingsAntiCheatClass@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzSettingsAntiCheatClass@@@8
_DATA	SEGMENT
??_R0?AVgzSettingsAntiCheatClass@@@8 DD FLAT:??_7type_info@@6B@ ; gzSettingsAntiCheatClass `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzSettingsAntiCheatClass@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzSettingsAntiCheatClass@@6B@
rdata$r	SEGMENT
??_R4gzSettingsAntiCheatClass@@6B@ DD 00H		; gzSettingsAntiCheatClass::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzSettingsAntiCheatClass@@@8
	DD	FLAT:??_R3gzSettingsAntiCheatClass@@8
rdata$r	ENDS
;	COMDAT ??_7gzSettingsAntiCheatClass@@6B@
CONST	SEGMENT
??_7gzSettingsAntiCheatClass@@6B@ DD FLAT:??_R4gzSettingsAntiCheatClass@@6B@ ; gzSettingsAntiCheatClass::`vftable'
	DD	FLAT:?Delete@stSettingsBase@@UAEXXZ
	DD	FLAT:?Load@gzSettingsAntiCheatClass@@UAEXXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzSettingsAntiCheatClass@@QAE@XZ
_TEXT	SEGMENT
$T64907 = -4						; size = 4
??0gzSettingsAntiCheatClass@@QAE@XZ PROC		; gzSettingsAntiCheatClass::gzSettingsAntiCheatClass, COMDAT
; _this$ = ecx
	push	ecx
	xor	eax, eax
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi+12], eax
	mov	DWORD PTR [esi+16], eax
	mov	DWORD PTR [esi+20], eax
	mov	DWORD PTR [esi+8], eax
	mov	DWORD PTR [esi], OFFSET ??_7stSettingsBase@@6B@
	mov	ecx, DWORD PTR ?gzSettingsMgr@@3PAVgzSettingsManager@@A ; gzSettingsMgr
	add	ecx, 36					; 00000024H
	mov	DWORD PTR $T64907[esp+8], esi
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+12]
	lea	edx, DWORD PTR $T64907[esp+8]
	push	edx
	call	eax
	mov	DWORD PTR [esi], OFFSET ??_7gzSettingsAntiCheatClass@@6B@
	mov	eax, esi
	pop	esi
	pop	ecx
	ret	0
??0gzSettingsAntiCheatClass@@QAE@XZ ENDP		; gzSettingsAntiCheatClass::gzSettingsAntiCheatClass
_TEXT	ENDS
PUBLIC	?Delete@gzAntiCheatManager@@UAEXXZ		; gzAntiCheatManager::Delete
; Function compile flags: /Ogtpy
;	COMDAT ?Delete@gzAntiCheatManager@@UAEXXZ
_TEXT	SEGMENT
?Delete@gzAntiCheatManager@@UAEXXZ PROC			; gzAntiCheatManager::Delete, COMDAT
; _this$ = ecx

; 876  : }

	ret	0
?Delete@gzAntiCheatManager@@UAEXXZ ENDP			; gzAntiCheatManager::Delete
_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
$T64914 = -12						; size = 12
_this$ = 8						; size = 4
$T64920 = 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 $T64920[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T64914[esp+20]
	mov	DWORD PTR $T64920[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T64914[esp+20]
	push	ecx
	mov	DWORD PTR $T64914[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
$T64926 = -12						; size = 12
$T64931 = 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 $T64931[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T64926[esp+20]
	mov	DWORD PTR $T64931[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T64926[esp+20]
	push	ecx
	mov	DWORD PTR $T64926[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	?Count@?$nc_DynamicVectorClass@PAVnc_WeaponClass@@@@QAEHXZ ; nc_DynamicVectorClass<nc_WeaponClass *>::Count
; Function compile flags: /Ogtpy
; File d:\source code\fds lib\new\fds_vector.h
;	COMDAT ?Count@?$nc_DynamicVectorClass@PAVnc_WeaponClass@@@@QAEHXZ
_TEXT	SEGMENT
?Count@?$nc_DynamicVectorClass@PAVnc_WeaponClass@@@@QAEHXZ PROC ; nc_DynamicVectorClass<nc_WeaponClass *>::Count, COMDAT
; _this$ = ecx

; 375  : 		return ActiveCount;

	mov	eax, DWORD PTR [ecx+16]

; 376  : 	}

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

; 341  : 		return Vector[index];

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

; 342  : 	}

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

; 27   : 	aVector()

	mov	eax, ecx

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

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

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

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@PAUgzRGHSpecDataStruct@@@@QBEIXZ ENDP	; aVector<gzRGHSpecDataStruct *>::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@PAUgzRGHSpecDataStruct@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@PAUgzRGHSpecDataStruct@@@@UAEXXZ PROC	; aVector<gzRGHSpecDataStruct *>::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@PAUgzRGHSpecDataStruct@@@@UAEXXZ ENDP	; aVector<gzRGHSpecDataStruct *>::Clear
_TEXT	ENDS
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
EXTRN	_memcpy:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@?$aVector@PAUgzRGHSpecDataStruct@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@PAUgzRGHSpecDataStruct@@@@UAE_NI@Z PROC ; aVector<gzRGHSpecDataStruct *>::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@PAUgzRGHSpecDataStruct@@@@UAE_NI@Z ENDP ; aVector<gzRGHSpecDataStruct *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@PAUgzRGHSpecDataStruct@@@@UAEXABQAUgzRGHSpecDataStruct@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@PAUgzRGHSpecDataStruct@@@@UAEXABQAUgzRGHSpecDataStruct@@@Z PROC ; aVector<gzRGHSpecDataStruct *>::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@PAUgzRGHSpecDataStruct@@@@UAEXABQAUgzRGHSpecDataStruct@@@Z ENDP ; aVector<gzRGHSpecDataStruct *>::Add
_TEXT	ENDS
EXTRN	_memmove:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Insert@?$aVector@PAUgzRGHSpecDataStruct@@@@UAEXIABQAUgzRGHSpecDataStruct@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@PAUgzRGHSpecDataStruct@@@@UAEXIABQAUgzRGHSpecDataStruct@@@Z PROC ; aVector<gzRGHSpecDataStruct *>::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@PAUgzRGHSpecDataStruct@@@@UAEXIABQAUgzRGHSpecDataStruct@@@Z ENDP ; aVector<gzRGHSpecDataStruct *>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@PAUgzRGHSpecDataStruct@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@PAUgzRGHSpecDataStruct@@@@UAEXI@Z PROC ; aVector<gzRGHSpecDataStruct *>::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@PAUgzRGHSpecDataStruct@@@@UAEXI@Z ENDP ; aVector<gzRGHSpecDataStruct *>::Delete
_TEXT	ENDS
PUBLIC	??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@	; aVector<gzRoFAmmoDataStruct *>::`vftable'
PUBLIC	??0?$aVector@PAUgzRoFAmmoDataStruct@@@@QAE@XZ	; aVector<gzRoFAmmoDataStruct *>::aVector<gzRoFAmmoDataStruct *>
PUBLIC	??_R4?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@	; aVector<gzRoFAmmoDataStruct *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aVector@PAUgzRoFAmmoDataStruct@@@@@8	; aVector<gzRoFAmmoDataStruct *> `RTTI Type Descriptor'
PUBLIC	??_R3?$aVector@PAUgzRoFAmmoDataStruct@@@@8	; aVector<gzRoFAmmoDataStruct *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aVector@PAUgzRoFAmmoDataStruct@@@@8	; aVector<gzRoFAmmoDataStruct *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aVector@PAUgzRoFAmmoDataStruct@@@@8 ; aVector<gzRoFAmmoDataStruct *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Clear@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXXZ ; aVector<gzRoFAmmoDataStruct *>::Clear
PUBLIC	?Resize@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAE_NI@Z ; aVector<gzRoFAmmoDataStruct *>::Resize
PUBLIC	?Add@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXABQAUgzRoFAmmoDataStruct@@@Z ; aVector<gzRoFAmmoDataStruct *>::Add
PUBLIC	?Insert@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXIABQAUgzRoFAmmoDataStruct@@@Z ; aVector<gzRoFAmmoDataStruct *>::Insert
PUBLIC	?Delete@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXI@Z ; aVector<gzRoFAmmoDataStruct *>::Delete
EXTRN	??_E?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEPAXI@Z:PROC ; aVector<gzRoFAmmoDataStruct *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aVector@PAUgzRoFAmmoDataStruct@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aVector@PAUgzRoFAmmoDataStruct@@@@8 DD FLAT:??_R0?AV?$aVector@PAUgzRoFAmmoDataStruct@@@@@8 ; aVector<gzRoFAmmoDataStruct *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aVector@PAUgzRoFAmmoDataStruct@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aVector@PAUgzRoFAmmoDataStruct@@@@8
rdata$r	SEGMENT
??_R2?$aVector@PAUgzRoFAmmoDataStruct@@@@8 DD FLAT:??_R1A@?0A@EA@?$aVector@PAUgzRoFAmmoDataStruct@@@@8 ; aVector<gzRoFAmmoDataStruct *>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aVector@PAUgzRoFAmmoDataStruct@@@@8
rdata$r	SEGMENT
??_R3?$aVector@PAUgzRoFAmmoDataStruct@@@@8 DD 00H	; aVector<gzRoFAmmoDataStruct *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aVector@PAUgzRoFAmmoDataStruct@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aVector@PAUgzRoFAmmoDataStruct@@@@@8
_DATA	SEGMENT
??_R0?AV?$aVector@PAUgzRoFAmmoDataStruct@@@@@8 DD FLAT:??_7type_info@@6B@ ; aVector<gzRoFAmmoDataStruct *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aVector@PAUgzRoFAmmoDataStruct@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
rdata$r	SEGMENT
??_R4?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@ DD 00H	; aVector<gzRoFAmmoDataStruct *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aVector@PAUgzRoFAmmoDataStruct@@@@@8
	DD	FLAT:??_R3?$aVector@PAUgzRoFAmmoDataStruct@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
CONST	SEGMENT
??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@ DD FLAT:??_R4?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@ ; aVector<gzRoFAmmoDataStruct *>::`vftable'
	DD	FLAT:??_E?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXABQAUgzRoFAmmoDataStruct@@@Z
	DD	FLAT:?Insert@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXIABQAUgzRoFAmmoDataStruct@@@Z
	DD	FLAT:?Delete@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$aVector@PAUgzRoFAmmoDataStruct@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aVector@PAUgzRoFAmmoDataStruct@@@@QAE@XZ PROC	; aVector<gzRoFAmmoDataStruct *>::aVector<gzRoFAmmoDataStruct *>, COMDAT
; _this$ = ecx

; 27   : 	aVector()

	mov	eax, ecx

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

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

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

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@PAUgzRoFAmmoDataStruct@@@@QBEIXZ ENDP	; aVector<gzRoFAmmoDataStruct *>::Count
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Clear@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXXZ PROC	; aVector<gzRoFAmmoDataStruct *>::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@PAUgzRoFAmmoDataStruct@@@@UAEXXZ ENDP	; aVector<gzRoFAmmoDataStruct *>::Clear
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Resize@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAE_NI@Z PROC ; aVector<gzRoFAmmoDataStruct *>::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@PAUgzRoFAmmoDataStruct@@@@UAE_NI@Z ENDP ; aVector<gzRoFAmmoDataStruct *>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXABQAUgzRoFAmmoDataStruct@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXABQAUgzRoFAmmoDataStruct@@@Z PROC ; aVector<gzRoFAmmoDataStruct *>::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@PAUgzRoFAmmoDataStruct@@@@UAEXABQAUgzRoFAmmoDataStruct@@@Z ENDP ; aVector<gzRoFAmmoDataStruct *>::Add
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Insert@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXIABQAUgzRoFAmmoDataStruct@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXIABQAUgzRoFAmmoDataStruct@@@Z PROC ; aVector<gzRoFAmmoDataStruct *>::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@PAUgzRoFAmmoDataStruct@@@@UAEXIABQAUgzRoFAmmoDataStruct@@@Z ENDP ; aVector<gzRoFAmmoDataStruct *>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEXI@Z PROC ; aVector<gzRoFAmmoDataStruct *>::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@PAUgzRoFAmmoDataStruct@@@@UAEXI@Z ENDP ; aVector<gzRoFAmmoDataStruct *>::Delete
_TEXT	ENDS
PUBLIC	??_7?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@	; aVector<gzRoFWeaponDataStruct *>::`vftable'
PUBLIC	??0?$aVector@PAUgzRoFWeaponDataStruct@@@@QAE@XZ	; aVector<gzRoFWeaponDataStruct *>::aVector<gzRoFWeaponDataStruct *>
PUBLIC	??_R4?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@	; aVector<gzRoFWeaponDataStruct *>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aVector@PAUgzRoFWeaponDataStruct@@@@@8 ; aVector<gzRoFWeaponDataStruct *> `RTTI Type Descriptor'
PUBLIC	??_R3?$aVector@PAUgzRoFWeaponDataStruct@@@@8	; aVector<gzRoFWeaponDataStruct *>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aVector@PAUgzRoFWeaponDataStruct@@@@8	; aVector<gzRoFWeaponDataStruct *>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aVector@PAUgzRoFWeaponDataStruct@@@@8 ; aVector<gzRoFWeaponDataStruct *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Clear@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXXZ ; aVector<gzRoFWeaponDataStruct *>::Clear
PUBLIC	?Resize@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAE_NI@Z ; aVector<gzRoFWeaponDataStruct *>::Resize
PUBLIC	?Add@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXABQAUgzRoFWeaponDataStruct@@@Z ; aVector<gzRoFWeaponDataStruct *>::Add
PUBLIC	?Insert@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXIABQAUgzRoFWeaponDataStruct@@@Z ; aVector<gzRoFWeaponDataStruct *>::Insert
PUBLIC	?Delete@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXI@Z ; aVector<gzRoFWeaponDataStruct *>::Delete
EXTRN	??_E?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEPAXI@Z:PROC ; aVector<gzRoFWeaponDataStruct *>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aVector@PAUgzRoFWeaponDataStruct@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aVector@PAUgzRoFWeaponDataStruct@@@@8 DD FLAT:??_R0?AV?$aVector@PAUgzRoFWeaponDataStruct@@@@@8 ; aVector<gzRoFWeaponDataStruct *>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aVector@PAUgzRoFWeaponDataStruct@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aVector@PAUgzRoFWeaponDataStruct@@@@8
rdata$r	SEGMENT
??_R2?$aVector@PAUgzRoFWeaponDataStruct@@@@8 DD FLAT:??_R1A@?0A@EA@?$aVector@PAUgzRoFWeaponDataStruct@@@@8 ; aVector<gzRoFWeaponDataStruct *>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aVector@PAUgzRoFWeaponDataStruct@@@@8
rdata$r	SEGMENT
??_R3?$aVector@PAUgzRoFWeaponDataStruct@@@@8 DD 00H	; aVector<gzRoFWeaponDataStruct *>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aVector@PAUgzRoFWeaponDataStruct@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aVector@PAUgzRoFWeaponDataStruct@@@@@8
_DATA	SEGMENT
??_R0?AV?$aVector@PAUgzRoFWeaponDataStruct@@@@@8 DD FLAT:??_7type_info@@6B@ ; aVector<gzRoFWeaponDataStruct *> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aVector@PAUgzRoFWeaponDataStruct@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@
rdata$r	SEGMENT
??_R4?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@ DD 00H	; aVector<gzRoFWeaponDataStruct *>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aVector@PAUgzRoFWeaponDataStruct@@@@@8
	DD	FLAT:??_R3?$aVector@PAUgzRoFWeaponDataStruct@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@
CONST	SEGMENT
??_7?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@ DD FLAT:??_R4?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@ ; aVector<gzRoFWeaponDataStruct *>::`vftable'
	DD	FLAT:??_E?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXABQAUgzRoFWeaponDataStruct@@@Z
	DD	FLAT:?Insert@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXIABQAUgzRoFWeaponDataStruct@@@Z
	DD	FLAT:?Delete@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$aVector@PAUgzRoFWeaponDataStruct@@@@QAE@XZ
_TEXT	SEGMENT
??0?$aVector@PAUgzRoFWeaponDataStruct@@@@QAE@XZ PROC	; aVector<gzRoFWeaponDataStruct *>::aVector<gzRoFWeaponDataStruct *>, COMDAT
; _this$ = ecx

; 27   : 	aVector()

	mov	eax, ecx

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

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

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

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

; 67   : 	{

	push	esi
	push	edi
	mov	esi, ecx

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

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

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

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

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

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

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

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

; 79   : 	};

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

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

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

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

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	90					; 0000005aH
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	xor	ecx, ecx
	mov	eax, 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@3

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

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

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

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

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

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

; 107  : 	{

	push	esi
	mov	esi, ecx

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

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

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

	mov	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@3:
	pop	esi

; 110  : 	}

	ret	4
?Add@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXABQAUgzRoFWeaponDataStruct@@@Z ENDP ; aVector<gzRoFWeaponDataStruct *>::Add
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Insert@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXIABQAUgzRoFWeaponDataStruct@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXIABQAUgzRoFWeaponDataStruct@@@Z PROC ; aVector<gzRoFWeaponDataStruct *>::Insert, COMDAT
; _this$ = ecx

; 112  : 	{

	push	esi
	mov	esi, ecx

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

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

; 114  : 			this->Add(obj);

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

; 119  : 		}
; 120  : 	}

	ret	8
$LN3@Insert@3:

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

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

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

	mov	ecx, DWORD PTR [esi+12]
	mov	eax, ecx
	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@3:
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
?Insert@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXIABQAUgzRoFWeaponDataStruct@@@Z ENDP ; aVector<gzRoFWeaponDataStruct *>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEXI@Z PROC ; aVector<gzRoFWeaponDataStruct *>::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@3

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

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

; 126  : 			this->Clear();

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

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete@3:

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

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

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

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

; 132  : 		}
; 133  : 	}

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

; 27   : 	aVector()

	mov	eax, ecx

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

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

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

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

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

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

; 67   : 	{

	push	esi
	push	edi
	mov	esi, ecx

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

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

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

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

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

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

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

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

; 79   : 	};

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

; 81   : 	{

	push	esi

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

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

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

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

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

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

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

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

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

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

; 94   : 					delete[] this->m_vector;

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

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

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

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

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

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
$LN3@Resize@4:

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

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

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

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

; 107  : 	{

	push	esi
	mov	esi, ecx

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

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

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

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

; 110  : 	}

	ret	4
?Add@?$aVector@UgzHitLogStruct@@@@UAEXABUgzHitLogStruct@@@Z ENDP ; aVector<gzHitLogStruct>::Add
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Insert@?$aVector@UgzHitLogStruct@@@@UAEXIABUgzHitLogStruct@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@UgzHitLogStruct@@@@UAEXIABUgzHitLogStruct@@@Z PROC ; aVector<gzHitLogStruct>::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@4

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

; 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@4

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

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

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

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

; 119  : 		}
; 120  : 	}

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

; 122  : 	{

	push	esi
	mov	esi, ecx

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

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

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

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

; 126  : 			this->Clear();

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

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete@4:

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

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

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

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

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

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

; 132  : 		}
; 133  : 	}

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

; 27   : 	aVector()

	mov	eax, ecx

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

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

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

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

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

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

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

	test	edi, edi
	jbe	SHORT $LN3@Resize@5
	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, 8
	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@5

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

	lea	ecx, DWORD PTR [edi*8]
	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@5:

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

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

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

; 103  : 		}
; 104  : 		return true;

	mov	al, 1
	pop	esi

; 105  : 	}

	ret	4
?Resize@?$aVector@UgzRoFHitDataStruct@@@@UAE_NI@Z ENDP	; aVector<gzRoFHitDataStruct>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@UgzRoFHitDataStruct@@@@UAEXABUgzRoFHitDataStruct@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@UgzRoFHitDataStruct@@@@UAEXABUgzRoFHitDataStruct@@@Z PROC ; aVector<gzRoFHitDataStruct>::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@5

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

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

; 110  : 	}

	ret	4
?Add@?$aVector@UgzRoFHitDataStruct@@@@UAEXABUgzRoFHitDataStruct@@@Z ENDP ; aVector<gzRoFHitDataStruct>::Add
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Insert@?$aVector@UgzRoFHitDataStruct@@@@UAEXIABUgzRoFHitDataStruct@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@UgzRoFHitDataStruct@@@@UAEXIABUgzRoFHitDataStruct@@@Z PROC ; aVector<gzRoFHitDataStruct>::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@5

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

; 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@5

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

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

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

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

; 119  : 		}
; 120  : 	}

	ret	8
?Insert@?$aVector@UgzRoFHitDataStruct@@@@UAEXIABUgzRoFHitDataStruct@@@Z ENDP ; aVector<gzRoFHitDataStruct>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@UgzRoFHitDataStruct@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@UgzRoFHitDataStruct@@@@UAEXI@Z PROC	; aVector<gzRoFHitDataStruct>::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@5

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

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

; 126  : 			this->Clear();

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

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete@5:

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

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

; 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
	add	eax, eax
	lea	ecx, DWORD PTR [ecx+edx*8]
	add	eax, eax
	push	eax
	lea	edx, DWORD PTR [ecx+8]
	push	edx
	push	ecx
	call	_memmove
	add	esp, 12					; 0000000cH
$LN1@Delete@5:

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

; 132  : 		}
; 133  : 	}

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

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

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

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GaString@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GaString@@UAEPAXI@Z PROC				; aString::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_GaString@@UAEPAXI@Z ENDP				; aString::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GaWideString@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GaWideString@@UAEPAXI@Z PROC				; aWideString::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@3:
	mov	eax, esi
	pop	esi
	ret	4
??_GaWideString@@UAEPAXI@Z ENDP				; aWideString::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GgzAntiCheatBaseClass@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzAntiCheatBaseClass@@UAEPAXI@Z PROC		; gzAntiCheatBaseClass::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@4:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzAntiCheatBaseClass@@UAEPAXI@Z ENDP		; gzAntiCheatBaseClass::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Delete@gzAntiCheatSpec@@UAEXXZ			; gzAntiCheatSpec::Delete
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
;	COMDAT ?Delete@gzAntiCheatSpec@@UAEXXZ
_TEXT	SEGMENT
?Delete@gzAntiCheatSpec@@UAEXXZ PROC			; gzAntiCheatSpec::Delete, COMDAT
; _this$ = ecx

; 64   : {

	push	esi
	push	edi
	mov	edi, ecx

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

	xor	esi, esi
	cmp	DWORD PTR [edi+60], esi
	jbe	SHORT $LN1@Delete@6
	npad	5
$LL3@Delete@6:

; 66   : 		delete this->m_data[i];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	66					; 00000042H
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [edi+52]
	mov	ecx, DWORD PTR [eax+esi*4]
	push	ecx
	call	??3@YAXPAX@Z				; operator delete
	add	esi, 1
	add	esp, 16					; 00000010H
	cmp	esi, DWORD PTR [edi+60]
	jb	SHORT $LL3@Delete@6
$LN1@Delete@6:

; 67   : 	this->m_data.Clear();

	mov	edx, DWORD PTR [edi+48]
	mov	eax, DWORD PTR [edx+4]
	lea	ecx, DWORD PTR [edi+48]
	pop	edi
	pop	esi
	jmp	eax
?Delete@gzAntiCheatSpec@@UAEXXZ ENDP			; gzAntiCheatSpec::Delete
_TEXT	ENDS
PUBLIC	__real@3f800000
PUBLIC	?Think@gzAntiCheatSpec@@UAEXXZ			; gzAntiCheatSpec::Think
EXTRN	?Is_Object_Visible@nc_SmartGameObj@@QAE_NPAVnc_PhysicalGameObj@@@Z:PROC ; nc_SmartGameObj::Is_Object_Visible
EXTRN	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z:PROC ; nc_GameObjManager::Find_PhysicalGameObj
EXTRN	?SubFrameTime@@YAXAAM_N@Z:PROC			; SubFrameTime
;	COMDAT __real@3f800000
; File d:\source code\alib\include\avector.h
CONST	SEGMENT
__real@3f800000 DD 03f800000r			; 1
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
CONST	ENDS
;	COMDAT ?Think@gzAntiCheatSpec@@UAEXXZ
_TEXT	SEGMENT
tv199 = -4						; size = 4
?Think@gzAntiCheatSpec@@UAEXXZ PROC			; gzAntiCheatSpec::Think, COMDAT
; _this$ = ecx

; 74   : {

	push	ecx

; 75   : 	if (!gzAntiCheatMgr->m_settings->m_enableSpectate)

	mov	eax, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [eax+36]
	cmp	BYTE PTR [ecx+24], 0
	je	$LN7@Think
	push	ebp

; 76   : 		return;
; 77   : 
; 78   : 	SubFrameTime(this->m_checkTimeCounter, true);

	lea	ebp, DWORD PTR [esi+44]
	push	1
	push	ebp
	mov	DWORD PTR tv199[esp+20], ebp
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 79   : 	if (this->m_checkTimeCounter < 0.0f && this->m_owner->GetPlayerData()->IsActive)

	fldz
	fcomp	DWORD PTR [ebp]
	add	esp, 8
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	$LN30@Think
	mov	edx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [edx+76]
	cmp	BYTE PTR [eax+1981], 0
	je	$LN30@Think
	push	edi

; 80   : 	{
; 81   : 		for (unsigned int i = 0; i < this->m_data.Count(); i++)

	xor	edi, edi
	cmp	DWORD PTR [esi+60], edi
	jbe	$LN4@Think
	push	ebx
	npad	7
$LL6@Think:
	mov	eax, DWORD PTR [esi+52]
	lea	ebx, DWORD PTR [edi*4]

; 82   : 		{
; 83   : 			nc_PhysicalGameObj *seen = nc_GameObjManager::Find_PhysicalGameObj(this->m_data[i]->objId);

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

; 84   : 			if (seen)

	test	eax, eax
	je	SHORT $LN5@Think

; 85   : 			{
; 86   : 				if (this->m_owner->GetPlayerData()->Owner.Reference && this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SmartGameObj()->Is_Object_Visible(seen))

	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [ecx+76]
	mov	ecx, DWORD PTR [edx+20]
	test	ecx, ecx
	je	SHORT $LN2@Think
	mov	ecx, DWORD PTR [ecx+4]
	push	eax
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+44]
	call	edx
	mov	ecx, eax
	call	?Is_Object_Visible@nc_SmartGameObj@@QAE_NPAVnc_PhysicalGameObj@@@Z ; nc_SmartGameObj::Is_Object_Visible
	test	al, al
	je	SHORT $LN2@Think
	mov	ebp, DWORD PTR [esi+52]
	add	ebp, ebx

; 87   : 					this->m_data[i]->lastSeen = GetTickCount();

	call	DWORD PTR __imp__GetTickCount@0
	mov	ecx, DWORD PTR [ebp]

; 88   : 				else

	mov	ebp, DWORD PTR tv199[esp+20]
	mov	DWORD PTR [ecx+4], eax
	jmp	SHORT $LN5@Think
$LN2@Think:

; 89   : 				{
; 90   : 					delete this->m_data[i];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	90					; 0000005aH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR [esi+52]
	mov	eax, DWORD PTR [edx+ebx]
	push	eax
	call	??3@YAXPAX@Z				; operator delete

; 91   : 					this->m_data.Delete(i);

	mov	edx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [edx+20]
	lea	ecx, DWORD PTR [esi+48]
	add	esp, 16					; 00000010H
	push	edi
	call	eax

; 92   : 					i--;

	sub	edi, 1
$LN5@Think:
	add	edi, 1
	cmp	edi, DWORD PTR [esi+60]
	jb	$LL6@Think
	pop	ebx
$LN4@Think:

; 93   : 				}
; 94   : 			}
; 95   : 		}
; 96   : 		this->m_checkTimeCounter = ANTICHEAT_RGHSPEC_INTERVAL;

	fld1
	pop	edi
	fstp	DWORD PTR [ebp]
$LN30@Think:
	pop	ebp
$LN7@Think:
	pop	esi

; 97   : 	}
; 98   : }

	pop	ecx
	ret	0
?Think@gzAntiCheatSpec@@UAEXXZ ENDP			; gzAntiCheatSpec::Think
_TEXT	ENDS
PUBLIC	??_C@_0DD@POLPKMBJ@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@ ; `string'
PUBLIC	??_C@_0BK@KOJDBAKO@?7Ping?3?5?$CFd?$DL?5Bandwidth?3?5?$CFd?6?$AA@ ; `string'
PUBLIC	??_C@_0CL@KBFBHHHC@?7Attacker?5preset?3?5?$CFs?$CI?$CFd?$CJ?$DL?5Vehicl@ ; `string'
PUBLIC	??_C@_0DC@MPCMCPC@?$CFls?5damaged?5player?5?$CFls?5which?5was@ ; `string'
PUBLIC	??_C@_0DB@IDDFDIPF@?$CFls?5damaged?5soldier?5?$CFs?5which?5was@ ; `string'
PUBLIC	??_C@_0DC@GFMILLKJ@?$CFls?5damaged?5vehicle?5?$CFs?5which?5was@ ; `string'
PUBLIC	??_C@_0CP@MADCAIFN@?7Defender?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@ ; `string'
PUBLIC	??_C@_0BK@JNBMJHCE@?7Defender?5preset?3?5?$CFs?$CI?$CFd?$CJ?6?$AA@ ; `string'
PUBLIC	??_C@_0CP@MENCJNMB@?7Attacker?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@ ; `string'
PUBLIC	??_C@_0CO@JNONMJDC@?7Attacker?5preset?3?5?$CFs?1?$CFs?$CI?$CFd?$CJ?$DL?5Veh@ ; `string'
PUBLIC	??_C@_09JFLEELJM@No_weapon?$AA@			; `string'
PUBLIC	??_C@_0L@COKBDLLF@No_vehicle?$AA@		; `string'
PUBLIC	??_C@_0P@PKBFMLOH@?7Distance?3?5?$CFf?6?$AA@	; `string'
PUBLIC	??_C@_0O@BANDBEAN@?7Warhead?3?5?$CFd?6?$AA@	; `string'
PUBLIC	??_C@_0N@PMPJKNPO@?7Damage?3?5?$CFf?6?$AA@	; `string'
PUBLIC	??_C@_0CJ@HFOIOADA@?$CFls?5damaged?5?$CFs?5which?5was?5never?5v@ ; `string'
PUBLIC	??_C@_0DB@MEGIINNI@?$CFls?5damaged?5player?5?$CFls?5which?5was@ ; `string'
PUBLIC	?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z ; gzAntiCheatSpec::Player_RawDamage
EXTRN	?SecsToAscTime@@YA?AVaString@@I@Z:PROC		; SecsToAscTime
EXTRN	?Get_Compressed_Bandwidth_Out@nc_PacketManagerClass@@QAEHPAUsockaddr_in@@@Z:PROC ; nc_PacketManagerClass::Get_Compressed_Bandwidth_Out
EXTRN	?PacketMgr@@3PAVnc_PacketManagerClass@@A:DWORD	; PacketMgr
EXTRN	?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A:DWORD ; nc_cNetwork::PServerConnection
EXTRN	?gzCommands@@3PAUnc_ScriptCommands@@A:DWORD	; gzCommands
;	COMDAT ??_C@_0DD@POLPKMBJ@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
; File d:\source code\stgm\stplayer.h
CONST	SEGMENT
??_C@_0DD@POLPKMBJ@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@ DB '-'
	DB	'------------------------------------------------', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BK@KOJDBAKO@?7Ping?3?5?$CFd?$DL?5Bandwidth?3?5?$CFd?6?$AA@
CONST	SEGMENT
??_C@_0BK@KOJDBAKO@?7Ping?3?5?$CFd?$DL?5Bandwidth?3?5?$CFd?6?$AA@ DB 09H, 'P'
	DB	'ing: %d; Bandwidth: %d', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0CL@KBFBHHHC@?7Attacker?5preset?3?5?$CFs?$CI?$CFd?$CJ?$DL?5Vehicl@
CONST	SEGMENT
??_C@_0CL@KBFBHHHC@?7Attacker?5preset?3?5?$CFs?$CI?$CFd?$CJ?$DL?5Vehicl@ DB 09H
	DB	'Attacker preset: %s(%d); Vehicle: %s(%d)', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DC@MPCMCPC@?$CFls?5damaged?5player?5?$CFls?5which?5was@
CONST	SEGMENT
??_C@_0DC@MPCMCPC@?$CFls?5damaged?5player?5?$CFls?5which?5was@ DB '%ls da'
	DB	'maged player %ls which was visible %s ago.', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DB@IDDFDIPF@?$CFls?5damaged?5soldier?5?$CFs?5which?5was@
CONST	SEGMENT
??_C@_0DB@IDDFDIPF@?$CFls?5damaged?5soldier?5?$CFs?5which?5was@ DB '%ls d'
	DB	'amaged soldier %s which was never visible.', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DC@GFMILLKJ@?$CFls?5damaged?5vehicle?5?$CFs?5which?5was@
CONST	SEGMENT
??_C@_0DC@GFMILLKJ@?$CFls?5damaged?5vehicle?5?$CFs?5which?5was@ DB '%ls d'
	DB	'amaged vehicle %s which was visible %s ago.', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0CP@MADCAIFN@?7Defender?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@
CONST	SEGMENT
??_C@_0CP@MADCAIFN@?7Defender?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@ DB 09H
	DB	'Defender position: X;%f   Y;%f   Z;%f   F;%f', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BK@JNBMJHCE@?7Defender?5preset?3?5?$CFs?$CI?$CFd?$CJ?6?$AA@
CONST	SEGMENT
??_C@_0BK@JNBMJHCE@?7Defender?5preset?3?5?$CFs?$CI?$CFd?$CJ?6?$AA@ DB 09H
	DB	'Defender preset: %s(%d)', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0CP@MENCJNMB@?7Attacker?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@
CONST	SEGMENT
??_C@_0CP@MENCJNMB@?7Attacker?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@ DB 09H
	DB	'Attacker position: X;%f   Y;%f   Z;%f   F;%f', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0CO@JNONMJDC@?7Attacker?5preset?3?5?$CFs?1?$CFs?$CI?$CFd?$CJ?$DL?5Veh@
CONST	SEGMENT
??_C@_0CO@JNONMJDC@?7Attacker?5preset?3?5?$CFs?1?$CFs?$CI?$CFd?$CJ?$DL?5Veh@ DB 09H
	DB	'Attacker preset: %s/%s(%d); Vehicle: %s(%d)', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09JFLEELJM@No_weapon?$AA@
CONST	SEGMENT
??_C@_09JFLEELJM@No_weapon?$AA@ DB 'No_weapon', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@COKBDLLF@No_vehicle?$AA@
CONST	SEGMENT
??_C@_0L@COKBDLLF@No_vehicle?$AA@ DB 'No_vehicle', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@PKBFMLOH@?7Distance?3?5?$CFf?6?$AA@
CONST	SEGMENT
??_C@_0P@PKBFMLOH@?7Distance?3?5?$CFf?6?$AA@ DB 09H, 'Distance: %f', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@BANDBEAN@?7Warhead?3?5?$CFd?6?$AA@
CONST	SEGMENT
??_C@_0O@BANDBEAN@?7Warhead?3?5?$CFd?6?$AA@ DB 09H, 'Warhead: %d', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@PMPJKNPO@?7Damage?3?5?$CFf?6?$AA@
CONST	SEGMENT
??_C@_0N@PMPJKNPO@?7Damage?3?5?$CFf?6?$AA@ DB 09H, 'Damage: %f', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0CJ@HFOIOADA@?$CFls?5damaged?5?$CFs?5which?5was?5never?5v@
CONST	SEGMENT
??_C@_0CJ@HFOIOADA@?$CFls?5damaged?5?$CFs?5which?5was?5never?5v@ DB '%ls '
	DB	'damaged %s which was never visible.', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DB@MEGIINNI@?$CFls?5damaged?5player?5?$CFls?5which?5was@
CONST	SEGMENT
??_C@_0DB@MEGIINNI@?$CFls?5damaged?5player?5?$CFls?5which?5was@ DB '%ls d'
	DB	'amaged player %ls which was never visible.', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z DD 019930522H
	DD	07H
	DD	FLAT:__unwindtable$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$3
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$4
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$5
	DD	05H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$6
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
xdata$x	ENDS
;	COMDAT ?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z
_TEXT	SEGMENT
tv2105 = -164						; size = 4
tv1764 = -164						; size = 4
tv1429 = -164						; size = 4
tv1008 = -164						; size = 4
tv1004 = -164						; size = 4
tv311 = -164						; size = 4
tv2088 = -160						; size = 4
tv1747 = -160						; size = 4
tv789 = -160						; size = 4
tv347 = -160						; size = 4
_distance$57526 = -160					; size = 4
tv2071 = -156						; size = 4
tv1730 = -156						; size = 4
tv1124 = -156						; size = 4
tv1063 = -156						; size = 4
tv1023 = -156						; size = 4
tv1018 = -156						; size = 4
tv858 = -156						; size = 4
tv753 = -156						; size = 4
tv377 = -156						; size = 4
tv2125 = -152						; size = 4
tv1784 = -152						; size = 4
_seen$57523 = -152					; size = 4
_i$57518 = -148						; size = 4
$T65212 = -144						; size = 8
$T65213 = -136						; size = 8
$T65221 = -128						; size = 8
$T65220 = -120						; size = 8
$T65222 = -112						; size = 8
$T65224 = -104						; size = 8
$T65223 = -96						; size = 8
_pos$57525 = -88					; size = 24
__$EHRec$ = -12						; size = 12
_evt$ = 8						; size = 4
?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z PROC ; gzAntiCheatSpec::Player_RawDamage, COMDAT
; _this$ = ecx

; 100  : {

	push	ebp
	mov	ebp, esp
	and	esp, -64				; ffffffc0H
	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z
	push	eax
	mov	DWORD PTR fs:0, esp

; 101  : 	if (!gzAntiCheatMgr->m_settings->m_enableSpectate)

	mov	eax, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	sub	esp, 168				; 000000a8H
	push	ebx
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [eax+36]
	cmp	BYTE PTR [ecx+24], 0
	push	edi
	je	$LN13@Player_Raw@2

; 102  : 		return;
; 103  : 
; 104  : 	if (evt.m_attacker->As_SoldierGameObj()->Player == this->m_owner->GetPlayerData())

	mov	edi, DWORD PTR _evt$[ebp]
	mov	edx, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR [edi+24]
	mov	eax, DWORD PTR [ecx]
	mov	ebx, DWORD PTR [edx+76]
	mov	edx, DWORD PTR [eax+68]
	call	edx
	cmp	DWORD PTR [eax+2400], ebx
	jne	$LN13@Player_Raw@2

; 105  : 	{
; 106  : 		if (this->m_owner->GetPlayerData()->Owner.Reference && evt.m_defender)

	mov	eax, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [eax+76]
	cmp	DWORD PTR [eax+20], 0
	je	$LN13@Player_Raw@2
	cmp	DWORD PTR [edi+28], 0
	je	$LN13@Player_Raw@2

; 107  : 		{
; 108  : 			if (evt.m_attacker->NetworkID == this->m_owner->GetPlayerData()->Owner.Reference->obj->NetworkID)

	mov	ecx, DWORD PTR [eax+20]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edi+24]
	mov	ecx, DWORD PTR [eax+12]
	cmp	ecx, DWORD PTR [edx+12]
	jne	$LN13@Player_Raw@2

; 109  : 			{
; 110  : 				for (unsigned int i = 0; i < this->m_data.Count(); i++)

	xor	eax, eax
	cmp	DWORD PTR [esi+60], eax
	mov	DWORD PTR _i$57518[esp+192], eax
	jbe	$LN13@Player_Raw@2
$LL15@Player_Raw@2:
	mov	edx, DWORD PTR [esi+52]

; 111  : 				{
; 112  : 					if (this->m_data[i]->objId == evt.m_defender->NetworkID)

	mov	ecx, DWORD PTR [edi+28]
	add	eax, eax
	add	eax, eax
	mov	DWORD PTR tv1429[esp+192], eax
	add	eax, edx
	mov	edx, DWORD PTR [eax]
	mov	edx, DWORD PTR [edx]
	cmp	edx, DWORD PTR [ecx+12]
	jne	$LN14@Player_Raw@2

; 113  : 					{
; 114  : 						nc_PhysicalGameObj *seen = nc_GameObjManager::Find_PhysicalGameObj(this->m_data[i]->objId);

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

; 115  : 						if (seen)

	test	ebx, ebx
	mov	DWORD PTR _seen$57523[esp+192], ebx
	je	$LN14@Player_Raw@2

; 116  : 						{
; 117  : 							nc_Vector3 pos[2];
; 118  : 							this->m_owner->GetPlayerData()->Owner.Reference->obj->Get_Position(&pos[0]);

	mov	edx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [edx+76]
	mov	eax, DWORD PTR [eax+20]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [edx+56]
	lea	eax, DWORD PTR _pos$57525[esp+192]
	push	eax
	call	edx

; 119  : 							seen->Get_Position(&pos[1]);

	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+56]
	lea	ecx, DWORD PTR _pos$57525[esp+204]
	push	ecx
	mov	ecx, ebx
	call	edx

; 120  : 							float distance = gzCommands->Get_Distance(pos[0], pos[1]);

	mov	edx, DWORD PTR ?gzCommands@@3PAUnc_ScriptCommands@@A ; gzCommands
	lea	eax, DWORD PTR _pos$57525[esp+204]
	push	eax
	mov	eax, DWORD PTR [edx+256]
	lea	ecx, DWORD PTR _pos$57525[esp+196]
	push	ecx
	call	eax
	fstp	DWORD PTR _distance$57526[esp+200]
	mov	ecx, DWORD PTR [esi+52]
	mov	edx, DWORD PTR tv1429[esp+200]

; 121  : 							if (this->m_data[i]->lastSeen == 0)

	mov	eax, DWORD PTR [edx+ecx]
	lea	ebx, DWORD PTR [edx+ecx]
	add	esp, 8
	cmp	DWORD PTR [eax+4], 0
	jne	$LN10@Player_Raw@2

; 122  : 							{
; 123  : 								if (evt.m_defender->As_SoldierGameObj() && evt.m_defender->As_SoldierGameObj()->Player)

	mov	ecx, DWORD PTR [edi+28]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	test	eax, eax
	je	SHORT $LN182@Player_Raw@2
	mov	ecx, DWORD PTR [edi+28]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	xor	ebx, ebx
	cmp	DWORD PTR [eax+2400], ebx
	je	SHORT $LN9@Player_Raw@2

; 124  : 								{
; 125  : 									this->WriteLog("%ls damaged player %ls which was never visible.\n",
; 126  : 										this->m_owner->GetPlayerName().GetString(),
; 127  : 										evt.m_defender->As_SmartGameObj()->Player->PlayerName.m_Buffer
; 128  : 									);

	lea	ecx, DWORD PTR $T65212[esp+192]
	push	ecx
	mov	ecx, DWORD PTR [esi+36]
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+200], ebx
	je	SHORT $LN57@Player_Raw@2
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR tv1004[esp+192], edx
	jmp	SHORT $LN58@Player_Raw@2
$LN57@Player_Raw@2:
	mov	DWORD PTR tv1004[esp+192], ebx
$LN58@Player_Raw@2:
	mov	ecx, DWORD PTR [edi+28]
	mov	eax, DWORD PTR [ecx]
	mov	ebx, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+44]
	add	ebx, 136				; 00000088H
	call	edx
	mov	eax, DWORD PTR [eax+2400]
	mov	ecx, DWORD PTR [eax+1880]
	mov	edx, DWORD PTR tv1004[esp+192]
	mov	eax, DWORD PTR [ebx]
	push	ecx
	push	edx
	push	OFFSET ??_C@_0DB@MEGIINNI@?$CFls?5damaged?5player?5?$CFls?5which?5was@
	push	esi
	call	eax
	lea	ecx, DWORD PTR $T65212[esp+208]

; 129  : 								}
; 130  : 								else

	jmp	SHORT $LN184@Player_Raw@2
$LN182@Player_Raw@2:

; 124  : 								{
; 125  : 									this->WriteLog("%ls damaged player %ls which was never visible.\n",
; 126  : 										this->m_owner->GetPlayerName().GetString(),
; 127  : 										evt.m_defender->As_SmartGameObj()->Player->PlayerName.m_Buffer
; 128  : 									);

	xor	ebx, ebx
$LN9@Player_Raw@2:

; 131  : 								{
; 132  : 									this->WriteLog("%ls damaged %s which was never visible.\n",
; 133  : 										this->m_owner->GetPlayerName().GetString(),
; 134  : 										evt.m_defender->definition->Get_Name()
; 135  : 									);

	lea	ecx, DWORD PTR $T65213[esp+192]
	push	ecx
	mov	ecx, DWORD PTR [esi+36]
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+200], 1
	je	SHORT $LN66@Player_Raw@2
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR tv1008[esp+192], edx
	jmp	SHORT $LN67@Player_Raw@2
$LN66@Player_Raw@2:
	mov	DWORD PTR tv1008[esp+192], ebx
$LN67@Player_Raw@2:
	mov	eax, DWORD PTR [edi+28]
	mov	ecx, DWORD PTR [eax+1724]
	mov	edx, DWORD PTR [ecx]
	mov	ebx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	add	ebx, 136				; 00000088H
	call	eax
	mov	ecx, DWORD PTR tv1008[esp+192]
	mov	edx, DWORD PTR [ebx]
	push	eax
	push	ecx
	push	OFFSET ??_C@_0CJ@HFOIOADA@?$CFls?5damaged?5?$CFs?5which?5was?5never?5v@
	push	esi
	call	edx
	lea	ecx, DWORD PTR $T65213[esp+208]
$LN184@Player_Raw@2:
	add	esp, 16					; 00000010H
	mov	DWORD PTR __$EHRec$[esp+200], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 136  : 								}
; 137  : 								nc_WeaponBagClass *Bag = this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SmartGameObj()->WeaponBag;

	mov	eax, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR [eax+76]
	mov	edx, DWORD PTR [ecx+20]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+44]
	call	edx

; 138  : 								this->WriteLog("\tDamage: %f\n", evt.m_damage);

	fld	DWORD PTR [edi+32]
	mov	ebx, DWORD PTR [eax+1968]
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+136]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0N@PMPJKNPO@?7Damage?3?5?$CFf?6?$AA@
	push	esi
	call	ecx

; 139  : 								this->WriteLog("\tWarhead: %d\n", evt.m_warhead);

	mov	eax, DWORD PTR [edi+36]
	mov	edx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [edx+136]
	push	eax
	push	OFFSET ??_C@_0O@BANDBEAN@?7Warhead?3?5?$CFd?6?$AA@
	push	esi
	call	ecx

; 140  : 								this->WriteLog("\tDistance: %f\n", distance);

	fld	DWORD PTR _distance$57526[esp+220]
	mov	edx, DWORD PTR [esi]
	fstp	QWORD PTR [esp+20]
	mov	eax, DWORD PTR [edx+136]
	add	esp, 20					; 00000014H
	push	OFFSET ??_C@_0P@PKBFMLOH@?7Distance?3?5?$CFf?6?$AA@
	push	esi
	call	eax

; 141  : 								this->WriteLog("\tAttacker preset: %s/%s(%d); Vehicle: %s(%d)\n",
; 142  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->definition->Get_Name(),
; 143  : 									(Bag->current && Bag->current < Bag->Vector.Count()) ? Bag->Vector[Bag->current]->WeaponDef->Get_Name() : "No_weapon",
; 144  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->NetworkID,
; 145  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle ? this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle->definition->Get_Name() : "No_vehicle",
; 146  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle ? this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle->NetworkID : 0
; 147  : 								);

	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [ecx+76]
	mov	eax, DWORD PTR [edx+20]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	add	esp, 16					; 00000010H
	call	eax
	cmp	DWORD PTR [eax+2444], 0
	je	SHORT $LN22@Player_Raw@2
	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [ecx+76]
	mov	eax, DWORD PTR [edx+20]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	mov	ecx, DWORD PTR [eax+2444]
	mov	edx, DWORD PTR [ecx+12]
	mov	DWORD PTR tv311[esp+192], edx
	jmp	SHORT $LN23@Player_Raw@2
$LN22@Player_Raw@2:
	mov	DWORD PTR tv311[esp+192], 0
$LN23@Player_Raw@2:
	mov	eax, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR [eax+76]
	mov	edx, DWORD PTR [ecx+20]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+68]
	call	edx
	cmp	DWORD PTR [eax+2444], 0
	je	SHORT $LN24@Player_Raw@2
	mov	eax, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR [eax+76]
	mov	edx, DWORD PTR [ecx+20]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+68]
	call	edx
	mov	eax, DWORD PTR [eax+2444]
	mov	ecx, DWORD PTR [eax+1724]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	mov	DWORD PTR tv347[esp+192], eax
	jmp	SHORT $LN25@Player_Raw@2
$LN24@Player_Raw@2:
	mov	DWORD PTR tv347[esp+192], OFFSET ??_C@_0L@COKBDLLF@No_vehicle?$AA@
$LN25@Player_Raw@2:
	mov	eax, DWORD PTR [ebx+28]
	test	eax, eax
	je	SHORT $LN26@Player_Raw@2
	cmp	eax, DWORD PTR [ebx+20]
	jge	SHORT $LN26@Player_Raw@2
	mov	ecx, DWORD PTR [ebx+8]
	mov	edx, DWORD PTR [ecx+eax*4]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	call	edx
	mov	DWORD PTR tv377[esp+192], eax
	jmp	SHORT $LN27@Player_Raw@2
$LN26@Player_Raw@2:
	mov	DWORD PTR tv377[esp+192], OFFSET ??_C@_09JFLEELJM@No_weapon?$AA@
$LN27@Player_Raw@2:
	mov	eax, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [eax+76]
	mov	ecx, DWORD PTR [edx+20]
	mov	eax, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [eax+1724]
	mov	eax, DWORD PTR tv311[esp+192]
	mov	edx, DWORD PTR [edx+20]
	mov	ebx, DWORD PTR [esi]
	push	eax
	mov	eax, DWORD PTR tv347[esp+196]
	push	eax
	mov	eax, DWORD PTR [edx+4]
	mov	edx, DWORD PTR [eax+12]
	mov	eax, DWORD PTR tv377[esp+200]
	push	edx
	mov	edx, DWORD PTR [ecx]
	push	eax
	mov	eax, DWORD PTR [edx+48]
	add	ebx, 136				; 00000088H
	call	eax
	mov	ecx, DWORD PTR [ebx]
	push	eax
	push	OFFSET ??_C@_0CO@JNONMJDC@?7Attacker?5preset?3?5?$CFs?1?$CFs?$CI?$CFd?$CJ?$DL?5Veh@
	push	esi
	call	ecx

; 148  : 								this->WriteLog("\tAttacker position: X;%f   Y;%f   Z;%f   F;%f\n",
; 149  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosX,
; 150  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosY,
; 151  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosZ,
; 152  : 									gzCommands->Get_Facing(this->m_owner->GetPlayerData()->Owner.Reference->obj)
; 153  : 								);

	mov	edx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [edx+76]
	mov	ecx, DWORD PTR [eax+20]
	mov	ebx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+20]
	mov	eax, DWORD PTR [edx+4]
	add	ecx, 136				; 00000088H
	mov	DWORD PTR tv1124[esp+220], ecx
	mov	ecx, DWORD PTR ?gzCommands@@3PAUnc_ScriptCommands@@A ; gzCommands
	mov	edx, DWORD PTR [ecx+72]
	push	eax
	call	edx
	fstp	QWORD PTR [esp+24]
	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+36]
	add	esp, 24					; 00000018H
	mov	ecx, ebx
	call	edx
	mov	eax, DWORD PTR [eax+1908]
	mov	ecx, DWORD PTR [eax+60]
	fld	DWORD PTR [ecx+72]
	mov	edx, DWORD PTR [ebx]
	mov	eax, DWORD PTR [edx+36]
	sub	esp, 8
	mov	ecx, ebx
	fstp	QWORD PTR [esp]
	call	eax
	mov	ecx, DWORD PTR [eax+1908]
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+56]
	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+36]
	sub	esp, 8
	mov	ecx, ebx
	fstp	QWORD PTR [esp]
	call	edx
	mov	eax, DWORD PTR [eax+1908]
	mov	ecx, DWORD PTR [eax+60]
	fld	DWORD PTR [ecx+40]
	mov	edx, DWORD PTR tv1124[esp+216]
	mov	eax, DWORD PTR [edx]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0CP@MENCJNMB@?7Attacker?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@
	push	esi
	call	eax

; 154  : 								this->WriteLog("\tDefender preset: %s(%d)\n", evt.m_defender->definition->Get_Name(), evt.m_defender->NetworkID);

	mov	eax, DWORD PTR [edi+28]
	mov	edx, DWORD PTR [eax+12]
	mov	ecx, DWORD PTR [eax+1724]
	mov	ebx, DWORD PTR [esi]
	mov	eax, DWORD PTR [ecx]
	add	esp, 40					; 00000028H
	push	edx
	mov	edx, DWORD PTR [eax+48]
	add	ebx, 136				; 00000088H
	call	edx
	push	eax
	mov	eax, DWORD PTR [ebx]
	push	OFFSET ??_C@_0BK@JNBMJHCE@?7Defender?5preset?3?5?$CFs?$CI?$CFd?$CJ?6?$AA@
	push	esi
	call	eax

; 155  : 								this->WriteLog("\tDefender position: X;%f   Y;%f   Z;%f   F;%f\n",
; 156  : 									evt.m_defender->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosX,
; 157  : 									evt.m_defender->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosY,
; 158  : 									evt.m_defender->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosZ,
; 159  : 									gzCommands->Get_Facing(seen)
; 160  : 								);

	mov	ecx, DWORD PTR [edi+28]
	mov	ebx, DWORD PTR [esi]
	mov	edx, ecx
	mov	eax, ecx
	mov	DWORD PTR tv1730[esp+208], ecx
	mov	ecx, DWORD PTR _seen$57523[esp+208]
	mov	DWORD PTR tv1747[esp+208], edx
	mov	edx, DWORD PTR ?gzCommands@@3PAUnc_ScriptCommands@@A ; gzCommands
	mov	DWORD PTR tv1764[esp+208], eax
	mov	eax, DWORD PTR [edx+72]
	push	ecx
	add	ebx, 136				; 00000088H
	call	eax
	fstp	QWORD PTR [esp+12]
	mov	ecx, DWORD PTR tv1730[esp+212]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+36]
	add	esp, 12					; 0000000cH
	call	eax
	mov	ecx, DWORD PTR [eax+1908]
	mov	edx, DWORD PTR [ecx+60]
	mov	ecx, DWORD PTR tv1747[esp+200]
	fld	DWORD PTR [edx+72]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+36]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	edx
	mov	eax, DWORD PTR [eax+1908]
	mov	ecx, DWORD PTR [eax+60]
	fld	DWORD PTR [ecx+56]
	mov	ecx, DWORD PTR tv1764[esp+208]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+36]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	eax
	mov	ecx, DWORD PTR [eax+1908]
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+40]
	mov	eax, DWORD PTR [ebx]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0CP@MADCAIFN@?7Defender?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@
	push	esi
	call	eax

; 161  : 								this->WriteLog("\tPing: %d; Bandwidth: %d\n",
; 162  : 									nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Ping,
; 163  : 									PacketMgr->Get_Compressed_Bandwidth_Out(&nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Address) >> 10
; 164  : 								);

	mov	ecx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [ecx+76]
	mov	edx, DWORD PTR [eax+1884]
	mov	ebx, DWORD PTR [esi]
	mov	DWORD PTR tv1784[esp+232], eax
	mov	eax, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	ecx, DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx+1352]
	mov	ecx, DWORD PTR [eax+edx*4]
	add	ecx, 688				; 000002b0H
	add	esp, 40					; 00000028H
	push	ecx
	mov	ecx, DWORD PTR ?PacketMgr@@3PAVnc_PacketManagerClass@@A ; PacketMgr
	add	ebx, 136				; 00000088H
	call	?Get_Compressed_Bandwidth_Out@nc_PacketManagerClass@@QAEHPAUsockaddr_in@@@Z ; nc_PacketManagerClass::Get_Compressed_Bandwidth_Out
	mov	edx, DWORD PTR tv1784[esp+192]

; 165  : 								this->WriteLog("-------------------------------------------------\n");

	jmp	$LN185@Player_Raw@2
$LN10@Player_Raw@2:

; 166  : 							}
; 167  : 							else if ((GetTickCount() - this->m_data[i]->lastSeen) > 10000)

	call	DWORD PTR __imp__GetTickCount@0
	mov	ecx, DWORD PTR [ebx]
	sub	eax, DWORD PTR [ecx+4]
	cmp	eax, 10000				; 00002710H
	jbe	$LN14@Player_Raw@2

; 168  : 							{
; 169  : 								if (evt.m_defender->As_VehicleGameObj() != NULL)

	mov	ecx, DWORD PTR [edi+28]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+40]
	call	eax
	test	eax, eax
	je	$LN5@Player_Raw@2
	mov	ebx, DWORD PTR [esi+52]
	add	ebx, DWORD PTR tv1429[esp+192]

; 170  : 								{
; 171  : 									this->WriteLog("%ls damaged vehicle %s which was visible %s ago.\n",
; 172  : 										this->m_owner->GetPlayerName().GetString(),
; 173  : 										evt.m_defender->definition->Get_Name(),
; 174  : 										SecsToAscTime((GetTickCount() - this->m_data[i]->lastSeen) / 1000).GetString()
; 175  : 									);

	call	DWORD PTR __imp__GetTickCount@0
	mov	edx, DWORD PTR [ebx]
	mov	ecx, eax
	sub	ecx, DWORD PTR [edx+4]
	mov	eax, 274877907				; 10624dd3H
	mul	ecx
	shr	edx, 6
	push	edx
	lea	eax, DWORD PTR $T65220[esp+196]
	push	eax
	call	?SecsToAscTime@@YA?AVaString@@I@Z	; SecsToAscTime
	add	esp, 8
	mov	ebx, eax
	lea	ecx, DWORD PTR $T65221[esp+192]
	push	ecx
	mov	ecx, DWORD PTR [esi+36]
	mov	DWORD PTR __$EHRec$[esp+204], 2
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	ecx, DWORD PTR [ebx+4]
	test	ecx, ecx
	mov	BYTE PTR __$EHRec$[esp+200], 3
	je	SHORT $LN109@Player_Raw@2
	mov	edx, DWORD PTR [ecx]
	jmp	SHORT $LN110@Player_Raw@2
$LN109@Player_Raw@2:
	xor	edx, edx
$LN110@Player_Raw@2:
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	je	SHORT $LN115@Player_Raw@2
	mov	eax, DWORD PTR [eax]
	mov	DWORD PTR tv1018[esp+192], eax
	jmp	SHORT $LN116@Player_Raw@2
$LN115@Player_Raw@2:
	mov	DWORD PTR tv1018[esp+192], 0
$LN116@Player_Raw@2:
	mov	ecx, DWORD PTR [edi+28]
	mov	ecx, DWORD PTR [ecx+1724]
	mov	ebx, DWORD PTR [esi]
	push	edx
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	add	ebx, 136				; 00000088H
	call	eax
	mov	ecx, DWORD PTR tv1018[esp+196]
	mov	edx, DWORD PTR [ebx]
	push	eax
	push	ecx
	push	OFFSET ??_C@_0DC@GFMILLKJ@?$CFls?5damaged?5vehicle?5?$CFs?5which?5was@
	push	esi
	call	edx
	add	esp, 20					; 00000014H
	lea	ecx, DWORD PTR $T65221[esp+192]
	mov	BYTE PTR __$EHRec$[esp+200], 2
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65220[esp+192]
	jmp	$LN186@Player_Raw@2
$LN5@Player_Raw@2:

; 176  : 								}
; 177  : 								else if (evt.m_defender->As_SoldierGameObj() != NULL)

	mov	ecx, DWORD PTR [edi+28]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+68]
	call	edx
	test	eax, eax
	je	$LN1@Player_Raw@2

; 178  : 								{
; 179  : 									if (evt.m_defender->As_SoldierGameObj()->Player == NULL)

	mov	ecx, DWORD PTR [edi+28]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+68]
	call	edx
	cmp	DWORD PTR [eax+2400], 0
	jne	SHORT $LN2@Player_Raw@2

; 180  : 									{
; 181  : 										this->WriteLog("%ls damaged soldier %s which was never visible.\n",
; 182  : 											this->m_owner->GetPlayerName().GetString(),
; 183  : 											evt.m_defender->definition->Get_Name()
; 184  : 										);

	mov	ecx, DWORD PTR [esi+36]
	lea	eax, DWORD PTR $T65222[esp+192]
	push	eax
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+200], 4
	je	SHORT $LN127@Player_Raw@2
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR tv1023[esp+192], ecx
	jmp	SHORT $LN128@Player_Raw@2
$LN127@Player_Raw@2:
	mov	DWORD PTR tv1023[esp+192], 0
$LN128@Player_Raw@2:
	mov	edx, DWORD PTR [edi+28]
	mov	ecx, DWORD PTR [edx+1724]
	mov	eax, DWORD PTR [ecx]
	mov	ebx, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	add	ebx, 136				; 00000088H
	call	edx
	mov	ecx, DWORD PTR [ebx]
	push	eax
	mov	eax, DWORD PTR tv1023[esp+196]
	push	eax
	push	OFFSET ??_C@_0DB@IDDFDIPF@?$CFls?5damaged?5soldier?5?$CFs?5which?5was@
	push	esi
	call	ecx
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T65222[esp+192]

; 185  : 									}
; 186  : 									else

	jmp	$LN186@Player_Raw@2
$LN2@Player_Raw@2:

; 109  : 			{
; 110  : 				for (unsigned int i = 0; i < this->m_data.Count(); i++)

	mov	ebx, DWORD PTR [esi+52]
	add	ebx, DWORD PTR tv1429[esp+192]

; 187  : 									{
; 188  : 										this->WriteLog("%ls damaged player %ls which was visible %s ago.\n",
; 189  : 											this->m_owner->GetPlayerName().GetString(),
; 190  : 											evt.m_defender->As_SoldierGameObj()->Player->PlayerName.m_Buffer,
; 191  : 											SecsToAscTime((GetTickCount() - this->m_data[i]->lastSeen) / 1000).GetString()
; 192  : 										);

	call	DWORD PTR __imp__GetTickCount@0
	mov	edx, eax
	mov	eax, DWORD PTR [ebx]
	sub	edx, DWORD PTR [eax+4]
	mov	eax, 274877907				; 10624dd3H
	mul	edx
	shr	edx, 6
	push	edx
	lea	ecx, DWORD PTR $T65223[esp+196]
	push	ecx
	call	?SecsToAscTime@@YA?AVaString@@I@Z	; SecsToAscTime
	add	esp, 8
	mov	ebx, eax
	mov	ecx, DWORD PTR [esi+36]
	lea	edx, DWORD PTR $T65224[esp+192]
	push	edx
	mov	DWORD PTR __$EHRec$[esp+204], 5
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	ecx, DWORD PTR [ebx+4]
	test	ecx, ecx
	mov	BYTE PTR __$EHRec$[esp+200], 6
	je	SHORT $LN138@Player_Raw@2
	mov	edx, DWORD PTR [ecx]
	jmp	SHORT $LN139@Player_Raw@2
$LN138@Player_Raw@2:
	xor	edx, edx
$LN139@Player_Raw@2:
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	je	SHORT $LN144@Player_Raw@2
	mov	eax, DWORD PTR [eax]
	mov	DWORD PTR tv1063[esp+192], eax
	jmp	SHORT $LN145@Player_Raw@2
$LN144@Player_Raw@2:
	mov	DWORD PTR tv1063[esp+192], 0
$LN145@Player_Raw@2:
	mov	ecx, DWORD PTR [edi+28]
	mov	ebx, DWORD PTR [esi]
	push	edx
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	add	ebx, 136				; 00000088H
	call	eax
	mov	ecx, DWORD PTR [eax+2400]
	mov	edx, DWORD PTR [ecx+1880]
	mov	eax, DWORD PTR tv1063[esp+196]
	mov	ecx, DWORD PTR [ebx]
	push	edx
	push	eax
	push	OFFSET ??_C@_0DC@MPCMCPC@?$CFls?5damaged?5player?5?$CFls?5which?5was@
	push	esi
	call	ecx
	add	esp, 20					; 00000014H
	lea	ecx, DWORD PTR $T65224[esp+192]
	mov	BYTE PTR __$EHRec$[esp+200], 5
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T65223[esp+192]
$LN186@Player_Raw@2:
	mov	DWORD PTR __$EHRec$[esp+200], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN1@Player_Raw@2:

; 193  : 									}
; 194  : 								}
; 195  : 								this->WriteLog("\tDamage: %f\n", evt.m_damage);

	fld	DWORD PTR [edi+32]
	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+136]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0N@PMPJKNPO@?7Damage?3?5?$CFf?6?$AA@
	push	esi
	call	eax

; 196  : 								this->WriteLog("\tWarhead: %d\n", evt.m_warhead);

	mov	edx, DWORD PTR [edi+36]
	mov	ecx, DWORD PTR [esi]
	mov	eax, DWORD PTR [ecx+136]
	push	edx
	push	OFFSET ??_C@_0O@BANDBEAN@?7Warhead?3?5?$CFd?6?$AA@
	push	esi
	call	eax

; 197  : 								this->WriteLog("\tDistance: %f\n", distance);

	fld	DWORD PTR _distance$57526[esp+220]
	mov	ecx, DWORD PTR [esi]
	fstp	QWORD PTR [esp+20]
	mov	edx, DWORD PTR [ecx+136]
	add	esp, 20					; 00000014H
	push	OFFSET ??_C@_0P@PKBFMLOH@?7Distance?3?5?$CFf?6?$AA@
	push	esi
	call	edx

; 198  : 								this->WriteLog("\tAttacker preset: %s(%d); Vehicle: %s(%d)\n",
; 199  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->definition->Get_Name(),
; 200  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->NetworkID,
; 201  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle ? this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle->definition->Get_Name() : "No_vehicle",
; 202  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle ? this->m_owner->GetPlayerData()->Owner.Reference->obj->As_SoldierGameObj()->Vehicle->NetworkID : 0
; 203  : 								);

	mov	eax, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR [eax+76]
	mov	edx, DWORD PTR [ecx+20]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+68]
	add	esp, 16					; 00000010H
	call	edx
	cmp	DWORD PTR [eax+2444], 0
	je	SHORT $LN28@Player_Raw@2
	mov	eax, DWORD PTR [esi+36]
	mov	ecx, DWORD PTR [eax+76]
	mov	edx, DWORD PTR [ecx+20]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+68]
	call	edx
	mov	eax, DWORD PTR [eax+2444]
	mov	ecx, DWORD PTR [eax+12]
	mov	DWORD PTR tv753[esp+192], ecx
	jmp	SHORT $LN29@Player_Raw@2
$LN28@Player_Raw@2:
	mov	DWORD PTR tv753[esp+192], 0
$LN29@Player_Raw@2:
	mov	edx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [edx+76]
	mov	ecx, DWORD PTR [eax+20]
	mov	ecx, DWORD PTR [ecx+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	cmp	DWORD PTR [eax+2444], 0
	je	SHORT $LN30@Player_Raw@2
	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [ecx+76]
	mov	eax, DWORD PTR [edx+20]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	mov	ecx, DWORD PTR [eax+2444]
	mov	ecx, DWORD PTR [ecx+1724]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	mov	DWORD PTR tv789[esp+192], eax
	jmp	SHORT $LN31@Player_Raw@2
$LN30@Player_Raw@2:
	mov	DWORD PTR tv789[esp+192], OFFSET ??_C@_0L@COKBDLLF@No_vehicle?$AA@
$LN31@Player_Raw@2:
	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [ecx+76]
	mov	eax, DWORD PTR [edx+20]
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR tv753[esp+192]
	mov	edx, DWORD PTR [edx+20]
	mov	ecx, DWORD PTR [ecx+1724]
	mov	ebx, DWORD PTR [esi]
	push	eax
	mov	eax, DWORD PTR tv789[esp+196]
	push	eax
	mov	eax, DWORD PTR [edx+4]
	mov	edx, DWORD PTR [eax+12]
	mov	eax, DWORD PTR [ecx]
	push	edx
	mov	edx, DWORD PTR [eax+48]
	add	ebx, 136				; 00000088H
	call	edx
	push	eax
	mov	eax, DWORD PTR [ebx]
	push	OFFSET ??_C@_0CL@KBFBHHHC@?7Attacker?5preset?3?5?$CFs?$CI?$CFd?$CJ?$DL?5Vehicl@
	push	esi
	call	eax

; 204  : 								this->WriteLog("\tAttacker position: X;%f   Y;%f   Z;%f   F;%f\n",
; 205  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosX,
; 206  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosY,
; 207  : 									this->m_owner->GetPlayerData()->Owner.Reference->obj->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosZ,
; 208  : 									gzCommands->Get_Facing(this->m_owner->GetPlayerData()->Owner.Reference->obj)
; 209  : 								);

	mov	ecx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [ecx+76]
	mov	edx, DWORD PTR [eax+20]
	mov	ecx, DWORD PTR [esi]
	mov	ebx, DWORD PTR [edx+4]
	add	ecx, 136				; 00000088H
	mov	eax, edx
	mov	edx, DWORD PTR ?gzCommands@@3PAUnc_ScriptCommands@@A ; gzCommands
	mov	DWORD PTR tv858[esp+216], ecx
	mov	ecx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [edx+72]
	push	ecx
	call	eax
	fstp	QWORD PTR [esp+20]
	mov	edx, DWORD PTR [ebx]
	mov	eax, DWORD PTR [edx+36]
	add	esp, 20					; 00000014H
	mov	ecx, ebx
	call	eax
	mov	ecx, DWORD PTR [eax+1908]
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+72]
	mov	eax, DWORD PTR [ebx]
	mov	edx, DWORD PTR [eax+36]
	sub	esp, 8
	mov	ecx, ebx
	fstp	QWORD PTR [esp]
	call	edx
	mov	eax, DWORD PTR [eax+1908]
	mov	ecx, DWORD PTR [eax+60]
	fld	DWORD PTR [ecx+56]
	mov	edx, DWORD PTR [ebx]
	mov	eax, DWORD PTR [edx+36]
	sub	esp, 8
	mov	ecx, ebx
	fstp	QWORD PTR [esp]
	call	eax
	mov	ecx, DWORD PTR [eax+1908]
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+40]
	mov	eax, DWORD PTR tv858[esp+216]
	mov	ecx, DWORD PTR [eax]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0CP@MENCJNMB@?7Attacker?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@
	push	esi
	call	ecx

; 210  : 								this->WriteLog("\tDefender preset: %s(%d)\n", evt.m_defender->definition->Get_Name(), evt.m_defender->NetworkID);

	mov	eax, DWORD PTR [edi+28]
	mov	edx, DWORD PTR [eax+12]
	mov	ecx, DWORD PTR [eax+1724]
	mov	eax, DWORD PTR [ecx]
	mov	ebx, DWORD PTR [esi]
	add	esp, 40					; 00000028H
	push	edx
	mov	edx, DWORD PTR [eax+48]
	add	ebx, 136				; 00000088H
	call	edx
	push	eax
	mov	eax, DWORD PTR [ebx]
	push	OFFSET ??_C@_0BK@JNBMJHCE@?7Defender?5preset?3?5?$CFs?$CI?$CFd?$CJ?6?$AA@
	push	esi
	call	eax

; 211  : 								this->WriteLog("\tDefender position: X;%f   Y;%f   Z;%f   F;%f\n",
; 212  : 									evt.m_defender->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosX,
; 213  : 									evt.m_defender->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosY,
; 214  : 									evt.m_defender->As_PhysicalGameObj()->Physics->PhysRender->Transform.PosZ,
; 215  : 									gzCommands->Get_Facing(seen)
; 216  : 								);

	mov	ecx, DWORD PTR [edi+28]
	mov	ebx, DWORD PTR [esi]
	mov	edx, ecx
	mov	eax, ecx
	mov	DWORD PTR tv2071[esp+208], ecx
	mov	ecx, DWORD PTR _seen$57523[esp+208]
	mov	DWORD PTR tv2088[esp+208], edx
	mov	edx, DWORD PTR ?gzCommands@@3PAUnc_ScriptCommands@@A ; gzCommands
	mov	DWORD PTR tv2105[esp+208], eax
	mov	eax, DWORD PTR [edx+72]
	push	ecx
	add	ebx, 136				; 00000088H
	call	eax
	fstp	QWORD PTR [esp+12]
	mov	ecx, DWORD PTR tv2071[esp+212]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+36]
	add	esp, 12					; 0000000cH
	call	eax
	mov	ecx, DWORD PTR [eax+1908]
	mov	edx, DWORD PTR [ecx+60]
	mov	ecx, DWORD PTR tv2088[esp+200]
	fld	DWORD PTR [edx+72]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+36]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	edx
	mov	eax, DWORD PTR [eax+1908]
	mov	ecx, DWORD PTR [eax+60]
	fld	DWORD PTR [ecx+56]
	mov	ecx, DWORD PTR tv2105[esp+208]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+36]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	eax
	mov	ecx, DWORD PTR [eax+1908]
	mov	edx, DWORD PTR [ecx+60]
	fld	DWORD PTR [edx+40]
	mov	eax, DWORD PTR [ebx]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0CP@MADCAIFN@?7Defender?5position?3?5X?$DL?$CFf?5?5?5Y?$DL?$CFf?5@
	push	esi
	call	eax

; 217  : 								this->WriteLog("\tPing: %d; Bandwidth: %d\n",
; 218  : 									nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Ping,
; 219  : 									PacketMgr->Get_Compressed_Bandwidth_Out(&nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Address) >> 10
; 220  : 								);

	mov	ecx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [ecx+76]
	mov	edx, DWORD PTR [eax+1884]
	mov	ebx, DWORD PTR [esi]
	mov	DWORD PTR tv2125[esp+232], eax
	mov	eax, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	ecx, DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx+1352]
	mov	ecx, DWORD PTR [eax+edx*4]
	add	ecx, 688				; 000002b0H
	add	esp, 40					; 00000028H
	push	ecx
	mov	ecx, DWORD PTR ?PacketMgr@@3PAVnc_PacketManagerClass@@A ; PacketMgr
	add	ebx, 136				; 00000088H
	call	?Get_Compressed_Bandwidth_Out@nc_PacketManagerClass@@QAEHPAUsockaddr_in@@@Z ; nc_PacketManagerClass::Get_Compressed_Bandwidth_Out
	mov	edx, DWORD PTR tv2125[esp+192]
$LN185@Player_Raw@2:
	mov	ecx, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	sar	eax, 10					; 0000000aH
	push	eax
	mov	eax, DWORD PTR [edx+1884]
	mov	edx, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [edx+1352]
	mov	edx, DWORD PTR [ecx+eax*4]
	mov	eax, DWORD PTR [edx+676]
	mov	ecx, DWORD PTR [ebx]
	push	eax
	push	OFFSET ??_C@_0BK@KOJDBAKO@?7Ping?3?5?$CFd?$DL?5Bandwidth?3?5?$CFd?6?$AA@
	push	esi
	call	ecx

; 221  : 								this->WriteLog("-------------------------------------------------\n");

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0DD@POLPKMBJ@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
	push	esi
	call	eax
	add	esp, 24					; 00000018H
$LN14@Player_Raw@2:
	mov	eax, DWORD PTR _i$57518[esp+192]
	add	eax, 1
	cmp	eax, DWORD PTR [esi+60]
	mov	DWORD PTR _i$57518[esp+192], eax
	jb	$LL15@Player_Raw@2
$LN13@Player_Raw@2:

; 222  : 							}
; 223  : 						}
; 224  : 					}
; 225  : 				}
; 226  : 			}
; 227  : 		}
; 228  : 	}
; 229  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+192]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$0:
	lea	ecx, DWORD PTR $T65212[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$1:
	lea	ecx, DWORD PTR $T65213[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$2:
	lea	ecx, DWORD PTR $T65220[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$3:
	lea	ecx, DWORD PTR $T65221[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$4:
	lea	ecx, DWORD PTR $T65222[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$5:
	lea	ecx, DWORD PTR $T65223[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z$6:
	lea	ecx, DWORD PTR $T65224[ebp]
	jmp	??1aWideString@@UAE@XZ
__ehhandler$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z:
	mov	eax, OFFSET __ehfuncinfo$?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Player_RawDamage@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z ENDP ; gzAntiCheatSpec::Player_RawDamage
PUBLIC	??_7gzEventObjectBase@@6B@			; gzEventObjectBase::`vftable'
PUBLIC	??0gzEventObjectBase@@QAE@ABV0@@Z		; gzEventObjectBase::gzEventObjectBase
PUBLIC	??_R4gzEventObjectBase@@6B@			; gzEventObjectBase::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzEventObjectBase@@@8			; gzEventObjectBase `RTTI Type Descriptor'
PUBLIC	??_R3gzEventObjectBase@@8			; gzEventObjectBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzEventObjectBase@@8			; gzEventObjectBase::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzEventObjectBase@@8		; gzEventObjectBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
;	COMDAT ??_R1A@?0A@EA@gzEventObjectBase@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzEventObjectBase@@8 DD FLAT:??_R0?AVgzEventObjectBase@@@8 ; gzEventObjectBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzEventObjectBase@@8
rdata$r	ENDS
;	COMDAT ??_R2gzEventObjectBase@@8
rdata$r	SEGMENT
??_R2gzEventObjectBase@@8 DD FLAT:??_R1A@?0A@EA@gzEventObjectBase@@8 ; gzEventObjectBase::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@gzEventBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzEventObjectBase@@8
rdata$r	SEGMENT
??_R3gzEventObjectBase@@8 DD 00H			; gzEventObjectBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2gzEventObjectBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzEventObjectBase@@@8
_DATA	SEGMENT
??_R0?AVgzEventObjectBase@@@8 DD FLAT:??_7type_info@@6B@ ; gzEventObjectBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzEventObjectBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzEventObjectBase@@6B@
rdata$r	SEGMENT
??_R4gzEventObjectBase@@6B@ DD 00H			; gzEventObjectBase::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzEventObjectBase@@@8
	DD	FLAT:??_R3gzEventObjectBase@@8
rdata$r	ENDS
;	COMDAT ??_7gzEventObjectBase@@6B@
CONST	SEGMENT
??_7gzEventObjectBase@@6B@ DD FLAT:??_R4gzEventObjectBase@@6B@ ; gzEventObjectBase::`vftable'
	DD	FLAT:?CanContinue@gzEventBase@@UAE_NXZ
	DD	FLAT:?Skippable@gzEventBase@@UAE_NXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzEventObjectBase@@QAE@ABV0@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0gzEventObjectBase@@QAE@ABV0@@Z PROC			; gzEventObjectBase::gzEventObjectBase, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	ecx, DWORD PTR ___that$[esp-4]
	mov	DWORD PTR [eax], OFFSET ??_7gzEventBase@@6B@
	fld	QWORD PTR [ecx+8]
	fstp	QWORD PTR [eax+8]
	mov	edx, DWORD PTR [ecx+16]
	mov	DWORD PTR [eax+16], edx
	mov	ecx, DWORD PTR [ecx+20]
	mov	DWORD PTR [eax+20], ecx
	mov	DWORD PTR [eax], OFFSET ??_7gzEventObjectBase@@6B@
	ret	4
??0gzEventObjectBase@@QAE@ABV0@@Z ENDP			; gzEventObjectBase::gzEventObjectBase
_TEXT	ENDS
PUBLIC	??_C@_0CO@MJIBCFBL@?$FLRoF?$FN?5New?5ammo?5added?5to?5weapon?3?5@ ; `string'
PUBLIC	__real@497423f0
PUBLIC	?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::AddAmmo
EXTRN	?Out@stConsole@@SAXPBDZZ:PROC			; stConsole::Out
EXTRN	?Get@nc_IntDataSafeClass@@QAEHXZ:PROC		; nc_IntDataSafeClass::Get
EXTRN	?Get@nc_FloatDataSafeClass@@QAEMXZ:PROC		; nc_FloatDataSafeClass::Get
EXTRN	__ftol2_sse:PROC
;	COMDAT ??_C@_0CO@MJIBCFBL@?$FLRoF?$FN?5New?5ammo?5added?5to?5weapon?3?5@
; File c:\program files (x86)\microsoft visual studio 8\vc\include\math.h
CONST	SEGMENT
??_C@_0CO@MJIBCFBL@?$FLRoF?$FN?5New?5ammo?5added?5to?5weapon?3?5@ DB '[Ro'
	DB	'F] New ammo added to weapon: %s; Ammo: %s', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT __real@497423f0
CONST	SEGMENT
__real@497423f0 DD 0497423f0r			; 999999
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
CONST	ENDS
;	COMDAT ?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z
_TEXT	SEGMENT
$T65623 = -4						; size = 4
tv358 = 8						; size = 4
_rofAmmo$ = 8						; size = 4
_ammo$ = 8						; size = 4
_weapon$ = 12						; size = 4
?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z PROC ; gzAntiCheatWeapons::AddAmmo, COMDAT
; _this$ = ecx

; 687  : {

	push	ecx
	push	ebx
	push	ebp
	mov	ebp, DWORD PTR [ecx+56]
	push	esi

; 688  : 	// Existence check
; 689  : 	for (unsigned int i = 0; i < this->m_data.Count(); i++)

	xor	ebx, ebx
	test	ebp, ebp
	push	edi
	mov	edi, DWORD PTR _ammo$[esp+16]

; 694  : 			{
; 695  : 				this->m_data[i]->ammoList[j]->DeleteCounter = 999999.0f;

	mov	DWORD PTR $T65623[esp+20], ebp
	jbe	SHORT $LN8@AddAmmo
	mov	ecx, DWORD PTR [ecx+48]
	mov	DWORD PTR tv358[esp+16], ecx
	mov	esi, ecx
	npad	1
$LL58@AddAmmo:
	mov	edx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [edx+12]
	xor	eax, eax
	test	ecx, ecx
	jbe	SHORT $LN9@AddAmmo

; 690  : 	{
; 691  : 		for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	edx, DWORD PTR [edx+4]
	npad	2
$LL7@AddAmmo:

; 692  : 		{
; 693  : 			if (this->m_data[i]->ammoList[j]->AmmoDef == ammo)

	mov	ebp, DWORD PTR [edx]
	cmp	DWORD PTR [ebp+4], edi
	je	$LN55@AddAmmo
	add	eax, 1
	add	edx, 4
	cmp	eax, ecx
	jb	SHORT $LL7@AddAmmo

; 690  : 	{
; 691  : 		for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	ebp, DWORD PTR $T65623[esp+20]
$LN9@AddAmmo:

; 688  : 	// Existence check
; 689  : 	for (unsigned int i = 0; i < this->m_data.Count(); i++)

	add	ebx, 1
	add	esi, 4
	cmp	ebx, ebp
	jb	SHORT $LL58@AddAmmo
$LN8@AddAmmo:

; 696  : 				return;
; 697  : 			}
; 698  : 		}
; 699  : 	}
; 700  : 
; 701  : 	gzRoFAmmoDataStruct *rofAmmo = new gzRoFAmmoDataStruct;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	701					; 000002bdH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	60					; 0000003cH
	call	??2@YAPAXI@Z				; operator new

; 702  : 	rofAmmo->Weapon         = &weapon;

	mov	esi, DWORD PTR _weapon$[esp+32]
	mov	DWORD PTR _rofAmmo$[esp+32], eax
	mov	DWORD PTR [eax], esi

; 703  : 	rofAmmo->AmmoDef        = ammo;

	mov	eax, DWORD PTR _rofAmmo$[esp+32]
	add	esp, 16					; 00000010H

; 704  : 	rofAmmo->AmmoDamage     = ammo->Damage.Get();

	lea	ecx, DWORD PTR [edi+40]
	mov	DWORD PTR [eax+4], edi
	call	?Get@nc_FloatDataSafeClass@@QAEMXZ	; nc_FloatDataSafeClass::Get
	mov	ecx, DWORD PTR _rofAmmo$[esp+16]
	fstp	DWORD PTR [ecx+40]

; 705  : 	rofAmmo->AmmoWarhead    = ammo->Warhead.Get();

	lea	ecx, DWORD PTR [edi+36]
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	edx, DWORD PTR _rofAmmo$[esp+16]

; 706  : 	rofAmmo->AmmoSprayCount = ammo->SprayCount.Get();

	lea	ecx, DWORD PTR [edi+68]
	mov	DWORD PTR [edx+44], eax
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	ecx, DWORD PTR _rofAmmo$[esp+16]
	mov	DWORD PTR [ecx+48], eax

; 707  : 	rofAmmo->WeapClipSize   = weapon.WeaponDef->ClipSize.Get();

	mov	ecx, DWORD PTR [esi+16]
	add	ecx, 116				; 00000074H
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	edx, DWORD PTR _rofAmmo$[esp+16]
	mov	DWORD PTR [edx+52], eax

; 708  : 	rofAmmo->WeapReloadTime = weapon.WeaponDef->ReloadTime.Get();

	mov	ecx, DWORD PTR [esi+16]
	add	ecx, 52					; 00000034H
	call	?Get@nc_FloatDataSafeClass@@QAEMXZ	; nc_FloatDataSafeClass::Get
	mov	eax, DWORD PTR _rofAmmo$[esp+16]
	fstp	DWORD PTR [eax+56]

; 709  : 
; 710  : 	if (rofAmmo->WeapClipSize == 1)

	mov	ebx, DWORD PTR _rofAmmo$[esp+16]

; 711  : 	{
; 712  : 		rofAmmo->counter = ((1.0f / ammo->RateOfFire) + rofAmmo->WeapReloadTime) < 1.0f ? 1.0f : floor((1.0f / ammo->RateOfFire) + rofAmmo->WeapReloadTime);

	fld1
	mov	ebp, 1
	cmp	DWORD PTR [ebx+52], ebp
	fld	ST(0)
	fdiv	DWORD PTR [edi+60]
	jne	SHORT $LN3@AddAmmo
	fadd	DWORD PTR [ebx+56]
	fcom	ST(1)
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN60@AddAmmo
	fstp	ST(0)
	jmp	SHORT $LN16@AddAmmo
$LN55@AddAmmo:

; 694  : 			{
; 695  : 				this->m_data[i]->ammoList[j]->DeleteCounter = 999999.0f;

	mov	ecx, DWORD PTR tv358[esp+16]
	fld	DWORD PTR __real@497423f0
	mov	edx, DWORD PTR [ecx+ebx*4]
	mov	ecx, DWORD PTR [edx+4]
	mov	edx, DWORD PTR [ecx+eax*4]
	pop	edi
	fstp	DWORD PTR [edx+36]
	pop	esi
	pop	ebp
	pop	ebx

; 736  : #endif
; 737  : }

	pop	ecx
	ret	8
$LN60@AddAmmo:

; 711  : 	{
; 712  : 		rofAmmo->counter = ((1.0f / ammo->RateOfFire) + rofAmmo->WeapReloadTime) < 1.0f ? 1.0f : floor((1.0f / ammo->RateOfFire) + rofAmmo->WeapReloadTime);

	fstp	ST(1)
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	_floor
	add	esp, 8
$LN16@AddAmmo:
	fstp	DWORD PTR [ebx+8]

; 713  : 		rofAmmo->maximumHit = (int)ceil(rofAmmo->AmmoSprayCount * gzAntiCheatMgr->m_settings->RoF.VariationAllowance);

	mov	eax, DWORD PTR _rofAmmo$[esp+16]
	mov	ecx, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	fild	DWORD PTR [eax+48]
	mov	edx, DWORD PTR [ecx+36]
	fmul	DWORD PTR [edx+36]

; 714  : 	}
; 715  : 	else

	jmp	SHORT $LN67@AddAmmo
$LN3@AddAmmo:

; 716  : 	{
; 717  : 		rofAmmo->counter = (1.0f / ammo->RateOfFire) < 1.0f ? 1.0f : floor(1.0f / ammo->RateOfFire);

	fcom	ST(1)
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN64@AddAmmo
	fstp	ST(0)
	jmp	SHORT $LN18@AddAmmo
$LN64@AddAmmo:
	fstp	ST(1)
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	_floor
	add	esp, 8
$LN18@AddAmmo:
	fstp	DWORD PTR [ebx+8]

; 718  : 		rofAmmo->maximumHit = (int)ceil(ammo->RateOfFire * rofAmmo->AmmoSprayCount * gzAntiCheatMgr->m_settings->RoF.VariationAllowance);

	mov	ecx, DWORD PTR _rofAmmo$[esp+16]
	mov	edx, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	fild	DWORD PTR [ecx+48]
	mov	eax, DWORD PTR [edx+36]
	sub	esp, 8
	fmul	DWORD PTR [eax+36]
	fmul	DWORD PTR [edi+60]
	fstp	QWORD PTR [esp]
	call	_ceil
	add	esp, 8
	call	__ftol2_sse
	mov	edx, DWORD PTR _rofAmmo$[esp+16]
	mov	DWORD PTR [edx+20], eax

; 719  : 		if (rofAmmo->maximumHit <= 0)

	mov	eax, DWORD PTR _rofAmmo$[esp+16]
	cmp	DWORD PTR [eax+20], 0
	jg	SHORT $LN1@AddAmmo

; 720  : 			rofAmmo->maximumHit = (int)ceil(gzAntiCheatMgr->m_settings->RoF.VariationAllowance);

	mov	ecx, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	mov	edx, DWORD PTR [ecx+36]
	fld	DWORD PTR [edx+36]
$LN67@AddAmmo:
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	_ceil
	add	esp, 8
	call	__ftol2_sse
	mov	ecx, DWORD PTR _rofAmmo$[esp+16]
	mov	DWORD PTR [ecx+20], eax
$LN1@AddAmmo:

; 721  : 	}
; 722  : 
; 723  : 	rofAmmo->cycleInterval  = rofAmmo->counter;

	mov	eax, DWORD PTR _rofAmmo$[esp+16]
	fld	DWORD PTR [eax+8]
	fstp	DWORD PTR [eax+12]

; 724  : 	rofAmmo->hitCount       = 0;

	mov	edx, DWORD PTR _rofAmmo$[esp+16]

; 725  : 	rofAmmo->meansureCycle  = 1;
; 726  : 	rofAmmo->measureTime    = 0.0f;

	fldz
	xor	eax, eax
	mov	DWORD PTR [edx+16], eax
	mov	ecx, DWORD PTR _rofAmmo$[esp+16]
	mov	DWORD PTR [ecx+28], ebp
	mov	edx, DWORD PTR _rofAmmo$[esp+16]
	fstp	DWORD PTR [edx+24]

; 727  : 	rofAmmo->additionMaxHit = 0;

	mov	ecx, DWORD PTR _rofAmmo$[esp+16]

; 728  : 	rofAmmo->DeleteCounter  = 999999.0f;

	fld	DWORD PTR __real@497423f0
	mov	DWORD PTR [ecx+32], eax
	mov	edx, DWORD PTR _rofAmmo$[esp+16]

; 729  : 	weapon.ammoList.Add(rofAmmo);

	mov	eax, DWORD PTR [esi]
	fstp	DWORD PTR [edx+36]
	mov	edx, DWORD PTR [eax+12]
	lea	ecx, DWORD PTR _rofAmmo$[esp+16]
	push	ecx
	mov	ecx, esi
	call	edx

; 730  : 
; 731  : #ifdef ROFMSG
; 732  : 	stConsole::Out("[RoF] New ammo added to weapon: %s; Ammo: %s\n",
; 733  : 		weapon.WeaponDef->Get_Name(),
; 734  : 		ammo->Get_Name()
; 735  : 	);

	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+48]
	mov	esi, DWORD PTR [esi+16]
	mov	ecx, edi
	call	edx
	push	eax
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, esi
	call	edx
	push	eax
	push	OFFSET ??_C@_0CO@MJIBCFBL@?$FLRoF?$FN?5New?5ammo?5added?5to?5weapon?3?5@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 12					; 0000000cH
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 736  : #endif
; 737  : }

	pop	ecx
	ret	8
?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z ENDP ; gzAntiCheatWeapons::AddAmmo
_TEXT	ENDS
PUBLIC	__real@bf800000
PUBLIC	?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::GetWeaponLastSelectTime
EXTRN	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ:PROC ; gzPlayer::GetSoldier
;	COMDAT __real@bf800000
; File d:\source code\fds lib\new\fds_vector.h
CONST	SEGMENT
__real@bf800000 DD 0bf800000r			; -1
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
CONST	ENDS
;	COMDAT ?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z
_TEXT	SEGMENT
tv283 = 8						; size = 4
_weapon$ = 8						; size = 4
?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z PROC ; gzAntiCheatWeapons::GetWeaponLastSelectTime, COMDAT
; _this$ = ecx

; 767  : 	nc_SoldierGameObj *soldier = this->m_owner->GetSoldier();

	mov	ecx, DWORD PTR [ecx+36]
	push	ebx
	push	ebp
	push	esi
	push	edi
	call	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ ; gzPlayer::GetSoldier

; 768  : 	if (soldier)

	fld	DWORD PTR __real@bf800000
	test	eax, eax
	je	$LN10@GetWeaponL

; 769  : 	{
; 770  : 		if (soldier->Vehicle)

	mov	ecx, DWORD PTR [eax+2444]
	test	ecx, ecx
	mov	ebx, DWORD PTR _weapon$[esp+12]
	je	SHORT $LN5@GetWeaponL

; 771  : 		{
; 772  : 			for (int i = 1; i < soldier->Vehicle->WeaponBag->Vector.Count(); i++)

	mov	ecx, DWORD PTR [ecx+1968]
	mov	esi, DWORD PTR [ecx+20]
	mov	edx, 1
	cmp	esi, edx
	jle	SHORT $LN5@GetWeaponL
	mov	ecx, DWORD PTR [ecx+8]
	mov	edi, DWORD PTR [ebx+16]
	add	ecx, 4
$LN7@GetWeaponL:

; 773  : 			{
; 774  : 				if (soldier->Vehicle->WeaponBag->Vector[i]->WeaponDef == weapon->WeaponDef)

	mov	ebp, DWORD PTR [ecx]
	cmp	DWORD PTR [ebp], edi
	je	SHORT $LN33@GetWeaponL
	add	edx, 1
	add	ecx, 4
	cmp	edx, esi
	jl	SHORT $LN7@GetWeaponL
$LN5@GetWeaponL:

; 776  : 			}
; 777  : 		}
; 778  : 
; 779  : 		if (soldier->WeaponBag->Vector.Count() > 1)

	mov	ecx, DWORD PTR [eax+1968]
	cmp	DWORD PTR [ecx+20], 1
	jle	SHORT $LN10@GetWeaponL

; 780  : 		{
; 781  : 			if (soldier->WeaponBag->Vector[soldier->WeaponBag->current]->WeaponDef == weapon->WeaponDef)

	mov	eax, ecx
	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+edx*4]
	mov	edx, DWORD PTR [ecx]
	cmp	edx, DWORD PTR [ebx+16]

; 782  : 				return 0.0f;

	je	SHORT $LN33@GetWeaponL

; 783  : 
; 784  : 			if (weapon->lastSelectTime > -1.0f)

	fcom	DWORD PTR [ebx+20]
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN10@GetWeaponL
	fstp	ST(0)

; 785  : 				return (((float)(GetTickCount() - SystemTime) / 1000.0f) - weapon->lastSelectTime);

	call	DWORD PTR __imp__GetTickCount@0
	mov	ecx, DWORD PTR ?SystemTime@@3AAKA	; SystemTime
	sub	eax, DWORD PTR [ecx]
	test	eax, eax
	mov	DWORD PTR tv283[esp+12], eax
	fild	DWORD PTR tv283[esp+12]
	jge	SHORT $LN44@GetWeaponL
	fadd	DWORD PTR __real@4f800000
$LN44@GetWeaponL:
	fmul	DWORD PTR __real@3a83126f
	fsub	DWORD PTR [ebx+20]
$LN10@GetWeaponL:
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 786  : 		}
; 787  : 	}
; 788  : 	return -1.0f;
; 789  : }

	ret	4
$LN33@GetWeaponL:
	pop	edi

; 773  : 			{
; 774  : 				if (soldier->Vehicle->WeaponBag->Vector[i]->WeaponDef == weapon->WeaponDef)

	fstp	ST(0)

; 775  : 					return 0.0f;

	fldz
	pop	esi
	pop	ebp
	pop	ebx

; 786  : 		}
; 787  : 	}
; 788  : 	return -1.0f;
; 789  : }

	ret	4
?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ENDP ; gzAntiCheatWeapons::GetWeaponLastSelectTime
_TEXT	ENDS
PUBLIC	?Think@gzAntiCheatHitLog@@UAEXXZ		; gzAntiCheatHitLog::Think
; Function compile flags: /Ogtpy
;	COMDAT ?Think@gzAntiCheatHitLog@@UAEXXZ
_TEXT	SEGMENT
tv160 = -4						; size = 4
?Think@gzAntiCheatHitLog@@UAEXXZ PROC			; gzAntiCheatHitLog::Think, COMDAT
; _this$ = ecx

; 809  : {

	push	ecx
	push	esi
	push	edi
	mov	esi, ecx

; 810  : 	SubFrameTime(this->m_checkCounter, true);

	lea	edi, DWORD PTR [esi+60]
	push	1
	push	edi
	mov	DWORD PTR tv160[esp+20], edi
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 811  : 	if (this->m_checkCounter < 0.0f)

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

; 812  : 	{
; 813  : 		for (unsigned int i = 0; i < this->m_data.Count(); i++)

	xor	ebp, ebp
	cmp	DWORD PTR [esi+56], ebp
	jbe	SHORT $LN3@Think@2
	push	ebx
	xor	ebx, ebx
	npad	3
$LL5@Think@2:

; 814  : 		{
; 815  : 			if ((GetTickCount() - this->m_data[i].m_time) >= (ANTICHEAT_HITLOG_LIVE * 1000) || !nc_GameObjManager::Find_PhysicalGameObj(this->m_data[i].m_obj))

	mov	edi, DWORD PTR [esi+48]
	add	edi, ebx
	call	DWORD PTR __imp__GetTickCount@0
	sub	eax, DWORD PTR [edi+4]
	cmp	eax, 2000				; 000007d0H
	jae	SHORT $LN1@Think@2
	mov	eax, DWORD PTR [esi+48]
	add	eax, ebx
	mov	eax, DWORD PTR [eax+8]
	push	eax
	call	?Find_PhysicalGameObj@nc_GameObjManager@@SAPAVnc_PhysicalGameObj@@H@Z ; nc_GameObjManager::Find_PhysicalGameObj
	add	esp, 4
	test	eax, eax
	jne	SHORT $LN4@Think@2
$LN1@Think@2:

; 816  : 			{
; 817  : 				this->m_data.Delete(i);

	mov	edx, DWORD PTR [esi+44]
	mov	eax, DWORD PTR [edx+20]
	lea	ecx, DWORD PTR [esi+44]
	push	ebp
	call	eax

; 818  : 				i--;

	sub	ebp, 1
	sub	ebx, 12					; 0000000cH
$LN4@Think@2:
	add	ebp, 1
	add	ebx, 12					; 0000000cH
	cmp	ebp, DWORD PTR [esi+56]
	jb	SHORT $LL5@Think@2
	mov	edi, DWORD PTR tv160[esp+20]
	pop	ebx
$LN3@Think@2:

; 819  : 			}
; 820  : 		}
; 821  : 		this->m_checkCounter = 1.0f;

	fld1
	pop	ebp
	fstp	DWORD PTR [edi]
$LN6@Think@2:
	pop	edi
	pop	esi

; 822  : 	}
; 823  : }

	pop	ecx
	ret	0
?Think@gzAntiCheatHitLog@@UAEXXZ ENDP			; gzAntiCheatHitLog::Think
_TEXT	ENDS
PUBLIC	?GetLast@gzAntiCheatHitLog@@QAEPAUgzHitLogStruct@@I@Z ; gzAntiCheatHitLog::GetLast
; Function compile flags: /Ogtpy
;	COMDAT ?GetLast@gzAntiCheatHitLog@@QAEPAUgzHitLogStruct@@I@Z
_TEXT	SEGMENT
_objId$ = 8						; size = 4
?GetLast@gzAntiCheatHitLog@@QAEPAUgzHitLogStruct@@I@Z PROC ; gzAntiCheatHitLog::GetLast, COMDAT
; _this$ = ecx

; 847  : 	for (int i = (this->m_data.Count() - 1); i >= 0; i--)

	mov	eax, DWORD PTR [ecx+56]
	sub	eax, 1
	push	esi
	js	SHORT $LN2@GetLast
	mov	edx, DWORD PTR [ecx+48]
	mov	esi, DWORD PTR _objId$[esp]
	lea	ecx, DWORD PTR [eax+eax*2]
	lea	ecx, DWORD PTR [edx+ecx*4+8]
$LL4@GetLast:

; 848  : 	{
; 849  : 		if (this->m_data[i].m_obj == objId)

	cmp	DWORD PTR [ecx], esi
	je	SHORT $LN14@GetLast
	sub	eax, 1
	sub	ecx, 12					; 0000000cH
	test	eax, eax
	jge	SHORT $LL4@GetLast
$LN2@GetLast:

; 851  : 	}
; 852  : 	return NULL;

	xor	eax, eax
	pop	esi

; 853  : }

	ret	4
$LN14@GetLast:

; 850  : 			return &this->m_data[i];

	lea	eax, DWORD PTR [eax+eax*2]
	lea	eax, DWORD PTR [edx+eax*4]
	pop	esi

; 853  : }

	ret	4
?GetLast@gzAntiCheatHitLog@@QAEPAUgzHitLogStruct@@I@Z ENDP ; gzAntiCheatHitLog::GetLast
_TEXT	ENDS
PUBLIC	?GetHitCount@gzAntiCheatHitLog@@QAEHIK@Z	; gzAntiCheatHitLog::GetHitCount
; Function compile flags: /Ogtpy
;	COMDAT ?GetHitCount@gzAntiCheatHitLog@@QAEHIK@Z
_TEXT	SEGMENT
_count$ = -4						; size = 4
_objId$ = 8						; size = 4
_interval$ = 12						; size = 4
?GetHitCount@gzAntiCheatHitLog@@QAEHIK@Z PROC		; gzAntiCheatHitLog::GetHitCount, COMDAT
; _this$ = ecx

; 855  : {

	push	ecx
	push	ebp
	push	edi

; 856  : 	int count = 0;

	xor	eax, eax
	mov	edi, ecx

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

	xor	ebp, ebp
	cmp	DWORD PTR [edi+56], eax
	mov	DWORD PTR _count$[esp+12], eax
	jbe	SHORT $LN2@GetHitCoun
	push	ebx
	push	esi
	xor	ebx, ebx
	npad	10
$LL4@GetHitCoun:

; 858  : 	{
; 859  : 		if (this->m_data[i].m_obj == objId && (GetTickCount() - this->m_data[i].m_time) < (interval * 1000))

	mov	eax, DWORD PTR [edi+48]
	mov	ecx, DWORD PTR _objId$[esp+16]
	cmp	DWORD PTR [eax+ebx+8], ecx
	lea	esi, DWORD PTR [eax+ebx]
	jne	SHORT $LN3@GetHitCoun
	call	DWORD PTR __imp__GetTickCount@0
	mov	edx, DWORD PTR _interval$[esp+16]
	sub	eax, DWORD PTR [esi+4]
	imul	edx, 1000				; 000003e8H
	cmp	eax, edx
	jae	SHORT $LN3@GetHitCoun

; 860  : 			count++;

	add	DWORD PTR _count$[esp+20], 1
$LN3@GetHitCoun:

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

	add	ebp, 1
	add	ebx, 12					; 0000000cH
	cmp	ebp, DWORD PTR [edi+56]
	jb	SHORT $LL4@GetHitCoun

; 861  : 	}
; 862  : 	return count;

	mov	eax, DWORD PTR _count$[esp+20]
	pop	esi
	pop	ebx
$LN2@GetHitCoun:
	pop	edi
	pop	ebp

; 863  : }

	pop	ecx
	ret	8
?GetHitCount@gzAntiCheatHitLog@@QAEHIK@Z ENDP		; gzAntiCheatHitLog::GetHitCount
_TEXT	ENDS
PUBLIC	??_7gzAntiCheatManager@@6B@			; gzAntiCheatManager::`vftable'
PUBLIC	??0gzAntiCheatManager@@QAE@XZ			; gzAntiCheatManager::gzAntiCheatManager
PUBLIC	??_R4gzAntiCheatManager@@6B@			; gzAntiCheatManager::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzAntiCheatManager@@@8			; gzAntiCheatManager `RTTI Type Descriptor'
PUBLIC	??_R3gzAntiCheatManager@@8			; gzAntiCheatManager::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzAntiCheatManager@@8			; gzAntiCheatManager::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzAntiCheatManager@@8		; gzAntiCheatManager::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?GetName@gzAntiCheatManager@@UAEPBDXZ		; gzAntiCheatManager::GetName
EXTRN	??_EgzAntiCheatManager@@UAEPAXI@Z:PROC		; gzAntiCheatManager::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@gzAntiCheatManager@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzAntiCheatManager@@8 DD FLAT:??_R0?AVgzAntiCheatManager@@@8 ; gzAntiCheatManager::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzAntiCheatManager@@8
rdata$r	ENDS
;	COMDAT ??_R2gzAntiCheatManager@@8
rdata$r	SEGMENT
??_R2gzAntiCheatManager@@8 DD FLAT:??_R1A@?0A@EA@gzAntiCheatManager@@8 ; gzAntiCheatManager::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzAntiCheatManager@@8
rdata$r	SEGMENT
??_R3gzAntiCheatManager@@8 DD 00H			; gzAntiCheatManager::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2gzAntiCheatManager@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzAntiCheatManager@@@8
_DATA	SEGMENT
??_R0?AVgzAntiCheatManager@@@8 DD FLAT:??_7type_info@@6B@ ; gzAntiCheatManager `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzAntiCheatManager@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzAntiCheatManager@@6B@
rdata$r	SEGMENT
??_R4gzAntiCheatManager@@6B@ DD 00H			; gzAntiCheatManager::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzAntiCheatManager@@@8
	DD	FLAT:??_R3gzAntiCheatManager@@8
rdata$r	ENDS
;	COMDAT ??_7gzAntiCheatManager@@6B@
CONST	SEGMENT
??_7gzAntiCheatManager@@6B@ DD FLAT:??_R4gzAntiCheatManager@@6B@ ; gzAntiCheatManager::`vftable'
	DD	FLAT:??_EgzAntiCheatManager@@UAEPAXI@Z
	DD	FLAT:?GetName@gzAntiCheatManager@@UAEPBDXZ
	DD	FLAT:?Delete@gzAntiCheatManager@@UAEXXZ
	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$??0gzAntiCheatManager@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzAntiCheatManager@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0gzAntiCheatManager@@QAE@XZ$1
__ehfuncinfo$??0gzAntiCheatManager@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0gzAntiCheatManager@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??0gzAntiCheatManager@@QAE@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T65740 = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0gzAntiCheatManager@@QAE@XZ PROC			; gzAntiCheatManager::gzAntiCheatManager, COMDAT
; _this$ = ecx

; 871  : {

	push	-1
	push	__ehhandler$??0gzAntiCheatManager@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+24], esi
	call	??0EventHandler@@QAE@XZ			; EventHandler::EventHandler

; 872  : 	this->m_settings = new gzSettingsAntiCheatClass;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	872					; 00000368H
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	mov	DWORD PTR __$EHRec$[esp+44], 0
	mov	DWORD PTR [esi], OFFSET ??_7gzAntiCheatManager@@6B@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	40					; 00000028H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T65740[esp+24], eax
	test	eax, eax
	mov	BYTE PTR __$EHRec$[esp+32], 1
	je	SHORT $LN3@gzAntiChea
	mov	ecx, eax
	call	??0gzSettingsAntiCheatClass@@QAE@XZ
	mov	DWORD PTR [esi+36], eax

; 873  : }

	mov	eax, esi
	pop	esi
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
$LN3@gzAntiChea:
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	xor	eax, eax
	mov	DWORD PTR [esi+36], eax
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzAntiCheatManager@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__unwindfunclet$??0gzAntiCheatManager@@QAE@XZ$1:
	mov	eax, DWORD PTR $T65740[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$??0gzAntiCheatManager@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0gzAntiCheatManager@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzAntiCheatManager@@QAE@XZ ENDP			; gzAntiCheatManager::gzAntiCheatManager
PUBLIC	??_C@_0BD@NCMBDBNM@gzAntiCheatManager?$AA@	; `string'
;	COMDAT ??_C@_0BD@NCMBDBNM@gzAntiCheatManager?$AA@
; File d:\source code\stgm\stanticheat.h
CONST	SEGMENT
??_C@_0BD@NCMBDBNM@gzAntiCheatManager?$AA@ DB 'gzAntiCheatManager', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetName@gzAntiCheatManager@@UAEPBDXZ
_TEXT	SEGMENT
?GetName@gzAntiCheatManager@@UAEPBDXZ PROC		; gzAntiCheatManager::GetName, COMDAT
; _this$ = ecx

; 138  : 		return "gzAntiCheatManager";

	mov	eax, OFFSET ??_C@_0BD@NCMBDBNM@gzAntiCheatManager?$AA@

; 139  : 	};

	ret	0
?GetName@gzAntiCheatManager@@UAEPBDXZ ENDP		; gzAntiCheatManager::GetName
_TEXT	ENDS
PUBLIC	??1gzAntiCheatManager@@UAE@XZ			; gzAntiCheatManager::~gzAntiCheatManager
; Function compile flags: /Ogtpy
;	COMDAT ??1gzAntiCheatManager@@UAE@XZ
_TEXT	SEGMENT
??1gzAntiCheatManager@@UAE@XZ PROC			; gzAntiCheatManager::~gzAntiCheatManager, COMDAT
; _this$ = ecx
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
??1gzAntiCheatManager@@UAE@XZ ENDP			; gzAntiCheatManager::~gzAntiCheatManager
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GgzAntiCheatManager@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzAntiCheatManager@@UAEPAXI@Z PROC			; gzAntiCheatManager::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN7@scalar@5
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN7@scalar@5:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzAntiCheatManager@@UAEPAXI@Z ENDP			; gzAntiCheatManager::`scalar deleting destructor'
_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@PAUgzRGHSpecDataStruct@@@@UAE@XZ	; aVector<gzRGHSpecDataStruct *>::~aVector<gzRGHSpecDataStruct *>
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\avector.h
;	COMDAT ??1?$aVector@PAUgzRGHSpecDataStruct@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@PAUgzRGHSpecDataStruct@@@@UAE@XZ PROC	; aVector<gzRGHSpecDataStruct *>::~aVector<gzRGHSpecDataStruct *>, 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@PAUgzRGHSpecDataStruct@@@@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@PAUgzRGHSpecDataStruct@@@@UAE@XZ ENDP	; aVector<gzRGHSpecDataStruct *>::~aVector<gzRGHSpecDataStruct *>
_TEXT	ENDS
PUBLIC	??1?$aVector@PAUgzRoFAmmoDataStruct@@@@UAE@XZ	; aVector<gzRoFAmmoDataStruct *>::~aVector<gzRoFAmmoDataStruct *>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$aVector@PAUgzRoFAmmoDataStruct@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@PAUgzRoFAmmoDataStruct@@@@UAE@XZ PROC	; aVector<gzRoFAmmoDataStruct *>::~aVector<gzRoFAmmoDataStruct *>, 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@PAUgzRoFAmmoDataStruct@@@@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@PAUgzRoFAmmoDataStruct@@@@UAE@XZ ENDP	; aVector<gzRoFAmmoDataStruct *>::~aVector<gzRoFAmmoDataStruct *>
_TEXT	ENDS
PUBLIC	??1?$aVector@PAUgzRoFWeaponDataStruct@@@@UAE@XZ	; aVector<gzRoFWeaponDataStruct *>::~aVector<gzRoFWeaponDataStruct *>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$aVector@PAUgzRoFWeaponDataStruct@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@PAUgzRoFWeaponDataStruct@@@@UAE@XZ PROC	; aVector<gzRoFWeaponDataStruct *>::~aVector<gzRoFWeaponDataStruct *>, 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@PAUgzRoFWeaponDataStruct@@@@6B@
	je	SHORT $LN8@aVector@3
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN8@aVector@3:
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi

; 47   : 	};

	ret	0
??1?$aVector@PAUgzRoFWeaponDataStruct@@@@UAE@XZ ENDP	; aVector<gzRoFWeaponDataStruct *>::~aVector<gzRoFWeaponDataStruct *>
_TEXT	ENDS
PUBLIC	??1?$aVector@UgzHitLogStruct@@@@UAE@XZ		; aVector<gzHitLogStruct>::~aVector<gzHitLogStruct>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$aVector@UgzHitLogStruct@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@UgzHitLogStruct@@@@UAE@XZ PROC		; aVector<gzHitLogStruct>::~aVector<gzHitLogStruct>, 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@UgzHitLogStruct@@@@6B@
	je	SHORT $LN8@aVector@4
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN8@aVector@4:
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi

; 47   : 	};

	ret	0
??1?$aVector@UgzHitLogStruct@@@@UAE@XZ ENDP		; aVector<gzHitLogStruct>::~aVector<gzHitLogStruct>
_TEXT	ENDS
PUBLIC	??1?$aVector@UgzRoFHitDataStruct@@@@UAE@XZ	; aVector<gzRoFHitDataStruct>::~aVector<gzRoFHitDataStruct>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$aVector@UgzRoFHitDataStruct@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@UgzRoFHitDataStruct@@@@UAE@XZ PROC		; aVector<gzRoFHitDataStruct>::~aVector<gzRoFHitDataStruct>, 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@UgzRoFHitDataStruct@@@@6B@
	je	SHORT $LN8@aVector@5
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN8@aVector@5:
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi

; 47   : 	};

	ret	0
??1?$aVector@UgzRoFHitDataStruct@@@@UAE@XZ ENDP		; aVector<gzRoFHitDataStruct>::~aVector<gzRoFHitDataStruct>
_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@PAUgzRGHSpecDataStruct@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@PAUgzRGHSpecDataStruct@@@@UAEPAXI@Z PROC	; aVector<gzRGHSpecDataStruct *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAUgzRGHSpecDataStruct@@@@6B@
	je	SHORT $LN6@scalar@6
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], 0
$LN6@scalar@6:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@6
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@6:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@PAUgzRGHSpecDataStruct@@@@UAEPAXI@Z ENDP	; aVector<gzRGHSpecDataStruct *>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEPAXI@Z PROC	; aVector<gzRoFAmmoDataStruct *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
	je	SHORT $LN6@scalar@7
	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@7:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@7
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@7:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@PAUgzRoFAmmoDataStruct@@@@UAEPAXI@Z ENDP	; aVector<gzRoFAmmoDataStruct *>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEPAXI@Z PROC ; aVector<gzRoFWeaponDataStruct *>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@
	je	SHORT $LN6@scalar@8
	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@8:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@8
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@8:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@PAUgzRoFWeaponDataStruct@@@@UAEPAXI@Z ENDP ; aVector<gzRoFWeaponDataStruct *>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@UgzHitLogStruct@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@UgzHitLogStruct@@@@UAEPAXI@Z PROC		; aVector<gzHitLogStruct>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@UgzHitLogStruct@@@@6B@
	je	SHORT $LN6@scalar@9
	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@9:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@9
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@9:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@UgzHitLogStruct@@@@UAEPAXI@Z ENDP		; aVector<gzHitLogStruct>::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_G?$aVector@UgzRoFHitDataStruct@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@UgzRoFHitDataStruct@@@@UAEPAXI@Z PROC	; aVector<gzRoFHitDataStruct>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@UgzRoFHitDataStruct@@@@6B@
	je	SHORT $LN6@scalar@10
	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@10:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@10
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@10:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@UgzRoFHitDataStruct@@@@UAEPAXI@Z ENDP	; aVector<gzRoFHitDataStruct>::`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	??_7gzAntiCheatSpec@@6B@			; gzAntiCheatSpec::`vftable'
PUBLIC	??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z		; gzAntiCheatSpec::gzAntiCheatSpec
PUBLIC	??_R4gzAntiCheatSpec@@6B@			; gzAntiCheatSpec::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzAntiCheatSpec@@@8			; gzAntiCheatSpec `RTTI Type Descriptor'
PUBLIC	??_R3gzAntiCheatSpec@@8				; gzAntiCheatSpec::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzAntiCheatSpec@@8				; gzAntiCheatSpec::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzAntiCheatSpec@@8		; gzAntiCheatSpec::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?GetName@gzAntiCheatSpec@@UAEPBDXZ		; gzAntiCheatSpec::GetName
EXTRN	??_EgzAntiCheatSpec@@UAEPAXI@Z:PROC		; gzAntiCheatSpec::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@gzAntiCheatSpec@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzAntiCheatSpec@@8 DD FLAT:??_R0?AVgzAntiCheatSpec@@@8 ; gzAntiCheatSpec::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzAntiCheatSpec@@8
rdata$r	ENDS
;	COMDAT ??_R2gzAntiCheatSpec@@8
rdata$r	SEGMENT
??_R2gzAntiCheatSpec@@8 DD FLAT:??_R1A@?0A@EA@gzAntiCheatSpec@@8 ; gzAntiCheatSpec::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@gzAntiCheatBaseClass@@8
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzAntiCheatSpec@@8
rdata$r	SEGMENT
??_R3gzAntiCheatSpec@@8 DD 00H				; gzAntiCheatSpec::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2gzAntiCheatSpec@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzAntiCheatSpec@@@8
_DATA	SEGMENT
??_R0?AVgzAntiCheatSpec@@@8 DD FLAT:??_7type_info@@6B@	; gzAntiCheatSpec `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzAntiCheatSpec@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzAntiCheatSpec@@6B@
rdata$r	SEGMENT
??_R4gzAntiCheatSpec@@6B@ DD 00H			; gzAntiCheatSpec::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzAntiCheatSpec@@@8
	DD	FLAT:??_R3gzAntiCheatSpec@@8
rdata$r	ENDS
;	COMDAT ??_7gzAntiCheatSpec@@6B@
CONST	SEGMENT
??_7gzAntiCheatSpec@@6B@ DD FLAT:??_R4gzAntiCheatSpec@@6B@ ; gzAntiCheatSpec::`vftable'
	DD	FLAT:??_EgzAntiCheatSpec@@UAEPAXI@Z
	DD	FLAT:?GetName@gzAntiCheatSpec@@UAEPBDXZ
	DD	FLAT:?Delete@gzAntiCheatSpec@@UAEXXZ
	DD	FLAT:?SetDeletePending@gzBase@@UAEXXZ
	DD	FLAT:?Level_Loaded@gzAntiCheatSpec@@UAEXXZ
	DD	FLAT:?Level_Ended@EventHandler@@UAEXXZ
	DD	FLAT:?Think@gzAntiCheatSpec@@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@gzAntiCheatSpec@@UAEXAAVgzEventObjectDamage@@@Z
	DD	FLAT:?Object_Created@gzAntiCheatSpec@@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
	DD	FLAT:?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z$1
__ehfuncinfo$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
xdata$x	ENDS
;	COMDAT ??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_owner$ = 8						; size = 4
??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z PROC		; gzAntiCheatSpec::gzAntiCheatSpec, COMDAT
; _this$ = ecx

; 58   : {

	push	-1
	push	__ehhandler$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	eax, DWORD PTR _owner$[esp+12]
	push	esi
	mov	esi, ecx
	push	eax
	mov	DWORD PTR _this$[esp+24], esi
	call	??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z ; gzAntiCheatBaseClass::gzAntiCheatBaseClass
	xor	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7gzAntiCheatSpec@@6B@
	mov	DWORD PTR __$EHRec$[esp+28], eax
	mov	DWORD PTR [esi+48], OFFSET ??_7?$aVector@PAUgzRGHSpecDataStruct@@@@6B@
	mov	DWORD PTR [esi+52], eax
	mov	DWORD PTR [esi+56], eax
	mov	DWORD PTR [esi+60], eax

; 59   : 	this->RegisterEvent(EVT_OBJECT_CREATE);

	push	eax
	push	12288					; 00003000H
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+36], 1
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 60   : 
; 61   : 	this->m_checkTimeCounter = 0.0f;

	fldz

; 62   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	fstp	DWORD PTR [esi+44]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1gzAntiCheatBaseClass@@UAE@XZ
__unwindfunclet$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 48					; 00000030H
	jmp	??1?$aVector@PAUgzRGHSpecDataStruct@@@@UAE@XZ ; aVector<gzRGHSpecDataStruct *>::~aVector<gzRGHSpecDataStruct *>
__ehhandler$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzAntiCheatSpec@@QAE@PAVgzPlayer@@@Z ENDP		; gzAntiCheatSpec::gzAntiCheatSpec
PUBLIC	??_C@_0BA@DBNGKJND@gzAntiCheatSpec?$AA@		; `string'
;	COMDAT ??_C@_0BA@DBNGKJND@gzAntiCheatSpec?$AA@
; File d:\source code\stgm\stanticheat.h
CONST	SEGMENT
??_C@_0BA@DBNGKJND@gzAntiCheatSpec?$AA@ DB 'gzAntiCheatSpec', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetName@gzAntiCheatSpec@@UAEPBDXZ
_TEXT	SEGMENT
?GetName@gzAntiCheatSpec@@UAEPBDXZ PROC			; gzAntiCheatSpec::GetName, COMDAT
; _this$ = ecx

; 48   : 		return "gzAntiCheatSpec";

	mov	eax, OFFSET ??_C@_0BA@DBNGKJND@gzAntiCheatSpec?$AA@

; 49   : 	};

	ret	0
?GetName@gzAntiCheatSpec@@UAEPBDXZ ENDP			; gzAntiCheatSpec::GetName
_TEXT	ENDS
PUBLIC	??1gzAntiCheatSpec@@UAE@XZ			; gzAntiCheatSpec::~gzAntiCheatSpec
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1gzAntiCheatSpec@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1gzAntiCheatSpec@@UAE@XZ$0
__ehfuncinfo$??1gzAntiCheatSpec@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1gzAntiCheatSpec@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1gzAntiCheatSpec@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1gzAntiCheatSpec@@UAE@XZ PROC				; gzAntiCheatSpec::~gzAntiCheatSpec, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??1gzAntiCheatSpec@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	xor	edi, edi
	cmp	DWORD PTR [esi+52], edi
	mov	DWORD PTR __$EHRec$[esp+32], edi
	mov	DWORD PTR [esi+48], OFFSET ??_7?$aVector@PAUgzRGHSpecDataStruct@@@@6B@
	je	SHORT $LN7@gzAntiChea@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+52]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+52], edi
$LN7@gzAntiChea@2:
	mov	ecx, esi
	mov	DWORD PTR [esi+56], edi
	mov	DWORD PTR [esi+60], edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1gzAntiCheatSpec@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1gzAntiCheatBaseClass@@UAE@XZ
__ehhandler$??1gzAntiCheatSpec@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1gzAntiCheatSpec@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1gzAntiCheatSpec@@UAE@XZ ENDP				; gzAntiCheatSpec::~gzAntiCheatSpec
PUBLIC	??1gzRoFWeaponDataStruct@@QAE@XZ		; gzRoFWeaponDataStruct::~gzRoFWeaponDataStruct
; Function compile flags: /Ogtpy
;	COMDAT ??1gzRoFWeaponDataStruct@@QAE@XZ
_TEXT	SEGMENT
??1gzRoFWeaponDataStruct@@QAE@XZ PROC			; gzRoFWeaponDataStruct::~gzRoFWeaponDataStruct, COMDAT
; _this$ = ecx
	push	esi
	push	edi
	mov	esi, ecx
	xor	edi, edi
	cmp	DWORD PTR [esi+4], edi
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
	je	SHORT $LN11@gzRoFWeapo
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], edi
$LN11@gzRoFWeapo:
	mov	DWORD PTR [esi+12], edi
	mov	DWORD PTR [esi+8], edi
	pop	edi
	pop	esi
	ret	0
??1gzRoFWeaponDataStruct@@QAE@XZ ENDP			; gzRoFWeaponDataStruct::~gzRoFWeaponDataStruct
_TEXT	ENDS
PUBLIC	??_7gzAntiCheatWeapons@@6B@			; gzAntiCheatWeapons::`vftable'
PUBLIC	??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z	; gzAntiCheatWeapons::gzAntiCheatWeapons
PUBLIC	??_R4gzAntiCheatWeapons@@6B@			; gzAntiCheatWeapons::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzAntiCheatWeapons@@@8			; gzAntiCheatWeapons `RTTI Type Descriptor'
PUBLIC	??_R3gzAntiCheatWeapons@@8			; gzAntiCheatWeapons::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzAntiCheatWeapons@@8			; gzAntiCheatWeapons::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzAntiCheatWeapons@@8		; gzAntiCheatWeapons::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?GetName@gzAntiCheatWeapons@@UAEPBDXZ		; gzAntiCheatWeapons::GetName
PUBLIC	?Delete@gzAntiCheatWeapons@@UAEXXZ		; gzAntiCheatWeapons::Delete
PUBLIC	?Think@gzAntiCheatWeapons@@UAEXXZ		; gzAntiCheatWeapons::Think
PUBLIC	?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z ; gzAntiCheatWeapons::Player_RawDamage
PUBLIC	?Object_Transition@gzAntiCheatWeapons@@UAEXAAVgzEventObjectTransition@@@Z ; gzAntiCheatWeapons::Object_Transition
EXTRN	??_EgzAntiCheatWeapons@@UAEPAXI@Z:PROC		; gzAntiCheatWeapons::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@gzAntiCheatWeapons@@8
; File d:\source code\alib\include\avector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@gzAntiCheatWeapons@@8 DD FLAT:??_R0?AVgzAntiCheatWeapons@@@8 ; gzAntiCheatWeapons::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzAntiCheatWeapons@@8
rdata$r	ENDS
;	COMDAT ??_R2gzAntiCheatWeapons@@8
rdata$r	SEGMENT
??_R2gzAntiCheatWeapons@@8 DD FLAT:??_R1A@?0A@EA@gzAntiCheatWeapons@@8 ; gzAntiCheatWeapons::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@gzAntiCheatBaseClass@@8
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzAntiCheatWeapons@@8
rdata$r	SEGMENT
??_R3gzAntiCheatWeapons@@8 DD 00H			; gzAntiCheatWeapons::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2gzAntiCheatWeapons@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzAntiCheatWeapons@@@8
_DATA	SEGMENT
??_R0?AVgzAntiCheatWeapons@@@8 DD FLAT:??_7type_info@@6B@ ; gzAntiCheatWeapons `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzAntiCheatWeapons@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzAntiCheatWeapons@@6B@
rdata$r	SEGMENT
??_R4gzAntiCheatWeapons@@6B@ DD 00H			; gzAntiCheatWeapons::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzAntiCheatWeapons@@@8
	DD	FLAT:??_R3gzAntiCheatWeapons@@8
rdata$r	ENDS
;	COMDAT ??_7gzAntiCheatWeapons@@6B@
CONST	SEGMENT
??_7gzAntiCheatWeapons@@6B@ DD FLAT:??_R4gzAntiCheatWeapons@@6B@ ; gzAntiCheatWeapons::`vftable'
	DD	FLAT:??_EgzAntiCheatWeapons@@UAEPAXI@Z
	DD	FLAT:?GetName@gzAntiCheatWeapons@@UAEPBDXZ
	DD	FLAT:?Delete@gzAntiCheatWeapons@@UAEXXZ
	DD	FLAT:?SetDeletePending@gzBase@@UAEXXZ
	DD	FLAT:?Level_Loaded@gzAntiCheatWeapons@@UAEXXZ
	DD	FLAT:?Level_Ended@EventHandler@@UAEXXZ
	DD	FLAT:?Think@gzAntiCheatWeapons@@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@gzAntiCheatWeapons@@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@gzAntiCheatWeapons@@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
	DD	FLAT:?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z$1
__ehfuncinfo$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
xdata$x	ENDS
;	COMDAT ??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_owner$ = 8						; size = 4
??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z PROC		; gzAntiCheatWeapons::gzAntiCheatWeapons, COMDAT
; _this$ = ecx

; 261  : {

	push	-1
	push	__ehhandler$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	mov	eax, DWORD PTR _owner$[esp+12]
	push	esi
	mov	esi, ecx
	push	eax
	mov	DWORD PTR _this$[esp+24], esi
	call	??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z ; gzAntiCheatBaseClass::gzAntiCheatBaseClass
	xor	eax, eax
	mov	DWORD PTR [esi], OFFSET ??_7gzAntiCheatWeapons@@6B@
	mov	DWORD PTR __$EHRec$[esp+28], eax
	mov	DWORD PTR [esi+44], OFFSET ??_7?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@
	mov	DWORD PTR [esi+48], eax
	mov	DWORD PTR [esi+52], eax
	mov	DWORD PTR [esi+56], eax

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

	push	-1
	push	12293					; 00003005H
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+36], 1
	call	?RegisterEvent@EventHandler@@QAEXHH@Z	; EventHandler::RegisterEvent

; 263  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1gzAntiCheatBaseClass@@UAE@XZ
__unwindfunclet$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 44					; 0000002cH
	jmp	??1?$aVector@PAUgzRoFWeaponDataStruct@@@@UAE@XZ ; aVector<gzRoFWeaponDataStruct *>::~aVector<gzRoFWeaponDataStruct *>
__ehhandler$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z:
	mov	eax, OFFSET __ehfuncinfo$??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzAntiCheatWeapons@@QAE@PAVgzPlayer@@@Z ENDP		; gzAntiCheatWeapons::gzAntiCheatWeapons
PUBLIC	??_C@_0BD@LHNJMCIE@gzAntiCheatWeapons?$AA@	; `string'
;	COMDAT ??_C@_0BD@LHNJMCIE@gzAntiCheatWeapons?$AA@
; File d:\source code\stgm\stanticheat.h
CONST	SEGMENT
??_C@_0BD@LHNJMCIE@gzAntiCheatWeapons?$AA@ DB 'gzAntiCheatWeapons', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetName@gzAntiCheatWeapons@@UAEPBDXZ
_TEXT	SEGMENT
?GetName@gzAntiCheatWeapons@@UAEPBDXZ PROC		; gzAntiCheatWeapons::GetName, COMDAT
; _this$ = ecx

; 95   : 		return "gzAntiCheatWeapons";

	mov	eax, OFFSET ??_C@_0BD@LHNJMCIE@gzAntiCheatWeapons?$AA@

; 96   : 	};

	ret	0
?GetName@gzAntiCheatWeapons@@UAEPBDXZ ENDP		; gzAntiCheatWeapons::GetName
_TEXT	ENDS
PUBLIC	??1gzAntiCheatWeapons@@UAE@XZ			; gzAntiCheatWeapons::~gzAntiCheatWeapons
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1gzAntiCheatWeapons@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1gzAntiCheatWeapons@@UAE@XZ$0
__ehfuncinfo$??1gzAntiCheatWeapons@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1gzAntiCheatWeapons@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1gzAntiCheatWeapons@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1gzAntiCheatWeapons@@UAE@XZ PROC			; gzAntiCheatWeapons::~gzAntiCheatWeapons, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??1gzAntiCheatWeapons@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	xor	edi, edi
	cmp	DWORD PTR [esi+48], edi
	mov	DWORD PTR __$EHRec$[esp+32], edi
	mov	DWORD PTR [esi+44], OFFSET ??_7?$aVector@PAUgzRoFWeaponDataStruct@@@@6B@
	je	SHORT $LN7@gzAntiChea@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+48]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+48], edi
$LN7@gzAntiChea@3:
	mov	ecx, esi
	mov	DWORD PTR [esi+52], edi
	mov	DWORD PTR [esi+56], edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1gzAntiCheatWeapons@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1gzAntiCheatBaseClass@@UAE@XZ
__ehhandler$??1gzAntiCheatWeapons@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1gzAntiCheatWeapons@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1gzAntiCheatWeapons@@UAE@XZ ENDP			; gzAntiCheatWeapons::~gzAntiCheatWeapons
PUBLIC	??0gzRoFWeaponDataStruct@@QAE@XZ		; gzRoFWeaponDataStruct::gzRoFWeaponDataStruct
; Function compile flags: /Ogtpy
;	COMDAT ??0gzRoFWeaponDataStruct@@QAE@XZ
_TEXT	SEGMENT
??0gzRoFWeaponDataStruct@@QAE@XZ PROC			; gzRoFWeaponDataStruct::gzRoFWeaponDataStruct, COMDAT
; _this$ = ecx
	mov	eax, ecx
	xor	ecx, ecx
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	ret	0
??0gzRoFWeaponDataStruct@@QAE@XZ ENDP			; gzRoFWeaponDataStruct::gzRoFWeaponDataStruct
_TEXT	ENDS
PUBLIC	??_7gzEventObjectDamage@@6B@			; gzEventObjectDamage::`vftable'
PUBLIC	??0gzEventObjectDamage@@QAE@ABV0@@Z		; gzEventObjectDamage::gzEventObjectDamage
PUBLIC	??_R4gzEventObjectDamage@@6B@			; gzEventObjectDamage::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzEventObjectDamage@@@8			; gzEventObjectDamage `RTTI Type Descriptor'
PUBLIC	??_R3gzEventObjectDamage@@8			; gzEventObjectDamage::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzEventObjectDamage@@8			; gzEventObjectDamage::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzEventObjectDamage@@8		; gzEventObjectDamage::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?CanContinue@gzEventObjectDamage@@UAE_NXZ	; gzEventObjectDamage::CanContinue
PUBLIC	?Skippable@gzEventObjectDamage@@UAE_NXZ		; gzEventObjectDamage::Skippable
;	COMDAT ??_R1A@?0A@EA@gzEventObjectDamage@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzEventObjectDamage@@8 DD FLAT:??_R0?AVgzEventObjectDamage@@@8 ; gzEventObjectDamage::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzEventObjectDamage@@8
rdata$r	ENDS
;	COMDAT ??_R2gzEventObjectDamage@@8
rdata$r	SEGMENT
??_R2gzEventObjectDamage@@8 DD FLAT:??_R1A@?0A@EA@gzEventObjectDamage@@8 ; gzEventObjectDamage::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@gzEventObjectBase@@8
	DD	FLAT:??_R1A@?0A@EA@gzEventBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzEventObjectDamage@@8
rdata$r	SEGMENT
??_R3gzEventObjectDamage@@8 DD 00H			; gzEventObjectDamage::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2gzEventObjectDamage@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzEventObjectDamage@@@8
_DATA	SEGMENT
??_R0?AVgzEventObjectDamage@@@8 DD FLAT:??_7type_info@@6B@ ; gzEventObjectDamage `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzEventObjectDamage@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzEventObjectDamage@@6B@
rdata$r	SEGMENT
??_R4gzEventObjectDamage@@6B@ DD 00H			; gzEventObjectDamage::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzEventObjectDamage@@@8
	DD	FLAT:??_R3gzEventObjectDamage@@8
rdata$r	ENDS
;	COMDAT ??_7gzEventObjectDamage@@6B@
CONST	SEGMENT
??_7gzEventObjectDamage@@6B@ DD FLAT:??_R4gzEventObjectDamage@@6B@ ; gzEventObjectDamage::`vftable'
	DD	FLAT:?CanContinue@gzEventObjectDamage@@UAE_NXZ
	DD	FLAT:?Skippable@gzEventObjectDamage@@UAE_NXZ
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzEventObjectDamage@@QAE@ABV0@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0gzEventObjectDamage@@QAE@ABV0@@Z PROC		; gzEventObjectDamage::gzEventObjectDamage, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	ecx, DWORD PTR ___that$[esp-4]
	mov	DWORD PTR [eax], OFFSET ??_7gzEventBase@@6B@
	fld	QWORD PTR [ecx+8]
	fstp	QWORD PTR [eax+8]
	mov	edx, DWORD PTR [ecx+16]
	mov	DWORD PTR [eax+16], edx
	mov	edx, DWORD PTR [ecx+20]
	mov	DWORD PTR [eax+20], edx
	mov	DWORD PTR [eax], OFFSET ??_7gzEventObjectDamage@@6B@
	mov	edx, DWORD PTR [ecx+24]
	mov	DWORD PTR [eax+24], edx
	mov	edx, DWORD PTR [ecx+28]
	mov	DWORD PTR [eax+28], edx
	fld	DWORD PTR [ecx+32]
	fstp	DWORD PTR [eax+32]
	mov	edx, DWORD PTR [ecx+36]
	mov	DWORD PTR [eax+36], edx
	mov	cl, BYTE PTR [ecx+40]
	mov	BYTE PTR [eax+40], cl
	ret	4
??0gzEventObjectDamage@@QAE@ABV0@@Z ENDP		; gzEventObjectDamage::gzEventObjectDamage
_TEXT	ENDS
PUBLIC	?CanContinue@stEventSkippable@gzEventObjectDamage@@QAE_NXZ ; gzEventObjectDamage::stEventSkippable::CanContinue
; Function compile flags: /Ogtpy
; File d:\source code\stgm\steventbase.h
;	COMDAT ?CanContinue@stEventSkippable@gzEventObjectDamage@@QAE_NXZ
_TEXT	SEGMENT
?CanContinue@stEventSkippable@gzEventObjectDamage@@QAE_NXZ PROC ; gzEventObjectDamage::stEventSkippable::CanContinue, COMDAT
; _this$ = ecx

; 222  : 	EVT_SKIPPABLE();

	mov	al, BYTE PTR [ecx]
	ret	0
?CanContinue@stEventSkippable@gzEventObjectDamage@@QAE_NXZ ENDP ; gzEventObjectDamage::stEventSkippable::CanContinue
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?CanContinue@gzEventObjectDamage@@UAE_NXZ
_TEXT	SEGMENT
?CanContinue@gzEventObjectDamage@@UAE_NXZ PROC		; gzEventObjectDamage::CanContinue, COMDAT
; _this$ = ecx

; 222  : 	EVT_SKIPPABLE();

	mov	al, BYTE PTR [ecx+40]
	ret	0
?CanContinue@gzEventObjectDamage@@UAE_NXZ ENDP		; gzEventObjectDamage::CanContinue
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Skippable@gzEventObjectDamage@@UAE_NXZ
_TEXT	SEGMENT
?Skippable@gzEventObjectDamage@@UAE_NXZ PROC		; gzEventObjectDamage::Skippable, COMDAT
; _this$ = ecx

; 222  : 	EVT_SKIPPABLE();

	mov	al, 1
	ret	0
?Skippable@gzEventObjectDamage@@UAE_NXZ ENDP		; gzEventObjectDamage::Skippable
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
_TEXT	ENDS
;	COMDAT ?Object_Transition@gzAntiCheatWeapons@@UAEXAAVgzEventObjectTransition@@@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
tv539 = -4						; size = 4
_rofWeapon$57893 = 8					; size = 4
_evt$ = 8						; size = 4
?Object_Transition@gzAntiCheatWeapons@@UAEXAAVgzEventObjectTransition@@@Z PROC ; gzAntiCheatWeapons::Object_Transition, COMDAT
; _this$ = ecx

; 648  : {

	sub	esp, 8
	push	ebx
	mov	ebx, ecx

; 649  : 	if (evt.m_soldier == this->m_owner->GetSoldier())

	mov	ecx, DWORD PTR [ebx+36]
	push	esi
	mov	esi, DWORD PTR _evt$[esp+12]
	mov	DWORD PTR _this$[esp+16], ebx
	call	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ ; gzPlayer::GetSoldier
	cmp	DWORD PTR [esi+24], eax
	jne	$LN7@Object_Tra

; 650  : 	{
; 651  : 		if (evt.m_instance->Target.Reference && evt.m_instance->Target.Reference->obj->As_VehicleGameObj())

	mov	eax, DWORD PTR [esi+28]
	push	ebp
	xor	ebp, ebp
	cmp	DWORD PTR [eax+116], ebp
	je	$LN51@Object_Tra
	mov	ecx, eax
	mov	edx, DWORD PTR [ecx+116]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+40]
	call	edx
	test	eax, eax
	je	$LN51@Object_Tra

; 652  : 		{
; 653  : 			// Attempt to enter a vehicle
; 654  : 			if (!evt.m_soldier->Vehicle)

	mov	eax, DWORD PTR [esi+24]
	cmp	DWORD PTR [eax+2444], ebp
	jne	$LN51@Object_Tra

; 655  : 			{
; 656  : 				nc_VehicleGameObj *vehicle = evt.m_instance->Target.Reference->obj->As_VehicleGameObj();

	mov	ecx, DWORD PTR [esi+28]
	mov	edx, DWORD PTR [ecx+116]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+40]
	push	edi
	call	edx
	mov	edi, eax

; 657  : 				for (int i = 1; i < vehicle->WeaponBag->Vector.Count(); i++)

	mov	ecx, DWORD PTR [edi+1968]
	mov	esi, 1
	cmp	DWORD PTR [ecx+20], esi
	jle	$LN52@Object_Tra
	npad	4
$LL9@Object_Tra:
	mov	edx, DWORD PTR [ebx+56]

; 658  : 				{
; 659  : 					bool weaponFound = false;
; 660  : 					for (unsigned int j = 0; j < this->m_data.Count(); j++)

	xor	eax, eax
	cmp	edx, ebp
	jbe	SHORT $LN49@Object_Tra
	mov	ecx, DWORD PTR [ecx+8]
	mov	ecx, DWORD PTR [ecx+esi*4]
	mov	ebp, DWORD PTR [ecx]
	mov	ecx, DWORD PTR [ebx+48]
$LL6@Object_Tra:

; 661  : 					{
; 662  : 						if (this->m_data[j]->WeaponDef == vehicle->WeaponBag->Vector[i]->WeaponDef)

	mov	ebx, DWORD PTR [ecx]
	cmp	DWORD PTR [ebx+16], ebp
	je	$LN50@Object_Tra
	add	eax, 1
	add	ecx, 4
	cmp	eax, edx
	jb	SHORT $LL6@Object_Tra
	mov	ebx, DWORD PTR _this$[esp+24]
	xor	ebp, ebp
$LN49@Object_Tra:

; 663  : 						{
; 664  : 							weaponFound = true;
; 665  : 							break;
; 666  : 						}
; 667  : 					}
; 668  : 
; 669  : 					if (!weaponFound)
; 670  : 					{
; 671  : 						gzRoFWeaponDataStruct *rofWeapon = new gzRoFWeaponDataStruct;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	671					; 0000029fH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	24					; 00000018H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	cmp	eax, ebp
	je	SHORT $LN15@Object_Tra
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
	mov	DWORD PTR [eax+4], ebp
	mov	DWORD PTR [eax+8], ebp
	mov	DWORD PTR [eax+12], ebp
	jmp	SHORT $LN16@Object_Tra
$LN15@Object_Tra:
	xor	eax, eax
$LN16@Object_Tra:
	mov	DWORD PTR _rofWeapon$57893[esp+20], eax

; 672  : 						rofWeapon->lastSelectTime = ((float)(GetTickCount() - SystemTime) / 1000.0f);

	call	DWORD PTR __imp__GetTickCount@0
	mov	edx, DWORD PTR ?SystemTime@@3AAKA	; SystemTime
	sub	eax, DWORD PTR [edx]
	test	eax, eax
	mov	DWORD PTR tv539[esp+24], eax
	fild	DWORD PTR tv539[esp+24]
	jge	SHORT $LN53@Object_Tra
	fadd	DWORD PTR __real@4f800000
$LN53@Object_Tra:

; 673  : 						rofWeapon->WeaponDef = vehicle->WeaponBag->Vector[i]->WeaponDef;

	mov	ecx, DWORD PTR [edi+1968]
	fmul	DWORD PTR __real@3a83126f
	mov	edx, DWORD PTR [ecx+8]
	mov	eax, DWORD PTR _rofWeapon$57893[esp+20]
	fstp	DWORD PTR [eax+20]
	mov	eax, DWORD PTR [edx+esi*4]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR _rofWeapon$57893[esp+20]
	mov	DWORD PTR [edx+16], ecx

; 674  : 						this->m_data.Add(rofWeapon);

	mov	eax, DWORD PTR [ebx+44]
	mov	eax, DWORD PTR [eax+12]
	lea	ecx, DWORD PTR [ebx+44]
	lea	edx, DWORD PTR _rofWeapon$57893[esp+20]
	push	edx
	call	eax

; 675  : 
; 676  : 						this->AddAmmo(vehicle->WeaponBag->Vector[i]->PrimaryAmmo, *rofWeapon);

	mov	edx, DWORD PTR [edi+1968]
	mov	ecx, DWORD PTR _rofWeapon$57893[esp+20]
	mov	eax, DWORD PTR [edx+8]
	push	ecx
	mov	ecx, DWORD PTR [eax+esi*4]
	mov	edx, DWORD PTR [ecx+28]
	push	edx
	mov	ecx, ebx
	call	?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::AddAmmo

; 677  : 
; 678  : 						if (vehicle->WeaponBag->Vector[i]->SecondaryAmmo && vehicle->WeaponBag->Vector[i]->PrimaryAmmo != vehicle->WeaponBag->Vector[i]->SecondaryAmmo)

	mov	eax, DWORD PTR [edi+1968]
	mov	ecx, DWORD PTR [eax+8]
	mov	edx, DWORD PTR [ecx+esi*4]
	mov	eax, DWORD PTR [edx+32]
	cmp	eax, ebp
	je	SHORT $LN8@Object_Tra
	mov	ecx, DWORD PTR [edi+1968]
	mov	edx, DWORD PTR [ecx+8]
	mov	ecx, DWORD PTR [edx+esi*4]
	mov	edx, DWORD PTR [ecx+28]
	cmp	edx, DWORD PTR [ecx+32]
	je	SHORT $LN8@Object_Tra

; 679  : 							this->AddAmmo(vehicle->WeaponBag->Vector[i]->SecondaryAmmo, *rofWeapon);

	mov	ecx, DWORD PTR _rofWeapon$57893[esp+20]
	push	ecx
	push	eax
	mov	ecx, ebx
	call	?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::AddAmmo
	jmp	SHORT $LN8@Object_Tra
$LN50@Object_Tra:
	mov	ebx, DWORD PTR _this$[esp+24]
	xor	ebp, ebp
$LN8@Object_Tra:
	mov	ecx, DWORD PTR [edi+1968]
	add	esi, 1
	cmp	esi, DWORD PTR [ecx+20]
	jl	$LL9@Object_Tra
$LN52@Object_Tra:
	pop	edi
$LN51@Object_Tra:
	pop	ebp
$LN7@Object_Tra:
	pop	esi
	pop	ebx

; 680  : 					}
; 681  : 				}
; 682  : 			}
; 683  : 		}
; 684  : 	}
; 685  : }

	add	esp, 8
	ret	4
?Object_Transition@gzAntiCheatWeapons@@UAEXAAVgzEventObjectTransition@@@Z ENDP ; gzAntiCheatWeapons::Object_Transition
_TEXT	ENDS
PUBLIC	??_7gzAntiCheatHitLog@@6B@			; gzAntiCheatHitLog::`vftable'
PUBLIC	??0gzAntiCheatHitLog@@QAE@PAVgzPlayer@@@Z	; gzAntiCheatHitLog::gzAntiCheatHitLog
PUBLIC	??_R4gzAntiCheatHitLog@@6B@			; gzAntiCheatHitLog::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzAntiCheatHitLog@@@8			; gzAntiCheatHitLog `RTTI Type Descriptor'
PUBLIC	??_R3gzAntiCheatHitLog@@8			; gzAntiCheatHitLog::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzAntiCheatHitLog@@8			; gzAntiCheatHitLog::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzAntiCheatHitLog@@8		; gzAntiCheatHitLog::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?GetName@gzAntiCheatHitLog@@UAEPBDXZ		; gzAntiCheatHitLog::GetName
EXTRN	??_EgzAntiCheatHitLog@@UAEPAXI@Z:PROC		; gzAntiCheatHitLog::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@gzAntiCheatHitLog@@8
; File d:\source code\alib\include\avector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@gzAntiCheatHitLog@@8 DD FLAT:??_R0?AVgzAntiCheatHitLog@@@8 ; gzAntiCheatHitLog::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzAntiCheatHitLog@@8
rdata$r	ENDS
;	COMDAT ??_R2gzAntiCheatHitLog@@8
rdata$r	SEGMENT
??_R2gzAntiCheatHitLog@@8 DD FLAT:??_R1A@?0A@EA@gzAntiCheatHitLog@@8 ; gzAntiCheatHitLog::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@gzAntiCheatBaseClass@@8
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzAntiCheatHitLog@@8
rdata$r	SEGMENT
??_R3gzAntiCheatHitLog@@8 DD 00H			; gzAntiCheatHitLog::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	04H
	DD	FLAT:??_R2gzAntiCheatHitLog@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzAntiCheatHitLog@@@8
_DATA	SEGMENT
??_R0?AVgzAntiCheatHitLog@@@8 DD FLAT:??_7type_info@@6B@ ; gzAntiCheatHitLog `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzAntiCheatHitLog@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzAntiCheatHitLog@@6B@
rdata$r	SEGMENT
??_R4gzAntiCheatHitLog@@6B@ DD 00H			; gzAntiCheatHitLog::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzAntiCheatHitLog@@@8
	DD	FLAT:??_R3gzAntiCheatHitLog@@8
rdata$r	ENDS
;	COMDAT ??_7gzAntiCheatHitLog@@6B@
CONST	SEGMENT
??_7gzAntiCheatHitLog@@6B@ DD FLAT:??_R4gzAntiCheatHitLog@@6B@ ; gzAntiCheatHitLog::`vftable'
	DD	FLAT:??_EgzAntiCheatHitLog@@UAEPAXI@Z
	DD	FLAT:?GetName@gzAntiCheatHitLog@@UAEPBDXZ
	DD	FLAT:?Delete@gzAntiCheatHitLog@@UAEXXZ
	DD	FLAT:?SetDeletePending@gzBase@@UAEXXZ
	DD	FLAT:?Level_Loaded@gzAntiCheatHitLog@@UAEXXZ
	DD	FLAT:?Level_Ended@EventHandler@@UAEXXZ
	DD	FLAT:?Think@gzAntiCheatHitLog@@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@gzAntiCheatHitLog@@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
	DD	FLAT:?WriteLog@gzAntiCheatBaseClass@@UAAXPBDZZ
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
CONST	ENDS
;	COMDAT ??0gzAntiCheatHitLog@@QAE@PAVgzPlayer@@@Z
_TEXT	SEGMENT
_owner$ = 8						; size = 4
??0gzAntiCheatHitLog@@QAE@PAVgzPlayer@@@Z PROC		; gzAntiCheatHitLog::gzAntiCheatHitLog, COMDAT
; _this$ = ecx

; 797  : {

	mov	eax, DWORD PTR _owner$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0gzAntiCheatBaseClass@@QAE@PAVgzPlayer@@@Z ; gzAntiCheatBaseClass::gzAntiCheatBaseClass

; 798  : 	this->m_checkCounter = 1.0f;

	fld1
	mov	DWORD PTR [esi], OFFSET ??_7gzAntiCheatHitLog@@6B@
	xor	eax, eax
	mov	DWORD PTR [esi+48], eax
	mov	DWORD PTR [esi+52], eax
	mov	DWORD PTR [esi+56], eax
	mov	DWORD PTR [esi+44], OFFSET ??_7?$aVector@UgzHitLogStruct@@@@6B@
	fstp	DWORD PTR [esi+60]

; 799  : }

	mov	eax, esi
	pop	esi
	ret	4
??0gzAntiCheatHitLog@@QAE@PAVgzPlayer@@@Z ENDP		; gzAntiCheatHitLog::gzAntiCheatHitLog
_TEXT	ENDS
PUBLIC	??_C@_0BC@IIPJFHAG@gzAntiCheatHitLog?$AA@	; `string'
;	COMDAT ??_C@_0BC@IIPJFHAG@gzAntiCheatHitLog?$AA@
; File d:\source code\stgm\stanticheat.h
CONST	SEGMENT
??_C@_0BC@IIPJFHAG@gzAntiCheatHitLog?$AA@ DB 'gzAntiCheatHitLog', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetName@gzAntiCheatHitLog@@UAEPBDXZ
_TEXT	SEGMENT
?GetName@gzAntiCheatHitLog@@UAEPBDXZ PROC		; gzAntiCheatHitLog::GetName, COMDAT
; _this$ = ecx

; 122  : 		return "gzAntiCheatHitLog";

	mov	eax, OFFSET ??_C@_0BC@IIPJFHAG@gzAntiCheatHitLog?$AA@

; 123  : 	};

	ret	0
?GetName@gzAntiCheatHitLog@@UAEPBDXZ ENDP		; gzAntiCheatHitLog::GetName
_TEXT	ENDS
PUBLIC	??1gzAntiCheatHitLog@@UAE@XZ			; gzAntiCheatHitLog::~gzAntiCheatHitLog
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1gzAntiCheatHitLog@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1gzAntiCheatHitLog@@UAE@XZ$0
__ehfuncinfo$??1gzAntiCheatHitLog@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1gzAntiCheatHitLog@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1gzAntiCheatHitLog@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1gzAntiCheatHitLog@@UAE@XZ PROC			; gzAntiCheatHitLog::~gzAntiCheatHitLog, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??1gzAntiCheatHitLog@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+24], esi
	xor	edi, edi
	cmp	DWORD PTR [esi+48], edi
	mov	DWORD PTR __$EHRec$[esp+32], edi
	mov	DWORD PTR [esi+44], OFFSET ??_7?$aVector@UgzHitLogStruct@@@@6B@
	je	SHORT $LN7@gzAntiChea@4
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+48]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+48], edi
$LN7@gzAntiChea@4:
	mov	ecx, esi
	mov	DWORD PTR [esi+52], edi
	mov	DWORD PTR [esi+56], edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1gzAntiCheatHitLog@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1gzAntiCheatBaseClass@@UAE@XZ
__ehhandler$??1gzAntiCheatHitLog@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1gzAntiCheatHitLog@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1gzAntiCheatHitLog@@UAE@XZ ENDP			; gzAntiCheatHitLog::~gzAntiCheatHitLog
; Function compile flags: /Ogtpy
;	COMDAT ??_GgzAntiCheatSpec@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzAntiCheatSpec@@UAEPAXI@Z PROC			; gzAntiCheatSpec::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1gzAntiCheatSpec@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@11
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@11:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzAntiCheatSpec@@UAEPAXI@Z ENDP			; gzAntiCheatSpec::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_GgzRoFWeaponDataStruct@@QAEPAXI@Z		; gzRoFWeaponDataStruct::`scalar deleting destructor'
; Function compile flags: /Ogtpy
;	COMDAT ??_GgzRoFWeaponDataStruct@@QAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzRoFWeaponDataStruct@@QAEPAXI@Z PROC		; gzRoFWeaponDataStruct::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
	je	SHORT $LN9@scalar@12
	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
$LN9@scalar@12:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN14@scalar@12
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN14@scalar@12:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzRoFWeaponDataStruct@@QAEPAXI@Z ENDP		; gzRoFWeaponDataStruct::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GgzAntiCheatWeapons@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzAntiCheatWeapons@@UAEPAXI@Z PROC			; gzAntiCheatWeapons::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1gzAntiCheatWeapons@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@13
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@13:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzAntiCheatWeapons@@UAEPAXI@Z ENDP			; gzAntiCheatWeapons::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_C@_0CN@OBJFADFF@?$FLWeaponHack?$FN?5Ammo?5?$CC?$CFs?$CC?5expired?4?5@ ; `string'
PUBLIC	??_C@_03OFAPEBGM@?$CFs?6?$AA@			; `string'
PUBLIC	??_C@_0BH@LMOBBFOK@selected?5?$CFf?5sec?$CIs?$CJ?5ago?$AA@ ; `string'
PUBLIC	??_C@_0BD@LDGBBKBB@currently?5selected?$AA@	; `string'
PUBLIC	??_C@_0P@PMKEGEOA@never?5selected?$AA@		; `string'
PUBLIC	??_C@_07PMDKCONL@?7?7?$CFs?5?9?5?$AA@		; `string'
PUBLIC	??_C@_0O@MPPHBCNJ@?7Owned?5ammo?3?6?$AA@	; `string'
PUBLIC	??_C@_0L@GLGMNOHG@?7Ping?3?5?$CFd?6?$AA@	; `string'
PUBLIC	??_C@_0BL@HACODGFD@?7Meansure?5time?3?5?$CFf?5sec?$CIs?$CJ?6?$AA@ ; `string'
PUBLIC	??_C@_0O@KMCHGNAP@?7Hits?3?5?$CFd?1?$CFd?6?$AA@	; `string'
PUBLIC	??_C@_0L@FKOFJJNN@?7Ammo?3?5?$CFs?6?$AA@	; `string'
PUBLIC	??_C@_0BP@JFCADKLK@Rate?5Of?5Fire?5exceeded?5by?5?$CFls?3?6?$AA@ ; `string'
PUBLIC	??_C@_0FN@KLJOOGKO@?$FLST?$FN?5Rate?5Of?5Fire?5exceeded?5by?5?$CFl@ ; `string'
PUBLIC	??_C@_0DH@KIHCHCCN@?$FLWeaponsHack?$FN?5New?5weapon?5detecte@ ; `string'
PUBLIC	??_C@_0DI@BKEOMLCF@?$FLWeaponHack?$FN?5Applying?5delete?5cou@ ; `string'
EXTRN	?Get_Actual_Gunner@nc_VehicleGameObj@@QAEPAVnc_SoldierGameObj@@XZ:PROC ; nc_VehicleGameObj::Get_Actual_Gunner
EXTRN	?AddFrameTime@@YAXAAM_N@Z:PROC			; AddFrameTime
;	COMDAT ??_C@_0CN@OBJFADFF@?$FLWeaponHack?$FN?5Ammo?5?$CC?$CFs?$CC?5expired?4?5@
; File d:\source code\alib\include\avector.h
CONST	SEGMENT
??_C@_0CN@OBJFADFF@?$FLWeaponHack?$FN?5Ammo?5?$CC?$CFs?$CC?5expired?4?5@ DB '['
	DB	'WeaponHack] Ammo "%s" expired. Removing...', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_03OFAPEBGM@?$CFs?6?$AA@
CONST	SEGMENT
??_C@_03OFAPEBGM@?$CFs?6?$AA@ DB '%s', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@LMOBBFOK@selected?5?$CFf?5sec?$CIs?$CJ?5ago?$AA@
CONST	SEGMENT
??_C@_0BH@LMOBBFOK@selected?5?$CFf?5sec?$CIs?$CJ?5ago?$AA@ DB 'selected %'
	DB	'f sec(s) ago', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@LDGBBKBB@currently?5selected?$AA@
CONST	SEGMENT
??_C@_0BD@LDGBBKBB@currently?5selected?$AA@ DB 'currently selected', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@PMKEGEOA@never?5selected?$AA@
CONST	SEGMENT
??_C@_0P@PMKEGEOA@never?5selected?$AA@ DB 'never selected', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_07PMDKCONL@?7?7?$CFs?5?9?5?$AA@
CONST	SEGMENT
??_C@_07PMDKCONL@?7?7?$CFs?5?9?5?$AA@ DB 09H, 09H, '%s - ', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@MPPHBCNJ@?7Owned?5ammo?3?6?$AA@
CONST	SEGMENT
??_C@_0O@MPPHBCNJ@?7Owned?5ammo?3?6?$AA@ DB 09H, 'Owned ammo:', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@GLGMNOHG@?7Ping?3?5?$CFd?6?$AA@
CONST	SEGMENT
??_C@_0L@GLGMNOHG@?7Ping?3?5?$CFd?6?$AA@ DB 09H, 'Ping: %d', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BL@HACODGFD@?7Meansure?5time?3?5?$CFf?5sec?$CIs?$CJ?6?$AA@
CONST	SEGMENT
??_C@_0BL@HACODGFD@?7Meansure?5time?3?5?$CFf?5sec?$CIs?$CJ?6?$AA@ DB 09H, 'M'
	DB	'eansure time: %f sec(s)', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@KMCHGNAP@?7Hits?3?5?$CFd?1?$CFd?6?$AA@
CONST	SEGMENT
??_C@_0O@KMCHGNAP@?7Hits?3?5?$CFd?1?$CFd?6?$AA@ DB 09H, 'Hits: %d/%d', 0aH
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@FKOFJJNN@?7Ammo?3?5?$CFs?6?$AA@
CONST	SEGMENT
??_C@_0L@FKOFJJNN@?7Ammo?3?5?$CFs?6?$AA@ DB 09H, 'Ammo: %s', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BP@JFCADKLK@Rate?5Of?5Fire?5exceeded?5by?5?$CFls?3?6?$AA@
CONST	SEGMENT
??_C@_0BP@JFCADKLK@Rate?5Of?5Fire?5exceeded?5by?5?$CFls?3?6?$AA@ DB 'Rate'
	DB	' Of Fire exceeded by %ls:', 0aH, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0FN@KLJOOGKO@?$FLST?$FN?5Rate?5Of?5Fire?5exceeded?5by?5?$CFl@
CONST	SEGMENT
??_C@_0FN@KLJOOGKO@?$FLST?$FN?5Rate?5Of?5Fire?5exceeded?5by?5?$CFl@ DB '['
	DB	'ST] Rate Of Fire exceeded by %ls; Ammo: %s; Hits: %d/%d; Meas'
	DB	'ure time: %f sec(s); Ping: %d', 0aH, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0DH@KIHCHCCN@?$FLWeaponsHack?$FN?5New?5weapon?5detecte@
CONST	SEGMENT
??_C@_0DH@KIHCHCCN@?$FLWeaponsHack?$FN?5New?5weapon?5detecte@ DB '[Weapon'
	DB	'sHack] New weapon detected from player %ls: %s', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0DI@BKEOMLCF@?$FLWeaponHack?$FN?5Applying?5delete?5cou@
CONST	SEGMENT
??_C@_0DI@BKEOMLCF@?$FLWeaponHack?$FN?5Applying?5delete?5cou@ DB '[Weapon'
	DB	'Hack] Applying delete counter for ammo: %s [%f]', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Think@gzAntiCheatWeapons@@UAEXXZ DD 019930522H
	DD	0dH
	DD	FLAT:__unwindtable$?Think@gzAntiCheatWeapons@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Think@gzAntiCheatWeapons@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$3
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$4
	DD	03H
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$5
	DD	03H
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$6
	DD	03H
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$7
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$8
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$9
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$10
	DD	09H
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$11
	DD	09H
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$12
	DD	09H
	DD	FLAT:__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$13
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
xdata$x	ENDS
;	COMDAT ?Think@gzAntiCheatWeapons@@UAEXXZ
_TEXT	SEGMENT
_canReset$57665 = -181					; size = 1
_weaponFound$57628 = -181				; size = 1
_i$57654 = -180						; size = 4
_ammoFound$57634 = -180					; size = 2
_i$57610 = -180						; size = 4
_j$57658 = -176						; size = 4
_i$57622 = -176						; size = 4
_j$57614 = -176						; size = 4
_i$57704 = -172						; size = 4
_i$57676 = -172						; size = 4
_rofWeapon$57647 = -172					; size = 4
_obj$57620 = -168					; size = 4
tv2099 = -164						; size = 4
tv1367 = -164						; size = 4
$T66301 = -164						; size = 8
tv1402 = -156						; size = 4
$T66300 = -156						; size = 8
tv1417 = -148						; size = 4
_log$57712 = -148					; size = 8
tv1415 = -140						; size = 4
_log$57684 = -140					; size = 8
tv2241 = -132						; size = 4
tv2112 = -132						; size = 4
tv1379 = -132						; size = 4
$T66305 = -128						; size = 8
$T66306 = -120						; size = 8
$T66295 = -120						; size = 8
$T66298 = -112						; size = 8
$T66299 = -104						; size = 8
$T66302 = -96						; size = 8
$T66303 = -88						; size = 8
$T66304 = -80						; size = 8
$T66307 = -72						; size = 8
__$EHRec$ = -12						; size = 12
?Think@gzAntiCheatWeapons@@UAEXXZ PROC			; gzAntiCheatWeapons::Think, COMDAT
; _this$ = ecx

; 269  : {

	push	ebp
	mov	ebp, esp
	and	esp, -64				; ffffffc0H
	push	-1
	mov	eax, DWORD PTR fs:0
	push	__ehhandler$?Think@gzAntiCheatWeapons@@UAEXXZ
	push	eax
	mov	DWORD PTR fs:0, esp

; 270  : 	if (!gzAntiCheatMgr->m_settings->RoF.Enable)

	mov	eax, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	sub	esp, 228				; 000000e4H
	push	ebx
	push	ebp
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [eax+36]
	cmp	BYTE PTR [ecx+32], 0
	push	edi
	je	$LN38@Think@3

; 271  : 		return;
; 272  : 
; 273  : 	if (this->m_owner->IsActive() && this->m_owner->GetSoldier())

	mov	ecx, DWORD PTR [esi+36]
	cmp	BYTE PTR [ecx+88], 0
	je	$LN38@Think@3
	call	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ ; gzPlayer::GetSoldier
	test	eax, eax
	je	$LN38@Think@3

; 274  : 	{
; 275  : 		if (this->m_owner->GetSoldier()->NetworkID != this->m_soldierId)

	mov	ecx, DWORD PTR [esi+36]
	call	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ ; gzPlayer::GetSoldier
	mov	edx, DWORD PTR [eax+12]
	cmp	edx, DWORD PTR [esi+40]
	je	$LN67@Think@3

; 276  : 		{
; 277  : 			for (unsigned int i = 0; i < this->m_data.Count(); i++)

	cmp	DWORD PTR [esi+56], 0
	mov	DWORD PTR _i$57610[esp+256], 0
	jbe	$LN64@Think@3
	npad	7
$LL66@Think@3:
	mov	eax, DWORD PTR _i$57610[esp+256]

; 278  : 			{
; 279  : 				for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	ecx, DWORD PTR [esi+48]
	add	eax, eax
	add	eax, eax
	mov	edx, DWORD PTR [ecx+eax]
	cmp	DWORD PTR [edx+12], 0
	mov	DWORD PTR _j$57614[esp+256], 0
	jbe	$LN65@Think@3
$LL63@Think@3:

; 280  : 				{
; 281  : 					nc_AmmoDefinitionClass *AmmoDef = this->m_data[i]->ammoList[j]->AmmoDef;

	mov	eax, DWORD PTR _i$57610[esp+256]
	mov	ecx, DWORD PTR [esi+48]
	mov	ebx, DWORD PTR _j$57614[esp+256]
	add	eax, eax
	add	eax, eax
	mov	edx, DWORD PTR [eax+ecx]
	add	eax, ecx
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [eax]
	mov	ebp, DWORD PTR [eax+4]
	add	ebx, ebx
	add	ebx, ebx
	mov	edx, DWORD PTR [ecx+ebx]
	mov	edi, DWORD PTR [edx+4]

; 282  : 					this->m_data[i]->ammoList[j]->DeleteCounter = (((AmmoDef->Range.Get() / AmmoDef->Velocity.Get()) + AmmoDef->TurnRate) + gzAntiCheatMgr->m_settings->m_ammoLive);

	lea	ecx, DWORD PTR [edi+44]
	add	ebp, ebx
	call	?Get@nc_FloatDataSafeClass@@QAEMXZ	; nc_FloatDataSafeClass::Get
	fstp	DWORD PTR tv2099[esp+256]
	lea	ecx, DWORD PTR [edi+48]
	call	?Get@nc_FloatDataSafeClass@@QAEMXZ	; nc_FloatDataSafeClass::Get
	fdivr	DWORD PTR tv2099[esp+256]
	mov	ecx, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	mov	edx, DWORD PTR [ecx+36]
	mov	eax, DWORD PTR [ebp]

; 283  : #if ISDEV()
; 284  : 					stConsole::Out("[WeaponHack] Applying delete counter for ammo: %s [%f]\n", AmmoDef->Get_Name(), this->m_data[i]->ammoList[j]->DeleteCounter);

	mov	ebp, DWORD PTR _i$57610[esp+256]
	add	ebp, ebp
	add	ebp, ebp
	sub	esp, 8
	fadd	DWORD PTR [edi+92]
	fadd	DWORD PTR [edx+28]
	fstp	DWORD PTR [eax+36]
	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+ebp]
	add	eax, ebp
	mov	eax, DWORD PTR [ecx+4]
	mov	edx, DWORD PTR [eax+ebx]
	fld	DWORD PTR [edx+36]
	add	eax, ebx
	mov	eax, DWORD PTR [edi]
	fstp	QWORD PTR [esp]
	mov	edx, DWORD PTR [eax+48]
	mov	ecx, edi
	call	edx
	push	eax
	push	OFFSET ??_C@_0DI@BKEOMLCF@?$FLWeaponHack?$FN?5Applying?5delete?5cou@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	mov	eax, DWORD PTR _j$57614[esp+272]
	mov	ecx, DWORD PTR [esi+48]
	mov	edx, DWORD PTR [ecx+ebp]
	add	eax, 1
	add	esp, 16					; 00000010H
	cmp	eax, DWORD PTR [edx+12]
	mov	DWORD PTR _j$57614[esp+256], eax
	jb	$LL63@Think@3
$LN65@Think@3:

; 276  : 		{
; 277  : 			for (unsigned int i = 0; i < this->m_data.Count(); i++)

	mov	eax, DWORD PTR _i$57610[esp+256]
	add	eax, 1
	cmp	eax, DWORD PTR [esi+56]
	mov	DWORD PTR _i$57610[esp+256], eax
	jb	$LL66@Think@3
$LN64@Think@3:

; 285  : #endif
; 286  : 				}
; 287  : 			}
; 288  : 			this->m_soldierId = this->m_owner->GetSoldier()->NetworkID;

	mov	ecx, DWORD PTR [esi+36]
	call	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ ; gzPlayer::GetSoldier
	mov	eax, DWORD PTR [eax+12]
	mov	DWORD PTR [esi+40], eax
$LN67@Think@3:

; 289  : 		}
; 290  : 
; 291  : 		nc_SoldierGameObj *obj = this->m_owner->GetSoldier();

	mov	ecx, DWORD PTR [esi+36]
	call	?GetSoldier@gzPlayer@@QAEPAVnc_SoldierGameObj@@XZ ; gzPlayer::GetSoldier
	mov	ebx, eax

; 292  : 
; 293  : 		if (obj->WeaponBag->Vector.Count() >= 2)

	mov	eax, DWORD PTR [ebx+1968]
	mov	ecx, DWORD PTR [eax+20]
	cmp	ecx, 2
	mov	DWORD PTR _obj$57620[esp+256], ebx
	jl	$LN57@Think@3

; 294  : 		{
; 295  : 			for (int i = 1; i < obj->WeaponBag->Vector.Count(); i++)

	mov	edi, 1
	cmp	ecx, edi
	mov	DWORD PTR _i$57622[esp+256], edi
	jle	$LN57@Think@3
	npad	6
$LL59@Think@3:

; 296  : 			{
; 297  : 				// Beacon or C4 doesn't need to be checked
; 298  : 				if (obj->WeaponBag->Vector[i]->WeaponDef->Style == 0 ||	obj->WeaponBag->Vector[i]->WeaponDef->Style == 6)

	mov	ecx, DWORD PTR [eax+8]
	mov	edx, DWORD PTR [ecx+edi*4]
	mov	eax, DWORD PTR [edx]
	mov	eax, DWORD PTR [eax+28]
	test	eax, eax
	je	$LN58@Think@3
	cmp	eax, 6
	je	$LN58@Think@3

; 299  : 					continue;
; 300  : 
; 301  : 				bool weaponFound = false;
; 302  : 				for (unsigned int j = 0; j < this->m_data.Count(); j++)

	xor	ebp, ebp
	cmp	DWORD PTR [esi+56], ebp
	mov	BYTE PTR _weaponFound$57628[esp+256], 0
	jbe	$LN331@Think@3
	npad	4
$LL54@Think@3:

; 303  : 				{
; 304  : 					if (this->m_data[j]->WeaponDef == obj->WeaponBag->Vector[i]->WeaponDef)

	mov	ecx, DWORD PTR [ebx+1968]
	mov	edx, DWORD PTR [ecx+8]
	mov	ecx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [edx+edi*4]
	mov	ecx, DWORD PTR [ecx+ebp*4]
	mov	edx, DWORD PTR [ecx+16]
	cmp	edx, DWORD PTR [eax]
	mov	DWORD PTR tv1367[esp+256], eax
	mov	DWORD PTR tv1379[esp+256], ecx
	jne	$LN53@Think@3

; 305  : 					{
; 306  : 						bool ammoFound[2] = { false, false };
; 307  : 						for (unsigned int k = 0; k < this->m_data[j]->ammoList.Count(); k++)

	xor	edx, edx
	cmp	DWORD PTR [ecx+12], edx
	mov	BYTE PTR _ammoFound$57634[esp+256], 0
	mov	BYTE PTR _ammoFound$57634[esp+257], 0
	jbe	SHORT $LN332@Think@3

; 341  : #endif
; 342  : 				}
; 343  : 			}
; 344  : 		}
; 345  : 
; 346  : 		for (unsigned int i = 0; i < this->m_data.Count(); i++)

	mov	eax, DWORD PTR [eax+28]
	mov	edi, DWORD PTR _i$57622[esp+256]
	mov	ecx, DWORD PTR [ecx+4]
	mov	DWORD PTR tv1402[esp+256], eax
	mov	eax, DWORD PTR [ebx+1968]
	mov	eax, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [eax+edi*4]
	mov	edi, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+32]
	mov	DWORD PTR tv1415[esp+256], edi
	mov	DWORD PTR tv1417[esp+256], eax
$LN50@Think@3:
	mov	eax, DWORD PTR [ecx]
	mov	edi, DWORD PTR [eax+4]
	cmp	edi, DWORD PTR tv1402[esp+256]
	jne	SHORT $LN47@Think@3

; 308  : 						{
; 309  : 							if (this->m_data[j]->ammoList[k]->AmmoDef == obj->WeaponBag->Vector[i]->PrimaryAmmo)
; 310  : 								ammoFound[0] = true;

	mov	BYTE PTR _ammoFound$57634[esp+256], 1
$LN47@Think@3:

; 311  : 							if (obj->WeaponBag->Vector[i]->PrimaryAmmo != obj->WeaponBag->Vector[i]->SecondaryAmmo && this->m_data[j]->ammoList[k]->AmmoDef == obj->WeaponBag->Vector[i]->SecondaryAmmo)

	mov	eax, DWORD PTR tv1417[esp+256]
	cmp	DWORD PTR tv1415[esp+256], eax
	mov	eax, DWORD PTR tv1367[esp+256]
	je	SHORT $LN46@Think@3
	cmp	edi, DWORD PTR [eax+32]
	jne	SHORT $LN46@Think@3

; 312  : 								ammoFound[1] = true;

	mov	BYTE PTR _ammoFound$57634[esp+257], 1
$LN46@Think@3:

; 313  : 
; 314  : 							if (ammoFound[0] && ammoFound[1])

	cmp	BYTE PTR _ammoFound$57634[esp+256], 0
	je	SHORT $LN49@Think@3
	cmp	BYTE PTR _ammoFound$57634[esp+257], 0
	jne	SHORT $LN317@Think@3
$LN49@Think@3:

; 305  : 					{
; 306  : 						bool ammoFound[2] = { false, false };
; 307  : 						for (unsigned int k = 0; k < this->m_data[j]->ammoList.Count(); k++)

	mov	edi, DWORD PTR [esi+48]
	mov	edi, DWORD PTR [edi+ebp*4]
	add	edx, 1
	add	ecx, 4
	cmp	edx, DWORD PTR [edi+12]
	jb	SHORT $LN50@Think@3
$LN317@Think@3:

; 315  : 								break;
; 316  : 						}
; 317  : 
; 318  : 						if (!ammoFound[0])

	cmp	BYTE PTR _ammoFound$57634[esp+256], 0
	mov	ebx, DWORD PTR _obj$57620[esp+256]
	jne	SHORT $LN44@Think@3
	mov	ecx, DWORD PTR tv1379[esp+256]
$LN332@Think@3:

; 319  : 							this->AddAmmo(obj->WeaponBag->Vector[i]->PrimaryAmmo, *this->m_data[j]);

	push	ecx
	mov	ecx, DWORD PTR [eax+28]
	push	ecx
	mov	ecx, esi
	call	?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::AddAmmo
$LN44@Think@3:

; 320  : 						if (!ammoFound[1])

	cmp	BYTE PTR _ammoFound$57634[esp+257], 0
	jne	SHORT $LN43@Think@3

; 321  : 							this->AddAmmo(obj->WeaponBag->Vector[i]->SecondaryAmmo, *this->m_data[j]);

	mov	edx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [edx+ebp*4]
	mov	ecx, DWORD PTR [ebx+1968]
	mov	edx, DWORD PTR [ecx+8]
	push	eax
	mov	eax, DWORD PTR _i$57622[esp+260]
	mov	ecx, DWORD PTR [edx+eax*4]
	mov	edx, DWORD PTR [ecx+32]
	push	edx
	mov	ecx, esi
	call	?AddAmmo@gzAntiCheatWeapons@@QAEXPAVnc_AmmoDefinitionClass@@AAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::AddAmmo
$LN43@Think@3:

; 322  : 
; 323  : 						if (obj->WeaponBag->current > 0 && this->m_data[j]->WeaponDef == obj->WeaponBag->Vector[obj->WeaponBag->current]->WeaponDef)

	mov	eax, DWORD PTR [ebx+1968]
	cmp	DWORD PTR [eax+28], 0
	jle	SHORT $LN42@Think@3
	mov	edx, DWORD PTR [eax+28]
	mov	ecx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [eax+8]
	lea	edi, DWORD PTR [ecx+ebp*4]
	mov	ecx, DWORD PTR [eax+edx*4]
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+16]
	cmp	eax, DWORD PTR [ecx]
	jne	SHORT $LN42@Think@3

; 324  : 							this->m_data[j]->lastSelectTime = ((float)(GetTickCount() - SystemTime) / 1000.0f);

	call	DWORD PTR __imp__GetTickCount@0
	mov	ecx, DWORD PTR ?SystemTime@@3AAKA	; SystemTime
	sub	eax, DWORD PTR [ecx]
	test	eax, eax
	mov	DWORD PTR tv2241[esp+256], eax
	fild	DWORD PTR tv2241[esp+256]
	jge	SHORT $LN362@Think@3
	fadd	DWORD PTR __real@4f800000
$LN362@Think@3:
	fmul	DWORD PTR __real@3a83126f
	mov	edx, DWORD PTR [edi]
	fstp	DWORD PTR [edx+20]
$LN42@Think@3:

; 325  : 						weaponFound = true;

	mov	edi, DWORD PTR _i$57622[esp+256]
	mov	BYTE PTR _weaponFound$57628[esp+256], 1
$LN53@Think@3:
	add	ebp, 1
	cmp	ebp, DWORD PTR [esi+56]
	jb	$LL54@Think@3

; 326  : 					}
; 327  : 				}
; 328  : 
; 329  : 				if (!weaponFound)

	cmp	BYTE PTR _weaponFound$57628[esp+256], 0
	jne	$LN58@Think@3
$LN331@Think@3:

; 330  : 				{
; 331  : 					gzRoFWeaponDataStruct *rofWeapon = new gzRoFWeaponDataStruct;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	331					; 0000014bH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	24					; 00000018H
	call	??2@YAPAXI@Z				; operator new
	xor	ebp, ebp
	add	esp, 16					; 00000010H
	cmp	eax, ebp
	je	SHORT $LN72@Think@3
	mov	DWORD PTR [eax], OFFSET ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
	mov	DWORD PTR [eax+4], ebp
	mov	DWORD PTR [eax+8], ebp
	mov	DWORD PTR [eax+12], ebp
	jmp	SHORT $LN73@Think@3
$LN72@Think@3:
	xor	eax, eax
$LN73@Think@3:

; 332  : 					rofWeapon->lastSelectTime = -1.0f;

	fld	DWORD PTR __real@bf800000
	mov	DWORD PTR _rofWeapon$57647[esp+256], eax
	fstp	DWORD PTR [eax+20]

; 333  : 					rofWeapon->WeaponDef = obj->WeaponBag->Vector[i]->WeaponDef;

	mov	eax, DWORD PTR [ebx+1968]
	mov	ecx, DWORD PTR [eax+8]
	mov	edx, DWORD PTR [ecx+edi*4]
	mov	eax, DWORD PTR [edx]
	mov	ecx, DWORD PTR _rofWeapon$57647[esp+256]
	mov	DWORD PTR [ecx+16], eax

; 334  : 					this->m_data.Add(rofWeapon);

	mov	edx, DWORD PTR [esi+44]
	mov	edx, DWORD PTR [edx+12]
	lea	ecx, DWORD PTR [esi+44]
	lea	eax, DWORD PTR _rofWeapon$57647[esp+256]
	push	eax
	call	edx

; 335  : 
; 336  : #ifdef ROFMSG
; 337  : 					stConsole::Out("[WeaponsHack] New weapon detected from player %ls: %s\n",
; 338  : 						this->m_owner->GetPlayerName().GetString(),
; 339  : 						rofWeapon->WeaponDef->Get_Name()
; 340  : 					);

	mov	ecx, DWORD PTR [esi+36]
	lea	eax, DWORD PTR $T66295[esp+256]
	push	eax
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, ebp
	mov	DWORD PTR __$EHRec$[esp+264], ebp
	je	SHORT $LN170@Think@3
	mov	ebp, DWORD PTR [eax]
$LN170@Think@3:
	mov	ecx, DWORD PTR _rofWeapon$57647[esp+256]
	mov	ecx, DWORD PTR [ecx+16]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	push	eax
	push	ebp
	push	OFFSET ??_C@_0DH@KIHCHCCN@?$FLWeaponsHack?$FN?5New?5weapon?5detecte@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 12					; 0000000cH
	lea	ecx, DWORD PTR $T66295[esp+256]
	mov	DWORD PTR __$EHRec$[esp+264], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN58@Think@3:
	mov	eax, DWORD PTR [ebx+1968]
	add	edi, 1
	cmp	edi, DWORD PTR [eax+20]
	mov	DWORD PTR _i$57622[esp+256], edi
	jl	$LL59@Think@3
$LN57@Think@3:

; 341  : #endif
; 342  : 				}
; 343  : 			}
; 344  : 		}
; 345  : 
; 346  : 		for (unsigned int i = 0; i < this->m_data.Count(); i++)

	cmp	DWORD PTR [esi+56], 0
	mov	DWORD PTR _i$57654[esp+256], 0
	jbe	$LN38@Think@3
$LN40@Think@3:

; 347  : 		{
; 348  : 			for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	ecx, DWORD PTR [esi+48]
	mov	edx, DWORD PTR _i$57654[esp+256]
	mov	eax, DWORD PTR [ecx+edx*4]
	cmp	DWORD PTR [eax+12], 0
	mov	DWORD PTR _j$57658[esp+256], 0
	jbe	$LN35@Think@3
	npad	7
$LL37@Think@3:

; 349  : 			{
; 350  : 				gzRoFAmmoDataStruct *ammo = this->m_data[i]->ammoList[j];

	mov	ecx, DWORD PTR [esi+48]
	mov	edx, DWORD PTR _i$57654[esp+256]
	mov	eax, DWORD PTR [ecx+edx*4]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR _j$57658[esp+256]
	mov	edi, DWORD PTR [ecx+edx*4]

; 351  : 
; 352  : 				SubFrameTime(ammo->counter, true);

	lea	ebp, DWORD PTR [edi+8]
	push	1
	push	ebp
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 353  : 				AddFrameTime(ammo->measureTime, true);

	lea	ebx, DWORD PTR [edi+24]
	push	1
	push	ebx
	call	?AddFrameTime@@YAXAAM_N@Z		; AddFrameTime

; 354  : 				SubFrameTime(ammo->DeleteCounter, (ammo->DeleteCounter > 0.0f));

	fldz
	fcomp	DWORD PTR [edi+36]
	lea	ecx, DWORD PTR [edi+36]
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN76@Think@3
	mov	al, 1
	jmp	SHORT $LN77@Think@3
$LN76@Think@3:
	xor	al, al
$LN77@Think@3:
	push	eax
	push	ecx
	call	?SubFrameTime@@YAXAAM_N@Z		; SubFrameTime

; 355  : 
; 356  : 				if (ammo->counter < 0.0f)

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

; 357  : 				{
; 358  : #ifdef ROFMSG
; 359  : 					//DebugLog("%ls; Weapon: %s; Ammo: %s; ROF: %f; Reset delay: %f; Meansure time: %f; Measure cycle: %d; Hits: %d/%d",
; 360  : 					//	this->m_owner->GetPlayerName().GetString(),
; 361  : 					//	this->m_data[i]->WeaponDef->Get_Name(),
; 362  : 					//	ammo->AmmoDef->Get_Name(),
; 363  : 					//	ammo->AmmoDef->RateOfFire,
; 364  : 					//	ammo->cycleInterval,
; 365  : 					//	ammo->measureTime,
; 366  : 					//	ammo->meansureCycleCount,
; 367  : 					//	ammo->hitCount,
; 368  : 					//	(ammo->maximumHit + ammo->additionMaxHit)
; 369  : 					//);
; 370  : #endif
; 371  : 
; 372  : 					if (ammo->DeleteCounter > 0.0f)

	fcomp	DWORD PTR [edi+36]
	fnstsw	ax
	test	ah, 5
	jp	$LN33@Think@3

; 373  : 					{
; 374  : 						bool canReset = true;
; 375  : 						if (ammo->meansureCycle == 1 && ammo->hitCount > (ammo->maximumHit + ammo->additionMaxHit))

	mov	eax, DWORD PTR [edi+28]
	cmp	eax, 1
	mov	BYTE PTR _canReset$57665[esp+256], 1
	jne	$LN32@Think@3
	mov	ecx, DWORD PTR [edi+32]
	add	ecx, DWORD PTR [edi+20]
	cmp	DWORD PTR [edi+16], ecx
	jle	$LN32@Think@3

; 376  : 						{
; 377  : 							stConsole::Out("[ST] Rate Of Fire exceeded by %ls; Ammo: %s; Hits: %d/%d; Measure time: %f sec(s); Ping: %d\n",
; 378  : 								this->m_owner->GetPlayerName().GetString(),
; 379  : 								ammo->AmmoDef->Get_Name(),
; 380  : 								ammo->hitCount,
; 381  : 								ammo->maximumHit,
; 382  : 								ammo->measureTime,
; 383  : 								nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Ping
; 384  : 							);

	mov	ecx, DWORD PTR [esi+36]
	lea	edx, DWORD PTR $T66298[esp+256]
	push	edx
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [ecx+76]
	mov	DWORD PTR __$EHRec$[esp+264], 1
	je	SHORT $LN191@Think@3
	mov	ebp, DWORD PTR [eax]
	jmp	SHORT $LN192@Think@3
$LN191@Think@3:
	xor	ebp, ebp
$LN192@Think@3:
	mov	eax, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	fld	DWORD PTR [ebx]
	mov	eax, DWORD PTR [eax]
	mov	eax, DWORD PTR [eax+1352]
	mov	edx, DWORD PTR [edx+1884]
	mov	edx, DWORD PTR [eax+edx*4]
	mov	eax, DWORD PTR [edx+676]
	mov	edx, DWORD PTR [edi+20]
	mov	ecx, DWORD PTR [edi+4]
	push	eax
	mov	eax, DWORD PTR [edi+16]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	edx
	mov	edx, DWORD PTR [ecx]
	push	eax
	mov	eax, DWORD PTR [edx+48]
	call	eax
	push	eax
	push	ebp
	push	OFFSET ??_C@_0FN@KLJOOGKO@?$FLST?$FN?5Rate?5Of?5Fire?5exceeded?5by?5?$CFl@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	or	ebp, -1
	add	esp, 32					; 00000020H
	lea	ecx, DWORD PTR $T66298[esp+256]
	mov	DWORD PTR __$EHRec$[esp+264], ebp
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 385  : 							this->WriteLog("Rate Of Fire exceeded by %ls:\n", this->m_owner->GetPlayerName().GetString());

	lea	ecx, DWORD PTR $T66299[esp+256]
	push	ecx
	mov	ecx, DWORD PTR [esi+36]
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+264], 2
	je	SHORT $LN200@Think@3
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN201@Think@3
$LN200@Think@3:
	xor	eax, eax
$LN201@Think@3:
	mov	edx, DWORD PTR [esi]
	push	eax
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0BP@JFCADKLK@Rate?5Of?5Fire?5exceeded?5by?5?$CFls?3?6?$AA@
	push	esi
	call	eax
	add	esp, 12					; 0000000cH
	lea	ecx, DWORD PTR $T66299[esp+256]
	mov	DWORD PTR __$EHRec$[esp+264], ebp
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 386  : 							this->WriteLog("\tAmmo: %s\n", ammo->AmmoDef->Get_Name());

	mov	ecx, DWORD PTR [edi+4]
	mov	edx, DWORD PTR [ecx]
	mov	ebp, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	add	ebp, 136				; 00000088H
	call	eax
	mov	ecx, DWORD PTR [ebp]
	push	eax
	push	OFFSET ??_C@_0L@FKOFJJNN@?7Ammo?3?5?$CFs?6?$AA@
	push	esi
	call	ecx

; 387  : 							this->WriteLog("\tHits: %d/%d\n", ammo->hitCount, (ammo->maximumHit + ammo->additionMaxHit));

	mov	eax, DWORD PTR [edi+32]
	add	eax, DWORD PTR [edi+20]
	mov	ecx, DWORD PTR [edi+16]
	mov	edx, DWORD PTR [esi]
	mov	edx, DWORD PTR [edx+136]
	push	eax
	push	ecx
	push	OFFSET ??_C@_0O@KMCHGNAP@?7Hits?3?5?$CFd?1?$CFd?6?$AA@
	push	esi
	call	edx

; 388  : 							this->WriteLog("\tMeansure time: %f sec(s)\n", ammo->measureTime);

	fld	DWORD PTR [ebx]
	mov	eax, DWORD PTR [esi]
	fstp	QWORD PTR [esp+20]
	mov	ecx, DWORD PTR [eax+136]
	add	esp, 20					; 00000014H
	push	OFFSET ??_C@_0BL@HACODGFD@?7Meansure?5time?3?5?$CFf?5sec?$CIs?$CJ?6?$AA@
	push	esi
	call	ecx

; 389  : 							this->WriteLog("\tPing: %d\n", nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Ping);

	mov	edx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [edx+76]
	mov	edx, DWORD PTR [eax+1884]
	mov	eax, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	eax, DWORD PTR [eax]
	mov	eax, DWORD PTR [eax+1352]
	mov	edx, DWORD PTR [eax+edx*4]
	mov	eax, DWORD PTR [edx+676]
	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+136]
	push	eax
	push	OFFSET ??_C@_0L@GLGMNOHG@?7Ping?3?5?$CFd?6?$AA@
	push	esi
	call	ecx

; 390  : 							this->WriteLog("\tOwned ammo:\n");

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0O@MPPHBCNJ@?7Owned?5ammo?3?6?$AA@
	push	esi
	call	eax
	add	esp, 36					; 00000024H

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

	cmp	DWORD PTR [esi+56], 0
	mov	DWORD PTR _i$57676[esp+256], 0
	jbe	$LN29@Think@3
	npad	3
$LL31@Think@3:
	mov	ebp, DWORD PTR _i$57676[esp+256]

; 392  : 							{
; 393  : 								for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	ecx, DWORD PTR [esi+48]
	add	ebp, ebp
	add	ebp, ebp
	mov	edx, DWORD PTR [ecx+ebp]
	xor	ebx, ebx
	cmp	DWORD PTR [edx+12], ebx
	jbe	$LN30@Think@3
	npad	7
$LL28@Think@3:

; 394  : 								{
; 395  : 									aString log = aString::Format("\t\t%s - ", this->m_data[i]->ammoList[j]->AmmoDef->Get_Name());

	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+ebp]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+ebx*4]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	push	eax
	lea	ecx, DWORD PTR _log$57684[esp+260]
	push	OFFSET ??_C@_07PMDKCONL@?7?7?$CFs?5?9?5?$AA@
	push	ecx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 12					; 0000000cH

; 396  : 									float lastSelect = this->GetWeaponLastSelectTime(this->m_data[i]);

	mov	eax, DWORD PTR [esi+48]
	mov	edx, DWORD PTR [eax+ebp]
	add	eax, ebp
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+268], 3
	call	?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::GetWeaponLastSelectTime

; 397  : 									if (lastSelect == -1.0f)

	fld	DWORD PTR __real@bf800000
	fucomp	ST(1)
	fnstsw	ax
	test	ah, 68					; 00000044H
	jp	SHORT $LN25@Think@3

; 398  : 										log += "never selected";

	push	OFFSET ??_C@_0P@PMKEGEOA@never?5selected?$AA@
	fstp	ST(0)
	lea	ecx, DWORD PTR $T66300[esp+260]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	eax, DWORD PTR $T66300[esp+256]
	push	eax
	lea	ecx, DWORD PTR _log$57684[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 4
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66300[esp+256]
	jmp	SHORT $LN364@Think@3
$LN25@Think@3:

; 399  : 									else if (lastSelect <= 0.0f)

	fldz
	fcomp	ST(1)
	fnstsw	ax
	test	ah, 1
	jne	SHORT $LN23@Think@3

; 400  : 										log += "currently selected";

	push	OFFSET ??_C@_0BD@LDGBBKBB@currently?5selected?$AA@
	fstp	ST(0)
	lea	ecx, DWORD PTR $T66301[esp+260]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	ecx, DWORD PTR $T66301[esp+256]
	push	ecx
	lea	ecx, DWORD PTR _log$57684[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 5
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66301[esp+256]

; 401  : 									else

	jmp	SHORT $LN364@Think@3
$LN23@Think@3:

; 402  : 										log += aString::Format("selected %f sec(s) ago", lastSelect);

	sub	esp, 8
	fstp	QWORD PTR [esp]
	lea	edx, DWORD PTR $T66302[esp+264]
	push	OFFSET ??_C@_0BH@LMOBBFOK@selected?5?$CFf?5sec?$CIs?$CJ?5ago?$AA@
	push	edx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _log$57684[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 6
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66302[esp+256]
$LN364@Think@3:
	mov	BYTE PTR __$EHRec$[esp+264], 3
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 403  : 									this->WriteLog("%s\n", log.GetString());

	mov	eax, DWORD PTR _log$57684[esp+260]
	test	eax, eax
	je	SHORT $LN232@Think@3
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN233@Think@3
$LN232@Think@3:
	xor	eax, eax
$LN233@Think@3:
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+136]
	push	eax
	push	OFFSET ??_C@_03OFAPEBGM@?$CFs?6?$AA@
	push	esi
	call	edx
	add	esp, 12					; 0000000cH

; 404  : 								}

	lea	ecx, DWORD PTR _log$57684[esp+256]
	mov	DWORD PTR __$EHRec$[esp+264], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+ebp]
	add	ebx, 1
	cmp	ebx, DWORD PTR [ecx+12]
	jb	$LL28@Think@3
$LN30@Think@3:

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

	mov	eax, DWORD PTR _i$57676[esp+256]
	add	eax, 1
	cmp	eax, DWORD PTR [esi+56]
	mov	DWORD PTR _i$57676[esp+256], eax
	jb	$LL31@Think@3
$LN29@Think@3:

; 405  : 							}
; 406  : 							this->WriteLog("-------------------------------------------------\n");

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0DD@POLPKMBJ@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
	push	esi
	call	eax
	add	esp, 8
	jmp	$LN333@Think@3
$LN32@Think@3:

; 407  : 						}
; 408  : 						else if (ammo->hitCount > ((ammo->maximumHit * ammo->meansureCycle) + ammo->additionMaxHit))

	mov	ecx, DWORD PTR [edi+20]
	imul	ecx, eax
	add	ecx, DWORD PTR [edi+32]
	cmp	DWORD PTR [edi+16], ecx
	jle	$LN333@Think@3

; 409  : 						{
; 410  : 							if (ammo->meansureCycle >= 3)

	cmp	eax, 3
	jl	$LN19@Think@3

; 411  : 							{
; 412  : 								stConsole::Out("[ST] Rate Of Fire exceeded by %ls; Ammo: %s; Hits: %d/%d; Measure time: %f sec(s); Ping: %d\n",
; 413  : 									this->m_owner->GetPlayerName().GetString(),
; 414  : 									ammo->AmmoDef->Get_Name(),
; 415  : 									ammo->hitCount,
; 416  : 									((ammo->maximumHit * ammo->meansureCycle) + ammo->additionMaxHit),
; 417  : 									ammo->measureTime,
; 418  : 									nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Ping
; 419  : 								);

	mov	ecx, DWORD PTR [esi+36]
	lea	edx, DWORD PTR $T66303[esp+256]
	push	edx
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	ecx, DWORD PTR [esi+36]
	mov	edx, DWORD PTR [ecx+76]
	mov	DWORD PTR __$EHRec$[esp+264], 7
	je	SHORT $LN243@Think@3
	mov	ebp, DWORD PTR [eax]
	jmp	SHORT $LN244@Think@3
$LN243@Think@3:
	xor	ebp, ebp
$LN244@Think@3:
	mov	edx, DWORD PTR [edx+1884]
	fld	DWORD PTR [ebx]
	mov	eax, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	eax, DWORD PTR [eax]
	mov	eax, DWORD PTR [eax+1352]
	mov	edx, DWORD PTR [eax+edx*4]
	mov	eax, DWORD PTR [edx+676]
	mov	edx, DWORD PTR [edi+28]
	imul	edx, DWORD PTR [edi+20]
	add	edx, DWORD PTR [edi+32]
	mov	ecx, DWORD PTR [edi+4]
	push	eax
	mov	eax, DWORD PTR [edi+16]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	edx
	mov	edx, DWORD PTR [ecx]
	push	eax
	mov	eax, DWORD PTR [edx+48]
	call	eax
	push	eax
	push	ebp
	push	OFFSET ??_C@_0FN@KLJOOGKO@?$FLST?$FN?5Rate?5Of?5Fire?5exceeded?5by?5?$CFl@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	or	ebp, -1
	add	esp, 32					; 00000020H
	lea	ecx, DWORD PTR $T66303[esp+256]
	mov	DWORD PTR __$EHRec$[esp+264], ebp
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 420  : 								this->WriteLog("Rate Of Fire exceeded by %ls:\n", this->m_owner->GetPlayerName().GetString());

	lea	ecx, DWORD PTR $T66304[esp+256]
	push	ecx
	mov	ecx, DWORD PTR [esi+36]
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	DWORD PTR __$EHRec$[esp+264], 8
	je	SHORT $LN252@Think@3
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN253@Think@3
$LN252@Think@3:
	xor	eax, eax
$LN253@Think@3:
	mov	edx, DWORD PTR [esi]
	push	eax
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0BP@JFCADKLK@Rate?5Of?5Fire?5exceeded?5by?5?$CFls?3?6?$AA@
	push	esi
	call	eax
	add	esp, 12					; 0000000cH
	lea	ecx, DWORD PTR $T66304[esp+256]
	mov	DWORD PTR __$EHRec$[esp+264], ebp
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 421  : 								this->WriteLog("\tAmmo: %s\n", ammo->AmmoDef->Get_Name());

	mov	ecx, DWORD PTR [edi+4]
	mov	edx, DWORD PTR [ecx]
	mov	ebp, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+48]
	add	ebp, 136				; 00000088H
	call	eax
	mov	ecx, DWORD PTR [ebp]
	push	eax
	push	OFFSET ??_C@_0L@FKOFJJNN@?7Ammo?3?5?$CFs?6?$AA@
	push	esi
	call	ecx

; 422  : 								this->WriteLog("\tHits: %d/%d\n", ammo->hitCount, ((ammo->maximumHit * ammo->meansureCycle) + ammo->additionMaxHit));

	mov	eax, DWORD PTR [edi+28]
	imul	eax, DWORD PTR [edi+20]
	add	eax, DWORD PTR [edi+32]
	mov	ecx, DWORD PTR [edi+16]
	mov	edx, DWORD PTR [esi]
	mov	edx, DWORD PTR [edx+136]
	push	eax
	push	ecx
	push	OFFSET ??_C@_0O@KMCHGNAP@?7Hits?3?5?$CFd?1?$CFd?6?$AA@
	push	esi
	call	edx

; 423  : 								this->WriteLog("\tMeansure time: %f sec(s)\n", ammo->measureTime);

	mov	eax, DWORD PTR [esi]
	fld	DWORD PTR [ebx]
	mov	ecx, DWORD PTR [eax+136]
	add	esp, 20					; 00000014H
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0BL@HACODGFD@?7Meansure?5time?3?5?$CFf?5sec?$CIs?$CJ?6?$AA@
	push	esi
	call	ecx

; 424  : 								this->WriteLog("\tPing: %d\n", nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Ping);

	mov	edx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [edx+76]
	mov	edx, DWORD PTR [eax+1884]
	mov	eax, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	eax, DWORD PTR [eax]
	mov	eax, DWORD PTR [eax+1352]
	mov	edx, DWORD PTR [eax+edx*4]
	mov	eax, DWORD PTR [edx+676]
	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+136]
	push	eax
	push	OFFSET ??_C@_0L@GLGMNOHG@?7Ping?3?5?$CFd?6?$AA@
	push	esi
	call	ecx

; 425  : 								this->WriteLog("\tOwned ammo:\n");

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0O@MPPHBCNJ@?7Owned?5ammo?3?6?$AA@
	push	esi
	call	eax
	add	esp, 36					; 00000024H

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

	cmp	DWORD PTR [esi+56], 0
	mov	DWORD PTR _i$57704[esp+256], 0
	jbe	$LN16@Think@3
$LL18@Think@3:
	mov	ebp, DWORD PTR _i$57704[esp+256]

; 427  : 								{
; 428  : 									for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	ecx, DWORD PTR [esi+48]
	add	ebp, ebp
	add	ebp, ebp
	mov	edx, DWORD PTR [ecx+ebp]
	xor	ebx, ebx
	cmp	DWORD PTR [edx+12], ebx
	jbe	$LN17@Think@3
	npad	4
$LL15@Think@3:

; 429  : 									{
; 430  : 										aString log = aString::Format("\t\t%s - ", this->m_data[i]->ammoList[j]->AmmoDef->Get_Name());

	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+ebp]
	mov	edx, DWORD PTR [ecx+4]
	mov	eax, DWORD PTR [edx+ebx*4]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	push	eax
	lea	ecx, DWORD PTR _log$57712[esp+260]
	push	OFFSET ??_C@_07PMDKCONL@?7?7?$CFs?5?9?5?$AA@
	push	ecx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 12					; 0000000cH

; 431  : 										float lastSelect = this->GetWeaponLastSelectTime(this->m_data[i]);

	mov	eax, DWORD PTR [esi+48]
	mov	edx, DWORD PTR [eax+ebp]
	add	eax, ebp
	push	edx
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+268], 9
	call	?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::GetWeaponLastSelectTime

; 432  : 										if (lastSelect == -1.0f)

	fld	DWORD PTR __real@bf800000
	fucomp	ST(1)
	fnstsw	ax
	test	ah, 68					; 00000044H
	jp	SHORT $LN12@Think@3

; 433  : 											log += "never selected";

	push	OFFSET ??_C@_0P@PMKEGEOA@never?5selected?$AA@
	fstp	ST(0)
	lea	ecx, DWORD PTR $T66305[esp+260]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	eax, DWORD PTR $T66305[esp+256]
	push	eax
	lea	ecx, DWORD PTR _log$57712[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 10		; 0000000aH
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66305[esp+256]
	jmp	SHORT $LN365@Think@3
$LN12@Think@3:

; 434  : 										else if (lastSelect <= 0.0f)

	fldz
	fcomp	ST(1)
	fnstsw	ax
	test	ah, 1
	jne	SHORT $LN10@Think@3

; 435  : 											log += "currently selected";

	push	OFFSET ??_C@_0BD@LDGBBKBB@currently?5selected?$AA@
	fstp	ST(0)
	lea	ecx, DWORD PTR $T66306[esp+260]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	ecx, DWORD PTR $T66306[esp+256]
	push	ecx
	lea	ecx, DWORD PTR _log$57712[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 11		; 0000000bH
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66306[esp+256]

; 436  : 										else

	jmp	SHORT $LN365@Think@3
$LN10@Think@3:

; 437  : 											log += aString::Format("selected %f sec(s) ago", lastSelect);

	sub	esp, 8
	fstp	QWORD PTR [esp]
	lea	edx, DWORD PTR $T66307[esp+264]
	push	OFFSET ??_C@_0BH@LMOBBFOK@selected?5?$CFf?5sec?$CIs?$CJ?5ago?$AA@
	push	edx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _log$57712[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 12		; 0000000cH
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66307[esp+256]
$LN365@Think@3:
	mov	BYTE PTR __$EHRec$[esp+264], 9
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 438  : 										this->WriteLog("%s\n", log.GetString());

	mov	eax, DWORD PTR _log$57712[esp+260]
	test	eax, eax
	je	SHORT $LN284@Think@3
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN285@Think@3
$LN284@Think@3:
	xor	eax, eax
$LN285@Think@3:
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+136]
	push	eax
	push	OFFSET ??_C@_03OFAPEBGM@?$CFs?6?$AA@
	push	esi
	call	edx
	add	esp, 12					; 0000000cH

; 439  : 									}

	lea	ecx, DWORD PTR _log$57712[esp+256]
	mov	DWORD PTR __$EHRec$[esp+264], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+ebp]
	add	ebx, 1
	cmp	ebx, DWORD PTR [ecx+12]
	jb	$LL15@Think@3
$LN17@Think@3:

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

	mov	eax, DWORD PTR _i$57704[esp+256]
	add	eax, 1
	cmp	eax, DWORD PTR [esi+56]
	mov	DWORD PTR _i$57704[esp+256], eax
	jb	$LL18@Think@3
$LN16@Think@3:

; 440  : 								}
; 441  : 								this->WriteLog("-------------------------------------------------\n");

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0DD@POLPKMBJ@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
	push	esi
	call	eax
	add	esp, 8

; 442  : 							}
; 443  : 							else

	jmp	SHORT $LN8@Think@3
$LN19@Think@3:

; 444  : 								canReset = false;

	mov	BYTE PTR _canReset$57665[esp+256], 0
$LN8@Think@3:

; 445  : 
; 446  : 							ammo->meansureCycle++;

	add	DWORD PTR [edi+28], 1

; 447  : 							ammo->counter = ammo->cycleInterval;

	fld	DWORD PTR [edi+12]

; 448  : 						}
; 449  : 
; 450  : 						if (canReset)

	cmp	BYTE PTR _canReset$57665[esp+256], 0
	fstp	DWORD PTR [edi+8]
	je	SHORT $LN36@Think@3
$LN333@Think@3:

; 451  : 						{
; 452  : 							ammo->measureTime    = 0.0f;

	fldz

; 453  : 							ammo->hitCount       = 0;

	xor	eax, eax
	fstp	DWORD PTR [edi+24]
	mov	DWORD PTR [edi+16], eax

; 454  : 							ammo->meansureCycle  = 1;
; 455  : 							ammo->counter        = ammo->cycleInterval;

	fld	DWORD PTR [edi+12]
	mov	DWORD PTR [edi+28], 1
	fstp	DWORD PTR [edi+8]

; 456  : 							ammo->additionMaxHit = 0;

	mov	DWORD PTR [edi+32], eax

; 457  : 						}
; 458  : 					}
; 459  : 					else

	jmp	SHORT $LN36@Think@3
$LN33@Think@3:

; 460  : 					{
; 461  : #if ISDEV()
; 462  : 						stConsole::Out("[WeaponHack] Ammo \"%s\" expired. Removing...\n", ammo->AmmoDef->Get_Name());

	mov	edi, DWORD PTR [edi+4]
	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, edi
	call	eax
	push	eax
	push	OFFSET ??_C@_0CN@OBJFADFF@?$FLWeaponHack?$FN?5Ammo?5?$CC?$CFs?$CC?5expired?4?5@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out

; 463  : #endif
; 464  : 						delete[] this->m_data[i]->ammoList[j];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	464					; 000001d0H
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+48]
	mov	ebx, DWORD PTR _i$57654[esp+276]
	mov	edx, DWORD PTR [ecx+ebx*4]
	mov	eax, DWORD PTR [edx+4]
	mov	edi, DWORD PTR _j$57658[esp+276]
	mov	ecx, DWORD PTR [eax+edi*4]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]

; 465  : 						this->m_data[i]->ammoList.Delete(j);

	mov	edx, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [edx+ebx*4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+20]
	add	esp, 24					; 00000018H
	push	edi
	call	edx

; 466  : 						j--;

	sub	edi, 1
	mov	DWORD PTR _j$57658[esp+256], edi
	jmp	SHORT $LN36@Think@3
$LN348@Think@3:

; 355  : 
; 356  : 				if (ammo->counter < 0.0f)

	fstp	ST(0)
$LN36@Think@3:

; 347  : 		{
; 348  : 			for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	eax, DWORD PTR _j$57658[esp+256]
	mov	ecx, DWORD PTR [esi+48]
	mov	edx, DWORD PTR _i$57654[esp+256]
	mov	ecx, DWORD PTR [ecx+edx*4]
	add	eax, 1
	cmp	eax, DWORD PTR [ecx+12]
	mov	DWORD PTR _j$57658[esp+256], eax
	jb	$LL37@Think@3
$LN35@Think@3:

; 467  : 					}
; 468  : 				}
; 469  : 			}
; 470  : 
; 471  : 			// In vehicle and is gunner
; 472  : 			if (obj->Vehicle && obj == obj->Vehicle->Get_Actual_Gunner())

	mov	edi, DWORD PTR _obj$57620[esp+256]
	mov	ecx, DWORD PTR [edi+2444]
	test	ecx, ecx
	je	SHORT $LN39@Think@3
	call	?Get_Actual_Gunner@nc_VehicleGameObj@@QAEPAVnc_SoldierGameObj@@XZ ; nc_VehicleGameObj::Get_Actual_Gunner
	cmp	edi, eax
	jne	SHORT $LN39@Think@3

; 473  : 			{
; 474  : 				for (int j = 1; j < obj->Vehicle->WeaponBag->Vector.Count(); j++)

	mov	edx, DWORD PTR [edi+2444]
	mov	eax, DWORD PTR [edx+1968]
	mov	edx, DWORD PTR [eax+20]
	mov	ecx, 1
	cmp	edx, ecx
	jle	SHORT $LN39@Think@3
	mov	ebx, DWORD PTR _i$57654[esp+256]
	mov	edi, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [eax+8]
	lea	edi, DWORD PTR [edi+ebx*4]
	mov	ebx, DWORD PTR [edi]
	mov	ebx, DWORD PTR [ebx+16]
	add	eax, 4
	npad	1
$LL4@Think@3:

; 475  : 				{
; 476  : 					if (this->m_data[i]->WeaponDef == obj->Vehicle->WeaponBag->Vector[j]->WeaponDef)

	mov	ebp, DWORD PTR [eax]
	cmp	ebx, DWORD PTR [ebp]
	je	SHORT $LN318@Think@3
	add	ecx, 1
	add	eax, 4
	cmp	ecx, edx
	jl	SHORT $LL4@Think@3
	jmp	SHORT $LN39@Think@3
$LN318@Think@3:

; 477  : 					{
; 478  : 						this->m_data[i]->lastSelectTime = ((float)(GetTickCount() - SystemTime) / 1000.0f);

	call	DWORD PTR __imp__GetTickCount@0
	mov	ecx, DWORD PTR ?SystemTime@@3AAKA	; SystemTime
	sub	eax, DWORD PTR [ecx]
	test	eax, eax
	mov	DWORD PTR tv2112[esp+256], eax
	fild	DWORD PTR tv2112[esp+256]
	jge	SHORT $LN363@Think@3
	fadd	DWORD PTR __real@4f800000
$LN363@Think@3:
	fmul	DWORD PTR __real@3a83126f
	mov	edx, DWORD PTR [edi]
	fstp	DWORD PTR [edx+20]
$LN39@Think@3:
	mov	eax, DWORD PTR _i$57654[esp+256]
	add	eax, 1
	cmp	eax, DWORD PTR [esi+56]
	mov	DWORD PTR _i$57654[esp+256], eax
	jb	$LN40@Think@3
$LN38@Think@3:

; 479  : 						break;
; 480  : 					}
; 481  : 				}
; 482  : 			}
; 483  : 		}
; 484  : 	}
; 485  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+256]
	pop	edi
	mov	DWORD PTR fs:0, ecx
	pop	esi
	pop	ebp
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$1:
	lea	ecx, DWORD PTR $T66295[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$2:
	lea	ecx, DWORD PTR $T66298[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$3:
	lea	ecx, DWORD PTR $T66299[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$4:
	lea	ecx, DWORD PTR _log$57684[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$5:
	lea	ecx, DWORD PTR $T66300[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$6:
	lea	ecx, DWORD PTR $T66301[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$7:
	lea	ecx, DWORD PTR $T66302[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$8:
	lea	ecx, DWORD PTR $T66303[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$9:
	lea	ecx, DWORD PTR $T66304[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$10:
	lea	ecx, DWORD PTR _log$57712[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$11:
	lea	ecx, DWORD PTR $T66305[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$12:
	lea	ecx, DWORD PTR $T66306[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzAntiCheatWeapons@@UAEXXZ$13:
	lea	ecx, DWORD PTR $T66307[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Think@gzAntiCheatWeapons@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Think@gzAntiCheatWeapons@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Think@gzAntiCheatWeapons@@UAEXXZ ENDP			; gzAntiCheatWeapons::Think
PUBLIC	??_C@_0EK@MFPADNDO@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@ ; `string'
PUBLIC	??_C@_0CB@IDMMPDPN@?$CFls?5used?5an?5unavailable?5weapon?4?6@ ; `string'
PUBLIC	??_C@_0DO@HGGHHKGH@?$FLST?$FN?5?$CFls?5used?5an?5unavailable?5wea@ ; `string'
PUBLIC	??_C@_0GB@DBDJOIHC@?$FLWeaponHack?$FN?5Possible?5weapon?3?5?$CFs@ ; `string'
PUBLIC	??_C@_0CO@NBIDJFPG@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@ ; `string'
PUBLIC	__real@40a00000
PUBLIC	__real@40400000
;	COMDAT ??_C@_0EK@MFPADNDO@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@
; File d:\source code\alib\include\avector.h
CONST	SEGMENT
??_C@_0EK@MFPADNDO@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@ DB '[Weapo'
	DB	'nHack] Weapon determined: %s; Ammo: %s; Last select: %f sec(s'
	DB	') ago', 0aH, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0CB@IDMMPDPN@?$CFls?5used?5an?5unavailable?5weapon?4?6@
CONST	SEGMENT
??_C@_0CB@IDMMPDPN@?$CFls?5used?5an?5unavailable?5weapon?4?6@ DB '%ls use'
	DB	'd an unavailable weapon.', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0DO@HGGHHKGH@?$FLST?$FN?5?$CFls?5used?5an?5unavailable?5wea@
CONST	SEGMENT
??_C@_0DO@HGGHHKGH@?$FLST?$FN?5?$CFls?5used?5an?5unavailable?5wea@ DB '[S'
	DB	'T] %ls used an unavailable weapon; Damage: %f; Warhead; %d', 0aH
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0GB@DBDJOIHC@?$FLWeaponHack?$FN?5Possible?5weapon?3?5?$CFs@
CONST	SEGMENT
??_C@_0GB@DBDJOIHC@?$FLWeaponHack?$FN?5Possible?5weapon?3?5?$CFs@ DB '[We'
	DB	'aponHack] Possible weapon: %s; Ammo: %s; Damage: %f; Warhead:'
	DB	' %d; Last select: %f sec(s) ago', 0aH, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0CO@NBIDJFPG@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@
CONST	SEGMENT
??_C@_0CO@NBIDJFPG@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@ DB '[Weapo'
	DB	'nHack] Weapon determined: %s; Ammo: %s', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT __real@40a00000
CONST	SEGMENT
__real@40a00000 DD 040a00000r			; 5
CONST	ENDS
;	COMDAT __real@40400000
CONST	SEGMENT
__real@40400000 DD 040400000r			; 3
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z DD 019930522H
	DD	07H
	DD	FLAT:__unwindtable$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$1
	DD	00H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$3
	DD	00H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$4
	DD	03H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$5
	DD	03H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$6
	DD	03H
	DD	FLAT:__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$7
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stanticheat.cpp
xdata$x	ENDS
;	COMDAT ?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z
_TEXT	SEGMENT
_i$57856 = -116						; size = 4
$T66776 = -116						; size = 8
tv432 = -116						; size = 4
_detectedAmmo$57749 = -116				; size = 4
tv1855 = -108						; size = 4
_log$57837 = -108					; size = 8
_i$57813 = -108						; size = 4
tv757 = -100						; size = 4
_i$57829 = -100						; size = 4
_j$57817 = -100						; size = 4
_i$57756 = -100						; size = 4
tv1508 = -96						; size = 4
tv1297 = -96						; size = 4
tv1290 = -96						; size = 4
tv745 = -96						; size = 4
tv651 = -96						; size = 4
$T66778 = -96						; size = 4
$T66777 = -96						; size = 4
tv420 = -96						; size = 4
$T66775 = -96						; size = 8
$T66771 = -96						; size = 4
_AmmoDamage$57747 = -96					; size = 8
$T66774 = -88						; size = 8
$T66773 = -88						; size = 8
$T66772 = -88						; size = 8
_hitData$57822 = -88					; size = 8
_AmmoWarhead$57748 = -88				; size = 8
_possibleWeapons$57812 = -80				; size = 16
__$EHRec$ = -12						; size = 12
_evt$ = 8						; size = 4
?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z PROC ; gzAntiCheatWeapons::Player_RawDamage, COMDAT
; _this$ = ecx

; 487  : {

	push	ebp
	mov	ebp, esp
	and	esp, -64				; ffffffc0H
	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z
	push	eax
	mov	DWORD PTR fs:0, esp

; 488  : 	if (!gzAntiCheatMgr->m_settings->RoF.Enable)

	mov	eax, DWORD PTR ?gzAntiCheatMgr@@3PAVgzAntiCheatManager@@A ; gzAntiCheatMgr
	sub	esp, 104				; 00000068H
	push	ebx
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR [eax+36]
	cmp	BYTE PTR [ecx+32], 0
	push	edi
	je	$LN31@Player_Raw@3

; 489  : 		return;
; 490  : 
; 491  : 	if (evt.m_attacker->As_SoldierGameObj() && evt.m_attacker->As_SoldierGameObj()->Player == this->m_owner->GetPlayerData())

	mov	ebx, DWORD PTR _evt$[ebp]
	mov	ecx, DWORD PTR [ebx+24]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	test	eax, eax
	je	$LN31@Player_Raw@3
	mov	ecx, DWORD PTR [esi+36]
	mov	edi, DWORD PTR [ecx+76]
	mov	ecx, DWORD PTR [ebx+24]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	cmp	DWORD PTR [eax+2400], edi
	jne	$LN31@Player_Raw@3

; 492  : 	{
; 493  : 		if (!evt.m_defender)

	cmp	DWORD PTR [ebx+28], 0
	je	$LN31@Player_Raw@3

; 494  : 			return;
; 495  : 		
; 496  : 		nc_SmartGameObj *obj = evt.m_attacker->As_SoldierGameObj();

	mov	ecx, DWORD PTR [ebx+24]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+68]
	call	eax
	mov	edi, eax

; 497  : 		if (obj->As_SoldierGameObj()->Vehicle)

	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+68]
	mov	ecx, edi
	call	eax
	cmp	DWORD PTR [eax+2444], 0
	je	SHORT $LN50@Player_Raw@3

; 498  : 			obj = obj->As_SoldierGameObj()->Vehicle;

	mov	edx, DWORD PTR [edi]
	mov	eax, DWORD PTR [edx+68]
	mov	ecx, edi
	call	eax
	mov	edi, DWORD PTR [eax+2444]
$LN50@Player_Raw@3:

; 499  : 
; 500  : 		int dataId = -1;
; 501  : 		if (obj->WeaponBag->current && obj->WeaponBag->current < obj->WeaponBag->Vector.Count())

	mov	ecx, DWORD PTR [edi+1968]
	cmp	DWORD PTR [ecx+28], 0
	je	$LN31@Player_Raw@3
	mov	eax, ecx
	mov	ecx, DWORD PTR [eax+20]
	cmp	DWORD PTR [eax+28], ecx
	jge	$LN31@Player_Raw@3

; 502  : 		{
; 503  : 			float AmmoDamage[2] = {
; 504  : 				obj->WeaponBag->Vector[obj->WeaponBag->current]->PrimaryAmmo->Damage.Get(),

	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+edx*4]
	mov	ecx, DWORD PTR [ecx+28]
	lea	eax, DWORD PTR [eax+edx*4]
	add	ecx, 40					; 00000028H
	call	?Get@nc_FloatDataSafeClass@@QAEMXZ	; nc_FloatDataSafeClass::Get
	fstp	DWORD PTR _AmmoDamage$57747[esp+128]

; 505  : 				obj->WeaponBag->Vector[obj->WeaponBag->current]->SecondaryAmmo->Damage.Get()
; 506  : 			};

	mov	eax, DWORD PTR [edi+1968]
	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+edx*4]
	mov	ecx, DWORD PTR [ecx+32]
	lea	eax, DWORD PTR [eax+edx*4]
	add	ecx, 40					; 00000028H
	call	?Get@nc_FloatDataSafeClass@@QAEMXZ	; nc_FloatDataSafeClass::Get
	fstp	DWORD PTR _AmmoDamage$57747[esp+132]

; 507  : 			int AmmoWarhead[2] = {
; 508  : 				obj->WeaponBag->Vector[obj->WeaponBag->current]->PrimaryAmmo->Warhead.Get(),

	mov	eax, DWORD PTR [edi+1968]
	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+edx*4]
	mov	ecx, DWORD PTR [ecx+28]
	lea	eax, DWORD PTR [eax+edx*4]
	add	ecx, 36					; 00000024H
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	mov	DWORD PTR _AmmoWarhead$57748[esp+128], eax

; 509  : 				obj->WeaponBag->Vector[obj->WeaponBag->current]->SecondaryAmmo->Warhead.Get()
; 510  : 			};

	mov	eax, DWORD PTR [edi+1968]
	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+edx*4]
	mov	ecx, DWORD PTR [ecx+32]
	lea	eax, DWORD PTR [eax+edx*4]
	add	ecx, 36					; 00000024H
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get

; 511  : 
; 512  : 			// Compare ammo
; 513  : 			nc_AmmoDefinitionClass *detectedAmmo = NULL;
; 514  : 			if ((evt.m_damage == AmmoDamage[0] || evt.m_damage == (AmmoDamage[0] * 3.0f) || evt.m_damage == (AmmoDamage[0] * 5.0f)) && evt.m_warhead == AmmoWarhead[0])

	fld	DWORD PTR _AmmoDamage$57747[esp+128]
	fcom	DWORD PTR [ebx+32]
	mov	ecx, eax
	fnstsw	ax
	fld	DWORD PTR __real@40400000
	test	ah, 68					; 00000044H
	fld	DWORD PTR __real@40a00000
	jnp	SHORT $LN285@Player_Raw@3
	fld	ST(2)
	fmul	ST(0), ST(2)
	fcomp	DWORD PTR [ebx+32]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN285@Player_Raw@3
	fmul	ST(2), ST(0)
	fxch	ST(2)
	fcomp	DWORD PTR [ebx+32]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN47@Player_Raw@3
$LN48@Player_Raw@3:

; 516  : 			else if ((evt.m_damage == AmmoDamage[1] || evt.m_damage == (AmmoDamage[1] * 3.0f) || evt.m_damage == (AmmoDamage[1] * 5.0f)) && evt.m_warhead == AmmoWarhead[1])

	fld	DWORD PTR _AmmoDamage$57747[esp+132]
	fcom	DWORD PTR [ebx+32]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN289@Player_Raw@3
	fld	ST(0)
	fmulp	ST(2), ST(0)
	fxch	ST(1)
	fcomp	DWORD PTR [ebx+32]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN292@Player_Raw@3
	fmulp	ST(1), ST(0)
	fcomp	DWORD PTR [ebx+32]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jnp	SHORT $LN44@Player_Raw@3
$LN43@Player_Raw@3:

; 539  : 								goto weaponFound;
; 540  : 							}
; 541  : 						}
; 542  : 					}
; 543  : 				}
; 544  : weaponFound:;
; 545  : 			}
; 546  : 			else
; 547  : 			{
; 548  : 				aVector<gzRoFHitDataStruct> possibleWeapons;

	xor	ecx, ecx
	mov	DWORD PTR _possibleWeapons$57812[esp+128], OFFSET ??_7?$aVector@UgzRoFHitDataStruct@@@@6B@
	mov	DWORD PTR _possibleWeapons$57812[esp+132], ecx
	mov	DWORD PTR _possibleWeapons$57812[esp+136], ecx
	mov	DWORD PTR _possibleWeapons$57812[esp+140], ecx

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

	mov	eax, DWORD PTR [esi+56]
	xor	edi, edi
	cmp	eax, ecx
	mov	DWORD PTR __$EHRec$[esp+136], ecx
	mov	DWORD PTR _i$57813[esp+128], edi
	jbe	$LN272@Player_Raw@3
	jmp	$LN30@Player_Raw@3
$LN285@Player_Raw@3:

; 511  : 
; 512  : 			// Compare ammo
; 513  : 			nc_AmmoDefinitionClass *detectedAmmo = NULL;
; 514  : 			if ((evt.m_damage == AmmoDamage[0] || evt.m_damage == (AmmoDamage[0] * 3.0f) || evt.m_damage == (AmmoDamage[0] * 5.0f)) && evt.m_warhead == AmmoWarhead[0])

	fstp	ST(2)
$LN47@Player_Raw@3:
	mov	edx, DWORD PTR _AmmoWarhead$57748[esp+128]
	cmp	DWORD PTR [ebx+36], edx
	jne	SHORT $LN48@Player_Raw@3

; 515  : 				detectedAmmo = obj->WeaponBag->Vector[obj->WeaponBag->current]->PrimaryAmmo;

	mov	eax, DWORD PTR [edi+1968]
	fstp	ST(0)
	mov	ecx, DWORD PTR [eax+28]
	fstp	ST(0)
	mov	edx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [edx+ecx*4]
	mov	ecx, DWORD PTR [eax+28]
	mov	DWORD PTR _detectedAmmo$57749[esp+128], ecx
	jmp	SHORT $LN45@Player_Raw@3
$LN289@Player_Raw@3:

; 516  : 			else if ((evt.m_damage == AmmoDamage[1] || evt.m_damage == (AmmoDamage[1] * 3.0f) || evt.m_damage == (AmmoDamage[1] * 5.0f)) && evt.m_warhead == AmmoWarhead[1])

	fstp	ST(0)
$LN292@Player_Raw@3:
	fstp	ST(0)
	fstp	ST(0)
$LN44@Player_Raw@3:
	cmp	DWORD PTR [ebx+36], ecx
	jne	SHORT $LN43@Player_Raw@3

; 517  : 				detectedAmmo = obj->WeaponBag->Vector[obj->WeaponBag->current]->SecondaryAmmo;

	mov	eax, DWORD PTR [edi+1968]
	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+edx*4]
	mov	edx, DWORD PTR [ecx+32]
	mov	DWORD PTR _detectedAmmo$57749[esp+128], edx
$LN45@Player_Raw@3:

; 518  : 
; 519  : 			if (detectedAmmo != NULL)

	cmp	DWORD PTR _detectedAmmo$57749[esp+128], 0
	je	SHORT $LN43@Player_Raw@3

; 520  : 			{
; 521  : 				for (unsigned int i = 0; i < this->m_data.Count(); i++)

	cmp	DWORD PTR [esi+56], 0
	mov	DWORD PTR _i$57756[esp+128], 0
	jbe	$LN31@Player_Raw@3
	mov	edi, DWORD PTR [edi+1968]
	mov	eax, DWORD PTR [edi+28]
	mov	ecx, DWORD PTR [edi+8]
	mov	edx, DWORD PTR [ecx+eax*4]
	mov	eax, DWORD PTR [edx]
	mov	ecx, DWORD PTR [esi+48]
	mov	DWORD PTR tv1290[esp+128], eax
	mov	DWORD PTR tv1855[esp+128], ecx
$LN42@Player_Raw@3:

; 522  : 				{
; 523  : 					if (this->m_data[i]->WeaponDef == obj->WeaponBag->Vector[obj->WeaponBag->current]->WeaponDef)

	mov	edx, DWORD PTR tv1855[esp+128]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR tv1290[esp+128]
	cmp	DWORD PTR [ecx+16], eax
	jne	SHORT $LN41@Player_Raw@3

; 524  : 					{
; 525  : 						for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	edx, DWORD PTR [ecx+12]
	xor	eax, eax
	test	edx, edx
	jbe	SHORT $LN41@Player_Raw@3
	mov	ecx, DWORD PTR [ecx+4]
	npad	1
$LL38@Player_Raw@3:

; 526  : 						{
; 527  : 							if (this->m_data[i]->ammoList[j]->AmmoDef == detectedAmmo)

	mov	edi, DWORD PTR [ecx]
	mov	ebx, DWORD PTR _detectedAmmo$57749[esp+128]
	cmp	DWORD PTR [edi+4], ebx
	je	SHORT $LN264@Player_Raw@3
	add	eax, 1
	add	ecx, 4
	cmp	eax, edx
	jb	SHORT $LL38@Player_Raw@3
$LN41@Player_Raw@3:

; 520  : 			{
; 521  : 				for (unsigned int i = 0; i < this->m_data.Count(); i++)

	mov	eax, DWORD PTR _i$57756[esp+128]
	add	DWORD PTR tv1855[esp+128], 4
	add	eax, 1
	cmp	eax, DWORD PTR [esi+56]
	mov	DWORD PTR _i$57756[esp+128], eax
	jb	SHORT $LN42@Player_Raw@3

; 644  : 		}
; 645  : 	}
; 646  : }

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

; 528  : 							{
; 529  : #ifdef ROFMSG
; 530  : 								stConsole::Out("[WeaponHack] Weapon determined: %s; Ammo: %s\n",
; 531  : 									this->m_data[i]->WeaponDef->Get_Name(),
; 532  : 									this->m_data[i]->ammoList[j]->AmmoDef->Get_Name()
; 533  : 								);

	mov	edi, DWORD PTR _i$57756[esp+128]
	mov	ecx, DWORD PTR [esi+48]
	add	edi, edi
	add	eax, eax
	add	edi, edi
	mov	edx, DWORD PTR [edi+ecx]
	mov	ecx, DWORD PTR [edx+4]
	mov	ebx, DWORD PTR [edx+16]
	add	eax, eax
	mov	DWORD PTR tv1297[esp+128], eax
	mov	eax, DWORD PTR [ecx+eax]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	call	eax
	mov	edx, DWORD PTR [ebx]
	push	eax
	mov	eax, DWORD PTR [edx+48]
	mov	ecx, ebx
	call	eax
	push	eax
	push	OFFSET ??_C@_0CO@NBIDJFPG@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out

; 534  : #endif
; 535  : 								if (this->IsAmmoExpired(this->m_data[i]))

	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+edi]
	add	eax, edi
	add	esp, 12					; 0000000cH
	push	ecx
	mov	ecx, esi
	call	?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::IsAmmoExpired
	test	al, al

; 536  : 									evt.Skip();

	mov	edx, DWORD PTR _evt$[ebp]
	je	SHORT $LN34@Player_Raw@3
	mov	BYTE PTR [edx+40], 0

; 644  : 		}
; 645  : 	}
; 646  : }

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

; 537  : 								else
; 538  : 									this->AddHitCount(this->m_data[i]->ammoList[j], evt);

	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [edi+eax]
	mov	edi, DWORD PTR [ecx+4]
	add	edi, DWORD PTR tv1297[esp+128]
	sub	esp, 48					; 00000030H
	mov	ecx, esp
	mov	DWORD PTR $T66771[esp+176], esp
	push	edx
	call	??0gzEventObjectDamage@@QAE@ABV0@@Z
	mov	eax, DWORD PTR [edi]
	push	eax
	mov	ecx, esi
	call	?AddHitCount@gzAntiCheatWeapons@@QAEXPAUgzRoFAmmoDataStruct@@VgzEventObjectDamage@@@Z ; gzAntiCheatWeapons::AddHitCount
$weaponFound$57770:

; 644  : 		}
; 645  : 	}
; 646  : }

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

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

	xor	ecx, ecx
$LN30@Player_Raw@3:

; 550  : 				{
; 551  : 					for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	edx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [edx+edi*4]
	cmp	DWORD PTR [eax+12], ecx
	mov	DWORD PTR _j$57817[esp+128], ecx
	jbe	$LN29@Player_Raw@3
	npad	3
$LL27@Player_Raw@3:

; 552  : 					{
; 553  : 						if (this->m_data[i]->ammoList[j]->AmmoDamage == evt.m_damage && this->m_data[i]->ammoList[j]->AmmoWarhead == evt.m_warhead)

	mov	eax, DWORD PTR [eax+4]
	lea	ebx, DWORD PTR [ecx*4]
	mov	edx, DWORD PTR [ebx+eax]
	mov	eax, DWORD PTR _evt$[ebp]
	fld	DWORD PTR [eax+32]
	fcomp	DWORD PTR [edx+40]
	fnstsw	ax
	test	ah, 68					; 00000044H
	jp	$LN26@Player_Raw@3
	mov	edx, DWORD PTR [edx+44]
	mov	eax, DWORD PTR _evt$[ebp]
	cmp	edx, DWORD PTR [eax+36]
	jne	$LN26@Player_Raw@3

; 554  : 						{
; 555  : 							gzRoFHitDataStruct hitData;
; 556  : 							hitData.weaponId = i;
; 557  : 							hitData.ammoId = j;

	mov	DWORD PTR _hitData$57822[esp+132], ecx

; 558  : 							possibleWeapons.Add(hitData);

	lea	ecx, DWORD PTR _hitData$57822[esp+128]
	push	ecx
	lea	ecx, DWORD PTR _possibleWeapons$57812[esp+132]
	mov	DWORD PTR _hitData$57822[esp+132], edi
	call	?Add@?$aVector@UgzRoFHitDataStruct@@@@UAEXABUgzRoFHitDataStruct@@@Z ; aVector<gzRoFHitDataStruct>::Add

; 559  : #ifdef ROFMSG
; 560  : 							stConsole::Out("[WeaponHack] Possible weapon: %s; Ammo: %s; Damage: %f; Warhead: %d; Last select: %f sec(s) ago\n",
; 561  : 								this->m_data[i]->WeaponDef->Get_Name(),
; 562  : 								this->m_data[i]->ammoList[j]->AmmoDef->Get_Name(),
; 563  : 								this->m_data[i]->ammoList[j]->AmmoDamage,
; 564  : 								this->m_data[i]->ammoList[j]->AmmoWarhead,
; 565  : 								this->GetWeaponLastSelectTime(this->m_data[i])
; 566  : 							);

	mov	edx, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [edx+edi*4]
	lea	eax, DWORD PTR [edx+edi*4]
	mov	edx, DWORD PTR [ecx+4]
	mov	edx, DWORD PTR [edx+ebx]
	mov	ecx, DWORD PTR [ecx+16]
	mov	edx, DWORD PTR [edx+4]
	mov	DWORD PTR tv432[esp+128], ecx
	mov	DWORD PTR tv420[esp+128], edx
	mov	edx, DWORD PTR [eax]
	mov	edi, DWORD PTR [edx+4]
	mov	ecx, edx
	add	edi, ebx
	mov	ebx, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR _j$57817[esp+128]
	add	ecx, ecx
	add	ecx, ecx
	add	ebx, ecx
	push	edx
	mov	ecx, esi
	call	?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::GetWeaponLastSelectTime
	mov	eax, DWORD PTR [edi]
	mov	ecx, DWORD PTR [eax+44]
	mov	edx, DWORD PTR [ebx]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	ecx
	mov	ecx, DWORD PTR tv420[esp+140]
	fld	DWORD PTR [edx+40]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	edx
	mov	ecx, DWORD PTR tv432[esp+148]
	push	eax
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	call	edx
	push	eax
	push	OFFSET ??_C@_0GB@DBDJOIHC@?$FLWeaponHack?$FN?5Possible?5weapon?3?5?$CFs@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	mov	edi, DWORD PTR _i$57813[esp+160]
	mov	ecx, DWORD PTR _j$57817[esp+160]
	add	esp, 32					; 00000020H
$LN26@Player_Raw@3:
	mov	eax, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [eax+edi*4]
	add	ecx, 1
	cmp	ecx, DWORD PTR [eax+12]
	mov	DWORD PTR _j$57817[esp+128], ecx
	jb	$LL27@Player_Raw@3

; 550  : 				{
; 551  : 					for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	ebx, DWORD PTR _evt$[ebp]
$LN29@Player_Raw@3:

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

	add	edi, 1
	cmp	edi, DWORD PTR [esi+56]
	mov	DWORD PTR _i$57813[esp+128], edi
	jb	$LL279@Player_Raw@3

; 567  : #endif
; 568  : 						}
; 569  : 					}
; 570  : 				}
; 571  : 				if (possibleWeapons.Count() == 0)

	mov	eax, DWORD PTR _possibleWeapons$57812[esp+140]
	xor	edi, edi
	cmp	eax, edi
	jne	$LN23@Player_Raw@3
$LN272@Player_Raw@3:

; 572  : 				{
; 573  : 					stConsole::Out("[ST] %ls used an unavailable weapon; Damage: %f; Warhead; %d\n",
; 574  : 						this->m_owner->GetPlayerName().GetString(),
; 575  : 						evt.m_damage,
; 576  : 						evt.m_warhead
; 577  : 					);

	lea	ecx, DWORD PTR $T66772[esp+128]
	push	ecx
	mov	ecx, DWORD PTR [esi+36]
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	BYTE PTR __$EHRec$[esp+136], 1
	je	SHORT $LN145@Player_Raw@3
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN146@Player_Raw@3
$LN145@Player_Raw@3:
	xor	eax, eax
$LN146@Player_Raw@3:
	mov	edx, DWORD PTR [ebx+36]
	fld	DWORD PTR [ebx+32]
	push	edx
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	eax
	push	OFFSET ??_C@_0DO@HGGHHKGH@?$FLST?$FN?5?$CFls?5used?5an?5unavailable?5wea@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 20					; 00000014H
	lea	ecx, DWORD PTR $T66772[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 578  : 					this->WriteLog("%ls used an unavailable weapon.\n", this->m_owner->GetPlayerName().GetString());

	mov	ecx, DWORD PTR [esi+36]
	lea	eax, DWORD PTR $T66773[esp+128]
	push	eax
	call	?GetPlayerName@gzPlayer@@QAE?AVaWideString@@XZ ; gzPlayer::GetPlayerName
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	BYTE PTR __$EHRec$[esp+136], 2
	je	SHORT $LN154@Player_Raw@3
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN155@Player_Raw@3
$LN154@Player_Raw@3:
	xor	eax, eax
$LN155@Player_Raw@3:
	mov	ecx, DWORD PTR [esi]
	mov	edx, DWORD PTR [ecx+136]
	push	eax
	push	OFFSET ??_C@_0CB@IDMMPDPN@?$CFls?5used?5an?5unavailable?5weapon?4?6@
	push	esi
	call	edx
	add	esp, 12					; 0000000cH
	lea	ecx, DWORD PTR $T66773[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 579  : 					this->WriteLog("\tDamage: %f\n", evt.m_damage);

	fld	DWORD PTR [ebx+32]
	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+136]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	OFFSET ??_C@_0N@PMPJKNPO@?7Damage?3?5?$CFf?6?$AA@
	push	esi
	call	ecx

; 580  : 					this->WriteLog("\tWarhead: %d\n", evt.m_warhead);

	mov	eax, DWORD PTR [ebx+36]
	mov	edx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [edx+136]
	push	eax
	push	OFFSET ??_C@_0O@BANDBEAN@?7Warhead?3?5?$CFd?6?$AA@
	push	esi
	call	ecx

; 581  : 					this->WriteLog("\tPing: %d\n", nc_cNetwork::PServerConnection->RemoteList[this->m_owner->GetPlayerData()->PlayerId]->Ping);

	mov	edx, DWORD PTR [esi+36]
	mov	eax, DWORD PTR [edx+76]
	mov	edx, DWORD PTR [eax+1884]
	mov	eax, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	eax, DWORD PTR [eax]
	mov	eax, DWORD PTR [eax+1352]
	mov	edx, DWORD PTR [eax+edx*4]
	mov	eax, DWORD PTR [edx+676]
	mov	ecx, DWORD PTR [esi]
	mov	ecx, DWORD PTR [ecx+136]
	push	eax
	push	OFFSET ??_C@_0L@GLGMNOHG@?7Ping?3?5?$CFd?6?$AA@
	push	esi
	call	ecx

; 582  : 					this->WriteLog("\tOwned ammo:\n");

	mov	edx, DWORD PTR [esi]
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_0O@MPPHBCNJ@?7Owned?5ammo?3?6?$AA@
	push	esi
	call	eax

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

	xor	ecx, ecx
	add	esp, 48					; 00000030H
	cmp	DWORD PTR [esi+56], ecx
	mov	DWORD PTR _i$57829[esp+128], ecx
	jbe	$LN20@Player_Raw@3
$LN22@Player_Raw@3:
	mov	edx, DWORD PTR [esi+48]
	lea	ebx, DWORD PTR [ecx*4]
	lea	eax, DWORD PTR [ebx+edx]

; 584  : 					{
; 585  : 						for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	edx, DWORD PTR [eax]
	xor	edi, edi
	cmp	DWORD PTR [edx+12], edi
	jbe	$LN21@Player_Raw@3
$LL19@Player_Raw@3:

; 586  : 						{
; 587  : 							aString log = aString::Format("\t\t%s - ", this->m_data[i]->ammoList[j]->AmmoDef->Get_Name());

	mov	eax, DWORD PTR [eax]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx+edi*4]
	mov	ecx, DWORD PTR [edx+4]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	call	edx
	push	eax
	lea	eax, DWORD PTR _log$57837[esp+132]
	push	OFFSET ??_C@_07PMDKCONL@?7?7?$CFs?5?9?5?$AA@
	push	eax
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 12					; 0000000cH

; 588  : 							float lastSelect = this->GetWeaponLastSelectTime(this->m_data[i]);

	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+ebx]
	add	eax, ebx
	push	ecx
	mov	ecx, esi
	mov	BYTE PTR __$EHRec$[esp+140], 3
	call	?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::GetWeaponLastSelectTime

; 589  : 							if (lastSelect == -1.0f)

	fld	DWORD PTR __real@bf800000
	fucomp	ST(1)
	fnstsw	ax
	test	ah, 68					; 00000044H
	jp	SHORT $LN16@Player_Raw@3

; 590  : 								log += "never selected";

	push	OFFSET ??_C@_0P@PMKEGEOA@never?5selected?$AA@
	fstp	ST(0)
	lea	ecx, DWORD PTR $T66774[esp+132]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	edx, DWORD PTR $T66774[esp+128]
	push	edx
	lea	ecx, DWORD PTR _log$57837[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 4
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66774[esp+128]
	jmp	SHORT $LN302@Player_Raw@3
$LN16@Player_Raw@3:

; 591  : 							else if (lastSelect <= 0.0f)

	fldz
	fcomp	ST(1)
	fnstsw	ax
	test	ah, 1
	jne	SHORT $LN14@Player_Raw@3

; 592  : 								log += "currently selected";

	push	OFFSET ??_C@_0BD@LDGBBKBB@currently?5selected?$AA@
	fstp	ST(0)
	lea	ecx, DWORD PTR $T66775[esp+132]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	eax, DWORD PTR $T66775[esp+128]
	push	eax
	lea	ecx, DWORD PTR _log$57837[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 5
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66775[esp+128]

; 593  : 							else

	jmp	SHORT $LN302@Player_Raw@3
$LN14@Player_Raw@3:

; 594  : 								log += aString::Format("selected %f sec(s) ago", lastSelect);

	sub	esp, 8
	fstp	QWORD PTR [esp]
	lea	ecx, DWORD PTR $T66776[esp+136]
	push	OFFSET ??_C@_0BH@LMOBBFOK@selected?5?$CFf?5sec?$CIs?$CJ?5ago?$AA@
	push	ecx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _log$57837[esp+132]
	mov	BYTE PTR __$EHRec$[esp+140], 6
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T66776[esp+128]
$LN302@Player_Raw@3:
	mov	BYTE PTR __$EHRec$[esp+136], 3
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 595  : 							this->WriteLog("%s\n", log.GetString());

	mov	eax, DWORD PTR _log$57837[esp+132]
	test	eax, eax
	je	SHORT $LN186@Player_Raw@3
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN187@Player_Raw@3
$LN186@Player_Raw@3:
	xor	eax, eax
$LN187@Player_Raw@3:
	mov	edx, DWORD PTR [esi]
	push	eax
	mov	eax, DWORD PTR [edx+136]
	push	OFFSET ??_C@_03OFAPEBGM@?$CFs?6?$AA@
	push	esi
	call	eax
	add	esp, 12					; 0000000cH

; 596  : 						}

	lea	ecx, DWORD PTR _log$57837[esp+128]
	mov	BYTE PTR __$EHRec$[esp+136], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, DWORD PTR [esi+48]
	mov	edx, DWORD PTR [ebx+ecx]
	lea	eax, DWORD PTR [ebx+ecx]
	add	edi, 1
	cmp	edi, DWORD PTR [edx+12]
	jb	$LL19@Player_Raw@3

; 584  : 					{
; 585  : 						for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	ecx, DWORD PTR _i$57829[esp+128]
$LN21@Player_Raw@3:

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

	add	ecx, 1
	cmp	ecx, DWORD PTR [esi+56]
	mov	DWORD PTR _i$57829[esp+128], ecx
	jb	$LN22@Player_Raw@3
$LN20@Player_Raw@3:

; 597  : 					}
; 598  : 					this->WriteLog("-------------------------------------------------\n");

	mov	eax, DWORD PTR [esi]
	mov	ecx, DWORD PTR [eax+136]
	push	OFFSET ??_C@_0DD@POLPKMBJ@?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9?9@
	push	esi
	call	ecx
	add	esp, 8

; 599  : 					return;

	jmp	$LN1@Player_Raw@3
$LN23@Player_Raw@3:

; 600  : 				}
; 601  : 				else if (possibleWeapons.Count() == 1)

	cmp	eax, 1
	jne	$LN11@Player_Raw@3

; 602  : 				{
; 603  : #ifdef ROFMSG
; 604  : 					stConsole::Out("[WeaponHack] Weapon determined: %s; Ammo: %s; Last select: %f sec(s) ago\n",
; 605  : 						this->m_data[possibleWeapons[0].weaponId]->WeaponDef->Get_Name(),
; 606  : 						this->m_data[possibleWeapons[0].weaponId]->ammoList[possibleWeapons[0].ammoId]->AmmoDef->Get_Name(),
; 607  : 						this->GetWeaponLastSelectTime(this->m_data[possibleWeapons[0].weaponId])
; 608  : 					);

	mov	ecx, DWORD PTR _possibleWeapons$57812[esp+132]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [esi+48]
	mov	edx, DWORD PTR [eax+edx*4]
	mov	edi, DWORD PTR [ecx+4]
	mov	ecx, DWORD PTR [ecx]
	mov	DWORD PTR tv1508[esp+128], edx
	mov	edx, DWORD PTR [edx+4]
	mov	edx, DWORD PTR [edx+edi*4]
	mov	edi, DWORD PTR [edx+4]
	mov	edx, DWORD PTR tv1508[esp+128]
	mov	edx, DWORD PTR [edx+16]
	lea	eax, DWORD PTR [eax+ecx*4]
	mov	DWORD PTR tv651[esp+128], edx
	mov	edx, DWORD PTR [eax]
	push	edx
	mov	ecx, esi
	call	?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::GetWeaponLastSelectTime
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [eax+48]
	sub	esp, 8
	mov	ecx, edi
	fstp	QWORD PTR [esp]
	call	edx
	mov	ecx, DWORD PTR tv651[esp+136]
	push	eax
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	call	edx
	push	eax
	push	OFFSET ??_C@_0EK@MFPADNDO@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out

; 609  : #endif
; 610  : 					if (this->IsAmmoExpired(this->m_data[possibleWeapons[0].weaponId]))

	mov	eax, DWORD PTR _possibleWeapons$57812[esp+152]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [esi+48]
	lea	eax, DWORD PTR [edx+ecx*4]
	mov	eax, DWORD PTR [eax]
	add	esp, 20					; 00000014H
	push	eax
	mov	ecx, esi
	call	?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::IsAmmoExpired
	test	al, al

; 611  : 						evt.Skip();
; 612  : 					else

	jne	$LN304@Player_Raw@3

; 613  : 						this->AddHitCount(this->m_data[possibleWeapons[0].weaponId]->ammoList[possibleWeapons[0].ammoId], evt);

	mov	eax, DWORD PTR _possibleWeapons$57812[esp+132]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [eax+4]
	lea	ecx, DWORD PTR [edx+ecx*4]
	mov	ecx, DWORD PTR [ecx]
	mov	edx, DWORD PTR [ecx+4]
	sub	esp, 48					; 00000030H
	mov	ecx, esp
	mov	DWORD PTR $T66777[esp+176], esp
	push	ebx
	lea	edi, DWORD PTR [edx+eax*4]
	call	??0gzEventObjectDamage@@QAE@ABV0@@Z
	mov	eax, DWORD PTR [edi]
	push	eax

; 614  : 				}
; 615  : 				else

	jmp	$LN303@Player_Raw@3
$LN11@Player_Raw@3:

; 616  : 				{
; 617  : 					gzRoFHitDataStruct *hitData = NULL;
; 618  : 					float lastWeaponSelectTime = 0.0f;
; 619  : 					for (unsigned int i = 0; i < possibleWeapons.Count(); i++)

	cmp	eax, edi
	mov	DWORD PTR _i$57856[esp+128], edi
	jbe	$LN1@Player_Raw@3
	mov	eax, DWORD PTR _possibleWeapons$57812[esp+132]
$LN7@Player_Raw@3:

; 620  : 					{
; 621  : 						if (this->IsAmmoExpired(this->m_data[possibleWeapons[i].weaponId]))

	mov	ecx, DWORD PTR _i$57856[esp+128]
	mov	edx, DWORD PTR [eax+ecx*8]
	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [eax+edx*4]
	lea	eax, DWORD PTR [eax+edx*4]
	push	ecx
	mov	ecx, esi
	call	?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::IsAmmoExpired
	test	al, al
	mov	eax, DWORD PTR _possibleWeapons$57812[esp+132]
	je	SHORT $LN6@Player_Raw@3
	mov	edx, DWORD PTR _i$57856[esp+128]
	lea	edi, DWORD PTR [eax+edx*8]
$LN6@Player_Raw@3:
	mov	ecx, DWORD PTR _i$57856[esp+128]
	add	ecx, 1
	cmp	ecx, DWORD PTR _possibleWeapons$57812[esp+140]
	mov	DWORD PTR _i$57856[esp+128], ecx
	jb	SHORT $LN7@Player_Raw@3

; 622  : 						{
; 623  : 							lastWeaponSelectTime = this->m_data[possibleWeapons[i].weaponId]->lastSelectTime;
; 624  : 							hitData = &possibleWeapons[i];
; 625  : 						}
; 626  : 					}
; 627  : 
; 628  : 					if (hitData != NULL)

	test	edi, edi
	je	$LN1@Player_Raw@3

; 629  : 					{
; 630  : #ifdef ROFMSG
; 631  : 						stConsole::Out("[WeaponHack] Weapon determined: %s; Ammo: %s; Last select: %f sec(s) ago\n",
; 632  : 							this->m_data[hitData->weaponId]->WeaponDef->Get_Name(),
; 633  : 							this->m_data[hitData->weaponId]->ammoList[hitData->ammoId]->AmmoDef->Get_Name(),
; 634  : 							this->GetWeaponLastSelectTime(this->m_data[hitData->weaponId])
; 635  : 						);

	mov	ecx, DWORD PTR [esi+48]
	mov	eax, DWORD PTR [edi]
	mov	edx, DWORD PTR [edi+4]
	lea	eax, DWORD PTR [ecx+eax*4]
	mov	ecx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [ecx+4]
	mov	edx, DWORD PTR [ecx+edx*4]
	mov	ecx, DWORD PTR [edx+4]
	mov	DWORD PTR tv745[esp+128], ecx
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+16]
	mov	eax, ecx
	push	eax
	mov	ecx, esi
	mov	DWORD PTR tv757[esp+132], edx
	call	?GetWeaponLastSelectTime@gzAntiCheatWeapons@@QAEMPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::GetWeaponLastSelectTime
	mov	ecx, DWORD PTR tv745[esp+128]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	call	eax
	mov	ecx, DWORD PTR tv757[esp+136]
	mov	edx, DWORD PTR [ecx]
	push	eax
	mov	eax, DWORD PTR [edx+48]
	call	eax
	push	eax
	push	OFFSET ??_C@_0EK@MFPADNDO@?$FLWeaponHack?$FN?5Weapon?5determined?3?5@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out

; 636  : #endif
; 637  : 						if (this->IsAmmoExpired(this->m_data[hitData->weaponId]))

	mov	ecx, DWORD PTR [edi]
	mov	edx, DWORD PTR [esi+48]
	lea	eax, DWORD PTR [edx+ecx*4]
	mov	eax, DWORD PTR [eax]
	add	esp, 20					; 00000014H
	push	eax
	mov	ecx, esi
	call	?IsAmmoExpired@gzAntiCheatWeapons@@QAE_NPAUgzRoFWeaponDataStruct@@@Z ; gzAntiCheatWeapons::IsAmmoExpired
	test	al, al
	je	SHORT $LN2@Player_Raw@3
$LN304@Player_Raw@3:

; 638  : 							evt.Skip();

	mov	BYTE PTR [ebx+40], 0

; 639  : 						else

	jmp	SHORT $LN1@Player_Raw@3
$LN2@Player_Raw@3:

; 640  : 							this->AddHitCount(this->m_data[hitData->weaponId]->ammoList[hitData->ammoId], evt);

	mov	ecx, DWORD PTR [edi]
	mov	edx, DWORD PTR [esi+48]
	lea	eax, DWORD PTR [edx+ecx*4]
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edi+4]
	mov	eax, DWORD PTR [edx+4]
	sub	esp, 48					; 00000030H
	lea	edi, DWORD PTR [eax+ecx*4]
	mov	ecx, esp
	mov	DWORD PTR $T66778[esp+176], esp
	push	ebx
	call	??0gzEventObjectDamage@@QAE@ABV0@@Z
	mov	ecx, DWORD PTR [edi]
	push	ecx
$LN303@Player_Raw@3:
	mov	ecx, esi
	call	?AddHitCount@gzAntiCheatWeapons@@QAEXPAUgzRoFAmmoDataStruct@@VgzEventObjectDamage@@@Z ; gzAntiCheatWeapons::AddHitCount
$LN1@Player_Raw@3:

; 641  : 					}
; 642  : 				}
; 643  : 			}

	lea	ecx, DWORD PTR _possibleWeapons$57812[esp+128]
	mov	DWORD PTR __$EHRec$[esp+136], -1
	call	??1?$aVector@UgzRoFHitDataStruct@@@@UAE@XZ ; aVector<gzRoFHitDataStruct>::~aVector<gzRoFHitDataStruct>
$LN31@Player_Raw@3:

; 644  : 		}
; 645  : 	}
; 646  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+128]
	pop	edi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$1:
	lea	ecx, DWORD PTR _possibleWeapons$57812[ebp]
	jmp	??1?$aVector@UgzRoFHitDataStruct@@@@UAE@XZ ; aVector<gzRoFHitDataStruct>::~aVector<gzRoFHitDataStruct>
__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$2:
	lea	ecx, DWORD PTR $T66772[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$3:
	lea	ecx, DWORD PTR $T66773[ebp]
	jmp	??1aWideString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$4:
	lea	ecx, DWORD PTR _log$57837[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$5:
	lea	ecx, DWORD PTR $T66774[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$6:
	lea	ecx, DWORD PTR $T66775[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z$7:
	lea	ecx, DWORD PTR $T66776[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z:
	mov	eax, OFFSET __ehfuncinfo$?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Player_RawDamage@gzAntiCheatWeapons@@UAEXAAVgzEventObjectDamage@@@Z ENDP ; gzAntiCheatWeapons::Player_RawDamage
; Function compile flags: /Ogtpy
;	COMDAT ??_GgzAntiCheatHitLog@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GgzAntiCheatHitLog@@UAEPAXI@Z PROC			; gzAntiCheatHitLog::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1gzAntiCheatHitLog@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN4@scalar@14
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN4@scalar@14:
	mov	eax, esi
	pop	esi
	ret	4
??_GgzAntiCheatHitLog@@UAEPAXI@Z ENDP			; gzAntiCheatHitLog::`scalar deleting destructor'
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@gzAntiCheatWeapons@@UAEXXZ
_TEXT	SEGMENT
?Delete@gzAntiCheatWeapons@@UAEXXZ PROC			; gzAntiCheatWeapons::Delete, COMDAT
; _this$ = ecx

; 249  : {

	push	ebp
	push	esi
	push	edi
	mov	edi, ecx

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

	xor	ebp, ebp
	xor	esi, esi
	cmp	DWORD PTR [edi+56], ebp
	jbe	$LN4@Delete@7
	push	ebx
$LL6@Delete@7:

; 251  : 	{
; 252  : 		for (unsigned int j = 0; j < this->m_data[i]->ammoList.Count(); j++)

	mov	eax, DWORD PTR [edi+48]
	mov	ecx, DWORD PTR [eax+esi*4]
	xor	ebx, ebx
	cmp	DWORD PTR [ecx+12], ebp
	jbe	SHORT $LN1@Delete@7
$LL3@Delete@7:

; 253  : 			delete this->m_data[i]->ammoList[j];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	253					; 000000fdH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	edx, DWORD PTR [edi+48]
	mov	eax, DWORD PTR [edx+esi*4]
	mov	ecx, DWORD PTR [eax+4]
	mov	edx, DWORD PTR [ecx+ebx*4]
	push	edx
	call	??3@YAXPAX@Z				; operator delete
	mov	eax, DWORD PTR [edi+48]
	mov	ecx, DWORD PTR [eax+esi*4]
	add	ebx, 1
	add	esp, 16					; 00000010H
	cmp	ebx, DWORD PTR [ecx+12]
	jb	SHORT $LL3@Delete@7
$LN1@Delete@7:

; 254  : 		this->m_data[i]->ammoList.Clear();

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

; 255  : 		delete this->m_data[i];

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	255					; 000000ffH
	push	OFFSET ??_C@_0BC@EEKCPOMI@?4?2stanticheat?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [edi+48]
	mov	ebx, DWORD PTR [eax+esi*4]
	add	esp, 12					; 0000000cH
	cmp	ebx, ebp
	je	SHORT $LN5@Delete@7
	cmp	DWORD PTR [ebx+4], ebp
	mov	DWORD PTR [ebx], OFFSET ??_7?$aVector@PAUgzRoFAmmoDataStruct@@@@6B@
	je	SHORT $LN37@Delete@7
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [ebx+4]
	push	ecx
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [ebx+4], ebp
$LN37@Delete@7:
	push	ebx
	mov	DWORD PTR [ebx+8], ebp
	mov	DWORD PTR [ebx+12], ebp
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN5@Delete@7:
	add	esi, 1
	cmp	esi, DWORD PTR [edi+56]
	jb	$LL6@Delete@7
	pop	ebx
$LN4@Delete@7:

; 256  : 	}
; 257  : 	this->m_data.Clear();

	mov	edx, DWORD PTR [edi+44]
	mov	eax, DWORD PTR [edx+4]
	lea	ecx, DWORD PTR [edi+44]
	pop	edi
	pop	esi
	pop	ebp
	jmp	eax
?Delete@gzAntiCheatWeapons@@UAEXXZ ENDP			; gzAntiCheatWeapons::Delete
_TEXT	ENDS
EXTRN	_atexit:PROC
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stinc.h
;	COMDAT ??__EgzCritical@@YAXXZ
text$yc	SEGMENT
??__EgzCritical@@YAXXZ PROC				; `dynamic initializer for 'gzCritical'', COMDAT

; 67   : static aCriticalSection gzCritical;

	push	OFFSET _gzCritical
	call	DWORD PTR __imp__InitializeCriticalSection@4
	push	OFFSET ??__FgzCritical@@YAXXZ		; `dynamic atexit destructor for 'gzCritical''
	call	_atexit
	pop	ecx
	ret	0
??__EgzCritical@@YAXXZ ENDP				; `dynamic initializer for 'gzCritical''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__FgzCritical@@YAXXZ
text$yd	SEGMENT
??__FgzCritical@@YAXXZ PROC				; `dynamic atexit destructor for 'gzCritical'', COMDAT
	push	OFFSET _gzCritical
	call	DWORD PTR __imp__DeleteCriticalSection@4
	ret	0
??__FgzCritical@@YAXXZ ENDP				; `dynamic atexit destructor for 'gzCritical''
text$yd	ENDS
_BSS	SEGMENT
_gzCritical DB	018H DUP (?)
_BSS	ENDS
CRT$XCU	SEGMENT
_gzCritical$initializer$ DD FLAT:??__EgzCritical@@YAXXZ
CRT$XCU	ENDS
END
