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

	TITLE	d:\Source Code\STGM\stnet.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	?gzGameSpyQueryMgr@@3PAVgzGameSpyQueryManager@@A ; gzGameSpyQueryMgr
_BSS	SEGMENT
?gzGameSpyQueryMgr@@3PAVgzGameSpyQueryManager@@A DD 01H DUP (?) ; gzGameSpyQueryMgr
_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	?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	?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	??_7aThread@@6B@				; aThread::`vftable'
PUBLIC	??1aThread@@UAE@XZ				; aThread::~aThread
PUBLIC	??_R4aThread@@6B@				; aThread::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVaThread@@@8				; aThread `RTTI Type Descriptor'
PUBLIC	??_R3aThread@@8					; aThread::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2aThread@@8					; aThread::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@aThread@@8			; aThread::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?OnExit@aThread@@UAEXH@Z			; aThread::OnExit
EXTRN	??_EaThread@@UAEPAXI@Z:PROC			; aThread::`vector deleting destructor'
EXTRN	__purecall:PROC
;	COMDAT ??_R1A@?0A@EA@aThread@@8
; File d:\source code\alib\include\athread.h
rdata$r	SEGMENT
??_R1A@?0A@EA@aThread@@8 DD FLAT:??_R0?AVaThread@@@8	; aThread::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3aThread@@8
rdata$r	ENDS
;	COMDAT ??_R2aThread@@8
rdata$r	SEGMENT
??_R2aThread@@8 DD FLAT:??_R1A@?0A@EA@aThread@@8	; aThread::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3aThread@@8
rdata$r	SEGMENT
??_R3aThread@@8 DD 00H					; aThread::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2aThread@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVaThread@@@8
_DATA	SEGMENT
??_R0?AVaThread@@@8 DD FLAT:??_7type_info@@6B@		; aThread `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVaThread@@', 00H
_DATA	ENDS
;	COMDAT ??_R4aThread@@6B@
rdata$r	SEGMENT
??_R4aThread@@6B@ DD 00H				; aThread::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVaThread@@@8
	DD	FLAT:??_R3aThread@@8
rdata$r	ENDS
;	COMDAT ??_7aThread@@6B@
CONST	SEGMENT
??_7aThread@@6B@ DD FLAT:??_R4aThread@@6B@		; aThread::`vftable'
	DD	FLAT:??_EaThread@@UAEPAXI@Z
	DD	FLAT:__purecall
	DD	FLAT:?OnExit@aThread@@UAEXH@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??1aThread@@UAE@XZ
_TEXT	SEGMENT
??1aThread@@UAE@XZ PROC					; aThread::~aThread, COMDAT
; _this$ = ecx

; 22   : 	virtual ~aThread() { };

	mov	DWORD PTR [ecx], OFFSET ??_7aThread@@6B@
	ret	0
??1aThread@@UAE@XZ ENDP					; aThread::~aThread
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?OnExit@aThread@@UAEXH@Z
_TEXT	SEGMENT
_ExitCode$ = 8						; size = 4
?OnExit@aThread@@UAEXH@Z PROC				; aThread::OnExit, COMDAT
; _this$ = ecx

; 33   : 	virtual void OnExit(int ExitCode) { };

	ret	4
?OnExit@aThread@@UAEXH@Z ENDP				; aThread::OnExit
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GaThread@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GaThread@@UAEPAXI@Z PROC				; aThread::`scalar deleting destructor', COMDAT
; _this$ = ecx
	test	BYTE PTR ___flags$[esp-4], 1
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7aThread@@6B@
	je	SHORT $LN6@scalar@2
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN6@scalar@2:
	mov	eax, esi
	pop	esi
	ret	4
??_GaThread@@UAEPAXI@Z ENDP				; aThread::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Port@aIPv4Address@@QAEGXZ			; aIPv4Address::Port
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\asocket.h
;	COMDAT ?Port@aIPv4Address@@QAEGXZ
_TEXT	SEGMENT
?Port@aIPv4Address@@QAEGXZ PROC				; aIPv4Address::Port, COMDAT
; _this$ = ecx

; 32   : 	inline unsigned short Port() { return this->m_port; };

	mov	ax, WORD PTR [ecx+28]
	ret	0
?Port@aIPv4Address@@QAEGXZ ENDP				; aIPv4Address::Port
_TEXT	ENDS
PUBLIC	?Port@aIPv4Address@@QAEXG@Z			; aIPv4Address::Port
; Function compile flags: /Ogtpy
;	COMDAT ?Port@aIPv4Address@@QAEXG@Z
_TEXT	SEGMENT
_port$ = 8						; size = 2
?Port@aIPv4Address@@QAEXG@Z PROC			; aIPv4Address::Port, COMDAT
; _this$ = ecx

; 33   : 	inline void Port(unsigned short port) { this->m_port = port; };

	mov	ax, WORD PTR _port$[esp-4]
	mov	WORD PTR [ecx+28], ax
	ret	4
?Port@aIPv4Address@@QAEXG@Z ENDP			; aIPv4Address::Port
_TEXT	ENDS
PUBLIC	??1aSocketRaw@@UAE@XZ				; aSocketRaw::~aSocketRaw
EXTRN	??1aSocketBase@@UAE@XZ:PROC			; aSocketBase::~aSocketBase
; Function compile flags: /Ogtpy
;	COMDAT ??1aSocketRaw@@UAE@XZ
_TEXT	SEGMENT
??1aSocketRaw@@UAE@XZ PROC				; aSocketRaw::~aSocketRaw, COMDAT
; _this$ = ecx
	jmp	??1aSocketBase@@UAE@XZ			; aSocketBase::~aSocketBase
??1aSocketRaw@@UAE@XZ ENDP				; aSocketRaw::~aSocketRaw
_TEXT	ENDS
PUBLIC	?GetRoute@aNetTraceRoute@@QAEAAV?$aVector@UaTraceData@@@@XZ ; aNetTraceRoute::GetRoute
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\anettools.h
;	COMDAT ?GetRoute@aNetTraceRoute@@QAEAAV?$aVector@UaTraceData@@@@XZ
_TEXT	SEGMENT
?GetRoute@aNetTraceRoute@@QAEAAV?$aVector@UaTraceData@@@@XZ PROC ; aNetTraceRoute::GetRoute, COMDAT
; _this$ = ecx

; 58   : 	inline aVector<aTraceData>& GetRoute() { return this->m_route; };

	lea	eax, DWORD PTR [ecx+468]
	ret	0
?GetRoute@aNetTraceRoute@@QAEAAV?$aVector@UaTraceData@@@@XZ ENDP ; aNetTraceRoute::GetRoute
_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
EXTRN	___CxxFrameHandler3:PROC
;	COMDAT ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@ DB '"%s".%s', 00H ; `string'
CONST	ENDS
;	COMDAT 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
$T62855 = -36						; size = 8
$T62857 = -28						; size = 8
$T62856 = -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 $T62855[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 $T62856[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 $T62855[esp+44]
	push	esi
	push	eax
	lea	eax, DWORD PTR $T62857[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 $T62857[esp+44]
	setne	bl
	mov	BYTE PTR __$EHRec$[esp+52], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T62856[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 $T62855[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$1:
	lea	ecx, DWORD PTR $T62856[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z$2:
	lea	ecx, DWORD PTR $T62857[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_Int@stSettingsBase@@IAEHPBD0H@Z		; stSettingsBase::Load_Int
;	COMDAT xdata$x
; File d:\source code\alib\include\astring.h
xdata$x	SEGMENT
__unwindtable$?Load_Int@stSettingsBase@@IAEHPBD0H@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBD0H@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBD0H@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBD0H@Z$2
__ehfuncinfo$?Load_Int@stSettingsBase@@IAEHPBD0H@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?Load_Int@stSettingsBase@@IAEHPBD0H@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_Int@stSettingsBase@@IAEHPBD0H@Z
_TEXT	SEGMENT
$T62886 = -36						; size = 8
$T62888 = -28						; size = 8
$T62887 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_section$ = 8						; size = 4
_item$ = 12						; size = 4
_default$ = 16						; size = 4
?Load_Int@stSettingsBase@@IAEHPBD0H@Z PROC		; stSettingsBase::Load_Int, COMDAT
; _this$ = ecx

; 74   : 	{

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Load_Int@stSettingsBase@@IAEHPBD0H@Z
	push	eax

; 75   : 		if (this->m_cfg != NULL)
; 76   : 			return this->m_cfg->GetData(aString::Format("\"%s\".%s", section, item), default).ToLong();

	mov	eax, DWORD PTR _default$[esp+8]
	mov	DWORD PTR fs:0, esp
	sub	esp, 24					; 00000018H
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+12], 0
	je	$LN2@Load_Int
	push	eax
	lea	ecx, DWORD PTR $T62886[esp+44]
	call	??0aString@@QAE@H@Z			; aString::aString
	mov	ecx, DWORD PTR _item$[esp+36]
	mov	edx, DWORD PTR _section$[esp+36]
	push	ecx
	push	edx
	lea	eax, DWORD PTR $T62887[esp+48]
	push	OFFSET ??_C@_07PAMFCGLO@?$CC?$CFs?$CC?4?$CFs?$AA@
	push	eax
	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 $T62886[esp+40]
	push	esi
	push	eax
	lea	eax, DWORD PTR $T62888[esp+48]
	push	eax
	mov	BYTE PTR __$EHRec$[esp+60], 1
	call	edx
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+48], 2
	call	?ToLong@aString@@QAEJXZ			; aString::ToLong
	lea	ecx, DWORD PTR $T62888[esp+40]
	mov	esi, eax
	mov	BYTE PTR __$EHRec$[esp+48], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T62887[esp+40]
	mov	BYTE PTR __$EHRec$[esp+48], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T62886[esp+40]
	mov	DWORD PTR __$EHRec$[esp+48], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	eax, esi
$LN2@Load_Int:

; 77   : 		return default;
; 78   : 	};

	mov	ecx, DWORD PTR __$EHRec$[esp+40]
	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_Int@stSettingsBase@@IAEHPBD0H@Z$0:
	lea	ecx, DWORD PTR $T62886[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBD0H@Z$1:
	lea	ecx, DWORD PTR $T62887[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Load_Int@stSettingsBase@@IAEHPBD0H@Z$2:
	lea	ecx, DWORD PTR $T62888[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Load_Int@stSettingsBase@@IAEHPBD0H@Z:
	mov	eax, OFFSET __ehfuncinfo$?Load_Int@stSettingsBase@@IAEHPBD0H@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load_Int@stSettingsBase@@IAEHPBD0H@Z ENDP		; stSettingsBase::Load_Int
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
;	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
$T62913 = -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 $T62913[esp+8], esi
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+12]
	lea	edx, DWORD PTR $T62913[esp+8]
	push	edx
	call	eax

; 107  : 	};

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

; 108  : 	virtual void Delete() { };

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

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

	mov	eax, DWORD PTR _owner$[esp-4]
	mov	DWORD PTR [ecx+8], eax
	ret	4
?SetOwner@stSettingsBase@@QAEXPAVgzSettingsEvent@@@Z ENDP ; stSettingsBase::SetOwner
_TEXT	ENDS
PUBLIC	??_7gzGameSpyQuerySettings@@6B@			; gzGameSpyQuerySettings::`vftable'
PUBLIC	??0gzGameSpyQuerySettings@@QAE@XZ		; gzGameSpyQuerySettings::gzGameSpyQuerySettings
PUBLIC	??_R4gzGameSpyQuerySettings@@6B@		; gzGameSpyQuerySettings::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzGameSpyQuerySettings@@@8		; gzGameSpyQuerySettings `RTTI Type Descriptor'
PUBLIC	??_R3gzGameSpyQuerySettings@@8			; gzGameSpyQuerySettings::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzGameSpyQuerySettings@@8			; gzGameSpyQuerySettings::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzGameSpyQuerySettings@@8		; gzGameSpyQuerySettings::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Load@gzGameSpyQuerySettings@@UAEXXZ		; gzGameSpyQuerySettings::Load
;	COMDAT ??_R1A@?0A@EA@gzGameSpyQuerySettings@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzGameSpyQuerySettings@@8 DD FLAT:??_R0?AVgzGameSpyQuerySettings@@@8 ; gzGameSpyQuerySettings::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzGameSpyQuerySettings@@8
rdata$r	ENDS
;	COMDAT ??_R2gzGameSpyQuerySettings@@8
rdata$r	SEGMENT
??_R2gzGameSpyQuerySettings@@8 DD FLAT:??_R1A@?0A@EA@gzGameSpyQuerySettings@@8 ; gzGameSpyQuerySettings::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@stSettingsBase@@8
rdata$r	ENDS
;	COMDAT ??_R3gzGameSpyQuerySettings@@8
rdata$r	SEGMENT
??_R3gzGameSpyQuerySettings@@8 DD 00H			; gzGameSpyQuerySettings::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2gzGameSpyQuerySettings@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzGameSpyQuerySettings@@@8
_DATA	SEGMENT
??_R0?AVgzGameSpyQuerySettings@@@8 DD FLAT:??_7type_info@@6B@ ; gzGameSpyQuerySettings `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzGameSpyQuerySettings@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzGameSpyQuerySettings@@6B@
rdata$r	SEGMENT
??_R4gzGameSpyQuerySettings@@6B@ DD 00H			; gzGameSpyQuerySettings::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzGameSpyQuerySettings@@@8
	DD	FLAT:??_R3gzGameSpyQuerySettings@@8
rdata$r	ENDS
;	COMDAT ??_7gzGameSpyQuerySettings@@6B@
CONST	SEGMENT
??_7gzGameSpyQuerySettings@@6B@ DD FLAT:??_R4gzGameSpyQuerySettings@@6B@ ; gzGameSpyQuerySettings::`vftable'
	DD	FLAT:?Delete@stSettingsBase@@UAEXXZ
	DD	FLAT:?Load@gzGameSpyQuerySettings@@UAEXXZ
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
CONST	ENDS
;	COMDAT ??0gzGameSpyQuerySettings@@QAE@XZ
_TEXT	SEGMENT
$T62927 = -4						; size = 4
??0gzGameSpyQuerySettings@@QAE@XZ PROC			; gzGameSpyQuerySettings::gzGameSpyQuerySettings, COMDAT
; _this$ = ecx

; 6    : {

	push	ecx
	push	ebx
	xor	ebx, ebx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7stSettingsBase@@6B@
	mov	DWORD PTR [esi+12], ebx
	mov	DWORD PTR [esi+16], ebx
	mov	DWORD PTR [esi+20], ebx
	mov	DWORD PTR [esi+8], ebx
	mov	ecx, DWORD PTR ?gzSettingsMgr@@3PAVgzSettingsManager@@A ; gzSettingsMgr
	add	ecx, 36					; 00000024H
	mov	DWORD PTR $T62927[esp+12], esi
	mov	eax, DWORD PTR [ecx]
	mov	eax, DWORD PTR [eax+12]
	lea	edx, DWORD PTR $T62927[esp+12]
	push	edx
	call	eax

; 7    : 	this->m_enable        = false;

	mov	BYTE PTR [esi+24], bl

; 8    : 	this->m_bindPort      = 0;

	mov	WORD PTR [esi+26], bx

; 9    : 	this->m_showPlayers   = false;

	mov	BYTE PTR [esi+28], bl

; 10   : 	this->m_prependExMark = false;

	mov	BYTE PTR [esi+29], bl
	mov	DWORD PTR [esi], OFFSET ??_7gzGameSpyQuerySettings@@6B@

; 11   : }

	mov	eax, esi
	pop	esi
	pop	ebx
	pop	ecx
	ret	0
??0gzGameSpyQuerySettings@@QAE@XZ ENDP			; gzGameSpyQuerySettings::gzGameSpyQuerySettings
_TEXT	ENDS
PUBLIC	??_C@_0O@GJDNCBHM@PrependExMark?$AA@		; `string'
PUBLIC	??_C@_0M@OADDCNNM@ShowPlayers?$AA@		; `string'
PUBLIC	??_C@_08CJKKCJOG@BindPort?$AA@			; `string'
PUBLIC	??_C@_07CEIECCJ@GameSpy?$AA@			; `string'
PUBLIC	??_C@_06CKGENIKG@Enable?$AA@			; `string'
PUBLIC	??_C@_0DF@ONMBCNLI@?$FLError?$FN?5Network?4ini?5can?5not?5be?5l@ ; `string'
PUBLIC	??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@		; `string'
PUBLIC	??_C@_00CNPNBAHC@?$AA@				; `string'
PUBLIC	??_C@_0M@MJDNHPFO@Network?4ini?$AA@		; `string'
EXTRN	?Get_Game_Mode@@YAIXZ:PROC			; Get_Game_Mode
EXTRN	?Out@stConsole@@SAXPBDZZ:PROC			; stConsole::Out
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@_0O@GJDNCBHM@PrependExMark?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_0O@GJDNCBHM@PrependExMark?$AA@ DB 'PrependExMark', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@OADDCNNM@ShowPlayers?$AA@
CONST	SEGMENT
??_C@_0M@OADDCNNM@ShowPlayers?$AA@ DB 'ShowPlayers', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_08CJKKCJOG@BindPort?$AA@
CONST	SEGMENT
??_C@_08CJKKCJOG@BindPort?$AA@ DB 'BindPort', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_07CEIECCJ@GameSpy?$AA@
CONST	SEGMENT
??_C@_07CEIECCJ@GameSpy?$AA@ DB 'GameSpy', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_06CKGENIKG@Enable?$AA@
CONST	SEGMENT
??_C@_06CKGENIKG@Enable?$AA@ DB 'Enable', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0DF@ONMBCNLI@?$FLError?$FN?5Network?4ini?5can?5not?5be?5l@
CONST	SEGMENT
??_C@_0DF@ONMBCNLI@?$FLError?$FN?5Network?4ini?5can?5not?5be?5l@ DB '[Err'
	DB	'or] Network.ini can not be loaded or not found.', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
CONST	SEGMENT
??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@ DB '.\stnet.cpp', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_00CNPNBAHC@?$AA@
CONST	SEGMENT
??_C@_00CNPNBAHC@?$AA@ DB 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@MJDNHPFO@Network?4ini?$AA@
CONST	SEGMENT
??_C@_0M@MJDNHPFO@Network?4ini?$AA@ DB 'Network.ini', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Load@gzGameSpyQuerySettings@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzGameSpyQuerySettings@@UAEXXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Load@gzGameSpyQuerySettings@@UAEXXZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Load@gzGameSpyQuerySettings@@UAEXXZ$1
__ehfuncinfo$?Load@gzGameSpyQuerySettings@@UAEXXZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?Load@gzGameSpyQuerySettings@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
xdata$x	ENDS
;	COMDAT ?Load@gzGameSpyQuerySettings@@UAEXXZ
_TEXT	SEGMENT
$T62945 = -76						; size = 4
$T62932 = -72						; size = 4
$T62933 = -68						; size = 8
_attrib$ = -60						; size = 48
__$EHRec$ = -12						; size = 12
?Load@gzGameSpyQuerySettings@@UAEXXZ PROC		; gzGameSpyQuerySettings::Load, COMDAT
; _this$ = ecx

; 13   : {

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

; 14   : 	struct stat attrib;
; 15   : 	stat("Network.ini", &attrib);

	lea	eax, DWORD PTR _attrib$[esp+84]
	push	eax
	xor	ebx, ebx
	push	OFFSET ??_C@_0M@MJDNHPFO@Network?4ini?$AA@
	mov	esi, ecx
	mov	DWORD PTR $T62945[esp+92], ebx
	call	__stat64i32

; 16   : 	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 $LN24@Load
	mov	edx, DWORD PTR [esi+20]
	cmp	edx, ecx
	je	$LN4@Load
$LN24@Load:
	push	edi

; 17   : 	{
; 18   : 		this->m_confModTime = attrib.st_mtime;
; 19   : 
; 20   : 		this->m_cfg = new aTextConfig("Network.ini");

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	20					; 00000014H
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?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 $T62932[esp+88], edi
	test	edi, edi
	mov	DWORD PTR __$EHRec$[esp+96], 0
	je	SHORT $LN7@Load
	push	OFFSET ??_C@_0M@MJDNHPFO@Network?4ini?$AA@
	lea	ecx, DWORD PTR $T62933[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	push	0
	lea	eax, DWORD PTR $T62933[esp+92]
	mov	ebx, 1
	push	eax
	mov	ecx, edi
	mov	BYTE PTR __$EHRec$[esp+104], 1
	mov	DWORD PTR $T62945[esp+96], ebx
	call	??0aTextConfig@@QAE@ABVaString@@_N@Z	; aTextConfig::aTextConfig
	jmp	SHORT $LN8@Load
$LN7@Load:
	xor	eax, eax
$LN8@Load:
	test	bl, 1
	mov	DWORD PTR [esi+12], eax
	mov	DWORD PTR __$EHRec$[esp+96], -1
	pop	edi
	je	SHORT $LN18@Load
	lea	ecx, DWORD PTR $T62933[esp+84]
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN18@Load:

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

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

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

	push	OFFSET ??_C@_0DF@ONMBCNLI@?$FLError?$FN?5Network?4ini?5can?5not?5be?5l@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 4
$LN3@Load:

; 23   : 
; 24   : 		if (Get_Game_Mode() == 4)

	call	?Get_Game_Mode@@YAIXZ			; Get_Game_Mode
	cmp	eax, 4
	jne	SHORT $LN2@Load

; 25   : 			this->m_enable = true;

	mov	BYTE PTR [esi+24], 1

; 26   : 		else

	jmp	SHORT $LN1@Load
$LN2@Load:

; 27   : 			this->m_enable = this->Load_Bool("GameSpy", "Enable", false);

	push	0
	push	OFFSET ??_C@_06CKGENIKG@Enable?$AA@
	push	OFFSET ??_C@_07CEIECCJ@GameSpy?$AA@
	mov	ecx, esi
	call	?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z ; stSettingsBase::Load_Bool
	mov	BYTE PTR [esi+24], al
$LN1@Load:

; 28   : 
; 29   : 		this->m_bindPort      = (unsigned short)this->Load_Int("GameSpy", "BindPort", 0);

	push	0
	push	OFFSET ??_C@_08CJKKCJOG@BindPort?$AA@
	push	OFFSET ??_C@_07CEIECCJ@GameSpy?$AA@
	mov	ecx, esi
	call	?Load_Int@stSettingsBase@@IAEHPBD0H@Z	; stSettingsBase::Load_Int

; 30   : 		this->m_showPlayers   = this->Load_Int("GameSpy", "ShowPlayers", false);

	push	0
	push	OFFSET ??_C@_0M@OADDCNNM@ShowPlayers?$AA@
	push	OFFSET ??_C@_07CEIECCJ@GameSpy?$AA@
	mov	ecx, esi
	mov	WORD PTR [esi+26], ax
	call	?Load_Int@stSettingsBase@@IAEHPBD0H@Z	; stSettingsBase::Load_Int
	test	eax, eax

; 31   : 		this->m_prependExMark = this->Load_Bool("GameSpy", "PrependExMark", false);

	push	0
	setne	cl
	push	OFFSET ??_C@_0O@GJDNCBHM@PrependExMark?$AA@
	mov	BYTE PTR [esi+28], cl
	push	OFFSET ??_C@_07CEIECCJ@GameSpy?$AA@
	mov	ecx, esi
	call	?Load_Bool@stSettingsBase@@IAE_NPBD0_N@Z ; stSettingsBase::Load_Bool

; 32   : 
; 33   : 		delete this->m_cfg;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	33					; 00000021H
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
	mov	BYTE PTR [esi+29], al
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+12]
	add	esp, 12					; 0000000cH
	test	ecx, ecx
	je	SHORT $LN11@Load
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+4]
	push	1
	call	eax
$LN11@Load:

; 34   : 		this->m_cfg = NULL;

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

; 35   : 	}
; 36   : }

	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@gzGameSpyQuerySettings@@UAEXXZ$0:
	mov	eax, DWORD PTR $T62932[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__unwindfunclet$?Load@gzGameSpyQuerySettings@@UAEXXZ$1:
	mov	eax, DWORD PTR $T62945[ebp]
	and	eax, 1
	je	$LN17@Load
	and	DWORD PTR $T62945[ebp], -2		; fffffffeH
	lea	ecx, DWORD PTR $T62933[ebp]
	jmp	??1aString@@UAE@XZ
$LN17@Load:
	ret	0
__ehhandler$?Load@gzGameSpyQuerySettings@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Load@gzGameSpyQuerySettings@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Load@gzGameSpyQuerySettings@@UAEXXZ ENDP		; gzGameSpyQuerySettings::Load
PUBLIC	??_C@_0DB@MCOEHPPE@?2heartbeat?2?$CFu?2gamename?2ccrenegad@ ; `string'
PUBLIC	?Delete@gzGameSpyQueryManager@@UAEXXZ		; gzGameSpyQueryManager::Delete
EXTRN	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z:PROC ; aSocketUDP::Send
EXTRN	?GetLength@aStringBase@@QBEIXZ:PROC		; aStringBase::GetLength
EXTRN	?Printf@aString@@QAAXPBDZZ:PROC			; aString::Printf
EXTRN	??0aString@@QAE@XZ:PROC				; aString::aString
;	COMDAT ??_C@_0DB@MCOEHPPE@?2heartbeat?2?$CFu?2gamename?2ccrenegad@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_0DB@MCOEHPPE@?2heartbeat?2?$CFu?2gamename?2ccrenegad@ DB '\heartbea'
	DB	't\%u\gamename\ccrenegade\statechanged\2', 00H ; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Delete@gzGameSpyQueryManager@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Delete@gzGameSpyQueryManager@@UAEXXZ$0
__ehfuncinfo$?Delete@gzGameSpyQueryManager@@UAEXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Delete@gzGameSpyQueryManager@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
xdata$x	ENDS
;	COMDAT ?Delete@gzGameSpyQueryManager@@UAEXXZ
_TEXT	SEGMENT
_query$56696 = -20					; size = 8
__$EHRec$ = -12						; size = 12
?Delete@gzGameSpyQueryManager@@UAEXXZ PROC		; gzGameSpyQueryManager::Delete, COMDAT
; _this$ = ecx

; 40   : {

	mov	eax, DWORD PTR fs:0
	push	-1
	push	__ehhandler$?Delete@gzGameSpyQueryManager@@UAEXXZ
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	esi
	mov	esi, ecx

; 41   : 	if (this->m_socket != NULL)

	cmp	DWORD PTR [esi+40], 0
	je	$LN1@Delete
	push	edi

; 42   : 	{
; 43   : 		aString query;

	lea	ecx, DWORD PTR _query$56696[esp+28]
	call	??0aString@@QAE@XZ			; aString::aString

; 44   : 		query.Printf("\\heartbeat\\%u\\gamename\\ccrenegade\\statechanged\\2", this->m_bindPort);

	movzx	eax, WORD PTR [esi+80]
	push	eax
	lea	ecx, DWORD PTR _query$56696[esp+32]
	push	OFFSET ??_C@_0DB@MCOEHPPE@?2heartbeat?2?$CFu?2gamename?2ccrenegad@
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+48], 0
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 45   : 		this->m_socket->Send(this->m_gsaAddr, query.GetString(), query.GetLength());

	mov	eax, DWORD PTR _query$56696[esp+44]
	add	esp, 12					; 0000000cH
	test	eax, eax
	je	SHORT $LN11@Delete
	mov	edi, DWORD PTR [eax]
	jmp	SHORT $LN12@Delete
$LN11@Delete:
	xor	edi, edi
$LN12@Delete:
	lea	ecx, DWORD PTR _query$56696[esp+28]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	mov	ecx, DWORD PTR [esi+40]
	push	eax
	push	edi
	lea	edx, DWORD PTR [esi+44]
	push	edx
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 46   : 		delete this->m_socket;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	46					; 0000002eH
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+40]
	add	esp, 12					; 0000000cH
	test	ecx, ecx
	pop	edi
	je	SHORT $LN4@Delete
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	push	1
	call	edx
$LN4@Delete:

; 47   : 		this->m_socket = NULL;
; 48   : 	}

	lea	ecx, DWORD PTR _query$56696[esp+24]
	mov	DWORD PTR [esi+40], 0
	mov	DWORD PTR __$EHRec$[esp+32], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN1@Delete:

; 49   : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Delete@gzGameSpyQueryManager@@UAEXXZ$0:
	lea	ecx, DWORD PTR _query$56696[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Delete@gzGameSpyQueryManager@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Delete@gzGameSpyQueryManager@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Delete@gzGameSpyQueryManager@@UAEXXZ ENDP		; gzGameSpyQueryManager::Delete
PUBLIC	??1aIPv4Address@@QAE@XZ				; aIPv4Address::~aIPv4Address
; Function compile flags: /Ogtpy
;	COMDAT ??1aIPv4Address@@QAE@XZ
_TEXT	SEGMENT
??1aIPv4Address@@QAE@XZ PROC				; aIPv4Address::~aIPv4Address, COMDAT
; _this$ = ecx
	add	ecx, 4
	jmp	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
??1aIPv4Address@@QAE@XZ ENDP				; aIPv4Address::~aIPv4Address
_TEXT	ENDS
PUBLIC	??_7gzSettingsEvent@@6B@			; gzSettingsEvent::`vftable'
PUBLIC	??0gzSettingsEvent@@QAE@XZ			; gzSettingsEvent::gzSettingsEvent
PUBLIC	??_R4gzSettingsEvent@@6B@			; gzSettingsEvent::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzSettingsEvent@@@8			; gzSettingsEvent `RTTI Type Descriptor'
PUBLIC	??_R3gzSettingsEvent@@8				; gzSettingsEvent::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzSettingsEvent@@8				; gzSettingsEvent::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzSettingsEvent@@8		; gzSettingsEvent::`RTTI Base Class Descriptor at (0,-1,0,64)'
;	COMDAT ??_R1A@?0A@EA@gzSettingsEvent@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzSettingsEvent@@8 DD FLAT:??_R0?AVgzSettingsEvent@@@8 ; gzSettingsEvent::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_R2gzSettingsEvent@@8
rdata$r	SEGMENT
??_R2gzSettingsEvent@@8 DD FLAT:??_R1A@?0A@EA@gzSettingsEvent@@8 ; gzSettingsEvent::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3gzSettingsEvent@@8
rdata$r	SEGMENT
??_R3gzSettingsEvent@@8 DD 00H				; gzSettingsEvent::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzSettingsEvent@@@8
_DATA	SEGMENT
??_R0?AVgzSettingsEvent@@@8 DD FLAT:??_7type_info@@6B@	; gzSettingsEvent `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzSettingsEvent@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzSettingsEvent@@6B@
rdata$r	SEGMENT
??_R4gzSettingsEvent@@6B@ DD 00H			; gzSettingsEvent::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzSettingsEvent@@@8
	DD	FLAT:??_R3gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_7gzSettingsEvent@@6B@
CONST	SEGMENT
??_7gzSettingsEvent@@6B@ DD FLAT:??_R4gzSettingsEvent@@6B@ ; gzSettingsEvent::`vftable'
	DD	FLAT:__purecall
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0gzSettingsEvent@@QAE@XZ
_TEXT	SEGMENT
??0gzSettingsEvent@@QAE@XZ PROC				; gzSettingsEvent::gzSettingsEvent, COMDAT
; _this$ = ecx
	mov	eax, ecx
	mov	DWORD PTR [eax], OFFSET ??_7gzSettingsEvent@@6B@
	ret	0
??0gzSettingsEvent@@QAE@XZ ENDP				; gzSettingsEvent::gzSettingsEvent
_TEXT	ENDS
PUBLIC	??_C@_0BE@FBPPFDBJ@?$FLGSA?$FN?5?$CFs?3?$CFhu?5?9?$DO?5?$CFs?6?$AA@ ; `string'
PUBLIC	??_C@_0BG@LDEGKJJP@?2final?2?2queryid?2?$CFu?4?$CFd?$AA@ ; `string'
PUBLIC	??_C@_0P@HGKFGBPA@?2queryid?2?$CFu?4?$CFd?$AA@	; `string'
PUBLIC	??_C@_0GD@OFKGFMJJ@?2player_?$CFd?2?$CFls?2score_?$CFd?2?$CF?40f?2kil@ ; `string'
PUBLIC	??_C@_03OHGKCNFD@Nod?$AA@			; `string'
PUBLIC	??_C@_03IOFAJBDH@GDI?$AA@			; `string'
PUBLIC	??_C@_0LE@HOFELBEH@?2gamename?2ccrenegade?2gamever?2838@ ; `string'
PUBLIC	??_C@_19LMAFDAG@?$AA?$CB?$AA?$CF?$AAl?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_0CO@KMCNKDMP@?$FLGSA?$FN?5Query?5received?5from?5master@ ; `string'
PUBLIC	??_C@_08GEMKDFHH@?2status?2?$AA@		; `string'
PUBLIC	??_C@_06MENHACGG@?2info?2?$AA@			; `string'
PUBLIC	??_C@_0BH@DMJCDDPJ@?$CFs?2final?2?2queryid?2?$CFu?41?$AA@ ; `string'
PUBLIC	??_C@_06KLFKHBJP@?2echo?2?$AA@			; `string'
PUBLIC	__real@42f00000
PUBLIC	??_C@_0FK@MBKKJOCG@?$FLGSA?$FN?5Timeout?5for?5waiting?5query?5@ ; `string'
PUBLIC	__real@00000000
PUBLIC	?Think@gzGameSpyQueryManager@@UAEXXZ		; gzGameSpyQueryManager::Think
EXTRN	?Clear@aStringBase@@QAEXXZ:PROC			; aStringBase::Clear
EXTRN	??YaString@@QAEAAV0@ABV0@@Z:PROC		; aString::operator+=
EXTRN	?Get@nc_FloatDataSafeClass@@QAEMXZ:PROC		; nc_FloatDataSafeClass::Get
EXTRN	?Get@nc_IntDataSafeClass@@QAEHXZ:PROC		; nc_IntDataSafeClass::Get
EXTRN	?SystemTime@@3AAKA:DWORD			; SystemTime
EXTRN	?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A:DWORD ; nc_cNetwork::PServerConnection
EXTRN	__imp__GetTickCount@0:PROC
EXTRN	?PlayerList@nc_cPlayerManager@@2PAV?$nc_SList@Vnc_cPlayer@@@@A:DWORD ; nc_cPlayerManager::PlayerList
EXTRN	?stVersion@@3VaString@@A:QWORD			; stVersion
EXTRN	?Format@aWideString@@SA?AV1@PB_WZZ:PROC		; aWideString::Format
EXTRN	?Resize@aStringBase@@QAEXI@Z:PROC		; aStringBase::Resize
EXTRN	?Find@aString@@QBEHABV1@_N1@Z:PROC		; aString::Find
EXTRN	??0aString@@QAE@D@Z:PROC			; aString::aString
EXTRN	?cGame@@3AAPAVnc_cGameData@@A:DWORD		; cGame
EXTRN	??8aString@@QAE_NABV0@@Z:PROC			; aString::operator==
EXTRN	?Address@aIPv4Address@@QAE?AVaString@@XZ:PROC	; aIPv4Address::Address
EXTRN	_stricmp:PROC
EXTRN	_strnicmp:PROC
EXTRN	?RecvFrom@aSocketUDP@@QAEHPAXHHAAVaIPv4Address@@@Z:PROC ; aSocketUDP::RecvFrom
EXTRN	??0aIPv4Address@@QAE@XZ:PROC			; aIPv4Address::aIPv4Address
EXTRN	?SubFrameTime@@YAXAAM_N@Z:PROC			; SubFrameTime
EXTRN	__fltused:DWORD
EXTRN	_memset:PROC
;	COMDAT ??_C@_0BE@FBPPFDBJ@?$FLGSA?$FN?5?$CFs?3?$CFhu?5?9?$DO?5?$CFs?6?$AA@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_0BE@FBPPFDBJ@?$FLGSA?$FN?5?$CFs?3?$CFhu?5?9?$DO?5?$CFs?6?$AA@ DB '['
	DB	'GSA] %s:%hu -> %s', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@LDEGKJJP@?2final?2?2queryid?2?$CFu?4?$CFd?$AA@
CONST	SEGMENT
??_C@_0BG@LDEGKJJP@?2final?2?2queryid?2?$CFu?4?$CFd?$AA@ DB '\final\\quer'
	DB	'yid\%u.%d', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@HGKFGBPA@?2queryid?2?$CFu?4?$CFd?$AA@
CONST	SEGMENT
??_C@_0P@HGKFGBPA@?2queryid?2?$CFu?4?$CFd?$AA@ DB '\queryid\%u.%d', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0GD@OFKGFMJJ@?2player_?$CFd?2?$CFls?2score_?$CFd?2?$CF?40f?2kil@
CONST	SEGMENT
??_C@_0GD@OFKGFMJJ@?2player_?$CFd?2?$CFls?2score_?$CFd?2?$CF?40f?2kil@ DB '\'
	DB	'player_%d\%ls\score_%d\%.0f\kills_%d\%d\deaths_%d\%d\ping_%d\'
	DB	'%d\skin_%d\%s\time_%d\%03d.%02d.%02d', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_03OHGKCNFD@Nod?$AA@
CONST	SEGMENT
??_C@_03OHGKCNFD@Nod?$AA@ DB 'Nod', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_03IOFAJBDH@GDI?$AA@
CONST	SEGMENT
??_C@_03IOFAJBDH@GDI?$AA@ DB 'GDI', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0LE@HOFELBEH@?2gamename?2ccrenegade?2gamever?2838@
CONST	SEGMENT
??_C@_0LE@HOFELBEH@?2gamename?2ccrenegade?2gamever?2838@ DB '\gamename\cc'
	DB	'renegade\gamever\838\hostname\%ls\hostport\%hu\mapname\%s\gam'
	DB	'etype\C&C\numplayers\%u\maxplayers\%u\CSVR\1\DED\1\DG\%d\pass'
	DB	'word\%d\TC\%d\FF\%d\SC\%d\SSC\%s\queryid\%u.1', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_19LMAFDAG@?$AA?$CB?$AA?$CF?$AAl?$AAs?$AA?$AA@
CONST	SEGMENT
??_C@_19LMAFDAG@?$AA?$CB?$AA?$CF?$AAl?$AAs?$AA?$AA@ DB '!', 00H, '%', 00H
	DB	'l', 00H, 's', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0CO@KMCNKDMP@?$FLGSA?$FN?5Query?5received?5from?5master@
CONST	SEGMENT
??_C@_0CO@KMCNKDMP@?$FLGSA?$FN?5Query?5received?5from?5master@ DB '[GSA] '
	DB	'Query received from master.gamespy.com', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_08GEMKDFHH@?2status?2?$AA@
CONST	SEGMENT
??_C@_08GEMKDFHH@?2status?2?$AA@ DB '\status\', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_06MENHACGG@?2info?2?$AA@
CONST	SEGMENT
??_C@_06MENHACGG@?2info?2?$AA@ DB '\info\', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@DMJCDDPJ@?$CFs?2final?2?2queryid?2?$CFu?41?$AA@
CONST	SEGMENT
??_C@_0BH@DMJCDDPJ@?$CFs?2final?2?2queryid?2?$CFu?41?$AA@ DB '%s\final\\q'
	DB	'ueryid\%u.1', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_06KLFKHBJP@?2echo?2?$AA@
CONST	SEGMENT
??_C@_06KLFKHBJP@?2echo?2?$AA@ DB '\echo\', 00H		; `string'
CONST	ENDS
;	COMDAT __real@42f00000
CONST	SEGMENT
__real@42f00000 DD 042f00000r			; 120
CONST	ENDS
;	COMDAT ??_C@_0FK@MBKKJOCG@?$FLGSA?$FN?5Timeout?5for?5waiting?5query?5@
CONST	SEGMENT
??_C@_0FK@MBKKJOCG@?$FLGSA?$FN?5Timeout?5for?5waiting?5query?5@ DB '[GSA]'
	DB	' Timeout for waiting query from master.gamespy.com; Restartin'
	DB	'g GSA query service...', 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Think@gzGameSpyQueryManager@@UAEXXZ DD 019930522H
	DD	0eH
	DD	FLAT:__unwindtable$?Think@gzGameSpyQueryManager@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Think@gzGameSpyQueryManager@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$1
	DD	00H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$2
	DD	02H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$3
	DD	00H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$4
	DD	04H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$5
	DD	05H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$6
	DD	05H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$7
	DD	05H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$8
	DD	00H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$9
	DD	09H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$10
	DD	0aH
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$11
	DD	09H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$12
	DD	00H
	DD	FLAT:__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$13
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
xdata$x	ENDS
;	COMDAT ?Think@gzGameSpyQueryManager@@UAEXXZ
_TEXT	SEGMENT
_msg$56784 = -220					; size = 8
_map$56773 = -220					; size = 8
_out$56760 = -220					; size = 8
_pData$56844 = -212					; size = 8
$T63025 = -212						; size = 8
$T63024 = -212						; size = 8
$T63023 = -212						; size = 8
$T63020 = -212						; size = 8
$T63041 = -204						; size = 4
_sendCount$56783 = -204					; size = 4
tv816 = -200						; size = 4
_msg$56772 = -200					; size = 8
_this$ = -192						; size = 4
tv340 = -188						; size = 4
$T63032 = -184						; size = 8
$T63031 = -184						; size = 8
$T63030 = -184						; size = 8
tv813 = -176						; size = 4
tv688 = -176						; size = 4
$T63021 = -176						; size = 8
tv800 = -168						; size = 4
tv806 = -164						; size = 4
_src$56755 = -160					; size = 32
_data$56754 = -128					; size = 64
__$EHRec$ = -12						; size = 12
?Think@gzGameSpyQueryManager@@UAEXXZ PROC		; gzGameSpyQueryManager::Think, COMDAT
; _this$ = ecx

; 113  : {

	push	ebp
	mov	ebp, esp
	and	esp, -64				; ffffffc0H
	push	-1
	push	__ehhandler$?Think@gzGameSpyQueryManager@@UAEXXZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 228				; 000000e4H
	push	ebx
	push	ebp
	push	esi
	xor	ebx, ebx
	push	edi
	mov	edi, ecx
	mov	DWORD PTR $T63041[esp+256], ebx

; 114  : 	if (this->m_socket)

	cmp	DWORD PTR [edi+40], ebx
	mov	DWORD PTR _this$[esp+256], edi
	je	$LN17@Think

; 115  : 	{
; 116  : 
; 117  : #if VERC(1, 0, 1)
; 118  : 		SubFrameTime(this->m_gsaTimeoutCounter, true);

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

; 119  : 		if (this->m_gsaTimeoutCounter < 0.0f)

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

; 120  : 		{
; 121  : #ifdef DEVMSG
; 122  : 			stConsole::Out("[GSA] Timeout for waiting query from master.gamespy.com; Restarting GSA query service...\n");

	push	OFFSET ??_C@_0FK@MBKKJOCG@?$FLGSA?$FN?5Timeout?5for?5waiting?5query?5@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out

; 123  : #endif
; 124  : 			this->m_gsaTimeoutCounter = GSA_TIMEOUT;

	fld	DWORD PTR __real@42f00000

; 125  : 			delete this->m_socket;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	fstp	DWORD PTR [ebp]
	push	125					; 0000007dH
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [edi+40]
	add	esp, 16					; 00000010H
	cmp	ecx, ebx
	je	SHORT $LN20@Think
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	push	1
	call	edx
$LN20@Think:

; 126  : 			this->m_socket = NULL;
; 127  : 
; 128  : 			// Because of port difference check with settings
; 129  : 			this->m_bindPort = 0;
; 130  : 
; 131  : 			// Restart the service
; 132  : 			this->Settings_Loaded();

	mov	eax, DWORD PTR [edi+36]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [edi+40], ebx
	mov	WORD PTR [edi+80], bx
	add	edi, 36					; 00000024H
	mov	ecx, edi
	call	edx

; 240  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+256]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN16@Think:

; 133  : 			return;
; 134  : 		}
; 135  : #endif
; 136  : 
; 137  : 		char data[64];
; 138  : 		memset(&data, 0, sizeof(data));

	push	64					; 00000040H
	lea	eax, DWORD PTR _data$56754[esp+260]
	push	ebx
	push	eax
	call	_memset
	add	esp, 12					; 0000000cH

; 139  : 		aIPv4Address src;

	lea	ecx, DWORD PTR _src$56755[esp+256]
	call	??0aIPv4Address@@QAE@XZ			; aIPv4Address::aIPv4Address

; 140  : 		int dataLen = this->m_socket->RecvFrom(data, sizeof(data) - 1, 0, src);

	lea	ecx, DWORD PTR _src$56755[esp+256]
	push	ecx
	mov	ecx, DWORD PTR [edi+40]
	push	ebx
	push	63					; 0000003fH
	lea	edx, DWORD PTR _data$56754[esp+268]
	push	edx
	mov	DWORD PTR __$EHRec$[esp+280], ebx
	call	?RecvFrom@aSocketUDP@@QAEHPAXHHAAVaIPv4Address@@@Z ; aSocketUDP::RecvFrom

; 141  : 
; 142  : 		// Have data
; 143  : 		if (dataLen > 0)

	cmp	eax, ebx
	jle	$LN15@Think

; 144  : 		{
; 145  : 			this->m_queryCount++;

	add	DWORD PTR [edi+76], 1

; 146  : 			if (!strnicmp(data, "\\echo\\", 6))

	push	6
	lea	eax, DWORD PTR _data$56754[esp+260]
	push	OFFSET ??_C@_06KLFKHBJP@?2echo?2?$AA@
	push	eax
	call	_strnicmp
	add	esp, 12					; 0000000cH
	test	eax, eax
	jne	SHORT $LN14@Think

; 147  : 			{
; 148  : 				aString out;

	lea	ecx, DWORD PTR _out$56760[esp+256]
	call	??0aString@@QAE@XZ			; aString::aString

; 149  : 				out.Printf("%s\\final\\\\queryid\\%u.1", data, this->m_queryCount);

	mov	ecx, DWORD PTR [edi+76]
	push	ecx
	lea	edx, DWORD PTR _data$56754[esp+260]
	push	edx
	lea	eax, DWORD PTR _out$56760[esp+264]
	push	OFFSET ??_C@_0BH@DMJCDDPJ@?$CFs?2final?2?2queryid?2?$CFu?41?$AA@
	push	eax
	mov	BYTE PTR __$EHRec$[esp+280], 1
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 150  : 				this->m_socket->Send(src, out.GetString(), out.GetLength());

	mov	eax, DWORD PTR _out$56760[esp+276]
	add	esp, 16					; 00000010H
	cmp	eax, ebx
	je	SHORT $LN46@Think
	mov	esi, DWORD PTR [eax]
	jmp	SHORT $LN47@Think
$LN46@Think:
	xor	esi, esi
$LN47@Think:
	lea	ecx, DWORD PTR _out$56760[esp+256]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	push	eax
	push	esi
	lea	ecx, DWORD PTR _src$56755[esp+264]
	push	ecx
	mov	ecx, DWORD PTR [edi+40]
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 151  : 			}

	lea	ecx, DWORD PTR _out$56760[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	jmp	$LN12@Think
$LN14@Think:

; 152  : 			else if (!stricmp(data, "\\info\\") || !stricmp(data, "\\status\\"))

	lea	edx, DWORD PTR _data$56754[esp+256]
	push	OFFSET ??_C@_06MENHACGG@?2info?2?$AA@
	push	edx
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN11@Think
	lea	eax, DWORD PTR _data$56754[esp+256]
	push	OFFSET ??_C@_08GEMKDFHH@?2status?2?$AA@
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	jne	$LN12@Think
$LN11@Think:

; 153  : 			{
; 154  : 
; 155  : #if VERC(1, 0, 1)
; 156  : 				if (src.Address() == this->m_gsaAddr.Address())

	lea	ecx, DWORD PTR $T63021[esp+256]
	push	ecx
	lea	ecx, DWORD PTR [edi+44]
	call	?Address@aIPv4Address@@QAE?AVaString@@XZ ; aIPv4Address::Address
	mov	esi, eax
	lea	edx, DWORD PTR $T63020[esp+256]
	push	edx
	lea	ecx, DWORD PTR _src$56755[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 2
	call	?Address@aIPv4Address@@QAE?AVaString@@XZ ; aIPv4Address::Address
	push	esi
	mov	ecx, eax
	mov	BYTE PTR __$EHRec$[esp+268], 3
	call	??8aString@@QAE_NABV0@@Z		; aString::operator==
	lea	ecx, DWORD PTR $T63020[esp+256]
	mov	bl, al
	mov	BYTE PTR __$EHRec$[esp+264], 2
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR $T63021[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	test	bl, bl
	je	SHORT $LN10@Think

; 157  : 				{
; 158  : #ifdef DEVMSG
; 159  : 					stConsole::Out("[GSA] Query received from master.gamespy.com\n");

	push	OFFSET ??_C@_0CO@KMCNKDMP@?$FLGSA?$FN?5Query?5received?5from?5master@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out

; 160  : #endif
; 161  : 					this->m_gsaTimeoutCounter = GSA_TIMEOUT;

	fld	DWORD PTR __real@42f00000
	fstp	DWORD PTR [ebp]
	add	esp, 4
$LN10@Think:

; 162  : 				}
; 163  : #endif
; 164  : 				aString msg, map = cGame->MapName.m_Buffer;

	lea	ecx, DWORD PTR _msg$56772[esp+256]
	call	??0aString@@QAE@XZ			; aString::aString
	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx+40]
	push	edx
	lea	ecx, DWORD PTR _map$56773[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 4
	call	??0aString@@QAE@PBD@Z			; aString::aString

; 165  : 				if (map.Find('.', true) != -1)

	push	46					; 0000002eH
	lea	ecx, DWORD PTR $T63023[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 5
	call	??0aString@@QAE@D@Z			; aString::aString
	push	0
	push	1
	lea	eax, DWORD PTR $T63023[esp+264]
	push	eax
	lea	ecx, DWORD PTR _map$56773[esp+268]
	mov	BYTE PTR __$EHRec$[esp+276], 6
	call	?Find@aString@@QBEHABV1@_N1@Z		; aString::Find
	cmp	eax, -1
	lea	ecx, DWORD PTR $T63023[esp+256]
	setne	bl
	mov	BYTE PTR __$EHRec$[esp+264], 5
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	test	bl, bl
	je	SHORT $LN9@Think

; 166  : 					map.Resize(map.Find('.', true));

	push	46					; 0000002eH
	lea	ecx, DWORD PTR $T63024[esp+260]
	call	??0aString@@QAE@D@Z			; aString::aString
	push	0
	push	1
	lea	ecx, DWORD PTR $T63024[esp+264]
	push	ecx
	lea	ecx, DWORD PTR _map$56773[esp+268]
	mov	BYTE PTR __$EHRec$[esp+276], 7
	call	?Find@aString@@QBEHABV1@_N1@Z		; aString::Find
	push	eax
	lea	ecx, DWORD PTR _map$56773[esp+260]
	call	?Resize@aStringBase@@QAEXI@Z		; aStringBase::Resize
	lea	ecx, DWORD PTR $T63024[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 5
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN9@Think:

; 167  : 
; 168  : 				msg.Printf("\\gamename\\ccrenegade\\gamever\\838\\hostname\\%ls\\hostport\\%hu\\mapname\\%s\\gametype\\C&C\\numplayers\\%u\\maxplayers\\%u\\CSVR\\1\\DED\\1\\DG\\%d\\password\\%d\\TC\\%d\\FF\\%d\\SC\\%d\\SSC\\%s\\queryid\\%u.1",
; 169  : 					((this->m_settings->m_prependExMark) ? aWideString::Format(L"!%ls", cGame->GameTitle.m_Buffer).GetString() : cGame->GameTitle.m_Buffer),
; 170  : 					cGame->Port,
; 171  : 					map.GetString(),
; 172  : 					cGame->CurrentPlayers,
; 173  : 					cGame->MaxPlayers,
; 174  : 					cGame->DriverIsAlwaysGunner,
; 175  : 					cGame->IsPassworded,
; 176  : 					cGame->IsTeamChangingAllowed,
; 177  : 					cGame->IsFriendlyFirePermitted,
; 178  : 					cGame->As_Cnc()->StartingCredits,
; 179  : 					stVersion.GetString(),
; 180  : 					this->m_queryCount
; 181  : 				);

	mov	edx, DWORD PTR [edi+84]
	cmp	BYTE PTR [edx+29], 0
	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	mov	ecx, DWORD PTR [eax]
	je	SHORT $LN24@Think
	mov	edx, DWORD PTR [ecx+28]
	push	edx
	lea	eax, DWORD PTR $T63025[esp+260]
	push	OFFSET ??_C@_19LMAFDAG@?$AA?$CB?$AA?$CF?$AAl?$AAs?$AA?$AA@
	push	eax
	call	?Format@aWideString@@SA?AV1@PB_WZZ	; aWideString::Format
	add	esp, 12					; 0000000cH
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	BYTE PTR __$EHRec$[esp+264], 8
	mov	DWORD PTR $T63041[esp+256], 1
	je	SHORT $LN67@Think
	mov	eax, DWORD PTR [eax]
	mov	ebp, eax
	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	jmp	SHORT $LN25@Think
$LN67@Think:
	xor	eax, eax
	mov	ebp, eax
	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	jmp	SHORT $LN25@Think
$LN24@Think:
	mov	ebp, DWORD PTR [ecx+28]
$LN25@Think:
	mov	ecx, DWORD PTR ?stVersion@@3VaString@@A+4
	test	ecx, ecx
	je	SHORT $LN73@Think
	mov	ecx, DWORD PTR [ecx]
	jmp	SHORT $LN74@Think
$LN73@Think:
	xor	ecx, ecx
$LN74@Think:
	mov	edx, DWORD PTR _map$56773[esp+260]
	test	edx, edx
	je	SHORT $LN79@Think
	mov	ebx, DWORD PTR [edx]
	jmp	SHORT $LN80@Think
$LN79@Think:
	xor	ebx, ebx
$LN80@Think:
	mov	edx, DWORD PTR [eax]
	mov	eax, DWORD PTR [edi+76]
	mov	esi, edx
	mov	edx, DWORD PTR [esi]
	push	eax
	mov	eax, DWORD PTR [edx+92]
	push	ecx
	mov	ecx, esi
	call	eax
	mov	ecx, DWORD PTR [eax+624]
	movzx	edx, BYTE PTR [esi+11]
	movzx	eax, BYTE PTR [esi+12]
	push	ecx
	movzx	ecx, BYTE PTR [esi+13]
	push	edx
	movzx	edx, BYTE PTR [esi+20]
	push	eax
	mov	eax, DWORD PTR [esi+504]
	push	ecx
	mov	ecx, DWORD PTR [esi+544]
	push	edx
	mov	edx, DWORD PTR [esi+528]
	push	eax
	push	ecx
	push	ebx
	push	edx
	push	ebp
	lea	eax, DWORD PTR _msg$56772[esp+304]
	push	OFFSET ??_C@_0LE@HOFELBEH@?2gamename?2ccrenegade?2gamever?2838@
	push	eax
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf
	add	esp, 56					; 00000038H
	test	BYTE PTR $T63041[esp+256], 1
	mov	DWORD PTR __$EHRec$[esp+264], 5
	je	SHORT $LN38@Think
	lea	ecx, DWORD PTR $T63025[esp+256]
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN38@Think:

; 182  : 				this->m_socket->Send(src, msg.GetString(), msg.GetLength());

	mov	eax, DWORD PTR _msg$56772[esp+260]
	test	eax, eax
	je	SHORT $LN88@Think
	mov	esi, DWORD PTR [eax]
	jmp	SHORT $LN89@Think
$LN88@Think:
	xor	esi, esi
$LN89@Think:
	lea	ecx, DWORD PTR _msg$56772[esp+256]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	push	eax
	push	esi
	lea	ecx, DWORD PTR _src$56755[esp+264]
	push	ecx
	mov	ecx, DWORD PTR [edi+40]
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 183  : 			}

	lea	ecx, DWORD PTR _map$56773[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 4
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	lea	ecx, DWORD PTR _msg$56772[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	xor	ebx, ebx
$LN12@Think:

; 184  : 			if (this->m_settings->m_showPlayers && !stricmp(data, "\\status\\"))

	mov	edx, DWORD PTR [edi+84]
	cmp	BYTE PTR [edx+28], 0
	je	$LN7@Think
	lea	eax, DWORD PTR _data$56754[esp+256]
	push	OFFSET ??_C@_08GEMKDFHH@?2status?2?$AA@
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	jne	$LN7@Think

; 185  : 			{
; 186  : 				if (this->m_settings->m_showPlayers)

	mov	ecx, DWORD PTR [edi+84]
	cmp	BYTE PTR [ecx+28], al
	je	$LN7@Think

; 187  : 				{
; 188  : 					int sendCount = 2;

	mov	ebp, 2

; 189  : 					aString msg;

	lea	ecx, DWORD PTR _msg$56784[esp+256]
	mov	DWORD PTR _sendCount$56783[esp+256], ebp
	call	??0aString@@QAE@XZ			; aString::aString

; 190  : 					for (nc_GenericSLNode<nc_cPlayer> *pList = nc_cPlayerManager::PlayerList->HeadNode; pList != NULL; pList = pList->NodeNext)

	mov	edx, DWORD PTR ?PlayerList@nc_cPlayerManager@@2PAV?$nc_SList@Vnc_cPlayer@@@@A ; nc_cPlayerManager::PlayerList
	mov	esi, DWORD PTR [edx+4]
	test	esi, esi
	mov	bl, 9
	mov	BYTE PTR __$EHRec$[esp+264], bl
	je	$LN4@Think
	npad	9
$LL6@Think:

; 191  : 					{
; 192  : 						if (pList->NodeData->IsActive)

	mov	eax, DWORD PTR [esi+4]
	cmp	BYTE PTR [eax+1981], 0
	je	$LN5@Think

; 193  : 						{
; 194  : 							unsigned long time = (GetTickCount() - SystemTime - nc_cNetwork::PServerConnection->RemoteList[pList->NodeData->PlayerId]->JoinTime) / 1000;

	call	DWORD PTR __imp__GetTickCount@0
	mov	edx, DWORD PTR [esi+4]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+1884]
	mov	edx, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	mov	edx, DWORD PTR [edx]
	mov	edx, DWORD PTR [edx+1352]
	mov	eax, DWORD PTR [edx+eax*4]
	sub	ecx, DWORD PTR [eax+856]
	mov	edx, DWORD PTR ?SystemTime@@3AAKA	; SystemTime
	sub	ecx, DWORD PTR [edx]
	mov	eax, 274877907				; 10624dd3H
	mul	ecx
	mov	edi, edx

; 195  : 							aString pData;

	lea	ecx, DWORD PTR _pData$56844[esp+256]
	shr	edi, 6
	call	??0aString@@QAE@XZ			; aString::aString

; 196  : 							pData.Printf("\\player_%d\\%ls\\score_%d\\%.0f\\kills_%d\\%d\\deaths_%d\\%d\\ping_%d\\%d\\skin_%d\\%s\\time_%d\\%03d.%02d.%02d",
; 197  : 								pList->NodeData->PlayerId,
; 198  : 								pList->NodeData->PlayerName.m_Buffer,
; 199  : 								pList->NodeData->PlayerId,
; 200  : 								pList->NodeData->Score.Get(),
; 201  : 								pList->NodeData->PlayerId,
; 202  : 								pList->NodeData->Kills.Get(),
; 203  : 								pList->NodeData->PlayerId,
; 204  : 								pList->NodeData->Deaths.Get(),
; 205  : 								pList->NodeData->PlayerId,
; 206  : 								nc_cNetwork::PServerConnection->RemoteList[pList->NodeData->PlayerId]->Ping,
; 207  : 								pList->NodeData->PlayerId,
; 208  : 								(pList->NodeData->PlayerType.Get() == 1) ? "GDI" : "Nod",
; 209  : 								pList->NodeData->PlayerId,
; 210  : 								time / 3600,
; 211  : 								(time / 60) % 60,
; 212  : 								time % 60
; 213  : 							);

	mov	ecx, DWORD PTR [esi+4]
	add	ecx, 1900				; 0000076cH
	mov	BYTE PTR __$EHRec$[esp+264], 10		; 0000000aH
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	cmp	eax, 1
	mov	DWORD PTR tv340[esp+256], OFFSET ??_C@_03IOFAJBDH@GDI?$AA@
	je	SHORT $LN27@Think
	mov	DWORD PTR tv340[esp+256], OFFSET ??_C@_03OHGKCNFD@Nod?$AA@
$LN27@Think:
	mov	ebp, DWORD PTR [esi+4]
	mov	eax, -2004318071			; 88888889H
	mul	edi
	mov	eax, edx
	shr	eax, 5
	mov	edx, ebp
	mov	DWORD PTR tv800[esp+256], edx
	mov	DWORD PTR tv806[esp+256], edx
	mov	DWORD PTR tv813[esp+256], edx
	mov	edx, DWORD PTR [edx+1884]
	mov	DWORD PTR tv816[esp+256], edx
	mov	edx, eax
	shl	edx, 4
	sub	edx, eax
	add	edx, edx
	add	edx, edx
	mov	ebx, edi
	sub	ebx, edx
	push	ebx
	xor	edx, edx
	mov	ebx, 60					; 0000003cH
	div	ebx
	mov	ecx, DWORD PTR [ebp+1884]
	mov	eax, -1851608123			; 91a2b3c5H
	push	edx
	mul	edi
	mov	eax, DWORD PTR tv340[esp+264]
	shr	edx, 11					; 0000000bH
	push	edx
	mov	edx, DWORD PTR ?PServerConnection@nc_cNetwork@@2AAPAVnc_cConnection@@A ; nc_cNetwork::PServerConnection
	push	ecx
	push	eax
	mov	eax, DWORD PTR [edx]
	mov	edx, DWORD PTR [eax+1352]
	mov	eax, DWORD PTR [edx+ecx*4]
	mov	edx, DWORD PTR [eax+676]
	push	ecx
	push	edx
	push	ecx
	lea	ecx, DWORD PTR [ebp+1896]
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	push	eax
	mov	eax, ebp
	mov	ecx, DWORD PTR [eax+1884]
	push	ecx
	lea	ecx, DWORD PTR [eax+1892]
	call	?Get@nc_IntDataSafeClass@@QAEHXZ	; nc_IntDataSafeClass::Get
	push	eax
	mov	eax, ebp
	mov	edx, DWORD PTR [eax+1884]
	push	edx
	lea	ecx, DWORD PTR [eax+4]
	call	?Get@nc_FloatDataSafeClass@@QAEMXZ	; nc_FloatDataSafeClass::Get
	mov	eax, DWORD PTR tv816[esp+304]
	sub	esp, 8
	fstp	QWORD PTR [esp]
	push	eax
	mov	ecx, ebp
	mov	edx, DWORD PTR [ecx+1880]
	push	edx
	push	eax
	lea	eax, DWORD PTR _pData$56844[esp+324]
	push	OFFSET ??_C@_0GD@OFKGFMJJ@?2player_?$CFd?2?$CFls?2score_?$CFd?2?$CF?40f?2kil@
	push	eax
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf
	add	esp, 76					; 0000004cH

; 214  : 							if ((msg.GetLength() + pData.GetLength()) > GSA_MAX_PACKET_LENGTH)

	lea	ecx, DWORD PTR _pData$56844[esp+256]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	lea	ecx, DWORD PTR _msg$56784[esp+256]
	mov	edi, eax
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength

; 215  : 							{
; 216  : 								msg += aString::Format("\\queryid\\%u.%d", this->m_queryCount, sendCount);

	mov	ebp, DWORD PTR _sendCount$56783[esp+256]
	add	edi, eax
	cmp	edi, 1024				; 00000400H
	mov	edi, DWORD PTR _this$[esp+256]
	jbe	SHORT $LN2@Think
	mov	ecx, DWORD PTR [edi+76]
	push	ebp
	push	ecx
	lea	edx, DWORD PTR $T63030[esp+264]
	push	OFFSET ??_C@_0P@HGKFGBPA@?2queryid?2?$CFu?4?$CFd?$AA@
	push	edx
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _msg$56784[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 11		; 0000000bH
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T63030[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 10		; 0000000aH
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 217  : 								this->m_socket->Send(src, msg.GetString(), msg.GetLength());

	mov	eax, DWORD PTR _msg$56784[esp+260]
	test	eax, eax
	je	SHORT $LN103@Think
	mov	ebx, DWORD PTR [eax]
	jmp	SHORT $LN104@Think
$LN103@Think:
	xor	ebx, ebx
$LN104@Think:
	lea	ecx, DWORD PTR _msg$56784[esp+256]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	mov	ecx, DWORD PTR [edi+40]
	push	eax
	push	ebx
	lea	eax, DWORD PTR _src$56755[esp+264]
	push	eax
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 218  : 								sendCount++;

	add	ebp, 1

; 219  : 								msg.Clear();

	lea	ecx, DWORD PTR _msg$56784[esp+256]
	mov	DWORD PTR _sendCount$56783[esp+256], ebp
	call	?Clear@aStringBase@@QAEXXZ		; aStringBase::Clear
$LN2@Think:

; 220  : 							}
; 221  : 							msg += pData;

	lea	ecx, DWORD PTR _pData$56844[esp+256]
	push	ecx
	lea	ecx, DWORD PTR _msg$56784[esp+260]
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=

; 222  : 						}

	mov	bl, 9
	lea	ecx, DWORD PTR _pData$56844[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN5@Think:
	mov	esi, DWORD PTR [esi]
	test	esi, esi
	jne	$LL6@Think
$LN4@Think:

; 223  : 					}
; 224  : 					if (msg.GetLength() > 0)

	lea	ecx, DWORD PTR _msg$56784[esp+256]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	test	eax, eax
	jbe	SHORT $LN1@Think

; 225  : 					{
; 226  : 						msg += aString::Format("\\queryid\\%u.%d", this->m_queryCount, sendCount);

	mov	edx, DWORD PTR [edi+76]
	push	ebp
	push	edx
	lea	eax, DWORD PTR $T63031[esp+264]
	push	OFFSET ??_C@_0P@HGKFGBPA@?2queryid?2?$CFu?4?$CFd?$AA@
	push	eax
	call	?Format@aString@@SA?AV1@PBDZZ		; aString::Format
	add	esp, 16					; 00000010H
	push	eax
	lea	ecx, DWORD PTR _msg$56784[esp+260]
	mov	BYTE PTR __$EHRec$[esp+268], 12		; 0000000cH
	call	??YaString@@QAEAAV0@ABV0@@Z		; aString::operator+=
	lea	ecx, DWORD PTR $T63031[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 227  : 						this->m_socket->Send(src, msg.GetString(), msg.GetLength());

	mov	eax, DWORD PTR _msg$56784[esp+260]
	test	eax, eax
	je	SHORT $LN115@Think
	mov	esi, DWORD PTR [eax]
	jmp	SHORT $LN116@Think
$LN115@Think:
	xor	esi, esi
$LN116@Think:
	lea	ecx, DWORD PTR _msg$56784[esp+256]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	push	eax
	push	esi
	lea	ecx, DWORD PTR _src$56755[esp+264]
	push	ecx
	mov	ecx, DWORD PTR [edi+40]
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 228  : 						sendCount++;
; 229  : 						msg.Clear();

	lea	ecx, DWORD PTR _msg$56784[esp+256]
	add	ebp, 1
	call	?Clear@aStringBase@@QAEXXZ		; aStringBase::Clear
$LN1@Think:

; 230  : 					}
; 231  : 					msg.Printf("\\final\\\\queryid\\%u.%d", this->m_queryCount, sendCount);

	mov	edx, DWORD PTR [edi+76]
	push	ebp
	push	edx
	lea	eax, DWORD PTR _msg$56784[esp+264]
	push	OFFSET ??_C@_0BG@LDEGKJJP@?2final?2?2queryid?2?$CFu?4?$CFd?$AA@
	push	eax
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 232  : 					this->m_socket->Send(src, msg.GetString(), msg.GetLength());

	mov	eax, DWORD PTR _msg$56784[esp+276]
	add	esp, 16					; 00000010H
	test	eax, eax
	je	SHORT $LN121@Think
	mov	esi, DWORD PTR [eax]
	jmp	SHORT $LN122@Think
$LN121@Think:
	xor	esi, esi
$LN122@Think:
	lea	ecx, DWORD PTR _msg$56784[esp+256]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	push	eax
	push	esi
	lea	ecx, DWORD PTR _src$56755[esp+264]
	push	ecx
	mov	ecx, DWORD PTR [edi+40]
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 233  : 				}

	lea	ecx, DWORD PTR _msg$56784[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	xor	ebx, ebx
$LN7@Think:

; 234  : 			}
; 235  : #ifdef DEVMSG
; 236  : 			stConsole::Out("[GSA] %s:%hu -> %s\n", src.Address().GetString(), src.Port(), data);

	lea	edx, DWORD PTR $T63032[esp+256]
	push	edx
	lea	ecx, DWORD PTR _src$56755[esp+260]
	call	?Address@aIPv4Address@@QAE?AVaString@@XZ ; aIPv4Address::Address
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, ebx
	mov	BYTE PTR __$EHRec$[esp+264], 13		; 0000000dH
	je	SHORT $LN132@Think
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN133@Think
$LN132@Think:
	xor	eax, eax
$LN133@Think:
	movzx	edx, WORD PTR _src$56755[esp+284]
	lea	ecx, DWORD PTR _data$56754[esp+256]
	push	ecx
	push	edx
	push	eax
	push	OFFSET ??_C@_0BE@FBPPFDBJ@?$FLGSA?$FN?5?$CFs?3?$CFhu?5?9?$DO?5?$CFs?6?$AA@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 16					; 00000010H
	lea	ecx, DWORD PTR $T63032[esp+256]
	mov	BYTE PTR __$EHRec$[esp+264], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN15@Think:

; 237  : #endif
; 238  : 		}
; 239  : 	}

	lea	ecx, DWORD PTR _src$56755[esp+260]
	mov	DWORD PTR __$EHRec$[esp+264], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN17@Think:

; 240  : }

	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@gzGameSpyQueryManager@@UAEXXZ$0:
	lea	ecx, DWORD PTR _src$56755[ebp]
	jmp	??1aIPv4Address@@QAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$1:
	lea	ecx, DWORD PTR _out$56760[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$2:
	lea	ecx, DWORD PTR $T63021[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$3:
	lea	ecx, DWORD PTR $T63020[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$4:
	lea	ecx, DWORD PTR _msg$56772[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$5:
	lea	ecx, DWORD PTR _map$56773[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$6:
	lea	ecx, DWORD PTR $T63023[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$7:
	lea	ecx, DWORD PTR $T63024[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$8:
	mov	eax, DWORD PTR $T63041[ebp]
	and	eax, 1
	je	$LN37@Think
	and	DWORD PTR $T63041[ebp], -2		; fffffffeH
	lea	ecx, DWORD PTR $T63025[ebp]
	jmp	??1aWideString@@UAE@XZ
$LN37@Think:
	ret	0
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$9:
	lea	ecx, DWORD PTR _msg$56784[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$10:
	lea	ecx, DWORD PTR _pData$56844[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$11:
	lea	ecx, DWORD PTR $T63030[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$12:
	lea	ecx, DWORD PTR $T63031[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Think@gzGameSpyQueryManager@@UAEXXZ$13:
	lea	ecx, DWORD PTR $T63032[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Think@gzGameSpyQueryManager@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Think@gzGameSpyQueryManager@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Think@gzGameSpyQueryManager@@UAEXXZ ENDP		; gzGameSpyQueryManager::Think
PUBLIC	??_7gzPlayerTraceRoute@@6B@			; gzPlayerTraceRoute::`vftable'
PUBLIC	??0gzPlayerTraceRoute@@QAE@PBD@Z		; gzPlayerTraceRoute::gzPlayerTraceRoute
PUBLIC	??_R4gzPlayerTraceRoute@@6B@			; gzPlayerTraceRoute::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzPlayerTraceRoute@@@8			; gzPlayerTraceRoute `RTTI Type Descriptor'
PUBLIC	??_R3gzPlayerTraceRoute@@8			; gzPlayerTraceRoute::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzPlayerTraceRoute@@8			; gzPlayerTraceRoute::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzPlayerTraceRoute@@8		; gzPlayerTraceRoute::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Entry@gzPlayerTraceRoute@@UAEHPAX@Z		; gzPlayerTraceRoute::Entry
EXTRN	?Run@aThread@@QAEXXZ:PROC			; aThread::Run
EXTRN	?Create@aThread@@QAEXPAX@Z:PROC			; aThread::Create
EXTRN	?Address@aIPv4Address@@QAE_NABVaString@@@Z:PROC	; aIPv4Address::Address
EXTRN	??0aThread@@QAE@XZ:PROC				; aThread::aThread
EXTRN	??_EgzPlayerTraceRoute@@UAEPAXI@Z:PROC		; gzPlayerTraceRoute::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@gzPlayerTraceRoute@@8
; File d:\source code\alib\include\astring.h
rdata$r	SEGMENT
??_R1A@?0A@EA@gzPlayerTraceRoute@@8 DD FLAT:??_R0?AVgzPlayerTraceRoute@@@8 ; gzPlayerTraceRoute::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzPlayerTraceRoute@@8
rdata$r	ENDS
;	COMDAT ??_R2gzPlayerTraceRoute@@8
rdata$r	SEGMENT
??_R2gzPlayerTraceRoute@@8 DD FLAT:??_R1A@?0A@EA@gzPlayerTraceRoute@@8 ; gzPlayerTraceRoute::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@aThread@@8
rdata$r	ENDS
;	COMDAT ??_R3gzPlayerTraceRoute@@8
rdata$r	SEGMENT
??_R3gzPlayerTraceRoute@@8 DD 00H			; gzPlayerTraceRoute::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2gzPlayerTraceRoute@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzPlayerTraceRoute@@@8
_DATA	SEGMENT
??_R0?AVgzPlayerTraceRoute@@@8 DD FLAT:??_7type_info@@6B@ ; gzPlayerTraceRoute `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzPlayerTraceRoute@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzPlayerTraceRoute@@6B@
rdata$r	SEGMENT
??_R4gzPlayerTraceRoute@@6B@ DD 00H			; gzPlayerTraceRoute::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzPlayerTraceRoute@@@8
	DD	FLAT:??_R3gzPlayerTraceRoute@@8
rdata$r	ENDS
;	COMDAT ??_7gzPlayerTraceRoute@@6B@
CONST	SEGMENT
??_7gzPlayerTraceRoute@@6B@ DD FLAT:??_R4gzPlayerTraceRoute@@6B@ ; gzPlayerTraceRoute::`vftable'
	DD	FLAT:??_EgzPlayerTraceRoute@@UAEPAXI@Z
	DD	FLAT:?Entry@gzPlayerTraceRoute@@UAEHPAX@Z
	DD	FLAT:?OnExit@aThread@@UAEXH@Z
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0gzPlayerTraceRoute@@QAE@PBD@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzPlayerTraceRoute@@QAE@PBD@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0gzPlayerTraceRoute@@QAE@PBD@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$??0gzPlayerTraceRoute@@QAE@PBD@Z$2
__ehfuncinfo$??0gzPlayerTraceRoute@@QAE@PBD@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$??0gzPlayerTraceRoute@@QAE@PBD@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
xdata$x	ENDS
;	COMDAT ??0gzPlayerTraceRoute@@QAE@PBD@Z
_TEXT	SEGMENT
_this$ = -24						; size = 4
$T63265 = -20						; size = 8
__$EHRec$ = -12						; size = 12
_ip$ = 8						; size = 4
??0gzPlayerTraceRoute@@QAE@PBD@Z PROC			; gzPlayerTraceRoute::gzPlayerTraceRoute, COMDAT
; _this$ = ecx

; 244  : {

	push	-1
	push	__ehhandler$??0gzPlayerTraceRoute@@QAE@PBD@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 12					; 0000000cH
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+32], esi
	call	??0aThread@@QAE@XZ			; aThread::aThread
	lea	edi, DWORD PTR [esi+20]
	mov	ecx, edi
	mov	DWORD PTR __$EHRec$[esp+40], 0
	mov	DWORD PTR [esi], OFFSET ??_7gzPlayerTraceRoute@@6B@
	call	??0aIPv4Address@@QAE@XZ			; aIPv4Address::aIPv4Address

; 245  : 	this->m_dst.Address(ip);

	mov	eax, DWORD PTR _ip$[esp+28]
	push	eax
	lea	ecx, DWORD PTR $T63265[esp+36]
	mov	BYTE PTR __$EHRec$[esp+44], 1
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	ecx, DWORD PTR $T63265[esp+32]
	push	ecx
	mov	ecx, edi
	mov	BYTE PTR __$EHRec$[esp+44], 2
	call	?Address@aIPv4Address@@QAE_NABVaString@@@Z ; aIPv4Address::Address
	lea	ecx, DWORD PTR $T63265[esp+32]
	mov	BYTE PTR __$EHRec$[esp+40], 1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 246  : 	this->Create(NULL);

	push	0
	mov	ecx, esi
	call	?Create@aThread@@QAEXPAX@Z		; aThread::Create

; 247  : 	this->Run();

	mov	ecx, esi
	call	?Run@aThread@@QAEXXZ			; aThread::Run

; 248  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 24					; 00000018H
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzPlayerTraceRoute@@QAE@PBD@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1aThread@@UAE@XZ			; aThread::~aThread
__unwindfunclet$??0gzPlayerTraceRoute@@QAE@PBD@Z$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 20					; 00000014H
	jmp	??1aIPv4Address@@QAE@XZ
__unwindfunclet$??0gzPlayerTraceRoute@@QAE@PBD@Z$2:
	lea	ecx, DWORD PTR $T63265[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$??0gzPlayerTraceRoute@@QAE@PBD@Z:
	mov	eax, OFFSET __ehfuncinfo$??0gzPlayerTraceRoute@@QAE@PBD@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzPlayerTraceRoute@@QAE@PBD@Z ENDP			; gzPlayerTraceRoute::gzPlayerTraceRoute
PUBLIC	??1gzPlayerTraceRoute@@UAE@XZ			; gzPlayerTraceRoute::~gzPlayerTraceRoute
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1gzPlayerTraceRoute@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1gzPlayerTraceRoute@@UAE@XZ$0
__ehfuncinfo$??1gzPlayerTraceRoute@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1gzPlayerTraceRoute@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1gzPlayerTraceRoute@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1gzPlayerTraceRoute@@UAE@XZ PROC			; gzPlayerTraceRoute::~gzPlayerTraceRoute, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??1gzPlayerTraceRoute@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+20], esi
	lea	ecx, DWORD PTR [esi+24]
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	mov	DWORD PTR [esi], OFFSET ??_7aThread@@6B@
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1gzPlayerTraceRoute@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1aThread@@UAE@XZ			; aThread::~aThread
__ehhandler$??1gzPlayerTraceRoute@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1gzPlayerTraceRoute@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1gzPlayerTraceRoute@@UAE@XZ ENDP			; gzPlayerTraceRoute::~gzPlayerTraceRoute
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
$T63308 = -12						; size = 12
_this$ = 8						; size = 4
$T63314 = 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 $T63314[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T63308[esp+20]
	mov	DWORD PTR $T63314[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T63308[esp+20]
	push	ecx
	mov	DWORD PTR $T63308[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
$T63320 = -12						; size = 12
$T63325 = 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 $T63325[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T63320[esp+20]
	mov	DWORD PTR $T63325[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T63320[esp+20]
	push	ecx
	mov	DWORD PTR $T63320[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	??A?$aVector@UaTraceData@@@@QAEAAUaTraceData@@I@Z ; aVector<aTraceData>::operator[]
; Function compile flags: /Ogtpy
; File d:\source code\alib\include\avector.h
;	COMDAT ??A?$aVector@UaTraceData@@@@QAEAAUaTraceData@@I@Z
_TEXT	SEGMENT
_nPos$ = 8						; size = 4
??A?$aVector@UaTraceData@@@@QAEAAUaTraceData@@I@Z PROC	; aVector<aTraceData>::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*8]
	ret	4
??A?$aVector@UaTraceData@@@@QAEAAUaTraceData@@I@Z ENDP	; aVector<aTraceData>::operator[]
_TEXT	ENDS
PUBLIC	?Count@?$aVector@UaTraceData@@@@QBEIXZ		; aVector<aTraceData>::Count
; Function compile flags: /Ogtpy
;	COMDAT ?Count@?$aVector@UaTraceData@@@@QBEIXZ
_TEXT	SEGMENT
?Count@?$aVector@UaTraceData@@@@QBEIXZ PROC		; aVector<aTraceData>::Count, COMDAT
; _this$ = ecx

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

	mov	eax, DWORD PTR [ecx+12]
	ret	0
?Count@?$aVector@UaTraceData@@@@QBEIXZ ENDP		; aVector<aTraceData>::Count
_TEXT	ENDS
PUBLIC	??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@ ; `string'
PUBLIC	?Clear@?$aVector@UaTraceData@@@@UAEXXZ		; aVector<aTraceData>::Clear
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@UaTraceData@@@@UAEXXZ
_TEXT	SEGMENT
?Clear@?$aVector@UaTraceData@@@@UAEXXZ PROC		; aVector<aTraceData>::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@UaTraceData@@@@UAEXXZ ENDP		; aVector<aTraceData>::Clear
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??0bad_alloc@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0bad_alloc@std@@QAE@ABV01@@Z PROC			; std::bad_alloc::bad_alloc, COMDAT
; _this$ = ecx
	mov	eax, DWORD PTR ___that$[esp-4]
	push	esi
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABV01@@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	mov	eax, esi
	pop	esi
	ret	4
??0bad_alloc@std@@QAE@ABV01@@Z ENDP			; std::bad_alloc::bad_alloc
_TEXT	ENDS
PUBLIC	??0?$allocator@D@std@@QAE@XZ			; std::allocator<char>::allocator<char>
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 8\vc\include\xmemory
;	COMDAT ??0?$allocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$allocator@D@std@@QAE@XZ PROC			; std::allocator<char>::allocator<char>, COMDAT
; _this$ = ecx

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

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

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
_TEXT	ENDS
PUBLIC	??_C@_0CC@DJGMDNDF@?2heartbeat?2?$CFu?2gamename?2ccrenegad@ ; `string'
PUBLIC	??_C@_0CI@BAOADLEP@?$FLGSA?$FN?5Unable?5to?5bind?5socket?$DL?5Err@ ; `string'
PUBLIC	??_C@_0CN@HLCBHOCG@?$FLGSA?$FN?5Resolved?5master?4gamespy?4co@ ; `string'
PUBLIC	??_C@_0BD@KHMNCOPE@master?4gamespy?4com?$AA@	; `string'
PUBLIC	??_C@_0CH@KMHLEAIK@?$FLGSA?$FN?5Resolving?5master?4gamespy?4c@ ; `string'
PUBLIC	?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ	; gzGameSpyQueryManager::Settings_Loaded
EXTRN	?GetError@aSocketBase@@QAEHXZ:PROC		; aSocketBase::GetError
EXTRN	?Listen@aSocketUDP@@QAE_NAAVaIPv4Address@@@Z:PROC ; aSocketUDP::Listen
EXTRN	__imp__inet_ntoa@4:PROC
EXTRN	??0aSocketUDP@@QAE@H@Z:PROC			; aSocketUDP::aSocketUDP
;	COMDAT ??_C@_0CC@DJGMDNDF@?2heartbeat?2?$CFu?2gamename?2ccrenegad@
; File d:\source code\alib\include\astring.h
CONST	SEGMENT
??_C@_0CC@DJGMDNDF@?2heartbeat?2?$CFu?2gamename?2ccrenegad@ DB '\heartbea'
	DB	't\%u\gamename\ccrenegade', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0CI@BAOADLEP@?$FLGSA?$FN?5Unable?5to?5bind?5socket?$DL?5Err@
CONST	SEGMENT
??_C@_0CI@BAOADLEP@?$FLGSA?$FN?5Unable?5to?5bind?5socket?$DL?5Err@ DB '[G'
	DB	'SA] Unable to bind socket; Error: %d', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0CN@HLCBHOCG@?$FLGSA?$FN?5Resolved?5master?4gamespy?4co@
CONST	SEGMENT
??_C@_0CN@HLCBHOCG@?$FLGSA?$FN?5Resolved?5master?4gamespy?4co@ DB '[GSA] '
	DB	'Resolved master.gamespy.com to IP: %s', 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@KHMNCOPE@master?4gamespy?4com?$AA@
CONST	SEGMENT
??_C@_0BD@KHMNCOPE@master?4gamespy?4com?$AA@ DB 'master.gamespy.com', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0CH@KMHLEAIK@?$FLGSA?$FN?5Resolving?5master?4gamespy?4c@
CONST	SEGMENT
??_C@_0CH@KMHLEAIK@?$FLGSA?$FN?5Resolving?5master?4gamespy?4c@ DB '[GSA] '
	DB	'Resolving master.gamespy.com...', 0aH, 00H	; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__ehfuncinfo$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ DD 019930522H
	DD	07H
	DD	FLAT:__unwindtable$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
__unwindtable$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$3
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$4
	DD	04H
	DD	FLAT:__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$5
	DD	04H
	DD	FLAT:__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$6
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
xdata$x	ENDS
;	COMDAT ?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ
_TEXT	SEGMENT
$T63367 = -72						; size = 4
_query$56711 = -72					; size = 8
$T63359 = -72						; size = 8
$T63358 = -72						; size = 8
_msg$56723 = -64					; size = 8
$T63372 = -56						; size = 8
_listen$56719 = -48					; size = 32
__$EHRec$ = -12						; size = 12
?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ PROC	; gzGameSpyQueryManager::Settings_Loaded, COMDAT
; _this$ = ecx

; 51   : {

	push	ebp
	mov	ebp, esp
	and	esp, -8					; fffffff8H
	push	-1
	push	__ehhandler$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 60					; 0000003cH
	push	ebx
	push	ebp
	push	esi
	push	edi

; 52   : #ifdef DEVMSG
; 53   : 	stConsole::Out("[GSA] Resolving master.gamespy.com...\n");

	push	OFFSET ??_C@_0CH@KMHLEAIK@?$FLGSA?$FN?5Resolving?5master?4gamespy?4c@
	mov	esi, ecx
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 4

; 54   : #endif
; 55   : 	this->m_gsaAddr.Address("master.gamespy.com");

	push	OFFSET ??_C@_0BD@KHMNCOPE@master?4gamespy?4com?$AA@
	lea	ecx, DWORD PTR $T63358[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	eax, DWORD PTR $T63358[esp+88]
	lea	ebp, DWORD PTR [esi+8]
	xor	ebx, ebx
	push	eax
	mov	ecx, ebp
	mov	DWORD PTR __$EHRec$[esp+100], ebx
	call	?Address@aIPv4Address@@QAE_NABVaString@@@Z ; aIPv4Address::Address
	or	edi, -1
	lea	ecx, DWORD PTR $T63358[esp+88]
	mov	DWORD PTR __$EHRec$[esp+96], edi
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 56   : 	this->m_gsaAddr.Port(27900);
; 57   : #ifdef DEVMSG
; 58   : 	stConsole::Out("[GSA] Resolved master.gamespy.com to IP: %s\n", this->m_gsaAddr.Address().GetString());

	lea	ecx, DWORD PTR $T63359[esp+88]
	push	ecx
	mov	ecx, ebp
	mov	WORD PTR [esi+36], 27900		; 00006cfcH
	call	?Address@aIPv4Address@@QAE?AVaString@@XZ ; aIPv4Address::Address
	mov	eax, DWORD PTR [eax+4]
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+96], 1
	je	SHORT $LN35@Settings_L
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN36@Settings_L
$LN35@Settings_L:
	xor	eax, eax
$LN36@Settings_L:
	push	eax
	push	OFFSET ??_C@_0CN@HLCBHOCG@?$FLGSA?$FN?5Resolved?5master?4gamespy?4co@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 8
	lea	ecx, DWORD PTR $T63359[esp+88]
	mov	DWORD PTR __$EHRec$[esp+96], edi
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 59   : #endif
; 60   : 
; 61   : 	if (this->m_settings->m_enable)

	mov	eax, DWORD PTR [esi+48]
	cmp	BYTE PTR [eax+24], 0
	je	$LN6@Settings_L

; 62   : 	{
; 63   : 		if (this->m_bindPort != this->m_settings->m_bindPort)

	mov	dx, WORD PTR [esi+44]
	cmp	dx, WORD PTR [eax+26]
	je	$LN1@Settings_L

; 64   : 		{
; 65   : 			if (this->m_socket)

	cmp	DWORD PTR [esi+4], ebx
	je	SHORT $LN4@Settings_L

; 66   : 			{
; 67   : 				aString query;

	lea	ecx, DWORD PTR _query$56711[esp+88]
	call	??0aString@@QAE@XZ			; aString::aString

; 68   : 				query.Printf("\\heartbeat\\%u\\gamename\\ccrenegade\\statechanged\\2", this->m_bindPort);

	movzx	eax, WORD PTR [esi+44]
	push	eax
	lea	ecx, DWORD PTR _query$56711[esp+92]
	push	OFFSET ??_C@_0DB@MCOEHPPE@?2heartbeat?2?$CFu?2gamename?2ccrenegad@
	push	ecx
	mov	DWORD PTR __$EHRec$[esp+108], 2
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 69   : 				this->m_socket->Send(this->m_gsaAddr, query.GetString(), query.GetLength());

	mov	eax, DWORD PTR _query$56711[esp+104]
	add	esp, 12					; 0000000cH
	cmp	eax, ebx
	je	SHORT $LN44@Settings_L
	mov	edi, DWORD PTR [eax]
	jmp	SHORT $LN45@Settings_L
$LN44@Settings_L:
	xor	edi, edi
$LN45@Settings_L:
	lea	ecx, DWORD PTR _query$56711[esp+88]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	mov	ecx, DWORD PTR [esi+4]
	push	eax
	push	edi
	push	ebp
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 70   : 				delete this->m_socket;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	70					; 00000046H
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+4]
	add	esp, 12					; 0000000cH
	cmp	ecx, ebx
	je	SHORT $LN9@Settings_L
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
$LN9@Settings_L:

; 71   : 			}

	lea	ecx, DWORD PTR _query$56711[esp+88]
	mov	DWORD PTR __$EHRec$[esp+96], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN4@Settings_L:

; 72   : 
; 73   : 			this->m_bindPort = this->m_settings->m_bindPort;

	mov	ecx, DWORD PTR [esi+48]
	mov	dx, WORD PTR [ecx+26]
	mov	WORD PTR [esi+44], dx

; 74   : 
; 75   : 			sockaddr_in bindip;
; 76   : 			bindip.sin_addr.s_addr = cGame->IP;

	mov	eax, DWORD PTR ?cGame@@3AAPAVnc_cGameData@@A ; cGame
	mov	ecx, DWORD PTR [eax]
	mov	edi, DWORD PTR [ecx+524]

; 77   : 			this->m_socket = new aSocketUDP(aSOCKET_NONBLOCKING);

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	77					; 0000004dH
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	448					; 000001c0H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T63367[esp+88], eax
	cmp	eax, ebx
	mov	DWORD PTR __$EHRec$[esp+96], 3
	je	SHORT $LN13@Settings_L
	push	2
	mov	ecx, eax
	call	??0aSocketUDP@@QAE@H@Z			; aSocketUDP::aSocketUDP
	jmp	SHORT $LN14@Settings_L
$LN13@Settings_L:
	xor	eax, eax
$LN14@Settings_L:

; 78   : 			aIPv4Address listen;

	lea	ecx, DWORD PTR _listen$56719[esp+88]
	mov	DWORD PTR __$EHRec$[esp+96], -1
	mov	DWORD PTR [esi+4], eax
	call	??0aIPv4Address@@QAE@XZ			; aIPv4Address::aIPv4Address
	mov	ebx, 4

; 79   : 			listen.Address(inet_ntoa(bindip.sin_addr));

	push	edi
	mov	DWORD PTR __$EHRec$[esp+100], ebx
	call	DWORD PTR __imp__inet_ntoa@4
	push	eax
	lea	ecx, DWORD PTR $T63372[esp+92]
	call	??0aString@@QAE@PBD@Z			; aString::aString
	lea	edx, DWORD PTR $T63372[esp+88]
	push	edx
	lea	ecx, DWORD PTR _listen$56719[esp+92]
	mov	BYTE PTR __$EHRec$[esp+100], 5
	call	?Address@aIPv4Address@@QAE_NABVaString@@@Z ; aIPv4Address::Address
	lea	ecx, DWORD PTR $T63372[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 80   : 			listen.Port(this->m_bindPort);

	mov	ax, WORD PTR [esi+44]

; 81   : 			if (!this->m_socket->Listen(listen))

	lea	ecx, DWORD PTR _listen$56719[esp+88]
	push	ecx
	mov	ecx, DWORD PTR [esi+4]
	mov	WORD PTR _listen$56719[esp+120], ax
	call	?Listen@aSocketUDP@@QAE_NAAVaIPv4Address@@@Z ; aSocketUDP::Listen
	test	al, al
	jne	SHORT $LN3@Settings_L

; 82   : 			{
; 83   : 				stConsole::Out("[GSA] Unable to bind socket; Error: %d\n", this->m_socket->GetError());

	mov	ecx, DWORD PTR [esi+4]
	call	?GetError@aSocketBase@@QAEHXZ		; aSocketBase::GetError
	push	eax
	push	OFFSET ??_C@_0CI@BAOADLEP@?$FLGSA?$FN?5Unable?5to?5bind?5socket?$DL?5Err@
	call	?Out@stConsole@@SAXPBDZZ		; stConsole::Out
	add	esp, 8

; 84   : 				return;

	jmp	SHORT $LN78@Settings_L
$LN3@Settings_L:

; 85   : 			}
; 86   : 
; 87   : 			aString msg;

	lea	ecx, DWORD PTR _msg$56723[esp+88]
	call	??0aString@@QAE@XZ			; aString::aString

; 88   : 			msg.Printf("\\heartbeat\\%u\\gamename\\ccrenegade", this->m_bindPort);

	movzx	edx, WORD PTR [esi+44]
	push	edx
	lea	eax, DWORD PTR _msg$56723[esp+92]
	push	OFFSET ??_C@_0CC@DJGMDNDF@?2heartbeat?2?$CFu?2gamename?2ccrenegad@
	push	eax
	mov	BYTE PTR __$EHRec$[esp+108], 6
	call	?Printf@aString@@QAAXPBDZZ		; aString::Printf

; 89   : 			this->m_socket->Send(this->m_gsaAddr, msg.GetString(), msg.GetLength());

	mov	eax, DWORD PTR _msg$56723[esp+104]
	add	esp, 12					; 0000000cH
	test	eax, eax
	je	SHORT $LN64@Settings_L
	mov	edi, DWORD PTR [eax]
	jmp	SHORT $LN65@Settings_L
$LN64@Settings_L:
	xor	edi, edi
$LN65@Settings_L:
	lea	ecx, DWORD PTR _msg$56723[esp+88]
	call	?GetLength@aStringBase@@QBEIXZ		; aStringBase::GetLength
	mov	ecx, DWORD PTR [esi+4]
	push	eax
	push	edi
	push	ebp
	call	?Send@aSocketUDP@@QAE_NAAVaIPv4Address@@PBXH@Z ; aSocketUDP::Send

; 90   : 		}

	lea	ecx, DWORD PTR _msg$56723[esp+88]
	mov	BYTE PTR __$EHRec$[esp+96], bl
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
$LN78@Settings_L:
	lea	ecx, DWORD PTR _listen$56719[esp+92]
	mov	DWORD PTR __$EHRec$[esp+96], -1
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 98   : 		}
; 99   : 	}
; 100  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+88]
	mov	DWORD PTR fs:0, ecx
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
	mov	esp, ebp
	pop	ebp
	ret	0
$LN6@Settings_L:

; 91   : 	}
; 92   : 	else
; 93   : 	{
; 94   : 		if (this->m_socket)

	cmp	DWORD PTR [esi+4], ebx
	je	SHORT $LN1@Settings_L

; 95   : 		{
; 96   : 			delete this->m_socket;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	96					; 00000060H
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	ecx, DWORD PTR [esi+4]
	add	esp, 12					; 0000000cH
	cmp	ecx, ebx
	je	SHORT $LN17@Settings_L
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	1
	call	eax
$LN17@Settings_L:

; 97   : 			this->m_socket = NULL;

	mov	DWORD PTR [esi+4], ebx
$LN1@Settings_L:

; 98   : 		}
; 99   : 	}
; 100  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+88]
	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$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$0:
	lea	ecx, DWORD PTR $T63358[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$1:
	lea	ecx, DWORD PTR $T63359[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$2:
	lea	ecx, DWORD PTR _query$56711[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$3:
	mov	eax, DWORD PTR $T63367[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$4:
	lea	ecx, DWORD PTR _listen$56719[ebp]
	jmp	??1aIPv4Address@@QAE@XZ
__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$5:
	lea	ecx, DWORD PTR $T63372[ebp]
	jmp	??1aString@@UAE@XZ
__unwindfunclet$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ$6:
	lea	ecx, DWORD PTR _msg$56723[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ:
	mov	eax, OFFSET __ehfuncinfo$?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ
	jmp	___CxxFrameHandler3
text$x	ENDS
?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ ENDP	; gzGameSpyQueryManager::Settings_Loaded
PUBLIC	??_7gzGameSpyQueryManager@@6BgzSettingsEvent@@@	; gzGameSpyQueryManager::`vftable'
PUBLIC	??_7gzGameSpyQueryManager@@6BEventHandler@@@	; gzGameSpyQueryManager::`vftable'
PUBLIC	??0gzGameSpyQueryManager@@QAE@XZ		; gzGameSpyQueryManager::gzGameSpyQueryManager
PUBLIC	??_R4gzGameSpyQueryManager@@6BEventHandler@@@	; gzGameSpyQueryManager::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVgzGameSpyQueryManager@@@8		; gzGameSpyQueryManager `RTTI Type Descriptor'
PUBLIC	??_R3gzGameSpyQueryManager@@8			; gzGameSpyQueryManager::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2gzGameSpyQueryManager@@8			; gzGameSpyQueryManager::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@gzGameSpyQueryManager@@8		; gzGameSpyQueryManager::`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	??_R1CE@?0A@EA@gzSettingsEvent@@8		; gzSettingsEvent::`RTTI Base Class Descriptor at (36,-1,0,64)'
PUBLIC	?GetName@gzGameSpyQueryManager@@UAEPBDXZ	; gzGameSpyQueryManager::GetName
PUBLIC	?Level_Loaded@EventHandler@@UAEXXZ		; EventHandler::Level_Loaded
PUBLIC	?Level_Ended@EventHandler@@UAEXXZ		; EventHandler::Level_Ended
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	??_R4gzGameSpyQueryManager@@6BgzSettingsEvent@@@ ; gzGameSpyQueryManager::`RTTI Complete Object Locator'
EXTRN	??1EventHandler@@UAE@XZ:PROC			; EventHandler::~EventHandler
EXTRN	?RegisterEvent@EventHandler@@QAEXHH@Z:PROC	; EventHandler::RegisterEvent
EXTRN	??0EventHandler@@QAE@XZ:PROC			; EventHandler::EventHandler
EXTRN	??_EgzGameSpyQueryManager@@UAEPAXI@Z:PROC	; gzGameSpyQueryManager::`vector deleting destructor'
EXTRN	?SetDeletePending@gzBase@@UAEXXZ:PROC		; gzBase::SetDeletePending
;	COMDAT ??_R4gzGameSpyQueryManager@@6BgzSettingsEvent@@@
; File d:\source code\stgm\stsetting.h
rdata$r	SEGMENT
??_R4gzGameSpyQueryManager@@6BgzSettingsEvent@@@ DD 00H	; gzGameSpyQueryManager::`RTTI Complete Object Locator'
	DD	024H
	DD	00H
	DD	FLAT:??_R0?AVgzGameSpyQueryManager@@@8
	DD	FLAT:??_R3gzGameSpyQueryManager@@8
rdata$r	ENDS
;	COMDAT ??_R1CE@?0A@EA@gzSettingsEvent@@8
rdata$r	SEGMENT
??_R1CE@?0A@EA@gzSettingsEvent@@8 DD FLAT:??_R0?AVgzSettingsEvent@@@8 ; gzSettingsEvent::`RTTI Base Class Descriptor at (36,-1,0,64)'
	DD	00H
	DD	024H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzSettingsEvent@@8
rdata$r	ENDS
;	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@gzGameSpyQueryManager@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@gzGameSpyQueryManager@@8 DD FLAT:??_R0?AVgzGameSpyQueryManager@@@8 ; gzGameSpyQueryManager::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3gzGameSpyQueryManager@@8
rdata$r	ENDS
;	COMDAT ??_R2gzGameSpyQueryManager@@8
rdata$r	SEGMENT
??_R2gzGameSpyQueryManager@@8 DD FLAT:??_R1A@?0A@EA@gzGameSpyQueryManager@@8 ; gzGameSpyQueryManager::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@EventHandler@@8
	DD	FLAT:??_R1A@?0A@EA@gzBase@@8
	DD	FLAT:??_R1CE@?0A@EA@gzSettingsEvent@@8
rdata$r	ENDS
;	COMDAT ??_R3gzGameSpyQueryManager@@8
rdata$r	SEGMENT
??_R3gzGameSpyQueryManager@@8 DD 00H			; gzGameSpyQueryManager::`RTTI Class Hierarchy Descriptor'
	DD	01H
	DD	04H
	DD	FLAT:??_R2gzGameSpyQueryManager@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVgzGameSpyQueryManager@@@8
_DATA	SEGMENT
??_R0?AVgzGameSpyQueryManager@@@8 DD FLAT:??_7type_info@@6B@ ; gzGameSpyQueryManager `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVgzGameSpyQueryManager@@', 00H
_DATA	ENDS
;	COMDAT ??_R4gzGameSpyQueryManager@@6BEventHandler@@@
rdata$r	SEGMENT
??_R4gzGameSpyQueryManager@@6BEventHandler@@@ DD 00H	; gzGameSpyQueryManager::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVgzGameSpyQueryManager@@@8
	DD	FLAT:??_R3gzGameSpyQueryManager@@8
rdata$r	ENDS
;	COMDAT ??_7gzGameSpyQueryManager@@6BgzSettingsEvent@@@
CONST	SEGMENT
??_7gzGameSpyQueryManager@@6BgzSettingsEvent@@@ DD FLAT:??_R4gzGameSpyQueryManager@@6BgzSettingsEvent@@@ ; gzGameSpyQueryManager::`vftable'
	DD	FLAT:?Settings_Loaded@gzGameSpyQueryManager@@UAEXXZ
CONST	ENDS
;	COMDAT ??_7gzGameSpyQueryManager@@6BEventHandler@@@
CONST	SEGMENT
??_7gzGameSpyQueryManager@@6BEventHandler@@@ DD FLAT:??_R4gzGameSpyQueryManager@@6BEventHandler@@@ ; gzGameSpyQueryManager::`vftable'
	DD	FLAT:??_EgzGameSpyQueryManager@@UAEPAXI@Z
	DD	FLAT:?GetName@gzGameSpyQueryManager@@UAEPBDXZ
	DD	FLAT:?Delete@gzGameSpyQueryManager@@UAEXXZ
	DD	FLAT:?SetDeletePending@gzBase@@UAEXXZ
	DD	FLAT:?Level_Loaded@EventHandler@@UAEXXZ
	DD	FLAT:?Level_Ended@EventHandler@@UAEXXZ
	DD	FLAT:?Think@gzGameSpyQueryManager@@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$??0gzGameSpyQueryManager@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0gzGameSpyQueryManager@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0gzGameSpyQueryManager@@QAE@XZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$??0gzGameSpyQueryManager@@QAE@XZ$2
__ehfuncinfo$??0gzGameSpyQueryManager@@QAE@XZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$??0gzGameSpyQueryManager@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
xdata$x	ENDS
;	COMDAT ??0gzGameSpyQueryManager@@QAE@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T63488 = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0gzGameSpyQueryManager@@QAE@XZ PROC			; gzGameSpyQueryManager::gzGameSpyQueryManager, COMDAT
; _this$ = ecx

; 102  : {

	push	-1
	push	__ehhandler$??0gzGameSpyQueryManager@@QAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 8
	push	ebx
	push	esi
	mov	esi, ecx
	push	edi
	mov	DWORD PTR _this$[esp+32], esi
	call	??0EventHandler@@QAE@XZ			; EventHandler::EventHandler
	lea	edi, DWORD PTR [esi+36]
	mov	DWORD PTR [edi], OFFSET ??_7gzSettingsEvent@@6B@
	xor	ebx, ebx
	lea	ecx, DWORD PTR [esi+44]
	mov	DWORD PTR __$EHRec$[esp+40], ebx
	mov	DWORD PTR [esi], OFFSET ??_7gzGameSpyQueryManager@@6BEventHandler@@@
	mov	DWORD PTR [edi], OFFSET ??_7gzGameSpyQueryManager@@6BgzSettingsEvent@@@
	call	??0aIPv4Address@@QAE@XZ			; aIPv4Address::aIPv4Address

; 103  : 	this->RegisterEvent(EVT_GAME_THINK);

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

; 104  : 
; 105  : 	this->m_socket = NULL;
; 106  : 	this->m_queryCount = 0;
; 107  : 	this->m_bindPort = 0;
; 108  : 	this->m_gsaTimeoutCounter = GSA_TIMEOUT;

	fld	DWORD PTR __real@42f00000

; 109  : 	this->m_settings = new gzGameSpyQuerySettings;

	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	fstp	DWORD PTR [esi+88]
	push	109					; 0000006dH
	push	OFFSET ??_C@_0M@BHEPJEOF@?4?2stnet?4cpp?$AA@
	mov	DWORD PTR [esi+40], ebx
	mov	DWORD PTR [esi+76], ebx
	mov	WORD PTR [esi+80], bx
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	push	32					; 00000020H
	call	??2@YAPAXI@Z				; operator new
	add	esp, 16					; 00000010H
	mov	DWORD PTR $T63488[esp+32], eax
	cmp	eax, ebx
	mov	BYTE PTR __$EHRec$[esp+40], 2
	je	SHORT $LN3@gzGameSpyQ
	mov	ecx, eax
	call	??0gzGameSpyQuerySettings@@QAE@XZ	; gzGameSpyQuerySettings::gzGameSpyQuerySettings
	jmp	SHORT $LN4@gzGameSpyQ
$LN3@gzGameSpyQ:
	xor	eax, eax
$LN4@gzGameSpyQ:

; 110  : 	this->m_settings->SetOwner(this);
; 111  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+32]
	mov	DWORD PTR [esi+84], eax
	mov	DWORD PTR [eax+8], edi
	pop	edi
	mov	eax, esi
	pop	esi
	pop	ebx
	mov	DWORD PTR fs:0, ecx
	add	esp, 20					; 00000014H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0gzGameSpyQueryManager@@QAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__unwindfunclet$??0gzGameSpyQueryManager@@QAE@XZ$1:
	mov	ecx, DWORD PTR _this$[ebp]
	add	ecx, 44					; 0000002cH
	jmp	??1aIPv4Address@@QAE@XZ
__unwindfunclet$??0gzGameSpyQueryManager@@QAE@XZ$2:
	mov	eax, DWORD PTR $T63488[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$??0gzGameSpyQueryManager@@QAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??0gzGameSpyQueryManager@@QAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??0gzGameSpyQueryManager@@QAE@XZ ENDP			; gzGameSpyQueryManager::gzGameSpyQueryManager
; 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 ?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	??_C@_0BG@NKPDIGIM@gzGameSpyQueryManager?$AA@	; `string'
;	COMDAT ??_C@_0BG@NKPDIGIM@gzGameSpyQueryManager?$AA@
; File d:\source code\stgm\stnet.h
CONST	SEGMENT
??_C@_0BG@NKPDIGIM@gzGameSpyQueryManager?$AA@ DB 'gzGameSpyQueryManager', 00H ; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?GetName@gzGameSpyQueryManager@@UAEPBDXZ
_TEXT	SEGMENT
?GetName@gzGameSpyQueryManager@@UAEPBDXZ PROC		; gzGameSpyQueryManager::GetName, COMDAT
; _this$ = ecx

; 28   : 		return "gzGameSpyQueryManager";

	mov	eax, OFFSET ??_C@_0BG@NKPDIGIM@gzGameSpyQueryManager?$AA@

; 29   : 	};

	ret	0
?GetName@gzGameSpyQueryManager@@UAEPBDXZ ENDP		; gzGameSpyQueryManager::GetName
_TEXT	ENDS
PUBLIC	??1gzGameSpyQueryManager@@UAE@XZ		; gzGameSpyQueryManager::~gzGameSpyQueryManager
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1gzGameSpyQueryManager@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1gzGameSpyQueryManager@@UAE@XZ$0
__ehfuncinfo$??1gzGameSpyQueryManager@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1gzGameSpyQueryManager@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1gzGameSpyQueryManager@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1gzGameSpyQueryManager@@UAE@XZ PROC			; gzGameSpyQueryManager::~gzGameSpyQueryManager, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??1gzGameSpyQueryManager@@UAE@XZ
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	push	ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR _this$[esp+20], esi
	lea	ecx, DWORD PTR [esi+48]
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], -1
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	mov	ecx, DWORD PTR __$EHRec$[esp+20]
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1gzGameSpyQueryManager@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__ehhandler$??1gzGameSpyQueryManager@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1gzGameSpyQueryManager@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1gzGameSpyQueryManager@@UAE@XZ ENDP			; gzGameSpyQueryManager::~gzGameSpyQueryManager
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??_GgzGameSpyQueryManager@@UAEPAXI@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??_GgzGameSpyQueryManager@@UAEPAXI@Z$0
__ehfuncinfo$??_GgzGameSpyQueryManager@@UAEPAXI@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??_GgzGameSpyQueryManager@@UAEPAXI@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??_GgzGameSpyQueryManager@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
___flags$ = 8						; size = 4
??_GgzGameSpyQueryManager@@UAEPAXI@Z PROC		; gzGameSpyQueryManager::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??_GgzGameSpyQueryManager@@UAEPAXI@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
	lea	ecx, DWORD PTR [esi+48]
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+28], -1
	call	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
	test	BYTE PTR ___flags$[esp+16], 1
	je	SHORT $LN14@scalar@3
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN14@scalar@3:
	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$??_GgzGameSpyQueryManager@@UAEPAXI@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1EventHandler@@UAE@XZ			; EventHandler::~EventHandler
__ehhandler$??_GgzGameSpyQueryManager@@UAEPAXI@Z:
	mov	eax, OFFSET __ehfuncinfo$??_GgzGameSpyQueryManager@@UAEPAXI@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??_GgzGameSpyQueryManager@@UAEPAXI@Z ENDP		; gzGameSpyQueryManager::`scalar deleting destructor'
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??_GgzPlayerTraceRoute@@UAEPAXI@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??_GgzPlayerTraceRoute@@UAEPAXI@Z$0
__ehfuncinfo$??_GgzPlayerTraceRoute@@UAEPAXI@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??_GgzPlayerTraceRoute@@UAEPAXI@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??_GgzPlayerTraceRoute@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
___flags$ = 8						; size = 4
??_GgzPlayerTraceRoute@@UAEPAXI@Z PROC			; gzPlayerTraceRoute::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??_GgzPlayerTraceRoute@@UAEPAXI@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
	lea	ecx, DWORD PTR [esi+24]
	mov	DWORD PTR __$EHRec$[esp+28], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase
	test	BYTE PTR ___flags$[esp+16], 1
	mov	DWORD PTR [esi], OFFSET ??_7aThread@@6B@
	je	SHORT $LN16@scalar@4
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN16@scalar@4:
	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$??_GgzPlayerTraceRoute@@UAEPAXI@Z$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1aThread@@UAE@XZ			; aThread::~aThread
__ehhandler$??_GgzPlayerTraceRoute@@UAEPAXI@Z:
	mov	eax, OFFSET __ehfuncinfo$??_GgzPlayerTraceRoute@@UAEPAXI@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
??_GgzPlayerTraceRoute@@UAEPAXI@Z ENDP			; gzPlayerTraceRoute::`scalar deleting destructor'
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	??_7?$aVector@UaTraceData@@@@6B@		; aVector<aTraceData>::`vftable'
PUBLIC	??1?$aVector@UaTraceData@@@@UAE@XZ		; aVector<aTraceData>::~aVector<aTraceData>
PUBLIC	??_R4?$aVector@UaTraceData@@@@6B@		; aVector<aTraceData>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$aVector@UaTraceData@@@@@8		; aVector<aTraceData> `RTTI Type Descriptor'
PUBLIC	??_R3?$aVector@UaTraceData@@@@8			; aVector<aTraceData>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$aVector@UaTraceData@@@@8			; aVector<aTraceData>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$aVector@UaTraceData@@@@8	; aVector<aTraceData>::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Resize@?$aVector@UaTraceData@@@@UAE_NI@Z	; aVector<aTraceData>::Resize
PUBLIC	?Add@?$aVector@UaTraceData@@@@UAEXABUaTraceData@@@Z ; aVector<aTraceData>::Add
PUBLIC	?Insert@?$aVector@UaTraceData@@@@UAEXIABUaTraceData@@@Z ; aVector<aTraceData>::Insert
PUBLIC	?Delete@?$aVector@UaTraceData@@@@UAEXI@Z	; aVector<aTraceData>::Delete
EXTRN	??_E?$aVector@UaTraceData@@@@UAEPAXI@Z:PROC	; aVector<aTraceData>::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@?$aVector@UaTraceData@@@@8
; File d:\source code\alib\include\avector.h
rdata$r	SEGMENT
??_R1A@?0A@EA@?$aVector@UaTraceData@@@@8 DD FLAT:??_R0?AV?$aVector@UaTraceData@@@@@8 ; aVector<aTraceData>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$aVector@UaTraceData@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$aVector@UaTraceData@@@@8
rdata$r	SEGMENT
??_R2?$aVector@UaTraceData@@@@8 DD FLAT:??_R1A@?0A@EA@?$aVector@UaTraceData@@@@8 ; aVector<aTraceData>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$aVector@UaTraceData@@@@8
rdata$r	SEGMENT
??_R3?$aVector@UaTraceData@@@@8 DD 00H			; aVector<aTraceData>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$aVector@UaTraceData@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$aVector@UaTraceData@@@@@8
_DATA	SEGMENT
??_R0?AV?$aVector@UaTraceData@@@@@8 DD FLAT:??_7type_info@@6B@ ; aVector<aTraceData> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$aVector@UaTraceData@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$aVector@UaTraceData@@@@6B@
rdata$r	SEGMENT
??_R4?$aVector@UaTraceData@@@@6B@ DD 00H		; aVector<aTraceData>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$aVector@UaTraceData@@@@@8
	DD	FLAT:??_R3?$aVector@UaTraceData@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$aVector@UaTraceData@@@@6B@
CONST	SEGMENT
??_7?$aVector@UaTraceData@@@@6B@ DD FLAT:??_R4?$aVector@UaTraceData@@@@6B@ ; aVector<aTraceData>::`vftable'
	DD	FLAT:??_E?$aVector@UaTraceData@@@@UAEPAXI@Z
	DD	FLAT:?Clear@?$aVector@UaTraceData@@@@UAEXXZ
	DD	FLAT:?Resize@?$aVector@UaTraceData@@@@UAE_NI@Z
	DD	FLAT:?Add@?$aVector@UaTraceData@@@@UAEXABUaTraceData@@@Z
	DD	FLAT:?Insert@?$aVector@UaTraceData@@@@UAEXIABUaTraceData@@@Z
	DD	FLAT:?Delete@?$aVector@UaTraceData@@@@UAEXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??1?$aVector@UaTraceData@@@@UAE@XZ
_TEXT	SEGMENT
??1?$aVector@UaTraceData@@@@UAE@XZ PROC			; aVector<aTraceData>::~aVector<aTraceData>, 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@UaTraceData@@@@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@UaTraceData@@@@UAE@XZ ENDP			; aVector<aTraceData>::~aVector<aTraceData>
_TEXT	ENDS
EXTRN	??_U@YAPAXI@Z:PROC				; operator new[]
EXTRN	_memcpy:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Resize@?$aVector@UaTraceData@@@@UAE_NI@Z
_TEXT	SEGMENT
_nSize$ = 8						; size = 4
?Resize@?$aVector@UaTraceData@@@@UAE_NI@Z PROC		; aVector<aTraceData>::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

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

	test	esi, esi
	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, esi
	mov	edx, 24					; 00000018H
	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

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

	lea	ecx, DWORD PTR [esi+esi*2]
	add	ecx, ecx
	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:

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

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

	mov	eax, DWORD PTR [edi]
	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@UaTraceData@@@@UAE_NI@Z ENDP		; aVector<aTraceData>::Resize
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Add@?$aVector@UaTraceData@@@@UAEXABUaTraceData@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Add@?$aVector@UaTraceData@@@@UAEXABUaTraceData@@@Z PROC ; aVector<aTraceData>::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	eax, DWORD PTR [esi+12]
	mov	ecx, DWORD PTR [esi+4]
	lea	eax, DWORD PTR [eax+eax*2]
	lea	eax, DWORD PTR [ecx+eax*8]
	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	edx, DWORD PTR [ecx+8]
	mov	DWORD PTR [eax+8], edx
	mov	edx, DWORD PTR [ecx+12]
	mov	DWORD PTR [eax+12], edx
	mov	edx, DWORD PTR [ecx+16]
	mov	DWORD PTR [eax+16], edx
	mov	ecx, DWORD PTR [ecx+20]
	mov	DWORD PTR [eax+20], ecx
	add	DWORD PTR [esi+12], 1
$LN1@Add:
	pop	esi

; 110  : 	}

	ret	4
?Add@?$aVector@UaTraceData@@@@UAEXABUaTraceData@@@Z ENDP ; aVector<aTraceData>::Add
_TEXT	ENDS
EXTRN	_memmove:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Insert@?$aVector@UaTraceData@@@@UAEXIABUaTraceData@@@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
_obj$ = 12						; size = 4
?Insert@?$aVector@UaTraceData@@@@UAEXIABUaTraceData@@@Z PROC ; aVector<aTraceData>::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
	sub	eax, edi
	lea	eax, DWORD PTR [eax+eax*2]
	lea	edi, DWORD PTR [edi+edi*2]
	add	ecx, 1
	add	eax, eax
	add	edi, edi
	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, 24					; 00000018H
	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]
	mov	DWORD PTR [eax+edi], edx
	mov	edx, DWORD PTR [ecx+4]
	mov	DWORD PTR [eax+edi+4], edx
	mov	edx, DWORD PTR [ecx+8]
	add	esp, 12					; 0000000cH
	add	eax, edi
	mov	DWORD PTR [eax+8], edx
	mov	edx, DWORD PTR [ecx+12]
	mov	DWORD PTR [eax+12], edx
	mov	edx, DWORD PTR [ecx+16]
	mov	DWORD PTR [eax+16], edx
	mov	ecx, DWORD PTR [ecx+20]
	mov	DWORD PTR [eax+20], ecx
$LN1@Insert:
	pop	edi
	pop	esi

; 119  : 		}
; 120  : 	}

	ret	8
?Insert@?$aVector@UaTraceData@@@@UAEXIABUaTraceData@@@Z ENDP ; aVector<aTraceData>::Insert
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ?Delete@?$aVector@UaTraceData@@@@UAEXI@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
?Delete@?$aVector@UaTraceData@@@@UAEXI@Z PROC		; aVector<aTraceData>::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@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]
	mov	ecx, esi
	call	edx
	pop	esi

; 132  : 		}
; 133  : 	}

	ret	4
$LN3@Delete@2:

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

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

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

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

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

; 132  : 		}
; 133  : 	}

	ret	4
?Delete@?$aVector@UaTraceData@@@@UAEXI@Z ENDP		; aVector<aTraceData>::Delete
_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@UaTraceData@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$aVector@UaTraceData@@@@UAEPAXI@Z PROC		; aVector<aTraceData>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	cmp	DWORD PTR [esi+4], 0
	mov	DWORD PTR [esi], OFFSET ??_7?$aVector@UaTraceData@@@@6B@
	je	SHORT $LN6@scalar@5
	push	OFFSET ??_C@_00CNPNBAHC@?$AA@
	push	73					; 00000049H
	push	OFFSET ??_C@_0CG@EILDPJHO@D?3?2Source?5Code?2aLib?2include?2aVec@
	call	?m_setOwner@@YAXPBDI0@Z			; m_setOwner
	mov	eax, DWORD PTR [esi+4]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+4], 0
$LN6@scalar@5:
	test	BYTE PTR ___flags$[esp], 1
	mov	DWORD PTR [esi+8], 0
	mov	DWORD PTR [esi+12], 0
	je	SHORT $LN11@scalar@5
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN11@scalar@5:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$aVector@UaTraceData@@@@UAEPAXI@Z ENDP		; aVector<aTraceData>::`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	??1aNetTraceRoute@@UAE@XZ			; aNetTraceRoute::~aNetTraceRoute
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1aNetTraceRoute@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1aNetTraceRoute@@UAE@XZ$0
__ehfuncinfo$??1aNetTraceRoute@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1aNetTraceRoute@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
xdata$x	ENDS
;	COMDAT ??1aNetTraceRoute@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1aNetTraceRoute@@UAE@XZ PROC				; aNetTraceRoute::~aNetTraceRoute, COMDAT
; _this$ = ecx
	push	-1
	push	__ehhandler$??1aNetTraceRoute@@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+472], edi
	mov	DWORD PTR __$EHRec$[esp+32], edi
	mov	DWORD PTR [esi+468], OFFSET ??_7?$aVector@UaTraceData@@@@6B@
	je	SHORT $LN7@aNetTraceR
	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+472]
	push	eax
	call	??_V@YAXPAX@Z				; operator delete[]
	add	esp, 16					; 00000010H
	mov	DWORD PTR [esi+472], edi
$LN7@aNetTraceR:
	mov	ecx, esi
	mov	DWORD PTR [esi+476], edi
	mov	DWORD PTR [esi+480], edi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	call	??1aSocketBase@@UAE@XZ			; aSocketBase::~aSocketBase
	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$??1aNetTraceRoute@@UAE@XZ$0:
	mov	ecx, DWORD PTR _this$[ebp]
	jmp	??1aSocketRaw@@UAE@XZ
__ehhandler$??1aNetTraceRoute@@UAE@XZ:
	mov	eax, OFFSET __ehfuncinfo$??1aNetTraceRoute@@UAE@XZ
	jmp	___CxxFrameHandler3
text$x	ENDS
??1aNetTraceRoute@@UAE@XZ ENDP				; aNetTraceRoute::~aNetTraceRoute
PUBLIC	??_C@_08OJNMODJH@?7?$FL?$CFd?$FN?5?$CFs?$AA@	; `string'
PUBLIC	??_C@_0BI@FPCJBOMC@IP?3?5?$CFs?$DL?5Route?5count?3?5?$CFd?$AA@ ; `string'
EXTRN	?DebugLog@@YAXPBDZZ:PROC			; DebugLog
EXTRN	?Run@aNetTraceRoute@@QAE_NAAVaIPv4Address@@GI@Z:PROC ; aNetTraceRoute::Run
EXTRN	??0aNetTraceRoute@@QAE@XZ:PROC			; aNetTraceRoute::aNetTraceRoute
;	COMDAT ??_C@_08OJNMODJH@?7?$FL?$CFd?$FN?5?$CFs?$AA@
CONST	SEGMENT
??_C@_08OJNMODJH@?7?$FL?$CFd?$FN?5?$CFs?$AA@ DB 09H, '[%d] %s', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BI@FPCJBOMC@IP?3?5?$CFs?$DL?5Route?5count?3?5?$CFd?$AA@
CONST	SEGMENT
??_C@_0BI@FPCJBOMC@IP?3?5?$CFs?$DL?5Route?5count?3?5?$CFd?$AA@ DB 'IP: %s'
	DB	'; Route count: %d', 00H			; `string'
CONST	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z$1
__ehfuncinfo$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	01H
; Function compile flags: /Ogtpy
; File d:\source code\stgm\stnet.cpp
xdata$x	ENDS
;	COMDAT ?Entry@gzPlayerTraceRoute@@UAEHPAX@Z
_TEXT	SEGMENT
$T63807 = -508						; size = 8
_traceRoute$ = -500					; size = 488
__$EHRec$ = -12						; size = 12
___formal$ = 8						; size = 4
?Entry@gzPlayerTraceRoute@@UAEHPAX@Z PROC		; gzPlayerTraceRoute::Entry, COMDAT
; _this$ = ecx

; 250  : {

	push	-1
	push	__ehhandler$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z
	mov	eax, DWORD PTR fs:0
	push	eax
	mov	DWORD PTR fs:0, esp
	sub	esp, 496				; 000001f0H
	push	esi
	mov	esi, ecx

; 251  : 	aNetTraceRoute traceRoute;

	lea	ecx, DWORD PTR _traceRoute$[esp+512]
	call	??0aNetTraceRoute@@QAE@XZ		; aNetTraceRoute::aNetTraceRoute

; 252  : 	traceRoute.Run(this->m_dst, 30, 1000);

	push	1000					; 000003e8H
	push	30					; 0000001eH
	add	esi, 20					; 00000014H
	push	esi
	lea	ecx, DWORD PTR _traceRoute$[esp+524]
	mov	DWORD PTR __$EHRec$[esp+532], 0
	call	?Run@aNetTraceRoute@@QAE_NAAVaIPv4Address@@GI@Z ; aNetTraceRoute::Run

; 253  : 	DebugLog("IP: %s; Route count: %d", this->m_dst.Address().GetString(), traceRoute.GetRoute().Count());

	lea	eax, DWORD PTR $T63807[esp+512]
	push	eax
	mov	ecx, esi
	call	?Address@aIPv4Address@@QAE?AVaString@@XZ ; aIPv4Address::Address
	mov	eax, DWORD PTR [eax+4]
	test	eax, eax
	mov	BYTE PTR __$EHRec$[esp+520], 1
	je	SHORT $LN14@Entry
	mov	eax, DWORD PTR [eax]
	jmp	SHORT $LN15@Entry
$LN14@Entry:
	xor	eax, eax
$LN15@Entry:
	mov	ecx, DWORD PTR _traceRoute$[esp+992]
	push	ecx
	push	eax
	push	OFFSET ??_C@_0BI@FPCJBOMC@IP?3?5?$CFs?$DL?5Route?5count?3?5?$CFd?$AA@
	call	?DebugLog@@YAXPBDZZ			; DebugLog
	add	esp, 12					; 0000000cH
	lea	ecx, DWORD PTR $T63807[esp+512]
	mov	BYTE PTR __$EHRec$[esp+520], 0
	call	??1aStringBase@@UAE@XZ			; aStringBase::~aStringBase

; 254  : 	for (unsigned int i = 0; i < traceRoute.GetRoute().Count(); i++)

	xor	eax, eax
	cmp	DWORD PTR _traceRoute$[esp+992], eax
	jbe	SHORT $LN1@Entry
	push	edi
	xor	edi, edi
	npad	4
$LL3@Entry:

; 255  : 		DebugLog("\t[%d] %s", i + 1, traceRoute.GetRoute()[i].ip);

	mov	edx, DWORD PTR _traceRoute$[esp+988]
	lea	esi, DWORD PTR [eax+1]
	lea	eax, DWORD PTR [edi+edx]
	push	eax
	push	esi
	push	OFFSET ??_C@_08OJNMODJH@?7?$FL?$CFd?$FN?5?$CFs?$AA@
	call	?DebugLog@@YAXPBDZZ			; DebugLog
	mov	eax, esi
	add	esp, 12					; 0000000cH
	add	edi, 24					; 00000018H
	cmp	eax, DWORD PTR _traceRoute$[esp+996]
	jb	SHORT $LL3@Entry
	pop	edi
$LN1@Entry:

; 256  : 	return 0;

	lea	ecx, DWORD PTR _traceRoute$[esp+512]
	mov	DWORD PTR __$EHRec$[esp+520], -1
	call	??1aNetTraceRoute@@UAE@XZ

; 257  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+512]
	xor	eax, eax
	pop	esi
	mov	DWORD PTR fs:0, ecx
	add	esp, 508				; 000001fcH
	ret	4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z$0:
	lea	ecx, DWORD PTR _traceRoute$[ebp]
	jmp	??1aNetTraceRoute@@UAE@XZ
__unwindfunclet$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z$1:
	lea	ecx, DWORD PTR $T63807[ebp]
	jmp	??1aString@@UAE@XZ
__ehhandler$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z:
	mov	eax, OFFSET __ehfuncinfo$?Entry@gzPlayerTraceRoute@@UAEHPAX@Z
	jmp	___CxxFrameHandler3
text$x	ENDS
?Entry@gzPlayerTraceRoute@@UAEHPAX@Z ENDP		; gzPlayerTraceRoute::Entry
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
