;
; +-------------------------------------------------------------------------+
; |   This file	has been generated by The Interactive Disassembler (IDA)    |
; |	      Copyright	(c) 2011 Hex-Rays, <support@hex-rays.com>	    |
; |			 License info: 48-327F-7274-B7			    |
; |			       ESET spol. s r.o.			    |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |   This file	has been generated by The Interactive Disassembler (IDA)    |
; |	      Copyright	(c) 2011 Hex-Rays, <support@hex-rays.com>	    |
; |			 License info: 48-327F-7274-B7			    |
; |			       ESET spol. s r.o.			    |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	80C442F8FF5C46F0EB35BAFA5F1DD7B0
; Input	CRC32 :	FD599005

; File Name   :	Z:\home\gdc\dd\source\orangebox\bin\engine_srv.so
; Format      :	ELF for	Intel 386 (Shared object)
; Needed Library 'libtier0_srv.so'
; Needed Library 'libvstdlib_srv.so'
; Needed Library 'libsteam_api.so'
; Needed Library 'libm.so.6'
; Needed Library 'libdl.so.2'
; Needed Library 'libstdc++.so.6'
; Needed Library 'libpthread.so.0'
; Needed Library 'ld-linux.so.2'
; Needed Library 'libc.so.6'
;

		.686p
		.mmx
		.model flat
.intel_syntax noprefix

; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Execute
_init		segment	dword public 'CODE' use32
		assume cs:_init
		;org 60D6Ch
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; =============== S U B	R O U T	I N E =======================================


		public _init_proc
_init_proc	proc near
		push	ebx		; _init
		sub	esp, 8
		call	$+5
		pop	ebx
		add	ebx, 211B2Bh
		mov	eax, ds:(__gmon_start___ptr - 2728A0h)[ebx]
		test	eax, eax
		jz	short loc_60D8B
		call	___gmon_start__

loc_60D8B:				; CODE XREF: _init_proc+18j
		call	frame_dummy
		call	__do_global_ctors_aux
		add	esp, 8
		pop	ebx
		retn
_init_proc	endp

_init		ends

; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Execute
_plt		segment	dword public 'CODE' use32
		assume cs:_plt
		;org 60D9Ch
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 4 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION ___cxa_finalize. PRESS KEYPAD "+"	TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION _dl_iterate_phdr.	PRESS KEYPAD "+" TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+"	TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION _pthread_mutex_unlock. PRESS KEYPAD "+" TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION _pthread_mutex_lock. PRESS KEYPAD	"+" TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION ___xmknod. PRESS KEYPAD "+" TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION _abort. PRESS KEYPAD "+" TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION _pthread_once. PRESS KEYPAD "+" TO EXPAND]
		dw ?
		dd 2 dup(?)
; [00000006 BYTES: COLLAPSED FUNCTION ___gmon_start__. PRESS KEYPAD "+"	TO EXPAND]
		dw ?
		dd 2 dup(?)
_plt		ends

; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Execute
_text		segment	para public 'CODE' use32
		assume cs:_text
		;org 60E50h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

		public _GLOBAL__sub_I__ZNK13CLC_VoiceData8ToStringEv
_GLOBAL__sub_I__ZNK13CLC_VoiceData8ToStringEv proc near	; DATA XREF: .ctors:00272494o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin, eax ; vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid,	eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid+4, eax
		retn
_GLOBAL__sub_I__ZNK13CLC_VoiceData8ToStringEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z17CreateBSPTreeDatav proc near	; DATA XREF: .ctors:00272498o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_0, eax ; vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_0+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_0, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_0+4, eax
		retn
_GLOBAL__sub_I__Z17CreateBSPTreeDatav endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z12GetNodeLeveli proc near ; DATA XREF:	.ctors:0027249Co
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_1, eax ; vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_1+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_1, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_1+4, eax
		retn
_GLOBAL__sub_I__Z12GetNodeLeveli endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z24IntersectRayWithTriangleRK5Ray_tRK6VectorS4_S4_b proc near
					; DATA XREF: .ctors:002724A0o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_2, edx ; vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_2+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_2, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_2+4, eax
		mov	dword ptr ds:_ZL11vec4_origin, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin+4, edx
		mov	dword ptr ds:_ZL11vec4_origin+8, edx
		mov	dword ptr ds:_ZL11vec4_origin+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid,	eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid+0Ch, eax
		retn
_GLOBAL__sub_I__Z24IntersectRayWithTriangleRK5Ray_tRK6VectorS4_S4_b endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_DispCollTriCache proc near ; DATA XREF: .ctors:002724A4o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_3, eax ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_3+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_3, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_3+4, eax
		mov	dword ptr [esp+4], offset _ZTI11IVModelInfo ; `typeinfo	for'IVModelInfo
		mov	dword ptr [esp], offset	g_DispCollTriCache
		call	_ZN16CDataManagerBaseC2Ej ; CDataManagerBase::CDataManagerBase(uint)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DispCollTriCache
		mov	dword ptr [esp], offset	_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexED2Ev ;	CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>::~CDataManager()
		mov	dword ptr ds:g_DispCollTriCache, (offset _ZTV12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE+8)
		mov	dword ptr ds:g_DispCollTriCache+4Ch, 0
		mov	dword ptr ds:g_DispCollTriCache+50h, 0
		call	__cxa_atexit
		mov	byte ptr [esp+14h], 0
		mov	byte ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 200h
		mov	dword ptr [esp], offset	g_DispCollPlaneIndexHash
		call	_ZN8CUtlHashI20DispCollPlaneIndex_t20CPlaneIndexHashFuncsS1_EC2EiiiS1_S1_ ; CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DispCollPlaneIndexHash
		mov	dword ptr [esp], offset	_ZN8CUtlHashI20DispCollPlaneIndex_t20CPlaneIndexHashFuncsS1_ED2Ev ; CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::~CUtlHash()
		call	__cxa_atexit
		mov	eax, 3D000000h
		mov	dword ptr ds:_ZL12s_CacheMutex,	0 ; s_CacheMutex
		mov	dword ptr ds:_ZL12s_CacheMutex+4, 0
		mov	dword ptr ds:_ZL22g_Vec3DispCollEpsilons, eax ;	g_Vec3DispCollEpsilons
		mov	dword ptr ds:_ZL22g_Vec3DispCollEpsilons+4, eax
		mov	dword ptr ds:_ZL22g_Vec3DispCollEpsilons+8, eax
		leave
		retn
_GLOBAL__sub_I_g_DispCollTriCache endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_EdgeDims proc near	; DATA XREF: .ctors:002724A8o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_4, eax ; vec2_origin
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_4+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_4, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_4+4, eax
		mov	dword ptr ds:_ZL17g_NodeChildLookup, 0 ; g_NodeChildLookup
		mov	dword ptr ds:_ZL17g_NodeChildLookup+4, 0
		mov	dword ptr ds:_ZL17g_NodeChildLookup+8, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+0Ch, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+10h, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+14h, 0
		mov	dword ptr ds:_ZL17g_NodeChildLookup+18h, 2
		mov	dword ptr ds:_ZL17g_NodeChildLookup+1Ch, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+20h, 0
		mov	dword ptr ds:_ZL17g_NodeChildLookup+24h, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+28h, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+2Ch, 2
		mov	dword ptr ds:_ZL17g_NodeChildLookup+30h, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+34h, 1
		mov	dword ptr ds:_ZL17g_NodeChildLookup+38h, 2
		mov	dword ptr ds:_ZL17g_NodeChildLookup+3Ch, 2
		mov	dword ptr ds:_ZL16g_NodeTriWinding, 0 ;	g_NodeTriWinding
		mov	dword ptr ds:_ZL16g_NodeTriWinding+4, 1
		mov	dword ptr ds:_ZL16g_NodeTriWinding+8, 0
		mov	dword ptr ds:_ZL16g_NodeTriWinding+0Ch,	0
		mov	dword ptr ds:_ZL16g_NodeTriWinding+10h,	1
		mov	dword ptr ds:_ZL16g_NodeTriWinding+14h,	0
		mov	dword ptr ds:_ZL16g_NodeTriWinding+18h,	2
		mov	dword ptr ds:_ZL16g_NodeTriWinding+1Ch,	0
		mov	dword ptr ds:_ZL16g_NodeTriWinding+20h,	2
		mov	dword ptr ds:_ZL16g_NodeTriWinding+24h,	1
		mov	dword ptr ds:_ZL16g_NodeTriWinding+28h,	2
		mov	dword ptr ds:_ZL16g_NodeTriWinding+2Ch,	2
		mov	dword ptr ds:_ZL16g_NodeTriWinding+30h,	1
		pop	ebp
		mov	dword ptr ds:_ZL16g_NodeTriWinding+34h,	2
		mov	dword ptr ds:_ZL16g_NodeTriWinding+38h,	0
		mov	dword ptr ds:_ZL16g_NodeTriWinding+3Ch,	2
		mov	dword ptr ds:_ZL16g_NodeTriWinding+40h,	0
		mov	dword ptr ds:_ZL16g_NodeTriWinding+44h,	1
		retn
_GLOBAL__sub_I_g_EdgeDims endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi proc near ; DATA XREF: .ctors:002724ACo
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, offset _ZL14g_VertInfo_5x5	; g_VertInfo_5x5
		sub	esp, 14h
		mov	dword ptr ds:_ZL11vec2_origin_5, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_5+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_5, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_5+4, 7F7FFFFFh
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul, 1	; g_ChildNodeIndexMul
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul+2,	1
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul+4,	0FFFFh
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul+6,	1
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul+8,	0FFFFh
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul+0Ah, 0FFFFh
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul+0Ch, 1
		mov	word ptr ds:_ZL19g_ChildNodeIndexMul+0Eh, 0FFFFh
		mov	word ptr ds:_ZL23g_ChildNodeDependencies, 1 ; g_ChildNodeDependencies
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+2, 0
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+4, 0
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+6, 1
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+8, 0
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+0Ah, 1
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+0Ch, 0FFFFh
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+0Eh, 0
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+10h, 0FFFFh
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+12h, 0
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+14h, 0
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+16h, 0FFFFh
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+18h, 0
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+1Ah, 0FFFFh
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+1Ch, 1
		mov	word ptr ds:_ZL23g_ChildNodeDependencies+1Eh, 0
		mov	word ptr ds:g_TesselateVerts, 1
		mov	word ptr ds:g_TesselateVerts+2,	0FFFFh
		mov	word ptr ds:g_TesselateVerts+4,	3
		mov	word ptr ds:g_TesselateVerts+6,	0
		mov	word ptr ds:g_TesselateVerts+8,	0FFFFh
		mov	word ptr ds:g_TesselateVerts+0Ah, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+0Ch, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+0Eh, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+10h, 2
		mov	word ptr ds:g_TesselateVerts+12h, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+14h, 0
		mov	word ptr ds:g_TesselateVerts+16h, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+18h, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+1Ah, 1
		mov	word ptr ds:g_TesselateVerts+1Ch, 1
		mov	word ptr ds:g_TesselateVerts+1Eh, 0
		mov	word ptr ds:g_TesselateVerts+20h, 1
		mov	word ptr ds:g_TesselateVerts+22h, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+24h, 1
		mov	word ptr ds:g_TesselateVerts+26h, 1
		mov	word ptr ds:g_TesselateVerts+28h, 0
		mov	word ptr ds:g_TesselateVerts+2Ah, 1
		mov	word ptr ds:g_TesselateVerts+2Ch, 0
		mov	word ptr ds:g_TesselateVerts+2Eh, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+30h, 1
		mov	word ptr ds:g_TesselateVerts+32h, 0FFFFh
		mov	word ptr ds:g_TesselateVerts+34h, 3
		nop

loc_61370:				; CODE XREF: _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+211j
		mov	[esp], ebx
		add	ebx, 2Ah
		call	_ZN9CVertInfoC2Ev ; CVertInfo::CVertInfo(void)
		cmp	ebx, offset word_27947A
		jnz	short loc_61370
		mov	dword ptr ds:_ZL15g_PowerInfo_5x5, offset _ZL14g_VertInfo_5x5 ;	g_PowerInfo_5x5
		mov	ebx, offset _ZL14g_VertInfo_9x9	; g_VertInfo_9x9
		mov	dword ptr ds:_ZL15g_PowerInfo_5x5+4, offset _ZL15g_SideVerts_5x5 ; g_SideVerts_5x5
		mov	dword ptr ds:_ZL15g_PowerInfo_5x5+8, offset _ZL16g_ChildVerts_5x5 ; g_ChildVerts_5x5
		mov	dword ptr ds:_ZL15g_PowerInfo_5x5+0Ch, offset _ZL21g_SideVertCorners_5x5 ; g_SideVertCorners_5x5
		mov	dword ptr ds:_ZL15g_PowerInfo_5x5+10h, offset _ZL16g_ErrorEdges_5x5 ; g_ErrorEdges_5x5
		mov	dword ptr ds:_ZL15g_PowerInfo_5x5+14h, offset _ZL14g_TriInfos_5x5 ; g_TriInfos_5x5
		lea	esi, [esi+0]

loc_613C8:				; CODE XREF: _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+269j
		mov	[esp], ebx
		add	ebx, 2Ah
		call	_ZN9CVertInfoC2Ev ; CVertInfo::CVertInfo(void)
		cmp	ebx, offset word_27A7EA
		jnz	short loc_613C8
		mov	dword ptr ds:_ZL15g_PowerInfo_9x9, offset _ZL14g_VertInfo_9x9 ;	g_PowerInfo_9x9
		mov	ebx, offset _ZL16g_VertInfo_17x17 ; g_VertInfo_17x17
		mov	dword ptr ds:_ZL15g_PowerInfo_9x9+4, offset _ZL15g_SideVerts_9x9 ; g_SideVerts_9x9
		mov	dword ptr ds:_ZL15g_PowerInfo_9x9+8, offset _ZL16g_ChildVerts_9x9 ; g_ChildVerts_9x9
		mov	dword ptr ds:_ZL15g_PowerInfo_9x9+0Ch, offset _ZL21g_SideVertCorners_9x9 ; g_SideVertCorners_9x9
		mov	dword ptr ds:_ZL15g_PowerInfo_9x9+10h, offset _ZL16g_ErrorEdges_9x9 ; g_ErrorEdges_9x9
		mov	dword ptr ds:_ZL15g_PowerInfo_9x9+14h, offset _ZL14g_TriInfos_9x9 ; g_TriInfos_9x9
		lea	esi, [esi+0]

loc_61420:				; CODE XREF: _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+2C1j
		mov	[esp], ebx
		add	ebx, 2Ah
		call	_ZN9CVertInfoC2Ev ; CVertInfo::CVertInfo(void)
		cmp	ebx, offset word_27EB2A
		jnz	short loc_61420
		mov	dword ptr ds:_ZL17g_PowerInfo_17x17, offset _ZL16g_VertInfo_17x17 ; g_PowerInfo_17x17
		xor	ebx, ebx
		mov	dword ptr ds:_ZL17g_PowerInfo_17x17+4, offset _ZL17g_SideVerts_17x17 ; g_SideVerts_17x17
		mov	dword ptr ds:_ZL17g_PowerInfo_17x17+8, offset _ZL18g_ChildVerts_17x17 ;	g_ChildVerts_17x17
		mov	dword ptr ds:_ZL17g_PowerInfo_17x17+0Ch, offset	_ZL23g_SideVertCorners_17x17 ; g_SideVertCorners_17x17
		mov	dword ptr ds:_ZL17g_PowerInfo_17x17+10h, offset	_ZL18g_ErrorEdges_17x17	; g_ErrorEdges_17x17
		mov	dword ptr ds:_ZL17g_PowerInfo_17x17+14h, offset	_ZL16g_TriInfos_17x17 ;	g_TriInfos_17x17

loc_61471:				; CODE XREF: _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+31Ej
		mov	eax, g_PowerInfos[ebx*4]
		test	eax, eax
		jz	short loc_61488
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_Z13InitPowerInfoP10CPowerInfoi	; InitPowerInfo(CPowerInfo *,int)

loc_61488:				; CODE XREF: _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+30Aj
		add	ebx, 1
		cmp	ebx, 5
		jnz	short loc_61471
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_s_ClientElementNames proc near ;	DATA XREF: .ctors:002724B0o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_6, eax ; vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_6+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_6, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_6+4, eax
		mov	dword ptr ds:g_StandardRecvProxies, offset _Z21RecvProxy_Int32ToInt8PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt8(CRecvProxyData  const*,void	*,void *)
		mov	dword ptr ds:g_StandardRecvProxies+4, offset _Z22RecvProxy_Int32ToInt16PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt16(CRecvProxyData	const*,void *,void *)
		mov	dword ptr ds:g_StandardRecvProxies+8, offset _Z22RecvProxy_Int32ToInt32PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt32(CRecvProxyData	const*,void *,void *)
		mov	dword ptr ds:g_StandardRecvProxies+0Ch,	offset _Z22RecvProxy_FloatToFloatPK14CRecvProxyDataPvS2_ ; RecvProxy_FloatToFloat(CRecvProxyData  const*,void *,void *)
		mov	dword ptr ds:g_StandardRecvProxies+10h,	offset _Z24RecvProxy_VectorToVectorPK14CRecvProxyDataPvS2_ ; RecvProxy_VectorToVector(CRecvProxyData  const*,void *,void *)
		retn
_GLOBAL__sub_I_s_ClientElementNames endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_s_ElementNames proc near	; DATA XREF: .ctors:002724B4o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_7, eax ; vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_7+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_7, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_7+4, eax
		mov	dword ptr ds:g_StandardSendProxies, offset _Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int8ToInt32(SendProp  const*,void	 const*,void  const*,DVariant *,int,int)
		mov	dword ptr ds:g_StandardSendProxies+4, offset _Z22SendProxy_Int16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int16ToInt32(SendProp	const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr ds:g_StandardSendProxies+8, offset _Z22SendProxy_Int32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int32ToInt32(SendProp	const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr ds:g_StandardSendProxies+0Ch,	offset _Z22SendProxy_UInt8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt8ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr ds:g_StandardSendProxies+10h,	offset _Z23SendProxy_UInt16ToInt32PK8SendPropPKvS3_P8DVariantii	; SendProxy_UInt16ToInt32(SendProp  const*,void	 const*,void  const*,DVariant *,int,int)
		mov	dword ptr ds:g_StandardSendProxies+14h,	offset _Z23SendProxy_UInt32ToInt32PK8SendPropPKvS3_P8DVariantii	; SendProxy_UInt32ToInt32(SendProp  const*,void	 const*,void  const*,DVariant *,int,int)
		mov	dword ptr ds:g_StandardSendProxies+18h,	offset _Z22SendProxy_FloatToFloatPK8SendPropPKvS3_P8DVariantii ; SendProxy_FloatToFloat(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr ds:g_StandardSendProxies+1Ch,	offset _Z24SendProxy_VectorToVectorPK8SendPropPKvS3_P8DVariantii ; SendProxy_VectorToVector(SendProp  const*,void  const*,void	const*,DVariant	*,int,int)
		mov	dword ptr ds:g_StandardSendProxies+20h,	offset _Z30SendProxy_DataTableToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ; SendProxy_DataTableToDataTable(SendProp  const*,void  const*,void	const*,CSendProxyRecipients *,int)
		mov	dword ptr ds:g_StandardSendProxies+24h,	offset _Z28SendProxy_SendLocalDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ; SendProxy_SendLocalDataTable(SendProp  const*,void  const*,void  const*,CSendProxyRecipients	*,int)
		mov	dword ptr ds:g_StandardSendProxies+28h,	offset _ZL30s_pNonModifiedPointerProxyHead ; s_pNonModifiedPointerProxyHead
		retn
_GLOBAL__sub_I_s_ElementNames endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z21AllocateStringHelper2PKcPc proc near	; DATA XREF: .ctors:002724B8o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_8, eax ; vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_8+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_8, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_8+4, eax
		retn
_GLOBAL__sub_I__Z21AllocateStringHelper2PKcPc endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z25RecvProxy_UtlVectorLengthPK14CRecvProxyDataPvS2_ proc near
					; DATA XREF: .ctors:002724BCo
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_9, eax ; vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_9+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_9, eax ;	vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_9+4, eax
		retn
_GLOBAL__sub_I__Z25RecvProxy_UtlVectorLengthPK14CRecvProxyDataPvS2_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z26SendProxy_UtlVectorElementPK8SendPropPKvS3_P8DVariantii proc	near
					; DATA XREF: .ctors:002724C0o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_10, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_10+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_10, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_10+4, eax
		retn
_GLOBAL__sub_I__Z26SendProxy_UtlVectorElementPK8SendPropPKvS3_P8DVariantii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z19Editor_BeginSessionPKcib proc near ;	DATA XREF: .ctors:002724C4o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_11, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_11+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_11, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_11+4, eax
		retn
_GLOBAL__sub_I__Z19Editor_BeginSessionPKcib endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z9ParseFilePKcPcPbP14characterset_tj proc near ; DATA XREF: .ctors:002724C8o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_12, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_12+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_12, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_12+4, eax
		retn
_GLOBAL__sub_I__Z9ParseFilePKcPcPbP14characterset_tj endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z28FileSystem_UseVProjectBinDirb proc near ; DATA XREF:	.ctors:002724CCo
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_13, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_13+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_13, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_13+4, eax
		retn
_GLOBAL__sub_I__Z28FileSystem_UseVProjectBinDirb endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z20GenerateLumpFileNamePKcPcii proc near ; DATA	XREF: .ctors:002724D0o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_14, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_14+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_14, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_14+4, eax
		retn
_GLOBAL__sub_I__Z20GenerateLumpFileNamePKcPcii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z16InstanceRegistryPKc proc near ; DATA	XREF: .ctors:002724D4o
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	byte ptr ds:_ZL10g_Registry+4, 0
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10g_Registry ; g_Registry
		mov	dword ptr [esp], offset	_ZN9CRegistryD2Ev ; CRegistry::~CRegistry()
		mov	dword ptr ds:_ZL10g_Registry, (offset _ZTV9CRegistry+8)	; g_Registry
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z16InstanceRegistryPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_scratchpad3d_cpp	proc near ; DATA XREF: .ctors:002724D8o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_15, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_15+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_15, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_15+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_0, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_0+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_0+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_0+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_0, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_0+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_0+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_0+0Ch, eax
		retn
_GLOBAL__sub_I_scratchpad3d_cpp	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN15CEmphasisSample11SetSelectedEb proc	near ; DATA XREF: .ctors:002724DCo
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_16, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_16+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_16, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_16+4, eax
		retn
_GLOBAL__sub_I__ZN15CEmphasisSample11SetSelectedEb endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZNK11studiohdr_t9pAnimdescEi proc near ; DATA XREF: .ctors:002724E0o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_17, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_17+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_17, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_17+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_1, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_1+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_1+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_1+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_1, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_1+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_1+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_1+0Ch, eax
		mov	dword ptr [esp+10h], offset a1ShowHitches2S ; "1 - show	hitches	, 2 - show stalls"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMod_load_shows ; "mod_load_showstall"
		mov	dword ptr [esp], offset	_ZL18mod_load_showstall	; mod_load_showstall
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18mod_load_showstall ; mod_load_showstall
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZNK11studiohdr_t9pAnimdescEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_StdAllocator proc near	; DATA XREF: .ctors:002724E4o
		push	ebp
		mov	ds:g_StdAllocator, (offset _ZTV13VStdAllocator+8)
		mov	ebp, esp
		pop	ebp
		retn
_GLOBAL__sub_I_g_StdAllocator endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN10TTreeStateC2Ev proc	near ; DATA XREF: .ctors:002724E8o
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZN16CThreadLocalBaseC2Ev ; CThreadLocalBase::CThreadLocalBase(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10lasterrorZ ; lasterrorZ
		mov	dword ptr [esp], offset	_ZN15CThreadLocalIntIjED2Ev ; CThreadLocalInt<uint>::~CThreadLocalInt()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN10TTreeStateC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_snd_posix_cpp proc near	; DATA XREF: .ctors:002724ECo
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_18, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_18+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_18, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_18+4, eax
		retn
_GLOBAL__sub_I_snd_posix_cpp endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN9CAutoGainC2Ev proc near ; DATA XREF:	.ctors:002724F0o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_19, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_19+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_19, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_19+4, eax
		retn
_GLOBAL__sub_I__ZN9CAutoGainC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_Sentences proc	near	; DATA XREF: .ctors:002724F4o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_20, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_20+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_Sentences
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI10sentence_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL12vec2_invalid_20, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_20+4, eax
		mov	dword ptr ds:g_Sentences, 0
		mov	dword ptr ds:g_Sentences+4, 0
		mov	dword ptr ds:g_Sentences+8, 0
		mov	dword ptr ds:g_Sentences+0Ch, 0
		mov	dword ptr ds:g_Sentences+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aReloadSentence ; "Reload sentences.txt file"
		mov	dword ptr [esp+8], offset _ZL10VOX_Reloadv ; VOX_Reload(void)
		mov	dword ptr [esp+4], offset aVox_reload ;	"vox_reload"
		mov	dword ptr [esp], offset	_ZL10vox_reload	; vox_reload
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10vox_reload ; vox_reload
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10g_GroupLRU ; g_GroupLRU
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIh10CUtlMemoryIhiEED2Ev ; CUtlVector<uchar,CUtlMemory<uchar,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL10g_GroupLRU, 0	; g_GroupLRU
		mov	dword ptr ds:_ZL10g_GroupLRU+4,	0
		mov	dword ptr ds:_ZL10g_GroupLRU+8,	0
		mov	dword ptr ds:_ZL10g_GroupLRU+0Ch, 0
		mov	dword ptr ds:_ZL10g_GroupLRU+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14g_SentenceFile ;	g_SentenceFile
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL14g_SentenceFile, 0 ; g_SentenceFile
		mov	dword ptr ds:_ZL14g_SentenceFile+4, 0
		mov	dword ptr ds:_ZL14g_SentenceFile+8, 0
		mov	dword ptr ds:_ZL14g_SentenceFile+0Ch, 0
		mov	dword ptr ds:_ZL14g_SentenceFile+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_SentenceGroups
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI15sentencegroup_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::~CUtlVector()
		mov	dword ptr ds:g_SentenceGroups, 0
		mov	dword ptr ds:g_SentenceGroups+4, 0
		mov	dword ptr ds:g_SentenceGroups+8, 0
		mov	dword ptr ds:g_SentenceGroups+0Ch, 0
		mov	dword ptr ds:g_SentenceGroups+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], 100h
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZN15sentencegroup_t13s_SymbolTableE ; sentencegroup_t::s_SymbolTable
		call	_ZN15CUtlSymbolTableC2Eiib ; CUtlSymbolTable::CUtlSymbolTable(int,int,bool)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZN15sentencegroup_t13s_SymbolTableE ; sentencegroup_t::s_SymbolTable
		mov	dword ptr [esp], offset	_ZN15CUtlSymbolTableD2Ev ; CUtlSymbolTable::~CUtlSymbolTable()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset dword_1EC58C
		mov	dword ptr [esp+4], offset aSnd_vox_global ; "snd_vox_globaltimeout"
		mov	dword ptr [esp], offset	snd_vox_globaltimeout
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_vox_globaltimeout
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset dword_1EC58C
		mov	dword ptr [esp+4], offset aSnd_vox_seqtim ; "snd_vox_seqtimetout"
		mov	dword ptr [esp], offset	snd_vox_seqtimeout
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_vox_seqtimeout
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset dword_1EC58C
		mov	dword ptr [esp+4], offset aSnd_vox_sectim ; "snd_vox_sectimetout"
		mov	dword ptr [esp], offset	snd_vox_sectimeout
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_vox_sectimeout
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowsSentenceN ; "Shows sentence name for sentences which"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSnd_vox_captio ; "snd_vox_captiontrace"
		mov	dword ptr [esp], offset	snd_vox_captiontrace
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_vox_captiontrace
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_Sentences endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN25CBaseAutoCompleteFileList18AutoCompletionFuncEPKcPA64_c proc near
					; DATA XREF: .ctors:002724F8o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_21, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_21+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_21, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_21+4, eax
		retn
_GLOBAL__sub_I__ZN25CBaseAutoCompleteFileList18AutoCompletionFuncEPKcPA64_c endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_sv_namechange_cooldown_seconds proc near	; DATA XREF: .ctors:002724FCo
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_22, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_22+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_2, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_2+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_2+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_2+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_22, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_22+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_2, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_2+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_2+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_2+0Ch, eax
		mov	dword ptr [esp+10h], offset aWhenAClientNam ; "When a client name change is received, "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a20_0	; "20.0"
		mov	dword ptr [esp+4], offset aSv_namechange_ ; "sv_namechange_cooldown_seconds"
		mov	dword ptr [esp], offset	sv_namechange_cooldown_seconds
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_namechange_cooldown_seconds
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfNonzeroTheSe ; "If nonzero, the server will dump	a nets"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_netspike_on ; "sv_netspike_on_reliable_snapshot_overfl"...
		mov	dword ptr [esp], offset	sv_netspike_on_reliable_snapshot_overflow
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_netspike_on_reliable_snapshot_overflow
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_sv_namechange_cooldown_seconds endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z21UpdateNameFromSteamIDP7IConVarP8CSteamID proc near
					; DATA XREF: .ctors:00272500o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 38h
		mov	dword ptr ds:_ZL11vec2_origin_23, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_23+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_3, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_3+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_3+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_3+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_23, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_23+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_3, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_3+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_3+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_3+0Ch, eax
		mov	dword ptr [esp+20h], 41A00000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 3FC00000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aDelayInSeconds ; "Delay in	seconds	before the client will"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1006+3)
		mov	dword ptr [esp+4], offset aCl_resend ; "cl_resend"
		mov	dword ptr [esp], offset	cl_resend
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_resend
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _Z18CL_NameCvarChangedP7IConVarPKcf	; CL_NameCvarChanged(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aCurrentUserNam ; "Current user name"
		mov	dword ptr [esp+0Ch], 10000680h
		mov	dword ptr [esp+8], offset aUnnamed ; "unnamed"
		mov	dword ptr [esp+4], offset aName	; "name"
		mov	dword ptr [esp], offset	cl_name
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_name
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aCurrentServerA ; "Current server access password"
		mov	dword ptr [esp+0Ch], 20020080h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aPassword ; "password"
		mov	dword ptr [esp], offset	password
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset password
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aInterpolateEnt ; "Interpolate entities on the client."
		mov	dword ptr [esp+0Ch], 202h
		mov	dword ptr [esp+8], (offset a1_0+1)
		mov	dword ptr [esp+4], offset aCl_interpolate ; "cl_interpolate"
		mov	dword ptr [esp], offset	cl_interpolate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_interpolate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _Z16CL_ClanIdChangedP7IConVarPKcf ;	CL_ClanIdChanged(IConVar *,char	 const*,float)
		mov	dword ptr [esp+10h], offset aCurrentClanIdF ; "Current clan ID for name	decoration"
		mov	dword ptr [esp+0Ch], 290h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCl_clanid ; "cl_clanid"
		mov	dword ptr [esp], offset	cl_clanid
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clanid
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z21UpdateNameFromSteamIDP7IConVarP8CSteamID endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_svInstanceBaselineMutex proc near ; DATA XREF:	.ctors:00272504o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_24, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_24+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_4, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_4+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_4+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_4+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_24, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_24+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_4, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_4+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_4+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_4+0Ch, eax
		mov	dword ptr [esp+10h], offset aMaximumQueries ; "Maximum queries per second to respond t"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a3_0 ; "3.0"
		mov	dword ptr [esp+4], offset aSv_max_queries ; "sv_max_queries_sec"
		mov	dword ptr [esp], offset	_ZL18sv_max_queries_sec	; sv_max_queries_sec
		mov	dword ptr ds:g_svInstanceBaselineMutex,	0
		mov	dword ptr ds:g_svInstanceBaselineMutex+4, 0
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18sv_max_queries_sec ; sv_max_queries_sec
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aWindowOverWhic ; "Window over which to average queries pe"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a27030+3)
		mov	dword ptr [esp+4], offset aSv_max_queri_0 ; "sv_max_queries_window"
		mov	dword ptr [esp], offset	_ZL21sv_max_queries_window ; sv_max_queries_window
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21sv_max_queries_window ; sv_max_queries_window
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumQueri_0 ; "Maximum queries per second to respond t"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a3000	; "3000"
		mov	dword ptr [esp+4], offset aSv_max_queri_1 ; "sv_max_queries_sec_global"
		mov	dword ptr [esp], offset	_ZL25sv_max_queries_sec_global ; sv_max_queries_sec_global
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25sv_max_queries_sec_global ; sv_max_queries_sec_global
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumConnect ; "Maximum connections per second to respo"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a32_0+1)
		mov	dword ptr [esp+4], offset aSv_max_connect ; "sv_max_connects_sec"
		mov	dword ptr [esp], offset	_ZL19sv_max_connects_sec ; sv_max_connects_sec
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19sv_max_connects_sec ; sv_max_connects_sec
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aWindowOverWh_0 ; "Window over which to average connection"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a0_4+2)
		mov	dword ptr [esp+4], offset aSv_max_conne_0 ; "sv_max_connects_window"
		mov	dword ptr [esp], offset	_ZL22sv_max_connects_window ; sv_max_connects_window
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL22sv_max_connects_window ;	sv_max_connects_window
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumConne_0 ; "Maximum connections per second to respo"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_max_conne_1 ; "sv_max_connects_sec_global"
		mov	dword ptr [esp], offset	_ZL26sv_max_connects_sec_global	; sv_max_connects_sec_global
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26sv_max_connects_sec_global ; sv_max_connects_sec_global
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], offset _ZL25sv_max_queries_sec_global ; sv_max_queries_sec_global
		mov	dword ptr [esp+8], offset _ZL21sv_max_queries_window ; sv_max_queries_window
		mov	dword ptr [esp+4], offset _ZL18sv_max_queries_sec ; sv_max_queries_sec
		mov	dword ptr [esp], offset	_ZL18s_queryRateChecker	; s_queryRateChecker
		call	_ZN12CIPRateLimitC2EP6ConVarS1_S1_ ; CIPRateLimit::CIPRateLimit(ConVar *,ConVar	*,ConVar *)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18s_queryRateChecker ; s_queryRateChecker
		mov	dword ptr [esp], offset	_ZN12CIPRateLimitD2Ev ;	CIPRateLimit::~CIPRateLimit()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], offset _ZL26sv_max_connects_sec_global ; sv_max_connects_sec_global
		mov	dword ptr [esp+8], offset _ZL22sv_max_connects_window ;	sv_max_connects_window
		mov	dword ptr [esp+4], offset _ZL19sv_max_connects_sec ; sv_max_connects_sec
		mov	dword ptr [esp], offset	_ZL20s_connectRateChecker ; s_connectRateChecker
		call	_ZN12CIPRateLimitC2EP6ConVarS1_S1_ ; CIPRateLimit::CIPRateLimit(ConVar *,ConVar	*,ConVar *)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20s_connectRateChecker ; s_connectRateChecker
		mov	dword ptr [esp], offset	_ZN12CIPRateLimitD2Ev ;	CIPRateLimit::~CIPRateLimit()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aTheRegionOfThe ; "The region of the world to report this "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aSv_region ; "sv_region"
		mov	dword ptr [esp], offset	sv_region
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_region
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aEnableInstance ; "Enable instanced	baselines. Saves netwo"...
		mov	dword ptr [esp+0Ch], 2
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_instancebas ; "sv_instancebaselines"
		mov	dword ptr [esp], offset	_ZL20sv_instancebaselines ; sv_instancebaselines
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20sv_instancebaselines ; sv_instancebaselines
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aCollectCpuUsag ; "Collect CPU usage stats"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_stats ; "sv_stats"
		mov	dword ptr [esp], offset	_ZL8sv_stats ; sv_stats
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8sv_stats ; sv_stats
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aEnableSupportF ; "Enable support for old style (HL1) serv"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_enableoldqu ; "sv_enableoldqueries"
		mov	dword ptr [esp], offset	_ZL19sv_enableoldqueries ; sv_enableoldqueries
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19sv_enableoldqueries ; sv_enableoldqueries
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aServerPassword ; "Server password for entry into multipla"...
		mov	dword ptr [esp+0Ch], 20120h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aSv_password ; "sv_password"
		mov	dword ptr [esp], offset	_ZL11sv_password ; sv_password
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11sv_password ; sv_password
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL20SvTagsChangeCallbackP7IConVarPKcf ; SvTagsChangeCallback(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aServerTags_Use ; "Server tags. Used to provide extra info"...
		mov	dword ptr [esp+0Ch], 100h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aSv_tags ; "sv_tags"
		mov	dword ptr [esp], offset	sv_tags
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_tags
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aOverridesTheMa ; "Overrides the max players reported to p"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aSv_visiblemaxp ; "sv_visiblemaxplayers"
		mov	dword ptr [esp], offset	sv_visiblemaxplayers
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_visiblemaxplayers
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSetServerOnl ; "If set, server only simulates entities "...
		mov	dword ptr [esp+0Ch], 40h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_alternateti ; "sv_alternateticks"
		mov	dword ptr [esp], offset	sv_alternateticks
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_alternateticks
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAllowOrDisallo ; "Allow or	disallow the wait command on c"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_allow_wait_ ; "sv_allow_wait_command"
		mov	dword ptr [esp], offset	sv_allow_wait_command
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_allow_wait_command
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAllowOrDisal_0 ; "Allow or	disallow clients to use	color "...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_allow_color ; "sv_allow_color_correction"
		mov	dword ptr [esp], offset	sv_allow_color_correction
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_allow_color_correction
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowTempEntity ; "Show temp entity	bandwidth usage."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_debugtempen ; "sv_debugtempentities"
		mov	dword ptr [esp], offset	_ZL20sv_debugtempentities ; sv_debugtempentities
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20sv_debugtempentities ; sv_debugtempentities
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_svInstanceBaselineMutex endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z24EngineBitBufErrorHandler15BitBufErrorTypePKc	proc near
					; DATA XREF: .ctors:00272508o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_25, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_25+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_25, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_25+4, eax
		retn
_GLOBAL__sub_I__Z24EngineBitBufErrorHandler15BitBufErrorTypePKc	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_date proc near		; DATA XREF: .ctors:0027250Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_26, edx ;	vec2_origin
		mov	dword ptr [esp], offset	_ZL13g_BuildNumber ; g_BuildNumber
		mov	dword ptr ds:_ZL11vec2_origin_26+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_26, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_26+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_5, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_5+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_5+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_5+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_5, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_5+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_5+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_5+0Ch, eax
		call	_ZN12CBuildNumber18ComputeBuildNumberEv	; CBuildNumber::ComputeBuildNumber(void)
		leave
		retn
_GLOBAL__sub_I_date endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_BenchmarkResults proc near ; DATA XREF: .ctors:00272510o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_27, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_27+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_6, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_6+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_6+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_6+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_27, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_27+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_6, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_6+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_6+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_6+0Ch, eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aStartsGatherin ; "Starts gathering	of info. Arguments: fi"...
		mov	dword ptr [esp+8], offset _ZL11bench_startRK8CCommand ;	bench_start(CCommand  const&)
		mov	dword ptr [esp+4], offset aBench_start ; "bench_start"
		mov	dword ptr [esp], offset	_ZL19bench_start_command ; bench_start_command
		mov	ds:g_BenchmarkResults, 0
		mov	ds:g_BenchmarkResults+1, 0
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19bench_start_command ; bench_start_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aEndsGatheringO ; "Ends gathering of info."
		mov	dword ptr [esp+8], offset _ZL9bench_endRK8CCommand ; bench_end(CCommand	 const&)
		mov	dword ptr [esp+4], offset aBench_end ; "bench_end"
		mov	dword ptr [esp], offset	_ZL17bench_end_command ; bench_end_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17bench_end_command ; bench_end_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aUploadsMostRec ; "Uploads most recent benchmark stats to "...
		mov	dword ptr [esp+8], offset _ZL12bench_uploadRK8CCommand ; bench_upload(CCommand	const&)
		mov	dword ptr [esp+4], offset aBench_upload	; "bench_upload"
		mov	dword ptr [esp], offset	_ZL20bench_upload_command ; bench_upload_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20bench_upload_command ; bench_upload_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_BenchmarkResults endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z8CCS_Initv proc near	; DATA XREF: .ctors:00272514o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_28, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_28+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_28, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_28+4, eax
		retn
_GLOBAL__sub_I__Z8CCS_Initv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z20AllocChangeFrameListii proc near ; DATA XREF: .ctors:00272518o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_29, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_29+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_29, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_29+4, eax
		retn
_GLOBAL__sub_I__Z20AllocChangeFrameListii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z18ClearCheatCommandsv proc near ; DATA	XREF: .ctors:0027251Co
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_30, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_30+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19s_CheatCodeCommands ; s_CheatCodeCommands
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI15CheatCodeData_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<CheatCodeData_t,CUtlMemory<CheatCodeData_t,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL12vec2_invalid_30, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_30+4, eax
		mov	dword ptr ds:_ZL19s_CheatCodeCommands, 0 ; s_CheatCodeCommands
		mov	dword ptr ds:_ZL19s_CheatCodeCommands+4, 0
		mov	dword ptr ds:_ZL19s_CheatCodeCommands+8, 0
		mov	dword ptr ds:_ZL19s_CheatCodeCommands+0Ch, 0
		mov	dword ptr ds:_ZL19s_CheatCodeCommands+10h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z18ClearCheatCommandsv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z24COM_BlockSequenceCRCBytePhii	proc near ; DATA XREF: .ctors:00272520o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_31, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_31+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_31, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_31+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_7, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_7+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_7+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_7+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_7, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_7+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_7+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_7+0Ch, eax
		retn
_GLOBAL__sub_I__Z24COM_BlockSequenceCRCBytePhii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN12CClientFrameC2EP14CFrameSnapshot proc near ; DATA XREF: .ctors:00272524o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_32, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_32+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_32, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_32+4, eax
		retn
_GLOBAL__sub_I__ZN12CClientFrameC2EP14CFrameSnapshot endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_cl_clock_correction proc	near ; DATA XREF: .ctors:00272528o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_33, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_33+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_8, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_8+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_8+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_8+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_33, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_33+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_8, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_8+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_8+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_8+0Ch, eax
		mov	dword ptr [esp+10h], offset aEnableDisableC ; "Enable/disable clock correction on the "...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aCl_clock_corre ; "cl_clock_correction"
		mov	dword ptr [esp], offset	cl_clock_correction
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clock_correction
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumNumberO ; "Maximum number of milliseconds the cloc"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset dword_1EC33C
		mov	dword ptr [esp+4], offset aCl_clockdrift_ ; "cl_clockdrift_max_ms"
		mov	dword ptr [esp], offset	cl_clockdrift_max_ms
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clockdrift_max_ms
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumNumberO ; "Maximum number of milliseconds the cloc"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCl_clockdrif_0 ; "cl_clockdrift_max_ms_threadmode"
		mov	dword ptr [esp], offset	cl_clockdrift_max_ms_threadmode
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clockdrift_max_ms_threadmode
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowDebuggingI ; "Show debugging info about the clock dri"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCl_clock_showd ; "cl_clock_showdebuginfo"
		mov	dword ptr [esp], offset	cl_clock_showdebuginfo
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clock_showdebuginfo
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aForceClockCorr ; "Force clock correction to match the ser"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset dword_1ED06C
		mov	dword ptr [esp+4], offset aCl_clock_cor_0 ; "cl_clock_correction_force_server_tick"
		mov	dword ptr [esp], offset	cl_clock_correction_force_server_tick
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clock_correction_force_server_tick
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSetsTheMaximum ; "Sets the	maximum	number of milliseconds"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset dword_1EC404
		mov	dword ptr [esp+4], offset aCl_clock_cor_1 ; "cl_clock_correction_adjustment_max_amou"...
		mov	dword ptr [esp], offset	cl_clock_correction_adjustment_max_amount
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clock_correction_adjustment_max_amount
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfTheClockOffs ; "If the clock offset is less than	this a"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1010+2)
		mov	dword ptr [esp+4], offset aCl_clock_cor_2 ; "cl_clock_correction_adjustment_min_offs"...
		mov	dword ptr [esp], offset	cl_clock_correction_adjustment_min_offset
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clock_correction_adjustment_min_offset
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAsTheClockOffs ; "As the clock offset goes	from cl_clock_"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset byte_1EC24D
		mov	dword ptr [esp+4], offset aCl_clock_cor_3 ; "cl_clock_correction_adjustment_max_offs"...
		mov	dword ptr [esp], offset	cl_clock_correction_adjustment_max_offset
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset cl_clock_correction_adjustment_max_offset
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_cl_clock_correction endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pSoundServices	proc near ; DATA XREF: .ctors:0027252Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_34, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_34+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_34, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_34+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_9, edx ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_9+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_9+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_9+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_9, eax ;	vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_9+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_9+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_9+0Ch, eax
		mov	dword ptr [esp], offset	g_EngineStats
		call	_ZN12CEngineStatsC2Ev ;	CEngineStats::CEngineStats(void)
		mov	dword ptr [esp], offset	byte_28B880
		call	_ZN12CClientStateC2Ev ;	CClientState::CClientState(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset byte_28B880
		mov	dword ptr [esp], offset	_ZN12CClientStateD2Ev ;	CClientState::~CClientState()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_pSoundServices	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute proc	near ; DATA XREF: .ctors:00272530o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_35, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_35+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_10, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_10+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_10+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_10+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_35, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_35+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_10, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_10+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_10+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_10+0Ch, eax
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBufferC2Ev	; CCommandBuffer::CCommandBuffer(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15s_CommandBuffer ; s_CommandBuffer
		mov	dword ptr [esp], offset	_ZN14CCommandBufferD2Ev	; CCommandBuffer::~CCommandBuffer()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_ExtraClientCmdCanExecuteCvars
		mov	dword ptr [esp], offset	_ZN8CUtlDictIiiED2Ev ; CUtlDict<int,int>::~CUtlDict()
		mov	dword ptr ds:_ZL20s_CommandBufferMutex,	0 ; s_CommandBufferMutex
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, 0
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+4,	0
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+8,	0
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+0Ch, 0
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+10h, 0FFFFFFFFh
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+14h, 0
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+18h, 0FFFFFFFFh
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+1Ch, 0FFFFFFFFh
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars+20h, 0
		mov	dword ptr ds:g_ExtraClientCmdCanExecuteCvars, offset _Z22CaselessStringLessThanRKPKcS2_	; CaselessStringLessThan(char  const* const&,char  const* const&)
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18g_ExecutionMarkers ; g_ExecutionMarkers
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL18g_ExecutionMarkers, 0	; g_ExecutionMarkers
		mov	dword ptr ds:_ZL18g_ExecutionMarkers+4,	0
		mov	dword ptr ds:_ZL18g_ExecutionMarkers+8,	0
		mov	dword ptr ds:_ZL18g_ExecutionMarkers+0Ch, 0
		mov	dword ptr ds:_ZL18g_ExecutionMarkers+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL23g_ExecutionMarkerStream ; g_ExecutionMarkerStream
		call	_ZN20CUniformRandomStreamC1Ev ;	CUniformRandomStream::CUniformRandomStream(void)
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPerformsABindK ; "Performs	a bind <key> \"increment var <c"...
		mov	dword ptr [esp+8], offset _ZL10BindToggleRK8CCommand ; BindToggle(CCommand  const&)
		mov	dword ptr [esp+4], offset aBindtoggle ;	"BindToggle"
		mov	dword ptr [esp], offset	_ZL18BindToggle_command	; BindToggle_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18BindToggle_command ; BindToggle_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aParsesAndStuff ; "Parses and stuffs command line +	comman"...
		mov	dword ptr [esp+8], offset _ZL9stuffcmdsRK8CCommand ; stuffcmds(CCommand	 const&)
		mov	dword ptr [esp+4], offset aStuffcmds ; "stuffcmds"
		mov	dword ptr [esp], offset	_ZL17stuffcmds_command ; stuffcmds_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17stuffcmds_command ; stuffcmds_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 10000000h
		mov	dword ptr [esp+0Ch], offset aEchoTextToCons ; "Echo text to console."
		mov	dword ptr [esp+8], offset _ZL4echoRK8CCommand ;	echo(CCommand  const&)
		mov	dword ptr [esp+4], offset aEcho	; "echo"
		mov	dword ptr [esp], offset	_ZL12echo_command ; echo_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12echo_command ; echo_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aAliasACommand_ ; "Alias a command."
		mov	dword ptr [esp+8], offset _ZL5aliasRK8CCommand ; alias(CCommand	 const&)
		mov	dword ptr [esp+4], offset aAlias ; "alias"
		mov	dword ptr [esp], offset	_ZL13alias_command ; alias_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13alias_command ; alias_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aForwardCommand ; "Forward command to server."
		mov	dword ptr [esp+8], offset _ZL3cmdRK8CCommand ; cmd(CCommand  const&)
		mov	dword ptr [esp+4], (offset aDem_consolecmd+0Bh)
		mov	dword ptr [esp], offset	_ZL11cmd_command ; cmd_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11cmd_command ; cmd_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL21g_exec_CompletionFuncPKcPA64_c	; g_exec_CompletionFunc(char  const*,char (*)[64])
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aExecuteScriptF ; "Execute script file."
		mov	dword ptr [esp+8], offset _Z10Cmd_Exec_fRK8CCommand ; Cmd_Exec_f(CCommand  const&)
		mov	dword ptr [esp+4], offset aExec	; "exec"
		mov	dword ptr [esp], offset	_ZL12exec_command ; exec_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12exec_command ; exec_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_BSPData proc near	; DATA XREF: .ctors:00272534o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		push	edi
		sub	esp, 24h
		mov	dword ptr ds:_ZL11vec2_origin_36, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_36+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_36, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_36+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_11, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_11+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_11+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_11+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_11, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_11+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_11+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_11+0Ch, eax
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; size
		mov	dword ptr [esp+4], 0 ; int
		mov	dword ptr [esp], (offset g_BSPData+0C4h) ; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	edx, (offset g_BSPData+0FCh)
		xor	eax, eax
		mov	edi, edx
		mov	ecx, 40h
		mov	dword ptr ds:g_BSPData+0C0h, 0
		rep stosd
		mov	dword ptr ds:g_BSPData+1FCh, 0FFFFFFFFh
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_BSPData
		mov	dword ptr [esp], offset	_ZN17CCollisionBSPDataD2Ev ; CCollisionBSPData::~CCollisionBSPData()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_TraceInfoPool
		mov	dword ptr [esp], offset	_ZN14CTraceInfoPoolD2Ev	; CTraceInfoPool::~CTraceInfoPool()
		mov	dword ptr ds:g_TraceInfoPool, 0
		mov	dword ptr ds:g_TraceInfoPool+4,	0
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDisableAreaToA ; "Disable area to area connection testing"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMap_noareas ; "map_noareas"
		mov	dword ptr [esp], offset	_ZL11map_noareas ; map_noareas
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11map_noareas ; map_noareas
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		add	esp, 24h
		pop	edi
		pop	ebp
		retn
_GLOBAL__sub_I_g_BSPData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_physprop	proc near	; DATA XREF: .ctors:00272538o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_37, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_37+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_37, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_37+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_12, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_12+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_12+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_12+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_12, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_12+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_12+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_12+0Ch, eax
		retn
_GLOBAL__sub_I_physprop	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_DispCollTreeCount proc	near ; DATA XREF: .ctors:0027253Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_38, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_38+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_13, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_13+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_13+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_13+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16g_VirtualTerrain	; g_VirtualTerrain
		mov	dword ptr [esp], offset	_ZN15CVirtualTerrainD2Ev ; CVirtualTerrain::~CVirtualTerrain()
		mov	dword ptr ds:_ZL12vec2_invalid_38, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_38+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_13, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_13+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_13+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_13+0Ch, eax
		mov	dword ptr ds:_ZL16g_VirtualTerrain, (offset _ZTV15CVirtualTerrain+8) ; g_VirtualTerrain
		mov	dword ptr ds:_ZL16g_VirtualTerrain+8, 0
		mov	dword ptr ds:_ZL16g_VirtualTerrain+0Ch,	0
		mov	dword ptr ds:_ZL16g_VirtualTerrain+10h,	0
		mov	dword ptr ds:_ZL16g_VirtualTerrain+14h,	0
		mov	dword ptr ds:_ZL16g_VirtualTerrain+18h,	0
		mov	dword ptr ds:_ZL16g_VirtualTerrain+4, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13g_TerrainList ; g_TerrainList
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIP12CPhysCollide10CUtlMemoryIS1_iEED2Ev ; CUtlVector<CPhysCollide *,CUtlMemory<CPhysCollide *,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL13g_TerrainList, 0 ; g_TerrainList
		mov	dword ptr ds:_ZL13g_TerrainList+4, 0
		mov	dword ptr ds:_ZL13g_TerrainList+8, 0
		mov	dword ptr ds:_ZL13g_TerrainList+0Ch, 0
		mov	dword ptr ds:_ZL13g_TerrainList+10h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_DispCollTreeCount endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_com_ignorecolons	proc near ; DATA XREF: .ctors:00272540o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_39, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_39+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_39, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_39+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_14, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_14+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_14+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_14+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_14, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_14+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_14+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_14+0Ch, eax
		retn
_GLOBAL__sub_I_com_ignorecolons	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_con_debuglog proc near	; DATA XREF: .ctors:00272544o
		push	ebp
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		sub	esp, 34h
		mov	dword ptr ds:_ZL11vec2_origin_40, ebx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_40+4, ebx
		mov	dword ptr ds:_ZL12vec2_invalid_40, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_40+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_15, ebx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_15+4, ebx
		mov	dword ptr ds:_ZL11vec4_origin_15+8, ebx
		mov	dword ptr ds:_ZL11vec4_origin_15+0Ch, ebx
		mov	dword ptr ds:_ZL12vec4_invalid_15, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_15+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_15+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_15+0Ch, eax
		mov	dword ptr [esp+10h], offset aPrefixConsole_ ; "Prefix console.log entries with timesta"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCon_timestamp ; "con_timestamp"
		mov	dword ptr [esp], offset	_ZL13con_timestamp ; con_timestamp
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13con_timestamp ; con_timestamp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+20h], ebx
		mov	[esp+18h], ebx
		mov	dword ptr [esp+24h], offset _Z22ConsoleLogFileCallbackP7IConVarPKcf ; ConsoleLogFileCallback(IConVar *,char  const*,float)
		mov	dword ptr [esp+1Ch], 0
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], offset aConsoleOutputG ; "Console output gets written to this fil"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aCon_logfile ; "con_logfile"
		mov	dword ptr [esp], offset	con_logfile
		call	_ZN6ConVarC2EPKcS1_iS1_bfbfPFvP7IConVarS1_fE ; ConVar::ConVar(char  const*,char	 const*,int,char  const*,bool,float,bool,float,void (*)(IConVar	*,char	const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset con_logfile
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_GLOBAL__sub_I_con_debuglog endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_cv proc near		; DATA XREF: .ctors:00272548o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_41, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_41+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_16, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_16+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_16+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_16+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_41, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_41+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_16, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_16+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_16+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_16+0Ch, eax
		mov	dword ptr [esp+8], offset aVcvarquery001 ; "VCvarQuery001"
		mov	dword ptr [esp+4], offset _ZL38__CreateCCvarQueryICvarQuery_interfacev ; __CreateCCvarQueryICvarQuery_interface(void)
		mov	dword ptr [esp], offset	_ZL34__g_CreateCCvarQueryICvarQuery_reg	; __g_CreateCCvarQueryICvarQuery_reg
		mov	ds:_ZL11s_CvarQuery, (offset _ZTV10CCvarQuery+8) ; s_CvarQuery
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aFindConcommand ; "Find concommands	by flags."
		mov	dword ptr [esp+8], offset _ZL9findflagsRK8CCommand ; findflags(CCommand	 const&)
		mov	dword ptr [esp+4], offset aFindflags ; "findflags"
		mov	dword ptr [esp], offset	_ZL17findflags_command ; findflags_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17findflags_command ; findflags_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowTheListOfC ; "Show the	list of	convars/concommands."
		mov	dword ptr [esp+8], offset _ZL8cvarlistRK8CCommand ; cvarlist(CCommand  const&)
		mov	dword ptr [esp+4], offset aCvarlist ; "cvarlist"
		mov	dword ptr [esp], offset	_ZL16cvarlist_command ;	cvarlist_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16cvarlist_command	; cvarlist_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aFindHelpAboutA ; "Find help about a convar/concommand."
		mov	dword ptr [esp+8], offset _ZL4helpRK8CCommand ;	help(CCommand  const&)
		mov	dword ptr [esp+4], offset aHelp	; "help"
		mov	dword ptr [esp], offset	_ZL12help_command ; help_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12help_command ; help_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowAllConvars ; "Show all	convars	which are not at their"...
		mov	dword ptr [esp+8], offset _ZL11differencesRK8CCommand ;	differences(CCommand  const&)
		mov	dword ptr [esp+4], offset aDifferences ; "differences"
		mov	dword ptr [esp], offset	_ZL19differences_command ; differences_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19differences_command ; differences_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aTogglesAConvar ; "Toggles a convar	on or off, or cycles t"...
		mov	dword ptr [esp+8], offset _ZL6toggleRK8CCommand	; toggle(CCommand  const&)
		mov	dword ptr [esp+4], offset aToggle ; "toggle"
		mov	dword ptr [esp], offset	_ZL14toggle_command ; toggle_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14toggle_command ;	toggle_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_cv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_DecalDictionary proc near ; DATA XREF:	.ctors:0027254Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_42, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_42+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_17, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_17+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_17+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_17+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DecalDictionary
		mov	dword ptr [esp], offset	_ZN7CUtlMapIPv10DecalEntrytED2Ev ; CUtlMap<void	*,DecalEntry,ushort>::~CUtlMap()
		mov	dword ptr ds:_ZL12vec2_invalid_42, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_42+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_17, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_17+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_17+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_17+0Ch, eax
		mov	dword ptr ds:g_DecalDictionary,	offset _ZN7CDefOpsIPvE8LessFuncERKS0_S3_ ; CDefOps<void	*>::LessFunc(void * const&,void	* const&)
		mov	dword ptr ds:g_DecalDictionary+4, 0
		mov	dword ptr ds:g_DecalDictionary+8, 0
		mov	dword ptr ds:g_DecalDictionary+0Ch, 0
		mov	word ptr ds:g_DecalDictionary+10h, 0FFFFh
		mov	word ptr ds:g_DecalDictionary+12h, 0
		mov	word ptr ds:g_DecalDictionary+14h, 0FFFFh
		mov	word ptr ds:g_DecalDictionary+16h, 0FFFFh
		mov	dword ptr ds:g_DecalDictionary+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DecalLookup
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		mov	dword ptr ds:g_DecalLookup, 0
		mov	dword ptr ds:g_DecalLookup+4, 0
		mov	dword ptr ds:g_DecalLookup+8, 0
		mov	dword ptr ds:g_DecalLookup+0Ch,	0
		mov	dword ptr ds:g_DecalLookup+10h,	0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_DecalDictionary endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_DecalClipVerts	proc near ; DATA XREF: .ctors:00272550o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_43, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_43+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_43, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_43+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_18, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_18+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_18+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_18+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_18, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_18+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_18+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_18+0Ch, eax
		retn
_GLOBAL__sub_I_g_DecalClipVerts	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_dbg_demofile proc near	; DATA XREF: .ctors:00272554o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_44, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_44+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_44, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_44+4, eax
		mov	dword ptr [esp+0Ch], 12h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aDbg_demofile	; "dbg_demofile"
		mov	dword ptr [esp], offset	dbg_demofile
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset dbg_demofile
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_dbg_demofile endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z22DevShotGenerator_Usagev proc	near ; DATA XREF: .ctors:00272558o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_45, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_45+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_45, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_45+4, eax
		mov	dword ptr [esp], offset	g_DevShotGenerator
		call	_ZN17CDevShotGeneratorC2Ev ; CDevShotGenerator::CDevShotGenerator(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DevShotGenerator
		mov	dword ptr [esp], offset	_ZN17CDevShotGeneratorD2Ev ; CDevShotGenerator::~CDevShotGenerator()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUsedByTheDevsh ; "Used by the devshots system to go to th"...
		mov	dword ptr [esp+8], offset _Z19CL_DevShots_NextMapv ; CL_DevShots_NextMap(void)
		mov	dword ptr [esp+4], offset aDevshots_nextm ; "devshots_nextmap"
		mov	dword ptr [esp], offset	_ZL16devshots_nextmap ;	devshots_nextmap
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16devshots_nextmap	; devshots_nextmap
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z22DevShotGenerator_Usagev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_modelorg	proc near	; DATA XREF: .ctors:0027255Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_46, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_46+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_46, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_46+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_19, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_19+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_19+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_19+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_19, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_19+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_19+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_19+0Ch, eax
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_dispdrawaxes ; "r_DispDrawAxes"
		mov	dword ptr [esp], offset	r_DispDrawAxes
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_DispDrawAxes
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_modelorg	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_CoreDispNeighborOrientationMap	proc near ; DATA XREF: .ctors:00272560o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_47, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_47+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_20, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_20+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_20+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_20+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DispLMAlpha
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIh10CUtlMemoryIhiEED2Ev ; CUtlVector<uchar,CUtlMemory<uchar,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL12vec2_invalid_47, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_47+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_20, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_20+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_20+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_20+0Ch, eax
		mov	dword ptr ds:g_DispLMAlpha, 0
		mov	dword ptr ds:g_DispLMAlpha+4, 0
		mov	dword ptr ds:g_DispLMAlpha+8, 0
		mov	dword ptr ds:g_DispLMAlpha+0Ch,	0
		mov	dword ptr ds:g_DispLMAlpha+10h,	0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DispLightmapSamplePositions
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIh11CHunkMemoryIhEED2Ev ; CUtlVector<uchar,CHunkMemory<uchar>>::~CUtlVector()
		mov	dword ptr ds:g_DispLightmapSamplePositions, 0
		mov	dword ptr ds:g_DispLightmapSamplePositions+4, 0
		mov	dword ptr ds:g_DispLightmapSamplePositions+8, 0
		mov	dword ptr ds:g_DispLightmapSamplePositions+0Ch,	0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DispGroups
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIP10CDispGroup10CUtlMemoryIS1_iEED2Ev ; CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::~CUtlVector()
		mov	dword ptr ds:g_DispGroups, 0
		mov	dword ptr ds:g_DispGroups+4, 0
		mov	dword ptr ds:g_DispGroups+8, 0
		mov	dword ptr ds:g_DispGroups+0Ch, 0
		mov	dword ptr ds:g_DispGroups+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aTogglesRenderi ; "Toggles rendering of displacment	maps"
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawdisp ;	"r_DrawDisp"
		mov	dword ptr [esp], offset	r_DrawDisp
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_DrawDisp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_dispwalkable ; "r_DispWalkable"
		mov	dword ptr [esp], offset	r_DispWalkable
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_DispWalkable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_dispbuildabl ; "r_DispBuildable"
		mov	dword ptr [esp], offset	r_DispBuildable
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_DispBuildable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_CoreDispNeighborOrientationMap	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z25CalcMaxNumVertsAndIndicesiPiS_ proc near ; DATA XREF: .ctors:00272564o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_48, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_48+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_48, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_48+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_21, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_21+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_21+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_21+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_21, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_21+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_21+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_21+0Ch, eax
		retn
_GLOBAL__sub_I__Z25CalcMaxNumVertsAndIndicesiPiS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct	proc near
					; DATA XREF: .ctors:00272568o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_49, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_49+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_22, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_22+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_22+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_22+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18s_DispShadowDecals ; s_DispShadowDecals
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL12vec2_invalid_49, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_49+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_22, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_22+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_22+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_22+0Ch, eax
		mov	dword ptr ds:_ZL18s_DispShadowDecals, 0	; s_DispShadowDecals
		mov	dword ptr ds:_ZL18s_DispShadowDecals+4,	0
		mov	dword ptr ds:_ZL18s_DispShadowDecals+8,	0
		mov	word ptr ds:_ZL18s_DispShadowDecals+16h, 0FFFFh
		mov	word ptr ds:_ZL18s_DispShadowDecals+0Ch, 0FFFFh
		mov	word ptr ds:_ZL18s_DispShadowDecals+0Eh, 0FFFFh
		mov	word ptr ds:_ZL18s_DispShadowDecals+10h, 0FFFFh
		mov	word ptr ds:_ZL18s_DispShadowDecals+12h, 0
		mov	word ptr ds:_ZL18s_DispShadowDecals+14h, 0
		mov	dword ptr ds:_ZL18s_DispShadowDecals+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21s_DispShadowFragments ; s_DispShadowFragments
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev ; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL21s_DispShadowFragments, 0 ; s_DispShadowFragments
		mov	dword ptr ds:_ZL21s_DispShadowFragments+4, 0
		mov	dword ptr ds:_ZL21s_DispShadowFragments+8, 0
		mov	word ptr ds:_ZL21s_DispShadowFragments+16h, 0FFFFh
		mov	word ptr ds:_ZL21s_DispShadowFragments+0Ch, 0FFFFh
		mov	word ptr ds:_ZL21s_DispShadowFragments+0Eh, 0FFFFh
		mov	word ptr ds:_ZL21s_DispShadowFragments+10h, 0FFFFh
		mov	word ptr ds:_ZL21s_DispShadowFragments+12h, 0
		mov	word ptr ds:_ZL21s_DispShadowFragments+14h, 0
		mov	dword ptr ds:_ZL21s_DispShadowFragments+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12s_DispDecals ; s_DispDecals
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev ;	CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL12s_DispDecals,	0 ; s_DispDecals
		mov	dword ptr ds:_ZL12s_DispDecals+4, 0
		mov	dword ptr ds:_ZL12s_DispDecals+8, 0
		mov	word ptr ds:_ZL12s_DispDecals+16h, 0FFFFh
		mov	word ptr ds:_ZL12s_DispDecals+0Ch, 0FFFFh
		mov	word ptr ds:_ZL12s_DispDecals+0Eh, 0FFFFh
		mov	word ptr ds:_ZL12s_DispDecals+10h, 0FFFFh
		mov	word ptr ds:_ZL12s_DispDecals+12h, 0
		mov	word ptr ds:_ZL12s_DispDecals+14h, 0
		mov	dword ptr ds:_ZL12s_DispDecals+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20s_DispDecalFragments ; s_DispDecalFragments
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev ;	CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL20s_DispDecalFragments,	0 ; s_DispDecalFragments
		mov	dword ptr ds:_ZL20s_DispDecalFragments+4, 0
		mov	dword ptr ds:_ZL20s_DispDecalFragments+8, 0
		mov	word ptr ds:_ZL20s_DispDecalFragments+16h, 0FFFFh
		mov	word ptr ds:_ZL20s_DispDecalFragments+0Ch, 0FFFFh
		mov	word ptr ds:_ZL20s_DispDecalFragments+0Eh, 0FFFFh
		mov	word ptr ds:_ZL20s_DispDecalFragments+10h, 0FFFFh
		mov	word ptr ds:_ZL20s_DispDecalFragments+12h, 0
		mov	word ptr ds:_ZL20s_DispDecalFragments+14h, 0
		mov	dword ptr ds:_ZL20s_DispDecalFragments+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aDisp_dynamic	; "disp_dynamic"
		mov	dword ptr [esp], offset	disp_dynamic
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset disp_dynamic
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_ConstructorChecker proc near ;	DATA XREF: .ctors:0027256Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_50, edx ;	vec2_origin
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_ConstructorChecker
		mov	dword ptr [esp], offset	_ZN19CConstructorCheckerD2Ev ; CConstructorChecker::~CConstructorChecker()
		mov	dword ptr ds:_ZL11vec2_origin_50+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_50, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_50+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_23, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_23+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_23+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_23+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_23, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_23+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_23+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_23+0Ch, eax
		mov	ds:g_ConstructorChecker, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_ConstructorChecker endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_DownloadListGenerator proc near ; DATA	XREF: .ctors:00272570o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_51, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_51+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_24, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_24+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_24+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_24+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_51, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_51+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_24, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_24+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_24+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_24+0Ch, eax
		mov	dword ptr [esp], offset	g_DownloadListGenerator
		call	_ZN22CDownloadListGeneratorC2Ev	; CDownloadListGenerator::CDownloadListGenerator(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DownloadListGenerator
		mov	dword ptr [esp], offset	_ZN22CDownloadListGeneratorD2Ev	; CDownloadListGenerator::~CDownloadListGenerator()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_logdownload ; "sv_logdownloadlist"
		mov	dword ptr [esp], offset	sv_logdownloadlist
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_logdownloadlist
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_DownloadListGenerator endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_CV_DTWatchEnt proc near ; DATA	XREF: .ctors:00272574o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_52, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_52+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_52, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_52+4, 7F7FFFFFh

loc_63CE0:				; CODE XREF: _GLOBAL__sub_I_g_CV_DTWatchEnt+40j
		mov	dword ptr ds:_ZL12s_Recipients[eax], 0 ; s_Recipients
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_63CE0
		mov	dword ptr [esp+10h], offset aWatchThisEntit ; "Watch this entities data	table encoding"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aDtwatchent ;	"dtwatchent"
		mov	dword ptr [esp], offset	g_CV_DTWatchEnt
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_CV_DTWatchEnt
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aWatchTheNamedV ; "Watch the named variable."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aDtwatchvar ;	"dtwatchvar"
		mov	dword ptr [esp], offset	g_CV_DTWatchVar
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_CV_DTWatchVar
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aPrintDataTable ; "Print data table	warnings?"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aDtwarning ; "dtwarning"
		mov	dword ptr [esp], offset	g_CV_DTWarning
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_CV_DTWarning
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aWatchAllFields ; "Watch all fields	encoded	with this tabl"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aDtwatchclass	; "dtwatchclass"
		mov	dword ptr [esp], offset	g_CV_DTWatchClass
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_CV_DTWatchClass
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_CV_DTWatchEnt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z26DataTable_FindRenamedTablePKc proc near ; DATA XREF:	.ctors:00272578o
		push	ebp
		xor	eax, eax
		mov	dword ptr ds:_ZL11vec2_origin_53, 0 ; vec2_origin
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_53+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_53, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_53+4, 7F7FFFFFh

loc_63E4D:				; CODE XREF: _GLOBAL__sub_I__Z26DataTable_FindRenamedTablePKc+3Dj
		mov	dword ptr ds:_ZL12s_Recipients_0[eax], 0 ; s_Recipients
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_63E4D
		mov	dword ptr ds:_ZL11vec4_origin_25, 0 ; vec4_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec4_origin_25+4, 0
		mov	dword ptr ds:_ZL11vec4_origin_25+8, 0
		mov	dword ptr ds:_ZL11vec4_origin_25+0Ch, 0
		mov	dword ptr ds:_ZL12vec4_invalid_25, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_25+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_25+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_25+0Ch, 7F7FFFFFh
		retn
_GLOBAL__sub_I__Z26DataTable_FindRenamedTablePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z11EncodeFloatPK8SendPropfP8bf_writei proc near
					; DATA XREF: .ctors:0027257Co
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_54, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_54+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_54, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_54+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_26, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_26+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_26+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_26+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_26, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_26+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_26+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_26+0Ch, eax
		retn
_GLOBAL__sub_I__Z11EncodeFloatPK8SendPropfP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_bDTIEnabled proc near	; DATA XREF: .ctors:00272580o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_55, edx ;	vec2_origin
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_DTIRecvTables
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEED2Ev ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL11vec2_origin_55+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_55, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_55+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_27, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_27+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_27+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_27+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_27, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_27+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_27+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_27+0Ch, eax
		mov	dword ptr ds:g_DTIRecvTables, 0
		mov	dword ptr ds:g_DTIRecvTables+4,	0
		mov	dword ptr ds:g_DTIRecvTables+8,	0
		mov	dword ptr ds:g_DTIRecvTables+20h, 0FFFFFFFFh
		mov	dword ptr ds:g_DTIRecvTables+0Ch, 0FFFFFFFFh
		mov	dword ptr ds:g_DTIRecvTables+10h, 0FFFFFFFFh
		mov	dword ptr ds:g_DTIRecvTables+14h, 0FFFFFFFFh
		mov	dword ptr ds:g_DTIRecvTables+18h, 0
		mov	dword ptr ds:g_DTIRecvTables+1Ch, 0
		mov	dword ptr ds:g_DTIRecvTables+24h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_bDTIEnabled endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_bServerDTIEnabled proc	near ; DATA XREF: .ctors:00272584o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_56, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_56+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15g_DTISendTables ; g_DTISendTables
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL12vec2_invalid_56, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_56+4, eax
		mov	dword ptr ds:_ZL22g_TotalServerDTICycles, 0 ; g_TotalServerDTICycles
		mov	dword ptr ds:_ZL22g_TotalServerDTICycles+4, 0
		mov	dword ptr ds:_ZL15g_DTISendTables, 0 ; g_DTISendTables
		mov	dword ptr ds:_ZL15g_DTISendTables+4, 0
		mov	dword ptr ds:_ZL15g_DTISendTables+8, 0
		mov	word ptr ds:_ZL15g_DTISendTables+16h, 0FFFFh
		mov	word ptr ds:_ZL15g_DTISendTables+0Ch, 0FFFFh
		mov	word ptr ds:_ZL15g_DTISendTables+0Eh, 0FFFFh
		mov	word ptr ds:_ZL15g_DTISendTables+10h, 0FFFFh
		mov	word ptr ds:_ZL15g_DTISendTables+12h, 0
		mov	word ptr ds:_ZL15g_DTISendTables+14h, 0
		mov	dword ptr ds:_ZL15g_DTISendTables+18h, 0
		call	__cxa_atexit
		mov	dword ptr ds:_ZL16g_ServerDTITimer, 0 ;	g_ServerDTITimer
		mov	dword ptr ds:_ZL16g_ServerDTITimer+4, 0
		leave
		retn
_GLOBAL__sub_I_g_bServerDTIEnabled endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z18AddPropOffsetToMapP17CSendTablePrecalcii proc near
					; DATA XREF: .ctors:00272588o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_57, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_57+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_57, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_57+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL11vec4_origin_28, 0 ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_28+4, 0
		mov	dword ptr ds:_ZL11vec4_origin_28+8, 0
		mov	dword ptr ds:_ZL11vec4_origin_28+0Ch, 0
		mov	dword ptr ds:_ZL12vec4_invalid_28, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_28+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_28+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_28+0Ch, 7F7FFFFFh

loc_64140:				; CODE XREF: _GLOBAL__sub_I__Z18AddPropOffsetToMapP17CSendTablePrecalcii+90j
		mov	dword ptr ds:_ZL12s_Recipients_1[eax], 0 ; s_Recipients
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_64140
		mov	dword ptr [esp+10h], offset aSpOnlyEnableFl ; "(SP only) - enable FL_EDICT_PARTIAL_CHA"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aDt_usepartialc ; "dt_UsePartialChangeEnts"
		mov	dword ptr [esp], offset	_ZL23dt_UsePartialChangeEnts ; dt_UsePartialChangeEnts
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23dt_UsePartialChangeEnts ; dt_UsePartialChangeEnts
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSpOnlyShowEnti ; "(SP only) - show	entities that were cop"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aDt_showpartial ; "dt_ShowPartialChangeEnts"
		mov	dword ptr [esp], offset	_ZL24dt_ShowPartialChangeEnts ;	dt_ShowPartialChangeEnts
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24dt_ShowPartialChangeEnts	; dt_ShowPartialChangeEnts
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL19g_PartialChangeEnts, 0 ; g_PartialChangeEnts
		mov	dword ptr ds:_ZL19g_PartialChangeEnts+4, 0
		mov	dword ptr ds:_ZL19g_PartialChangeEnts+8, 0
		mov	dword ptr ds:_ZL19g_PartialChangeEnts+0Ch, 0
		mov	dword ptr ds:_ZL19g_PartialChangeEnts+10h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z18AddPropOffsetToMapP17CSendTablePrecalcii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN12CRecvDecoderC2Ev proc near ; DATA XREF: .ctors:0027258Co
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL11vec2_origin_58, eax ;	vec2_origin
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_58+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_58, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_58+4, eax
		retn
_GLOBAL__sub_I__ZN12CRecvDecoderC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_RecvTables proc near	; DATA XREF: .ctors:00272590o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_59, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_59+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_59, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_59+4, 7F7FFFFFh

loc_64290:				; CODE XREF: _GLOBAL__sub_I_g_RecvTables+40j
		mov	dword ptr ds:_ZL12s_Recipients_2[eax], 0 ; s_Recipients
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_64290
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_RecvTables
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev ; CUtlLinkedList<RecvTable	*,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:g_RecvTables, 0
		mov	dword ptr ds:g_RecvTables+4, 0
		mov	dword ptr ds:g_RecvTables+8, 0
		mov	word ptr ds:g_RecvTables+16h, 0FFFFh
		mov	word ptr ds:g_RecvTables+0Ch, 0FFFFh
		mov	word ptr ds:g_RecvTables+0Eh, 0FFFFh
		mov	word ptr ds:g_RecvTables+10h, 0FFFFh
		mov	word ptr ds:g_RecvTables+12h, 0
		mov	word ptr ds:g_RecvTables+14h, 0
		mov	dword ptr ds:g_RecvTables+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_RecvDecoders
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev ; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:g_RecvDecoders, 0
		mov	dword ptr ds:g_RecvDecoders+4, 0
		mov	dword ptr ds:g_RecvDecoders+8, 0
		mov	word ptr ds:g_RecvDecoders+16h,	0FFFFh
		mov	word ptr ds:g_RecvDecoders+0Ch,	0FFFFh
		mov	word ptr ds:g_RecvDecoders+0Eh,	0FFFFh
		mov	word ptr ds:g_RecvDecoders+10h,	0FFFFh
		mov	word ptr ds:g_RecvDecoders+12h,	0
		mov	word ptr ds:g_RecvDecoders+14h,	0
		mov	dword ptr ds:g_RecvDecoders+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_ClientSendTables
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:g_ClientSendTables, 0
		mov	dword ptr ds:g_ClientSendTables+4, 0
		mov	dword ptr ds:g_ClientSendTables+8, 0
		mov	word ptr ds:g_ClientSendTables+16h, 0FFFFh
		mov	word ptr ds:g_ClientSendTables+0Ch, 0FFFFh
		mov	word ptr ds:g_ClientSendTables+0Eh, 0FFFFh
		mov	word ptr ds:g_ClientSendTables+10h, 0FFFFh
		mov	word ptr ds:g_ClientSendTables+12h, 0
		mov	word ptr ds:g_ClientSendTables+14h, 0
		mov	dword ptr ds:g_ClientSendTables+18h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_RecvTables endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_SendTables proc near	; DATA XREF: .ctors:00272594o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_60, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_60+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_60, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_60+4, 7F7FFFFFh

loc_64450:				; CODE XREF: _GLOBAL__sub_I_g_SendTables+40j
		mov	dword ptr ds:_ZL12s_Recipients_3[eax], 0 ; s_Recipients
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_64450
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_SendTables
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEED2Ev ; CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::~CUtlVector()
		mov	dword ptr ds:g_SendTables, 0
		mov	dword ptr ds:g_SendTables+4, 0
		mov	dword ptr ds:g_SendTables+8, 0
		mov	dword ptr ds:g_SendTables+0Ch, 0
		mov	dword ptr ds:g_SendTables+10h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_SendTables endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN15CDatatableStackC2EP17CSendTablePrecalcPhi proc near
					; DATA XREF: .ctors:00272598o
		push	ebp
		xor	eax, eax
		mov	dword ptr ds:_ZL11vec2_origin_61, 0 ; vec2_origin
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_61+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_61, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_61+4, 7F7FFFFFh

loc_644ED:				; CODE XREF: _GLOBAL__sub_I__ZN15CDatatableStackC2EP17CSendTablePrecalcPhi+3Dj
		mov	dword ptr ds:_ZL12s_Recipients_4[eax], 0 ; s_Recipients
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_644ED
		pop	ebp
		retn
_GLOBAL__sub_I__ZN15CDatatableStackC2EP17CSendTablePrecalcPhi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_dt_test_cpp proc	near	; DATA XREF: .ctors:0027259Co
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_62, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_62+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_62, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_62+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_29, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_29+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_29+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_29+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_29, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_29+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_29+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_29+0Ch, eax
		retn
_GLOBAL__sub_I_dt_test_cpp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN22CEngineRecipientFilterC2Ev proc near ; DATA	XREF: .ctors:002725A0o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_63, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_63+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_63, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_63+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_30, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_30+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_30+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_30+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_30, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_30+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_30+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_30+0Ch, eax
		retn
_GLOBAL__sub_I__ZN22CEngineRecipientFilterC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z17EngineSoundServerv proc near	; DATA XREF: .ctors:002725A4o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_64, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_64+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_31, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_31+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_31+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_31+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19s_EngineSoundServer ; s_EngineSoundServer
		mov	dword ptr [esp], offset	_ZN18CEngineSoundServerD2Ev ; CEngineSoundServer::~CEngineSoundServer()
		mov	dword ptr ds:_ZL12vec2_invalid_64, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_64+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_31, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_31+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_31+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_31+0Ch, eax
		mov	ds:_ZL19s_EngineSoundServer, (offset _ZTV18CEngineSoundServer+8) ; s_EngineSoundServer
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aIenginesoundse ; "IEngineSoundServer003"
		mov	dword ptr [esp+4], offset _ZL48__CreateCEngineSoundServerIEngineSound_interfacev ; __CreateCEngineSoundServerIEngineSound_interface(void)
		mov	dword ptr [esp], offset	_ZL44__g_CreateCEngineSoundServerIEngineSound_reg ; __g_CreateCEngineSoundServerIEngineSound_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I__Z17EngineSoundServerv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_StatTime proc near	; DATA XREF: .ctors:002725A8o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_65, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_65+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_65, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_65+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_32, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_32+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_32+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_32+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_32, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_32+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_32+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_32+0Ch, eax
		mov	ds:g_StatTime, (offset _ZTV9CStatTime+8)
		retn
_GLOBAL__sub_I_g_StatTime endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pEngineTraceServer proc near ;	DATA XREF: .ctors:002725ACo
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_66, edx ;	vec2_origin
		mov	dword ptr [esp+8], offset aEnginetraceser ; "EngineTraceServer003"
		mov	dword ptr [esp+4], offset _ZL48__CreateCEngineTraceServerIEngineTrace_interfacev ; __CreateCEngineTraceServerIEngineTrace_interface(void)
		mov	dword ptr [esp], offset	_ZL44__g_CreateCEngineTraceServerIEngineTrace_reg ; __g_CreateCEngineTraceServerIEngineTrace_reg
		mov	dword ptr ds:_ZL11vec2_origin_66+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_66, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_66+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_33, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_33+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_33+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_33+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_33, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_33+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_33+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_33+0Ch, eax
		mov	dword ptr ds:_ZL19s_EngineTraceServer+10h, 0
		mov	dword ptr ds:_ZL19s_EngineTraceServer, (offset _ZTV18CEngineTraceServer+8) ; s_EngineTraceServer
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_g_pEngineTraceServer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pEngineReplay proc near ; DATA	XREF: .ctors:002725B0o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_67, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_67+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_34, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_34+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_34+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_34+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14s_EngineReplay ;	s_EngineReplay
		mov	dword ptr [esp], offset	_ZN13CEngineReplayD2Ev ; CEngineReplay::~CEngineReplay()
		mov	dword ptr ds:_ZL12vec2_invalid_67, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_67+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_34, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_34+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_34+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_34+0Ch, eax
		mov	ds:_ZL14s_EngineReplay,	(offset	_ZTV13CEngineReplay+8) ; s_EngineReplay
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aEnginereplay00 ; "EngineReplay001"
		mov	dword ptr [esp+4], offset _ZL44__CreateCEngineReplayIEngineReplay_interfacev ; __CreateCEngineReplayIEngineReplay_interface(void)
		mov	dword ptr [esp], offset	_ZL40__g_CreateCEngineReplayIEngineReplay_reg ;	__g_CreateCEngineReplayIEngineReplay_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_g_pEngineReplay endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pFileSystem proc near	; DATA XREF: .ctors:002725B4o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_68, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_68+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_35, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_35+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_35+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_35+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_68, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_68+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_35, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_35+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_35+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_35+0Ch, eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowTheEngineF ; "Show the	engine filesystem path."
		mov	dword ptr [esp+8], offset _ZL4pathRK8CCommand ;	path(CCommand  const&)
		mov	dword ptr [esp+4], offset aPath	; "path"
		mov	dword ptr [esp], offset	_ZL12path_command ; path_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12path_command ; path_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowAllFilesCu ; "Show all	files currently	opened by the "...
		mov	dword ptr [esp+8], offset _ZL17fs_printopenfilesRK8CCommand ; fs_printopenfiles(CCommand  const&)
		mov	dword ptr [esp+4], offset aFs_printopenfi ; "fs_printopenfiles"
		mov	dword ptr [esp], offset	_ZL25fs_printopenfiles_command ; fs_printopenfiles_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25fs_printopenfiles_command ; fs_printopenfiles_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSetTheFilesyst ; "Set the filesystem warning level."
		mov	dword ptr [esp+8], offset _ZL16fs_warning_levelRK8CCommand ; fs_warning_level(CCommand	const&)
		mov	dword ptr [esp+4], offset aFs_warning_lev ; "fs_warning_level"
		mov	dword ptr [esp], offset	_ZL24fs_warning_level_command ;	fs_warning_level_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24fs_warning_level_command	; fs_warning_level_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_pFileSystem endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN16CFileTransferMgrC2Ev proc near ; DATA XREF:	.ctors:002725B8o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_69, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_69+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_69, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_69+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_36, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_36+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_36+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_36+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_36, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_36+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_36+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_36+0Ch, eax
		retn
_GLOBAL__sub_I__ZN16CFileTransferMgrC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_GameEventManager proc near ; DATA XREF: .ctors:002725BCo
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_70, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_70+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_37, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_37+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_37+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_37+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_70, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_70+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_37, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_37+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_37+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_37+0Ch, eax
		mov	dword ptr [esp], offset	_ZL18s_GameEventManager	; s_GameEventManager
		call	_ZN17CGameEventManagerC2Ev ; CGameEventManager::CGameEventManager(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18s_GameEventManager ; s_GameEventManager
		mov	dword ptr [esp], offset	_ZN17CGameEventManagerD2Ev ; CGameEventManager::~CGameEventManager()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDumpGameEvents ; "Dump game events	to console (1=client o"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showevents ; "net_showevents"
		mov	dword ptr [esp], offset	_ZL14net_showevents ; net_showevents
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14net_showevents ;	net_showevents
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aGameeventsmana ; "GAMEEVENTSMANAGER002"
		mov	dword ptr [esp+4], offset _ZL53__CreateCGameEventManagerIGameEventManager2_interfacev ;	__CreateCGameEventManagerIGameEventManager2_interface(void)
		mov	dword ptr [esp], offset	_ZL49__g_CreateCGameEventManagerIGameEventManager2_reg ; __g_CreateCGameEventManagerIGameEventManager2_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_g_GameEventManager endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN20CGameEventManagerOld11AddListenerEP18IGameEventListenerPKcb	proc near
					; DATA XREF: .ctors:002725C0o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_71, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_71+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21s_GameEventManagerOld ; s_GameEventManagerOld
		mov	dword ptr [esp], offset	_ZN20CGameEventManagerOldD2Ev ;	CGameEventManagerOld::~CGameEventManagerOld()
		mov	dword ptr ds:_ZL12vec2_invalid_71, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_71+4, eax
		mov	ds:_ZL21s_GameEventManagerOld, (offset _ZTV20CGameEventManagerOld+8) ; s_GameEventManagerOld
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aGameeventsma_0 ; "GAMEEVENTSMANAGER001"
		mov	dword ptr [esp+4], offset _ZL55__CreateCGameEventManagerOldIGameEventManager_interfacev	; __CreateCGameEventManagerOldIGameEventManager_interface(void)
		mov	dword ptr [esp], offset	_ZL51__g_CreateCGameEventManagerOldIGameEventManager_reg ; __g_CreateCGameEventManagerOldIGameEventManager_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I__ZN20CGameEventManagerOld11AddListenerEP18IGameEventListenerPKcb	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN10CGameTrace8SetEdictEP7edict_t proc near ; DATA XREF: .ctors:002725C4o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_72, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_72+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_72, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_72+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_38, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_38+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_38+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_38+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_38, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_38+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_38+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_38+0Ch, eax
		retn
_GLOBAL__sub_I__ZN10CGameTrace8SetEdictEP7edict_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_CurrentViewOrigin proc	near ; DATA XREF: .ctors:002725C8o
		mov	edx, 7F7FFFFFh
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:_ZL12vec2_invalid_73, edx ; vec2_invalid
		mov	ecx, 0BF800000h
		mov	ebp, esp
		mov	dword ptr ds:_ZL12vec2_invalid_73+4, edx
		mov	dword ptr ds:_ZL12vec4_invalid_39, edx ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_39+4, edx
		mov	dword ptr ds:_ZL12vec4_invalid_39+8, edx
		mov	dword ptr ds:_ZL12vec4_invalid_39+0Ch, edx
		mov	edx, 3F800000h
		mov	dword ptr ds:_ZL11vec2_origin_73, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_73+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_39, eax ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_39+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_39+8, eax
		mov	dword ptr ds:_ZL11vec4_origin_39+0Ch, eax
		mov	dword ptr ds:g_CurrentViewOrigin, eax
		mov	dword ptr ds:g_CurrentViewOrigin+4, eax
		mov	dword ptr ds:g_CurrentViewOrigin+8, eax
		mov	dword ptr ds:g_CurrentViewForward, edx
		mov	dword ptr ds:g_CurrentViewForward+4, eax
		mov	dword ptr ds:g_CurrentViewForward+8, eax
		mov	dword ptr ds:g_CurrentViewRight, eax
		mov	dword ptr ds:g_CurrentViewRight+4, ecx
		mov	dword ptr ds:g_CurrentViewRight+8, eax
		mov	dword ptr ds:g_CurrentViewUp, eax
		mov	dword ptr ds:g_CurrentViewUp+4,	eax
		mov	dword ptr ds:g_CurrentViewUp+8,	edx
		mov	dword ptr ds:g_MainViewOrigin, eax
		mov	dword ptr ds:g_MainViewOrigin+4, eax
		mov	dword ptr ds:g_MainViewOrigin+8, eax
		mov	dword ptr ds:g_MainViewForward,	edx
		mov	dword ptr ds:g_MainViewForward+4, eax
		mov	dword ptr ds:g_MainViewForward+8, eax
		mov	dword ptr ds:g_MainViewRight, eax
		mov	dword ptr ds:g_MainViewRight+4,	ecx
		mov	dword ptr ds:g_MainViewRight+8,	eax
		pop	ebp
		mov	dword ptr ds:g_MainViewUp, eax
		mov	dword ptr ds:g_MainViewUp+4, eax
		mov	dword ptr ds:g_MainViewUp+8, edx
		retn
_GLOBAL__sub_I_g_CurrentViewOrigin endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_MaxLeavesVisible proc near ; DATA XREF: .ctors:002725CCo
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_74, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_74+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_40, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_40+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_40+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_40+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_74, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_74+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_40, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_40+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_40+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_40+0Ch, eax
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawtransluc ; "r_drawtranslucentworld"
		mov	dword ptr [esp], offset	_ZL22r_drawtranslucentworld ; r_drawtranslucentworld
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL22r_drawtranslucentworld ;	r_drawtranslucentworld
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_forcedynam ; "mat_forcedynamic"
		mov	dword ptr [esp], offset	_ZL16mat_forcedynamic ;	mat_forcedynamic
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16mat_forcedynamic	; mat_forcedynamic
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDrawTheSpecifi ; "Draw the	specified leaf."
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_drawleaf ;	"r_drawleaf"
		mov	dword ptr [esp], offset	_ZL10r_drawleaf	; r_drawleaf
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10r_drawleaf ; r_drawleaf
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRenderTheWorld ; "Render the world."
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawworld ; "r_drawworld"
		mov	dword ptr [esp], offset	_ZL11r_drawworld ; r_drawworld
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11r_drawworld ; r_drawworld
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRenderFunc_det ; "Render func_detail"
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawfuncdeta ; "r_drawfuncdetail"
		mov	dword ptr [esp], offset	_ZL16r_drawfuncdetail ;	r_drawfuncdetail
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_drawfuncdetail	; r_drawfuncdetail
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aFog_enable_wat ; "fog_enable_water_fog"
		mov	dword ptr [esp], offset	_ZL20fog_enable_water_fog ; fog_enable_water_fog
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20fog_enable_water_fog ; fog_enable_water_fog
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aActivateDeacti ; "Activate/deactivates a fast z-setting a"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_fastzreject ; "r_fastzreject"
		mov	dword ptr [esp], offset	_ZL13r_fastzreject ; r_fastzreject
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13r_fastzreject ; r_fastzreject
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aActivatesDeact ; "Activates/deactivates fast z rejection "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_fastzrejectd ; "r_fastzrejectdisp"
		mov	dword ptr [esp], offset	_ZL17r_fastzrejectdisp ; r_fastzrejectdisp
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_fastzrejectdisp ; r_fastzrejectdisp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aUseTheNewSimdV ; "Use the new SIMD	version	of CEngineBSPT"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aOpt_enumeratel ; "opt_EnumerateLeavesFastAlgorithm"
		mov	dword ptr [esp], offset	_ZL32opt_EnumerateLeavesFastAlgorithm ;	opt_EnumerateLeavesFastAlgorithm
		mov	ds:_ZL13s_ToolBSPTree, (offset _ZTV14CEngineBSPTree+8) ; s_ToolBSPTree
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL32opt_EnumerateLeavesFastAlgorithm	; opt_EnumerateLeavesFastAlgorithm
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_MaxLeavesVisible endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z14Shader_Connectb proc	near ; DATA XREF: .ctors:002725D0o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_75, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_75+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_75, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_75+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_41, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_41+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_41+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_41+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_41, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_41+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_41+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_41+0Ch, eax
		mov	ds:_ZL22s_MaterialProxyFactory,	(offset	_ZTV21CMaterialProxyFactory+8) ; s_MaterialProxyFactory
		retn
_GLOBAL__sub_I__Z14Shader_Connectb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN11CHLTVClientC2EiP11CBaseServer proc near ; DATA XREF: .ctors:002725D4o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_76, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_76+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_42, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_42+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_42+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_42+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_76, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_76+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_42, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_42+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_42+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_42+0Ch, eax
		mov	dword ptr [esp+10h], offset aMaxSourcetvSpe ; "Max SourceTV spectator bandwidth	rate a"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a8000	; "8000"
		mov	dword ptr [esp+4], offset aTv_maxrate ;	"tv_maxrate"
		mov	dword ptr [esp], offset	_ZL10tv_maxrate	; tv_maxrate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10tv_maxrate ; tv_maxrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSourcetvPasswo ; "SourceTV	password for relay proxies"
		mov	dword ptr [esp+0Ch], 20120h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aTv_relaypasswo ; "tv_relaypassword"
		mov	dword ptr [esp], offset	_ZL16tv_relaypassword ;	tv_relaypassword
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16tv_relaypassword	; tv_relaypassword
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLimitsSpectato ; "Limits spectators to chat only every n "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset aUtf8+4)
		mov	dword ptr [esp+4], offset aTv_chattimelim ; "tv_chattimelimit"
		mov	dword ptr [esp], offset	_ZL16tv_chattimelimit ;	tv_chattimelimit
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16tv_chattimelimit	; tv_chattimelimit
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSetTheDefaultC ; "Set the default chat group size"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTv_chatgroupsi ; "tv_chatgroupsize"
		mov	dword ptr [esp], offset	_ZL16tv_chatgroupsize ;	tv_chatgroupsize
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16tv_chatgroupsize	; tv_chatgroupsize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN11CHLTVClientC2EiP11CBaseServer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_tv_snapshotrate proc near ; DATA	XREF: .ctors:002725D8o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_77, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_77+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_43, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_43+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_43+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_43+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_77, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_77+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_43, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_43+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_43+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_43+0Ch, eax
		mov	dword ptr [esp+10h], offset aRelayProxiesRe ; "Relay proxies retry connection after ne"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aTv_autoretry	; "tv_autoretry"
		mov	dword ptr [esp], offset	_ZL12tv_autoretry ; tv_autoretry
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12tv_autoretry ; tv_autoretry
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSourcetvConnec ; "SourceTV	connection timeout in seconds."...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a27030+3)
		mov	dword ptr [esp+4], offset aTv_timeout ;	"tv_timeout"
		mov	dword ptr [esp], offset	_ZL10tv_timeout	; tv_timeout
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10tv_timeout ; tv_timeout
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSnapshotsBroad ; "Snapshots broadcasted per second"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1016+2)
		mov	dword ptr [esp+4], offset aTv_snapshotrat ; "tv_snapshotrate"
		mov	dword ptr [esp], offset	tv_snapshotrate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset tv_snapshotrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_tv_snapshotrate endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN17CHLTVDemoRecorderC2Ev proc near ; DATA XREF: .ctors:002725DCo
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_78, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_78+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_78, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_78+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_44, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_44+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_44+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_44+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_44, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_44+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_44+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_44+0Ch, eax
		retn
_GLOBAL__sub_I__ZN17CHLTVDemoRecorderC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_hltv proc near		; DATA XREF: .ctors:002725E0o
		push	ebp
		mov	edx, 7F7FFFFFh
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 38h
		mov	dword ptr ds:_ZL12vec2_invalid_79, edx ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_79+4, edx
		mov	dword ptr ds:_ZL12vec4_invalid_45, edx ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_45+4, edx
		mov	dword ptr ds:_ZL12vec4_invalid_45+8, edx
		mov	dword ptr ds:_ZL12vec4_invalid_45+0Ch, edx
		mov	[esp+18h], eax
		mov	dword ptr ds:_ZL11vec2_origin_79, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_79+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_45, eax ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_45+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_45+8, eax
		mov	dword ptr ds:_ZL11vec4_origin_45+0Ch, eax
		mov	dword ptr [esp+20h], 437F0000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aMaximumClientN ; "Maximum client number on	SourceTV serve"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset dword_1EC2E4
		mov	dword ptr [esp+4], offset aTv_maxclients ; "tv_maxclients"
		mov	dword ptr [esp], offset	_ZL13tv_maxclients ; tv_maxclients
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13tv_maxclients ; tv_maxclients
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAutomaticallyR ; "Automatically records all games as Sour"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTv_autorecord ; "tv_autorecord"
		mov	dword ptr [esp], offset	tv_autorecord
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset tv_autorecord
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL17tv_name_changed_fP7IConVarPKcf	; tv_name_changed_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aSourcetvHostNa ; "SourceTV	host name"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset aSourcetv ; "SourceTV"
		mov	dword ptr [esp+4], offset aTv_name ; "tv_name"
		mov	dword ptr [esp], offset	tv_name
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset tv_name
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSourcetvPass_0 ; "SourceTV	password for all clients"
		mov	dword ptr [esp+0Ch], 20120h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aTv_password ; "tv_password"
		mov	dword ptr [esp], offset	_ZL11tv_password ; tv_password
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11tv_password ; tv_password
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aOverridesTheSo ; "Overrides the SourceTV master root addr"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTv_overridemas ; "tv_overridemaster"
		mov	dword ptr [esp], offset	_ZL17tv_overridemaster ; tv_overridemaster
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17tv_overridemaster ; tv_overridemaster
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDispatchClient ; "Dispatch	clients	to relay proxies: 0=ne"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aTv_dispatchmod ; "tv_dispatchmode"
		mov	dword ptr [esp], offset	_ZL15tv_dispatchmode ; tv_dispatchmode
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15tv_dispatchmode ; tv_dispatchmode
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aTransmitAllEnt ; "Transmit	all entities (not only directo"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTv_transmitall ; "tv_transmitall"
		mov	dword ptr [esp], offset	tv_transmitall
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset tv_transmitall
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSourcetvDebugI ; "SourceTV	debug info."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTv_debug ; "tv_debug"
		mov	dword ptr [esp], offset	tv_debug
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset tv_debug
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL18tv_title_changed_fP7IConVarPKcf ; tv_title_changed_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aSetTitleForSou ; "Set title for SourceTV spectator	UI"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset aSourcetv ; "SourceTV"
		mov	dword ptr [esp+4], offset aTv_title ; "tv_title"
		mov	dword ptr [esp], offset	tv_title
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset tv_title
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aEnableDeltaEnt ; "Enable delta entity bit stream cache"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset aMore2+7)
		mov	dword ptr [esp+4], offset aTv_deltacache ; "tv_deltacache"
		mov	dword ptr [esp], offset	_ZL13tv_deltacache ; tv_deltacache
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13tv_deltacache ; tv_deltacache
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRelayVoiceData ; "Relay voice data: 0=off,	1=on"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aTv_relayvoice ; "tv_relayvoice"
		mov	dword ptr [esp], offset	_ZL13tv_relayvoice ; tv_relayvoice
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13tv_relayvoice ; tv_relayvoice
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowSourcetvSe ; "Show SourceTV server status."
		mov	dword ptr [esp+8], offset _ZL9tv_statusRK8CCommand ; tv_status(CCommand	 const&)
		mov	dword ptr [esp+4], offset aTv_status ; "tv_status"
		mov	dword ptr [esp], offset	_ZL17tv_status_command ; tv_status_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17tv_status_command ; tv_status_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aConnectToSourc ; "Connect to SourceTV server and relay br"...
		mov	dword ptr [esp+8], offset _ZL8tv_relayRK8CCommand ; tv_relay(CCommand  const&)
		mov	dword ptr [esp+4], offset aTv_relay ; "tv_relay"
		mov	dword ptr [esp], offset	_ZL16tv_relay_command ;	tv_relay_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16tv_relay_command	; tv_relay_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aStopsTheSource ; "Stops the SourceTV broadcast."
		mov	dword ptr [esp+8], offset _ZL7tv_stopRK8CCommand ; tv_stop(CCommand  const&)
		mov	dword ptr [esp+4], offset aTv_stop ; "tv_stop"
		mov	dword ptr [esp], offset	_ZL15tv_stop_command ; tv_stop_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15tv_stop_command ; tv_stop_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aReconnectsTheS ; "Reconnects the SourceTV relay proxy."
		mov	dword ptr [esp+8], offset _ZL8tv_retryRK8CCommand ; tv_retry(CCommand  const&)
		mov	dword ptr [esp+4], offset aTv_retry ; "tv_retry"
		mov	dword ptr [esp], offset	_ZL16tv_retry_command ;	tv_retry_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16tv_retry_command	; tv_retry_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aStartsSourcetv ; "Starts SourceTV demo recording."
		mov	dword ptr [esp+8], offset _ZL9tv_recordRK8CCommand ; tv_record(CCommand	 const&)
		mov	dword ptr [esp+4], offset aTv_record ; "tv_record"
		mov	dword ptr [esp], offset	_ZL17tv_record_command ; tv_record_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17tv_record_command ; tv_record_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aStopsSourcetvD ; "Stops SourceTV demo recording."
		mov	dword ptr [esp+8], offset _ZL13tv_stoprecordRK8CCommand	; tv_stoprecord(CCommand  const&)
		mov	dword ptr [esp+4], offset aTv_stoprecord ; "tv_stoprecord"
		mov	dword ptr [esp], offset	_ZL21tv_stoprecord_command ; tv_stoprecord_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21tv_stoprecord_command ; tv_stoprecord_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowsListOfCon ; "Shows list of connected SourceTV	client"...
		mov	dword ptr [esp+8], offset _ZL10tv_clientsRK8CCommand ; tv_clients(CCommand  const&)
		mov	dword ptr [esp+4], offset aTv_clients ;	"tv_clients"
		mov	dword ptr [esp], offset	_ZL18tv_clients_command	; tv_clients_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18tv_clients_command ; tv_clients_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSendAScreenMes ; "Send a screen message to	all clients."
		mov	dword ptr [esp+8], offset _ZL6tv_msgRK8CCommand	; tv_msg(CCommand  const&)
		mov	dword ptr [esp+4], offset aTv_msg ; "tv_msg"
		mov	dword ptr [esp], offset	_ZL14tv_msg_command ; tv_msg_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14tv_msg_command ;	tv_msg_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_hltv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_hltvtest	proc near	; DATA XREF: .ctors:002725E4o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_80, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_80+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_80, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_80+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_46, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_46+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_46+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_46+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_46, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_46+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_46+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_46+0Ch, eax
		retn
_GLOBAL__sub_I_hltvtest	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_bDedicatedServerBenchmarkMode proc near ; DATA	XREF: .ctors:002725E8o

var_18		= dword	ptr -18h

		push	ebp
		fldz
		mov	ebp, esp
		sub	esp, 48h
		fst	dword ptr ds:_ZL11vec2_origin_81 ; vec2_origin
		fst	dword ptr ds:_ZL11vec2_origin_81+4
		fst	dword ptr ds:_ZL11vec4_origin_47 ; vec4_origin
		fst	dword ptr ds:_ZL11vec4_origin_47+4
		fst	dword ptr ds:_ZL11vec4_origin_47+8
		fst	dword ptr ds:_ZL11vec4_origin_47+0Ch
		fstp	[ebp+var_18]
		mov	dword ptr ds:_ZL12vec2_invalid_81, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_81+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_47, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_47+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_47+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_47+0Ch, 7F7FFFFFh
		mov	dword ptr [esp], 0
		call	_Z11DataMapInitI13player_info_sEP9datamap_tPT_ ; DataMapInit<player_info_s>(player_info_s *)
		fld	[ebp+var_18]
		mov	ds:_ZN26player_info_s_DataDescInit15g_DataMapHolderE, eax ; player_info_s_DataDescInit::g_DataMapHolder
		xor	eax, eax
		fst	qword ptr ds:_ZL11g_HostTimes+50h
		mov	esi, esi
		lea	edi, [edi+0]

loc_65930:				; CODE XREF: _GLOBAL__sub_I_g_bDedicatedServerBenchmarkMode+9Dj
		fst	qword ptr ds:(_ZL11g_HostTimes+0A8h)[eax*8]
		add	eax, 1
		cmp	eax, 7
		jnz	short loc_65930
		fstp	st
		mov	dword ptr [esp+10h], offset aDrawHumanBlood ; "Draw human blood"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aViolence_hbloo ; "violence_hblood"
		mov	dword ptr [esp], offset	_ZL15violence_hblood ; violence_hblood
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15violence_hblood ; violence_hblood
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowHumanGibEn ; "Show human gib entities"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aViolence_hgibs ; "violence_hgibs"
		mov	dword ptr [esp], offset	_ZL14violence_hgibs ; violence_hgibs
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14violence_hgibs ;	violence_hgibs
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDrawAlienBlood ; "Draw alien blood"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aViolence_abloo ; "violence_ablood"
		mov	dword ptr [esp], offset	_ZL15violence_ablood ; violence_ablood
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15violence_ablood ; violence_ablood
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowAlienGibEn ; "Show alien gib entities"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aViolence_agibs ; "violence_agibs"
		mov	dword ptr [esp], offset	_ZL14violence_agibs ; violence_agibs
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14violence_agibs ;	violence_agibs
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aEnableCloseCap ; "Enable close captioning."
		mov	dword ptr [esp+0Ch], 1000280h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aClosecaption	; "closecaption"
		mov	dword ptr [esp], offset	closecaption
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset closecaption
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aRestartSoundSy ; "Restart sound system."
		mov	dword ptr [esp+8], offset _Z13Snd_Restart_fv ; Snd_Restart_f(void)
		mov	dword ptr [esp+4], offset aSnd_restart ; "snd_restart"
		mov	dword ptr [esp], offset	_ZL11snd_restart ; snd_restart
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11snd_restart ; snd_restart
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDumpMemoryStat ; "Dump memory stats to text file."
		mov	dword ptr [esp+8], offset _ZL8mem_dumpRK8CCommand ; mem_dump(CCommand  const&)
		mov	dword ptr [esp+4], offset aMem_dump ; "mem_dump"
		mov	dword ptr [esp], offset	_ZL16mem_dump_command ;	mem_dump_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16mem_dump_command	; mem_dump_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], (offset asc_20E578+4)
		mov	dword ptr [esp+8], offset _ZL11mem_compactRK8CCommand ;	mem_compact(CCommand  const&)
		mov	dword ptr [esp+4], offset aMem_compact ; "mem_compact"
		mov	dword ptr [esp], offset	_ZL19mem_compact_command ; mem_compact_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19mem_compact_command ; mem_compact_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], (offset asc_20E578+4)
		mov	dword ptr [esp+8], offset _ZL7mem_eatRK8CCommand ; mem_eat(CCommand  const&)
		mov	dword ptr [esp+4], offset aMem_eat ; "mem_eat"
		mov	dword ptr [esp], offset	_ZL15mem_eat_command ; mem_eat_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15mem_eat_command ; mem_eat_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], (offset asc_20E578+4)
		mov	dword ptr [esp+8], offset _ZL8mem_testRK8CCommand ; mem_test(CCommand  const&)
		mov	dword ptr [esp+4], offset aMem_test ; "mem_test"
		mov	dword ptr [esp], offset	_ZL16mem_test_command ;	mem_test_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16mem_test_command	; mem_test_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRunHeapCheckAt ; "Run heap	check at end of	every frame\n"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMem_test_each_ ; "mem_test_each_frame"
		mov	dword ptr [esp], offset	_ZL19mem_test_each_frame ; mem_test_each_frame
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19mem_test_each_frame ; mem_test_each_frame
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRunHeapCheck_0 ; "Run heap	check at a specified interval\n"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMem_test_every ; "mem_test_every_n_seconds"
		mov	dword ptr [esp], offset	_ZL24mem_test_every_n_seconds ;	mem_test_every_n_seconds
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24mem_test_every_n_seconds	; mem_test_every_n_seconds
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRunEngineInSin ; "Run engine in single step mode (	set ne"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSinglestep ;	"singlestep"
		mov	dword ptr [esp], offset	_ZL10singlestep	; singlestep
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10singlestep ; singlestep
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSetTo1ToAdvanc ; "Set to 1	to advance to next frame ( whe"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNext	; "next"
		mov	dword ptr [esp], offset	_ZL4next ; next
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL4next ; next
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aPrintADebugMes ; "Print a debug message when the client o"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_showcache ; "host_showcachemiss"
		mov	dword ptr [esp], offset	host_showcachemiss
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_showcachemiss
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDumpCurrentAnd ; "Dump current and	max heap usage info to"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMem_dumpstats ; "mem_dumpstats"
		mov	dword ptr [esp], offset	_ZL13mem_dumpstats ; mem_dumpstats
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13mem_dumpstats ; mem_dumpstats
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aPrintOfIpcCall ; "Print # of IPC calls this number	of tim"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_showipcca ; "host_ShowIPCCallCount"
		mov	dword ptr [esp], offset	_ZL21host_ShowIPCCallCount ; host_ShowIPCCallCount
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21host_ShowIPCCallCount ; host_ShowIPCCallCount
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL22OnChangeTelemetryPauseP7IConVarPKcf ; OnChangeTelemetryPause(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aPauseTelemetry ; "Pause Telemetry"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTelemetry_paus ; "telemetry_pause"
		mov	dword ptr [esp], offset	telemetry_pause
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_pause
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL23OnChangeTelemetryResumeP7IConVarPKcf ;	OnChangeTelemetryResume(IConVar	*,char	const*,float)
		mov	dword ptr [esp+10h], offset aResumeTelemetr ; "Resume Telemetry"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTelemetry_resu ; "telemetry_resume"
		mov	dword ptr [esp], offset	telemetry_resume
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_resume
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL30OnChangeTelemetryZoneFilterValP7IConVarPKcf ; OnChangeTelemetryZoneFilterVal(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aSetTelemetryZo ; "Set Telemetry ZoneFilterVal (MicroSecon"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a3500+1)
		mov	dword ptr [esp+4], offset aTelemetry_filt ; "telemetry_filtervalue"
		mov	dword ptr [esp], offset	telemetry_filtervalue
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_filtervalue
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL27OnChangeTelemetryFrameCountP7IConVarPKcf ; OnChangeTelemetryFrameCount(IConVar	*,char	const*,float)
		mov	dword ptr [esp+10h], offset aSetTelemetryCo ; "Set Telemetry count of frames to	captur"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTelemetry_fram ; "telemetry_framecount"
		mov	dword ptr [esp], offset	telemetry_framecount
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_framecount
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL22OnChangeTelemetryLevelP7IConVarPKcf ; OnChangeTelemetryLevel(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aSetTelemetryPr ; "Set Telemetry profile level: 0 being of"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTelemetry_leve ; "telemetry_level"
		mov	dword ptr [esp], offset	telemetry_level
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_level
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL23OnChangeTelemetryServerP7IConVarPKcf ;	OnChangeTelemetryServer(IConVar	*,char	const*,float)
		mov	dword ptr [esp+10h], offset aSetTelemetrySe ; "Set Telemetry server"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset aLocalhost ; "localhost"
		mov	dword ptr [esp+4], offset aTelemetry_serv ; "telemetry_server"
		mov	dword ptr [esp], offset	telemetry_server
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_server
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL26OnChangeTelemetryDemoStartP7IConVarPKcf ; OnChangeTelemetryDemoStart(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aWhenPlayingDem ; "When playing demo, start	telemetry on t"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTelemetry_demo ; "telemetry_demostart"
		mov	dword ptr [esp], offset	telemetry_demostart
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_demostart
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL24OnChangeTelemetryDemoEndP7IConVarPKcf ; OnChangeTelemetryDemoEnd(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aWhenPlayingD_0 ; "When playing demo, stop telemetry on ti"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTelemetry_de_0 ; "telemetry_demoend"
		mov	dword ptr [esp], offset	telemetry_demoend
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset telemetry_demoend
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRunTheHostInTh ; "Run the host in threaded	mode, (0 == of"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_thread_mo ; "host_thread_mode"
		mov	dword ptr [esp], offset	host_thread_mode
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_thread_mode
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+24h], offset _Z22OnChangeThreadAffinityP7IConVarPKcf ; OnChangeThreadAffinity(IConVar *,char  const*,float)
		mov	dword ptr [esp+20h], 0
		mov	dword ptr [esp+1Ch], 0
		mov	dword ptr [esp+18h], 0
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], offset aEnableSettingA ; "Enable setting affinity"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aThreadpool_aff ; "threadpool_affinity"
		mov	dword ptr [esp], offset	threadpool_affinity
		call	_ZN6ConVarC2EPKcS1_iS1_bfbfPFvP7IConVarS1_fE ; ConVar::ConVar(char  const*,char	 const*,int,char  const*,bool,float,bool,float,void (*)(IConVar	*,char	const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset threadpool_affinity
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_profile	; "host_profile"
		mov	dword ptr [esp], offset	_ZL12host_profile ; host_profile
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12host_profile ; host_profile
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aApplyCl_cmdrat ; "Apply cl_cmdrate	and cl_updaterate to l"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_limitloca ; "host_limitlocal"
		mov	dword ptr [esp], offset	host_limitlocal
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_limitlocal
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSetToLockPerFr ; "Set to lock per-frame time elapse."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_framerate ; "host_framerate"
		mov	dword ptr [esp], offset	host_framerate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_framerate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aPrescaleTheClo ; "Prescale	the clock by this amount."
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1_0+1)
		mov	dword ptr [esp+4], offset aHost_timescale ; "host_timescale"
		mov	dword ptr [esp], offset	host_timescale
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_timescale
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowGeneralSys ; "Show general system running times."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_speeds ; "host_speeds"
		mov	dword ptr [esp], offset	host_speeds
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_speeds
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMemoryThreshol ; "Memory threshold	below which the	host s"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1020+2)
		mov	dword ptr [esp+4], offset aHost_flush_thr ; "host_flush_threshold"
		mov	dword ptr [esp], offset	host_flush_threshold
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_flush_threshold
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _Z30HostTimerSpinMsChangedCallbackP7IConVarPKcf ; HostTimerSpinMsChangedCallback(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aUseCpuBusyLoop ; "Use CPU busy-loop for improved timer pr"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_timer_spi ; "host_timer_spin_ms"
		mov	dword ptr [esp], offset	host_timer_spin_ms
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_timer_spin_ms
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSpewCpuTimerJi ; "Spew CPU	timer jitter for the last 128 "...
		mov	dword ptr [esp+8], offset _ZL17host_timer_reportRK8CCommand ; host_timer_report(CCommand  const&)
		mov	dword ptr [esp+4], offset aHost_timer_rep ; "host_timer_report"
		mov	dword ptr [esp], offset	_ZL25host_timer_report_command ; host_timer_report_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25host_timer_report_command ; host_timer_report_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSetDeveloperMe ; "Set developer message level"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aDeveloper ; "developer"
		mov	dword ptr [esp], offset	developer
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset developer
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 40400000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 3F800000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aGameSkillLevel ; "Game skill level	(1-3)."
		mov	dword ptr [esp+0Ch], 1000080h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSkill ; "skill"
		mov	dword ptr [esp], offset	skill
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset skill
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRunningADeathm ; "Running a deathmatch server."
		mov	dword ptr [esp+0Ch], 100h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aDeathmatch ;	"deathmatch"
		mov	dword ptr [esp], offset	deathmatch
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset deathmatch
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aCooperativePla ; "Cooperative play."
		mov	dword ptr [esp+0Ch], 100h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCoop	; "coop"
		mov	dword ptr [esp], offset	coop
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset coop
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aWriteExtraInfo ; "Write extra information into .vcr file."...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aVcr_verbose ; "vcr_verbose"
		mov	dword ptr [esp], offset	vcr_verbose
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset vcr_verbose
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aRecomputesCloc ; "Recomputes clock	speed (for debugging p"...
		mov	dword ptr [esp+8], offset _Z21Host_RecomputeSpeed_fv ; Host_RecomputeSpeed_f(void)
		mov	dword ptr [esp+4], offset aRecompute_spee ; "recompute_speed"
		mov	dword ptr [esp], offset	_ZL15recompute_speed ; recompute_speed
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15recompute_speed ; recompute_speed
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aWriteOutTheDat ; "Write out the datatable instrumentation"...
		mov	dword ptr [esp+8], offset _Z11DTI_Flush_fv ; DTI_Flush_f(void)
		mov	dword ptr [esp+4], offset aDti_flush ; "dti_flush"
		mov	dword ptr [esp], offset	_ZL9dti_flush ;	dti_flush
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL9dti_flush	; dti_flush
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aWritePeriodicM ; "Write periodic memstats dumps every n s"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMem_periodicdu ; "mem_periodicdumps"
		mov	dword ptr [esp], offset	_ZL17mem_periodicdumps ; mem_periodicdumps
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17mem_periodicdumps ; mem_periodicdumps
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aRunOffSomeTime ; "Run off some time without rendering/upd"...
		mov	dword ptr [esp+8], offset _ZL15host_runofftimeRK8CCommand ; host_runofftime(CCommand  const&)
		mov	dword ptr [esp+4], offset aHost_runofftim ; "host_runofftime"
		mov	dword ptr [esp], offset	_ZL23host_runofftime_command ; host_runofftime_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23host_runofftime_command ; host_runofftime_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aForceTheHostTo ; "Force the host to sleep a certain numbe"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHost_sleep ;	"host_sleep"
		mov	dword ptr [esp], offset	_ZL10host_Sleep	; host_Sleep
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10host_Sleep ; host_Sleep
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_bDedicatedServerBenchmarkMode endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_host_name proc near	; DATA XREF: .ctors:002725ECo
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_82, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_82+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_48, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_48+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_48+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_48+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_82, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_82+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_48, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_48+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_48+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_48+0Ch, eax
		mov	dword ptr [esp+14h], offset _ZL19host_name_changed_fP7IConVarPKcf ; host_name_changed_f(IConVar	*,char	const*,float)
		mov	dword ptr [esp+10h], offset aHostnameForSer ; "Hostname	for server."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aHostname ; "hostname"
		mov	dword ptr [esp], offset	host_name
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_name
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aCurrentMapName ; "Current map name."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aHost_map ; "host_map"
		mov	dword ptr [esp], offset	host_map
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset host_map
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRecordMicDataA ; "Record mic data and decompressed	voice "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aVoice_recordto ; "voice_recordtofile"
		mov	dword ptr [esp], offset	voice_recordtofile
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset voice_recordtofile
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL26voiceconvar_file_changed_fP7IConVarPKcf ; voiceconvar_file_changed_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aGetVoiceInputF ; "Get voice input from 'voice_input.wav' "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aVoice_inputfro ; "voice_inputfromfile"
		mov	dword ptr [esp], offset	voice_inputfromfile
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset voice_inputfromfile
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL26voiceconvar_file_changed_fP7IConVarPKcf ; voiceconvar_file_changed_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aAllowOrDisal_1 ; "Allow or	disallow clients from using vo"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_allow_voice ; "sv_allow_voice_from_file"
		mov	dword ptr [esp], offset	sv_allow_voice_from_file
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_allow_voice_from_file
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aEnableDisableU ; "Enable/disable using Steam Voice	instea"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_use_steam_v ; "sv_use_steam_voice"
		mov	dword ptr [esp], offset	sv_use_steam_voice
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_use_steam_voice
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShutdownAndRes ; "Shutdown	and restart the	engine."
		mov	dword ptr [esp+8], offset _ZL8_restartRK8CCommand ; _restart(CCommand  const&)
		mov	dword ptr [esp+4], (offset aSnd_restart+3)
		mov	dword ptr [esp], offset	_ZL16_restart_command ;	_restart_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16_restart_command	; _restart_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDisplayMapAndC ; "Display map and connection status."
		mov	dword ptr [esp+8], offset _ZL6statusRK8CCommand	; status(CCommand  const&)
		mov	dword ptr [esp+4], offset aStatus ; "status"
		mov	dword ptr [esp], offset	_ZL14status_command ; status_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14status_command ;	status_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDisplayPingToS ; "Display ping to server."
		mov	dword ptr [esp+8], offset _ZL4pingRK8CCommand ;	ping(CCommand  const&)
		mov	dword ptr [esp+4], offset aPing	; "ping"
		mov	dword ptr [esp], offset	_ZL12ping_command ; ping_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12ping_command ; ping_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aRestartTheGame ; "Restart the game	on the same level (add"...
		mov	dword ptr [esp+8], offset _ZL7restartRK8CCommand ; restart(CCommand  const&)
		mov	dword ptr [esp+4], (offset aSnd_restart+4)
		mov	dword ptr [esp], offset	_ZL15restart_command ; restart_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15restart_command ; restart_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aReloadTheMostR ; "Reload the most recent saved game (add "...
		mov	dword ptr [esp+8], offset _ZL6reloadRK8CCommand	; reload(CCommand  const&)
		mov	dword ptr [esp+4], (offset aVox_reload+4)
		mov	dword ptr [esp], offset	_ZL14reload_command ; reload_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14reload_command ;	reload_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDisconnectGame ; "Disconnect game from server."
		mov	dword ptr [esp+8], offset _ZL10disconnectRK8CCommand ; disconnect(CCommand  const&)
		mov	dword ptr [esp+4], offset aDisconnect ;	"disconnect"
		mov	dword ptr [esp], offset	_ZL18disconnect_command	; disconnect_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18disconnect_command ; disconnect_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPrintVersionIn ; "Print version info string."
		mov	dword ptr [esp+8], offset _ZL7versionRK8CCommand ; version(CCommand  const&)
		mov	dword ptr [esp+4], offset aVersion ; "version"
		mov	dword ptr [esp], offset	_ZL15version_command ; version_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15version_command ; version_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aToggleTheServe ; "Toggle the server pause state."
		mov	dword ptr [esp+8], offset _ZL5pauseRK8CCommand ; pause(CCommand	 const&)
		mov	dword ptr [esp+4], offset aPause ; "pause"
		mov	dword ptr [esp], offset	_ZL13pause_command ; pause_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13pause_command ; pause_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSetThePauseSta ; "Set the pause state of the server."
		mov	dword ptr [esp+8], offset _ZL8setpauseRK8CCommand ; setpause(CCommand  const&)
		mov	dword ptr [esp+4], offset aSetpause ; "setpause"
		mov	dword ptr [esp], offset	_ZL16setpause_command ;	setpause_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16setpause_command	; setpause_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnpauseTheGame ; "Unpause the game."
		mov	dword ptr [esp+8], offset _ZL7unpauseRK8CCommand ; unpause(CCommand  const&)
		mov	dword ptr [esp+4], offset aUnpause ; "unpause"
		mov	dword ptr [esp], offset	_ZL15unpause_command ; unpause_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15unpause_command ; unpause_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aKickAPlayerByU ; "Kick a player by	userid or uniqueid, wi"...
		mov	dword ptr [esp+8], offset _ZL6kickidRK8CCommand	; kickid(CCommand  const&)
		mov	dword ptr [esp+4], offset aKickid ; "kickid"
		mov	dword ptr [esp], offset	_ZL14kickid_command ; kickid_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14kickid_command ;	kickid_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aKickAPlayerByN ; "Kick a player by	name."
		mov	dword ptr [esp+8], offset _ZL4kickRK8CCommand ;	kick(CCommand  const&)
		mov	dword ptr [esp+4], offset aKick	; "kick"
		mov	dword ptr [esp], offset	_ZL12kick_command ; kick_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12kick_command ; kick_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aKicksEverybody ; "Kicks everybody connected with a	messag"...
		mov	dword ptr [esp+8], offset _ZL7kickallRK8CCommand ; kickall(CCommand  const&)
		mov	dword ptr [esp+4], offset aKickall ; "kickall"
		mov	dword ptr [esp], offset	_ZL15kickall_command ; kickall_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15kickall_command ; kickall_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPrintMemorySta ; "Print memory stats."
		mov	dword ptr [esp+8], offset _ZL6memoryRK8CCommand	; memory(CCommand  const&)
		mov	dword ptr [esp+4], offset aMemory ; "memory"
		mov	dword ptr [esp], offset	_ZL14memory_command ; memory_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14memory_command ;	memory_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShutdownTheSer ; "Shutdown	the server."
		mov	dword ptr [esp+8], offset _ZL10killserverRK8CCommand ; killserver(CCommand  const&)
		mov	dword ptr [esp+4], offset aKillserver ;	"killserver"
		mov	dword ptr [esp], offset	_ZL18killserver_command	; killserver_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18killserver_command ; killserver_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aListLoadedMode ; "List loaded models."
		mov	dword ptr [esp+8], offset _ZL10listmodelsRK8CCommand ; listmodels(CCommand  const&)
		mov	dword ptr [esp+4], offset aListmodels ;	"listmodels"
		mov	dword ptr [esp], offset	_ZL18listmodels_command	; listmodels_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18listmodels_command ; listmodels_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aIncrementSpeci ; "Increment specified convar value."
		mov	dword ptr [esp+8], offset _ZL12incrementvarRK8CCommand ; incrementvar(CCommand	const&)
		mov	dword ptr [esp+4], offset aIncrementvar	; "incrementvar"
		mov	dword ptr [esp], offset	_ZL20incrementvar_command ; incrementvar_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20incrementvar_command ; incrementvar_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aMultiplySpecif ; "Multiply	specified convar value."
		mov	dword ptr [esp+8], offset _ZL7multvarRK8CCommand ; multvar(CCommand  const&)
		mov	dword ptr [esp+4], offset aMultvar ; "multvar"
		mov	dword ptr [esp], offset	_ZL15multvar_command ; multvar_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15multvar_command ; multvar_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPrintStringTab ; "Print string tables to console."
		mov	dword ptr [esp+8], offset _ZL16dumpstringtablesRK8CCommand ; dumpstringtables(CCommand	const&)
		mov	dword ptr [esp+4], offset aDumpstringtabl ; "dumpstringtables"
		mov	dword ptr [esp], offset	_ZL24dumpstringtables_command ;	dumpstringtables_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24dumpstringtables_command	; dumpstringtables_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aExitTheEngine_ ; "Exit the	engine."
		mov	dword ptr [esp+8], offset _Z11Host_Quit_fRK8CCommand ; Host_Quit_f(CCommand  const&)
		mov	dword ptr [esp+4], offset aQuit	; "quit"
		mov	dword ptr [esp], offset	quit
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset quit
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aExitTheEngine_ ; "Exit the	engine."
		mov	dword ptr [esp+8], offset _Z11Host_Quit_fRK8CCommand ; Host_Quit_f(CCommand  const&)
		mov	dword ptr [esp+4], offset aExit	; "exit"
		mov	dword ptr [esp], offset	_ZL8cmd_exit ; cmd_exit
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8cmd_exit ; cmd_exit
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aFlushUnlockedC ; "Flush unlocked cache memory."
		mov	dword ptr [esp+8], offset _ZL5flushRK8CCommand ; flush(CCommand	 const&)
		mov	dword ptr [esp+4], (offset aDti_flush+4)
		mov	dword ptr [esp], offset	_ZL13flush_command ; flush_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13flush_command ; flush_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aFlushUnlockedA ; "Flush unlocked and locked cache memory."...
		mov	dword ptr [esp+8], offset _ZL12flush_lockedRK8CCommand ; flush_locked(CCommand	const&)
		mov	dword ptr [esp+4], offset aFlush_locked	; "flush_locked"
		mov	dword ptr [esp], offset	_ZL20flush_locked_command ; flush_locked_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20flush_locked_command ; flush_locked_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aCache_printSec ; "cache_print [section]\nPrint out	content"...
		mov	dword ptr [esp+8], offset _ZL11cache_printRK8CCommand ;	cache_print(CCommand  const&)
		mov	dword ptr [esp+4], offset aCache_print ; "cache_print"
		mov	dword ptr [esp], offset	_ZL19cache_print_command ; cache_print_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19cache_print_command ; cache_print_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aCache_print_lr ; "cache_print_lru [section]\nPrint	out con"...
		mov	dword ptr [esp+8], offset _ZL15cache_print_lruRK8CCommand ; cache_print_lru(CCommand  const&)
		mov	dword ptr [esp+4], offset aCache_print__0 ; "cache_print_lru"
		mov	dword ptr [esp], offset	_ZL23cache_print_lru_command ; cache_print_lru_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23cache_print_lru_command ; cache_print_lru_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aCache_print_su ; "cache_print_summary [section]\nPrint out"...
		mov	dword ptr [esp+8], offset _ZL19cache_print_summaryRK8CCommand ;	cache_print_summary(CCommand  const&)
		mov	dword ptr [esp+4], offset aCache_print__1 ; "cache_print_summary"
		mov	dword ptr [esp], offset	_ZL27cache_print_summary_command ; cache_print_summary_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27cache_print_summary_command ; cache_print_summary_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aDumpMemoryList ; "dump memory list	(linux only)"
		mov	dword ptr [esp+8], offset _ZL11memory_listRK8CCommand ;	memory_list(CCommand  const&)
		mov	dword ptr [esp+4], offset aMemory_list ; "memory_list"
		mov	dword ptr [esp], offset	_ZL19memory_list_command ; memory_list_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19memory_list_command ; memory_list_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aShowMemoryStat ; "show memory stats (linux	only)"
		mov	dword ptr [esp+8], offset _ZL13memory_statusRK8CCommand	; memory_status(CCommand  const&)
		mov	dword ptr [esp+4], offset aMemory_status ; "memory_status"
		mov	dword ptr [esp], offset	_ZL21memory_status_command ; memory_status_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21memory_status_command ; memory_status_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aSnapshotCurren ; "snapshot	current	allocation status"
		mov	dword ptr [esp+8], offset _ZL11memory_markRK8CCommand ;	memory_mark(CCommand  const&)
		mov	dword ptr [esp+4], offset aMemory_mark ; "memory_mark"
		mov	dword ptr [esp], offset	_ZL19memory_mark_command ; memory_mark_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19memory_mark_command ; memory_mark_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aShowMemorySt_0 ; "show memory stats relative to snapshot"
		mov	dword ptr [esp+8], offset _ZL11memory_diffRK8CCommand ;	memory_diff(CCommand  const&)
		mov	dword ptr [esp+4], offset aMemory_diff ; "memory_diff"
		mov	dword ptr [esp], offset	_ZL19memory_diff_command ; memory_diff_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19memory_diff_command ; memory_diff_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_host_name endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN12CMapListItemC2Ev proc near ; DATA XREF: .ctors:002725F0o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_83, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_83+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_49, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_49+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_49+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_49+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_83, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_83+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_49, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_49+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_49+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_49+0Ch, eax
		mov	dword ptr [esp], offset	_ZL12g_MapListMgr ; g_MapListMgr
		call	_ZN15CMapListManagerC2Ev ; CMapListManager::CMapListManager(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12g_MapListMgr ; g_MapListMgr
		mov	dword ptr [esp], offset	_ZN15CMapListManagerD2Ev ; CMapListManager::~CMapListManager()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDisplaysListOf ; "Displays	list of	maps."
		mov	dword ptr [esp+8], offset _ZL11Host_Maps_fRK8CCommand ;	Host_Maps_f(CCommand  const&)
		mov	dword ptr [esp+4], offset aMaps	; "maps"
		mov	dword ptr [esp], offset	_ZL4maps ; maps
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL4maps ; maps
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL25Host_Map_f_CompletionFuncPKcPA64_c ; Host_Map_f_CompletionFunc(char  const*,char (*)[64])
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aStartPlayingOn ; "Start playing on	specified map."
		mov	dword ptr [esp+8], offset _Z10Host_Map_fRK8CCommand ; Host_Map_f(CCommand  const&)
		mov	dword ptr [esp+4], (offset aMap_0+1)
		mov	dword ptr [esp], offset	_ZL3map	; map
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL3map ; map
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL25Host_Map_f_CompletionFuncPKcPA64_c ; Host_Map_f_CompletionFunc(char  const*,char (*)[64])
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aRunsAMapAsTheB ; "Runs a map as the background to the mai"...
		mov	dword ptr [esp+8], offset _Z21Host_Map_Background_fRK8CCommand ; Host_Map_Background_f(CCommand	 const&)
		mov	dword ptr [esp+4], offset aMap_background ; "map_background"
		mov	dword ptr [esp], offset	_ZL14map_background ; map_background
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14map_background ;	map_background
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL36Host_Map_Commentary_f_CompletionFuncPKcPA64_c ; Host_Map_Commentary_f_CompletionFunc(char  const*,char	(*)[64])
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aStartPlayingWi ; "Start playing, with commentary, on a sp"...
		mov	dword ptr [esp+8], offset _Z21Host_Map_Commentary_fRK8CCommand ; Host_Map_Commentary_f(CCommand	 const&)
		mov	dword ptr [esp+4], offset aMap_commentary ; "map_commentary"
		mov	dword ptr [esp], offset	_ZL14map_commentary ; map_commentary
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14map_commentary ;	map_commentary
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL33Host_Changelevel_f_CompletionFuncPKcPA64_c ; Host_Changelevel_f_CompletionFunc(char  const*,char (*)[64])
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aChangeServerTo ; "Change server to	the specified map"
		mov	dword ptr [esp+8], offset _Z18Host_Changelevel_fRK8CCommand ; Host_Changelevel_f(CCommand  const&)
		mov	dword ptr [esp+4], offset aChangelevel ; "changelevel"
		mov	dword ptr [esp], offset	_ZL11changelevel ; changelevel
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11changelevel ; changelevel
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL34Host_Changelevel2_f_CompletionFuncPKcPA64_c ; Host_Changelevel2_f_CompletionFunc(char	const*,char (*)[64])
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aTransitionToTh ; "Transition to the specified map in sing"...
		mov	dword ptr [esp+8], offset _Z19Host_Changelevel2_fRK8CCommand ; Host_Changelevel2_f(CCommand  const&)
		mov	dword ptr [esp+4], offset aChangelevel2	; "changelevel2"
		mov	dword ptr [esp], offset	_ZL12changelevel2 ; changelevel2
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12changelevel2 ; changelevel2
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN12CMapListItemC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_PhoneHome proc	near	; DATA XREF: .ctors:002725F4o
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	ds:g_PhoneHome+4, 0
		mov	dword ptr ds:_ZL11vec2_origin_84, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_84+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_84, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_84+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL11vec4_origin_50, 0 ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_50+4, 0
		mov	dword ptr ds:_ZL11vec4_origin_50+8, 0
		mov	dword ptr ds:_ZL11vec4_origin_50+0Ch, 0
		mov	dword ptr ds:_ZL12vec4_invalid_50, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_50+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_50+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_50+0Ch, 7F7FFFFFh
		mov	dword ptr ds:g_PhoneHome, (offset _ZTV10CPhoneHome+8)
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], (offset g_PhoneHome+8)
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], (offset g_PhoneHome+8)
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	dword ptr [esp], (offset g_PhoneHome+8)
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		xor	eax, eax
		mov	dword ptr ds:g_PhoneHome+38h, 0
		mov	dword ptr ds:g_PhoneHome+3Ch, 0
		mov	dword ptr ds:g_PhoneHome+8, 0
		mov	dword ptr ds:g_PhoneHome+0Ch, 0
		mov	dword ptr ds:g_PhoneHome+10h, 0

loc_6759F:				; CODE XREF: _GLOBAL__sub_I_g_PhoneHome+10Fj
		mov	dword ptr ds:(g_PhoneHome+14h)[eax], 0
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_6759F
		leave
		retn
_GLOBAL__sub_I_g_PhoneHome endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z14HostState_Initv proc	near ; DATA XREF: .ctors:002725F8o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_85, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_85+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_85, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_85+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_51, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_51+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_51+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_51+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_51, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_51+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_51+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_51+0Ch, eax
		retn
_GLOBAL__sub_I__Z14HostState_Initv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z11InitMathlibv	proc near ; DATA XREF: .ctors:002725FCo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_86, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_86+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_86, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_86+4, eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aEnableDisableS ; "Enable/disable SSE2 code"
		mov	dword ptr [esp+8], offset _ZL6r_sse2RK8CCommand	; r_sse2(CCommand  const&)
		mov	dword ptr [esp+4], offset aR_sse2 ; "r_sse2"
		mov	dword ptr [esp], offset	_ZL14r_sse2_command ; r_sse2_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14r_sse2_command ;	r_sse2_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aEnableDisable3 ; "Enable/disable 3DNow code"
		mov	dword ptr [esp+8], offset _ZL7r_3dnowRK8CCommand ; r_3dnow(CCommand  const&)
		mov	dword ptr [esp+4], offset aR_3dnow ; "r_3dnow"
		mov	dword ptr [esp], offset	_ZL15r_3dnow_command ; r_3dnow_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15r_3dnow_command ; r_3dnow_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z11InitMathlibv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z14Key_SetBinding12ButtonCode_tPKc proc	near ; DATA XREF: .ctors:00272600o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_87, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_87+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_52, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_52+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_52+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_52+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_87, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_87+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_52, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_52+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_52+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_52+0Ch, eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aUnbindAKey_ ; "Unbind a key."
		mov	dword ptr [esp+8], offset _ZL6unbindRK8CCommand	; unbind(CCommand  const&)
		mov	dword ptr [esp+4], offset aUnbind ; "unbind"
		mov	dword ptr [esp], offset	_ZL14unbind_command ; unbind_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14unbind_command ;	unbind_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aUnbindAKeyOnTh ; "Unbind a	key on the Mac only."
		mov	dword ptr [esp+8], offset _ZL10unbind_macRK8CCommand ; unbind_mac(CCommand  const&)
		mov	dword ptr [esp+4], offset aUnbind_mac ;	"unbind_mac"
		mov	dword ptr [esp], offset	_ZL18unbind_mac_command	; unbind_mac_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18unbind_mac_command ; unbind_mac_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aUnbindAllKeys_ ; "Unbind all keys."
		mov	dword ptr [esp+8], offset _ZL9unbindallRK8CCommand ; unbindall(CCommand	 const&)
		mov	dword ptr [esp+4], offset aUnbindall ; "unbindall"
		mov	dword ptr [esp], offset	_ZL17unbindall_command ; unbindall_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17unbindall_command ; unbindall_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aBindAKey_ ; "Bind a key."
		mov	dword ptr [esp+8], offset _ZL4bindRK8CCommand ;	bind(CCommand  const&)
		mov	dword ptr [esp+4], (offset aUnbind+2)
		mov	dword ptr [esp], offset	_ZL12bind_command ; bind_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12bind_command ; bind_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20000h
		mov	dword ptr [esp+0Ch], offset aBindThisKeyBut ; "Bind this key but only on Mac, not win3"...
		mov	dword ptr [esp+8], offset _ZL8bind_macRK8CCommand ; bind_mac(CCommand  const&)
		mov	dword ptr [esp+4], (offset aUnbind_mac+2)
		mov	dword ptr [esp], offset	_ZL16bind_mac_command ;	bind_mac_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16bind_mac_command	; bind_mac_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aListBoundKeysW ; "List bound keys with bindings."
		mov	dword ptr [esp+8], offset _ZL17key_listboundkeysRK8CCommand ; key_listboundkeys(CCommand  const&)
		mov	dword ptr [esp+4], offset aKey_listboundk ; "key_listboundkeys"
		mov	dword ptr [esp], offset	_ZL25key_listboundkeys_command ; key_listboundkeys_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25key_listboundkeys_command ; key_listboundkeys_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aFindKeyBoundTo ; "Find key	bound to specified command str"...
		mov	dword ptr [esp+8], offset _ZL15key_findbindingRK8CCommand ; key_findbinding(CCommand  const&)
		mov	dword ptr [esp+4], offset aKey_findbindin ; "key_findbinding"
		mov	dword ptr [esp], offset	_ZL23key_findbinding_command ; key_findbinding_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23key_findbinding_command ; key_findbinding_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z14Key_SetBinding12ButtonCode_tPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pLocalNetworkBackdoor proc near ; DATA	XREF: .ctors:00272604o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_88, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_88+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_88, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_88+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_53, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_53+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_53+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_53+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_53, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_53+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_53+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_53+0Ch, eax
		retn
_GLOBAL__sub_I_g_pLocalNetworkBackdoor endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_r_drawmodelstatsoverlay proc near ; DATA	XREF: .ctors:00272608o
		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	dword ptr ds:_ZL11vec2_origin_89, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_89+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_89, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_89+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL11vec4_origin_54, 0 ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_54+4, 0
		mov	dword ptr ds:_ZL11vec4_origin_54+8, 0
		mov	dword ptr ds:_ZL11vec4_origin_54+0Ch, 0
		mov	dword ptr ds:_ZL12vec4_invalid_54, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_54+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_54+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_54+0Ch, 7F7FFFFFh
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_drawmodelsta ; "r_drawmodelstatsoverlay"
		mov	dword ptr [esp], offset	r_drawmodelstatsoverlay
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_drawmodelstatsoverlay
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a3500+1)
		mov	dword ptr [esp+4], offset aR_drawmodels_0 ; "r_drawmodelstatsoverlaydistance"
		mov	dword ptr [esp], offset	r_drawmodelstatsoverlaydistance
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_drawmodelstatsoverlaydistance
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_drawmodellig ; "r_DrawModelLightOrigin"
		mov	dword ptr [esp], offset	r_drawmodellightorigin
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_drawmodellightorigin
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _Z7r_lod_fP7IConVarPKcf ; r_lod_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], (offset asc_20E578+4)
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_lod ; "r_lod"
		mov	dword ptr [esp], offset	r_lod
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_lod
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4002h
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_entity ; "r_entity"
		mov	dword ptr [esp], offset	_ZL8r_entity ; r_entity
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8r_entity ; r_entity
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aActivatesDea_0 ; "Activates/deactivate light averaging"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_lightaverage ; "r_lightaverage"
		mov	dword ptr [esp], offset	_ZL14r_lightaverage ; r_lightaverage
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14r_lightaverage ;	r_lightaverage
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aControlsTheSpe ; "Controls	the speed of light interpolati"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1_5+2)
		mov	dword ptr [esp+4], offset aR_lightinterp ; "r_lightinterp"
		mov	dword ptr [esp], offset	_ZL13r_lightinterp ; r_lightinterp
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13r_lightinterp ; r_lightinterp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aTheNumberOfPix ; "The number of pixels wide an eyeball ha"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a20_0	; "20.0"
		mov	dword ptr [esp+4], offset aR_eyeglintlodp ; "r_eyeglintlodpixels"
		mov	dword ptr [esp], offset	_ZL19r_eyeglintlodpixels ; r_eyeglintlodpixels
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19r_eyeglintlodpixels ; r_eyeglintlodpixels
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+24h], offset _Z12SetRootLOD_fP7IConVarPKcf ; SetRootLOD_f(IConVar *,char	 const*,float)
		mov	dword ptr [esp+20h], 40E00000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 0
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aRootLod ; "Root LOD"
		mov	dword ptr [esp+0Ch], 800080h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_rootlod ; "r_rootlod"
		mov	dword ptr [esp], offset	r_rootlod
		call	_ZN6ConVarC2EPKcS1_iS1_bfbfPFvP7IConVarS1_fE ; ConVar::ConVar(char  const*,char	 const*,int,char  const*,bool,float,bool,float,void (*)(IConVar	*,char	const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_rootlod
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDecalStaticPro ; "Decal static props test"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_decalstaticp ; "r_decalstaticprops"
		mov	dword ptr [esp], offset	_ZL18r_decalstaticprops	; r_decalstaticprops
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18r_decalstaticprops ; r_decalstaticprops
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aFlushAndReload ; "Flush and reload	LODs."
		mov	dword ptr [esp+8], offset _Z10FlushLOD_fv ; FlushLOD_f(void)
		mov	dword ptr [esp+4], offset aR_flushlod ;	"r_flushlod"
		mov	dword ptr [esp], offset	_ZL10r_flushlod	; r_flushlod
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10r_flushlod ; r_flushlod
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSetTo1ToRandom ; "Set to 1	to randomize static lighting f"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_debugrandoms ; "r_debugrandomstaticlighting"
		mov	dword ptr [esp], offset	r_debugrandomstaticlighting
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_debugrandomstaticlighting
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset a0Off1On2ShowEr ; "0=Off, 1=On, 2=Show Errors"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_proplighting ; "r_proplightingfromdisk"
		mov	dword ptr [esp], offset	r_proplightingfromdisk
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_proplightingfromdisk
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a0_3+1)
		mov	dword ptr [esp+4], offset aR_itemblinkmax ; "r_itemblinkmax"
		mov	dword ptr [esp], offset	_ZL14r_itemblinkmax ; r_itemblinkmax
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14r_itemblinkmax ;	r_itemblinkmax
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a4_5 ; "4.5"
		mov	dword ptr [esp+4], offset aR_itemblinkrat ; "r_itemblinkrate"
		mov	dword ptr [esp], offset	_ZL15r_itemblinkrate ; r_itemblinkrate
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15r_itemblinkrate ; r_itemblinkrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset a0Off1StaticPro ; "0 - off,	1 - static prop	color meshes a"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a1_0 ; "-1.0"
		mov	dword ptr [esp+4], offset aR_proplighti_0 ; "r_proplightingpooling"
		mov	dword ptr [esp], offset	_ZL21r_proplightingpooling ; r_proplightingpooling
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21r_proplightingpooling ; r_proplightingpooling
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_showenvcubem ; "r_showenvcubemap"
		mov	dword ptr [esp], offset	_ZL16r_showenvcubemap ;	r_showenvcubemap
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_showenvcubemap	; r_showenvcubemap
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_eyemove ; "r_eyemove"
		mov	dword ptr [esp], offset	_ZL9r_eyemove ;	r_eyemove
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL9r_eyemove	; r_eyemove
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_eyeshift_x	; "r_eyeshift_x"
		mov	dword ptr [esp], offset	_ZL12r_eyeshift_x ; r_eyeshift_x
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12r_eyeshift_x ; r_eyeshift_x
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_eyeshift_y	; "r_eyeshift_y"
		mov	dword ptr [esp], offset	_ZL12r_eyeshift_y ; r_eyeshift_y
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12r_eyeshift_y ; r_eyeshift_y
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_eyeshift_z	; "r_eyeshift_z"
		mov	dword ptr [esp], offset	_ZL12r_eyeshift_z ; r_eyeshift_z
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12r_eyeshift_z ; r_eyeshift_z
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_eyesize ; "r_eyesize"
		mov	dword ptr [esp], offset	_ZL9r_eyesize ;	r_eyesize
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL9r_eyesize	; r_eyesize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_softwaresk ; "mat_softwareskin"
		mov	dword ptr [esp], offset	_ZL16mat_softwareskin ;	mat_softwareskin
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16mat_softwareskin	; mat_softwareskin
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_nohw ; "r_nohw"
		mov	dword ptr [esp], offset	_ZL6r_nohw ; r_nohw
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6r_nohw ; r_nohw
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_nosw ; "r_nosw"
		mov	dword ptr [esp], offset	_ZL6r_nosw ; r_nosw
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6r_nosw ; r_nosw
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_teeth ; "r_teeth"
		mov	dword ptr [esp], offset	_ZL7r_teeth ; r_teeth
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL7r_teeth ;	r_teeth
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawentities ; "r_drawentities"
		mov	dword ptr [esp], offset	_ZL14r_drawentities ; r_drawentities
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14r_drawentities ;	r_drawentities
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_flex ; "r_flex"
		mov	dword ptr [esp], offset	_ZL6r_flex ; r_flex
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6r_flex ; r_flex
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_eyes ; "r_eyes"
		mov	dword ptr [esp], offset	_ZL6r_eyes ; r_eyes
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6r_eyes ; r_eyes
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_skin ; "r_skin"
		mov	dword ptr [esp], offset	_ZL6r_skin ; r_skin
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6r_skin ; r_skin
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_modelwirefra ; "r_modelwireframedecal"
		mov	dword ptr [esp], offset	_ZL21r_modelwireframedecal ; r_modelwireframedecal
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21r_modelwireframedecal ; r_modelwireframedecal
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset byte_1EC1B5
		mov	dword ptr [esp+4], offset aR_maxmodeldeca ; "r_maxmodeldecal"
		mov	dword ptr [esp], offset	_ZL15r_maxmodeldecal ; r_maxmodeldecal
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15r_maxmodeldecal ; r_maxmodeldecal
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], (offset _ZL13s_ModelRender+5Ch)
		mov	dword ptr ds:_ZL13s_ModelRender+8, 0
		mov	dword ptr ds:_ZL13s_ModelRender, (offset _ZTV12CModelRender+8) ; s_ModelRender
		mov	dword ptr ds:_ZL13s_ModelRender+4, (offset _ZTV12CModelRender+74h)
		mov	dword ptr ds:_ZL13s_ModelRender+0Ch, 0
		mov	dword ptr ds:_ZL13s_ModelRender+10h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+14h, 0
		mov	word ptr ds:_ZL13s_ModelRender+22h, 0FFFFh
		mov	word ptr ds:_ZL13s_ModelRender+18h, 0FFFFh
		mov	word ptr ds:_ZL13s_ModelRender+1Ah, 0FFFFh
		mov	word ptr ds:_ZL13s_ModelRender+1Ch, 0FFFFh
		mov	word ptr ds:_ZL13s_ModelRender+1Eh, 0
		mov	word ptr ds:_ZL13s_ModelRender+20h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+24h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+34h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+38h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+3Ch, 0
		mov	dword ptr ds:_ZL13s_ModelRender+40h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL13s_ModelRender+44h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+48h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL13s_ModelRender+4Ch, 0FFFFFFFFh
		mov	dword ptr ds:_ZL13s_ModelRender+50h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+30h, offset _Z22CaselessStringLessThanRKPKcS2_ ; CaselessStringLessThan(char  const* const&,char  const* const&)
		mov	dword ptr ds:_ZL13s_ModelRender+54h, 0
		mov	dword ptr ds:_ZL13s_ModelRender+58h, 0
		call	_ZN28CPooledVBAllocator_ColorMeshC2Ev ;	CPooledVBAllocator_ColorMesh::CPooledVBAllocator_ColorMesh(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13s_ModelRender ; s_ModelRender
		mov	dword ptr [esp], offset	_ZN12CModelRenderD2Ev ;	CModelRender::~CModelRender()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVenginemodel01 ; "VEngineModel016"
		mov	dword ptr [esp+4], offset _ZL43__CreateCModelRenderIVModelRender_interfacev ; __CreateCModelRenderIVModelRender_interface(void)
		mov	dword ptr [esp], offset	_ZL39__g_CreateCModelRenderIVModelRender_reg ; __g_CreateCModelRenderIVModelRender_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+10h], offset aSetToBoostAmbi ; "Set to boost ambient term if it is tota"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_ambientboost ; "r_ambientboost"
		mov	dword ptr [esp], offset	_ZL14r_ambientboost ; r_ambientboost
		mov	ds:_ZL29s_ResourcePreloadPropLighting, (offset _ZTV28CResourcePreloadPropLighting+8) ; s_ResourcePreloadPropLighting
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14r_ambientboost ;	r_ambientboost
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aThresholdAbove ; "Threshold above which ambient cube will"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], offset a0_3 ; "0.3"
		mov	dword ptr [esp+4], offset aR_ambientmin	; "r_ambientmin"
		mov	dword ptr [esp], offset	_ZL12r_ambientmin ; r_ambientmin
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12r_ambientmin ; r_ambientmin
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aFractionOfDire ; "Fraction	of direct lighting that	ambien"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a0_1 ; "0.1"
		mov	dword ptr [esp+4], offset aR_ambientfract ; "r_ambientfraction"
		mov	dword ptr [esp], offset	_ZL17r_ambientfraction ; r_ambientfraction
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_ambientfraction ; r_ambientfraction
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aBoostAmbientCu ; "Boost ambient cube by no	more than this"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a1_5+2)
		mov	dword ptr [esp+4], offset aR_ambientfacto ; "r_ambientfactor"
		mov	dword ptr [esp], offset	_ZL15r_ambientfactor ; r_ambientfactor
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15r_ambientfactor ; r_ambientfactor
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], (offset asc_20E578+4)
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_lightcachemo ; "r_lightcachemodel"
		mov	dword ptr [esp], offset	_ZL17r_lightcachemodel ; r_lightcachemodel
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_lightcachemodel ; r_lightcachemodel
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset a0Off1DrawLight ; "0: off\n1: draw light cache entries\n2: d"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_drawlightcac ; "r_drawlightcache"
		mov	dword ptr [esp], offset	_ZL16r_drawlightcache ;	r_drawlightcache
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_drawlightcache	; r_drawlightcache
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16s_SavedModelInfo	; s_SavedModelInfo
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI23ModelDebugOverlayData_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<ModelDebugOverlayData_t,CUtlMemory<ModelDebugOverlayData_t,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL16s_SavedModelInfo, 0 ;	s_SavedModelInfo
		mov	dword ptr ds:_ZL16s_SavedModelInfo+4, 0
		mov	dword ptr ds:_ZL16s_SavedModelInfo+8, 0
		mov	dword ptr ds:_ZL16s_SavedModelInfo+0Ch,	0
		mov	dword ptr ds:_ZL16s_SavedModelInfo+10h,	0
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aTimeInMillisec ; "time in milliseconds that a model must "...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], offset a0_1 ; "0.1"
		mov	dword ptr [esp+4], offset aR_drawmodels_1 ; "r_drawmodelstatsoverlaymin"
		mov	dword ptr [esp], offset	_ZL26r_drawmodelstatsoverlaymin	; r_drawmodelstatsoverlaymin
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26r_drawmodelstatsoverlaymin ; r_drawmodelstatsoverlaymin
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aTimeInMillis_0 ; "time in milliseconds beyond which a mod"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], offset a1_5 ; "1.5"
		mov	dword ptr [esp+4], offset aR_drawmodels_2 ; "r_drawmodelstatsoverlaymax"
		mov	dword ptr [esp], offset	_ZL26r_drawmodelstatsoverlaymax	; r_drawmodelstatsoverlaymax
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26r_drawmodelstatsoverlaymax ; r_drawmodelstatsoverlaymax
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_staticprop_l ; "r_staticprop_lod"
		mov	dword ptr [esp], offset	r_staticprop_lod
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_staticprop_lod
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_GLOBAL__sub_I_r_drawmodelstatsoverlay endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [esp], (offset _ZL13s_ModelRender+30h)
		call	_ZN8CUtlDictIP13memhandle_t__iED2Ev ; CUtlDict<memhandle_t__ *,int>::~CUtlDict()
		mov	dword ptr [esp], (offset _ZL13s_ModelRender+0Ch)
		call	_ZN14CUtlLinkedListIN12CModelRender15ModelInstance_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev ; CUtlLinkedList<CModelRender::ModelInstance_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CModelRender::ModelInstance_t,ushort>,ushort>>::~CUtlLinkedList()
		mov	eax, (offset _ZL13s_ModelRender+8)
		mov	dword ptr ds:_ZL13s_ModelRender+4, (offset _ZTV23CManagedDataCacheClientI14CColorMeshData17colormeshparams_tPS0_E+8)
		call	_ZN23CManagedDataCacheClientI14CColorMeshData17colormeshparams_tPS0_E8ShutdownEv_isra_48
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z25MapReslistGenerator_Usagev proc near	; DATA XREF: .ctors:0027260Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_90, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_90+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_90, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_90+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_55, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_55+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_55+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_55+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_55, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_55+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_55+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_55+0Ch, eax
		mov	dword ptr [esp], offset	g_MapReslistGenerator
		call	_ZN20CMapReslistGeneratorC2Ev ;	CMapReslistGenerator::CMapReslistGenerator(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_MapReslistGenerator
		mov	dword ptr [esp], offset	_ZN20CMapReslistGeneratorD2Ev ;	CMapReslistGenerator::~CMapReslistGenerator()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z25MapReslistGenerator_Usagev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN21CMaterialProxyFactory11CreateProxyEPKc proc	near
					; DATA XREF: .ctors:00272610o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_91, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_91+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_91, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_91+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_56, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_56+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_56+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_56+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_56, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_56+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_56+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_56+0Ch, eax
		retn
_GLOBAL__sub_I__ZN21CMaterialProxyFactory11CreateProxyEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_r_framecount proc near	; DATA XREF: .ctors:00272614o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 38h
		mov	dword ptr ds:_ZL11vec2_origin_92, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_92+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_57, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_57+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_57+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_57+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_92, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_92+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_57, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_57+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_57+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_57+0Ch, eax
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMat_shadowstat ; "mat_shadowstate"
		mov	dword ptr [esp], offset	_ZL15mat_shadowstate ; mat_shadowstate
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15mat_shadowstate ; mat_shadowstate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMat_maxframela ; "mat_maxframelatency"
		mov	dword ptr [esp], offset	_ZL19mat_maxframelatency ; mat_maxframelatency
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19mat_maxframelatency ; mat_maxframelatency
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_debugaltta ; "mat_debugalttab"
		mov	dword ptr [esp], offset	mat_debugalttab
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_debugalttab
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL21g_PowerOfTwoFBTexture ; g_PowerOfTwoFBTexture
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21g_PowerOfTwoFBTexture ; g_PowerOfTwoFBTexture
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL24g_WaterReflectionTexture ;	g_WaterReflectionTexture
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24g_WaterReflectionTexture	; g_WaterReflectionTexture
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL24g_WaterRefractionTexture ;	g_WaterRefractionTexture
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24g_WaterRefractionTexture	; g_WaterRefractionTexture
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL15g_CameraTexture ; g_CameraTexture
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15g_CameraTexture ; g_CameraTexture
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL27g_BuildCubemaps16BitTexture ; g_BuildCubemaps16BitTexture
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27g_BuildCubemaps16BitTexture ; g_BuildCubemaps16BitTexture
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL24g_QuarterSizedFBTexture0 ;	g_QuarterSizedFBTexture0
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24g_QuarterSizedFBTexture0	; g_QuarterSizedFBTexture0
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL24g_QuarterSizedFBTexture1 ;	g_QuarterSizedFBTexture1
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24g_QuarterSizedFBTexture1	; g_QuarterSizedFBTexture1
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL17g_TeenyFBTexture0 ; g_TeenyFBTexture0
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17g_TeenyFBTexture0 ; g_TeenyFBTexture0
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL17g_TeenyFBTexture1 ; g_TeenyFBTexture1
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17g_TeenyFBTexture1 ; g_TeenyFBTexture1
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL17g_TeenyFBTexture2 ; g_TeenyFBTexture2
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17g_TeenyFBTexture2 ; g_TeenyFBTexture2
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL21g_FullFrameFBTexture0 ; g_FullFrameFBTexture0
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21g_FullFrameFBTexture0 ; g_FullFrameFBTexture0
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL21g_FullFrameFBTexture1 ; g_FullFrameFBTexture1
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21g_FullFrameFBTexture1 ; g_FullFrameFBTexture1
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL21g_FullFrameFBTexture2 ; g_FullFrameFBTexture2
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21g_FullFrameFBTexture2 ; g_FullFrameFBTexture2
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL16g_FullFrameDepth ;	g_FullFrameDepth
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16g_FullFrameDepth	; g_FullFrameDepth
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL24g_ResolvedFullFrameDepth ;	g_ResolvedFullFrameDepth
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24g_ResolvedFullFrameDepth	; g_ResolvedFullFrameDepth
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL18g_StereoGuiTexture	; g_StereoGuiTexture
		call	_ZN17CTextureReferenceC2Ev ; CTextureReference::CTextureReference(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18g_StereoGuiTexture ; g_StereoGuiTexture
		mov	dword ptr [esp], offset	_ZN17CTextureReferenceD2Ev ; CTextureReference::~CTextureReference()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_norefresh ; "r_norefresh"
		mov	dword ptr [esp], offset	r_norefresh
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_norefresh
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a2048	; "2048"
		mov	dword ptr [esp+4], offset aR_decals ; "r_decals"
		mov	dword ptr [esp], offset	r_decals
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_decals
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], offset dword_1EC404
		mov	dword ptr [esp+4], offset aMp_decals ; "mp_decals"
		mov	dword ptr [esp], offset	mp_decals
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mp_decals
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 804000h
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_lightmap ;	"r_lightmap"
		mov	dword ptr [esp], offset	r_lightmap
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_lightmap
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 804000h
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_lightstyle	; "r_lightstyle"
		mov	dword ptr [esp], offset	r_lightstyle
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_lightstyle
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_dynamic ; "r_dynamic"
		mov	dword ptr [esp], offset	r_dynamic
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_dynamic
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_norenderin ; "mat_norendering"
		mov	dword ptr [esp], offset	mat_norendering
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_norendering
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_wireframe ; "mat_wireframe"
		mov	dword ptr [esp], offset	mat_wireframe
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_wireframe
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_luxels ;	"mat_luxels"
		mov	dword ptr [esp], offset	mat_luxels
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_luxels
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_normals ; "mat_normals"
		mov	dword ptr [esp], offset	mat_normals
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_normals
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_bumpbasis ; "mat_bumpbasis"
		mov	dword ptr [esp], offset	mat_bumpbasis
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_bumpbasis
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset dword_1EC2E4
		mov	dword ptr [esp+4], offset aMat_envmapsize ; "mat_envmapsize"
		mov	dword ptr [esp], offset	mat_envmapsize
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_envmapsize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a32_0	; "32.0"
		mov	dword ptr [esp+4], offset aMat_envmaptgas ; "mat_envmaptgasize"
		mov	dword ptr [esp], offset	mat_envmaptgasize
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_envmaptgasize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMat_levelflush ; "mat_levelflush"
		mov	dword ptr [esp], offset	mat_levelflush
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_levelflush
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aEnableDisabl_0 ; "Enable/Disable specularity for visual t"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMat_fastspecul ; "mat_fastspecular"
		mov	dword ptr [esp], offset	mat_fastspecular
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_fastspecular
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_fullbright ; "mat_fullbright"
		mov	dword ptr [esp], offset	mat_fullbright
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_fullbright
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 40266666h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 3FCCCCCDh
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aMonitorGammaTy ; "monitor gamma (typically	2.2 for	CRT an"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], offset a2_2 ; "2.2"
		mov	dword ptr [esp+4], offset aMat_monitorgam ; "mat_monitorgamma"
		mov	dword ptr [esp], offset	_ZL16mat_monitorgamma ;	mat_monitorgamma
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16mat_monitorgamma	; mat_monitorgamma
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1016+2)
		mov	dword ptr [esp+4], offset aMat_monitorg_0 ; "mat_monitorgamma_tv_range_min"
		mov	dword ptr [esp], offset	_ZL29mat_monitorgamma_tv_range_min ; mat_monitorgamma_tv_range_min
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL29mat_monitorgamma_tv_range_min ; mat_monitorgamma_tv_range_min
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset dword_1EC4E0
		mov	dword ptr [esp+4], offset aMat_monitorg_1 ; "mat_monitorgamma_tv_range_max"
		mov	dword ptr [esp], offset	_ZL29mat_monitorgamma_tv_range_max ; mat_monitorgamma_tv_range_max
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL29mat_monitorgamma_tv_range_max ; mat_monitorgamma_tv_range_max
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 40800000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 3F800000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], (offset asc_20E578+4)
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a2_5 ; "2.5"
		mov	dword ptr [esp+4], offset aMat_monitorg_2 ; "mat_monitorgamma_tv_exp"
		mov	dword ptr [esp], offset	_ZL23mat_monitorgamma_tv_exp ; mat_monitorgamma_tv_exp
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23mat_monitorgamma_tv_exp ; mat_monitorgamma_tv_exp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], (offset asc_20E578+4)
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_monitorg_3 ; "mat_monitorgamma_tv_enabled"
		mov	dword ptr [esp], offset	_ZL27mat_monitorgamma_tv_enabled ; mat_monitorgamma_tv_enabled
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27mat_monitorgamma_tv_enabled ; mat_monitorgamma_tv_enabled
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRenderBrushMod ; "Render brush models. 0=Off, 1=Normal, 2"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawbrushmod ; "r_drawbrushmodels"
		mov	dword ptr [esp], offset	r_drawbrushmodels
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_drawbrushmodels
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_shadowrender ; "r_shadowrendertotexture"
		mov	dword ptr [esp], offset	r_shadowrendertotexture
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_shadowrendertotexture
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_flashlightde ; "r_flashlightdepthtexture"
		mov	dword ptr [esp], offset	r_flashlightdepthtexture
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_flashlightdepthtexture
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_waterforceex ; "r_waterforceexpensive"
		mov	dword ptr [esp], offset	r_waterforceexpensive
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_waterforceexpensive
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_waterforcere ; "r_waterforcereflectentities"
		mov	dword ptr [esp], offset	r_waterforcereflectentities
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_waterforcereflectentities
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMat_motion_blu ; "mat_motion_blur_enabled"
		mov	dword ptr [esp], offset	mat_motion_blur_enabled
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_motion_blur_enabled
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a0_0f	; "0.0f"
		mov	dword ptr [esp+4], offset aMat_depthbias_ ; "mat_depthbias_normal"
		mov	dword ptr [esp], offset	mat_depthbias_normal
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_depthbias_normal
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_show_ab_hd ; "mat_show_ab_hdr"
		mov	dword ptr [esp], offset	mat_show_ab_hdr
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_show_ab_hdr
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _Z22mat_hdr_level_CallbackP7IConVarPKcf ; mat_hdr_level_Callback(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aSetTo0ForNoHdr ; "Set to 0	for no HDR, 1 for LDR+bloom on"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset aMore2+7)
		mov	dword ptr [esp+4], offset aMat_hdr_level ; "mat_hdr_level"
		mov	dword ptr [esp], offset	mat_hdr_level
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_hdr_level
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	attr ; attr
		call	pthread_mutexattr_init
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], offset	attr
		call	pthread_mutexattr_settype
		mov	dword ptr [esp+4], offset attr ; mutexattr
		mov	dword ptr [esp], offset	_ZL18g_VideoConfigMutex	; mutex
		call	pthread_mutex_init
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18g_VideoConfigMutex ; g_VideoConfigMutex
		mov	dword ptr [esp], offset	_ZN12CThreadMutexD2Ev ;	CThreadMutex::~CThreadMutex()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowTheCurrent ; "show the	current	video control panel co"...
		mov	dword ptr [esp+8], offset _ZL17mat_configcurrentRK8CCommand ; mat_configcurrent(CCommand  const&)
		mov	dword ptr [esp+4], offset aMat_configcurr ; "mat_configcurrent"
		mov	dword ptr [esp], offset	_ZL25mat_configcurrent_command ; mat_configcurrent_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25mat_configcurrent_command ; mat_configcurrent_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSavesCurrentVi ; "saves current video configuration to th"...
		mov	dword ptr [esp+8], offset _ZL15mat_savechangesRK8CCommand ; mat_savechanges(CCommand  const&)
		mov	dword ptr [esp+4], offset aMat_savechange ; "mat_savechanges"
		mov	dword ptr [esp], offset	_ZL23mat_savechanges_command ; mat_savechanges_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23mat_savechanges_command ; mat_savechanges_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowsMaterialS ; "Shows material system info"
		mov	dword ptr [esp+8], offset _ZL8mat_infoRK8CCommand ; mat_info(CCommand  const&)
		mov	dword ptr [esp+4], offset aMat_info ; "mat_info"
		mov	dword ptr [esp], offset	_ZL16mat_info_command ;	mat_info_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16mat_info_command	; mat_info_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_r_framecount endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZNK10CModelInfo13GetModelIndexEPKc proc	near ; DATA XREF: .ctors:00272618o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_93, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_93+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_58, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_58+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_58+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_58+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_93, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_93+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_58, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_58+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_58+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_58+0Ch, eax
		mov	dword ptr ds:_ZL17g_ModelInfoServer+4, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+8, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+0Ch, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+10h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+14h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+18h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+1Ch, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+20h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+24h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+28h, 20h
		mov	ds:_ZL17g_ModelInfoServer+2Ch, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+30h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+34h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer+38h, 0
		mov	word ptr ds:_ZL17g_ModelInfoServer+46h,	0FFFFh
		mov	word ptr ds:_ZL17g_ModelInfoServer+3Ch,	0FFFFh
		mov	word ptr ds:_ZL17g_ModelInfoServer+3Eh,	0FFFFh
		mov	word ptr ds:_ZL17g_ModelInfoServer+40h,	0FFFFh
		mov	word ptr ds:_ZL17g_ModelInfoServer+42h,	0
		mov	word ptr ds:_ZL17g_ModelInfoServer+44h,	0
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17g_ModelInfoServer ; g_ModelInfoServer
		mov	dword ptr [esp], offset	_ZN16CModelInfoServerD2Ev ; CModelInfoServer::~CModelInfoServer()
		mov	dword ptr ds:_ZL17g_ModelInfoServer+48h, 0
		mov	dword ptr ds:_ZL17g_ModelInfoServer, (offset _ZTV16CModelInfoServer+8) ; g_ModelInfoServer
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVmodelinfoserv ; "VModelInfoServer003"
		mov	dword ptr [esp+4], offset _ZL48__CreateCModelInfoServerIVModelInfo003_interfacev ; __CreateCModelInfoServerIVModelInfo003_interface(void)

loc_695FE:				; DATA XREF: .data:g_CCLanguageLookupo
		mov	dword ptr [esp], offset	_ZL44__g_CreateCModelInfoServerIVModelInfo003_reg ; __g_CreateCModelInfoServerIVModelInfo003_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+8], offset aVmodelinfose_0 ; "VModelInfoServer004"
		mov	dword ptr [esp+4], offset _ZL45__CreateCModelInfoServerIVModelInfo_interfacev ;	__CreateCModelInfoServerIVModelInfo_interface(void)
		mov	dword ptr [esp], offset	_ZL41__g_CreateCModelInfoServerIVModelInfo_reg ; __g_CreateCModelInfoServerIVModelInfo_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I__ZNK10CModelInfo13GetModelIndexEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_mat_loadtextures	proc near ; DATA XREF: .ctors:0027261Co
		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	dword ptr ds:_ZL11vec2_origin_94, 0 ; vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_94+4, 0
		mov	dword ptr ds:_ZL12vec2_invalid_94, 7F7FFFFFh ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_94+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL11vec4_origin_59, 0 ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_59+4, 0
		mov	dword ptr ds:_ZL11vec4_origin_59+8, 0
		mov	dword ptr ds:_ZL11vec4_origin_59+0Ch, 0
		mov	dword ptr ds:_ZL12vec4_invalid_59, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_59+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_59+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_59+0Ch, 7F7FFFFFh
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMat_loadtextur ; "mat_loadtextures"
		mov	dword ptr [esp], offset	mat_loadtextures
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_loadtextures
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aTouchModelData ; "Touch model data	during level startup"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMod_touchallda ; "mod_touchalldata"
		mov	dword ptr [esp], offset	_ZL16mod_touchalldata ;	mod_touchalldata
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16mod_touchalldata	; mod_touchalldata
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aForcesAllModel ; "Forces all model	file data into cache o"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMod_forcetouch ; "mod_forcetouchdata"
		mov	dword ptr [esp], offset	_ZL18mod_forcetouchdata	; mod_forcetouchdata
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18mod_forcetouchdata ; mod_forcetouchdata
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_excludetex ; "mat_excludetextures"
		mov	dword ptr [esp], offset	mat_excludetextures
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mat_excludetextures
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_unloadlightm ; "r_unloadlightmaps"
		mov	dword ptr [esp], offset	r_unloadlightmaps
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_unloadlightmaps
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_hunkalloclig ; "r_hunkalloclightmaps"
		mov	dword ptr [esp], offset	r_hunkalloclightmaps
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_hunkalloclightmaps
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 20010h
		mov	dword ptr [esp+8], offset dword_1EC33C
		mov	dword ptr [esp+4], offset aMod_dynamicunl ; "mod_dynamicunloadtime"
		mov	dword ptr [esp], offset	_ZL21mod_dynamicunloadtime ; mod_dynamicunloadtime
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21mod_dynamicunloadtime ; mod_dynamicunloadtime
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 20010h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aMod_dynamicu_0 ; "mod_dynamicunloadtex"
		mov	dword ptr [esp], offset	_ZL25mod_dynamicunloadtextures ; mod_dynamicunloadtextures
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25mod_dynamicunloadtextures ; mod_dynamicunloadtextures
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 24010h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMod_dynamicloa ; "mod_dynamicloadpause"
		mov	dword ptr [esp], offset	_ZL20mod_dynamicloadpause ; mod_dynamicloadpause
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20mod_dynamicloadpause ; mod_dynamicloadpause
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 24010h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMod_dynamicl_0 ; "mod_dynamicloadthrottle"
		mov	dword ptr [esp], offset	_ZL23mod_dynamicloadthrottle ; mod_dynamicloadthrottle
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23mod_dynamicloadthrottle ; mod_dynamicloadthrottle
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 20010h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMod_dynamicl_1 ; "mod_dynamicloadspew"
		mov	dword ptr [esp], offset	_ZL19mod_dynamicloadspew ; mod_dynamicloadspew
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19mod_dynamicloadspew ; mod_dynamicloadspew
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr ds:_ZL14g_GameLumpDict, 0 ; g_GameLumpDict
		mov	dword ptr ds:_ZL14g_GameLumpDict+4, 0
		mov	dword ptr ds:_ZL14g_GameLumpDict+8, 0
		mov	dword ptr ds:_ZL14g_GameLumpDict+0Ch, 0
		mov	dword ptr ds:_ZL14g_GameLumpDict+10h, 0
		mov	dword ptr [esp+4], offset _ZL14g_GameLumpDict ;	g_GameLumpDict
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI11dgamelump_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<dgamelump_t,CUtlMemory<dgamelump_t,int>>::~CUtlVector()
		call	__cxa_atexit
		mov	dword ptr [esp], 0
		call	_Z11DataMapInitI6lump_tEP9datamap_tPT_ ; DataMapInit<lump_t>(lump_t *)
		mov	dword ptr [esp], 0
		mov	ds:_ZN19lump_t_DataDescInit15g_DataMapHolderE, eax ; lump_t_DataDescInit::g_DataMapHolder
		call	_Z11DataMapInitI9dheader_tEP9datamap_tPT_ ; DataMapInit<dheader_t>(dheader_t *)
		mov	dword ptr [esp+14h], 0
		mov	ds:_ZN22dheader_t_DataDescInit15g_DataMapHolderE, eax ;	dheader_t_DataDescInit::g_DataMapHolder
		mov	dword ptr ds:_ZL13g_ModelLoader, (offset _ZTV12CModelLoader+8) ; g_ModelLoader
		mov	dword ptr ds:_ZL13g_ModelLoader+4, offset _Z14Model_LessFuncRKPvS1_ ; Model_LessFunc(void * const&,void	* const&)
		mov	dword ptr ds:_ZL13g_ModelLoader+8, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+0Ch, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+10h, 0
		mov	word ptr ds:_ZL13g_ModelLoader+14h, 0FFFFh
		mov	word ptr ds:_ZL13g_ModelLoader+16h, 0
		mov	word ptr ds:_ZL13g_ModelLoader+18h, 0FFFFh
		mov	word ptr ds:_ZL13g_ModelLoader+1Ah, 0FFFFh
		mov	dword ptr ds:_ZL13g_ModelLoader+1Ch, 0
		mov	dword ptr [esp+10h], offset aCmodelloaderM_ ; "CModelLoader::m_ModelPool"
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], 400h
		mov	dword ptr [esp+4], 0A4h
		mov	dword ptr [esp], (offset _ZL13g_ModelLoader+20h)
		call	_ZN14CUtlMemoryPoolC2EiiiPKci ;	CUtlMemoryPool::CUtlMemoryPool(int,int,int,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13g_ModelLoader ; g_ModelLoader
		mov	dword ptr [esp], offset	_ZN12CModelLoaderD2Ev ;	CModelLoader::~CModelLoader()
		mov	dword ptr ds:_ZL13g_ModelLoader+50h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+54h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+58h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+5Ch, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+60h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1DCh, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1E0h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1E4h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1E8h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1ECh, 20h
		mov	ds:_ZL13g_ModelLoader+1F0h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1F4h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1F8h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+1FCh, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+200h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+204h, 20h
		mov	ds:_ZL13g_ModelLoader+208h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+20Ch, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+210h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+214h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+218h, 0
		mov	dword ptr ds:_ZL13g_ModelLoader+21Ch, 0
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; size
		mov	dword ptr [esp+4], 0 ; int
		mov	dword ptr [esp], offset	_ZL11s_MapBuffer ; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11s_MapBuffer ; s_MapBuffer
		mov	dword ptr [esp], offset	_ZN10CUtlBufferD2Ev ; CUtlBuffer::~CUtlBuffer()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDumpsTheMemory ; "Dumps the memory	used by	vcollides"
		mov	dword ptr [esp+8], offset _ZL12mem_vcollideRK8CCommand ; mem_vcollide(CCommand	const&)
		mov	dword ptr [esp+4], offset aMem_vcollide	; "mem_vcollide"
		mov	dword ptr [esp], offset	_ZL20mem_vcollide_command ; mem_vcollide_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20mem_vcollide_command ; mem_vcollide_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 20010h
		mov	dword ptr [esp+0Ch], offset aDebugSpewForDy ; "debug spew for dynamic model loading"
		mov	dword ptr [esp+8], offset _ZL21mod_dynamicmodeldebugRK8CCommand	; mod_dynamicmodeldebug(CCommand  const&)
		mov	dword ptr [esp+4], offset aMod_dynamicmod ; "mod_dynamicmodeldebug"
		mov	dword ptr [esp], offset	_ZL29mod_dynamicmodeldebug_command ; mod_dynamicmodeldebug_command
		mov	ds:_ZL16s_MDLCacheNotify, (offset _ZTV15CMDLCacheNotify+8) ; s_MDLCacheNotify
		mov	ds:_ZL22s_ResourcePreloadModel,	(offset	_ZTV21CResourcePreloadModel+8) ; s_ResourcePreloadModel
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL29mod_dynamicmodeldebug_command ; mod_dynamicmodeldebug_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_mat_loadtextures	endp

; ---------------------------------------------------------------------------
		mov	[ebp-0Ch], eax
		mov	dword ptr [esp], (offset _ZL13g_ModelLoader+4)
		call	_ZN7CUtlMapIPvN12CModelLoader12ModelEntry_tEtED2Ev ; CUtlMap<void *,CModelLoader::ModelEntry_t,ushort>::~CUtlMap()
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_r_visframecount proc near ; DATA	XREF: .ctors:00272620o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:_ZL11vec2_origin_95, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_95+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_60, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_60+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_60+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_60+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_95, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_95+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_60, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_60+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_60+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_60+0Ch, eax
		mov	dword ptr [esp+10h], offset aTurnOffThePvs_ ; "Turn off	the PVS."
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_novis ; "r_novis"
		mov	dword ptr [esp], offset	_ZL7r_novis ; r_novis
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL7r_novis ;	r_novis
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLockThePvsSoYo ; "Lock the	PVS so you can fly around and "...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_lockpvs ; "r_lockpvs"
		mov	dword ptr [esp], offset	_ZL9r_lockpvs ;	r_lockpvs
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL9r_lockpvs	; r_lockpvs
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], 580h ;	size
		mov	dword ptr ds:_ZL8viscache+4, 8
		mov	dword ptr ds:_ZL8viscache+8, 0
		call	malloc
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8viscache ; viscache
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListI13VisCacheEntrytLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev ; CUtlLinkedList<VisCacheEntry,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<VisCacheEntry,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL8viscache, eax ; viscache
		mov	word ptr ds:_ZL8viscache+16h, 0FFFFh
		mov	word ptr ds:_ZL8viscache+0Ch, 0FFFFh
		mov	word ptr ds:_ZL8viscache+0Eh, 0FFFFh
		mov	word ptr ds:_ZL8viscache+10h, 0FFFFh
		mov	word ptr ds:_ZL8viscache+12h, 0
		mov	word ptr ds:_ZL8viscache+14h, 0
		mov	dword ptr ds:_ZL8viscache+18h, eax
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_r_visframecount endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_sv_dumpstringtables proc	near ; DATA XREF: .ctors:00272624o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_96, eax ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_96+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec2_invalid_96, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_96+4, eax
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset byte_2015E5
		mov	dword ptr [esp], offset	sv_dumpstringtables
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_dumpstringtables
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_sv_dumpstringtables endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_networkStringTableContainerClient proc near ; DATA XREF:	.ctors:00272628o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:_ZL11vec2_origin_97, edx ;	vec2_origin
		mov	dword ptr ds:_ZL11vec2_origin_97+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_61, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_61+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_61+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_61+0Ch, edx
		mov	dword ptr ds:_ZL12vec2_invalid_97, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_97+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_61, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_61+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_61+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_61+0Ch, eax
		mov	dword ptr [esp], offset	_ZL26s_NetworkStringTableClient	; s_NetworkStringTableClient
		call	_ZN28CNetworkStringTableContainerC2Ev ;	CNetworkStringTableContainer::CNetworkStringTableContainer(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26s_NetworkStringTableClient ; s_NetworkStringTableClient
		mov	dword ptr [esp], offset	_ZN28CNetworkStringTableContainerD2Ev ;	CNetworkStringTableContainer::~CNetworkStringTableContainer()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVengineclients ; "VEngineClientStringTable001"
		mov	dword ptr [esp+4], offset _ZL74__CreateCNetworkStringTableContainerINetworkStringTableContainer_interfacev ; __CreateCNetworkStringTableContainerINetworkStringTableContainer_interface(void)
		mov	dword ptr [esp], offset	_ZL70__g_CreateCNetworkStringTableContainerINetworkStringTableContainer_reg ; __g_CreateCNetworkStringTableContainerINetworkStringTableContainer_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_networkStringTableContainerClient endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN23CNetworkStringTableItemC2Ev	proc near ; DATA XREF: .ctors:0027262Co
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:_ZL11vec2_origin_98, edx ;	vec2_origin
		pop	ebp
		mov	dword ptr ds:_ZL11vec2_origin_98+4, edx
		mov	dword ptr ds:_ZL12vec2_invalid_98, eax ; vec2_invalid
		mov	dword ptr ds:_ZL12vec2_invalid_98+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_62, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_62+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_62+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_62+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_62, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_62+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_62+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_62+0Ch, eax
		retn
_GLOBAL__sub_I__ZN23CNetworkStringTableItemC2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_networkStringTableContainerServer proc near ; DATA XREF:	.ctors:00272630o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2BE104, edx
		mov	dword ptr ds:qword_2BE104+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_63, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_63+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_63+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_63+0Ch, edx
		mov	dword ptr ds:qword_2BE10C, eax
		mov	dword ptr ds:qword_2BE10C+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_63, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_63+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_63+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_63+0Ch, eax
		mov	dword ptr [esp], offset	_ZL26s_NetworkStringTableServer	; s_NetworkStringTableServer
		call	_ZN28CNetworkStringTableContainerC2Ev ;	CNetworkStringTableContainer::CNetworkStringTableContainer(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26s_NetworkStringTableServer ; s_NetworkStringTableServer
		mov	dword ptr [esp], offset	_ZN28CNetworkStringTableContainerD2Ev ;	CNetworkStringTableContainer::~CNetworkStringTableContainer()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVengineservers ; "VEngineServerStringTable001"
		mov	dword ptr [esp+4], offset _ZL80__CreateCNetworkStringTableContainerServerINetworkStringTableContainer_interfacev ; __CreateCNetworkStringTableContainerServerINetworkStringTableContainer_interface(void)
		mov	dword ptr [esp], offset	_ZL76__g_CreateCNetworkStringTableContainerServerINetworkStringTableContainer_reg ; __g_CreateCNetworkStringTableContainerServerINetworkStringTableContainer_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_networkStringTableContainerServer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_net_showudp proc	near	; DATA XREF: .ctors:00272634o
		push	ebp
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		sub	esp, 34h
		mov	dword ptr ds:qword_2BE66C, ebx
		mov	dword ptr ds:qword_2BE66C+4, ebx
		mov	dword ptr ds:qword_2BE674, eax
		mov	dword ptr ds:qword_2BE674+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_64, ebx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_64+4, ebx
		mov	dword ptr ds:_ZL11vec4_origin_64+8, ebx
		mov	dword ptr ds:_ZL11vec4_origin_64+0Ch, ebx
		mov	dword ptr ds:_ZL12vec4_invalid_64, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_64+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_64+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_64+0Ch, eax
		mov	dword ptr [esp+10h], offset aDumpUdpPackets ; "Dump UDP	packets	summary	to console"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showudp ; "net_showudp"
		mov	dword ptr [esp], offset	net_showudp
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset net_showudp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDumpTcpStreamS ; "Dump TCP	stream summary to console"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showtcp ; "net_showtcp"
		mov	dword ptr [esp], offset	net_showtcp
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset net_showtcp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 449D8000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 43800000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aMaxFragmentByt ; "Max fragment bytes per packet"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1260	; "1260"
		mov	dword ptr [esp+4], offset aNet_maxfragmen ; "net_maxfragments"
		mov	dword ptr [esp], offset	net_blocksize
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset net_blocksize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowIncomingMe ; "Show incoming message: <0|1|name>"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showmsg ; "net_showmsg"
		mov	dword ptr [esp], offset	_ZL11net_showmsg ; net_showmsg
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11net_showmsg ; net_showmsg
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowNetchannel ; "Show netchannel fragments"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showfragme ; "net_showfragments"
		mov	dword ptr [esp], offset	_ZL17net_showfragments ; net_showfragments
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17net_showfragments ; net_showfragments
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowMessagesFo ; "Show messages for large packets only: <"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showpeaks ; "net_showpeaks"
		mov	dword ptr [esp], offset	_ZL13net_showpeaks ; net_showpeaks
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13net_showpeaks ; net_showpeaks
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDiscardsIncomi ; "Discards	incoming message: <0|1|name>"
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset aNone	; "none"
		mov	dword ptr [esp+4], offset aNet_blockmsg	; "net_blockmsg"
		mov	dword ptr [esp], offset	_ZL12net_blockmsg ; net_blockmsg
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12net_blockmsg ; net_blockmsg
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowDroppedPac ; "Show dropped packets in console"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showdrop	; "net_showdrop"
		mov	dword ptr [esp], offset	_ZL12net_showdrop ; net_showdrop
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12net_showdrop ; net_showdrop
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDrawCompletion ; "Draw completion slider during signon"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_drawslider ; "net_drawslider"
		mov	dword ptr [esp], offset	_ZL14net_drawslider ; net_drawslider
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14net_drawslider ;	net_drawslider
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aApplyBandwidth ; "Apply bandwidth choke to	loopback packe"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_chokeloop ; "net_chokeloop"
		mov	dword ptr [esp], offset	_ZL17net_chokeloopback ; net_chokeloopback
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17net_chokeloopback ; net_chokeloopback
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+18h], ebx
		mov	dword ptr [esp+20h], 42800000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aMaximumAllowed ; "Maximum allowed file size for uploading"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1016+2)
		mov	dword ptr [esp+4], offset aNet_maxfilesiz ; "net_maxfilesize"
		mov	dword ptr [esp], offset	_ZL15net_maxfilesize ; net_maxfilesize
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15net_maxfilesize ; net_maxfilesize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aUseLzCompressi ; "Use lz compression on game packets."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aNet_compresspa ; "net_compresspackets"
		mov	dword ptr [esp], offset	_ZL19net_compresspackets ; net_compresspackets
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19net_compresspackets ; net_compresspackets
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDonTBotherComp ; "Don't bother compressing packets below "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset dword_1EC2E4
		mov	dword ptr [esp+4], offset aNet_compress_0 ; "net_compresspackets_minsize"
		mov	dword ptr [esp], offset	_ZL27net_compresspackets_minsize ; net_compresspackets_minsize
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27net_compresspackets_minsize ; net_compresspackets_minsize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaxOfSecondsWe ; "Max # of	seconds	we can wait for	next p"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a4_0 ; "4.0"
		mov	dword ptr [esp+4], offset aNet_maxclearti ; "net_maxcleartime"
		mov	dword ptr [esp], offset	_ZL16net_maxcleartime ;	net_maxcleartime
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16net_maxcleartime	; net_maxcleartime
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIgnoreAnyPacke ; "Ignore any packets with the sequence nu"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a5000	; "5000"
		mov	dword ptr [esp+4], offset aNet_maxpacketd ; "net_maxpacketdrop"
		mov	dword ptr [esp], offset	_ZL17net_maxpacketdrop ; net_maxpacketdrop
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17net_maxpacketdrop ; net_maxpacketdrop
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_GLOBAL__sub_I_net_showudp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_net_synctags_cpp	proc near ; DATA XREF: .ctors:00272638o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2BE6E8, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2BE6E8+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2BE6F0, eax
		mov	dword ptr ds:qword_2BE6F0+4, eax
		retn
_GLOBAL__sub_I_net_synctags_cpp	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_net_usesocketsforloopback proc near ; DATA XREF:	.ctors:0027263Co
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, 1
		push	ebx
		mov	ebx, offset s_LoopBacks
		sub	esp, 3Ch
		mov	dword ptr ds:qword_2BEF58, 0
		mov	dword ptr ds:qword_2BEF58+4, 0
		mov	dword ptr ds:qword_2BEF60, 7F7FFFFFh
		mov	dword ptr ds:qword_2BEF60+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL11vec4_origin_65, 0 ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_65+4, 0
		mov	dword ptr ds:_ZL11vec4_origin_65+8, 0
		mov	dword ptr ds:_ZL11vec4_origin_65+0Ch, 0
		mov	dword ptr ds:_ZL12vec4_invalid_65, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_65+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_65+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_65+0Ch, 7F7FFFFFh
		mov	dword ptr [esp+10h], offset aShowIncomingPa ; "Show incoming packet information"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showudp_wi ; "net_showudp_wire"
		mov	dword ptr [esp], offset	_ZL16net_showudp_wire ;	net_showudp_wire
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16net_showudp_wire	; net_showudp_wire
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 48000000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 46000000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aDefaultUdpRece ; "Default UDP receive buffer size"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a131072 ; "131072"
		mov	dword ptr [esp+4], offset aNet_udp_rcvbuf ; "net_udp_rcvbuf"
		mov	dword ptr [esp], offset	_ZL14net_udp_rcvbuf ; net_udp_rcvbuf
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14net_udp_rcvbuf ;	net_udp_rcvbuf
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aShowInfoAboutP ; "Show info about packet splits"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_showsplits ; "net_showsplits"
		mov	dword ptr [esp], offset	_ZL14net_showsplits ; net_showsplits
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14net_showsplits ;	net_showsplits
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aNumberOfFragme ; "Number of fragments for a splitpacket t"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aNet_splitrate ; "net_splitrate"
		mov	dword ptr [esp], offset	_ZL13net_splitrate ; net_splitrate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13net_splitrate ; net_splitrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aOverridesIpFor ; "Overrides IP for	multihomed hosts"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset aLocalhost ; "localhost"
		mov	dword ptr [esp+4], (offset aHostGameServ_0+11h)
		mov	dword ptr [esp], offset	_ZL6ipname ; ipname
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6ipname ; ipname
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aHostGameServer ; "Host game server	port"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a27015 ; "27015"
		mov	dword ptr [esp+4], offset aHostport ; "hostport"
		mov	dword ptr [esp], offset	_ZL8hostport ; hostport
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8hostport ; hostport
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aHostGameServ_0 ; "Host game server	ip"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aHostip ; "hostip"
		mov	dword ptr [esp], offset	_ZL6hostip ; hostip
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6hostip ; hostip
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aHostGameClient ; "Host game client	port"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a27005 ; "27005"
		mov	dword ptr [esp+4], offset aClientport ;	"clientport"
		mov	dword ptr [esp], offset	_ZL10clientport	; clientport
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10clientport ; clientport
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aHostSourcetvPo ; "Host SourceTV port"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a27020 ; "27020"
		mov	dword ptr [esp+4], offset aTv_port ; "tv_port"
		mov	dword ptr [esp], offset	_ZL8hltvport ; hltvport
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8hltvport ; hltvport
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aHostMatchmakin ; "Host Matchmaking	port"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a27025 ; "27025"
		mov	dword ptr [esp+4], offset aMatchmakingpor ; "matchmakingport"
		mov	dword ptr [esp], offset	_ZL15matchmakingport ; matchmakingport
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15matchmakingport ; matchmakingport
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSystemLinkPort ; "System Link port"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a27030 ; "27030"
		mov	dword ptr [esp+4], offset aSystemlinkport ; "systemlinkport"
		mov	dword ptr [esp], offset	_ZL14systemlinkport ; systemlinkport
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14systemlinkport ;	systemlinkport
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLagAllIncoming ; "Lag all incoming	network	data (includin"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_fakelag ; "net_fakelag"
		mov	dword ptr [esp], offset	_ZL7fakelag ; fakelag
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL7fakelag ;	fakelag
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSimulatePacket ; "Simulate	packet loss as a percentage (n"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_fakeloss	; "net_fakeloss"
		mov	dword ptr [esp], offset	_ZL8fakeloss ; fakeloss
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8fakeloss ; fakeloss
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDropsNextNPack ; "Drops next n packets on client"
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_droppacket ; "net_droppackets"
		mov	dword ptr [esp], offset	_ZL11droppackets ; droppackets
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11droppackets ; droppackets
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aJitterFakelagP ; "Jitter fakelag packet time"
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_fakejitter ; "net_fakejitter"
		mov	dword ptr [esp], offset	_ZL10fakejitter	; fakejitter
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10fakejitter ; fakejitter
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAttemptToCompr ; "Attempt to compress out of band voice p"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_compressvo ; "net_compressvoice"
		mov	dword ptr [esp], offset	_ZL17net_compressvoice ; net_compressvoice
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17net_compressvoice ; net_compressvoice
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aUseNetworkSock ; "Use network sockets layer even for list"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_usesockets ; "net_usesocketsforloopback"
		mov	dword ptr [esp], offset	net_usesocketsforloopback
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset net_usesocketsforloopback
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], offset aLoopback_tPool ; "loopback_t pool"
		mov	dword ptr [esp+0Ch], 2
		mov	dword ptr [esp+8], 2
		mov	dword ptr [esp+4], 808h
		mov	dword ptr [esp], offset	_ZN10loopback_t11s_AllocatorE ;	loopback_t::s_Allocator
		call	_ZN14CUtlMemoryPoolC2EiiiPKci ;	CUtlMemoryPool::CUtlMemoryPool(int,int,int,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZN10loopback_t11s_AllocatorE	; loopback_t::s_Allocator
		mov	dword ptr [esp], offset	_ZN14CUtlMemoryPoolD2Ev	; CUtlMemoryPool::~CUtlMemoryPool()
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 449D8000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 44100000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aServerUpperBou ; "Server upper bound on net_maxroutable t"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1260	; "1260"
		mov	dword ptr [esp+4], offset aSv_maxroutable ; "sv_maxroutable"
		mov	dword ptr [esp], offset	_ZL14sv_maxroutable ; sv_maxroutable
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14sv_maxroutable ;	sv_maxroutable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 449D8000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 44100000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aRequestedMaxPa ; "Requested max packet size before	packet"...
		mov	dword ptr [esp+0Ch], 280h
		mov	dword ptr [esp+8], offset a1260	; "1260"
		mov	dword ptr [esp+4], offset aNet_maxroutabl ; "net_maxroutable"
		mov	dword ptr [esp], offset	net_maxroutable
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset net_maxroutable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	net_local_adr
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	net_local_adr
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	dword ptr [esp], offset	net_local_adr
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr ds:_ZL11net_sockets, 0 ; net_sockets
		mov	dword ptr ds:_ZL11net_sockets+4, 0
		mov	dword ptr ds:_ZL11net_sockets+8, 0
		mov	dword ptr ds:_ZL11net_sockets+0Ch, 0
		mov	dword ptr ds:_ZL11net_sockets+10h, 0
		mov	dword ptr [esp+4], offset _ZL11net_sockets ; net_sockets
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI11netsocket_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<netsocket_t,CUtlMemory<netsocket_t,int>>::~CUtlVector()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr ds:_ZL11net_packets, 0 ; net_packets
		mov	dword ptr ds:_ZL11net_packets+4, 0
		mov	dword ptr ds:_ZL11net_packets+8, 0
		mov	dword ptr ds:_ZL11net_packets+0Ch, 0
		mov	dword ptr ds:_ZL11net_packets+10h, 0
		mov	dword ptr [esp+4], offset _ZL11net_packets ; net_packets
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI11netpacket_s10CUtlMemoryIS0_iEED2Ev ; CUtlVector<netpacket_s,CUtlMemory<netpacket_s,int>>::~CUtlVector()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr ds:_ZL13s_NetChannels+14h, 0
		mov	dword ptr ds:_ZL13s_NetChannels, 0 ; s_NetChannels
		mov	dword ptr ds:_ZL13s_NetChannels+4, 0
		mov	dword ptr ds:_ZL13s_NetChannels+8, 0
		mov	dword ptr ds:_ZL13s_NetChannels+0Ch, 0
		mov	dword ptr ds:_ZL13s_NetChannels+10h, 0
		mov	dword ptr ds:_ZL13s_NetChannels+18h, 0
		mov	dword ptr ds:_ZL13s_NetChannels+1Ch, 0
		mov	dword ptr ds:_ZL13s_NetChannels+20h, 0
		mov	dword ptr [esp+4], offset _ZL13s_NetChannels ; s_NetChannels
		mov	dword ptr [esp], offset	_ZN12CUtlVectorMTI10CUtlVectorIP8CNetChan10CUtlMemoryIS2_iEE16CThreadFastMutexED2Ev ; CUtlVectorMT<CUtlVector<CNetChan *,CUtlMemory<CNetChan *,int>>,CThreadFastMutex>::~CUtlVectorMT()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr ds:_ZL16s_PendingSockets+14h,	0
		mov	dword ptr ds:_ZL16s_PendingSockets, 0 ;	s_PendingSockets
		mov	dword ptr ds:_ZL16s_PendingSockets+4, 0
		mov	dword ptr ds:_ZL16s_PendingSockets+8, 0
		mov	dword ptr ds:_ZL16s_PendingSockets+0Ch,	0
		mov	dword ptr ds:_ZL16s_PendingSockets+10h,	0
		mov	dword ptr ds:_ZL16s_PendingSockets+18h,	0
		mov	dword ptr ds:_ZL16s_PendingSockets+1Ch,	0
		mov	dword ptr ds:_ZL16s_PendingSockets+20h,	0
		mov	dword ptr [esp+4], offset _ZL16s_PendingSockets	; s_PendingSockets
		mov	dword ptr [esp], offset	_ZN12CUtlVectorMTI10CUtlVectorI15pendingsocket_t10CUtlMemoryIS1_iEE16CThreadFastMutexED2Ev ; CUtlVectorMT<CUtlVector<pendingsocket_t,CUtlMemory<pendingsocket_t,int>>,CThreadFastMutex>::~CUtlVectorMT()
		call	__cxa_atexit

loc_6AD37:				; CODE XREF: _GLOBAL__sub_I_net_usesocketsforloopback+8B1j
		mov	dword ptr [ebx+10h], 0
		lea	edi, [ebx+18h]
		mov	[esp], edi
		call	_ZN11CTSListBaseC2Ev ; CTSListBase::CTSListBase(void)
		lea	eax, [ebx+10h]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	ThreadInterlockedExchange
		mov	dword ptr [ebx+0Ch], 0
		mov	eax, [ebx+10h]
		sub	esi, 1
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [esp+4], 8 ; size
		mov	dword ptr [esp], 8 ; alignment
		call	memalign
		mov	[ebx+8], eax
		mov	[ebx], eax
		mov	[eax], ebx
		add	ebx, 20h
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_6AD37
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	__tcf_0_0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16net_splitpackets	; net_splitpackets
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIS_I17CSplitPacketEntry10CUtlMemoryIS0_iEES1_IS3_iEED2Ev	; CUtlVector<CUtlVector<CSplitPacketEntry,CUtlMemory<CSplitPacketEntry,int>>,CUtlMemory<CUtlVector<CSplitPacketEntry,CUtlMemory<CSplitPacketEntry,int>>,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL16net_splitpackets, 0 ;	net_splitpackets
		mov	dword ptr ds:_ZL16net_splitpackets+4, 0
		mov	dword ptr ds:_ZL16net_splitpackets+8, 0
		mov	dword ptr ds:_ZL16net_splitpackets+0Ch,	0
		mov	dword ptr ds:_ZL16net_splitpackets+10h,	0
		call	__cxa_atexit
		mov	dword ptr [esp], offset	g_NetScratchBuffers
		call	_ZN11CTSListBaseC2Ev ; CTSListBase::CTSListBase(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_NetScratchBuffers
		mov	dword ptr [esp], offset	_ZN13CTSSimpleListI18NetScratchBuffer_tED2Ev ; CTSSimpleList<NetScratchBuffer_t>::~CTSSimpleList()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11g_SendQueue ; g_SendQueue
		mov	dword ptr [esp], offset	_ZN11SendQueue_tD2Ev ; SendQueue_t::~SendQueue_t()
		mov	dword ptr ds:_ZL11g_SendQueue, 0 ; g_SendQueue
		mov	dword ptr ds:_ZL11g_SendQueue+4, 0
		mov	dword ptr ds:_ZL11g_SendQueue+8, 0
		mov	dword ptr ds:_ZL11g_SendQueue+0Ch, 0
		mov	word ptr ds:_ZL11g_SendQueue+1Ah, 0FFFFh
		mov	word ptr ds:_ZL11g_SendQueue+10h, 0FFFFh
		mov	word ptr ds:_ZL11g_SendQueue+12h, 0FFFFh
		mov	word ptr ds:_ZL11g_SendQueue+14h, 0FFFFh
		mov	word ptr ds:_ZL11g_SendQueue+16h, 0
		mov	word ptr ds:_ZL11g_SendQueue+18h, 0
		mov	dword ptr ds:_ZL11g_SendQueue+1Ch, 0
		call	__cxa_atexit
		mov	dword ptr [esp+20h], 49800000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+18h], 447A0000h
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aMaxBytesPerSec ; "Max bytes per second when queueing spli"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset byte_203347
		mov	dword ptr [esp+4], offset aNet_splitpacke ; "net_splitpacket_maxrate"
		mov	dword ptr [esp], offset	_ZL23net_splitpacket_maxrate ; net_splitpacket_maxrate
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23net_splitpacket_maxrate ; net_splitpacket_maxrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowsNetChanne ; "Shows net channel info"
		mov	dword ptr [esp+8], offset _ZL12net_channelsRK8CCommand ; net_channels(CCommand	const&)
		mov	dword ptr [esp+4], offset aNet_channels	; "net_channels"
		mov	dword ptr [esp], offset	_ZL20net_channels_command ; net_channels_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20net_channels_command ; net_channels_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aInitsMultiplay ; "Inits multiplayer network sockets"
		mov	dword ptr [esp+8], offset _ZL9net_startRK8CCommand ; net_start(CCommand	 const&)
		mov	dword ptr [esp+4], offset aNet_start ; "net_start"
		mov	dword ptr [esp], offset	_ZL17net_start_command ; net_start_command

loc_6AF90:				; DATA XREF: fill_window(TState	&)+Cr
					; fill_window(TState &)+66r ...
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17net_start_command ; net_start_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset byte_203393
		mov	dword ptr [esp+8], offset _ZL10net_statusRK8CCommand ; net_status(CCommand  const&)
		mov	dword ptr [esp+4], offset aNet_status ;	"net_status"
		mov	dword ptr [esp], offset	_ZL18net_status_command	; net_status_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18net_status_command ; net_status_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_GLOBAL__sub_I_net_usesocketsforloopback endp

; ---------------------------------------------------------------------------
		mov	edi, eax

loc_6B00B:				; CODE XREF: .text:0006B03Cj
		mov	edx, 1
		sub	edx, esi
		shl	edx, 5
		lea	ebx, s_LoopBacks[edx]

loc_6B01B:				; CODE XREF: .text:0006B02Ej
		cmp	ebx, offset s_LoopBacks
		jz	short loc_6B03E
		sub	ebx, 20h
		mov	[esp], ebx
		call	_ZN8CTSQueueIP10loopback_tLb0EED2Ev ; CTSQueue<loopback_t *,false>::~CTSQueue()
		jmp	short loc_6B01B
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN11CTSListBaseD2Ev ; CTSListBase::~CTSListBase()
		mov	edi, ebx
		jmp	short loc_6B00B
; ---------------------------------------------------------------------------

loc_6B03E:				; CODE XREF: .text:0006B021j
		mov	[esp], edi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_net_queued_packet_thread	proc near ; DATA XREF: .ctors:00272640o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2BF2D4, edx
		mov	dword ptr ds:qword_2BF2D4+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_66, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_66+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_66+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_66+0Ch, edx
		mov	dword ptr ds:qword_2BF2DC, eax
		mov	dword ptr ds:qword_2BF2DC+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_66, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_66+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_66+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_66+0Ch, eax
		mov	dword ptr [esp+10h], offset aUseAHighPriori ; "Use a high priority thread to send queu"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aNet_queued_pac ; "net_queued_packet_thread"
		mov	dword ptr [esp], offset	net_queued_packet_thread
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset net_queued_packet_thread
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aNet_queue_trac ; "net_queue_trace"
		mov	dword ptr [esp], offset	net_queue_trace
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset net_queue_trace
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL20g_QueuedPacketSender ; g_QueuedPacketSender
		call	_ZN19CQueuedPacketSenderC2Ev ; CQueuedPacketSender::CQueuedPacketSender(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20g_QueuedPacketSender ; g_QueuedPacketSender
		mov	dword ptr [esp], offset	_ZN19CQueuedPacketSenderD2Ev ; CQueuedPacketSender::~CQueuedPacketSender()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_net_queued_packet_thread	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_r_visocclusion proc near	; DATA XREF: .ctors:00272644o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C0524, edx
		mov	dword ptr ds:qword_2C0524+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_67, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_67+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_67+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_67+0Ch, edx
		mov	dword ptr ds:qword_2C052C, eax
		mov	dword ptr ds:qword_2C052C+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_67, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_67+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_67+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_67+0Ch, eax
		mov	dword ptr [esp+10h], offset aActivateDeac_0 ; "Activate/deactivate wireframe rendering"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_visocclusion ; "r_visocclusion"
		mov	dword ptr [esp], offset	r_visocclusion
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_visocclusion
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aActivateDeac_1 ; "Activate/deactivate the occlusion syste"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_occlusion ; "r_occlusion"
		mov	dword ptr [esp], offset	r_occlusion
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_occlusion
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAtLeastThisMan ; "At least	this many occluders will be us"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_occluderminc ; "r_occludermincount"
		mov	dword ptr [esp], offset	_ZL18r_occludermincount	; r_occludermincount
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18r_occludermincount ; r_occludermincount
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aActivateDeac_2 ; "Activate/deactivates spew about what th"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_occlusionspe ; "r_occlusionspew"
		mov	dword ptr [esp], offset	_ZL15r_occlusionspew ; r_occlusionspew
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15r_occlusionspew ; r_occlusionspew
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aPreventsThisOc ; "Prevents	this occluder from being used "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_occludermina ; "r_occluderminarea"
		mov	dword ptr [esp], offset	r_occluderminarea
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_occluderminarea
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aPreventsOcclus ; "Prevents	occlusion testing for entities"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_occludeemaxa ; "r_occludeemaxarea"
		mov	dword ptr [esp], offset	r_occludeemaxarea
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_occludeemaxarea
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19g_EdgeVisualization ; g_EdgeVisualization
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI23EdgeVisualizationInfo_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<EdgeVisualizationInfo_t,CUtlMemory<EdgeVisualizationInfo_t,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL19g_EdgeVisualization, 0 ; g_EdgeVisualization
		mov	dword ptr ds:_ZL19g_EdgeVisualization+4, 0
		mov	dword ptr ds:_ZL19g_EdgeVisualization+8, 0
		mov	dword ptr ds:_ZL19g_EdgeVisualization+0Ch, 0
		mov	dword ptr ds:_ZL19g_EdgeVisualization+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL17g_OcclusionSystem ; g_OcclusionSystem
		call	_ZN16COcclusionSystemC2Ev ; COcclusionSystem::COcclusionSystem(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17g_OcclusionSystem ; g_OcclusionSystem
		mov	dword ptr [esp], offset	_ZN16COcclusionSystemD2Ev ; COcclusionSystem::~COcclusionSystem()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL20s_WingedTestEdgeList ; s_WingedTestEdgeList
		call	_ZN15CWingedEdgeListC2Ev ; CWingedEdgeList::CWingedEdgeList(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20s_WingedTestEdgeList ; s_WingedTestEdgeList
		mov	dword ptr [esp], offset	_ZN15CWingedEdgeListD2Ev ; CWingedEdgeList::~CWingedEdgeList()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_r_visocclusion endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_OverlayRenderFrameID proc near	; DATA XREF: .ctors:00272648o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2C0728, edx
		mov	dword ptr ds:qword_2C0728+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_68, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_68+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_68+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_68+0Ch, edx
		mov	dword ptr ds:qword_2C0730, eax
		mov	dword ptr ds:qword_2C0730+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_68, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_68+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_68+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_68+0Ch, eax
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_renderoverla ; "r_renderoverlayfragment"
		mov	dword ptr [esp], offset	_ZL23r_renderoverlayfragment ; r_renderoverlayfragment
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23r_renderoverlayfragment ; r_renderoverlayfragment
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_overlaywiref ; "r_overlaywireframe"
		mov	dword ptr [esp], offset	_ZL18r_overlaywireframe	; r_overlaywireframe
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18r_overlaywireframe ; r_overlaywireframe
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_overlayfadee ; "r_overlayfadeenable"
		mov	dword ptr [esp], offset	_ZL19r_overlayfadeenable ; r_overlayfadeenable
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19r_overlayfadeenable ; r_overlayfadeenable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1750_0f ; "1750.0f"
		mov	dword ptr [esp+4], offset aR_overlayfadem ; "r_overlayfademin"
		mov	dword ptr [esp], offset	_ZL16r_overlayfademin ;	r_overlayfademin
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_overlayfademin	; r_overlayfademin
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset byte_204C0B
		mov	dword ptr [esp+4], offset aR_overlayfad_0 ; "r_overlayfademax"
		mov	dword ptr [esp], offset	_ZL16r_overlayfademax ;	r_overlayfademax
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_overlayfademax	; r_overlayfademax
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL12g_OverlayMgr ; g_OverlayMgr
		call	_ZN11COverlayMgrC2Ev ; COverlayMgr::COverlayMgr(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12g_OverlayMgr ; g_OverlayMgr
		mov	dword ptr [esp], offset	_ZN11COverlayMgrD2Ev ; COverlayMgr::~COverlayMgr()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_OverlayRenderFrameID endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN12PackedEntityC2Ev proc near ; DATA XREF: .ctors:0027264Co
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2C0818, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2C0818+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2C0820, eax
		mov	dword ptr ds:qword_2C0820+4, eax
		retn
_GLOBAL__sub_I__ZN12PackedEntityC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z13GetFlagStringi proc near ; DATA XREF: .ctors:00272650o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2C0A40, edx
		pop	ebp
		mov	dword ptr ds:qword_2C0A40+4, edx
		mov	dword ptr ds:qword_2C0A48, eax
		mov	dword ptr ds:qword_2C0A48+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_69, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_69+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_69+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_69+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_69, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_69+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_69+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_69+0Ch, eax
		retn
_GLOBAL__sub_I__Z13GetFlagStringi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z13ED_ClearEdictP7edict_t proc near ; DATA XREF: .ctors:00272654o
		push	ebp
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		sub	esp, 34h
		mov	dword ptr ds:qword_2C0B88, ebx
		mov	dword ptr ds:qword_2C0B88+4, ebx
		mov	dword ptr ds:qword_2C0B90, eax
		mov	dword ptr ds:qword_2C0B90+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_70, ebx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_70+4, ebx
		mov	dword ptr ds:_ZL11vec4_origin_70+8, ebx
		mov	dword ptr ds:_ZL11vec4_origin_70+0Ch, ebx
		mov	dword ptr ds:_ZL12vec4_invalid_70, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_70+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_70+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_70+0Ch, eax
		mov	dword ptr [esp+10h], offset aExplicitlyDele ; "Explicitly delete dormant client	entiti"...
		mov	dword ptr [esp+0Ch], 2
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_useexplicit ; "sv_useexplicitdelete"
		mov	dword ptr [esp], offset	_ZL20sv_useexplicitdelete ; sv_useexplicitdelete
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20sv_useexplicitdelete ; sv_useexplicitdelete
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+18h], ebx
		mov	dword ptr [esp+20h], 45000000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aWhenOnlyThisMa ; "When only this many edicts are free, ta"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset aUtf8+4)
		mov	dword ptr [esp+4], offset aSv_lowedict_th ; "sv_lowedict_threshold"
		mov	dword ptr [esp], offset	_ZL21sv_lowedict_threshold ; sv_lowedict_threshold
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21sv_lowedict_threshold ; sv_lowedict_threshold
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+18h], ebx
		mov	dword ptr [esp+20h], 40800000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset a0NoAction1Warn ; "0 - no action, 1	- warn to log file, 2 "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_lowedict_ac ; "sv_lowedict_action"
		mov	dword ptr [esp], offset	_ZL18sv_lowedict_action	; sv_lowedict_action
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18sv_lowedict_action ; sv_lowedict_action
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_GLOBAL__sub_I__Z13ED_ClearEdictP7edict_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN20CPureServerWhitelist8CCommandC2Ev proc near
					; DATA XREF: .ctors:00272658o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2C0BB8, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2C0BB8+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2C0BC0, eax
		mov	dword ptr ds:qword_2C0BC0+4, eax
		retn
_GLOBAL__sub_I__ZN20CPureServerWhitelist8CCommandC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_quakedef_cpp proc near	; DATA XREF: .ctors:0027265Co
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2C0BD0, edx
		pop	ebp
		mov	dword ptr ds:qword_2C0BD0+4, edx
		mov	dword ptr ds:qword_2C0BD8, eax
		mov	dword ptr ds:qword_2C0BD8+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_71, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_71+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_71+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_71+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_71, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_71+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_71+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_71+0Ch, eax
		retn
_GLOBAL__sub_I_quakedef_cpp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_randomstream_cpp	proc near ; DATA XREF: .ctors:00272660o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2C0C00, eax
		mov	dword ptr ds:qword_2C0C00+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr [esp+8], offset aVenginerandom0 ; "VEngineRandom001"
		mov	dword ptr [esp+4], offset _ZL64__CreateCEngineUniformRandomStreamIUniformRandomStream_interfacev ; __CreateCEngineUniformRandomStreamIUniformRandomStream_interface(void)
		mov	dword ptr [esp], offset	_ZL60__g_CreateCEngineUniformRandomStreamIUniformRandomStream_reg ; __g_CreateCEngineUniformRandomStreamIUniformRandomStream_reg
		mov	dword ptr ds:qword_2C0C08, eax
		mov	dword ptr ds:qword_2C0C08+4, eax
		mov	ds:_ZL20s_EngineRandomStream, (offset _ZTV26CEngineUniformRandomStream+8) ; s_EngineRandomStream
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_randomstream_cpp	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_render_pch_cpp proc near	; DATA XREF: .ctors:00272664o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2C0C20, edx
		pop	ebp
		mov	dword ptr ds:qword_2C0C20+4, edx
		mov	dword ptr ds:qword_2C0C28, eax
		mov	dword ptr ds:qword_2C0C28+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_72, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_72+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_72+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_72+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_72, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_72+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_72+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_72+0Ch, eax
		retn
_GLOBAL__sub_I_render_pch_cpp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN19CReplayDemoRecorderC2EP13CReplayServer proc	near
					; DATA XREF: .ctors:00272668o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2C0D68, edx
		pop	ebp
		mov	dword ptr ds:qword_2C0D68+4, edx
		mov	dword ptr ds:qword_2C0D70, eax
		mov	dword ptr ds:qword_2C0D70+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_73, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_73+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_73+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_73+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_73, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_73+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_73+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_73+0Ch, eax
		retn
_GLOBAL__sub_I__ZN19CReplayDemoRecorderC2EP13CReplayServer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_replay proc near		; DATA XREF: .ctors:0027266Co
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2C0DA8, edx
		pop	ebp
		mov	dword ptr ds:qword_2C0DA8+4, edx
		mov	dword ptr ds:qword_2C0DB0, eax
		mov	dword ptr ds:qword_2C0DB0+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_74, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_74+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_74+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_74+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_74, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_74+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_74+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_74+0Ch, eax
		retn
_GLOBAL__sub_I_replay endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pReplay proc near	; DATA XREF: .ctors:00272670o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2C0E38, edx
		mov	dword ptr ds:qword_2C0E38+4, edx
		mov	dword ptr ds:qword_2C0E40, eax
		mov	dword ptr ds:qword_2C0E40+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_75, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_75+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_75+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_75+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_75, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_75+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_75+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_75+0Ch, eax
		mov	dword ptr [esp+0Ch], 20000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aReplay_debug	; "replay_debug"
		mov	dword ptr [esp], offset	replay_debug
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset replay_debug
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_pReplay endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_r_decal_overlap_count proc near ; DATA XREF: .ctors:00272674o
		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C1088, 0
		mov	dword ptr ds:qword_2C1088+4, 0
		mov	dword ptr ds:qword_2C1090, 7F7FFFFFh
		mov	dword ptr ds:qword_2C1090+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL11vec4_origin_76, 0 ; vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_76+4, 0
		mov	dword ptr ds:_ZL11vec4_origin_76+8, 0
		mov	dword ptr ds:_ZL11vec4_origin_76+0Ch, 0
		mov	dword ptr ds:_ZL12vec4_invalid_76, 7F7FFFFFh ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_76+4, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_76+8, 7F7FFFFFh
		mov	dword ptr ds:_ZL12vec4_invalid_76+0Ch, 7F7FFFFFh
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset aUserToken3+0Bh)
		mov	dword ptr [esp+4], offset aR_decal_overla ; "r_decal_overlap_count"
		mov	dword ptr [esp], offset	r_decal_overlap_count
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_decal_overlap_count
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a0_4 ; "0.4"
		mov	dword ptr [esp+4], offset aR_decal_over_0 ; "r_decal_overlap_area"
		mov	dword ptr [esp], offset	r_decal_overlap_area
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_decal_overlap_area
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a0_4+2)
		mov	dword ptr [esp+4], offset aR_decal_cover_ ; "r_decal_cover_count"
		mov	dword ptr [esp], offset	r_decal_cover_count
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_decal_cover_count
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], 80h
		mov	dword ptr [esp+4], 60h
		mov	dword ptr [esp], offset	_ZL16g_DecalAllocator ;	g_DecalAllocator
		call	_ZN14CUtlMemoryPoolC2EiiiPKci ;	CUtlMemoryPool::CUtlMemoryPool(int,int,int,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16g_DecalAllocator	; g_DecalAllocator
		mov	dword ptr [esp], offset	_ZN16CClassMemoryPoolI7decal_tED2Ev ; CClassMemoryPool<decal_t>::~CClassMemoryPool()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr ds:s_aDecalPool, 0
		mov	dword ptr ds:s_aDecalPool+4, 0
		mov	dword ptr ds:s_aDecalPool+8, 0
		mov	dword ptr ds:s_aDecalPool+0Ch, 0
		mov	dword ptr ds:s_aDecalPool+10h, 0
		mov	dword ptr [esp+4], offset s_aDecalPool
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIP7decal_t10CUtlMemoryIS1_iEED2Ev ; CUtlVector<decal_t *,CUtlMemory<decal_t *,int>>::~CUtlVector()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_dscale_nears ; "r_dscale_nearscale"
		mov	dword ptr [esp], offset	_ZL18r_dscale_nearscale	; r_dscale_nearscale
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18r_dscale_nearscale ; r_dscale_nearscale
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset dword_1EC274
		mov	dword ptr [esp+4], offset aR_dscale_neard ; "r_dscale_neardist"
		mov	dword ptr [esp], offset	_ZL17r_dscale_neardist ; r_dscale_neardist
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_dscale_neardist ; r_dscale_neardist
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a0_4+2)
		mov	dword ptr [esp+4], offset aR_dscale_farsc ; "r_dscale_farscale"
		mov	dword ptr [esp], offset	_ZL17r_dscale_farscale ; r_dscale_farscale
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_dscale_farscale ; r_dscale_farscale
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a2000	; "2000"
		mov	dword ptr [esp+4], offset aR_dscale_fardi ; "r_dscale_fardist"
		mov	dword ptr [esp], offset	_ZL16r_dscale_fardist ;	r_dscale_fardist
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_dscale_fardist	; r_dscale_fardist
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset byte_1EC24D
		mov	dword ptr [esp+4], offset aR_dscale_basef ; "r_dscale_basefov"
		mov	dword ptr [esp], offset	_ZL16r_dscale_basefov ;	r_dscale_basefov
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_dscale_basefov	; r_dscale_basefov
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aNumberOfRounds ; "Number of rounds	player sprays are visi"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset aMore2+7)
		mov	dword ptr [esp+4], offset aR_spray_lifeti ; "r_spray_lifetime"
		mov	dword ptr [esp], offset	r_spray_lifetime
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_spray_lifetime
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aOffloadsABitOf ; "Offloads	a bit of decal rendering setup"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_queued_decal ; "r_queued_decals"
		mov	dword ptr [esp], offset	r_queued_decals
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_queued_decals
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14g_DecalChecker ;	g_DecalChecker
		mov	dword ptr [esp], offset	_ZN13CDecalCheckerD2Ev ; CDecalChecker::~CDecalChecker()
		call	__cxa_atexit
		mov	eax, offset _ZL15s_DecalSurfaces ; s_DecalSurfaces

loc_6BDBD:				; CODE XREF: _GLOBAL__sub_I_r_decal_overlap_count+3F7j
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		add	eax, 14h
		cmp	eax, offset dword_2C1344
		jnz	short loc_6BDBD
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	__tcf_0_1
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRenderDecals_ ; "Render decals."
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawdecals	; "r_drawdecals"
		mov	dword ptr [esp], offset	_ZL12r_drawdecals ; r_drawdecals
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12r_drawdecals ; r_drawdecals
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aRenderDecalsBa ; "Render decals batched."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawbatchdec ; "r_drawbatchdecals"
		mov	dword ptr [esp], offset	_ZL17r_drawbatchdecals ; r_drawbatchdecals
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_drawbatchdecals ; r_drawbatchdecals
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset _ZL18r_printdecalinfo_fv ; r_printdecalinfo_f(void)
		mov	dword ptr [esp+4], offset aR_printdecalin ; "r_printdecalinfo"
		mov	dword ptr [esp], offset	_ZL16r_printdecalinfo ;	r_printdecalinfo
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16r_printdecalinfo	; r_printdecalinfo
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_r_decal_overlap_count endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_Points	proc near	; DATA XREF: .ctors:00272678o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2C1458, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_Points
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI6Vector10CUtlMemoryIS0_iEED2Ev ; CUtlVector<Vector,CUtlMemory<Vector,int>>::~CUtlVector()
		mov	dword ptr ds:qword_2C1458+4, edx
		mov	dword ptr ds:qword_2C1460, eax
		mov	dword ptr ds:qword_2C1460+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_77, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_77+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_77+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_77+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_77, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_77+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_77+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_77+0Ch, eax
		mov	dword ptr ds:g_Points, 0
		mov	dword ptr ds:g_Points+4, 0
		mov	dword ptr ds:g_Points+8, 0
		mov	dword ptr ds:g_Points+0Ch, 0
		mov	dword ptr ds:g_Points+10h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_Points	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_server_pch_cpp proc near	; DATA XREF: .ctors:0027267Co
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2C1488, edx
		pop	ebp
		mov	dword ptr ds:qword_2C1488+4, edx
		mov	dword ptr ds:qword_2C1490, eax
		mov	dword ptr ds:qword_2C1490+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_78, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_78+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_78+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_78+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_78, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_78+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_78+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_78+0Ch, eax
		retn
_GLOBAL__sub_I_server_pch_cpp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN16COM_IOReadBinary4openEPKc proc near	; DATA XREF: .ctors:00272680o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2C14BC, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2C14BC+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2C14C4, eax
		mov	dword ptr ds:qword_2C14C4+4, eax
		mov	ds:_ZL2io, (offset _ZTV16COM_IOReadBinary+8) ; io
		retn
_GLOBAL__sub_I__ZN16COM_IOReadBinary4openEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z16SocketWouldBlockv proc near ; DATA XREF: .ctors:00272684o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2C14CC, edx
		pop	ebp
		mov	dword ptr ds:qword_2C14CC+4, edx
		mov	dword ptr ds:qword_2C14D4, eax
		mov	dword ptr ds:qword_2C14D4+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_79, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_79+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_79+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_79+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_79, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_79+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_79+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_79+0Ch, eax
		retn
_GLOBAL__sub_I__Z16SocketWouldBlockv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_snd_refdist proc	near	; DATA XREF: .ctors:00272688o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2C1728, eax
		mov	dword ptr ds:qword_2C1728+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2C1730, eax
		mov	dword ptr ds:qword_2C1730+4, eax
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset byte_1EC181
		mov	dword ptr [esp+4], offset aSnd_refdist ; "snd_refdist"
		mov	dword ptr [esp], offset	snd_refdist
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_refdist
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset byte_1EC1DD
		mov	dword ptr [esp+4], offset aSnd_refdb ; "snd_refdb"
		mov	dword ptr [esp], offset	snd_refdb
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_refdb
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a0_4+2)
		mov	dword ptr [esp+4], offset aSnd_foliage_db ; "snd_foliage_db_loss"
		mov	dword ptr [esp], offset	snd_foliage_db_loss
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_foliage_db_loss
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSnd_gain ; "snd_gain"
		mov	dword ptr [esp], offset	snd_gain
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_gain
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSnd_gain_max	; "snd_gain_max"
		mov	dword ptr [esp], offset	snd_gain_max
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_gain_max
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a0_01	; "0.01"
		mov	dword ptr [esp+4], offset aSnd_gain_min	; "snd_gain_min"
		mov	dword ptr [esp], offset	snd_gain_min
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset snd_gain_min
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_snd_refdist endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN10CVoxelHashC2Ev proc	near ; DATA XREF: .ctors:0027268Co
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C1908, eax
		mov	dword ptr ds:qword_2C1908+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2C1910, eax
		mov	dword ptr ds:qword_2C1910+4, eax
		mov	eax, 0C6800000h
		mov	ds:_ZL13s_pVoxelColor, 0FFh ; s_pVoxelColor
		mov	ds:_ZL13s_pVoxelColor+1, 0
		mov	ds:_ZL13s_pVoxelColor+2, 0
		mov	ds:_ZL13s_pVoxelColor+3, 0FFh
		mov	ds:_ZL13s_pVoxelColor+4, 0
		mov	ds:_ZL13s_pVoxelColor+5, 0FFh
		mov	ds:_ZL13s_pVoxelColor+6, 0
		mov	ds:_ZL13s_pVoxelColor+7, 0FFh
		mov	ds:_ZL13s_pVoxelColor+8, 0
		mov	ds:_ZL13s_pVoxelColor+9, 0
		mov	ds:_ZL13s_pVoxelColor+0Ah, 0FFh
		mov	ds:_ZL13s_pVoxelColor+0Bh, 0FFh
		mov	ds:_ZL13s_pVoxelColor+0Ch, 0FFh
		mov	ds:_ZL13s_pVoxelColor+0Dh, 0
		mov	ds:_ZL13s_pVoxelColor+0Eh, 0FFh
		mov	ds:_ZL13s_pVoxelColor+0Fh, 0FFh
		mov	ds:_ZL13s_pVoxelColor+10h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+11h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+12h, 0
		mov	ds:_ZL13s_pVoxelColor+13h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+14h, 0
		mov	ds:_ZL13s_pVoxelColor+15h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+16h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+17h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+18h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+19h, 0FFh
		mov	ds:_ZL13s_pVoxelColor+1Ah, 0FFh
		mov	ds:_ZL13s_pVoxelColor+1Bh, 0FFh
		mov	dword ptr ds:_ZL14s_PartitionMin, eax ;	s_PartitionMin
		mov	dword ptr ds:_ZL14s_PartitionMin+4, eax
		mov	dword ptr ds:_ZL14s_PartitionMin+8, eax
		mov	eax, 46800000h
		mov	dword ptr ds:_ZL14s_PartitionMax, eax ;	s_PartitionMax
		mov	dword ptr ds:_ZL14s_PartitionMax+4, eax
		mov	dword ptr ds:_ZL14s_PartitionMax+8, eax
		mov	dword ptr [esp], offset	_ZL18g_SpatialPartition	; g_SpatialPartition
		mov	ds:_ZL13s_pVoxelColor+1Ch, 0C0h
		mov	ds:_ZL13s_pVoxelColor+1Dh, 0C0h
		mov	ds:_ZL13s_pVoxelColor+1Eh, 0
		mov	ds:_ZL13s_pVoxelColor+1Fh, 0FFh
		mov	ds:_ZL13s_pVoxelColor+20h, 80h
		mov	ds:_ZL13s_pVoxelColor+21h, 80h
		mov	ds:_ZL13s_pVoxelColor+22h, 80h
		mov	ds:_ZL13s_pVoxelColor+23h, 0FFh
		call	_ZN17CSpatialPartitionC2Ev ; CSpatialPartition::CSpatialPartition(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18g_SpatialPartition ; g_SpatialPartition
		mov	dword ptr [esp], offset	_ZN17CSpatialPartitionD2Ev ; CSpatialPartition::~CSpatialPartition()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aSpatialpartiti ; "SpatialPartition001"
		mov	dword ptr [esp+4], offset _ZL52__CreateCSpatialPartitionISpatialPartition_interfacev ; __CreateCSpatialPartitionISpatialPartition_interface(void)
		mov	dword ptr [esp], offset	_ZL48__g_CreateCSpatialPartitionISpatialPartition_reg ;	__g_CreateCSpatialPartitionISpatialPartition_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+10h], offset aDisplaysAParti ; "Displays	a particular level of the spat"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_partition_le ; "r_partition_level"
		mov	dword ptr [esp], offset	_ZL17r_partition_level ; r_partition_level
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_partition_level ; r_partition_level
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN10CVoxelHashC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_r_staticpropinfo	proc near ; DATA XREF: .ctors:00272690o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C1C28, edx
		mov	dword ptr ds:qword_2C1C28+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_80, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_80+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_80+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_80+0Ch, edx
		mov	dword ptr ds:qword_2C1C30, eax
		mov	dword ptr ds:qword_2C1C30+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_80, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_80+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_80+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_80+0Ch, eax
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aR_drawspecific ; "r_DrawSpecificStaticProp"
		mov	dword ptr [esp], offset	_ZL24r_DrawSpecificStaticProp ;	r_DrawSpecificStaticProp
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24r_DrawSpecificStaticProp	; r_DrawSpecificStaticProp
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset a0Off1Normal2Wi ; "0=Off, 1=Normal,	2=Wireframe"
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawstaticpr ; "r_drawstaticprops"
		mov	dword ptr [esp], offset	_ZL17r_drawstaticprops ; r_drawstaticprops
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17r_drawstaticprops ; r_drawstaticprops
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_colorstaticp ; "r_colorstaticprops"
		mov	dword ptr [esp], offset	_ZL18r_colorstaticprops	; r_colorstaticprops
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18r_colorstaticprops ; r_colorstaticprops
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aR_staticpropin ; "r_staticpropinfo"
		mov	dword ptr [esp], offset	r_staticpropinfo
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_staticpropinfo
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aR_drawmodeldec ; "r_drawmodeldecals"
		mov	dword ptr [esp], offset	r_drawmodeldecals
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset r_drawmodeldecals
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL15s_StaticPropMgr ; s_StaticPropMgr
		call	_ZN14CStaticPropMgrC2Ev	; CStaticPropMgr::CStaticPropMgr(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15s_StaticPropMgr ; s_StaticPropMgr
		mov	dword ptr [esp], offset	_ZN14CStaticPropMgrD2Ev	; CStaticPropMgr::~CStaticPropMgr()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aStaticpropmgrc ; "StaticPropMgrClient004"
		mov	dword ptr [esp+4], offset _ZL52__CreateCStaticPropMgrIStaticPropMgrClient_interfacev ; __CreateCStaticPropMgrIStaticPropMgrClient_interface(void)
		mov	dword ptr [esp], offset	_ZL48__g_CreateCStaticPropMgrIStaticPropMgrClient_reg ;	__g_CreateCStaticPropMgrIStaticPropMgrClient_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+8], offset aStaticpropmgrs ; "StaticPropMgrServer002"
		mov	dword ptr [esp+4], offset _ZL52__CreateCStaticPropMgrIStaticPropMgrServer_interfacev ; __CreateCStaticPropMgrIStaticPropMgrServer_interface(void)
		mov	dword ptr [esp], offset	_ZL48__g_CreateCStaticPropMgrIStaticPropMgrServer_reg ;	__g_CreateCStaticPropMgrIStaticPropMgrServer_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aPipeline_stati ; "pipeline_static_props"
		mov	dword ptr [esp], offset	pipeline_static_props
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset pipeline_static_props
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aShowsNameForPr ; "Shows name for prop looking at"
		mov	dword ptr [esp+8], offset _Z19Cmd_PropCrosshair_fv ; Cmd_PropCrosshair_f(void)
		mov	dword ptr [esp+4], offset aProp_crosshair ; "prop_crosshair"
		mov	dword ptr [esp], offset	_ZL14prop_crosshair ; prop_crosshair
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14prop_crosshair ;	prop_crosshair
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_r_staticpropinfo	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_sv_maxupdaterate	proc near ; DATA XREF: .ctors:00272694o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C2608, edx
		mov	dword ptr ds:qword_2C2608+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_81, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_81+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_81+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_81+0Ch, edx
		mov	dword ptr ds:qword_2C2610, eax
		mov	dword ptr ds:qword_2C2610+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_81, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_81+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_81+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_81+0Ch, eax
		mov	dword ptr [esp+10h], offset aAfterThisManyS ; "After this many seconds without a messa"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset byte_1EC1F1
		mov	dword ptr [esp+4], offset aSv_timeout ;	"sv_timeout"
		mov	dword ptr [esp], offset	_ZL10sv_timeout	; sv_timeout
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_timeout ; sv_timeout
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaxBandwidthRa ; "Max bandwidth rate allowed on server, 0"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_maxrate ;	"sv_maxrate"
		mov	dword ptr [esp], offset	_ZL10sv_maxrate	; sv_maxrate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_maxrate ; sv_maxrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMinBandwidthRa ; "Min bandwidth rate allowed on server, 0"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], offset a3500	; "3500"
		mov	dword ptr [esp+4], offset aSv_minrate ;	"sv_minrate"
		mov	dword ptr [esp], offset	_ZL10sv_minrate	; sv_minrate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_minrate ; sv_minrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumUpdates ; "Maximum updates per second that the ser"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], offset byte_1EC1F5
		mov	dword ptr [esp+4], offset aSv_maxupdatera ; "sv_maxupdaterate"
		mov	dword ptr [esp], offset	sv_maxupdaterate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_maxupdaterate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMinimumUpdates ; "Minimum updates per second that the ser"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1010+2)
		mov	dword ptr [esp+4], offset aSv_minupdatera ; "sv_minupdaterate"
		mov	dword ptr [esp], offset	sv_minupdaterate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_minupdaterate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSetTo1TheSer ; "If set to 1, the	server calculates data"...
		mov	dword ptr [esp+0Ch], 2
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_stressbots ; "sv_stressbots"
		mov	dword ptr [esp], offset	sv_stressbots
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_stressbots
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAllowClientsTo ; "Allow clients to	download files"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_allowdownlo ; "sv_allowdownload"
		mov	dword ptr [esp], offset	_ZL16sv_allowdownload ;	sv_allowdownload
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16sv_allowdownload	; sv_allowdownload
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aAllowClients_0 ; "Allow clients to	upload customizations "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_allowupload ; "sv_allowupload"
		mov	dword ptr [esp], offset	_ZL14sv_allowupload ; sv_allowupload
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14sv_allowupload ;	sv_allowupload
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aForceFullSendt ; "Force full sendtable sending path."
		mov	dword ptr [esp+0Ch], 2
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_sendtables ; "sv_sendtables"
		mov	dword ptr [esp], offset	sv_sendtables
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_sendtables
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_sv_maxupdaterate	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z14GetChangeTrackPKc proc near ; DATA XREF: .ctors:00272698o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C2668, edx
		mov	dword ptr ds:qword_2C2668+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_82, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_82+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_82+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_82+0Ch, edx
		mov	dword ptr ds:qword_2C2670, eax
		mov	dword ptr ds:qword_2C2670+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_82, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_82+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_82+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_82+0Ch, eax
		mov	dword ptr [esp+10h], offset aEnableProfilin ; "Enable profiling	of CalcDelta calls"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_deltatime	; "sv_deltatime"
		mov	dword ptr [esp], offset	_ZL12sv_deltatime ; sv_deltatime
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12sv_deltatime ; sv_deltatime
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aPrintAccumulat ; "Print accumulated CalcDelta profiling d"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_deltaprint ; "sv_deltaprint"
		mov	dword ptr [esp], offset	_ZL13sv_deltaprint ; sv_deltaprint
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13sv_deltaprint ; sv_deltaprint
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL8g_Tracks ; g_Tracks
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListIP12CChangeTrackiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEED2Ev ; CUtlLinkedList<CChangeTrack *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CChangeTrack *,int>,int>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL8g_Tracks, 0 ; g_Tracks
		mov	dword ptr ds:_ZL8g_Tracks+4, 0
		mov	dword ptr ds:_ZL8g_Tracks+8, 0
		mov	dword ptr ds:_ZL8g_Tracks+20h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL8g_Tracks+0Ch, 0FFFFFFFFh
		mov	dword ptr ds:_ZL8g_Tracks+10h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL8g_Tracks+14h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL8g_Tracks+18h, 0
		mov	dword ptr ds:_ZL8g_Tracks+1Ch, 0
		mov	dword ptr ds:_ZL8g_Tracks+24h, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z14GetChangeTrackPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_IPFilters proc	near	; DATA XREF: .ctors:0027269Co
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C27F8, edx
		mov	dword ptr ds:qword_2C27F8+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_83, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_83+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_83+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_83+0Ch, edx
		mov	dword ptr ds:qword_2C2800, eax
		mov	dword ptr ds:qword_2C2800+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_83, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_83+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_83+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_83+0Ch, eax
		mov	dword ptr [esp+10h], offset aSetPacketFilte ; "Set packet filtering by IP mode"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_filterban	; "sv_filterban"
		mov	dword ptr [esp], offset	_ZL12sv_filterban ; sv_filterban
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12sv_filterban ; sv_filterban
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_IPFilters
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI10ipfilter_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<ipfilter_t,CUtlMemory<ipfilter_t,int>>::~CUtlVector()
		mov	dword ptr ds:g_IPFilters, 0
		mov	dword ptr ds:g_IPFilters+4, 0
		mov	dword ptr ds:g_IPFilters+8, 0
		mov	dword ptr ds:g_IPFilters+0Ch, 0
		mov	dword ptr ds:g_IPFilters+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_UserFilters
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI12userfilter_t10CUtlMemoryIS0_iEED2Ev ;	CUtlVector<userfilter_t,CUtlMemory<userfilter_t,int>>::~CUtlVector()
		mov	dword ptr ds:g_UserFilters, 0
		mov	dword ptr ds:g_UserFilters+4, 0
		mov	dword ptr ds:g_UserFilters+8, 0
		mov	dword ptr ds:g_UserFilters+0Ch,	0
		mov	dword ptr ds:g_UserFilters+10h,	0
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aAddAnIpAddress ; "Add an IP address to the	ban list."
		mov	dword ptr [esp+8], offset _ZL12Filter_Add_fRK8CCommand ; Filter_Add_f(CCommand	const&)
		mov	dword ptr [esp+4], offset aAddip ; "addip"
		mov	dword ptr [esp], offset	_ZL5addip ; addip
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL5addip ; addip
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aAddAnIpAddress ; "Add an IP address to the	ban list."
		mov	dword ptr [esp+8], offset _ZL12Filter_Add_fRK8CCommand ; Filter_Add_f(CCommand	const&)
		mov	dword ptr [esp+4], offset aBanip ; "banip"
		mov	dword ptr [esp], offset	_ZL5banip ; banip
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL5banip ; banip
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aRemoveAnIpAddr ; "Remove an IP address from the ban list."...
		mov	dword ptr [esp+8], offset _ZL8removeipRK8CCommand ; removeip(CCommand  const&)
		mov	dword ptr [esp+4], offset aRemoveip ; "removeip"
		mov	dword ptr [esp], offset	_ZL16removeip_command ;	removeip_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16removeip_command	; removeip_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aListIpAddresse ; "List IP addresses on the	ban list."
		mov	dword ptr [esp+8], offset _ZL6listipRK8CCommand	; listip(CCommand  const&)
		mov	dword ptr [esp+4], offset aListip ; "listip"
		mov	dword ptr [esp], offset	_ZL14listip_command ; listip_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14listip_command ;	listip_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSaveTheBanList ; "Save the	ban list to banned_ip.cfg."
		mov	dword ptr [esp+8], offset _ZL7writeipRK8CCommand ; writeip(CCommand  const&)
		mov	dword ptr [esp+4], offset aWriteip ; "writeip"
		mov	dword ptr [esp], offset	_ZL15writeip_command ; writeip_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15writeip_command ; writeip_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aWritesAListOfP ; "Writes a	list of	permanently-banned use"...
		mov	dword ptr [esp+8], offset _ZL7writeidRK8CCommand ; writeid(CCommand  const&)
		mov	dword ptr [esp+4], offset aWriteid ; "writeid"
		mov	dword ptr [esp], offset	_ZL15writeid_command ; writeid_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15writeid_command ; writeid_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aRemoveAUserIdF ; "Remove a	user ID	from the ban list."
		mov	dword ptr [esp+8], offset _ZL8removeidRK8CCommand ; removeid(CCommand  const&)
		mov	dword ptr [esp+4], offset aRemoveid ; "removeid"
		mov	dword ptr [esp], offset	_ZL16removeid_command ;	removeid_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16removeid_command	; removeid_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aListsBannedUse ; "Lists banned users."
		mov	dword ptr [esp+8], offset _ZL6listidRK8CCommand	; listid(CCommand  const&)
		mov	dword ptr [esp+4], offset aListid ; "listid"
		mov	dword ptr [esp], offset	_ZL14listid_command ; listid_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14listid_command ;	listid_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aAddAUserIdToTh ; "Add a user ID to	the ban	list."
		mov	dword ptr [esp+8], offset _ZL5banidRK8CCommand ; banid(CCommand	 const&)
		mov	dword ptr [esp+4], offset aBanid ; "banid"
		mov	dword ptr [esp], offset	_ZL13banid_command ; banid_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13banid_command ; banid_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_IPFilters endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN14CFrameSnapshot11s_AllocatorE proc near ; DATA XREF:	.ctors:002726A0o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C6BA8, edx
		mov	dword ptr ds:qword_2C6BA8+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_84, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_84+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_84+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_84+0Ch, edx
		mov	dword ptr ds:qword_2C6BB0, eax
		mov	dword ptr ds:qword_2C6BB0+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_84, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_84+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_84+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_84+0Ch, eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], offset aCframesnapshot ; "CFrameSnapshot pool"
		mov	dword ptr [esp+0Ch], 40h
		mov	dword ptr [esp+8], 40h
		mov	dword ptr [esp+4], 40h
		mov	dword ptr [esp], offset	_ZN14CFrameSnapshot11s_AllocatorE ; CFrameSnapshot::s_Allocator
		call	_ZN14CUtlMemoryPoolC2EiiiPKci ;	CUtlMemoryPool::CUtlMemoryPool(int,int,int,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZN14CFrameSnapshot11s_AllocatorE ; CFrameSnapshot::s_Allocator
		mov	dword ptr [esp], offset	_ZN14CUtlMemoryPoolD2Ev	; CUtlMemoryPool::~CUtlMemoryPool()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDoExtendedChec ; "Do extended check for encoding of times"...
		mov	dword ptr [esp+0Ch], 4002h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_creationtic ; "sv_creationtickcheck"
		mov	dword ptr [esp], offset	_ZL20sv_creationtickcheck ; sv_creationtickcheck
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20sv_creationtickcheck ; sv_creationtickcheck
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL22g_FrameSnapshotManager ; g_FrameSnapshotManager
		call	_ZN21CFrameSnapshotManagerC2Ev ; CFrameSnapshotManager::CFrameSnapshotManager(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL22g_FrameSnapshotManager ;	g_FrameSnapshotManager
		mov	dword ptr [esp], offset	_ZN21CFrameSnapshotManagerD2Ev ; CFrameSnapshotManager::~CFrameSnapshotManager()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN14CFrameSnapshot11s_AllocatorE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN12CIPRateLimitC2EP6ConVarS1_S1_ proc near ; DATA XREF: .ctors:002726A4o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C6C28, eax
		mov	dword ptr ds:qword_2C6C28+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2C6C30, eax
		mov	dword ptr ds:qword_2C6C30+4, eax
		mov	dword ptr [esp+10h], offset aIfTrueWhenLogW ; "If true when log	when a query is	blocke"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_logblocks	; "sv_logblocks"
		mov	dword ptr [esp], offset	_ZL12sv_logblocks ; sv_logblocks
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12sv_logblocks ; sv_logblocks
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN12CIPRateLimitC2EP6ConVarS1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_Log proc near		; DATA XREF: .ctors:002726A8o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2C7768, edx
		mov	dword ptr ds:qword_2C7768+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_85, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_85+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_85+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_85+0Ch, edx
		mov	dword ptr ds:qword_2C7770, eax
		mov	dword ptr ds:qword_2C7770+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_85, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_85+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_85+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_85+0Ch, eax
		mov	dword ptr [esp+10h], offset aFolderInTheGam ; "Folder in the game directory where serv"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], offset aLogs	; "logs"
		mov	dword ptr [esp+4], offset aSv_logsdir ;	"sv_logsdir"
		mov	dword ptr [esp], offset	_ZL10sv_logsdir	; sv_logsdir
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_logsdir ; sv_logsdir
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLogServerInfor ; "Log server information in the log file."...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_logfile ;	"sv_logfile"
		mov	dword ptr [esp], offset	_ZL10sv_logfile	; sv_logfile
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_logfile ; sv_logfile
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aFlushTheLogFil ; "Flush the log file to disk on each writ"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_logflush ; "sv_logflush"
		mov	dword ptr [esp], offset	_ZL11sv_logflush ; sv_logflush
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11sv_logflush ; sv_logflush
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aEchoLogInforma ; "Echo log	information to the console."
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset dword_2085F4
		mov	dword ptr [esp], offset	_ZL10sv_logecho	; sv_logecho
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_logecho ; sv_logecho
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLogServerInf_0 ; "Log server information to only one file"...
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_log_onefile ; "sv_log_onefile"
		mov	dword ptr [esp], offset	_ZL14sv_log_onefile ; sv_log_onefile
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14sv_log_onefile ;	sv_log_onefile
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLogServerBansI ; "Log server bans in the server logs."
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_logbans ;	"sv_logbans"
		mov	dword ptr [esp], offset	_ZL10sv_logbans	; sv_logbans
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_logbans ; sv_logbans
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSetThenInclu ; "If set then include this	secret when do"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_logsecret	; "sv_logsecret"
		mov	dword ptr [esp], offset	_ZL12sv_logsecret ; sv_logsecret
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12sv_logsecret ; sv_logsecret
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	g_Log
		call	_ZN4CLogC2Ev	; CLog::CLog(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_Log
		mov	dword ptr [esp], offset	_ZN4CLogD2Ev ; CLog::~CLog()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aEnablesLogging ; "Enables logging to file,	console, and u"...
		mov	dword ptr [esp+8], offset _ZL3logRK8CCommand ; log(CCommand  const&)
		mov	dword ptr [esp+4], (offset aConsole_log+8)
		mov	dword ptr [esp], offset	_ZL11log_command ; log_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11log_command ; log_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSetAddressAndP ; "Set address and port for	remote host <i"...
		mov	dword ptr [esp+8], offset _ZL14logaddress_addRK8CCommand ; logaddress_add(CCommand  const&)
		mov	dword ptr [esp+4], offset aLogaddress_add ; "logaddress_add"
		mov	dword ptr [esp], offset	_ZL22logaddress_add_command ; logaddress_add_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL22logaddress_add_command ;	logaddress_add_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aRemoveAllUdpAd ; "Remove all udp addresses	being logged t"...
		mov	dword ptr [esp+8], offset _ZL17logaddress_delallRK8CCommand ; logaddress_delall(CCommand  const&)
		mov	dword ptr [esp+4], offset aLogaddress_del ; "logaddress_delall"
		mov	dword ptr [esp], offset	_ZL25logaddress_delall_command ; logaddress_delall_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25logaddress_delall_command ; logaddress_delall_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aRemoveAddressA ; "Remove address and port for remote host"...
		mov	dword ptr [esp+8], offset _ZL14logaddress_delRK8CCommand ; logaddress_del(CCommand  const&)
		mov	dword ptr [esp+4], offset aLogaddress_d_0 ; "logaddress_del"
		mov	dword ptr [esp], offset	_ZL22logaddress_del_command ; logaddress_del_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL22logaddress_del_command ;	logaddress_del_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aListAllAddress ; "List all	addresses currently being used"...
		mov	dword ptr [esp+8], offset _ZL15logaddress_listRK8CCommand ; logaddress_list(CCommand  const&)
		mov	dword ptr [esp+4], offset aLogaddress_lis ; "logaddress_list"
		mov	dword ptr [esp], offset	_ZL23logaddress_list_command ; logaddress_list_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23logaddress_list_command ; logaddress_list_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_Log endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_sv proc near		; DATA XREF: .ctors:002726ACo
		push	ebp
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		sub	esp, 34h
		mov	dword ptr ds:qword_2DE37C, ebx
		mov	dword ptr ds:qword_2DE37C+4, ebx
		mov	dword ptr ds:qword_2DE384, eax
		mov	dword ptr ds:qword_2DE384+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_86, ebx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_86+4, ebx
		mov	dword ptr ds:_ZL11vec4_origin_86+8, ebx
		mov	dword ptr ds:_ZL11vec4_origin_86+0Ch, ebx
		mov	dword ptr ds:_ZL12vec4_invalid_86, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_86+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_86+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_86+0Ch, eax
		mov	dword ptr [esp], offset	sv
		call	_ZN11CGameServerC2Ev ; CGameServer::CGameServer(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv
		mov	dword ptr [esp], offset	_ZN11CGameServerD2Ev ; CGameServer::~CGameServer()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowUserData_ ; "Show user	data."
		mov	dword ptr [esp+8], offset _ZL9SV_Pure_fRK8CCommand ; SV_Pure_f(CCommand	 const&)
		mov	dword ptr [esp+4], offset aSv_pure ; "sv_pure"
		mov	dword ptr [esp], offset	_ZL7sv_pure ; sv_pure
		mov	ds:g_ServerGlobalVariables+30h,	0
		mov	dword ptr ds:g_ServerGlobalVariables+34h, 64h
		mov	dword ptr ds:g_ServerGlobalVariables+38h, 20h
		mov	dword ptr ds:g_ServerGlobalVariables+54h, 0
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL7sv_pure ;	sv_pure
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSetTo1TheS_0 ; "If set to 1, the	server will kick clien"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_pure_kick_c ; "sv_pure_kick_clients"
		mov	dword ptr [esp], offset	sv_pure_kick_clients
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_pure_kick_clients
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSetTo1TheS_1 ; "If set to 1, the	server will print a me"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_pure_trace ; "sv_pure_trace"
		mov	dword ptr [esp], offset	sv_pure_trace
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_pure_trace
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL18SV_CheatsChanged_fP7IConVarPKcf ; SV_CheatsChanged_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aAllowCheatsOnS ; "Allow cheats on server"
		mov	dword ptr [esp+0Ch], 2100h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_cheats ; "sv_cheats"
		mov	dword ptr [esp], offset	sv_cheats
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_cheats
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aServerIsALanSe ; "Server is a lan server (	no heartbeat, "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_lan ; "sv_lan"
		mov	dword ptr [esp], offset	sv_lan
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_lan
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIsTheServerPau ; "Is the server pausable."
		mov	dword ptr [esp+0Ch], 100h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_pausable ; "sv_pausable"
		mov	dword ptr [esp], offset	_ZL11sv_pausable ; sv_pausable
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11sv_pausable ; sv_pausable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aContactEmailFo ; "Contact email for server	sysop"
		mov	dword ptr [esp+0Ch], 100h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aSv_contact ;	"sv_contact"
		mov	dword ptr [esp], offset	_ZL10sv_contact	; sv_contact
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL10sv_contact ; sv_contact
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSetTo1DoesAn ; "If set to 1, does an optimization to pr"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_cacheencode ; "sv_cacheencodedents"
		mov	dword ptr [esp], offset	_ZL19sv_cacheencodedents ; sv_cacheencodedents
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19sv_cacheencodedents ; sv_cacheencodedents
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aSpecifiesWhich ; "Specifies which voice codec DLL to use "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset aVaudio_speex	; "vaudio_speex"
		mov	dword ptr [esp+4], offset aSv_voicecodec ; "sv_voicecodec"
		mov	dword ptr [esp], offset	sv_voicecodec
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_voicecodec
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 180h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_voiceenable ; "sv_voiceenable"
		mov	dword ptr [esp], offset	_ZL14sv_voiceenable ; sv_voiceenable
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14sv_voiceenable ;	sv_voiceenable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLocationFromWh ; "Location	from which clients can downloa"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aSv_downloadurl ; "sv_downloadurl"
		mov	dword ptr [esp], offset	sv_downloadurl
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_downloadurl
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aWhetherTheServ ; "Whether the server enforces file	consis"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_consistency ; "sv_consistency"
		mov	dword ptr [esp], offset	sv_consistency
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_consistency
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+18h], ebx
		mov	dword ptr [esp+20h], 41700000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aMaximumReplayT ; "Maximum replay time in seconds"
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_maxreplay	; "sv_maxreplay"
		mov	dword ptr [esp], offset	sv_maxreplay
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_maxreplay
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aThisSetsTheMin ; "This sets the minimum value for cl_cmdr"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1010+2)
		mov	dword ptr [esp+4], offset aSv_mincmdrate ; "sv_mincmdrate"
		mov	dword ptr [esp], offset	sv_mincmdrate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_mincmdrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSv_mincmdrat ; "(If sv_mincmdrate is > 0), this sets th"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], offset byte_1EC1F5
		mov	dword ptr [esp+4], offset aSv_maxcmdrate ; "sv_maxcmdrate"
		mov	dword ptr [esp], offset	sv_maxcmdrate
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_maxcmdrate
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aCl_cmdrateIsMo ; "cl_cmdrate is moved to within sv_client"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1020+2)
		mov	dword ptr [esp+4], offset aSv_client_cmdr ; "sv_client_cmdrate_difference"
		mov	dword ptr [esp], offset	sv_client_cmdrate_difference
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_client_cmdrate_difference
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aThisCanBeUsedT ; "This can	be used	to limit the value of "...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_client_min_ ; "sv_client_min_interp_ratio"
		mov	dword ptr [esp], offset	sv_client_min_interp_ratio
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_client_min_interp_ratio
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aThisCanBeUse_0 ; "This can	be used	to limit the value of "...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1_5+2)
		mov	dword ptr [esp+4], offset aSv_client_max_ ; "sv_client_max_interp_ratio"
		mov	dword ptr [esp], offset	sv_client_max_interp_ratio
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_client_max_interp_ratio
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aThisCanBeUse_1 ; "This can	be used	to force the value of "...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], offset a1 ; "-1"
		mov	dword ptr [esp+4], offset aSv_client_pred ; "sv_client_predict"
		mov	dword ptr [esp], offset	sv_client_predict
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_client_predict
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+18h], ebx
		mov	dword ptr [esp+20h], 40000000h
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aThisCanBeUse_2 ; "This can	be used	to limit the effective"...
		mov	dword ptr [esp+0Ch], 2000h
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_restrict_as ; "sv_restrict_aspect_ratio_fov"
		mov	dword ptr [esp], offset	sv_restrict_aspect_ratio_fov
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_restrict_aspect_ratio_fov
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _Z16OnTVEnablehangedP7IConVarPKcf ;	OnTVEnablehanged(IConVar *,char	 const*,float)
		mov	dword ptr [esp+10h], offset aActivatesSourc ; "Activates SourceTV on server."
		mov	dword ptr [esp+0Ch], 100h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTv_enable ; "tv_enable"
		mov	dword ptr [esp], offset	tv_enable
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset tv_enable
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowUserData_ ; "Show user	data."
		mov	dword ptr [esp+8], offset _ZL4userRK8CCommand ;	user(CCommand  const&)
		mov	dword ptr [esp+4], offset aUser	; "user"
		mov	dword ptr [esp], offset	_ZL12user_command ; user_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12user_command ; user_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowUserInfoFo ; "Show user info for players on server."
		mov	dword ptr [esp+8], offset _ZL5usersRK8CCommand ; users(CCommand	 const&)
		mov	dword ptr [esp+4], offset aUsers ; "users"
		mov	dword ptr [esp], offset	_ZL13users_command ; users_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13users_command ; users_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aChangeTheMaxim ; "Change the maximum number of players al"...
		mov	dword ptr [esp+8], offset _ZL10maxplayersRK8CCommand ; maxplayers(CCommand  const&)
		mov	dword ptr [esp+4], offset aMaxplayers ;	"maxplayers"
		mov	dword ptr [esp], offset	_ZL18maxplayers_command	; maxplayers_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18maxplayers_command ; maxplayers_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp], 2
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 2
		mov	dword ptr ds:_ZL19g_ModDirPermissions, eax ; g_ModDirPermissions
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 3
		mov	dword ptr ds:_ZL19g_ModDirPermissions+4, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 3
		mov	dword ptr ds:_ZL19g_ModDirPermissions+8, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 4
		mov	dword ptr ds:_ZL19g_ModDirPermissions+0Ch, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 4
		mov	dword ptr ds:_ZL19g_ModDirPermissions+10h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 5
		mov	dword ptr ds:_ZL19g_ModDirPermissions+14h, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 5
		mov	dword ptr ds:_ZL19g_ModDirPermissions+18h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 6
		mov	dword ptr ds:_ZL19g_ModDirPermissions+1Ch, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 6
		mov	dword ptr ds:_ZL19g_ModDirPermissions+20h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 8
		mov	dword ptr ds:_ZL19g_ModDirPermissions+24h, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 8
		mov	dword ptr ds:_ZL19g_ModDirPermissions+28h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 1
		mov	dword ptr ds:_ZL19g_ModDirPermissions+2Ch, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 1
		mov	dword ptr ds:_ZL19g_ModDirPermissions+30h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 7
		mov	dword ptr ds:_ZL19g_ModDirPermissions+34h, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 7
		mov	dword ptr ds:_ZL19g_ModDirPermissions+38h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 9
		mov	dword ptr ds:_ZL19g_ModDirPermissions+3Ch, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 9
		mov	dword ptr ds:_ZL19g_ModDirPermissions+40h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp], 0Ah
		mov	dword ptr ds:_ZL19g_ModDirPermissions+44h, eax
		call	_Z16GetAppSteamAppId10ESourceApp ; GetAppSteamAppId(ESourceApp)
		mov	dword ptr [esp], 0Ah
		mov	dword ptr ds:_ZL19g_ModDirPermissions+48h, eax
		call	_Z13GetAppModName10ESourceApp ;	GetAppModName(ESourceApp)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_AreasNetworked
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL19g_ModDirPermissions+4Ch, eax
		mov	dword ptr ds:g_AreasNetworked, 0
		mov	dword ptr ds:g_AreasNetworked+4, 0
		mov	dword ptr ds:g_AreasNetworked+8, 0
		mov	dword ptr ds:g_AreasNetworked+0Ch, 0
		mov	dword ptr ds:g_AreasNetworked+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIfSetWheneverT ; "If set, whenever	the server is empty, i"...
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_memlimit ; "sv_memlimit"
		mov	dword ptr [esp], offset	_ZL11sv_memlimit ; sv_memlimit
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11sv_memlimit ; sv_memlimit
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aSetsTheServerT ; "Sets the	server to shutdown next	time i"...
		mov	dword ptr [esp+8], offset _ZL11sv_ShutDownv ; sv_ShutDown(void)
		mov	dword ptr [esp+4], offset aSv_shutdown ; "sv_shutdown"
		mov	dword ptr [esp], offset	_ZL11sv_shutdown ; sv_shutdown
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11sv_shutdown ; sv_shutdown
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_parallel_se ; "sv_parallel_sendsnapshot"
		mov	dword ptr [esp], offset	_ZL24sv_parallel_sendsnapshot ;	sv_parallel_sendsnapshot
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24sv_parallel_sendsnapshot	; sv_parallel_sendsnapshot
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aVoice_debugfee ; "voice_debugfeedbackfrom"
		mov	dword ptr [esp], offset	voice_debugfeedbackfrom
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset voice_debugfeedbackfrom
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_GLOBAL__sub_I_sv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_entitylist proc near	; DATA XREF: .ctors:002726B0o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2DE6D8, edx
		mov	dword ptr ds:qword_2DE6D8+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_87, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_87+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_87+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_87+0Ch, edx
		mov	dword ptr ds:qword_2DE6E0, eax
		mov	dword ptr ds:qword_2DE6E0+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_87, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_87+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_87+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_87+0Ch, eax
		mov	dword ptr [esp+10h], offset aMakeSureEntiti ; "Make sure entities correctly report whe"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_debugmanual ; "sv_debugmanualmode"
		mov	dword ptr [esp], offset	sv_debugmanualmode
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_debugmanualmode
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_parallel_pa ; "sv_parallel_packentities"
		mov	dword ptr [esp], offset	_ZL24sv_parallel_packentities ;	sv_parallel_packentities
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24sv_parallel_packentities	; sv_parallel_packentities
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_entitylist endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_s_ServerPlugin proc near	; DATA XREF: .ctors:002726B4o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2DE73C, edx
		mov	dword ptr ds:qword_2DE73C+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_88, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_88+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_88+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_88+0Ch, edx
		mov	dword ptr ds:qword_2DE744, eax
		mov	dword ptr ds:qword_2DE744+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_88, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_88+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_88+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_88+0Ch, eax
		mov	dword ptr [esp], offset	s_ServerPlugin
		call	_ZN13CServerPluginC2Ev ; CServerPlugin::CServerPlugin(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset s_ServerPlugin
		mov	dword ptr [esp], offset	_ZN13CServerPluginD2Ev ; CServerPlugin::~CServerPlugin()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aIserverpluginh ; "ISERVERPLUGINHELPERS001"
		mov	dword ptr [esp+4], offset _ZL51__CreateCServerPluginIServerPluginHelpers_interfacev ; __CreateCServerPluginIServerPluginHelpers_interface(void)
		mov	dword ptr [esp], offset	_ZL47__g_CreateCServerPluginIServerPluginHelpers_reg ; __g_CreateCServerPluginIServerPluginHelpers_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPrintsDetailsA ; "Prints details about loaded plugins"
		mov	dword ptr [esp+8], offset _ZL12plugin_printRK8CCommand ; plugin_print(CCommand	const&)
		mov	dword ptr [esp+4], offset aPlugin_print	; "plugin_print"
		mov	dword ptr [esp], offset	_ZL20plugin_print_command ; plugin_print_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20plugin_print_command ; plugin_print_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPlugin_pauseIn ; "plugin_pause <index> : pauses a loaded "...
		mov	dword ptr [esp+8], offset _ZL12plugin_pauseRK8CCommand ; plugin_pause(CCommand	const&)
		mov	dword ptr [esp+4], offset word_20B3B2
		mov	dword ptr [esp], offset	_ZL20plugin_pause_command ; plugin_pause_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20plugin_pause_command ; plugin_pause_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPlugin_unpause ; "plugin_unpause <index> :	unpauses a dis"...
		mov	dword ptr [esp+8], offset _ZL14plugin_unpauseRK8CCommand ; plugin_unpause(CCommand  const&)
		mov	dword ptr [esp+4], offset byte_20B3BF
		mov	dword ptr [esp], offset	_ZL22plugin_unpause_command ; plugin_unpause_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL22plugin_unpause_command ;	plugin_unpause_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPausesAllLoade ; "pauses all loaded plugins"
		mov	dword ptr [esp+8], offset _ZL16plugin_pause_allRK8CCommand ; plugin_pause_all(CCommand	const&)
		mov	dword ptr [esp+4], offset aPlugin_pause_a ; "plugin_pause_all"
		mov	dword ptr [esp], offset	_ZL24plugin_pause_all_command ;	plugin_pause_all_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24plugin_pause_all_command	; plugin_pause_all_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnpausesAllDis ; "unpauses	all disabled plugins"
		mov	dword ptr [esp+8], offset _ZL18plugin_unpause_allRK8CCommand ; plugin_unpause_all(CCommand  const&)
		mov	dword ptr [esp+4], offset aPlugin_unpau_0 ; "plugin_unpause_all"
		mov	dword ptr [esp], offset	_ZL26plugin_unpause_all_command	; plugin_unpause_all_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26plugin_unpause_all_command ; plugin_unpause_all_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPlugin_loadFil ; "plugin_load <filename> :	loads a	plugin"...
		mov	dword ptr [esp+8], offset _ZL11plugin_loadRK8CCommand ;	plugin_load(CCommand  const&)
		mov	dword ptr [esp+4], offset aPlugin_load ; "plugin_load"
		mov	dword ptr [esp], offset	_ZL19plugin_load_command ; plugin_load_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19plugin_load_command ; plugin_load_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPlugin_unloadI ; "plugin_unload <index> : unloads a plugi"...
		mov	dword ptr [esp+8], offset _ZL13plugin_unloadRK8CCommand	; plugin_unload(CCommand  const&)
		mov	dword ptr [esp+4], offset aPlugin_unload ; "plugin_unload"
		mov	dword ptr [esp], offset	_ZL21plugin_unload_command ; plugin_unload_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21plugin_unload_command ; plugin_unload_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_s_ServerPlugin endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z13SV_ModelIndexPKc proc near ;	DATA XREF: .ctors:002726B8o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2DE988, edx
		mov	dword ptr ds:qword_2DE988+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_89, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_89+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_89+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_89+0Ch, edx
		mov	dword ptr ds:qword_2DE990, eax
		mov	dword ptr ds:qword_2DE990+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_89, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_89+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_89+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_89+0Ch, eax
		mov	dword ptr [esp+10h], offset aForceServerSid ; "Force server side preloading."
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_forcepreloa ; "sv_forcepreload"
		mov	dword ptr [esp], offset	_ZL15sv_forcepreload ; sv_forcepreload
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15sv_forcepreload ; sv_forcepreload
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aShowPrecacheIn ; "Show precache info."
		mov	dword ptr [esp+8], offset _ZL15sv_precacheinfoRK8CCommand ; sv_precacheinfo(CCommand  const&)
		mov	dword ptr [esp+4], offset aSv_precacheinf ; "sv_precacheinfo"
		mov	dword ptr [esp], offset	_ZL23sv_precacheinfo_command ; sv_precacheinfo_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23sv_precacheinfo_command ; sv_precacheinfo_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__Z13SV_ModelIndexPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z10RCONServerv proc near ; DATA	XREF: .ctors:002726BCo
		push	ebp
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		push	edi
		mov	edi, 41A00000h
		push	esi
		mov	esi, 3F800000h
		push	ebx
		xor	ebx, ebx
		sub	esp, 3Ch
		mov	dword ptr ds:qword_2DED60, ebx
		mov	dword ptr ds:qword_2DED60+4, ebx
		mov	dword ptr ds:qword_2DED68, eax
		mov	dword ptr ds:qword_2DED68+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_90, ebx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_90+4, ebx
		mov	dword ptr ds:_ZL11vec4_origin_90+8, ebx
		mov	dword ptr ds:_ZL11vec4_origin_90+0Ch, ebx
		mov	dword ptr ds:_ZL12vec4_invalid_90, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_90+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_90+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_90+0Ch, eax
		mov	dword ptr [esp], offset	_ZL12g_RCONServer ; g_RCONServer
		call	_ZN11CRConServerC2Ev ; CRConServer::CRConServer(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL12g_RCONServer ; g_RCONServer
		mov	dword ptr [esp], offset	_ZN11CRConServerD2Ev ; CRConServer::~CRConServer()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL11g_RPTServer ; g_RPTServer
		call	_ZN11CRConServerC2Ev ; CRConServer::CRConServer(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL11g_RPTServer ; g_RPTServer
		mov	dword ptr [esp], offset	_ZN10CRPTServerD2Ev ; CRPTServer::~CRPTServer()
		mov	dword ptr ds:_ZL11g_RPTServer, (offset _ZTV10CRPTServer+8) ; g_RPTServer
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL21RconPasswordChanged_fP7IConVarPKcf ; RconPasswordChanged_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aRemoteConsoleP ; "remote console password."
		mov	dword ptr [esp+0Ch], 20020000h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aRcon_password ; "rcon_password"
		mov	dword ptr [esp], offset	rcon_password
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset rcon_password
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+20h], ebx
		mov	[esp+18h], ebx
		mov	dword ptr [esp+1Ch], 0
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aNumberOfMinute ; "Number of minutes to ban	users who fail"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_rcon_banpen ; "sv_rcon_banpenalty"
		mov	dword ptr [esp], offset	sv_rcon_banpenalty
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_rcon_banpenalty
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+20h], edi
		mov	[esp+18h], esi
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aMaxNumberOfTim ; "Max number of times a user can fail rco"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1010+2)
		mov	dword ptr [esp+4], offset aSv_rcon_maxfai ; "sv_rcon_maxfailures"
		mov	dword ptr [esp], offset	sv_rcon_maxfailures
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_rcon_maxfailures
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+20h], edi
		mov	[esp+18h], esi
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aNumberOfTimesA ; "Number of times a user can fail rcon au"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1_5+2)
		mov	dword ptr [esp+4], offset aSv_rcon_minfai ; "sv_rcon_minfailures"
		mov	dword ptr [esp], offset	sv_rcon_minfailures
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_rcon_minfailures
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+20h], ebx
		mov	[esp+18h], esi
		mov	dword ptr [esp+1Ch], 0
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aNumberOfSecond ; "Number of seconds to track failed rcon "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a27030+3)
		mov	dword ptr [esp+4], offset aSv_rcon_minf_0 ; "sv_rcon_minfailuretime"
		mov	dword ptr [esp], offset	sv_rcon_minfailuretime
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_rcon_minfailuretime
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+20h], ebx
		mov	[esp+18h], ebx
		mov	dword ptr [esp+1Ch], 0
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aTheMaximumNumb ; "The maximum number of bytes to allow in"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset a1024	; "1024"
		mov	dword ptr [esp+4], offset aSv_rcon_maxpac ; "sv_rcon_maxpacketsize"
		mov	dword ptr [esp], offset	sv_rcon_maxpacketsize
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_rcon_maxpacketsize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	[esp+20h], esi
		mov	[esp+18h], ebx
		mov	dword ptr [esp+1Ch], 1
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+10h], offset aBanIpsForSendi ; "Ban IPs for sending RCON	packets	exceed"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_rcon_maxp_0 ; "sv_rcon_maxpacketbans"
		mov	dword ptr [esp], offset	sv_rcon_maxpacketbans
		call	_ZN6ConVarC2EPKcS1_iS1_bfbf ; ConVar::ConVar(char  const*,char	const*,int,char	 const*,bool,float,bool,float)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_rcon_maxpacketbans
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_GLOBAL__sub_I__Z10RCONServerv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z16SV_RedirectFlushv proc near ; DATA XREF: .ctors:002726C0o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2DFDC0, edx
		mov	dword ptr ds:qword_2DFDC0+4, edx
		mov	dword ptr ds:qword_2DFDC8, eax
		mov	dword ptr ds:qword_2DFDC8+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_91, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_91+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_91+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_91+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_91, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_91+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_91+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_91+0Ch, eax
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL13sv_redirectto ; sv_redirectto
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL13sv_redirectto ; sv_redirectto
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	dword ptr [esp], offset	_ZL13sv_redirectto ; sv_redirectto
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		leave
		retn
_GLOBAL__sub_I__Z16SV_RedirectFlushv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_ServerRemoteAccess proc near ;	DATA XREF: .ctors:002726C4o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2DFF00, edx
		mov	dword ptr ds:qword_2DFF00+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_92, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_92+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_92+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_92+0Ch, edx
		mov	dword ptr ds:qword_2DFF08, eax
		mov	dword ptr ds:qword_2DFF08+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_92, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_92+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_92+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_92+0Ch, eax
		mov	dword ptr [esp], offset	g_ServerRemoteAccess
		call	_ZN19CServerRemoteAccessC2Ev ; CServerRemoteAccess::CServerRemoteAccess(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_ServerRemoteAccess
		mov	dword ptr [esp], offset	_ZN19CServerRemoteAccessD2Ev ; CServerRemoteAccess::~CServerRemoteAccess()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aGameserverdata ; "GameServerData001"
		mov	dword ptr [esp+4], offset _ZL52__CreateCServerRemoteAccessIGameServerData_interfacev ; __CreateCServerRemoteAccessIGameServerData_interface(void)
		mov	dword ptr [esp], offset	_ZL48__g_CreateCServerRemoteAccessIGameServerData_reg ;	__g_CreateCServerRemoteAccessIGameServerData_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+10h], offset aEnableDisableR ; "Enable/disable rcon logging."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_rcon_log ; "sv_rcon_log"
		mov	dword ptr [esp], offset	sv_rcon_log
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_rcon_log
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aPrintsServerPe ; "Prints server performance variables"
		mov	dword ptr [esp+8], offset _Z12Host_Stats_fv ; Host_Stats_f(void)
		mov	dword ptr [esp+4], (offset aCollectCpuUsag+12h)
		mov	dword ptr [esp], offset	_ZL5stats ; stats
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL5stats ; stats
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_ServerRemoteAccess endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_sv_steamblockingcheck proc near ; DATA XREF: .ctors:002726C8o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2E4028, edx
		mov	dword ptr ds:qword_2E4028+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_93, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_93+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_93+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_93+0Ch, edx
		mov	dword ptr ds:qword_2E4030, eax
		mov	dword ptr ds:qword_2E4030+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_93, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_93+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_93+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_93+0Ch, eax
		mov	dword ptr [esp+14h], offset _ZL26sv_setsteamblockingcheck_fP7IConVarPKcf ; sv_setsteamblockingcheck_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aCheckEachNewPl ; "Check each new player for Steam blockin"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aSv_steamblocki ; "sv_steamblockingcheck"
		mov	dword ptr [esp], offset	sv_steamblockingcheck
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_steamblockingcheck
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aUseTheGameSSoc ; "Use the game's socket to communicate to"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSv_master_shar ; "sv_master_share_game_socket"
		mov	dword ptr [esp], offset	sv_master_share_game_socket
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_master_share_game_socket
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	_ZL14s_Steam3Server ; s_Steam3Server
		call	_ZN13CSteam3ServerC2Ev ; CSteam3Server::CSteam3Server(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14s_Steam3Server ;	s_Steam3Server
		mov	dword ptr [esp], offset	_ZN13CSteam3ServerD2Ev ; CSteam3Server::~CSteam3Server()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aForceHeartbeat ; "Force heartbeat of master servers"
		mov	dword ptr [esp+8], offset _Z11Heartbeat_fv ; Heartbeat_f(void)
		mov	dword ptr [esp+4], offset aHeartbeat ; "heartbeat"
		mov	dword ptr [esp], offset	_ZL9heartbeat ;	heartbeat
		call	_ZN10ConCommandC2EPKcPFvvES1_iPFiS1_PA64_cE ; ConCommand::ConCommand(char  const*,void (*)(void),char  const*,int,int (*)(char	const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL9heartbeat	; heartbeat
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL18sv_setsteamgroup_fP7IConVarPKcf ; sv_setsteamgroup_f(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aTheIdOfTheStea ; "The ID of the steam group that this ser"...
		mov	dword ptr [esp+0Ch], 100h
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aSv_steamgroup ; "sv_steamgroup"
		mov	dword ptr [esp], offset	sv_steamgroup
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset sv_steamgroup
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_sv_steamblockingcheck endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z10UploadDataPKcS0_P9KeyValues proc near ; DATA	XREF: .ctors:002726CCo
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2E4084, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2E4084+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2E408C, eax
		mov	dword ptr ds:qword_2E408C+4, eax
		retn
_GLOBAL__sub_I__Z10UploadDataPKcS0_P9KeyValues endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pUploadGameStats proc near ; DATA XREF: .ctors:002726D0o
		push	ebp
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		sub	esp, 14h
		mov	dword ptr ds:qword_2E40B0, ebx
		mov	dword ptr ds:qword_2E40B0+4, ebx
		mov	dword ptr ds:qword_2E40B8, eax
		mov	dword ptr ds:qword_2E40B8+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_94, ebx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_94+4, ebx
		mov	dword ptr ds:_ZL11vec4_origin_94+8, ebx
		mov	dword ptr ds:_ZL11vec4_origin_94+0Ch, ebx
		mov	dword ptr ds:_ZL12vec4_invalid_94, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_94+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_94+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_94+0Ch, eax
		mov	dword ptr [esp], (offset _ZL17g_UploadGameStats+4)
		mov	dword ptr ds:_ZL17g_UploadGameStats, (offset _ZTV16CUploadGameStats+8) ; g_UploadGameStats
		call	_ZN8netadr_sC2Ev ; netadr_s::netadr_s(void)
		mov	dword ptr ds:_ZL17g_UploadGameStats+10h, ebx
		mov	dword ptr [esp+8], offset aServeruploadga ; "ServerUploadGameStats001"
		mov	dword ptr [esp+4], offset _ZL50__CreateCUploadGameStatsIUploadGameStats_interfacev ; __CreateCUploadGameStatsIUploadGameStats_interface(void)
		mov	dword ptr [esp], offset	_ZL46__g_CreateCUploadGameStatsIUploadGameStats_reg ; __g_CreateCUploadGameStatsIUploadGameStats_reg
		mov	ds:_ZL17g_UploadGameStats+14h, 0
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_GLOBAL__sub_I_g_pUploadGameStats endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_mem_min_heapsize	proc near ; DATA XREF: .ctors:002726D4o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2E4820, edx
		mov	dword ptr ds:qword_2E4820+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_95, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_95+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_95+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_95+0Ch, edx
		mov	dword ptr ds:qword_2E4828, eax
		mov	dword ptr ds:qword_2E4828+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_95, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_95+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_95+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_95+0Ch, eax
		mov	dword ptr [esp+10h], offset aMinimumAmountO ; "Minimum amount of memory	to dedicate to"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a2048+2)
		mov	dword ptr [esp+4], offset aMem_min_heapsi ; "mem_min_heapsize"
		mov	dword ptr [esp], offset	mem_min_heapsize
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mem_min_heapsize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumAmountO ; "Maximum amount of memory	to dedicate to"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset aCt_initLength2+13h)
		mov	dword ptr [esp+4], offset aMem_max_heapsi ; "mem_max_heapsize"
		mov	dword ptr [esp], offset	mem_max_heapsize
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mem_max_heapsize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aMaximumAmoun_0 ; "Maximum amount of memory	to dedicate to"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset byte_1EC1ED
		mov	dword ptr [esp+4], offset aMem_max_heap_0 ; "mem_max_heapsize_dedicated"
		mov	dword ptr [esp], offset	mem_max_heapsize_dedicated
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset mem_max_heapsize_dedicated
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], offset	g_bInSpew
		call	_ZN16CThreadLocalBaseC2Ev ; CThreadLocalBase::CThreadLocalBase(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_bInSpew
		mov	dword ptr [esp], offset	_ZN15CThreadLocalIntIiED2Ev ; CThreadLocalInt<int>::~CThreadLocalInt()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aLinesOfCrashDu ; "Lines of	crash dump console spew	to kee"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a3500+1)
		mov	dword ptr [esp+4], offset aSys_minidumpsp ; "sys_minidumpspewlines"
		mov	dword ptr [esp], offset	_ZL21sys_minidumpspewlines ; sys_minidumpspewlines
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21sys_minidumpspewlines ; sys_minidumpspewlines
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13g_SpewHistory ; g_SpewHistory
		mov	dword ptr [esp], offset	_ZN14CUtlLinkedListI10CUtlStringtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev ;	CUtlLinkedList<CUtlString,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CUtlString,ushort>,ushort>>::~CUtlLinkedList()
		mov	dword ptr ds:_ZL13g_SpewHistory, 0 ; g_SpewHistory
		mov	dword ptr ds:_ZL13g_SpewHistory+4, 0
		mov	dword ptr ds:_ZL13g_SpewHistory+8, 0
		mov	word ptr ds:_ZL13g_SpewHistory+16h, 0FFFFh
		mov	word ptr ds:_ZL13g_SpewHistory+0Ch, 0FFFFh
		mov	word ptr ds:_ZL13g_SpewHistory+0Eh, 0FFFFh
		mov	word ptr ds:_ZL13g_SpewHistory+10h, 0FFFFh
		mov	word ptr ds:_ZL13g_SpewHistory+12h, 0
		mov	word ptr ds:_ZL13g_SpewHistory+14h, 0
		mov	dword ptr ds:_ZL13g_SpewHistory+18h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDumpMemorySt_0 ; "Dump memory stats"
		mov	dword ptr [esp+8], offset _ZL11star_memoryRK8CCommand ;	star_memory(CCommand  const&)
		mov	dword ptr [esp+4], offset aStar_memory ; "star_memory"
		mov	dword ptr [esp], offset	_ZL19star_memory_command ; star_memory_command
		mov	dword ptr ds:_ZL11g_SpewMutex, 0 ; g_SpewMutex
		mov	dword ptr ds:_ZL11g_SpewMutex+4, 0
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19star_memory_command ; star_memory_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_mem_min_heapsize	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_dedicated proc near	; DATA XREF: .ctors:002726D8o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2E4B40, edx
		mov	dword ptr ds:qword_2E4B40+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_96, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_96+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_96+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_96+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_TextModeLine
		mov	dword ptr [esp], offset	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	dword ptr ds:qword_2E4B48, eax
		mov	dword ptr ds:qword_2E4B48+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_96, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_96+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_96+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_96+0Ch, eax
		mov	dword ptr ds:g_TextModeLine, 0
		mov	dword ptr ds:g_TextModeLine+4, 0
		mov	dword ptr ds:g_TextModeLine+8, 0
		mov	dword ptr ds:g_TextModeLine+0Ch, 0
		mov	dword ptr ds:g_TextModeLine+10h, 0
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aSys_minidumpex ; "sys_minidumpexpandedspew"
		mov	dword ptr [esp], offset	_ZL24sys_minidumpexpandedspew ;	sys_minidumpexpandedspew
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL24sys_minidumpexpandedspew	; sys_minidumpexpandedspew
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp], 17318h
		mov	dword ptr ds:_ZL9errorText, 17318h ; errorText
		call	_Znaj		; operator new[](uint)
		mov	edx, dword ptr ds:_ZL9errorText	; errorText
		mov	dword ptr [esp+4], 0 ; c
		mov	[esp], eax	; s
		mov	dword ptr ds:_ZL9errorText+4, eax
		mov	[esp+8], edx	; n
		call	memset
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL9errorText	; errorText
		mov	dword ptr [esp], offset	_ZN10CErrorTextD2Ev ; CErrorText::~CErrorText()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVengine_hlds_a ; "VENGINE_HLDS_API_VERSION002"
		mov	dword ptr [esp+4], offset _ZL56__CreateCDedicatedServerAPIIDedicatedServerAPI_interfacev ; __CreateCDedicatedServerAPIIDedicatedServerAPI_interface(void)
		mov	dword ptr [esp], offset	_ZL52__g_CreateCDedicatedServerAPIIDedicatedServerAPI_reg ; __g_CreateCDedicatedServerAPIIDedicatedServerAPI_reg
		mov	ds:_ZL33__g_CDedicatedServerAPI_singleton+4, 1
		mov	dword ptr ds:_ZL33__g_CDedicatedServerAPI_singleton, (offset _ZTV19CDedicatedServerAPI+8) ; __g_CDedicatedServerAPI_singleton
		mov	dword ptr ds:_ZL33__g_CDedicatedServerAPI_singleton+8, 0
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aEnablesGenerat ; "Enables generating minidumps on long ti"...
		mov	dword ptr [esp+8], offset _ZL13dumplongticksRK8CCommand	; dumplongticks(CCommand  const&)
		mov	dword ptr [esp+4], offset aDumplongticks ; "dumplongticks"
		mov	dword ptr [esp], offset	_ZL21dumplongticks_command ; dumplongticks_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21dumplongticks_command ; dumplongticks_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_dedicated endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_engine_no_focus_sleep proc near ; DATA XREF: .ctors:002726DCo

var_18		= dword	ptr -18h

		push	ebp
		fldz
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 38h
		fst	dword ptr ds:qword_2E4D40
		fst	dword ptr ds:qword_2E4D40+4
		fst	dword ptr ds:_ZL11vec4_origin_97 ; vec4_origin
		fst	dword ptr ds:_ZL11vec4_origin_97+4
		fst	dword ptr ds:_ZL11vec4_origin_97+8
		fst	dword ptr ds:_ZL11vec4_origin_97+0Ch
		fstp	[ebp+var_18]
		mov	dword ptr ds:qword_2E4D48, eax
		mov	dword ptr ds:qword_2E4D48+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_97, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_97+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_97+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_97+0Ch, eax
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], offset byte_1EC1B5
		mov	dword ptr [esp+4], offset aEngine_no_focu ; "engine_no_focus_sleep"
		mov	dword ptr [esp], offset	engine_no_focus_sleep
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset engine_no_focus_sleep
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL16fps_max_callbackP7IConVarPKcf ; fps_max_callback(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aFrameRateLimit ; "Frame rate limiter, cannot be set while"...
		mov	dword ptr [esp+0Ch], 400000h
		mov	dword ptr [esp+8], offset dword_1EC58C
		mov	dword ptr [esp+4], offset aFps_max ; "fps_max"
		mov	dword ptr [esp], offset	fps_max
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset fps_max
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], offset _ZL29mat_powersavingsmode_callbackP7IConVarPKcf ; mat_powersavingsmode_callback(IConVar *,char  const*,float)
		mov	dword ptr [esp+10h], offset aPowerSavingsMo ; "Power Savings Mode"
		mov	dword ptr [esp+0Ch], 80h
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aMat_powersavin ; "mat_powersavingsmode"
		mov	dword ptr [esp], offset	_ZL20mat_powersavingsmode ; mat_powersavingsmode
		call	_ZN6ConVarC2EPKcS1_iS1_PFvP7IConVarS1_fE ; ConVar::ConVar(char	const*,char  const*,int,char  const*,void (*)(IConVar *,char  const*,float))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20mat_powersavingsmode ; mat_powersavingsmode
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aForceAsyncRead ; "Force async reads to serialize for prof"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aAsync_serializ ; "async_serialize"
		mov	dword ptr [esp], offset	_ZL15async_serialize ; async_serialize
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15async_serialize ; async_serialize
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		fld	[ebp+var_18]
		mov	dword ptr [esp+4], offset _ZL8g_Engine ; g_Engine
		fst	qword ptr ds:_ZL8g_Engine+10h
		mov	dword ptr [esp], offset	_ZN7CEngineD2Ev	; CEngine::~CEngine()
		fst	qword ptr ds:_ZL8g_Engine+18h
		mov	dword ptr ds:_ZL8g_Engine, (offset _ZTV7CEngine+8) ; g_Engine
		fst	qword ptr ds:_ZL8g_Engine+20h
		mov	dword ptr ds:_ZL8g_Engine+8, 0
		fst	dword ptr ds:_ZL8g_Engine+28h
		fst	dword ptr ds:_ZL8g_Engine+2Ch
		mov	dword ptr ds:_ZL8g_Engine+0Ch, 0
		fstp	dword ptr ds:_ZL8g_Engine+30h
		mov	ds:_ZL8g_Engine+34h, 0
		mov	dword ptr ds:_ZL8g_Engine+4, 0
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_engine_no_focus_sleep endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_game proc near		; DATA XREF: .ctors:002726E0o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2E4DDC, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL6g_Game ; g_Game
		mov	dword ptr [esp], offset	_ZN5CGameD2Ev ;	CGame::~CGame()
		mov	dword ptr ds:qword_2E4DDC+4, edx
		mov	dword ptr ds:qword_2E4DE4, eax
		mov	dword ptr ds:qword_2E4DE4+4, eax
		mov	dword ptr ds:_ZL11vec4_origin_98, edx ;	vec4_origin
		mov	dword ptr ds:_ZL11vec4_origin_98+4, edx
		mov	dword ptr ds:_ZL11vec4_origin_98+8, edx
		mov	dword ptr ds:_ZL11vec4_origin_98+0Ch, edx
		mov	dword ptr ds:_ZL12vec4_invalid_98, eax ; vec4_invalid
		mov	dword ptr ds:_ZL12vec4_invalid_98+4, eax
		mov	dword ptr ds:_ZL12vec4_invalid_98+8, eax
		mov	dword ptr ds:_ZL12vec4_invalid_98+0Ch, eax
		mov	dword ptr ds:_ZL6g_Game, (offset _ZTV5CGame+8) ; g_Game
		mov	byte ptr ds:_ZL6g_Game+4, 1
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_game endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_TestScriptMgr proc near ; DATA	XREF: .ctors:002726E4o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2E4EFC, eax
		mov	dword ptr ds:qword_2E4EFC+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2E4F04, eax
		mov	dword ptr ds:qword_2E4F04+4, eax
		mov	dword ptr [esp], offset	g_TestScriptMgr
		call	_ZN14CTestScriptMgrC2Ev	; CTestScriptMgr::CTestScriptMgr(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_TestScriptMgr
		mov	dword ptr [esp], offset	_ZN14CTestScriptMgrD2Ev	; CTestScriptMgr::~CTestScriptMgr()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aDebugTestScrip ; "Debug test scripts."
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTestscript_deb ; "testscript_debug"
		mov	dword ptr [esp], offset	testscript_debug
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset testscript_debug
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_TestScriptMgr endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_gMessageParms proc near	; DATA XREF: .ctors:002726E8o
		mov	eax, 7F7FFFFFh
		xor	edx, edx
		push	ebp
		mov	dword ptr ds:qword_2E5F08, eax
		mov	ebp, esp
		mov	dword ptr ds:qword_2E5F08+4, eax
		mov	dword ptr ds:byte_2E5F20, eax
		mov	dword ptr ds:byte_2E5F20+4, eax
		mov	dword ptr ds:byte_2E5F20+8, eax
		mov	dword ptr ds:byte_2E5F20+0Ch, eax
		mov	eax, tm_demomessage
		mov	dword ptr ds:qword_2E5F00, edx
		mov	dword ptr ds:qword_2E5F00+4, edx
		mov	dword ptr ds:byte_2E5F10, edx
		mov	dword ptr ds:_ZL17orig_demo_message, eax ; orig_demo_message
		mov	eax, tm_demomessage+4
		mov	dword ptr ds:byte_2E5F10+4, edx
		mov	dword ptr ds:byte_2E5F10+8, edx
		mov	dword ptr ds:byte_2E5F10+0Ch, edx
		mov	dword ptr ds:_ZL17orig_demo_message+4, eax
		mov	eax, tm_demomessage+8
		mov	dword ptr ds:_ZL17orig_demo_message+8, eax
		mov	eax, tm_demomessage+0Ch
		mov	dword ptr ds:_ZL17orig_demo_message+0Ch, eax
		mov	eax, tm_demomessage+10h
		mov	dword ptr ds:_ZL17orig_demo_message+10h, eax
		mov	eax, tm_demomessage+14h
		mov	dword ptr ds:_ZL17orig_demo_message+14h, eax
		mov	eax, tm_demomessage+18h
		mov	dword ptr ds:_ZL17orig_demo_message+18h, eax
		mov	eax, tm_demomessage+1Ch
		mov	dword ptr ds:_ZL17orig_demo_message+1Ch, eax
		mov	eax, tm_demomessage+20h
		mov	dword ptr ds:_ZL17orig_demo_message+20h, eax
		mov	eax, tm_demomessage+24h
		mov	dword ptr ds:_ZL17orig_demo_message+24h, eax
		mov	eax, tm_demomessage+28h
		mov	dword ptr ds:_ZL17orig_demo_message+28h, eax
		mov	eax, tm_demomessage+2Ch
		pop	ebp
		mov	dword ptr ds:_ZL17orig_demo_message+2Ch, eax
		mov	eax, tm_demomessage+30h
		mov	dword ptr ds:_ZL17orig_demo_message+30h, eax
		mov	eax, tm_demomessage+34h
		mov	dword ptr ds:_ZL17orig_demo_message+34h, eax
		mov	eax, tm_demomessage+38h
		mov	dword ptr ds:_ZL17orig_demo_message+38h, eax
		mov	eax, tm_demomessage+3Ch
		mov	dword ptr ds:_ZL17orig_demo_message+3Ch, eax
		retn
_GLOBAL__sub_I_gMessageParms endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_toolframework proc near	; DATA XREF: .ctors:002726ECo
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2E5F88, edx
		mov	dword ptr ds:qword_2E5F88+4, edx
		mov	dword ptr ds:byte_2E5F98, edx
		mov	dword ptr ds:byte_2E5F98+4, edx
		mov	dword ptr ds:byte_2E5F98+8, edx
		mov	dword ptr ds:byte_2E5F98+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23g_ToolFrameworkInternal ; g_ToolFrameworkInternal
		mov	dword ptr [esp], offset	_ZN22CToolFrameworkInternalD2Ev	; CToolFrameworkInternal::~CToolFrameworkInternal()
		mov	dword ptr ds:qword_2E5F90, eax
		mov	dword ptr ds:qword_2E5F90+4, eax
		mov	dword ptr ds:byte_2E5FA8, eax
		mov	dword ptr ds:byte_2E5FA8+4, eax
		mov	dword ptr ds:byte_2E5FA8+8, eax
		mov	dword ptr ds:byte_2E5FA8+0Ch, eax
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal, (offset _ZTV22CToolFrameworkInternal+8) ; g_ToolFrameworkInternal
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+4, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+8, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+0Ch, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+10h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+14h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+18h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+1Ch, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+20h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+24h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+28h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+2Ch, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+30h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+34h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+38h, 0
		mov	dword ptr ds:_ZL23g_ToolFrameworkInternal+3Ch, 0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVtoolframework ; "VTOOLFRAMEWORKVERSION002"
		mov	dword ptr [esp+4], offset _ZL62__CreateCToolFrameworkInternalIToolFrameworkInternal_interfacev ; __CreateCToolFrameworkInternalIToolFrameworkInternal_interface(void)
		mov	dword ptr [esp], offset	_ZL58__g_CreateCToolFrameworkInternalIToolFrameworkInternal_reg	; __g_CreateCToolFrameworkInternalIToolFrameworkInternal_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL32__g_CClientEngineTools_singleton	; __g_CClientEngineTools_singleton
		mov	dword ptr [esp], offset	_ZN18CClientEngineToolsD2Ev ; CClientEngineTools::~CClientEngineTools()
		mov	ds:_ZL32__g_CClientEngineTools_singleton, (offset _ZTV18CClientEngineTools+8) ;	__g_CClientEngineTools_singleton
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVclientenginet ; "VCLIENTENGINETOOLS001"
		mov	dword ptr [esp+4], offset _ZL54__CreateCClientEngineToolsIClientEngineTools_interfacev ; __CreateCClientEngineToolsIClientEngineTools_interface(void)
		mov	dword ptr [esp], offset	_ZL50__g_CreateCClientEngineToolsIClientEngineTools_reg	; __g_CreateCClientEngineToolsIClientEngineTools_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL32__g_CServerEngineTools_singleton	; __g_CServerEngineTools_singleton
		mov	dword ptr [esp], offset	_ZN18CServerEngineToolsD2Ev ; CServerEngineTools::~CServerEngineTools()
		mov	ds:_ZL32__g_CServerEngineTools_singleton, (offset _ZTV18CServerEngineTools+8) ;	__g_CServerEngineTools_singleton
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVserverenginet ; "VSERVERENGINETOOLS001"
		mov	dword ptr [esp+4], offset _ZL54__CreateCServerEngineToolsIServerEngineTools_interfacev ; __CreateCServerEngineToolsIServerEngineTools_interface(void)
		mov	dword ptr [esp], offset	_ZL50__g_CreateCServerEngineToolsIServerEngineTools_reg	; __g_CreateCServerEngineToolsIServerEngineTools_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_toolframework endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN12CInitTrackerC2Ev proc near ; DATA XREF: .ctors:002726F0o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2E6060, eax
		mov	dword ptr ds:qword_2E6060+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2E6068, eax
		mov	dword ptr ds:qword_2E6068+4, eax
		mov	dword ptr [esp], offset	_ZL13g_InitTracker ; g_InitTracker
		call	_ZN12CInitTrackerC2Ev ;	CInitTracker::CInitTracker(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13g_InitTracker ; g_InitTracker
		mov	dword ptr [esp], offset	_ZN12CInitTrackerD2Ev ;	CInitTracker::~CInitTracker()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN12CInitTrackerC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_SharedEdictChangeInfo proc near ; DATA	XREF: .ctors:002726F4o
		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	ds:_ZL9s_MsgData+220h, 1
		mov	dword ptr ds:qword_2E7350, 0
		mov	dword ptr ds:qword_2E7350+4, 0
		mov	dword ptr ds:qword_2E7358, 7F7FFFFFh
		mov	dword ptr ds:qword_2E7358+4, 7F7FFFFFh
		mov	dword ptr ds:byte_2E7360, 0
		mov	dword ptr ds:byte_2E7360+4, 0
		mov	dword ptr ds:byte_2E7360+8, 0
		mov	dword ptr ds:byte_2E7360+0Ch, 0
		mov	dword ptr ds:byte_2E7370, 7F7FFFFFh
		mov	dword ptr ds:byte_2E7370+4, 7F7FFFFFh
		mov	dword ptr ds:byte_2E7370+8, 7F7FFFFFh
		mov	dword ptr ds:byte_2E7370+0Ch, 7F7FFFFFh
		mov	word ptr ds:g_SharedEdictChangeInfo, 1
		mov	dword ptr ds:_ZL9s_MsgData+224h, 0
		mov	dword ptr ds:_ZL9s_MsgData+21Ch, (offset _ZTV17SVC_EntityMessage+8)
		mov	dword ptr [esp], (offset _ZL9s_MsgData+238h)
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		mov	dword ptr [esp], (offset _ZL9s_MsgData+250h)
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	ds:_ZL9s_MsgData+220h, 0
		mov	ds:_ZL9s_MsgData+26Ch, 1
		mov	dword ptr ds:_ZL9s_MsgData+270h, 0
		mov	dword ptr ds:_ZL9s_MsgData+268h, (offset _ZTV15SVC_UserMessage+8)
		mov	dword ptr [esp], (offset _ZL9s_MsgData+280h)
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		mov	dword ptr [esp], (offset _ZL9s_MsgData+298h)
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	ds:_ZL9s_MsgData+26Ch, 0
		mov	dword ptr ds:_ZL9s_MsgData+200h, 0
		mov	ds:_ZL9s_MsgData+204h, 0
		mov	dword ptr ds:_ZL9s_MsgData+20Ch, 0
		mov	ds:_ZL9s_MsgData+210h, 0
		mov	dword ptr ds:_ZL9s_MsgData+214h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL9s_MsgData+218h, 0
		mov	dword ptr ds:_ZL9s_MsgData+208h, 0
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	dword ptr [esp+4], (offset _ZL9s_MsgData+100h)
		mov	dword ptr [esp], (offset _ZL9s_MsgData+250h)
		call	_ZN8bf_write12StartWritingEPviii ; bf_write::StartWriting(void *,int,int,int)
		mov	dword ptr [esp+4], offset aS_msgdata_enti ; "s_MsgData.entityMsg.m_DataOut"
		mov	dword ptr [esp], (offset _ZL9s_MsgData+250h)
		call	_ZN8bf_write12SetDebugNameEPKc ; bf_write::SetDebugName(char  const*)
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	dword ptr [esp+4], offset _ZL9s_MsgData	; s_MsgData
		mov	dword ptr [esp], (offset _ZL9s_MsgData+298h)
		call	_ZN8bf_write12StartWritingEPviii ; bf_write::StartWriting(void *,int,int,int)
		mov	dword ptr [esp+4], offset aS_msgdata_user ; "s_MsgData.userMsg.m_DataOut"
		mov	dword ptr [esp], (offset _ZL9s_MsgData+298h)
		call	_ZN8bf_write12SetDebugNameEPKc ; bf_write::SetDebugName(char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL9s_MsgData	; s_MsgData
		mov	dword ptr [esp], offset	_ZN7MsgDataD2Ev	; MsgData::~MsgData()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVengineserver0 ; "VEngineServer021"
		mov	dword ptr [esp+4], offset _ZL46__CreateCVEngineServerIVEngineServer_interfacev ; __CreateCVEngineServerIVEngineServer_interface(void)
		mov	dword ptr [esp], offset	_ZL42__g_CreateCVEngineServerIVEngineServer_reg	; __g_CreateCVEngineServerIVEngineServer_reg
		mov	ds:_ZL15g_VEngineServer, (offset _ZTV14CVEngineServer+8) ; g_VEngineServer
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+14h], 80h
		mov	dword ptr [esp+10h], offset aPvsinfopool ; "pvsinfopool"
		mov	dword ptr [esp+0Ch], 2
		mov	dword ptr [esp+8], 2000h
		mov	dword ptr [esp+4], 80h
		mov	dword ptr [esp], offset	_ZL18s_PVSInfoAllocator	; s_PVSInfoAllocator
		call	_ZN14CUtlMemoryPoolC2EiiiPKci ;	CUtlMemoryPool::CUtlMemoryPool(int,int,int,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL18s_PVSInfoAllocator ; s_PVSInfoAllocator
		mov	dword ptr [esp], offset	_ZN14CUtlMemoryPoolD2Ev	; CUtlMemoryPool::~CUtlMemoryPool()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_SharedEdictChangeInfo endp

; ---------------------------------------------------------------------------

loc_6F7BF:				; CODE XREF: .text:0006F7DBj
		mov	dword ptr ds:_ZL9s_MsgData+21Ch, (offset _ZTV11INetMessage+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------

loc_6F7D1:				; CODE XREF: .text:0006F7DDj
		mov	dword ptr ds:_ZL9s_MsgData+268h, (offset _ZTV11INetMessage+8)
		jmp	short loc_6F7BF
; ---------------------------------------------------------------------------
		jmp	short loc_6F7D1
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_voiceserver_impl_cpp proc near ;	DATA XREF: .ctors:002726F8o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2E77A4, edx
		mov	dword ptr ds:qword_2E77A4+4, edx
		mov	dword ptr ds:byte_2E77B4, edx
		mov	dword ptr ds:byte_2E77B4+4, edx
		mov	dword ptr ds:byte_2E77B4+8, edx
		mov	dword ptr ds:byte_2E77B4+0Ch, edx
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26__g_CVoiceServer_singleton ; __g_CVoiceServer_singleton
		mov	dword ptr [esp], offset	_ZN12CVoiceServerD2Ev ;	CVoiceServer::~CVoiceServer()
		mov	dword ptr ds:qword_2E77AC, eax
		mov	dword ptr ds:qword_2E77AC+4, eax
		mov	dword ptr ds:byte_2E77C4, eax
		mov	dword ptr ds:byte_2E77C4+4, eax
		mov	dword ptr ds:byte_2E77C4+8, eax
		mov	dword ptr ds:byte_2E77C4+0Ch, eax
		mov	ds:_ZL26__g_CVoiceServer_singleton, (offset _ZTV12CVoiceServer+8) ; __g_CVoiceServer_singleton
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVoiceserver002 ; "VoiceServer002"
		mov	dword ptr [esp+4], offset _ZL42__CreateCVoiceServerIVoiceServer_interfacev ; __CreateCVoiceServerIVoiceServer_interface(void)
		mov	dword ptr [esp], offset	_ZL38__g_CreateCVoiceServerIVoiceServer_reg ; __g_CreateCVoiceServerIVoiceServer_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		leave
		retn
_GLOBAL__sub_I_voiceserver_impl_cpp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN13ConsoleLogger7m_indexE proc	near ; DATA XREF: .ctors:002726FCo
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2E7AFC, edx
		mov	dword ptr ds:qword_2E7AFC+4, edx
		mov	dword ptr ds:byte_2E7B0C, edx
		mov	dword ptr ds:byte_2E7B0C+4, edx
		mov	dword ptr ds:byte_2E7B0C+8, edx
		mov	dword ptr ds:byte_2E7B0C+0Ch, edx
		mov	dword ptr ds:qword_2E7B04, eax
		mov	dword ptr ds:qword_2E7B04+4, eax
		mov	dword ptr ds:byte_2E7B1C, eax
		mov	dword ptr ds:byte_2E7B1C+4, eax
		mov	dword ptr ds:byte_2E7B1C+8, eax
		mov	dword ptr ds:byte_2E7B1C+0Ch, eax
		mov	dword ptr [esp+10h], offset aFramerateAtWhi ; "Framerate at which vprof	will begin to "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aVprof_dump_spi ; "vprof_dump_spikes"
		mov	dword ptr [esp], offset	_ZL17vprof_dump_spikes ; vprof_dump_spikes
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17vprof_dump_spikes ; vprof_dump_spikes
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aNodeToStartRep ; "Node to start report from when doing a "...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aVprof_dump_s_0 ; "vprof_dump_spikes_node"
		mov	dword ptr [esp], offset	_ZL22vprof_dump_spikes_node ; vprof_dump_spikes_node
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL22vprof_dump_spikes_node ;	vprof_dump_spikes_node
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aBudgetGtnodeTo ; "Budget gtNode to	start report from when"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset aVprof_dump_s_1 ; "vprof_dump_spikes_budget_group"
		mov	dword ptr [esp], offset	_ZL30vprof_dump_spikes_budget_group ; vprof_dump_spikes_budget_group
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL30vprof_dump_spikes_budget_group ;	vprof_dump_spikes_budget_group
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+10h], offset aIntervalInSeco ; "Interval	(in seconds) at	which vprof wi"...
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aVprof_dump_oni ; "vprof_dump_oninterval"
		mov	dword ptr [esp], offset	_ZL21vprof_dump_oninterval ; vprof_dump_oninterval
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL21vprof_dump_oninterval ; vprof_dump_oninterval
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aVprof_counters ; "vprof_counters"
		mov	dword ptr [esp], offset	_ZL14vprof_counters ; vprof_counters
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14vprof_counters ;	vprof_counters
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 4000h
		mov	dword ptr [esp+0Ch], offset aGeneratesAFake ; "generates a fake	spike"
		mov	dword ptr [esp+8], offset _ZL5spikeRK8CCommand ; spike(CCommand	 const&)
		mov	dword ptr [esp+4], (offset aGeneratesAFake+11h)
		mov	dword ptr [esp], offset	_ZL13spike_command ; spike_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13spike_command ; spike_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aEnableVtuneFor ; "enable vtune for	a particular vprof gro"...
		mov	dword ptr [esp+8], offset _ZL17vprof_vtune_groupRK8CCommand ; vprof_vtune_group(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_vtune_gr ; "vprof_vtune_group"
		mov	dword ptr [esp], offset	_ZL25vprof_vtune_group_command ; vprof_vtune_group_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25vprof_vtune_group_command ; vprof_vtune_group_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aWriteTheNamesO ; "Write the names of all of the vprof gro"...
		mov	dword ptr [esp+8], offset _ZL21vprof_dump_groupnamesRK8CCommand	; vprof_dump_groupnames(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_dump_gro ; "vprof_dump_groupnames"
		mov	dword ptr [esp], offset	_ZL29vprof_dump_groupnames_command ; vprof_dump_groupnames_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL29vprof_dump_groupnames_command ; vprof_dump_groupnames_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aToggleVprofCac ; "Toggle VProf cache miss checking"
		mov	dword ptr [esp+8], offset _ZL15vprof_cachemissRK8CCommand ; vprof_cachemiss(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_cachemis ; "vprof_cachemiss"
		mov	dword ptr [esp], offset	_ZL23vprof_cachemiss_command ; vprof_cachemiss_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL23vprof_cachemiss_command ; vprof_cachemiss_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aTurnOnVprofCac ; "Turn on VProf cache miss	checking"
		mov	dword ptr [esp+8], offset _ZL18vprof_cachemiss_onRK8CCommand ; vprof_cachemiss_on(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_cachem_0 ; "vprof_cachemiss_on"
		mov	dword ptr [esp], offset	_ZL26vprof_cachemiss_on_command	; vprof_cachemiss_on_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26vprof_cachemiss_on_command ; vprof_cachemiss_on_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aTurnOffVprofCa ; "Turn off	VProf cache miss checking"
		mov	dword ptr [esp+8], offset _ZL19vprof_cachemiss_offRK8CCommand ;	vprof_cachemiss_off(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_cachem_1 ; "vprof_cachemiss_off"
		mov	dword ptr [esp], offset	_ZL27vprof_cachemiss_off_command ; vprof_cachemiss_off_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27vprof_cachemiss_off_command ; vprof_cachemiss_off_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aToggleVprofPro ; "Toggle VProf profiler"
		mov	dword ptr [esp+8], offset _ZL5vprofRK8CCommand ; vprof(CCommand	 const&)
		mov	dword ptr [esp+4], offset aVprof ; "vprof"
		mov	dword ptr [esp], offset	_ZL13vprof_command ; vprof_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13vprof_command ; vprof_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aTurnOnVprofPro ; "Turn on VProf profiler"
		mov	dword ptr [esp+8], offset _ZL8vprof_onRK8CCommand ; vprof_on(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_on ; "vprof_on"
		mov	dword ptr [esp], offset	_ZL16vprof_on_command ;	vprof_on_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16vprof_on_command	; vprof_on_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aTurnABudgetGro ; "Turn a budget group on/off"
		mov	dword ptr [esp+8], offset _ZL19budget_toggle_groupRK8CCommand ;	budget_toggle_group(CCommand  const&)
		mov	dword ptr [esp+4], offset aBudget_toggle_ ; "budget_toggle_group"
		mov	dword ptr [esp], offset	_ZL27budget_toggle_group_command ; budget_toggle_group_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27budget_toggle_group_command ; budget_toggle_group_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aTurnOffVprofPr ; "Turn off	VProf profiler"
		mov	dword ptr [esp+8], offset _ZL9vprof_offRK8CCommand ; vprof_off(CCommand	 const&)
		mov	dword ptr [esp+4], offset aVprof_off ; "vprof_off"
		mov	dword ptr [esp], offset	_ZL17vprof_off_command ; vprof_off_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL17vprof_off_command ; vprof_off_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aResetTheStatsI ; "Reset the stats in VProf	profiler"
		mov	dword ptr [esp+8], offset _ZL11vprof_resetRK8CCommand ;	vprof_reset(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_reset ; "vprof_reset"
		mov	dword ptr [esp], offset	_ZL19vprof_reset_command ; vprof_reset_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL19vprof_reset_command ; vprof_reset_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aResetJustThePe ; "Reset just the peak time	in VProf profi"...
		mov	dword ptr [esp+8], offset _ZL17vprof_reset_peaksRK8CCommand ; vprof_reset_peaks(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_reset_pe ; "vprof_reset_peaks"
		mov	dword ptr [esp], offset	_ZL25vprof_reset_peaks_command ; vprof_reset_peaks_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25vprof_reset_peaks_command ; vprof_reset_peaks_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aGenerateARepor ; "Generate	a report to the	console."
		mov	dword ptr [esp+8], offset _ZL21vprof_generate_reportRK8CCommand	; vprof_generate_report(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_generate ; "vprof_generate_report"
		mov	dword ptr [esp], offset	_ZL29vprof_generate_report_command ; vprof_generate_report_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL29vprof_generate_report_command ; vprof_generate_report_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aGenerateARep_0 ; "Generate	a report to the	console	based "...
		mov	dword ptr [esp+8], offset _ZL28vprof_generate_report_budgetRK8CCommand ; vprof_generate_report_budget(CCommand	const&)
		mov	dword ptr [esp+4], offset aVprof_genera_0 ; "vprof_generate_report_budget"
		mov	dword ptr [esp], offset	_ZL36vprof_generate_report_budget_command ; vprof_generate_report_budget_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL36vprof_generate_report_budget_command ; vprof_generate_report_budget_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aGenerateARepor ; "Generate	a report to the	console."
		mov	dword ptr [esp+8], offset _ZL31vprof_generate_report_hierarchyRK8CCommand ; vprof_generate_report_hierarchy(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_genera_1 ; "vprof_generate_report_hierarchy"
		mov	dword ptr [esp], offset	_ZL39vprof_generate_report_hierarchy_command ; vprof_generate_report_hierarchy_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL39vprof_generate_report_hierarchy_command ; vprof_generate_report_hierarchy_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aGenerateARepor ; "Generate	a report to the	console."
		mov	dword ptr [esp+8], offset _ZL24vprof_generate_report_AIRK8CCommand ; vprof_generate_report_AI(CCommand	const&)
		mov	dword ptr [esp+4], offset aVprof_genera_2 ; "vprof_generate_report_AI"
		mov	dword ptr [esp], offset	_ZL32vprof_generate_report_AI_command ;	vprof_generate_report_AI_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL32vprof_generate_report_AI_command	; vprof_generate_report_AI_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aGenerateARepor ; "Generate	a report to the	console."
		mov	dword ptr [esp+8], offset _ZL29vprof_generate_report_AI_onlyRK8CCommand	; vprof_generate_report_AI_only(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_genera_3 ; "vprof_generate_report_AI_only"
		mov	dword ptr [esp], offset	_ZL37vprof_generate_report_AI_only_command ; vprof_generate_report_AI_only_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL37vprof_generate_report_AI_only_command ; vprof_generate_report_AI_only_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aGenerateARepor ; "Generate	a report to the	console."
		mov	dword ptr [esp+8], offset _ZL30vprof_generate_report_map_loadRK8CCommand ; vprof_generate_report_map_load(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_genera_4 ; "vprof_generate_report_map_load"
		mov	dword ptr [esp], offset	_ZL38vprof_generate_report_map_load_command ; vprof_generate_report_map_load_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL38vprof_generate_report_map_load_command ;	vprof_generate_report_map_load_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_VProfExport
		mov	dword ptr [esp], offset	_ZN12CVProfExportD2Ev ;	CVProfExport::~CVProfExport()
		mov	dword ptr ds:g_VProfExport, (offset _ZTV12CVProfExport+8)
		mov	dword ptr ds:g_VProfExport+4, 0
		mov	dword ptr ds:g_VProfExport+8, 0
		mov	dword ptr ds:g_VProfExport+0Ch,	0
		mov	dword ptr ds:g_VProfExport+10h,	0
		mov	dword ptr ds:g_VProfExport+14h,	0
		mov	dword ptr ds:g_VProfExport+18h,	0
		mov	ds:g_VProfExport+21h, 0
		mov	ds:g_VProfExport+20h, 0
		mov	dword ptr ds:g_VProfExport+1Ch,	0
		call	__cxa_atexit
		mov	dword ptr [esp+8], offset aVprofexport001 ; "VProfExport001"
		mov	dword ptr [esp+4], offset _ZL42__CreateCVProfExportIVProfExport_interfacev ; __CreateCVProfExportIVProfExport_interface(void)
		mov	dword ptr [esp], offset	_ZL38__g_CreateCVProfExportIVProfExport_reg ; __g_CreateCVProfExportIVProfExport_reg
		call	_ZN12InterfaceRegC2EPFPvvEPKc ;	InterfaceReg::InterfaceReg(void	* (*)(void),char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL16s_VProfListeners	; s_VProfListeners
		mov	dword ptr [esp], offset	_ZN10CUtlVectorI17VProfListenInfo_t10CUtlMemoryIS0_iEED2Ev ; CUtlVector<VProfListenInfo_t,CUtlMemory<VProfListenInfo_t,int>>::~CUtlVector()
		mov	dword ptr ds:_ZL16s_VProfListeners, 0 ;	s_VProfListeners
		mov	dword ptr ds:_ZL16s_VProfListeners+4, 0
		mov	dword ptr ds:_ZL16s_VProfListeners+8, 0
		mov	dword ptr ds:_ZL16s_VProfListeners+0Ch,	0
		mov	dword ptr ds:_ZL16s_VProfListeners+10h,	0
		call	__cxa_atexit
		mov	dword ptr [esp+10h], (offset asc_20E578+4)
		mov	dword ptr [esp+0Ch], 20010h
		mov	dword ptr [esp+8], offset a0_25	; "0.25"
		mov	dword ptr [esp+4], offset aRpt_vprof_time ; "rpt_vprof_time"
		mov	dword ptr [esp], offset	_ZL14rpt_vprof_time ; rpt_vprof_time
		call	_ZN6ConVarC2EPKcS1_iS1_	; ConVar::ConVar(char  const*,char  const*,int,char  const*)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL14rpt_vprof_time ;	rpt_vprof_time
		mov	dword ptr [esp], offset	_ZN6ConVarD2Ev ; ConVar::~ConVar()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN13ConsoleLogger7m_indexE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pVProfileForDisplay proc near ; DATA XREF: .ctors:00272700o
		push	ebp
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2E99CC, edx
		mov	dword ptr ds:qword_2E99CC+4, edx
		mov	dword ptr ds:byte_2E99DC, edx
		mov	dword ptr ds:byte_2E99DC+4, edx
		mov	dword ptr ds:byte_2E99DC+8, edx
		mov	dword ptr ds:byte_2E99DC+0Ch, edx
		mov	dword ptr ds:qword_2E99D4, eax
		mov	dword ptr ds:qword_2E99D4+4, eax
		mov	dword ptr ds:byte_2E99EC, eax
		mov	dword ptr ds:byte_2E99EC+4, eax
		mov	dword ptr ds:byte_2E99EC+8, eax
		mov	dword ptr ds:byte_2E99EC+0Ch, eax
		mov	dword ptr [esp], offset	_ZL15g_VProfRecorder ; g_VProfRecorder
		call	_ZN9CVProfileC2Ev ; CVProfile::CVProfile(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL15g_VProfRecorder ; g_VProfRecorder
		mov	dword ptr [esp], offset	_ZN14CVProfRecorderD2Ev	; CVProfRecorder::~CVProfRecorder()
		mov	dword ptr ds:_ZL15g_VProfRecorder+19C0h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+19C4h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+19C8h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+19CCh, 0FFFFFFFFh
		mov	dword ptr ds:_ZL15g_VProfRecorder+19D0h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+19D4h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL15g_VProfRecorder+19D8h, 0FFFFFFFFh
		mov	dword ptr ds:_ZL15g_VProfRecorder+19DCh, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+19BCh, offset	_Z22CaselessStringLessThanRKPKcS2_ ; CaselessStringLessThan(char  const* const&,char  const* const&)
		mov	dword ptr ds:_ZL15g_VProfRecorder+19E0h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+19E4h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+1A00h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+1A04h, 0
		mov	dword ptr ds:_ZL15g_VProfRecorder+19ECh, 0FFFFFFFFh
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aStartRecording ; "Start recording vprof data for playback"...
		mov	dword ptr [esp+8], offset _ZL18vprof_record_startRK8CCommand ; vprof_record_start(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_record_s ; "vprof_record_start"
		mov	dword ptr [esp], offset	_ZL26vprof_record_start_command	; vprof_record_start_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL26vprof_record_start_command ; vprof_record_start_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aStopRecordingV ; "Stop recording vprof data"
		mov	dword ptr [esp+8], offset _ZL17vprof_record_stopRK8CCommand ; vprof_record_stop(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_record_0 ; "vprof_record_stop"
		mov	dword ptr [esp], offset	_ZL25vprof_record_stop_command ; vprof_record_stop_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL25vprof_record_stop_command ; vprof_record_stop_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aStartPlayingBa ; "Start playing back a recorded .vprof fi"...
		mov	dword ptr [esp+8], offset _ZL20vprof_playback_startRK8CCommand ; vprof_playback_start(CCommand	const&)
		mov	dword ptr [esp+4], offset aVprof_playback ; "vprof_playback_start"
		mov	dword ptr [esp], offset	_ZL28vprof_playback_start_command ; vprof_playback_start_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL28vprof_playback_start_command ; vprof_playback_start_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aStopPlayingBac ; "Stop playing back a recorded .vprof fil"...
		mov	dword ptr [esp+8], offset _ZL19vprof_playback_stopRK8CCommand ;	vprof_playback_stop(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_playba_0 ; "vprof_playback_stop"
		mov	dword ptr [esp], offset	_ZL27vprof_playback_stop_command ; vprof_playback_stop_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27vprof_playback_stop_command ; vprof_playback_stop_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aWhilePlayingBa ; "While playing back a .vprof file, step "...
		mov	dword ptr [esp+8], offset _ZL19vprof_playback_stepRK8CCommand ;	vprof_playback_step(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_playba_1 ; "vprof_playback_step"
		mov	dword ptr [esp], offset	_ZL27vprof_playback_step_command ; vprof_playback_step_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL27vprof_playback_step_command ; vprof_playback_step_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aWhilePlaying_0 ; "While playing back a .vprof file, step "...
		mov	dword ptr [esp+8], offset _ZL23vprof_playback_stepbackRK8CCommand ; vprof_playback_stepback(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_playba_2 ; "vprof_playback_stepback"
		mov	dword ptr [esp], offset	_ZL31vprof_playback_stepback_command ; vprof_playback_stepback_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL31vprof_playback_stepback_command ; vprof_playback_stepback_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aAverageTheNext ; "Average the next	N frames."
		mov	dword ptr [esp+8], offset _ZL22vprof_playback_averageRK8CCommand ; vprof_playback_average(CCommand  const&)
		mov	dword ptr [esp+4], offset aVprof_playba_3 ; "vprof_playback_average"
		mov	dword ptr [esp], offset	_ZL30vprof_playback_average_command ; vprof_playback_average_command
		call	_ZN10ConCommandC2EPKcPFvRK8CCommandES1_iPFiS1_PA64_cE ;	ConCommand::ConCommand(char  const*,void (*)(CCommand  const&),char  const*,int,int (*)(char  const*,char (*)[64]))
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL30vprof_playback_average_command ;	vprof_playback_average_command
		mov	dword ptr [esp], offset	_ZN10ConCommandD2Ev ; ConCommand::~ConCommand()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_pVProfileForDisplay endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z13SV_ClearWorldv proc near ; DATA XREF: .ctors:00272704o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2E9BA4, edx
		pop	ebp
		mov	dword ptr ds:qword_2E9BA4+4, edx
		mov	dword ptr ds:qword_2E9BAC, eax
		mov	dword ptr ds:qword_2E9BAC+4, eax
		mov	dword ptr ds:byte_2E9BB4, edx
		mov	dword ptr ds:byte_2E9BB4+4, edx
		mov	dword ptr ds:byte_2E9BB4+8, edx
		mov	dword ptr ds:byte_2E9BB4+0Ch, edx
		mov	dword ptr ds:byte_2E9BC4, eax
		mov	dword ptr ds:byte_2E9BC4+4, eax
		mov	dword ptr ds:byte_2E9BC4+8, eax
		mov	dword ptr ds:byte_2E9BC4+0Ch, eax
		retn
_GLOBAL__sub_I__Z13SV_ClearWorldv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_HunkMemoryStack proc near ; DATA XREF:	.ctors:00272708o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2E9BEC, eax
		mov	dword ptr ds:qword_2E9BEC+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2E9BF4, eax
		mov	dword ptr ds:qword_2E9BF4+4, eax
		mov	dword ptr [esp], offset	g_HunkMemoryStack
		call	_ZN12CMemoryStackC2Ev ;	CMemoryStack::CMemoryStack(void)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset g_HunkMemoryStack
		mov	dword ptr [esp], offset	_ZN12CMemoryStackD2Ev ;	CMemoryStack::~CMemoryStack()
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I_g_HunkMemoryStack endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z26InternalBitBufErrorHandler15BitBufErrorTypePKc proc near
					; DATA XREF: .ctors:0027270Co
		push	ebp
		xor	ecx, ecx
		mov	dword ptr ds:qword_2EADA4, 0
		mov	ebp, esp
		push	esi
		xor	esi, esi
		push	ebx
		mov	dword ptr ds:qword_2EADA4+4, 0
		mov	dword ptr ds:qword_2EADAC, 7F7FFFFFh
		mov	dword ptr ds:qword_2EADAC+4, 7F7FFFFFh
		lea	esi, [esi+0]

loc_70518:				; CODE XREF: _GLOBAL__sub_I__Z26InternalBitBufErrorHandler15BitBufErrorTypePKc+7Dj
		mov	ebx, dword ptr _ZZ15GetBitForBitnumiE13bitsForBitnum[esi*4] ; GetBitForBitnum(int)::bitsForBitnum
		xor	eax, eax
		sub	ebx, 1
		lea	esi, [esi+0]

loc_70528:				; CODE XREF: _GLOBAL__sub_I__Z26InternalBitBufErrorHandler15BitBufErrorTypePKc+6Fj
		lea	edx, [eax+esi]
		mov	dword ptr ds:g_BitWriteMasks[ecx+eax*4], ebx
		cmp	edx, 1Fh
		ja	short loc_70549
		mov	edx, dword ptr _ZZ15GetBitForBitnumiE13bitsForBitnum[edx*4] ; GetBitForBitnum(int)::bitsForBitnum
		neg	edx
		or	edx, ebx
		mov	dword ptr ds:g_BitWriteMasks[ecx+eax*4], edx

loc_70549:				; CODE XREF: _GLOBAL__sub_I__Z26InternalBitBufErrorHandler15BitBufErrorTypePKc+55j
		add	eax, 1
		cmp	eax, 21h
		jnz	short loc_70528
		add	esi, 1
		add	ecx, 84h
		cmp	esi, 20h
		jnz	short loc_70518
		xor	eax, eax
		lea	esi, [esi+0]

loc_70568:				; CODE XREF: _GLOBAL__sub_I__Z26InternalBitBufErrorHandler15BitBufErrorTypePKc+9Fj
		mov	edx, dword ptr _ZZ15GetBitForBitnumiE13bitsForBitnum[eax*4] ; GetBitForBitnum(int)::bitsForBitnum
		sub	edx, 1
		mov	dword ptr ds:g_ExtraMasks[eax*4], edx
		add	eax, 1
		cmp	eax, 20h
		jnz	short loc_70568
		mov	dword ptr ds:g_ExtraMasks+80h, 0FFFFFFFFh
		xor	ecx, ecx
		mov	al, 1
		nop

loc_70590:				; CODE XREF: _GLOBAL__sub_I__Z26InternalBitBufErrorHandler15BitBufErrorTypePKc+C1j
		mov	edx, eax
		shl	edx, cl
		mov	dword ptr ds:g_LittleBits[ecx*4], edx
		add	ecx, 1
		cmp	ecx, 20h
		jnz	short loc_70590
		pop	ebx
		pop	esi
		pop	ebp
		retn
_GLOBAL__sub_I__Z26InternalBitBufErrorHandler15BitBufErrorTypePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN9CByteswap23SwapFieldToTargetEndianEPvS0_P17typedescription_t	proc near
					; DATA XREF: .ctors:00272710o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2EADB4, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2EADB4+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EADBC, eax
		mov	dword ptr ds:qword_2EADBC+4, eax
		retn
_GLOBAL__sub_I__ZN9CByteswap23SwapFieldToTargetEndianEPvS0_P17typedescription_t	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN14CCommandBufferC2Ev proc near ; DATA	XREF: .ctors:00272714o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2EAE20, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2EAE20+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EAE28, eax
		mov	dword ptr ds:qword_2EAE28+4, eax
		retn
_GLOBAL__sub_I__ZN14CCommandBufferC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN14ConCommandBase18s_pConCommandBasesE	proc near
					; DATA XREF: .ctors:00272718o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2EAFA8, eax
		mov	dword ptr ds:qword_2EAFA8+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EAFB0, eax
		mov	dword ptr ds:qword_2EAFB0+4, eax
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], (offset asc_20E578+4)
		mov	dword ptr [esp], offset	_ZL13s_EmptyConVar ; s_EmptyConVar
		mov	ds:_ZL17s_DefaultAccessor, (offset _ZTV16CDefaultAccessor+8) ; s_DefaultAccessor
		call	_ZN6ConVarC2EPKcS1_i ; ConVar::ConVar(char  const*,char	 const*,int)
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL13s_EmptyConVar ; s_EmptyConVar
		mov	dword ptr [esp], offset	_ZN12CEmptyConVarD2Ev ;	CEmptyConVar::~CEmptyConVar()
		mov	dword ptr ds:_ZL13s_EmptyConVar, (offset _ZTV12CEmptyConVar+8) ; s_EmptyConVar
		mov	dword ptr ds:_ZL13s_EmptyConVar+18h, (offset _ZTV12CEmptyConVar+60h)
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN14ConCommandBase18s_pConCommandBasesE	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN16CDataManagerBaseC2Ej proc near ; DATA XREF:	.ctors:0027271Co
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2EAFBC, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2EAFBC+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EAFC4, eax
		mov	dword ptr ds:qword_2EAFC4+4, eax
		retn
_GLOBAL__sub_I__ZN16CDataManagerBaseC2Ej endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN9ILocalize20ConvertANSIToUnicodeEPKcPwi proc near
					; DATA XREF: .ctors:00272720o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2EAFDC, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2EAFDC+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EAFE4, eax
		mov	dword ptr ds:qword_2EAFE4+4, eax
		retn
_GLOBAL__sub_I__ZN9ILocalize20ConvertANSIToUnicodeEPKcPwi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN9KeyValues22s_pfGetSymbolForStringE proc near
					; DATA XREF: .ctors:00272724o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2ED120, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2ED120+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2ED128, eax
		mov	dword ptr ds:qword_2ED128+4, eax
		mov	dword ptr ds:g_KeyValuesErrorStack+100h, offset	aNull ;	"NULL"
		mov	dword ptr ds:g_KeyValuesErrorStack+104h, 0
		mov	dword ptr ds:g_KeyValuesErrorStack+108h, 0
		retn
_GLOBAL__sub_I__ZN9KeyValues22s_pfGetSymbolForStringE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN5CLZSS12IsCompressedEPh proc near ; DATA XREF: .ctors:00272728o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2ED130, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2ED130+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2ED138, eax
		mov	dword ptr ds:qword_2ED138+4, eax
		retn
_GLOBAL__sub_I__ZN5CLZSS12IsCompressedEPh endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN14CUtlMemoryPool12g_ReportFuncE proc near ; DATA XREF: .ctors:0027272Co
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2ED144, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2ED144+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2ED14C, eax
		mov	dword ptr ds:qword_2ED14C+4, eax
		retn
_GLOBAL__sub_I__ZN14CUtlMemoryPool12g_ReportFuncE endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN12CMemoryStackC2Ev proc near ; DATA XREF: .ctors:00272730o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2ED154, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2ED154+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2ED15C, eax
		mov	dword ptr ds:qword_2ED15C+4, eax
		retn
_GLOBAL__sub_I__ZN12CMemoryStackC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z9_V_memsetPKciPvii proc near ;	DATA XREF: .ctors:00272734o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2ED420, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2ED420+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2ED428, eax
		mov	dword ptr ds:qword_2ED428+4, eax
		retn
_GLOBAL__sub_I__Z9_V_memsetPKciPvii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_cvar proc near		; DATA XREF: .ctors:00272738o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2ED444, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2ED444+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2ED44C, eax
		mov	dword ptr ds:qword_2ED44C+4, eax
		retn
_GLOBAL__sub_I_cvar endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_s_StringCharConversion proc near	; DATA XREF: .ctors:0027273Co
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 28h
		mov	dword ptr ds:qword_2EE798, eax
		mov	dword ptr ds:qword_2EE798+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EE7A0, eax
		mov	dword ptr ds:qword_2EE7A0+4, eax
		mov	dword ptr [esp+10h], offset _ZL40s_pConversionArrays_StringCharConversion ; int
		mov	dword ptr [esp+0Ch], 0Bh ; int
		mov	dword ptr [esp+8], (offset asc_211581+3) ; s
		mov	dword ptr [esp+4], 5Ch ; char
		mov	dword ptr [esp], offset	s_StringCharConversion ; int
		call	_ZN21CUtlCStringConversionC2EcPKciPN18CUtlCharConversion17ConversionArray_tE ; CUtlCStringConversion::CUtlCStringConversion(char,char  const*,int,CUtlCharConversion::ConversionArray_t	*)
		mov	dword ptr [esp+10h], offset _ZL35s_pConversionArrays_NoEscConversion ; int
		mov	dword ptr [esp+0Ch], 1 ; int
		mov	dword ptr [esp+8], (offset asc_211581+3) ; s
		mov	dword ptr [esp+4], 7Fh ; int
		mov	dword ptr [esp], offset	s_NoEscConversion ; int
		call	_ZN18CUtlCharConversionC2EcPKciPNS_17ConversionArray_tE	; CUtlCharConversion::CUtlCharConversion(char,char  const*,int,CUtlCharConversion::ConversionArray_t *)
		mov	dword ptr ds:s_NoEscConversion,	(offset	_ZTV19CUtlNoEscConversion+8)
		leave
		retn
_GLOBAL__sub_I_s_StringCharConversion endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN15CUtlBinaryBlockC2Eii proc near ; DATA XREF:	.ctors:00272740o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2EE7A8, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2EE7A8+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EE7B0, eax
		mov	dword ptr ds:qword_2EE7B0+4, eax
		retn
_GLOBAL__sub_I__ZN15CUtlBinaryBlockC2Eii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN10CUtlSymbol14s_pSymbolTableE	proc near ; DATA XREF: .ctors:00272744o
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr ds:qword_2EE7C0, eax
		mov	dword ptr ds:qword_2EE7C0+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZL20g_CleanupSymbolTable ; g_CleanupSymbolTable
		mov	dword ptr [esp], offset	_ZN22CCleanupUtlSymbolTableD2Ev	; CCleanupUtlSymbolTable::~CCleanupUtlSymbolTable()
		mov	dword ptr ds:qword_2EE7C8, eax
		mov	dword ptr ds:qword_2EE7C8+4, eax
		call	__cxa_atexit
		leave
		retn
_GLOBAL__sub_I__ZN10CUtlSymbol14s_pSymbolTableE	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN15CAppSystemGroupC2EPS_ proc near ; DATA XREF: .ctors:00272748o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2EE7EC, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2EE7EC+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2EE7F4, eax
		mov	dword ptr ds:qword_2EE7F4+4, eax
		retn
_GLOBAL__sub_I__ZN15CAppSystemGroupC2EPS_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_lineartovertex proc near	; DATA XREF: .ctors:0027274Co
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2F6500, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2F6500+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2F6508, eax
		mov	dword ptr ds:qword_2F6508+4, eax
		retn
_GLOBAL__sub_I_lineartovertex endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_s_bMathlibInitialized proc near ; DATA XREF: .ctors:00272750o
		xor	eax, eax
		mov	edx, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2FA970, eax
		pop	ebp
		mov	dword ptr ds:qword_2FA970+4, eax
		mov	dword ptr ds:qword_2FA978, edx
		mov	dword ptr ds:qword_2FA978+4, edx
		mov	dword ptr ds:vec3_origin, eax
		mov	dword ptr ds:vec3_origin+4, eax
		mov	dword ptr ds:vec3_origin+8, eax
		mov	dword ptr ds:vec3_angle, eax
		mov	dword ptr ds:vec3_angle+4, eax
		mov	dword ptr ds:vec3_angle+8, eax
		mov	dword ptr ds:vec3_invalid, edx
		mov	dword ptr ds:vec3_invalid+4, edx
		mov	dword ptr ds:vec3_invalid+8, edx
		retn
_GLOBAL__sub_I_s_bMathlibInitialized endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


_GLOBAL__sub_I__Z9_SSE_Sqrtf proc near	; DATA XREF: .ctors:00272754o
		xor	eax, eax
		movss	xmm0, ds:dword_1EBD30
		push	ebp
		mov	dword ptr ds:qword_2FA9A0, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2FA9A0+4, eax
		mov	eax, 7F7FFFFFh
		movaps	xmmword	ptr ds:_ZL2f3, xmm0 ; f3
		movss	xmm0, ds:dword_1EBD40
		mov	dword ptr ds:qword_2FA9A8, eax
		mov	dword ptr ds:qword_2FA9A8+4, eax
		movaps	xmmword	ptr ds:_ZL3f05,	xmm0 ; f05
		retn
_GLOBAL__sub_I__Z9_SSE_Sqrtf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_Four_PointFives proc near ; DATA	XREF: .ctors:00272758o
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2FA9B0, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2FA9B0+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2FA9B8, eax
		mov	dword ptr ds:qword_2FA9B8+4, eax
		retn
_GLOBAL__sub_I_Four_PointFives endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z19SetupMatrixIdentityv	proc near ; DATA XREF: .ctors:0027275Co
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2FA9C0, edx
		pop	ebp
		mov	dword ptr ds:qword_2FA9C0+4, edx
		mov	dword ptr ds:qword_2FA9C8, eax
		mov	dword ptr ds:qword_2FA9C8+4, eax
		mov	dword ptr ds:byte_2FA9D0, edx
		mov	dword ptr ds:byte_2FA9D0+4, edx
		mov	dword ptr ds:byte_2FA9D0+8, edx
		mov	dword ptr ds:byte_2FA9D0+0Ch, edx
		mov	dword ptr ds:byte_2FA9E0, eax
		mov	dword ptr ds:byte_2FA9E0+4, eax
		mov	dword ptr ds:byte_2FA9E0+8, eax
		mov	dword ptr ds:byte_2FA9E0+0Ch, eax
		retn
_GLOBAL__sub_I__Z19SetupMatrixIdentityv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN18CMaterialReferenceC2EPKcS1_b proc near ; DATA XREF:	.ctors:00272760o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2FA9F0, edx
		pop	ebp
		mov	dword ptr ds:qword_2FA9F0+4, edx
		mov	dword ptr ds:qword_2FA9F8, eax
		mov	dword ptr ds:qword_2FA9F8+4, eax
		mov	dword ptr ds:byte_2FAA00, edx
		mov	dword ptr ds:byte_2FAA00+4, edx
		mov	dword ptr ds:byte_2FAA00+8, edx
		mov	dword ptr ds:byte_2FAA00+0Ch, edx
		mov	dword ptr ds:byte_2FAA10, eax
		mov	dword ptr ds:byte_2FAA10+4, eax
		mov	dword ptr ds:byte_2FAA10+8, eax
		mov	dword ptr ds:byte_2FAA10+0Ch, eax
		retn
_GLOBAL__sub_I__ZN18CMaterialReferenceC2EPKcS1_b endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__Z27InitializeStandardMaterialsv	proc near ; DATA XREF: .ctors:00272764o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2FAA38, edx
		pop	ebp
		mov	dword ptr ds:qword_2FAA38+4, edx
		mov	dword ptr ds:qword_2FAA40, eax
		mov	dword ptr ds:qword_2FAA40+4, eax
		mov	dword ptr ds:byte_2FAA48, edx
		mov	dword ptr ds:byte_2FAA48+4, edx
		mov	dword ptr ds:byte_2FAA48+8, edx
		mov	dword ptr ds:byte_2FAA48+0Ch, edx
		mov	dword ptr ds:byte_2FAA58, eax
		mov	dword ptr ds:byte_2FAA58+4, eax
		mov	dword ptr ds:byte_2FAA58+8, eax
		mov	dword ptr ds:byte_2FAA58+0Ch, eax
		retn
_GLOBAL__sub_I__Z27InitializeStandardMaterialsv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pFullFileSystem proc near ; DATA XREF:	.ctors:00272768o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2FAA98, edx
		pop	ebp
		mov	dword ptr ds:qword_2FAA98+4, edx
		mov	dword ptr ds:qword_2FAAA0, eax
		mov	dword ptr ds:qword_2FAAA0+4, eax
		mov	dword ptr ds:byte_2FAAA8, edx
		mov	dword ptr ds:byte_2FAAA8+4, edx
		mov	dword ptr ds:byte_2FAAA8+8, edx
		mov	dword ptr ds:byte_2FAAA8+0Ch, edx
		mov	dword ptr ds:byte_2FAAB8, eax
		mov	dword ptr ds:byte_2FAAB8+4, eax
		mov	dword ptr ds:byte_2FAAB8+8, eax
		mov	dword ptr ds:byte_2FAAB8+0Ch, eax
		retn
_GLOBAL__sub_I_g_pFullFileSystem endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I__ZN16CUtlStreamBufferC2Ev proc near ; DATA XREF:	.ctors:0027276Co
		xor	eax, eax
		push	ebp
		mov	dword ptr ds:qword_2FAAC8, eax
		mov	ebp, esp
		pop	ebp
		mov	dword ptr ds:qword_2FAAC8+4, eax
		mov	eax, 7F7FFFFFh
		mov	dword ptr ds:qword_2FAAD0, eax
		mov	dword ptr ds:qword_2FAAD0+4, eax
		retn
_GLOBAL__sub_I__ZN16CUtlStreamBufferC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_GLOBAL__sub_I_g_pStudioRender proc near ; DATA	XREF: .ctors:00272770o
		xor	edx, edx
		mov	eax, 7F7FFFFFh
		push	ebp
		mov	ebp, esp
		mov	dword ptr ds:qword_2FAB20, edx
		pop	ebp
		mov	dword ptr ds:qword_2FAB20+4, edx
		mov	dword ptr ds:qword_2FAB28, eax
		mov	dword ptr ds:qword_2FAB28+4, eax
		mov	dword ptr ds:byte_2FAB30, edx
		mov	dword ptr ds:byte_2FAB30+4, edx
		mov	dword ptr ds:byte_2FAB30+8, edx
		mov	dword ptr ds:byte_2FAB30+0Ch, edx
		mov	dword ptr ds:byte_2FAB40, eax
		mov	dword ptr ds:byte_2FAB40+4, eax
		mov	dword ptr ds:byte_2FAB40+8, eax
		mov	dword ptr ds:byte_2FAB40+0Ch, eax
		retn
_GLOBAL__sub_I_g_pStudioRender endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

set_fast_math	proc near		; DATA XREF: .ctors:off_272774o

var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_1FC		= byte ptr -1FCh

		lea	ecx, [esp+4]
		and	esp, 0FFFFFFF0h
		push	dword ptr [ecx-4]
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ecx
		sub	esp, 21Ch
		pushf
		pushf
		pop	eax
		mov	edx, eax
		xor	eax, offset _ZTI11IVModelInfo ;	`typeinfo for'IVModelInfo
		push	eax
		popf
		pushf
		pop	eax
		popf
		xor	eax, edx
		test	eax, offset _ZTI11IVModelInfo ;	`typeinfo for'IVModelInfo
		jz	short loc_70BE8
		xor	eax, eax
		xchg	ebx, esi
		cpuid
		xchg	ebx, esi
		test	eax, eax
		jz	short loc_70BE8
		mov	eax, 1
		xchg	ebx, esi
		cpuid
		xchg	ebx, esi
		test	edx, 2000000h
		jz	short loc_70BE8
		stmxcsr	[ebp+var_21C]
		mov	eax, [ebp+var_21C]
		mov	[ebp+var_220], eax
		mov	esi, eax
		or	esi, 8000h
		and	edx, 1000000h
		jz	short loc_70BDB
		lea	edx, [ebp+var_218]
		mov	ecx, 80h
		mov	edi, edx
		xor	eax, eax
		rep stosd
		fxsave	[ebp+var_218]
		mov	eax, [ebp+var_220]
		or	eax, 8040h
		test	[ebp+var_1FC], 40h
		cmovnz	esi, eax

loc_70BDB:				; CODE XREF: set_fast_math+6Ej
		mov	[ebp+var_21C], esi
		ldmxcsr	[ebp+var_21C]

loc_70BE8:				; CODE XREF: set_fast_math+2Cj
					; set_fast_math+38j ...
		add	esp, 21Ch
		pop	ecx
		pop	esi
		pop	edi
		pop	ebp
		lea	esp, [ecx-4]
		retn
set_fast_math	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

__do_global_dtors_aux proc near		; CODE XREF: _term_proc+10p
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		call	__i686_get_pc_thunk_bx
		add	ebx, 201C9Eh
		cmp	ds:(completed_5793 - 2728A0h)[ebx], 0
		jnz	short loc_70C60
		cmp	ds:(__cxa_finalize_ptr - 2728A0h)[ebx],	0
		jz	short loc_70C2B
		sub	esp, 0Ch
		push	(__dso_handle -	2728A0h)[ebx]
		call	___cxa_finalize
		add	esp, 10h

loc_70C2B:				; CODE XREF: __do_global_dtors_aux+20j
		lea	eax, (__DTOR_END__ - 2728A0h)[ebx]
		lea	edx, (__DTOR_LIST__ - 2728A0h)[ebx]
		sub	eax, edx
		sar	eax, 2
		lea	esi, [eax-1]
		jmp	short loc_70C4F
; ---------------------------------------------------------------------------

loc_70C41:				; CODE XREF: __do_global_dtors_aux+5Fj
		inc	edx
		mov	ds:(dtor_idx_5795 - 2728A0h)[ebx], edx
		call	ds:(__DTOR_LIST__ - 2728A0h)[ebx+edx*4]

loc_70C4F:				; CODE XREF: __do_global_dtors_aux+47j
		mov	edx, ds:(dtor_idx_5795 - 2728A0h)[ebx]
		cmp	edx, esi
		jb	short loc_70C41
		mov	ds:(completed_5793 - 2728A0h)[ebx], 1

loc_70C60:				; CODE XREF: __do_global_dtors_aux+17j
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		pop	ebp
		retn
__do_global_dtors_aux endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

frame_dummy	proc near		; CODE XREF: _init_proc:loc_60D8Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ebx
		push	eax
		call	__i686_get_pc_thunk_bx
		add	ebx, 201C2Fh
		cmp	ds:(__JCR_LIST__ - 2728A0h)[ebx], 0
		jz	short loc_70C99
		mov	eax, ds:(_Jv_RegisterClasses_ptr - 2728A0h)[ebx]
		test	eax, eax
		jz	short loc_70C99
		sub	esp, 0Ch
		lea	edx, (__JCR_LIST__ - 2728A0h)[ebx]
		push	edx
		call	eax
		add	esp, 10h

loc_70C99:				; CODE XREF: frame_dummy+17j
					; frame_dummy+21j
		mov	ebx, [ebp+var_4]
		leave
		retn
frame_dummy	endp


; =============== S U B	R O U T	I N E =======================================


__i686_get_pc_thunk_bx proc near	; CODE XREF: __do_global_dtors_aux+5p
					; frame_dummy+5p ...
		mov	ebx, [esp+0]
		retn
__i686_get_pc_thunk_bx endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetLanguageCodeID(ELanguage)
_Z17GetLanguageCodeID9ELanguage	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, (offset _ZL15s_LanguageNames+10h)
		xor	eax, eax
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		jmp	short loc_70CCB
; ---------------------------------------------------------------------------
		align 10h

loc_70CC0:				; CODE XREF: GetLanguageCodeID(ELanguage)+1Dj
		add	eax, 1
		add	edx, 18h
		cmp	eax, 19h
		jz	short loc_70CE0

loc_70CCB:				; CODE XREF: GetLanguageCodeID(ELanguage)+Dj
		cmp	[edx], ecx
		jnz	short loc_70CC0
		lea	eax, [eax+eax*2]
		pop	ebp
		mov	eax, ds:(_ZL15s_LanguageNames+14h)[eax*8]
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70CE0:				; CODE XREF: GetLanguageCodeID(ELanguage)+19j
		mov	ax, 409h
		pop	ebp
		retn
_Z17GetLanguageCodeID9ELanguage	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; PchLanguageToELanguage(char  const*, ELanguage)
_Z22PchLanguageToELanguagePKc9ELanguage	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		test	edi, edi
		jz	short loc_70D3A
		mov	esi, (offset _ZL15s_LanguageNames+4)
		xor	ebx, ebx
		jmp	short loc_70D1B
; ---------------------------------------------------------------------------
		align 10h

loc_70D10:				; CODE XREF: PchLanguageToELanguage(char  const*,ELanguage)+3Bj
		add	ebx, 1
		add	esi, 18h
		cmp	ebx, 19h
		jz	short loc_70D3A

loc_70D1B:				; CODE XREF: PchLanguageToELanguage(char  const*,ELanguage)+17j
		mov	eax, [esi]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_70D10
		lea	eax, [ebx+ebx*2]
		mov	eax, ds:(_ZL15s_LanguageNames+10h)[eax*8]
		mov	[ebp+arg_4], eax

loc_70D3A:				; CODE XREF: PchLanguageToELanguage(char  const*,ELanguage)+Ej
					; PchLanguageToELanguage(char  const*,ELanguage)+29j
		mov	eax, [ebp+arg_4]
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z22PchLanguageToELanguagePKc9ELanguage	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl PchLanguageICUCodeToELanguage(char *src, int)
_Z29PchLanguageICUCodeToELanguagePKc9ELanguage proc near

dest		= byte ptr -1Eh
var_1C		= byte ptr -1Ch
src		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+src]
		test	ebx, ebx
		jz	short loc_70DC1
		mov	[esp], ebx	; s
		call	strlen
		mov	dword ptr [esp+8], 6 ; n
		mov	edi, eax
		mov	[esp+4], ebx	; src
		lea	eax, [ebp+dest]
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		cmp	edi, 2
		jg	short loc_70DD0

loc_70D86:				; CODE XREF: PchLanguageICUCodeToELanguage(char	 const*,ELanguage)+84j
					; PchLanguageICUCodeToELanguage(char  const*,ELanguage)+8Aj
		mov	esi, (offset _ZL15s_LanguageNames+0Ch)
		xor	ebx, ebx
		jmp	short loc_70D9B
; ---------------------------------------------------------------------------
		align 10h

loc_70D90:				; CODE XREF: PchLanguageICUCodeToELanguage(char	 const*,ELanguage)+62j
		add	ebx, 1
		add	esi, 18h
		cmp	ebx, 19h
		jz	short loc_70DC1

loc_70D9B:				; CODE XREF: PchLanguageICUCodeToELanguage(char	 const*,ELanguage)+3Dj
		mov	eax, [esi]
		mov	[esp+8], edi
		mov	[esp+4], eax
		lea	eax, [ebp+dest]
		mov	[esp], eax
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jnz	short loc_70D90
		lea	eax, [ebx+ebx*2]
		mov	eax, ds:(_ZL15s_LanguageNames+10h)[eax*8]
		mov	[ebp+arg_4], eax

loc_70DC1:				; CODE XREF: PchLanguageICUCodeToELanguage(char	 const*,ELanguage)+Ej
					; PchLanguageICUCodeToELanguage(char  const*,ELanguage)+49j
		mov	eax, [ebp+arg_4]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70DD0:				; CODE XREF: PchLanguageICUCodeToELanguage(char	 const*,ELanguage)+34j
		cmp	[ebp+var_1C], 2Dh
		jnz	short loc_70D86
		mov	[ebp+var_1C], 5Fh
		jmp	short loc_70D86
_Z29PchLanguageICUCodeToELanguagePKc9ELanguage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetLanguageShortName(ELanguage)
_Z20GetLanguageShortName9ELanguage proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, offset aNone ; "none"
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	ecx, [edx+edx*2+3]
		shl	ecx, 3
		cmp	ds:(_ZL15s_LanguageNames+10h)[ecx], edx
		jz	short loc_70E00
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70E00:				; CODE XREF: GetLanguageShortName(ELanguage)+18j
		mov	eax, ds:(_ZL15s_LanguageNames+4)[ecx]
		pop	ebp
		retn
_Z20GetLanguageShortName9ELanguage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetLanguageICUName(ELanguage)
_Z18GetLanguageICUName9ELanguage proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, offset aNone ; "none"
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	ecx, [edx+edx*2+3]
		shl	ecx, 3
		cmp	ds:(_ZL15s_LanguageNames+10h)[ecx], edx
		jz	short loc_70E30
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70E30:				; CODE XREF: GetLanguageICUName(ELanguage)+18j
		mov	eax, ds:(_ZL15s_LanguageNames+0Ch)[ecx]
		pop	ebp
		retn
_Z18GetLanguageICUName9ELanguage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetLangugeCLocaleName(ELanguage)
_Z21GetLangugeCLocaleName9ELanguage proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, (offset asc_20E578+4)
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_70E6C
		lea	eax, [edx-6]
		cmp	eax, 1
		jbe	short loc_70E70
		lea	ecx, [edx+edx*2+3]
		mov	eax, offset aNone ; "none"
		shl	ecx, 3
		cmp	edx, ds:(_ZL15s_LanguageNames+10h)[ecx]
		jz	short loc_70E80

loc_70E6C:				; CODE XREF: GetLangugeCLocaleName(ELanguage)+Ej
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70E70:				; CODE XREF: GetLangugeCLocaleName(ELanguage)+16j
		mov	eax, offset aZh_cn ; "zh_CN"
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70E80:				; CODE XREF: GetLangugeCLocaleName(ELanguage)+2Aj
		mov	eax, ds:(_ZL15s_LanguageNames+0Ch)[ecx]
		pop	ebp
		retn
_Z21GetLangugeCLocaleName9ELanguage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetLanguageVGUILocalization(ELanguage)
_Z27GetLanguageVGUILocalization9ELanguage proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, offset aNone_0 ; "None"
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	ecx, [edx+edx*2+3]
		shl	ecx, 3
		cmp	ds:(_ZL15s_LanguageNames+10h)[ecx], edx
		jz	short loc_70EB0
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70EB0:				; CODE XREF: GetLanguageVGUILocalization(ELanguage)+18j
		mov	eax, ds:(_ZL15s_LanguageNames+8)[ecx]
		pop	ebp
		retn
_Z27GetLanguageVGUILocalization9ELanguage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::WriteToBuffer(bf_write &)
_ZN16CLC_ListenEvents13WriteToBufferER8bf_write	proc near
					; DATA XREF: .rodata:`vtable for'CLC_ListenEventso

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_70FB0
		mov	[ebx+0Ch], ecx
		mov	edx, ecx
		mov	byte ptr [ebx+10h], 1

loc_70EF3:				; CODE XREF: CLC_ListenEvents::WriteToBuffer(bf_write &)+157j
		add	esi, 10h
		xor	eax, eax
		mov	[ebp+var_30], esi
		jmp	short loc_70F19
; ---------------------------------------------------------------------------
		align 10h

loc_70F00:				; CODE XREF: CLC_ListenEvents::WriteToBuffer(bf_write &)+66j
		add	eax, 1
		mov	[ebx+0Ch], ecx
		cmp	eax, 10h
		mov	byte ptr [ebx+10h], 1
		jz	loc_70F9A

loc_70F13:				; CODE XREF: CLC_ListenEvents::WriteToBuffer(bf_write &)+D4j
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]

loc_70F19:				; CODE XREF: CLC_ListenEvents::WriteToBuffer(bf_write &)+3Bj
		mov	edi, [ebp+var_30]
		mov	esi, [edi+eax*4]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 1Fh
		jle	short loc_70F00
		mov	ecx, edx
		mov	[ebp+var_20], 0FFFFFFFFh
		add	eax, 1
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+20h]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	esi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], esi
		mov	esi, 7FFFFFFFh
		mov	[ebp+var_2C], edi
		shr	esi, cl
		mov	ecx, esi
		mov	[ebp+var_28], esi
		mov	esi, [ebp+var_2C]
		and	ecx, 1
		lea	edi, [edx+ecx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		xor	esi, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [edi]
		and	esi, [ebp+var_20]
		xor	ecx, [ebp+var_24]
		xor	esi, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		xor	ecx, [edi]
		cmp	eax, 10h
		mov	[edi], ecx
		mov	[edx], esi
		jnz	loc_70F13

loc_70F9A:				; CODE XREF: CLC_ListenEvents::WriteToBuffer(bf_write &)+4Dj
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_70FB0:				; CODE XREF: CLC_ListenEvents::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		mov	edi, [ebp+var_24]
		sub	ecx, [ebp+var_1C]
		xor	edi, [ebp+var_2C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	eax, [edx+eax*4]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		and	edi, [ebp+var_20]
		xor	ecx, [eax]
		xor	edi, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		xor	ecx, [eax]
		mov	[eax], ecx
		mov	[edx], edi
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		jmp	loc_70EF3
_ZN16CLC_ListenEvents13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::WriteToBuffer(bf_write &)
_ZN11SVC_SetView13WriteToBufferER8bf_write proc	near
					; CODE XREF: CHLTVDemoRecorder::WriteSignonData(void)+1B7p
					; CReplayDemoRecorder::WriteSignonData(void)+196p
					; DATA XREF: ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_71060

loc_71046:				; CODE XREF: SVC_SetView::WriteToBuffer(bf_write &)+B7j
		mov	byte ptr [ebx+10h], 1
		mov	[ebx+0Ch], ecx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_71060:				; CODE XREF: SVC_SetView::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	esi, ecx
		sub	esi, eax
		cmp	esi, 0Ah
		jle	loc_71046
		mov	ecx, eax
		mov	esi, 3FFh
		mov	[ebp+var_20], 7FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	esi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, esi
		and	edx, 1
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_28]
		shl	[ebp+var_20], cl
		mov	ecx, [edi]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, esi
		xor	ecx, [edi]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11SVC_SetView13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::WriteToBuffer(bf_write &)
_ZN12SVC_Prefetch13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_Prefetcho

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_71190

loc_71176:				; CODE XREF: SVC_Prefetch::WriteToBuffer(bf_write &)+B8j
		mov	byte ptr [ebx+10h], 1
		mov	[ebx+0Ch], ecx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_71190:				; CODE XREF: SVC_Prefetch::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		movzx	esi, word ptr [esi+12h]
		mov	edx, ecx
		sub	edx, eax
		cmp	edx, 0Ch
		jle	loc_71176
		lea	edx, [eax+0Dh]
		mov	ecx, eax
		movzx	esi, si
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		rol	esi, cl
		sar	eax, 5
		mov	ecx, 1Fh
		mov	edi, 0FFFh
		mov	[ebp+var_20], 1FFFh
		sub	ecx, [ebp+var_1C]
		lea	eax, [edx+eax*4]
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, edi
		shl	[ebp+var_20], cl
		and	edx, 1
		lea	edx, [eax+edx*4]
		mov	[ebp+var_28], edx
		mov	edx, [edx]
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_24]
		xor	edx, esi
		xor	esi, [ebp+var_30]
		and	edx, [ebp+var_20]
		and	esi, edi
		xor	esi, [ebp+var_30]
		xor	edx, [ebp+var_24]
		mov	[ecx], esi
		mov	[eax], edx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN12SVC_Prefetch13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::WriteToBuffer(bf_write &)
_ZN12MM_Heartbeat13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'MM_Heartbeato

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	esi, ecx
		sub	esi, edx
		cmp	esi, 5
		jle	short loc_71330
		mov	edi, edx
		mov	esi, [ebx]
		mov	[ebp+var_1C], 3Fh
		lea	ecx, [edx+6]
		and	edi, 1Fh
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, edi
		rol	eax, cl
		mov	[ebp+var_20], eax
		lea	edx, [esi+edx*4]
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, edi
		shr	eax, cl
		mov	ecx, edi
		shl	[ebp+var_1C], cl
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		and	eax, 1
		lea	esi, [edx+eax*4]
		mov	eax, [ebp+var_20]
		xor	ecx, [esi]
		xor	eax, [ebp+var_28]
		and	ecx, [ebp+var_24]
		and	eax, [ebp+var_1C]
		xor	ecx, [esi]
		xor	eax, [ebp+var_28]
		mov	[esi], ecx
		mov	[edx], eax

loc_71318:				; CODE XREF: MM_Heartbeat::WriteToBuffer(bf_write &)+A7j
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_71330:				; CODE XREF: MM_Heartbeat::WriteToBuffer(bf_write &)+2Aj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_71318
_ZN12MM_Heartbeat13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::ReadFromBuffer(bf_read &)
_ZN12MM_Heartbeat14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'MM_Heartbeato
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12MM_Heartbeat14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::WriteToBuffer(bf_write &)
_ZN19MM_RegisterResponse13WriteToBufferER8bf_write proc	near
					; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	esi, ecx
		sub	esi, edx
		cmp	esi, 5
		jle	short loc_713F0
		lea	ecx, [edx+6]
		mov	edi, edx
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		and	edi, 1Fh
		mov	[ebp+var_1C], 3Fh
		lea	edx, [ecx+edx*4]
		mov	ecx, edi
		rol	eax, cl
		mov	[ebp+var_20], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, edi
		shr	eax, cl
		mov	ecx, edi
		shl	[ebp+var_1C], cl
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		and	eax, 1
		lea	esi, [edx+eax*4]
		mov	eax, [ebp+var_20]
		xor	ecx, [esi]
		xor	eax, [ebp+var_28]
		and	ecx, [ebp+var_24]
		and	eax, [ebp+var_1C]
		xor	ecx, [esi]
		xor	eax, [ebp+var_28]
		mov	[esi], ecx
		mov	[edx], eax

loc_713D8:				; CODE XREF: MM_RegisterResponse::WriteToBuffer(bf_write &)+A7j
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_713F0:				; CODE XREF: MM_RegisterResponse::WriteToBuffer(bf_write &)+2Aj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_713D8
_ZN19MM_RegisterResponse13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::ReadFromBuffer(bf_read &)
_ZN19MM_RegisterResponse14ReadFromBufferER7bf_read proc	near
					; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN19MM_RegisterResponse14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::ToString(void)const
_ZNK16SVC_GetCvarValue8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	edx, [eax]
		mov	esi, [eax+10h]
		mov	ebx, [eax+14h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSCvarSCookieD ; "%s:	cvar: %s, cookie: %d"
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK16SVC_GetCvarValue8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::ToString(void)const
_ZNK10MM_Migrate8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'MM_Migrateo
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+8], offset aMigrateMessage ; "Migrate Message"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZL6s_text ; s_text
		leave
		retn
_ZNK10MM_Migrate8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::ToString(void)const
_ZNK15MM_JoinResponse8ToStringEv proc near ; DATA XREF:	.rodata:`vtable	for'MM_JoinResponseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+24h]
		mov	[esp+1Ch], edx
		mov	ebx, [eax+20h]
		mov	ecx, [eax+1Ch]
		mov	[esp+18h], ebx
		mov	[esp+14h], ecx
		mov	edx, [eax+18h]
		mov	eax, [eax+14h]
		mov	dword ptr [esp+8], offset aIdLluNonceLluF ; "ID: %llu, Nonce: %llu, Flags: %u"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		mov	[esp+10h], edx
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK15MM_JoinResponse8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::ToString(void)const
_ZNK13MM_Checkpoint8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'MM_Checkpointo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax+10h]
		mov	dword ptr [esp+8], offset aCheckpointD ; "Checkpoint: %d"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZL6s_text ; s_text
		leave
		retn
_ZNK13MM_Checkpoint8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::ToString(void)const
_ZNK11MM_Mutelist8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'MM_Mutelisto
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+8], offset aMutelist ; "Mutelist"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZL6s_text ; s_text
		leave
		retn
_ZNK11MM_Mutelist8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::ToString(void)const
_ZNK19MM_RegisterResponse8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+8], offset aRegisterRespon ; "Register Response"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZL6s_text ; s_text
		leave
		retn
_ZNK19MM_RegisterResponse8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::ToString(void)const
_ZNK13MM_ClientInfo8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'MM_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		movsx	edx, byte ptr [eax+26h]
		mov	[esp+14h], edx
		mov	edx, [eax+18h]
		mov	eax, [eax+14h]
		mov	dword ptr [esp+8], offset aClientInfoIdLl ; "Client Info: ID: %llu, Players: %d"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		mov	[esp+10h], edx
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZL6s_text ; s_text
		leave
		retn
_ZNK13MM_ClientInfo8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::ToString(void)const
_ZNK12MM_Heartbeat8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'MM_Heartbeato
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+8], offset aHeartbeat_0 ; "Heartbeat"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZL6s_text ; s_text
		leave
		retn
_ZNK12MM_Heartbeat8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::ToString(void)const
_ZNK17SVC_GameEventList8ToStringEv proc	near
					; DATA XREF: .rodata:`vtable for'SVC_GameEventListo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [eax+14h]
		mov	edx, [eax]
		mov	esi, [eax+10h]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSNumberIBytesI ; "%s: number	%i, bytes %i"
		mov	[esp+14h], ebx
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK17SVC_GameEventList8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::ToString(void)const
_ZNK18SVC_PacketEntities8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, (offset asc_20E578+4)
		mov	ebp, esp
		sub	esp, 58h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, offset aBlUpdate ;	" BL update,"
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	esi, [eax+24h]
		mov	ecx, [eax+20h]
		mov	edi, [eax+10h]
		add	esi, 7
		sar	esi, 3
		cmp	byte ptr [eax+19h], 0
		mov	[ebp+var_1C], ecx
		mov	ecx, [eax]
		cmovz	ebx, edx
		mov	edx, [eax+14h]
		mov	[esp], eax
		mov	[ebp+var_20], edx
		call	dword ptr [ecx+28h]
		mov	edx, [ebp+var_20]
		mov	[esp+20h], esi
		mov	[esp+1Ch], ebx
		mov	[esp+14h], edi
		mov	[esp+0Ch], eax	; arg
		mov	[esp+18h], edx
		mov	edx, [ebp+var_1C]
		mov	dword ptr [esp+8], offset aSDeltaIMaxICha ; "%s: delta %i, max %i, changed %i,%s byt"...
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		mov	[esp+10h], edx
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK18SVC_PacketEntities8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::ToString(void)const
_ZNK17SVC_EntityMessage8ToStringEv proc	near
					; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	ebx, [eax+18h]
		mov	edx, [eax]
		mov	edi, [eax+14h]
		mov	esi, [eax+10h]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSEntityIClassI ; "%s: entity	%i, class %i, bytes %i"
		mov	[esp+18h], ebx
		mov	[esp+14h], edi
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK17SVC_EntityMessage8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::ToString(void)const
_ZNK13SVC_SendTable8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_SendTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, offset aNo	; "no"
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, (offset aR_eyes+3)
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+14h]
		add	esi, 7
		sar	esi, 3
		cmp	byte ptr [eax+10h], 0
		cmovz	ebx, edx
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSNeedsDecoderS ; "%s: needs Decoder %s,bytes	%i"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 20h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZNK13SVC_SendTable8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::ToString(void)const
_ZNK13SVC_GameEvent8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_GameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax+10h]
		mov	edx, [eax]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSBytesI ; "%s: bytes	%i"
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK13SVC_GameEvent8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::ToString(void)const
_ZNK13SVC_ClassInfo8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_ClassInfoo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, offset aFullUpdate	; "full	update"
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	ebx, offset aUseClientClass ; "use client classes"
		mov	[ebp+var_4], esi
		cmp	byte ptr [eax+10h], 0
		mov	esi, [eax+28h]
		cmovz	ebx, edx
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	[esp+14h], ebx
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSNumIS ; "%s: num %i, %s"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK13SVC_ClassInfo8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::ToString(void)const
_ZNK16SVC_TempEntities8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [eax+14h]
		mov	edx, [eax]
		mov	esi, [eax+10h]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSNumberIBytesI ; "%s: number	%i, bytes %i"
		mov	[esp+14h], ebx
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK16SVC_TempEntities8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::ToString(void)const
_ZNK12SVC_Prefetch8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Prefetcho

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	edx, [eax]
		movzx	esi, word ptr [eax+12h]
		movzx	ebx, word ptr [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSTypeIIndexI	; "%s: type %i index %i"
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK12SVC_Prefetch8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::ToString(void)const
_ZNK10SVC_Sounds8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Soundso

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, (offset asc_20E578+4)
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, offset aReliable ;	" reliable,"
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	esi, [eax+18h]
		mov	edi, [eax+14h]
		add	esi, 7
		sar	esi, 3
		cmp	byte ptr [eax+10h], 0
		cmovz	ebx, edx
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	[esp+18h], esi
		mov	[esp+14h], ebx
		mov	[esp+10h], edi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSNumberISBytes ; "%s: number	%i,%s bytes %i"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK10SVC_Sounds8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::ToString(void)const
_ZNK21SVC_CreateStringTable8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	ecx, [eax+10h]
		mov	edx, [eax+24h]
		mov	edi, [eax+20h]
		mov	esi, [eax+18h]
		mov	[ebp+var_1C], ecx
		mov	ecx, [eax]
		mov	ebx, [eax+2Ch]
		mov	[ebp+var_20], edx
		mov	[esp], eax
		call	dword ptr [ecx+28h]
		mov	edx, [ebp+var_20]
		mov	[esp+1Ch], edi
		add	ebx, 7
		mov	[esp+14h], esi
		sar	ebx, 3
		mov	[esp+0Ch], eax	; arg
		mov	[esp+18h], ebx
		mov	[esp+20h], edx
		mov	edx, [ebp+var_1C]
		mov	dword ptr [esp+8], offset aSTableSEntries ; "%s: table %s, entries %i, bytes %i	user"...
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		mov	[esp+10h], edx
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK21SVC_CreateStringTable8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::ToString(void)const
_ZNK21SVC_UpdateStringTable8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	ebx, [eax+18h]
		mov	edx, [eax]
		mov	edi, [eax+14h]
		mov	esi, [eax+10h]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSTableIChanged ; "%s: table %i, changed %i, bytes %i"
		mov	[esp+18h], ebx
		mov	[esp+14h], edi
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK21SVC_UpdateStringTable8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::ToString(void)const
_ZNK12SVC_SetPause8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SetPauseo

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, offset aUnpaused ;	"unpaused"
		mov	ebp, esp
		push	ebx
		mov	ebx, (offset aUnpaused+2)
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+10h], 0
		cmovz	ebx, edx
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSS ;	"%s: %s"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK12SVC_SetPause8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::ToString(void)const
_ZNK15SVC_UserMessage8ToStringEv proc near ; DATA XREF:	.rodata:`vtable	for'SVC_UserMessageo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [eax+14h]
		mov	edx, [eax]
		mov	esi, [eax+10h]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSTypeIBytesI	; "%s: type %i,	bytes %i"
		mov	[esp+14h], ebx
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK15SVC_UserMessage8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::ToString(void)const
_ZNK8NET_Tick8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'NET_Ticko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSTickI ; "%s: tick %i"
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK8NET_Tick8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::ToString(void)const
_ZNK13SVC_VoiceData8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_VoiceDatao

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [eax+18h]
		mov	edx, [eax]
		mov	esi, [eax+10h]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSClientIBytesI ; "%s: client	%i, bytes %i"
		mov	[esp+14h], ebx
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK13SVC_VoiceData8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::ToString(void)const
_ZNK13SVC_VoiceInit8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_VoiceInito

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	edx, [eax]
		mov	esi, [eax+14h]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSCodecSQualitt ; "%s: codec \"%s\", qualitty	%i"
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK13SVC_VoiceInit8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::ToString(void)const
_ZNK11SVC_SetView8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SetViewo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSViewEntityI	; "%s: view entity %i"
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK11SVC_SetView8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::ToString(void)const
_ZNK12SVC_BSPDecal8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, byte ptr [eax+28h]
		mov	ecx, [eax]
		mov	edi, [eax+24h]
		mov	esi, [eax+20h]
		mov	ebx, [eax+1Ch]
		mov	[ebp+var_1C], edx
		mov	[esp], eax
		call	dword ptr [ecx+28h]
		mov	edx, [ebp+var_1C]
		mov	[esp+18h], edi
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	[esp+1Ch], edx
		mov	dword ptr [esp+8], offset aSTexIEntIModIL ; "%s: tex %i, ent %i, mod %i	lowpriority "...
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK12SVC_BSPDecal8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::ToString(void)const
_ZNK15NET_SignonState8ToStringEv proc near ; DATA XREF:	.rodata:`vtable	for'NET_SignonStateo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	edx, [eax]
		mov	esi, [eax+14h]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSStateICountI ; "%s:	state %i, count	%i"
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK15NET_SignonState8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::ToString(void)const
_ZNK14SVC_ServerInfo8ToStringEv	proc near ; DATA XREF: .rodata:`vtable for'SVC_ServerInfoo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	edx, [eax]
		mov	edi, [eax+34h]
		mov	esi, [eax+48h]
		mov	ebx, [eax+44h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSGameSMapSMaxI ; "%s: game \"%s\", map \"%s\", max %i"
		mov	[esp+18h], edi
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK14SVC_ServerInfo8ToStringEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::ToString(void)const
_ZNK13NET_StringCmd8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'NET_StringCmdo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSS_0	; "%s: \"%s\""
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK13NET_StringCmd8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::ToString(void)const
_ZNK9SVC_Print8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Printo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSS_0	; "%s: \"%s\""
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK9SVC_Print8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::ToString(void)const
_ZNK14CLC_SaveReplay8ToStringEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_SaveReplayo

var_18		= qword	ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	eax, [ebx]
		mov	esi, [ebx+10h]
		fld	dword ptr [ebx+118h]
		mov	[esp], ebx
		add	ebx, 14h
		fstp	[ebp+var_18]
		call	dword ptr [eax+28h]
		mov	[esp+10h], ebx
		fld	[ebp+var_18]
		mov	[esp+14h], esi
		fstp	qword ptr [esp+18h]
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSFilenameSStar ; "%s: filename: %s, start byte: %i, post "...
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK14CLC_SaveReplay8ToStringEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::ToString(void)const
_ZNK16CLC_FileMD5Check8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		lea	edx, [ebx+114h]
		add	ebx, 10h
		mov	[esp+10h], ebx
		mov	[esp+14h], edx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSPathSFileS ; "%s: path: %s,	file: %s"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK16CLC_FileMD5Check8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::ToString(void)const
_ZNK16CLC_FileCRCCheck8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		lea	edx, [ebx+114h]
		add	ebx, 10h
		mov	[esp+10h], ebx
		mov	[esp+14h], edx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSPathSFileS ; "%s: path: %s,	file: %s"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK16CLC_FileCRCCheck8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::ToString(void)const
_ZNK20CLC_RespondCvarValue8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	edx, [eax]
		mov	edi, [eax+10h]
		mov	esi, [eax+18h]
		mov	ebx, [eax+1Ch]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSStatusDValueS ; "%s: status: %d, value: %s,	cookie:	%d"
		mov	[esp+18h], edi
		mov	[esp+14h], esi
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK20CLC_RespondCvarValue8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::ToString(void)const
_ZNK15CLC_BaselineAck8ToStringEv proc near ; DATA XREF:	.rodata:`vtable	for'CLC_BaselineAcko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSTickI ; "%s: tick %i"
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK15CLC_BaselineAck8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::ToString(void)const
_ZNK14CLC_ClientInfo8ToStringEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ebx, [eax+10h]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aSSendtablecrcI ; "%s: SendTableCRC %i"
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK14CLC_ClientInfo8ToStringEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::ToString(void)const
_ZNK8CLC_Move8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'CLC_Moveo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	ebx, [eax+18h]
		mov	edx, [eax]
		mov	edi, [eax+10h]
		mov	esi, [eax+14h]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSBackupINewIBy ; "%s: backup	%i, new	%i, bytes %i"
		mov	[esp+18h], ebx
		mov	[esp+14h], edi
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK8CLC_Move8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::ToString(void)const
_ZNK13CLC_VoiceData8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'CLC_VoiceDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax+10h]
		mov	edx, [eax]
		mov	[esp], eax
		add	ebx, 7
		call	dword ptr [edx+28h]
		sar	ebx, 3
		mov	dword ptr [esp+8], offset aSIBytes ; "%s: %i bytes"
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK13CLC_VoiceData8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::ToString(void)const
_ZNK18SVC_CrosshairAngle8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo

var_38		= qword	ptr -38h
var_28		= qword	ptr -28h
var_18		= qword	ptr -18h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	eax, [ebp+arg_0]
		fld	dword ptr [eax+18h]
		fld	dword ptr [eax+14h]
		mov	edx, [eax]
		fld	dword ptr [eax+10h]
		mov	[esp], eax
		fstp	[ebp+var_38]
		fstp	[ebp+var_28]
		fstp	[ebp+var_18]
		call	dword ptr [edx+28h]
		mov	dword ptr [esp+8], offset aS_1f_1f_1f ;	"%s: (%.1f %.1f	%.1f)"
		fld	[ebp+var_18]
		mov	[esp+0Ch], eax	; arg
		fstp	qword ptr [esp+20h]
		fld	[ebp+var_28]
		mov	dword ptr [esp+4], 400h	; maxlen
		fstp	qword ptr [esp+18h]
		fld	[ebp+var_38]
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		fstp	qword ptr [esp+10h]
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZL6s_text ; s_text
		leave
		retn
_ZNK18SVC_CrosshairAngle8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::ToString(void)const
_ZNK12SVC_FixAngle8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_FixAngleo

var_38		= qword	ptr -38h
var_28		= qword	ptr -28h
var_18		= qword	ptr -18h
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, offset aAbsolute ;	"absolute"
		mov	ebp, esp
		push	ebx
		mov	ebx, offset aRelative ;	"relative"
		sub	esp, 64h
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+10h], 0
		fld	dword ptr [eax+1Ch]
		fld	dword ptr [eax+18h]
		fld	dword ptr [eax+14h]
		cmovz	ebx, edx
		mov	edx, [eax]
		fstp	[ebp+var_38]
		fstp	[ebp+var_28]
		fstp	[ebp+var_18]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	[esp+10h], ebx
		fld	[ebp+var_18]
		mov	[esp+0Ch], eax	; arg
		fstp	qword ptr [esp+24h]
		fld	[ebp+var_28]
		mov	dword ptr [esp+8], offset aSS_1f_1f_1f ; "%s: %s %.1f %.1f %.1f	"
		fstp	qword ptr [esp+1Ch]
		fld	[ebp+var_38]
		mov	dword ptr [esp+4], 400h	; maxlen
		fstp	qword ptr [esp+14h]
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 64h
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	ebp
		retn
_ZNK12SVC_FixAngle8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::ToString(void)const
_ZNK16CLC_ListenEvents8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_ListenEventso

arg_0		= dword	ptr  8

		push	ebp
		xor	ecx, ecx
		mov	edx, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		lea	esi, [esi+0]

loc_722C8:				; CODE XREF: CLC_ListenEvents::ToString(void)+34j
		mov	edi, ecx
		mov	esi, edx
		shl	esi, cl
		shr	edi, 5
		and	esi, [eax+edi*4+10h]
		cmp	esi, 1
		sbb	ebx, 0FFFFFFFFh
		add	ecx, 1
		cmp	ecx, 200h
		jnz	short loc_722C8
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSRegisteredEve ; "%s: registered events %i"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 2Ch
		mov	eax, offset _ZL6s_text ; s_text
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZNK16CLC_ListenEvents8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::ToString(void)const
_ZNK13NET_SetConVar8ToStringEv proc near ; DATA	XREF: .rodata:`vtable for'NET_SetConVaro

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [eax+10h]
		mov	edx, [eax]
		mov	esi, [eax+1Ch]
		mov	[esp], eax
		call	dword ptr [edx+28h]
		lea	edx, [ebx+104h]
		mov	[esp+14h], ebx
		mov	[esp+10h], esi
		mov	[esp+18h], edx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSICvarsSS ; "%s: %i cvars, \"%s\"=\"%s\""
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK13NET_SetConVar8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::WriteToBuffer(bf_write &)
_ZN16SVC_GetCvarValue13WriteToBufferER8bf_write	proc near
					; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_72450
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_72414:				; CODE XREF: SVC_GetCvarValue::WriteToBuffer(bf_write &)+D7j
		mov	dword ptr [esp+8], 20h
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write13WriteSBitLongEii ; bf_write::WriteSBitLong(int,int)
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_72450:				; CODE XREF: SVC_GetCvarValue::WriteToBuffer(bf_write &)+2Aj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_72414
_ZN16SVC_GetCvarValue13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::WriteToBuffer(bf_write	&)
_ZN13NET_StringCmd13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'NET_StringCmdo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_724C0
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_72493:				; CODE XREF: NET_StringCmd::WriteToBuffer(bf_write &)+C4j
		mov	eax, [esi+10h]
		mov	edx, offset byte_1E9EFF
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		test	eax, eax
		cmovz	eax, edx
		mov	[ebp+arg_4], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
; ---------------------------------------------------------------------------
		align 10h

loc_724C0:				; CODE XREF: NET_StringCmd::WriteToBuffer(bf_write &)+2Aj
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_72493
_ZN13NET_StringCmd13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::WriteToBuffer(bf_write &)
_ZN9SVC_Print13WriteToBufferER8bf_write	proc near
					; CODE XREF: CBaseClient::SendServerInfo(void)+13Ep
					; DATA XREF: .rodata:`vtable for'SVC_Printo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_72590
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_72563:				; CODE XREF: SVC_Print::WriteToBuffer(bf_write &)+C4j
		mov	eax, [esi+10h]
		mov	edx, offset aSvc_printNull ; " svc_print NULL"
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		test	eax, eax
		cmovz	eax, edx
		mov	[ebp+arg_4], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
; ---------------------------------------------------------------------------
		align 10h

loc_72590:				; CODE XREF: SVC_Print::WriteToBuffer(bf_write &)+2Aj
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_72563
_ZN9SVC_Print13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::WriteToBuffer(bf_write &)
_ZN20CLC_RespondCvarValue13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_726F0
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_7268E:				; CODE XREF: CLC_RespondCvarValue::WriteToBuffer(bf_write &)+F7j
		mov	dword ptr [esp+8], 20h
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write13WriteSBitLongEii ; bf_write::WriteSBitLong(int,int)
		mov	dword ptr [esp+8], 4
		mov	eax, [esi+1Ch]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write13WriteSBitLongEii ; bf_write::WriteSBitLong(int,int)
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [esi+18h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_726F0:				; CODE XREF: CLC_RespondCvarValue::WriteToBuffer(bf_write &)+24j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_7268E
_ZN20CLC_RespondCvarValue13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::ReadFromBuffer(bf_read &)
_ZN10MM_Migrate14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'MM_Migrateo

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_727C0
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		or	edx, eax

loc_72753:				; CODE XREF: MM_Migrate::ReadFromBuffer(bf_read	&)+CDj
		mov	[esi+10h], dl
		mov	[esp], ebx
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		mov	[esi+18h], edx
		mov	[esi+14h], eax
		lea	eax, [esi+1Ch]
		mov	[esp], ebx
		mov	dword ptr [esp+8], 8
		mov	[esp+4], eax
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		lea	eax, [esi+24h]
		add	esi, 28h
		mov	[esp], ebx
		mov	dword ptr [esp+8], 4
		mov	[esp+4], eax
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	dword ptr [esp+8], 10h
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 2Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_727C0:				; CODE XREF: MM_Migrate::ReadFromBuffer(bf_read	&)+1Cj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	short loc_72753
_ZN10MM_Migrate14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::ReadFromBuffer(bf_read	&)
_ZN13MM_Checkpoint14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'MM_Checkpointo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	short loc_72840
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	esi, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax

loc_7281C:				; CODE XREF: MM_Checkpoint::ReadFromBuffer(bf_read &)+7Dj
		mov	ecx, [ebp+arg_0]
		mov	[ecx+10h], dl
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_72840:				; CODE XREF: MM_Checkpoint::ReadFromBuffer(bf_read &)+1Fj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	short loc_7281C
_ZN13MM_Checkpoint14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::ReadFromBuffer(bf_read	&)
_ZN13MM_ClientInfo14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'MM_ClientInfoo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esp+8], 4
		mov	ebx, [ebp+arg_4]
		lea	eax, [esi+10h]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		mov	[esp], ebx
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		mov	[esi+14h], eax
		mov	[esi+18h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_72A58
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		or	edx, eax

loc_728C8:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+215j
		mov	[esi+26h], dl
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_72AA0
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		mov	[ebp+var_1C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_1C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		or	edx, eax
		test	dl, dl
		setnz	al

loc_72914:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+25Dj
		cmp	byte ptr [esi+26h], 0
		mov	[esi+25h], al
		jle	loc_72A45
		lea	eax, [esi+24h]
		mov	edi, esi
		mov	[ebp+var_1C], 0
		mov	[ebp+var_24], eax

loc_72930:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+1EFj
		mov	[esp], ebx
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		mov	ecx, [ebp+var_1C]
		mov	[esi+ecx*8+1Ch], eax
		mov	eax, [ebp+var_24]
		mov	[esi+ecx*8+20h], edx
		mov	dword ptr [esp+8], 1
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_72A88
		lea	edx, [eax+20h]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	[ebp+var_20], ecx
		lea	edx, [eax+1Fh]
		mov	ecx, 20h
		sub	ecx, [ebp+var_20]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shr	eax, cl
		or	edx, eax

loc_729A7:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+245j
		mov	[edi+28h], dl
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_72A70
		lea	edx, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	[ebp+var_20], ecx
		lea	edx, [eax+7]
		mov	ecx, 20h
		sub	ecx, [ebp+var_20]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shr	eax, cl
		or	edx, eax

loc_729F7:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+22Dj
		mov	[edi+27h], dl
		mov	edx, [ebp+var_1C]
		add	edi, 1
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], 20h
		add	edx, 1
		mov	[esp], ebx
		mov	eax, edx
		mov	[ebp+var_28], edx
		shl	eax, 5
		lea	eax, [esi+eax+9]
		mov	[esp+4], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edx, [ebp+var_28]
		movsx	eax, byte ptr [esi+26h]
		mov	[ebp+var_1C], edx
		cmp	eax, edx
		jg	loc_72930

loc_72A45:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+CBj
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 4Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_72A58:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+41j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_728C8
; ---------------------------------------------------------------------------
		align 10h

loc_72A70:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+167j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_729F7
; ---------------------------------------------------------------------------
		align 8

loc_72A88:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+117j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_729A7
; ---------------------------------------------------------------------------
		align 10h

loc_72AA0:				; CODE XREF: MM_ClientInfo::ReadFromBuffer(bf_read &)+88j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_72914
_ZN13MM_ClientInfo14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::WriteToBuffer(bf_write	&)
_ZN13MM_Checkpoint13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'MM_Checkpointo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_72B80
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_72B54:				; CODE XREF: MM_Checkpoint::WriteToBuffer(bf_write &)+C7j
		movzx	eax, byte ptr [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_72B80:				; CODE XREF: MM_Checkpoint::WriteToBuffer(bf_write &)+2Aj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_72B54
_ZN13MM_Checkpoint13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::WriteToBuffer(bf_write	&)
_ZN13SVC_VoiceInit13WriteToBufferER8bf_write proc near
					; CODE XREF: SV_WriteVoiceCodec(bf_write &)+72p
					; DATA XREF: .rodata:`vtable for'SVC_VoiceInito

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_72C00
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_72BC3:				; CODE XREF: SVC_VoiceInit::WriteToBuffer(bf_write &)+D4j
		mov	eax, [esi+10h]
		mov	edx, offset aSvc_voiceinitN ; "svc_voiceinit NULL"
		mov	[esp], ebx
		test	eax, eax
		cmovz	eax, edx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_72C00:				; CODE XREF: SVC_VoiceInit::WriteToBuffer(bf_write &)+2Aj
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_72BC3
_ZN13SVC_VoiceInit13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::WriteToBuffer(bf_write	&)
_ZN13NET_SetConVar13WriteToBufferER8bf_write proc near
					; CODE XREF: CBaseClient::SendServerInfo(void)+279p
					; CHLTVDemoRecorder::WriteServerInfo(void)+1AEp ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	esi, ecx
		sub	esi, edx
		cmp	esi, 5
		jg	short loc_72D10
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_72C9D:				; CODE XREF: NET_SetConVar::WriteToBuffer(bf_write &)+100j
		mov	edx, [ebp+arg_0]
		mov	edx, [edx+1Ch]
		mov	[esp], ebx
		mov	[ebp+var_20], edx
		mov	[esp+4], edx
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	esi, [ebp+var_20]
		test	esi, esi
		jle	short loc_72CFD
		xor	edi, edi
		xor	esi, esi
		mov	[ebp+var_1C], ebx

loc_72CC0:				; CODE XREF: NET_SetConVar::WriteToBuffer(bf_write &)+88j
		mov	edx, [ebp+arg_0]
		mov	ebx, edi
		add	esi, 1
		mov	ecx, [ebp+var_1C]
		add	edi, 208h
		add	ebx, [edx+10h]
		mov	[esp], ecx
		mov	[esp+4], ebx
		add	ebx, 104h
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	edx, [ebp+var_1C]
		mov	[esp+4], ebx
		mov	[esp], edx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		cmp	esi, [ebp+var_20]
		jnz	short loc_72CC0
		mov	ebx, [ebp+var_1C]

loc_72CFD:				; CODE XREF: NET_SetConVar::WriteToBuffer(bf_write &)+47j
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 2Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_72D10:				; CODE XREF: NET_SetConVar::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	edi, [ebx]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		mov	edi, 3Fh
		rol	eax, cl
		mov	[ebp+var_20], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		shl	edi, cl
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		and	eax, 1
		lea	esi, [edx+eax*4]
		mov	eax, [ebp+var_20]
		xor	ecx, [esi]
		xor	eax, [ebp+var_28]
		and	ecx, [ebp+var_24]
		and	eax, edi
		xor	ecx, [esi]
		xor	eax, [ebp+var_28]
		mov	[esi], ecx
		mov	[edx], eax
		jmp	loc_72C9D
_ZN13NET_SetConVar13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::WriteToBuffer(bf_write &)
_ZN11MM_Mutelist13WriteToBufferER8bf_write proc	near
					; DATA XREF: .rodata:`vtable for'MM_Mutelisto

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	edx, [ebp+arg_4]
		mov	ecx, [edx+8]
		mov	edx, [edx+0Ch]
		mov	esi, ecx
		sub	esi, edx
		cmp	esi, 5
		jg	loc_72EA0
		mov	edx, [ebp+arg_4]
		mov	[edx+0Ch], ecx
		mov	byte ptr [edx+10h], 1

loc_72DB4:				; CODE XREF: MM_Mutelist::WriteToBuffer(bf_write &)+180j
		mov	eax, [ebx+10h]
		mov	edx, [ebx+14h]
		mov	esi, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], esi
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		movzx	eax, byte ptr [ebx+18h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		cmp	byte ptr [ebx+18h], 0
		jz	loc_72E8B
		mov	esi, ebx
		mov	[ebp+var_1C], 0

loc_72DF0:				; CODE XREF: MM_Mutelist::WriteToBuffer(bf_write &)+105j
		movzx	eax, byte ptr [esi+19h]
		mov	edx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebx+ecx*8+20h]
		mov	eax, [ebx+ecx*8+1Ch]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		movzx	eax, byte ptr [esi+24h]
		mov	edx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		cmp	byte ptr [esi+24h], 0
		jz	short loc_72E77
		mov	ecx, [ebp+var_1C]
		xor	edi, edi
		lea	eax, [ecx+ecx*4]
		shl	eax, 2
		lea	esi, [esi+0]

loc_72E48:				; CODE XREF: MM_Mutelist::WriteToBuffer(bf_write &)+F5j
		mov	edx, [ebx+eax+28h]
		mov	ecx, [edx+edi*8+4]
		mov	edx, [edx+edi*8]
		mov	[ebp+var_2C], eax
		add	edi, 1
		mov	[esp+8], ecx
		mov	[esp+4], edx
		mov	edx, [ebp+arg_4]
		mov	[esp], edx
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		movzx	edx, byte ptr [esi+24h]
		mov	eax, [ebp+var_2C]
		cmp	edx, edi
		jg	short loc_72E48

loc_72E77:				; CODE XREF: MM_Mutelist::WriteToBuffer(bf_write &)+B8j
		add	[ebp+var_1C], 1
		add	esi, 1
		movzx	eax, byte ptr [ebx+18h]
		cmp	eax, [ebp+var_1C]
		jg	loc_72DF0

loc_72E8B:				; CODE XREF: MM_Mutelist::WriteToBuffer(bf_write &)+61j
		mov	esi, [ebp+arg_4]
		movzx	eax, byte ptr [esi+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_72EA0:				; CODE XREF: MM_Mutelist::WriteToBuffer(bf_write &)+24j
		mov	esi, [ebp+arg_4]
		mov	ecx, edx
		mov	edi, 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[esi+0Ch], ecx
		mov	ecx, [esi]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	esi, [edx]
		rol	eax, cl
		mov	[ebp+var_20], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_28], esi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_24], eax
		and	eax, 1
		lea	esi, [edx+eax*4]
		mov	eax, [ebp+var_20]
		shl	edi, cl
		mov	ecx, [ebp+var_20]
		xor	eax, [ebp+var_28]
		xor	ecx, [esi]
		and	eax, edi
		xor	eax, [ebp+var_28]
		and	ecx, [ebp+var_24]
		xor	ecx, [esi]
		mov	[esi], ecx
		mov	[edx], eax
		jmp	loc_72DB4
_ZN11MM_Mutelist13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::WriteToBuffer(bf_write &)
_ZN10MM_Migrate13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'MM_Migrateo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_73020
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_72F9E:				; CODE XREF: MM_Migrate::WriteToBuffer(bf_write	&)+117j
		movzx	eax, byte ptr [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	edx, [esi+18h]
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		lea	eax, [esi+1Ch]
		mov	[esp], ebx
		mov	dword ptr [esp+8], 8
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		lea	eax, [esi+24h]
		add	esi, 28h
		mov	[esp], ebx
		mov	dword ptr [esp+8], 4
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	dword ptr [esp+8], 10h
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_73020:				; CODE XREF: MM_Migrate::WriteToBuffer(bf_write	&)+24j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_72F9E
_ZN10MM_Migrate13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::WriteToBuffer(bf_write	&)
_ZN13MM_ClientInfo13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'MM_ClientInfoo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_73150
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_73061:				; CODE XREF: MM_ClientInfo::WriteToBuffer(bf_write &)+184j
		lea	eax, [esi+10h]
		mov	dword ptr [esp+8], 4
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		mov	edx, [esi+18h]
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		movsx	eax, byte ptr [esi+26h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		movzx	eax, byte ptr [esi+25h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		cmp	byte ptr [esi+26h], 0
		jle	loc_7313C
		lea	edx, [esi+24h]
		mov	[ebp+var_1C], esi
		xor	edi, edi
		mov	[ebp+var_20], edx

loc_730C3:				; CODE XREF: MM_ClientInfo::WriteToBuffer(bf_write &)+10Aj
		mov	edx, [esi+edi*8+20h]
		mov	eax, [esi+edi*8+1Ch]
		mov	[esp], ebx
		add	edi, 1
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		mov	ecx, [ebp+var_20]
		mov	dword ptr [esp+8], 1
		mov	[esp], ebx
		mov	[esp+4], ecx
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		mov	edx, [ebp+var_1C]
		movsx	eax, byte ptr [edx+28h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	ecx, [ebp+var_1C]
		movsx	eax, byte ptr [ecx+27h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, edi
		mov	[esp], ebx
		shl	eax, 5
		lea	eax, [esi+eax+9]
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		movsx	eax, byte ptr [esi+26h]
		add	[ebp+var_1C], 1
		cmp	eax, edi
		jg	short loc_730C3

loc_7313C:				; CODE XREF: MM_ClientInfo::WriteToBuffer(bf_write &)+82j
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_73150:				; CODE XREF: MM_ClientInfo::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_73061
_ZN13MM_ClientInfo13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::WriteToBuffer(bf_write &)
_ZN15NET_SignonState13WriteToBufferER8bf_write proc near
					; CODE XREF: CBaseClient::SendServerInfo(void)+305p
					; CHLTVDemoRecorder::WriteServerInfo(void)+1E1p ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_73290
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_73254:				; CODE XREF: NET_SignonState::WriteToBuffer(bf_write &)+D7j
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_73290:				; CODE XREF: NET_SignonState::WriteToBuffer(bf_write &)+2Aj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_73254
_ZN15NET_SignonState13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::WriteToBuffer(bf_write &)
_ZN15CLC_BaselineAck13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'CLC_BaselineAcko

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_73330
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_732CD:				; CODE XREF: CLC_BaselineAck::WriteToBuffer(bf_write &)+F4j
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	eax, [esi+14h]
		mov	esi, ecx
		sub	esi, edx
		test	esi, esi
		jle	loc_733A0
		lea	esi, [edx+1]
		mov	ecx, edx
		sar	edx, 5
		mov	[ebx+0Ch], esi
		mov	esi, [ebx]
		and	ecx, 1Fh
		rol	eax, cl
		lea	edx, [esi+edx*4]
		mov	esi, 1
		mov	edi, [edx]
		shl	esi, cl
		xor	eax, edi
		and	eax, esi
		xor	eax, edi
		mov	[edx], eax
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_73330:				; CODE XREF: CLC_BaselineAck::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_732CD
; ---------------------------------------------------------------------------
		align 10h

loc_733A0:				; CODE XREF: CLC_BaselineAck::WriteToBuffer(bf_write &)+4Bj
		mov	byte ptr [ebx+10h], 1
		mov	[ebx+0Ch], ecx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN15CLC_BaselineAck13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::WriteToBuffer(bf_write &)
_ZN8NET_Tick13WriteToBufferER8bf_write proc near
					; CODE XREF: CBaseClient::SendServerInfo(void)+1D4p
					; CBaseClient::SendSnapshot(CClientFrame *)+409p ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_73578
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_733F1:				; CODE XREF: NET_Tick::WriteToBuffer(bf_write &)+219j
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		fld	dword ptr [esi+14h]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jg	short loc_73440
		fstp	st
		jmp	short loc_73420
; ---------------------------------------------------------------------------

loc_73416:				; CODE XREF: NET_Tick::WriteToBuffer(bf_write &)+124j
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_73420:				; CODE XREF: NET_Tick::WriteToBuffer(bf_write &)+54j
		mov	byte ptr [ebx+10h], 1
		mov	[ebx+0Ch], edx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_73440:				; CODE XREF: NET_Tick::WriteToBuffer(bf_write &)+50j
		fld	ds:flt_1EB82C
		lea	edx, [eax+10h]
		mov	ecx, eax
		fmul	st(1), st
		fxch	st(1)
		mov	edi, [ebx]
		sar	eax, 5
		mov	[ebx+0Ch], edx
		and	ecx, 1Fh
		mov	edx, 0FFFFh
		mov	[ebp+var_1C], ecx
		lea	eax, [edi+eax*4]
		fstp	[ebp+var_20]
		cvttss2si edi, [ebp+var_20]
		cmp	edi, 0FFFFh
		cmovg	edi, edx
		mov	dx, 0
		test	edi, edi
		cmovns	edx, edi
		mov	edi, 7FFFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_2C], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_20], edi
		lea	edx, [eax+edx*4]
		mov	edi, [edx]
		mov	[ebp+var_28], edx
		mov	edx, [ebp+var_24]
		mov	[ebp+var_30], edi
		mov	edi, 0FFFFh
		xor	edx, [ebp+var_2C]
		shl	edi, cl
		mov	ecx, [ebp+var_28]
		and	edx, edi
		mov	edi, [ebp+var_2C]
		xor	edx, [ebp+var_24]
		xor	edi, [ebp+var_30]
		and	edi, [ebp+var_20]
		xor	edi, [ebp+var_30]
		mov	[ecx], edi
		mov	[eax], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		fld	dword ptr [esi+18h]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_73416
		fmulp	st(1), st
		mov	ecx, eax
		mov	edi, 0
		and	ecx, 1Fh
		lea	edx, [eax+10h]
		sar	eax, 5
		mov	[ebp+var_1C], ecx
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		fstp	[ebp+var_34]
		cvttss2si esi, [ebp+var_34]
		lea	eax, [edx+eax*4]
		mov	edx, 0FFFFh
		cmp	esi, 0FFFFh
		cmovg	esi, edx
		mov	dx, 7FFFh
		test	esi, esi
		cmovns	edi, esi
		mov	esi, [eax]
		rol	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_28], edi
		mov	[ebp+var_24], esi
		shr	edx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_20], edx
		and	edx, 1
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_28]
		xor	edx, esi
		mov	esi, 0FFFFh
		shl	esi, cl
		and	edx, esi
		mov	esi, [ebp+var_28]
		xor	edx, [ebp+var_24]
		xor	esi, [edi]
		and	esi, [ebp+var_20]
		xor	esi, [edi]
		mov	[edi], esi
		mov	[eax], edx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_73578:				; CODE XREF: NET_Tick::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_733F1
_ZN8NET_Tick13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::WriteToBuffer(bf_write &)
_ZN15MM_JoinResponse13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'MM_JoinResponseo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	ecx, [esi+8]
		mov	edx, [esi+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_73718
		mov	[esi+0Ch], ecx
		mov	byte ptr [esi+10h], 1

loc_73611:				; CODE XREF: MM_JoinResponse::WriteToBuffer(bf_write &)+19Cj
		mov	eax, [ebx+10h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebx+14h]
		mov	edx, [ebx+18h]
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		mov	edx, [ebx+20h]
		mov	eax, [ebx+1Ch]
		mov	[esp], esi
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_ZN8bf_write13WriteLongLongEx ;	bf_write::WriteLongLong(long long)
		mov	eax, [ebx+24h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebx+28h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebx+2Ch]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebx+30h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebx+34h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [ebx+38h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [ebx+34h]
		test	eax, eax
		jle	short loc_736D4
		xor	edi, edi
		nop

loc_736B0:				; CODE XREF: MM_JoinResponse::WriteToBuffer(bf_write &)+F2j
		mov	eax, edi
		mov	dword ptr [esp+8], 10h
		add	edi, 1
		shl	eax, 4
		add	eax, [ebx+3Ch]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		cmp	[ebx+34h], edi
		jg	short loc_736B0

loc_736D4:				; CODE XREF: MM_JoinResponse::WriteToBuffer(bf_write &)+CBj
		mov	edi, [ebx+38h]
		test	edi, edi
		jle	short loc_73706
		xor	edi, edi
		lea	esi, [esi+0]

loc_736E0:				; CODE XREF: MM_JoinResponse::WriteToBuffer(bf_write &)+124j
		mov	dword ptr [esp+8], 8
		lea	eax, ds:0[edi*8]
		add	edi, 1
		add	eax, [ebx+50h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		cmp	[ebx+38h], edi
		jg	short loc_736E0

loc_73706:				; CODE XREF: MM_JoinResponse::WriteToBuffer(bf_write &)+F9j
		movzx	eax, byte ptr [esi+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_73718:				; CODE XREF: MM_JoinResponse::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[esi+0Ch], ecx
		mov	ecx, [esi]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_73611
_ZN15MM_JoinResponse13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::WriteToBuffer(bf_write &)
_ZN17SVC_GameEventList13WriteToBufferER8bf_write proc near
					; CODE XREF: SV_CreateBaseline(void)+12Fp
					; DATA XREF: .rodata:`vtable for'SVC_GameEventListo

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi+3Ch]
		mov	[esi+14h], eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_737E8

loc_737BC:				; CODE XREF: SVC_GameEventList::WriteToBuffer(bf_write &)+CEj
					; SVC_GameEventList::WriteToBuffer(bf_write &)+153j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_737C3:				; CODE XREF: SVC_GameEventList::WriteToBuffer(bf_write &)+1C8j
		mov	eax, [esi+14h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+30h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_737E8:				; CODE XREF: SVC_GameEventList::WriteToBuffer(bf_write &)+2Aj
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		mov	edi, 1Fh
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], eax
		mov	eax, edi
		and	eax, 1
		mov	[ebp+var_28], edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 8
		jle	loc_737BC
		mov	ecx, eax
		mov	edi, 0FFh
		mov	[ebp+var_20], 1FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+9]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+14h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 13h
		jle	loc_737BC
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], offset loc_FFFFF
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+14h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, offset byte_7FFFF
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_34]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_737C3
_ZN17SVC_GameEventList13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::WriteToBuffer(bf_write &)
_ZN16SVC_TempEntities13WriteToBufferER8bf_write	proc near
					; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+63Dp
					; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi+3Ch]
		mov	[esi+14h], eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_739B8

loc_7398C:				; CODE XREF: SVC_TempEntities::WriteToBuffer(bf_write &)+CEj
					; SVC_TempEntities::WriteToBuffer(bf_write &)+153j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_73993:				; CODE XREF: SVC_TempEntities::WriteToBuffer(bf_write &)+1C8j
		mov	eax, [esi+14h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+30h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_739B8:				; CODE XREF: SVC_TempEntities::WriteToBuffer(bf_write &)+2Aj
		mov	ecx, edx
		mov	edi, 1Fh
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], eax
		mov	eax, edi
		and	eax, 1
		mov	[ebp+var_28], edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 7
		jle	loc_7398C
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], 0FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+8]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 7Fh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+14h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 10h
		jle	loc_7398C
		mov	ecx, eax
		mov	edi, 0FFFFh
		mov	[ebp+var_20], 1FFFFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+11h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_34]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_73993
_ZN16SVC_TempEntities13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::ToString(void)const
_ZNK8SVC_Menu8ToStringEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Menuo

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, offset aNoKeyvalues ; "No KeyValues"
		mov	[ebp+var_4], edi
		mov	eax, [ebx+10h]
		mov	edx, [ebx+18h]
		test	eax, eax
		mov	[ebp+var_1C], edx
		jz	short loc_73B5E
		mov	[esp], eax
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	esi, eax

loc_73B5E:				; CODE XREF: SVC_Menu::ToString(void)+22j
		mov	eax, [ebx]
		mov	edi, [ebx+14h]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+var_1C]
		mov	[esp+14h], esi
		mov	[esp+10h], edi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSISLenI ; "%s: %i \"%s\" (len:%i)"
		mov	[esp+18h], edx
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK8SVC_Menu8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Base_CmdKeyValues::ToString(void)const
_ZNK17Base_CmdKeyValues8ToStringEv proc	near
					; CODE XREF: SVC_CmdKeyValues::ToString(void)+4j
					; CLC_CmdKeyValues::ToString(void)+4j
					; DATA XREF: ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, offset aNull_0 ; "<<null>>"
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jz	short loc_73BD5
		mov	[esp], eax
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	esi, eax

loc_73BD5:				; CODE XREF: Base_CmdKeyValues::ToString(void)+19j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSS ;	"%s: %s"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	dword ptr [esp], offset	_ZL6s_text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZL6s_text ; s_text
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK17Base_CmdKeyValues8ToStringEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::ToString(void)const
_ZNK16SVC_CmdKeyValues8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZNK17Base_CmdKeyValues8ToStringEv ; Base_CmdKeyValues::ToString(void)
_ZNK16SVC_CmdKeyValues8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::ToString(void)const
_ZNK16CLC_CmdKeyValues8ToStringEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZNK17Base_CmdKeyValues8ToStringEv ; Base_CmdKeyValues::ToString(void)
_ZNK16CLC_CmdKeyValues8ToStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::~SVC_Menu()
_ZN8SVC_MenuD2Ev proc near		; CODE XREF: SVC_Menu::~SVC_Menu()+Dp
					; CServerPlugin::CreateMessage(edict_t *,DIALOG_TYPE,KeyValues *,IServerPluginCallbacks	*)+DDp	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+10h]
		mov	dword ptr [ebx], (offset _ZTV8SVC_Menu+8)
		test	eax, eax
		jz	short loc_73C4F
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_73C4F:				; CODE XREF: SVC_Menu::~SVC_Menu()+15j
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN8SVC_MenuD2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl SVC_Menu___SVC_Menu(void *)
_ZN8SVC_MenuD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_Menuo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN8SVC_MenuD2Ev ; SVC_Menu::~SVC_Menu()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN8SVC_MenuD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Base_CmdKeyValues::~Base_CmdKeyValues()
_ZN17Base_CmdKeyValuesD2Ev proc	near	; CODE XREF: Base_CmdKeyValues::~Base_CmdKeyValues()+Dp
					; CLC_CmdKeyValues::~CLC_CmdKeyValues()+Dj ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0Ch]
		mov	dword ptr [ebx], (offset _ZTV17Base_CmdKeyValues+8)
		test	eax, eax
		jz	short loc_73CAF
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_73CAF:				; CODE XREF: Base_CmdKeyValues::~Base_CmdKeyValues()+15j
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN17Base_CmdKeyValuesD2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	[esp], eax
		call	_Unwind_Resume

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Base_CmdKeyValues___Base_CmdKeyValues(void *)
_ZN17Base_CmdKeyValuesD0Ev proc	near	; DATA XREF: .rodata:`vtable for'Base_CmdKeyValueso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN17Base_CmdKeyValuesD2Ev ; Base_CmdKeyValues::~Base_CmdKeyValues()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN17Base_CmdKeyValuesD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::WriteToBuffer(bf_write	&)
_ZN13SVC_VoiceData13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_VoiceDatao

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_73DD0
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_73D7E:				; CODE XREF: SVC_VoiceData::WriteToBuffer(bf_write &)+E7j
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		movzx	eax, byte ptr [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [esi+18h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteWordEi ; bf_write::WriteWord(int)
		mov	eax, [esi+18h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+3Ch]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_73DD0:				; CODE XREF: SVC_VoiceData::WriteToBuffer(bf_write &)+24j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_73D7E
_ZN13SVC_VoiceData13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::WriteToBuffer(bf_write &)
_ZN8CLC_Move13WriteToBufferER8bf_write proc near ; DATA	XREF: .rodata:`vtable for'CLC_Moveo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_73F50
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_73E11:				; CODE XREF: CLC_Move::WriteToBuffer(bf_write &)+1D1j
		mov	eax, [esi+40h]
		mov	edx, [esi+14h]
		mov	[esi+18h], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 3
		jg	short loc_73E60

loc_73E29:				; CODE XREF: CLC_Move::WriteToBuffer(bf_write &)+F6j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_73E30:				; CODE XREF: CLC_Move::WriteToBuffer(bf_write &)+16Bj
		mov	eax, [esi+18h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteWordEi ; bf_write::WriteWord(int)
		mov	eax, [esi+18h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+34h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_73E60:				; CODE XREF: CLC_Move::WriteToBuffer(bf_write &)+47j
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], 0Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+4]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 7
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_28], edi
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_2C]
		shl	[ebp+var_20], cl
		mov	ecx, [edi]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	edx, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 2
		jle	loc_73E29
		mov	ecx, eax
		mov	[ebp+var_2C], 3
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+3]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [eax]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	[ebp+var_24], edi
		shr	[ebp+var_2C], cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edx, [ebp+var_2C]
		and	edx, 1
		lea	edx, [eax+edx*4]
		mov	[ebp+var_28], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_20]
		xor	edx, edi
		mov	edi, 7
		shl	edi, cl
		mov	ecx, [ebp+var_30]
		and	edx, edi
		mov	edi, [ebp+var_28]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_20]
		and	ecx, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_73E30
; ---------------------------------------------------------------------------

loc_73F50:				; CODE XREF: CLC_Move::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_73E11
_ZN8CLC_Move13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::WriteToBuffer(bf_write	&)
_ZN13CLC_VoiceData13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_74080
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_7404E:				; CODE XREF: CLC_VoiceData::WriteToBuffer(bf_write &)+C7j
		mov	eax, [esi+38h]
		mov	[esi+10h], eax
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN8bf_write9WriteWordEi ; bf_write::WriteWord(int)
		mov	eax, [esi+10h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+2Ch]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_74080:				; CODE XREF: CLC_VoiceData::WriteToBuffer(bf_write &)+24j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_7404E
_ZN13CLC_VoiceData13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::WriteToBuffer(bf_write &)
_ZN18SVC_CrosshairAngle13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_74178
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax

loc_7411E:				; CODE XREF: SVC_CrosshairAngle::WriteToBuffer(bf_write	&)+EFj
		mov	dword ptr [esp+8], 10h ; int
		mov	eax, [esi+10h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write13WriteBitAngleEfi ; bf_write::WriteBitAngle(float,int)
		mov	dword ptr [esp+8], 10h ; int
		mov	eax, [esi+14h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write13WriteBitAngleEfi ; bf_write::WriteBitAngle(float,int)
		mov	dword ptr [esp+8], 10h ; int
		mov	eax, [esi+18h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write13WriteBitAngleEfi ; bf_write::WriteBitAngle(float,int)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_74178:				; CODE XREF: SVC_CrosshairAngle::WriteToBuffer(bf_write	&)+24j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_7411E
_ZN18SVC_CrosshairAngle13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::ReadFromBuffer(bf_read &)
_ZN14CLC_SaveReplay14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'CLC_SaveReplayo

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+10h], 0
		lea	eax, [esi+14h]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 3
		jle	short loc_74238
		mov	edi, [ebx]
		lea	eax, [edx+4]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+3]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		or	eax, edx
		and	eax, 0Fh

loc_7420F:				; CODE XREF: CLC_SaveReplay::ReadFromBuffer(bf_read &)+B5j
		mov	[esi+10h], eax
		mov	[esp], ebx
		call	_ZN7bf_read9ReadFloatEv	; bf_read::ReadFloat(void)
		fstp	dword ptr [esi+118h]
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		xor	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_74238:				; CODE XREF: CLC_SaveReplay::ReadFromBuffer(bf_read &)+49j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_7420F
_ZN14CLC_SaveReplay14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::WriteToBuffer(bf_write &)
_ZN14CLC_SaveReplay13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'CLC_SaveReplayo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_74340
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_74281:				; CODE XREF: CLC_SaveReplay::WriteToBuffer(bf_write &)+151j
		lea	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 3
		jle	loc_743B0
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], 0Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+4]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 7
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx

loc_74315:				; CODE XREF: CLC_SaveReplay::WriteToBuffer(bf_write &)+167j
		mov	eax, [esi+118h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write10WriteFloatEf ; bf_write::WriteFloat(float)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_74340:				; CODE XREF: CLC_SaveReplay::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_74281
; ---------------------------------------------------------------------------
		align 10h

loc_743B0:				; CODE XREF: CLC_SaveReplay::WriteToBuffer(bf_write &)+50j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_74315
_ZN14CLC_SaveReplay13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FindCommonPathID(char	 const*)
_ZL16FindCommonPathIDPKc proc near	; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+5Bp
					; CLC_FileMD5Check::WriteToBuffer(bf_write &)+256p ...
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		sub	esp, 14h
		mov	eax, g_MostCommonPathIDs
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		xor	edx, edx
		test	eax, eax
		jz	short loc_743FC
		mov	eax, g_MostCommonPathIDs+4
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		cmp	eax, 1
		sbb	edx, edx
		and	edx, 2
		sub	edx, 1

loc_743FC:				; CODE XREF: FindCommonPathID(char  const*)+1Ej
		add	esp, 14h
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
_ZL16FindCommonPathIDPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FindCommonPrefix(char	 const*)
_ZL16FindCommonPrefixPKc proc near	; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+F1p
					; CLC_FileCRCCheck::WriteToBuffer(bf_write &)+F1p
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, eax
		push	ebx
		xor	ebx, ebx
		sub	esp, 10h

loc_7441C:				; CODE XREF: FindCommonPrefix(char  const*)+29j
		mov	eax, g_MostCommonPrefixes[ebx*4]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		cmp	esi, eax
		jz	short loc_74450

loc_74433:				; CODE XREF: FindCommonPrefix(char  const*)+59j
		add	ebx, 1
		cmp	ebx, 4
		jnz	short loc_7441C
		mov	ebx, 0FFFFFFFFh

loc_74440:				; CODE XREF: FindCommonPrefix(char  const*)+55j
					; FindCommonPrefix(char	 const*)+5Bj
		add	esp, 10h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_74450:				; CODE XREF: FindCommonPrefix(char  const*)+21j
		mov	eax, g_MostCommonPrefixes[ebx*4]
		mov	[esp], eax	; s
		call	strlen
		movzx	eax, byte ptr [esi+eax]
		cmp	al, 5Ch
		jz	short loc_74440
		cmp	al, 2Fh
		jnz	short loc_74433
		jmp	short loc_74440
_ZL16FindCommonPrefixPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::WriteToBuffer(bf_write &)
_ZN17SVC_EntityMessage13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [esi+40h]
		cmp	edx, 7FFh
		mov	[esi+18h], edx
		jle	short loc_744A8
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_744A8:				; CODE XREF: SVC_EntityMessage::WriteToBuffer(bf_write &)+23j
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_746E0
		mov	ecx, edx
		mov	edi, 1Fh
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], eax
		mov	eax, edi
		and	eax, 1
		mov	[ebp+var_28], edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Ah
		jle	loc_746E0
		mov	ecx, eax
		mov	edi, [ebx]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 3FFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_24], edi
		lea	edx, [eax+edx*4]
		mov	edi, [edx]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_28]
		mov	[ebp+var_34], edi
		mov	edi, 7FFh
		shl	edi, cl
		mov	ecx, [ebp+var_34]
		xor	edx, [ebp+var_20]
		xor	ecx, [ebp+var_20]
		and	edx, edi
		mov	edi, [ebp+var_2C]
		xor	edx, [ebp+var_28]
		and	ecx, [ebp+var_24]
		xor	ecx, [ebp+var_34]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+14h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 8
		jle	loc_746E0
		mov	ecx, eax
		mov	edi, 0FFh
		mov	[ebp+var_20], 1FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+9]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+18h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Ah
		jle	loc_746E0
		mov	ecx, eax
		mov	edi, [ebx]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 3FFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_24], edi
		lea	edx, [eax+edx*4]
		mov	edi, [edx]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_28]
		mov	[ebp+var_38], edi
		mov	edi, 7FFh
		shl	edi, cl
		mov	ecx, [ebp+var_38]
		xor	edx, [ebp+var_20]
		xor	ecx, [ebp+var_20]
		and	edx, edi
		mov	edi, [ebp+var_2C]
		xor	edx, [ebp+var_28]
		and	ecx, [ebp+var_24]
		xor	ecx, [ebp+var_38]
		mov	[edi], ecx
		mov	[eax], edx

loc_746B8:				; CODE XREF: SVC_EntityMessage::WriteToBuffer(bf_write &)+277j
		mov	eax, [esi+18h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+34h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_746E0:				; CODE XREF: SVC_EntityMessage::WriteToBuffer(bf_write &)+4Dj
					; SVC_EntityMessage::WriteToBuffer(bf_write &)+C9j ...
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_746B8
_ZN17SVC_EntityMessage13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::WriteToBuffer(bf_write	&)
_ZN13SVC_GameEvent13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_GameEvento

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [ebx+38h]
		cmp	edx, 7FFh
		mov	[ebx+10h], edx
		jle	short loc_74728
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_74728:				; CODE XREF: SVC_GameEvent::WriteToBuffer(bf_write &)+23j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	ecx, [esi+8]
		mov	edx, [esi+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_74858
		mov	ecx, edx
		mov	edi, 1Fh
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[esi+0Ch], ecx
		mov	ecx, [esi]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], eax
		mov	eax, edi
		and	eax, 1
		mov	[ebp+var_28], edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	edx, [ebx+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Ah
		jle	loc_74858
		mov	ecx, eax
		mov	edi, [esi]
		mov	[ebp+var_20], 7FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[esi+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 3FFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx

loc_7482E:				; CODE XREF: SVC_GameEvent::WriteToBuffer(bf_write &)+16Fj
		mov	eax, [ebx+10h]
		mov	[esp+8], eax	; int
		mov	eax, [ebx+2Ch]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_74858:				; CODE XREF: SVC_GameEvent::WriteToBuffer(bf_write &)+4Dj
					; SVC_GameEvent::WriteToBuffer(bf_write	&)+C9j
		mov	[esi+0Ch], ecx
		mov	byte ptr [esi+10h], 1
		jmp	short loc_7482E
_ZN13SVC_GameEvent13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::WriteToBuffer(bf_write &)
_ZN15SVC_UserMessage13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_UserMessageo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [ebx+3Ch]
		cmp	edx, 7FFh
		mov	[ebx+14h], edx
		jle	short loc_748A8
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_748A8:				; CODE XREF: SVC_UserMessage::WriteToBuffer(bf_write &)+23j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	ecx, [esi+8]
		mov	edx, [esi+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_74970
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[esi+0Ch], ecx
		mov	ecx, [esi]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax

loc_74924:				; CODE XREF: SVC_UserMessage::WriteToBuffer(bf_write &)+107j
		mov	eax, [ebx+10h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	ecx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	edx, [ebx+14h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Ah
		jg	short loc_74980
		mov	[esi+0Ch], ecx
		mov	byte ptr [esi+10h], 1

loc_7494C:				; CODE XREF: SVC_UserMessage::WriteToBuffer(bf_write &)+17Fj
		mov	eax, [ebx+14h]
		mov	[esp+8], eax	; int
		mov	eax, [ebx+30h]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_74970:				; CODE XREF: SVC_UserMessage::WriteToBuffer(bf_write &)+4Dj
		mov	[esi+0Ch], ecx
		mov	byte ptr [esi+10h], 1
		jmp	short loc_74924
; ---------------------------------------------------------------------------
		align 10h

loc_74980:				; CODE XREF: SVC_UserMessage::WriteToBuffer(bf_write &)+D3j
		mov	ecx, eax
		mov	edi, [esi]
		mov	[ebp+var_20], 7FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[esi+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 3FFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_7494C
_ZN15SVC_UserMessage13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZN11CVProfScopeD2Ev_constprop_76 proc near ; CODE XREF: .text:0007714Bp
					; .text:000773DAp ...
		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		cmp	byte ptr [eax],	0
		jz	short loc_74A2E
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_74A1F
		mov	ebx, dword ptr g_VProfCurrentProfile+100Ch
		test	ebx, ebx
		jz	short loc_74A2E

loc_74A1F:				; CODE XREF: _ZN11CVProfScopeD2Ev_constprop_76+13j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_74A38

loc_74A2E:				; CODE XREF: _ZN11CVProfScopeD2Ev_constprop_76+Aj
					; _ZN11CVProfScopeD2Ev_constprop_76+1Dj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_74A38:				; CODE XREF: _ZN11CVProfScopeD2Ev_constprop_76+2Cj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jz	short loc_74A56
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_74A56:				; CODE XREF: _ZN11CVProfScopeD2Ev_constprop_76+4Cj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CVProfScopeD2Ev_constprop_76 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::WriteToBuffer(bf_write &)
_ZN18SVC_PacketEntities13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_74D60
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		mov	edi, 1Fh
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], eax
		mov	eax, edi
		and	eax, 1
		mov	[ebp+var_28], edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Ah
		jle	loc_74D60
		mov	ecx, eax
		mov	edi, 3FFh
		mov	[ebp+var_20], 7FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+18h]
		cmp	ecx, [ebx+8]
		jge	loc_74D77

loc_74B95:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+301j
		test	al, al
		jnz	loc_74DA0
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax

loc_74BB2:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+343j
		add	dword ptr [ebx+0Ch], 1
		cmp	byte ptr [esi+18h], 0
		jnz	loc_74D85

loc_74BC0:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+30Fj
					; SVC_PacketEntities::WriteToBuffer(bf_write &)+324j
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	eax, [esi+1Ch]
		mov	edi, ecx
		sub	edi, edx
		test	edi, edi
		jle	loc_74DC0
		lea	edi, [edx+1]
		mov	ecx, edx
		sar	edx, 5
		mov	[ebx+0Ch], edi
		mov	edi, [ebx]
		and	ecx, 1Fh
		rol	eax, cl
		lea	edx, [edi+edx*4]
		mov	edi, 1
		xor	eax, [edx]
		shl	edi, cl
		and	eax, edi
		xor	eax, [edx]
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+14h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Ah
		jle	loc_74DC0
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], 7FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 3FFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_34]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+24h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 13h
		jle	loc_74DC0
		mov	ecx, eax
		mov	edi, offset byte_7FFFF
		mov	[ebp+var_20], offset loc_FFFFF
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+14h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_38], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_38]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_38]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+19h]
		cmp	ecx, [ebx+8]
		jge	loc_74DD7

loc_74D13:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+361j
		test	al, al
		jz	loc_74DE0
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx

loc_74D2E:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+385j
		add	dword ptr [ebx+0Ch], 1

loc_74D32:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+36Bj
		mov	eax, [esi+24h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+40h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_74D60:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+24j
					; SVC_PacketEntities::WriteToBuffer(bf_write &)+A0j
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		movzx	eax, byte ptr [esi+18h]
		cmp	ecx, [ebx+8]
		jl	loc_74B95

loc_74D77:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+11Fj
		mov	byte ptr [ebx+10h], 1
		cmp	byte ptr [esi+18h], 0
		jz	loc_74BC0

loc_74D85:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+14Aj
		mov	eax, [esi+20h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		jmp	loc_74BC0
; ---------------------------------------------------------------------------
		align 10h

loc_74DA0:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+127j
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		jmp	loc_74BB2
; ---------------------------------------------------------------------------
		align 10h

loc_74DC0:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+15Fj
					; SVC_PacketEntities::WriteToBuffer(bf_write &)+199j ...
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		movzx	eax, byte ptr [esi+19h]
		cmp	ecx, [ebx+8]
		jl	loc_74D13

loc_74DD7:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+29Dj
		mov	byte ptr [ebx+10h], 1
		jmp	loc_74D32
; ---------------------------------------------------------------------------

loc_74DE0:				; CODE XREF: SVC_PacketEntities::WriteToBuffer(bf_write	&)+2A5j
		mov	edi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [edi+edx*4]
		and	[edx], eax
		jmp	loc_74D2E
_ZN18SVC_PacketEntities13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::WriteToBuffer(bf_write	&)
_ZN13SVC_SendTable13WriteToBufferER8bf_write proc near
					; CODE XREF: SV_MaybeWriteSendTable(SendTable *,bf_write &,bool)+AAp
					; DATA XREF: .rodata:`vtable for'SVC_SendTableo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi+3Ch]
		mov	[esi+14h], eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_74EA0
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		movzx	eax, byte ptr [esi+10h]
		cmp	ecx, [ebx+8]
		jge	loc_74F14

loc_74E43:				; CODE XREF: SVC_SendTable::WriteToBuffer(bf_write &)+10Ej
		test	al, al
		jnz	loc_74F20
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax

loc_74E60:				; CODE XREF: SVC_SendTable::WriteToBuffer(bf_write &)+133j
		add	dword ptr [ebx+0Ch], 1

loc_74E64:				; CODE XREF: SVC_SendTable::WriteToBuffer(bf_write &)+118j
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		mov	eax, [esi+14h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+30h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_74EA0:				; CODE XREF: SVC_SendTable::WriteToBuffer(bf_write &)+2Aj
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+10h]
		cmp	ecx, [ebx+8]
		jl	loc_74E43

loc_74F14:				; CODE XREF: SVC_SendTable::WriteToBuffer(bf_write &)+3Dj
		mov	byte ptr [ebx+10h], 1
		jmp	loc_74E64
; ---------------------------------------------------------------------------
		align 10h

loc_74F20:				; CODE XREF: SVC_SendTable::WriteToBuffer(bf_write &)+45j
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		jmp	loc_74E60
_ZN13SVC_SendTable13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::WriteToBuffer(bf_write	&)
_ZN21SVC_CreateStringTable13WriteToBufferER8bf_write proc near
					; CODE XREF: CNetworkStringTableContainer::WriteBaselines(bf_write &)+6Dp
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_75250
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_74F71:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+371j
		mov	eax, [esi+54h]
		mov	[esi+2Ch], eax
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteWordEi ; bf_write::WriteWord(int)
		mov	eax, [esi+14h]
		mov	[esp], eax
		call	_Z6Q_log2i	; Q_log2(int)
		mov	edx, [esi+18h]
		mov	ecx, [ebx+8]
		lea	edi, [eax+1]
		mov	[ebp+var_28], edi
		mov	[ebp+var_20], edx
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	[ebp+var_28], edi
		jg	loc_752C0
		mov	edi, [ebp+var_28]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebp+var_24], ecx
		add	edi, edx
		sar	edx, 5
		mov	[ebx+0Ch], edi
		mov	edi, [ebx]
		lea	edx, [edi+edx*4]
		mov	edi, [ebp+var_20]
		rol	edi, cl
		mov	ecx, eax
		mov	[ebp+var_20], edi
		mov	edi, 1
		shl	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_24]
		lea	eax, [edi-1]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_24]
		mov	[ebp+var_1C], eax
		mov	eax, [edx]
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_1C]
		and	eax, 1
		lea	eax, [edx+eax*4]
		mov	[ebp+var_2C], eax
		mov	eax, [eax]
		mov	[ebp+var_30], eax
		lea	eax, [edi+edi-1]
		mov	edi, [ebp+var_2C]
		shl	eax, cl
		mov	ecx, [ebp+var_28]
		xor	ecx, [ebp+var_20]
		and	eax, ecx
		mov	ecx, [ebp+var_30]
		xor	eax, [ebp+var_28]
		xor	ecx, [ebp+var_20]
		and	ecx, [ebp+var_1C]
		xor	ecx, [ebp+var_30]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+2Ch]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 13h
		jle	loc_752C0
		mov	ecx, eax
		mov	edi, offset byte_7FFFF
		mov	[ebp+var_1C], offset loc_FFFFF
		and	ecx, 1Fh
		mov	[ebp+var_20], ecx
		lea	ecx, [eax+14h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_20]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_1C], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_34]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_1C]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+1Ch]
		cmp	ecx, [ebx+8]
		jge	loc_752D7

loc_750CB:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+391j
		test	al, al
		jnz	loc_752E0
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax

loc_750E8:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+3B3j
		add	dword ptr [ebx+0Ch], 1

loc_750EC:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+39Bj
		cmp	byte ptr [esi+1Ch], 0
		jz	loc_75200
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+20h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Bh
		jle	loc_75330
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_1C], 0FFFh
		and	ecx, 1Fh
		mov	[ebp+var_20], ecx
		lea	ecx, [eax+0Ch]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_20]
		lea	eax, [edi+eax*4]
		mov	edi, 7FFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_1C], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_38], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_38]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_1C]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_38]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+24h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 3
		jle	loc_75330
		mov	ecx, eax
		mov	edi, 7
		mov	[ebp+var_1C], 0Fh
		and	ecx, 1Fh
		mov	[ebp+var_20], ecx
		lea	ecx, [eax+4]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_20]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_1C], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_3C], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_3C]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_1C]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_3C]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx

loc_75200:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+1B0j
					; SVC_CreateStringTable::WriteToBuffer(bf_write	&)+3F7j
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+60h]
		cmp	ecx, [ebx+8]
		jge	loc_75300
		test	al, al
		jz	loc_75310
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx

loc_7522B:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+3E5j
		add	dword ptr [ebx+0Ch], 1

loc_7522F:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+3C4j
		mov	eax, [esi+2Ch]
		mov	[esp+8], eax	; int
		mov	eax, [esi+48h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_75250:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_1C], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_20], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_20]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_1C], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_1C]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_74F71
; ---------------------------------------------------------------------------
		align 10h

loc_752C0:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+79j
					; SVC_CreateStringTable::WriteToBuffer(bf_write	&)+106j
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		movzx	eax, byte ptr [esi+1Ch]
		cmp	ecx, [ebx+8]
		jl	loc_750CB

loc_752D7:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+185j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_750EC
; ---------------------------------------------------------------------------

loc_752E0:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+18Dj
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		jmp	loc_750E8
; ---------------------------------------------------------------------------
		align 10h

loc_75300:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+2CAj
		mov	byte ptr [ebx+10h], 1
		jmp	loc_7522F
; ---------------------------------------------------------------------------
		align 10h

loc_75310:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+2D2j
		mov	edi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [edi+edx*4]
		and	[edx], eax
		jmp	loc_7522B
; ---------------------------------------------------------------------------
		align 10h

loc_75330:				; CODE XREF: SVC_CreateStringTable::WriteToBuffer(bf_write &)+1C6j
					; SVC_CreateStringTable::WriteToBuffer(bf_write	&)+24Bj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75200
_ZN21SVC_CreateStringTable13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::WriteToBuffer(bf_write &)
_ZN12SVC_SetPause13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_SetPauseo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	short loc_753C0
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		movzx	eax, byte ptr [esi+10h]
		cmp	ecx, [ebx+8]
		jge	loc_75434

loc_75383:				; CODE XREF: SVC_SetPause::WriteToBuffer(bf_write &)+EEj
		test	al, al
		jnz	loc_75450
		mov	esi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [esi+edx*4]
		and	[edx], eax

loc_753A0:				; CODE XREF: SVC_SetPause::WriteToBuffer(bf_write &)+123j
		add	dword ptr [ebx+0Ch], 1
		movzx	eax, byte ptr [ebx+10h]
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		xor	eax, 1
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_753C0:				; CODE XREF: SVC_SetPause::WriteToBuffer(bf_write &)+2Aj
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+10h]
		cmp	ecx, [ebx+8]
		jl	loc_75383

loc_75434:				; CODE XREF: SVC_SetPause::WriteToBuffer(bf_write &)+3Dj
		mov	byte ptr [ebx+10h], 1
		xor	eax, eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_75450:				; CODE XREF: SVC_SetPause::WriteToBuffer(bf_write &)+45j
		mov	edi, [ebx]
		mov	eax, ecx
		mov	edx, 1
		sar	eax, 5
		shl	edx, cl
		lea	eax, [edi+eax*4]
		or	[eax], edx
		jmp	loc_753A0
_ZN12SVC_SetPause13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::WriteToBuffer(bf_write &)
_ZN12SVC_FixAngle13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'SVC_FixAngleo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_75530
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		movzx	eax, byte ptr [esi+10h]
		cmp	ecx, [ebx+8]
		jge	loc_755A4

loc_754B1:				; CODE XREF: SVC_FixAngle::WriteToBuffer(bf_write &)+12Ej
		test	al, al
		jnz	loc_755B0
		mov	edi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [edi+edx*4]
		and	[edx], eax

loc_754CE:				; CODE XREF: SVC_FixAngle::WriteToBuffer(bf_write &)+153j
		add	dword ptr [ebx+0Ch], 1

loc_754D2:				; CODE XREF: SVC_FixAngle::WriteToBuffer(bf_write &)+138j
		mov	dword ptr [esp+8], 10h ; int
		mov	eax, [esi+14h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write13WriteBitAngleEfi ; bf_write::WriteBitAngle(float,int)
		mov	dword ptr [esp+8], 10h ; int
		mov	eax, [esi+18h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write13WriteBitAngleEfi ; bf_write::WriteBitAngle(float,int)
		mov	dword ptr [esp+8], 10h ; int
		mov	eax, [esi+1Ch]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write13WriteBitAngleEfi ; bf_write::WriteBitAngle(float,int)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_75530:				; CODE XREF: SVC_FixAngle::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+10h]
		cmp	ecx, [ebx+8]
		jl	loc_754B1

loc_755A4:				; CODE XREF: SVC_FixAngle::WriteToBuffer(bf_write &)+3Bj
		mov	byte ptr [ebx+10h], 1
		jmp	loc_754D2
; ---------------------------------------------------------------------------
		align 10h

loc_755B0:				; CODE XREF: SVC_FixAngle::WriteToBuffer(bf_write &)+43j
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		jmp	loc_754CE
_ZN12SVC_FixAngle13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::WriteToBuffer(bf_write &)
_ZN14SVC_ServerInfo13WriteToBufferER8bf_write proc near
					; CODE XREF: CBaseClient::SendServerInfo(void)+193p
					; CHLTVDemoRecorder::WriteServerInfo(void)+8Fp	...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_75770
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_75601:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+204j
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+19h]
		cmp	ecx, [ebx+8]
		jge	loc_75800
		test	al, al
		jnz	loc_757E0
		mov	edi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [edi+edx*4]
		and	[edx], eax

loc_7564C:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+223j
		mov	ecx, [ebx+0Ch]
		add	ecx, 1
		cmp	[ebx+8], ecx
		mov	[ebx+0Ch], ecx
		movzx	eax, byte ptr [esi+18h]
		jle	loc_75800
		test	al, al
		jz	loc_75840
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx

loc_7567D:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+285j
		add	dword ptr [ebx+0Ch], 1

loc_75681:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+234j
		mov	eax, [esi+30h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [esi+38h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteWordEi ; bf_write::WriteWord(int)
		lea	eax, [esi+20h]
		mov	dword ptr [esp+8], 10h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		mov	eax, [esi+3Ch]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [esi+34h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [esi+40h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write10WriteFloatEf ; bf_write::WriteFloat(float)
		movsx	eax, byte ptr [esi+1Bh]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteCharEi ; bf_write::WriteChar(int)
		mov	eax, [esi+44h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [esi+48h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [esi+4Ch]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [esi+50h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+1Ah]
		cmp	ecx, [ebx+8]
		jge	loc_75810
		test	al, al
		jz	loc_75820
		mov	edi, [ebx]
		mov	eax, ecx
		mov	edx, 1
		sar	eax, 5
		shl	edx, cl
		lea	eax, [edi+eax*4]
		or	[eax], edx

loc_7575A:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+265j
		add	dword ptr [ebx+0Ch], 1
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_75770:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_75601
; ---------------------------------------------------------------------------
		align 10h

loc_757E0:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+61j
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		jmp	loc_7564C
; ---------------------------------------------------------------------------
		align 10h

loc_75800:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+59j
					; SVC_ServerInfo::WriteToBuffer(bf_write &)+8Cj
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75681
; ---------------------------------------------------------------------------
		align 10h

loc_75810:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+169j
		mov	byte ptr [ebx+10h], 1
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_75820:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+171j
		mov	esi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [esi+edx*4]
		and	[edx], eax
		jmp	loc_7575A
; ---------------------------------------------------------------------------
		align 10h

loc_75840:				; CODE XREF: SVC_ServerInfo::WriteToBuffer(bf_write &)+94j
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax
		jmp	loc_7567D
_ZN14SVC_ServerInfo13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::WriteToBuffer(bf_write &)
_ZN14CLC_ClientInfo13WriteToBufferER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'CLC_ClientInfoo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_759A0
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_75891:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+1A1j
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	ecx, [ebx+0Ch]
		movzx	eax, byte ptr [esi+18h]
		cmp	ecx, [ebx+8]
		jge	loc_75B10
		test	al, al
		jnz	loc_75A10
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax

loc_758DC:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+1C3j
		add	dword ptr [ebx+0Ch], 1

loc_758E0:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+2B4j
		mov	eax, [esi+1Ch]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		lea	eax, [esi+20h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	edx, [ebx+8]
		xor	eax, eax
		mov	ecx, [ebx+0Ch]

loc_75906:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+FAj
		mov	edi, [esi+eax*4+40h]
		test	edi, edi
		jz	loc_75A30
		cmp	ecx, edx
		jge	loc_75AF0
		mov	edi, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [edi+edx*4]
		mov	edi, 1
		shl	edi, cl
		or	[edx], edi
		add	dword ptr [ebx+0Ch], 1

loc_75931:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+294j
		mov	edx, [esi+eax*4+40h]
		mov	ecx, [ebx+8]
		mov	[ebp+var_1C], edx
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 1Fh
		jg	loc_75A60
		mov	[ebx+0Ch], ecx
		mov	edx, ecx
		mov	byte ptr [ebx+10h], 1

loc_75954:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+1FBj
					; CLC_ClientInfo::WriteToBuffer(bf_write &)+284j ...
		add	eax, 1
		cmp	eax, 4
		jnz	short loc_75906
		cmp	ecx, edx
		movzx	eax, byte ptr [esi+19h]
		jge	loc_75B20
		test	al, al
		jz	loc_75B30
		mov	edi, [ebx]
		mov	eax, ecx
		mov	edx, 1
		sar	eax, 5
		shl	edx, cl
		lea	eax, [edi+eax*4]
		or	[eax], edx

loc_75983:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+2E5j
		add	dword ptr [ebx+0Ch], 1
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_759A0:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_75891
; ---------------------------------------------------------------------------
		align 10h

loc_75A10:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+61j
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		jmp	loc_758DC
; ---------------------------------------------------------------------------
		align 10h

loc_75A30:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+ACj
		cmp	ecx, edx
		jge	loc_75B00
		mov	edi, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [edi+edx*4]
		mov	edi, 1
		shl	edi, cl
		mov	ecx, edi
		not	ecx
		and	[edx], ecx
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx+8]
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		jmp	loc_75954
; ---------------------------------------------------------------------------

loc_75A60:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+E5j
		mov	ecx, edx
		mov	edi, [ebp+var_1C]
		mov	[ebp+var_28], 0FFFFFFFFh
		and	ecx, 1Fh
		mov	[ebp+var_24], ecx
		lea	ecx, [edx+20h]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		rol	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_24]
		mov	[ebp+var_1C], edi
		mov	edi, 7FFFFFFFh
		shr	edi, cl
		mov	ecx, [edx]
		mov	[ebp+var_2C], ecx
		mov	ecx, edi
		and	ecx, 1
		lea	ecx, [edx+ecx*4]
		mov	[ebp+var_30], ecx
		mov	ecx, [ecx]
		mov	[ebp+var_34], ecx
		mov	ecx, [ebp+var_1C]
		xor	ecx, [ebp+var_2C]
		mov	[ebp+var_38], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		shl	[ebp+var_28], cl
		mov	ecx, [ebp+var_28]
		and	[ebp+var_38], ecx
		mov	ecx, [ebp+var_1C]
		xor	ecx, [ebp+var_34]
		and	ecx, edi
		mov	edi, [ebp+var_30]
		xor	ecx, [ebp+var_34]
		mov	[edi], ecx
		mov	edi, [ebp+var_2C]
		xor	[ebp+var_38], edi
		mov	edi, [ebp+var_38]
		mov	[edx], edi
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx+8]
		jmp	loc_75954
; ---------------------------------------------------------------------------
		align 10h

loc_75AF0:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+B4j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75931
; ---------------------------------------------------------------------------
		align 10h

loc_75B00:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+1D2j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75954
; ---------------------------------------------------------------------------
		align 10h

loc_75B10:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+59j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_758E0
; ---------------------------------------------------------------------------
		align 10h

loc_75B20:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+102j
		mov	byte ptr [ebx+10h], 1
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_75B30:				; CODE XREF: CLC_ClientInfo::WriteToBuffer(bf_write &)+10Aj
		mov	esi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [esi+edx*4]
		and	[edx], eax
		jmp	loc_75983
_ZN14CLC_ClientInfo13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::WriteToBuffer(bf_write &)
_ZN16CLC_FileMD5Check13WriteToBufferER8bf_write	proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_75D30
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		cmp	ecx, [ebx+8]
		jge	loc_75D9D

loc_75B8D:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+247j
		mov	edi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		shl	eax, cl
		sar	edx, 5
		not	eax
		lea	edx, [edi+edx*4]
		and	[edx], eax
		lea	edi, [esi+10h]
		mov	eax, edi
		add	dword ptr [ebx+0Ch], 1
		call	_ZL16FindCommonPathIDPKc ; FindCommonPathID(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	loc_75DB4

loc_75BB9:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+25Ej
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 1
		jle	loc_75ED0
		mov	ecx, edx
		add	eax, 1
		mov	edi, 1
		and	ecx, 1Fh
		mov	[ebp+var_24], 3
		mov	[ebp+var_20], ecx
		lea	ecx, [edx+2]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_1C], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_28], eax
		lea	eax, [edx+edi*4]
		mov	[ebp+var_2C], eax
		mov	eax, [eax]
		shl	[ebp+var_24], cl
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_1C]
		xor	ecx, [ebp+var_34]
		xor	eax, [ebp+var_28]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		and	eax, [ebp+var_24]
		mov	[edi], ecx
		xor	eax, [ebp+var_28]
		mov	[edx], eax

loc_75C39:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+2D7j
					; CLC_FileMD5Check::WriteToBuffer(bf_write &)+387j
		lea	edi, [esi+114h]
		mov	eax, edi
		call	_ZL16FindCommonPrefixPKc ; FindCommonPrefix(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	loc_75E40
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 2
		jle	loc_75E30
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3
		and	ecx, 1Fh
		mov	[ebp+var_28], 7
		mov	[ebp+var_24], ecx
		lea	ecx, [edx+3]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		lea	edx, [edi+edx*4]
		lea	edi, [eax+1]
		rol	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_24]
		shr	[ebp+var_20], cl
		mov	ecx, [edx]
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebp+var_20]
		and	ecx, 1
		lea	ecx, [edx+ecx*4]
		mov	[ebp+var_30], ecx
		mov	ecx, [ecx]
		mov	[ebp+var_38], ecx
		mov	ecx, [ebp+var_2C]
		xor	ecx, edi
		mov	[ebp+var_3C], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		shl	[ebp+var_28], cl
		mov	ecx, [ebp+var_28]
		and	[ebp+var_3C], ecx
		mov	ecx, [ebp+var_38]
		xor	ecx, edi
		mov	edi, [ebp+var_30]
		and	ecx, [ebp+var_20]
		xor	ecx, [ebp+var_38]
		mov	[edi], ecx
		mov	edi, [ebp+var_2C]
		xor	[ebp+var_3C], edi
		mov	edi, [ebp+var_3C]
		mov	[edx], edi

loc_75CE0:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+2E7j
		mov	eax, g_MostCommonPrefixes[eax*4]
		mov	[esp], eax	; s
		call	strlen
		mov	[esp], ebx
		lea	eax, [esi+eax+115h]
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)

loc_75D02:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+36Bj
		add	esi, 218h
		mov	[esp], ebx
		mov	[esp+4], esi
		mov	dword ptr [esp+8], 10h
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 4Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_75D30:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+0Ch]
		cmp	ecx, [ebx+8]
		jl	loc_75B8D

loc_75D9D:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+37j
		lea	edi, [esi+10h]
		mov	byte ptr [ebx+10h], 1
		mov	eax, edi
		call	_ZL16FindCommonPathIDPKc ; FindCommonPathID(char  const*)
		cmp	eax, 0FFFFFFFFh
		jnz	loc_75BB9

loc_75DB4:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+63j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1
		jle	loc_75EE0
		lea	edx, [eax+2]
		mov	ecx, eax
		mov	[ebp+var_1C], 1
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		mov	[ebp+var_20], ecx
		mov	ecx, 1Fh
		sar	eax, 5
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_28], 3
		lea	eax, [edx+eax*4]
		mov	edx, [eax]
		shr	[ebp+var_1C], cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_24], edx
		shl	[ebp+var_28], cl
		mov	ecx, [ebp+var_1C]
		and	[ebp+var_28], edx
		mov	edx, [ebp+var_1C]
		not	edx
		and	[eax+ecx*4], edx
		mov	edx, [ebp+var_24]
		xor	[ebp+var_28], edx
		mov	edx, [ebp+var_28]
		mov	[eax], edx

loc_75E1B:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+397j
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		jmp	loc_75C39
; ---------------------------------------------------------------------------
		align 10h

loc_75E30:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+10Cj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75CE0
; ---------------------------------------------------------------------------
		align 10h

loc_75E40:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+F9j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 2
		jle	short loc_75EC0
		lea	edx, [eax+3]
		mov	ecx, eax
		sar	eax, 5
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		mov	[ebp+var_20], ecx
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_1C], 3
		mov	[ebp+var_2C], 7
		lea	eax, [edx+eax*4]
		mov	edx, [eax]
		shr	[ebp+var_1C], cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_1C]
		shl	[ebp+var_2C], cl
		and	edx, 1
		mov	[ebp+var_28], edx
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_28]
		and	[ebp+var_2C], edx
		mov	edx, [ebp+var_1C]
		not	edx
		and	[eax+ecx*4], edx
		mov	edx, [ebp+var_24]
		xor	[ebp+var_2C], edx
		mov	edx, [ebp+var_2C]
		mov	[eax], edx

loc_75EAF:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+377j
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		jmp	loc_75D02
; ---------------------------------------------------------------------------

loc_75EC0:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+2FDj
		mov	[ebx+0Ch], edx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_75EAF
; ---------------------------------------------------------------------------
		align 10h

loc_75ED0:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+76j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75C39
; ---------------------------------------------------------------------------
		align 10h

loc_75EE0:				; CODE XREF: CLC_FileMD5Check::WriteToBuffer(bf_write &)+271j
		mov	[ebx+0Ch], edx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75E1B
_ZN16CLC_FileMD5Check13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::WriteToBuffer(bf_write &)
_ZN16CLC_FileCRCCheck13WriteToBufferER8bf_write	proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_76130
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx+0Ch]
		mov	byte ptr [ebx+10h], 1
		cmp	ecx, [ebx+8]
		jge	loc_7619D

loc_75F2D:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+2A7j
		mov	edi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		shl	eax, cl
		sar	edx, 5
		not	eax
		lea	edx, [edi+edx*4]
		and	[edx], eax
		lea	edi, [esi+10h]
		mov	eax, edi
		add	dword ptr [ebx+0Ch], 1
		call	_ZL16FindCommonPathIDPKc ; FindCommonPathID(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	loc_761B4

loc_75F59:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+2BEj
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 1
		jle	loc_762F0
		mov	ecx, edx
		add	eax, 1
		mov	edi, 1
		and	ecx, 1Fh
		mov	[ebp+var_24], 3
		mov	[ebp+var_20], ecx
		lea	ecx, [edx+2]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_1C], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_28], eax
		lea	eax, [edx+edi*4]
		mov	[ebp+var_2C], eax
		mov	eax, [eax]
		shl	[ebp+var_24], cl
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_1C]
		xor	ecx, [ebp+var_34]
		xor	eax, [ebp+var_28]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		and	eax, [ebp+var_24]
		mov	[edi], ecx
		xor	eax, [ebp+var_28]
		mov	[edx], eax

loc_75FD9:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+337j
					; CLC_FileCRCCheck::WriteToBuffer(bf_write &)+407j
		lea	edi, [esi+114h]
		mov	eax, edi
		call	_ZL16FindCommonPrefixPKc ; FindCommonPrefix(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	loc_76260
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 2
		jle	loc_76230
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3
		and	ecx, 1Fh
		mov	[ebp+var_28], 7
		mov	[ebp+var_24], ecx
		lea	ecx, [edx+3]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		lea	edx, [edi+edx*4]
		lea	edi, [eax+1]
		rol	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_24]
		shr	[ebp+var_20], cl
		mov	ecx, [edx]
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebp+var_20]
		and	ecx, 1
		lea	ecx, [edx+ecx*4]
		mov	[ebp+var_30], ecx
		mov	ecx, [ecx]
		mov	[ebp+var_38], ecx
		mov	ecx, [ebp+var_2C]
		xor	ecx, edi
		mov	[ebp+var_3C], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		shl	[ebp+var_28], cl
		mov	ecx, [ebp+var_28]
		and	[ebp+var_3C], ecx
		mov	ecx, [ebp+var_38]
		xor	ecx, edi
		mov	edi, [ebp+var_30]
		and	ecx, [ebp+var_20]
		xor	ecx, [ebp+var_38]
		mov	[edi], ecx
		mov	edi, [ebp+var_2C]
		xor	[ebp+var_3C], edi
		mov	edi, [ebp+var_3C]
		mov	[edx], edi

loc_76080:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+347j
		mov	eax, g_MostCommonPrefixes[eax*4]
		mov	[esp], eax	; s
		call	strlen
		mov	[esp], ebx
		lea	eax, [esi+eax+115h]
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)

loc_760A2:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+3EBj
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+218h]
		mov	esi, ecx
		sub	esi, eax
		cmp	esi, 1Fh
		jle	loc_76240
		mov	ecx, eax
		mov	esi, [ebx]
		mov	[ebp+var_20], 0FFFFFFFFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+20h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [esi+eax*4]
		mov	esi, 7FFFFFFFh
		mov	edi, [eax]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], edi
		shr	esi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edx, esi
		and	edx, 1
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_28]
		shl	[ebp+var_20], cl
		mov	ecx, [edi]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, esi
		xor	ecx, [edi]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 4Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_76130:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		mov	ecx, [ebx+0Ch]
		cmp	ecx, [ebx+8]
		jl	loc_75F2D

loc_7619D:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+37j
		lea	edi, [esi+10h]
		mov	byte ptr [ebx+10h], 1
		mov	eax, edi
		call	_ZL16FindCommonPathIDPKc ; FindCommonPathID(char  const*)
		cmp	eax, 0FFFFFFFFh
		jnz	loc_75F59

loc_761B4:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+63j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1
		jle	loc_76300
		lea	edx, [eax+2]
		mov	ecx, eax
		mov	[ebp+var_1C], 1
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		mov	[ebp+var_20], ecx
		mov	ecx, 1Fh
		sar	eax, 5
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_28], 3
		lea	eax, [edx+eax*4]
		mov	edx, [eax]
		shr	[ebp+var_1C], cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_24], edx
		shl	[ebp+var_28], cl
		mov	ecx, [ebp+var_1C]
		and	[ebp+var_28], edx
		mov	edx, [ebp+var_1C]
		not	edx
		and	[eax+ecx*4], edx
		mov	edx, [ebp+var_24]
		xor	[ebp+var_28], edx
		mov	edx, [ebp+var_28]
		mov	[eax], edx

loc_7621B:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+417j
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		jmp	loc_75FD9
; ---------------------------------------------------------------------------
		align 10h

loc_76230:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+10Cj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_76080
; ---------------------------------------------------------------------------
		align 10h

loc_76240:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+1C5j
		mov	byte ptr [ebx+10h], 1
		mov	[ebx+0Ch], ecx
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 4Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_76260:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+F9j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 2
		jle	short loc_762E0
		lea	edx, [eax+3]
		mov	ecx, eax
		sar	eax, 5
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		mov	[ebp+var_20], ecx
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_1C], 3
		mov	[ebp+var_2C], 7
		lea	eax, [edx+eax*4]
		mov	edx, [eax]
		shr	[ebp+var_1C], cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_1C]
		shl	[ebp+var_2C], cl
		and	edx, 1
		mov	[ebp+var_28], edx
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_28]
		and	[ebp+var_2C], edx
		mov	edx, [ebp+var_1C]
		not	edx
		and	[eax+ecx*4], edx
		mov	edx, [ebp+var_24]
		xor	[ebp+var_2C], edx
		mov	edx, [ebp+var_2C]
		mov	[eax], edx

loc_762CF:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+3F7j
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		jmp	loc_760A2
; ---------------------------------------------------------------------------

loc_762E0:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+37Dj
		mov	[ebx+0Ch], edx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_762CF
; ---------------------------------------------------------------------------
		align 10h

loc_762F0:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+76j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_75FD9
; ---------------------------------------------------------------------------
		align 10h

loc_76300:				; CODE XREF: CLC_FileCRCCheck::WriteToBuffer(bf_write &)+2D1j
		mov	[ebx+0Ch], edx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_7621B
_ZN16CLC_FileCRCCheck13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::WriteToBuffer(bf_write	&)
_ZN13SVC_ClassInfo13WriteToBufferER8bf_write proc near
					; CODE XREF: CHLTVDemoRecorder::WriteSignonData(void)+118p
					; CReplayDemoRecorder::WriteSignonData(void)+EEp ...

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		cmp	byte ptr [esi+10h], 0
		jnz	short loc_7632B
		mov	eax, [esi+20h]
		mov	[esi+28h], eax

loc_7632B:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+13j
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_764C0
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_7634D:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+214j
		mov	eax, [esi+28h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	_Z6Q_log2i	; Q_log2(int)
		mov	ecx, [ebx+0Ch]
		lea	edx, [eax+1]
		mov	[ebp+var_28], edx
		movzx	edx, byte ptr [esi+10h]
		cmp	ecx, [ebx+8]
		jge	loc_76560
		test	dl, dl
		mov	edx, ecx
		jnz	loc_76530
		mov	edi, [ebx]
		sar	edx, 5
		lea	edx, [edi+edx*4]
		mov	edi, 1
		shl	edi, cl
		not	edi
		and	[edx], edi

loc_7639A:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+231j
		add	dword ptr [ebx+0Ch], 1

loc_7639E:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+254j
		cmp	byte ptr [esi+10h], 0
		jnz	loc_76550
		mov	ecx, [esi+28h]
		test	ecx, ecx
		jle	loc_76550
		mov	ecx, eax
		mov	edx, 1
		xor	edi, edi
		shl	edx, cl
		mov	[ebp+var_1C], 0
		lea	eax, [edx+edx-1]
		sub	edx, 1
		mov	[ebp+var_24], esi
		mov	[ebp+var_38], eax
		mov	[ebp+var_3C], edx
		jmp	short loc_76421
; ---------------------------------------------------------------------------
		align 10h

loc_763E0:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+12Bj
		mov	[ebx+0Ch], edx
		mov	byte ptr [ebx+10h], 1

loc_763E7:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+1A7j
		lea	eax, [esi+104h]
		add	esi, 4
		mov	[esp], ebx
		mov	[esp+4], eax
		add	edi, 204h
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	edx, [ebp+var_24]
		add	[ebp+var_1C], 1
		mov	ecx, [ebp+var_1C]
		cmp	[edx+28h], ecx
		jle	loc_76550

loc_76421:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+C5j
		mov	edx, [ebp+var_24]
		mov	esi, edi
		add	esi, [edx+14h]
		mov	edx, [ebx+8]
		mov	eax, [esi]
		mov	ecx, edx
		mov	[ebp+var_20], eax
		mov	eax, [ebx+0Ch]
		sub	ecx, eax
		cmp	[ebp+var_28], ecx
		jg	short loc_763E0
		mov	ecx, eax
		mov	edx, [ebx]
		and	ecx, 1Fh
		mov	[ebp+var_44], ecx
		mov	ecx, [ebp+var_28]
		add	ecx, eax
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		lea	eax, [edx+eax*4]
		movzx	ecx, byte ptr [ebp+var_44]
		mov	edx, [ebp+var_20]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_44]
		mov	[ebp+var_20], edx
		mov	edx, [ebp+var_3C]
		shr	edx, cl
		mov	[ebp+var_2C], edx
		mov	edx, [eax]
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_30], edx
		and	ecx, 1
		lea	ecx, [eax+ecx*4]
		mov	edx, [ecx]
		mov	[ebp+var_34], ecx
		movzx	ecx, byte ptr [ebp+var_44]
		mov	[ebp+var_40], edx
		mov	edx, [ebp+var_38]
		shl	edx, cl
		mov	ecx, [ebp+var_30]
		xor	ecx, [ebp+var_20]
		and	edx, ecx
		mov	ecx, [ebp+var_40]
		mov	[ebp+var_44], edx
		mov	edx, [ebp+var_34]
		xor	ecx, [ebp+var_20]
		and	ecx, [ebp+var_2C]
		xor	ecx, [ebp+var_40]
		mov	[edx], ecx
		mov	edx, [ebp+var_30]
		xor	[ebp+var_44], edx
		mov	ecx, [ebp+var_44]
		mov	[eax], ecx
		jmp	loc_763E7
; ---------------------------------------------------------------------------
		align 10h

loc_764C0:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+30j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		mov	eax, [edx]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		and	ecx, [ebp+var_28]
		and	eax, [ebp+var_20]
		xor	ecx, [edi]
		xor	eax, [ebp+var_2C]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_7634D
; ---------------------------------------------------------------------------
		align 10h

loc_76530:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+71j
		mov	edi, [ebx]
		sar	edx, 5
		lea	edx, [edi+edx*4]
		mov	edi, 1
		shl	edi, cl
		or	[edx], edi
		jmp	loc_7639A
; ---------------------------------------------------------------------------
		align 10h

loc_76550:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+92j
					; SVC_ClassInfo::WriteToBuffer(bf_write	&)+9Dj	...
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 4Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_76560:				; CODE XREF: SVC_ClassInfo::WriteToBuffer(bf_write &)+67j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_7639E
_ZN13SVC_ClassInfo13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::WriteToBuffer(bf_write	&)
_ZN21SVC_UpdateStringTable13WriteToBufferER8bf_write proc near
					; CODE XREF: CNetworkStringTableContainer::WriteUpdateMessage(CBaseClient *,int,bf_write &)+1B6p
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_766B8
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_765A1:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+1A9j
		mov	eax, [esi+40h]
		mov	[esi+18h], eax
		mov	dword ptr [esp], 20h
		call	_Z6Q_log2i	; Q_log2(int)
		mov	edi, [esi+10h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	[ebp+var_1C], edi
		mov	edi, ecx
		sub	edi, edx
		cmp	eax, edi
		jle	loc_76720
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		mov	ecx, [ebx+0Ch]
		cmp	dword ptr [esi+14h], 1
		jz	loc_767A7

loc_765DF:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+231j
		cmp	ecx, [ebx+8]
		jge	loc_767D0
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		add	dword ptr [ebx+0Ch], 1

loc_765FF:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+264j
		mov	eax, [esi+14h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteWordEi ; bf_write::WriteWord(int)

loc_7660E:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+255j
					; SVC_UpdateStringTable::WriteToBuffer(bf_write	&)+284j
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+18h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 13h
		jle	loc_767E0
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], offset loc_FFFFF
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+14h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, offset byte_7FFFF
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_34]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx

loc_76693:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+277j
		mov	eax, [esi+18h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+34h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_766B8:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	edi, [ebx]
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	edx, [edi+edx*4]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_765A1
; ---------------------------------------------------------------------------
		align 10h

loc_76720:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+55j
		mov	ecx, edx
		mov	edi, [ebp+var_1C]
		and	ecx, 1Fh
		mov	[ebp+var_24], ecx
		lea	ecx, [eax+edx]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		rol	edi, cl
		mov	[ebp+var_1C], edi
		lea	ecx, [eax-1]
		mov	edi, 1
		shl	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_24]
		lea	eax, [edi-1]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_24]
		mov	[ebp+var_20], eax
		mov	eax, [edx]
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_20]
		and	eax, 1
		lea	eax, [edx+eax*4]
		mov	[ebp+var_2C], eax
		mov	eax, [eax]
		mov	[ebp+var_30], eax
		lea	eax, [edi+edi-1]
		mov	edi, [ebp+var_2C]
		shl	eax, cl
		mov	ecx, [ebp+var_28]
		xor	ecx, [ebp+var_1C]
		and	eax, ecx
		mov	ecx, [ebp+var_30]
		xor	eax, [ebp+var_28]
		xor	ecx, [ebp+var_1C]
		and	ecx, [ebp+var_20]
		xor	ecx, [ebp+var_30]
		mov	[edi], ecx
		mov	[edx], eax
		cmp	dword ptr [esi+14h], 1
		mov	ecx, [ebx+0Ch]
		jnz	loc_765DF

loc_767A7:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+69j
		cmp	ecx, [ebx+8]
		jge	short loc_767F0
		mov	edi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [edi+edx*4]
		and	[edx], eax
		add	dword ptr [ebx+0Ch], 1
		jmp	loc_7660E
; ---------------------------------------------------------------------------
		align 10h

loc_767D0:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+72j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_765FF
; ---------------------------------------------------------------------------
		align 10h

loc_767E0:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+AEj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_76693
; ---------------------------------------------------------------------------
		align 10h

loc_767F0:				; CODE XREF: SVC_UpdateStringTable::WriteToBuffer(bf_write &)+23Aj
		mov	byte ptr [ebx+10h], 1
		jmp	loc_7660E
_ZN21SVC_UpdateStringTable13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::WriteToBuffer(bf_write &)
_ZN10SVC_Sounds13WriteToBufferER8bf_write proc near
					; CODE XREF: CGameClient::WriteGameSounds(bf_write &)+A0p
					; CVEngineServer::EmitAmbientSound(int,Vector  const&,char  const*,float,soundlevel_t,int,int,float)+499p
					; DATA XREF: ...

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi+40h]
		mov	[esi+18h], eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_768F0
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		mov	ecx, [ebx+0Ch]
		cmp	byte ptr [esi+10h], 0
		jz	loc_7695E

loc_76844:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+158j
		cmp	ecx, [ebx+8]
		jge	loc_76AD0
		mov	edi, [ebx]
		mov	eax, ecx
		mov	edx, 1
		sar	eax, 5
		shl	edx, cl
		lea	eax, [edi+eax*4]
		or	[eax], edx
		add	dword ptr [ebx+0Ch], 1

loc_76864:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+2D4j
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+18h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 7
		jle	loc_76AB0
		mov	ecx, eax
		mov	edi, 7Fh
		mov	[ebp+var_20], 0FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+8]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		mov	[edi], ecx
		xor	edx, [ebp+var_28]
		mov	[eax], edx
		jmp	loc_76A8A
; ---------------------------------------------------------------------------
		align 10h

loc_768F0:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+2Aj
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		cmp	byte ptr [esi+10h], 0
		mov	ecx, [ebx+0Ch]
		jnz	loc_76844

loc_7695E:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+3Ej
		cmp	ecx, [ebx+8]
		jge	loc_76AC0
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax
		add	dword ptr [ebx+0Ch], 1

loc_76980:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+2C4j
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+14h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 7
		jle	loc_76AB0
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], 0FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+8]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 7Fh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_34]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+18h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Fh
		jle	loc_76AB0
		mov	ecx, eax
		mov	edi, 7FFFh
		mov	[ebp+var_20], 0FFFFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+10h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_38], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_38]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_38]
		mov	[edi], ecx
		xor	edx, [ebp+var_28]
		mov	[eax], edx

loc_76A8A:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+E9j
					; SVC_Sounds::WriteToBuffer(bf_write &)+2B7j
		mov	eax, [esi+18h]
		mov	[esp+8], eax	; int
		mov	eax, [esi+34h]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_76AB0:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+74j
					; SVC_Sounds::WriteToBuffer(bf_write &)+190j ...
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	short loc_76A8A
; ---------------------------------------------------------------------------
		align 10h

loc_76AC0:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+161j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_76980
; ---------------------------------------------------------------------------
		align 10h

loc_76AD0:				; CODE XREF: SVC_Sounds::WriteToBuffer(bf_write	&)+47j
		mov	byte ptr [ebx+10h], 1
		jmp	loc_76864
_ZN10SVC_Sounds13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::WriteToBuffer(bf_write &)
_ZN12SVC_BSPDecal13WriteToBufferER8bf_write proc near
					; CODE XREF: CVEngineServer::StaticDecal(Vector	 const&,int,int,int,bool)+5Bp
					; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jg	loc_76C90
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_76B11:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+211j
		lea	eax, [esi+10h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write17WriteBitVec3CoordERK6Vector ; bf_write::WriteBitVec3Coord(Vector	const&)
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+1Ch]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 8
		jg	loc_76D68
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_76B3D:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+2F7j
		mov	ecx, [esi+20h]
		test	ecx, ecx
		mov	ecx, [ebx+0Ch]
		jz	loc_76D00
		cmp	ecx, [ebx+8]
		jge	loc_76E10
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		add	dword ptr [ebx+0Ch], 1

loc_76B6B:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+334j
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+20h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Ah
		jle	loc_76E00
		mov	ecx, eax
		mov	[ebp+var_2C], 3FFh
		mov	edi, [ebx]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Bh]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, [eax]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	[ebp+var_24], edi
		shr	[ebp+var_2C], cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edx, [ebp+var_2C]
		and	edx, 1
		lea	edx, [eax+edx*4]
		mov	[ebp+var_28], edx
		mov	edx, [edx]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+var_20]
		xor	edx, edi
		mov	edi, 7FFh
		shl	edi, cl
		mov	ecx, [ebp+var_34]
		and	edx, edi
		mov	edi, [ebp+var_28]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_20]
		and	ecx, [ebp+var_2C]
		xor	ecx, [ebp+var_34]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+24h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Bh
		jle	loc_76E00
		mov	ecx, eax
		mov	edi, 7FFh
		mov	[ebp+var_20], 0FFFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Ch]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_28], edi
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_2C]
		shl	[ebp+var_20], cl
		mov	ecx, [edi]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	edx, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		movzx	edx, byte ptr [esi+28h]
		cmp	ecx, eax
		jl	loc_76D36
		db	66h
		nop

loc_76C80:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+223j
					; SVC_BSPDecal::WriteToBuffer(bf_write &)+250j
		mov	byte ptr [ebx+10h], 1
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_76C90:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+24j
		mov	ecx, edx
		mov	[ebp+var_20], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [edx]
		rol	eax, cl
		mov	[ebp+var_24], eax
		mov	eax, 1Fh
		mov	ecx, eax
		mov	[ebp+var_2C], edi
		sub	ecx, [ebp+var_1C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], eax
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_76B11
; ---------------------------------------------------------------------------
		align 10h

loc_76D00:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+65j
		cmp	ecx, [ebx+8]
		jge	loc_76C80
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		add	ecx, 1
		mov	[ebx+0Ch], ecx

loc_76D2A:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+32Aj
		cmp	ecx, eax
		movzx	edx, byte ptr [esi+28h]
		jge	loc_76C80

loc_76D36:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+198j
		test	dl, dl
		jz	loc_76DE0
		mov	edi, [ebx]
		mov	eax, ecx
		mov	edx, 1
		sar	eax, 5
		shl	edx, cl
		lea	eax, [edi+eax*4]
		or	[eax], edx

loc_76D51:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+315j
		add	dword ptr [ebx+0Ch], 1
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_76D68:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+50j
		mov	ecx, eax
		mov	edi, [ebx]
		mov	[ebp+var_20], 1FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+9]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 0FFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_20], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_76B3D
; ---------------------------------------------------------------------------
		align 10h

loc_76DE0:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+258j
		mov	esi, [ebx]
		mov	edx, ecx
		mov	eax, 1
		sar	edx, 5
		shl	eax, cl
		not	eax
		lea	edx, [esi+edx*4]
		and	[edx], eax
		jmp	loc_76D51
; ---------------------------------------------------------------------------
		align 10h

loc_76E00:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+9Bj
					; SVC_BSPDecal::WriteToBuffer(bf_write &)+120j
		mov	[ebx+0Ch], ecx
		mov	eax, [ebx+8]
		mov	byte ptr [ebx+10h], 1
		jmp	loc_76D2A
; ---------------------------------------------------------------------------
		align 10h

loc_76E10:				; CODE XREF: SVC_BSPDecal::WriteToBuffer(bf_write &)+6Ej
		mov	byte ptr [ebx+10h], 1
		jmp	loc_76B6B
_ZN12SVC_BSPDecal13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::ReadFromBuffer(bf_read &)
_ZN15SVC_UserMessage14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_UserMessageo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_76ECD
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_usermessag ; "SVC_UserMessage::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN15SVC_UserMessage14ReadFromBufferER7bf_readE6tm_fmt ; SVC_UserMessage::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 3EAh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_2C], edi

loc_76ECD:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+39j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_76EF1
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_770B0

loc_76EF1:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+BCj
					; SVC_UserMessage::ReadFromBuffer(bf_read &)+2D9j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_77060
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_76F3B:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+24Dj
		mov	[esi+10h], edx
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Ah
		jle	loc_77048
		mov	edi, [ebx]
		lea	eax, [edx+0Bh]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Ah]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 7FFh

loc_76F87:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+235j
		mov	[esi+14h], eax
		mov	edx, [ebx]
		mov	[esi+18h], edx
		mov	edx, [ebx+4]
		mov	[esi+1Ch], edx
		mov	edx, [ebx+8]
		mov	[esi+20h], edx
		mov	edx, [ebx+0Ch]
		mov	[esi+24h], edx
		mov	edx, [ebx+10h]
		mov	[esi+28h], edx
		mov	edx, [ebx+14h]
		mov	[esi+2Ch], edx
		add	eax, [ebx+0Ch]
		js	short loc_77030
		cmp	eax, [ebx+8]
		jg	short loc_77030
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_76FBF:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+220j
		cmp	[ebp+var_19], 0
		jz	short loc_76FEB
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_76FD8
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		jz	short loc_76FEB

loc_76FD8:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+1ACj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_77078

loc_76FEB:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+1A3j
					; SVC_UserMessage::ReadFromBuffer(bf_read &)+1B6j ...
		mov	esi, [ebp+var_2C]
		test	esi, esi
		jz	short loc_77021
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_77021:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+1D0j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_77030:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+190j
					; SVC_UserMessage::ReadFromBuffer(bf_read &)+195j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_76FBF
; ---------------------------------------------------------------------------
		align 4

loc_77048:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+12Bj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_76F87
; ---------------------------------------------------------------------------
		align 10h

loc_77060:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+DEj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_76F3B
; ---------------------------------------------------------------------------
		align 8

loc_77078:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+1C5j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_77100
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_77096:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+2E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_76FEB
; ---------------------------------------------------------------------------
		align 10h

loc_770B0:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+CBj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_usermessag	; "SVC_UserMessage::ReadFromBuffer"
		jz	short loc_770EA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_usermessag ; "SVC_UserMessage::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_770EA:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+29Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_76EF1
; ---------------------------------------------------------------------------
		align 10h

loc_77100:				; CODE XREF: SVC_UserMessage::ReadFromBuffer(bf_read &)+267j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_77096
_ZN15SVC_UserMessage14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_77109:				; CODE XREF: .text:00077150j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_7713E
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7713E:				; CODE XREF: .text:0007710Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_77109
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::ReadFromBuffer(bf_read &)
_ZN16CLC_ListenEvents14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'CLC_ListenEventso

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7720A
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_listeneven ; "CLC_ListenEvents::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CLC_ListenEvents14ReadFromBufferER7bf_readE6tm_fmt ; CLC_ListenEvents::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 0C2h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_34], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_2C], edx

loc_7720A:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+36j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7722E
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_77340

loc_7722E:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+B9j
					; CLC_ListenEvents::ReadFromBuffer(bf_read &)+229j
		xor	esi, esi
		jmp	short loc_7727B
; ---------------------------------------------------------------------------
		align 8

loc_77238:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+128j
		lea	edx, [eax+20h]
		mov	edi, eax
		mov	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		sub	ecx, edi
		sar	eax, 5
		mov	[ebp+var_30], ecx
		mov	ecx, [ebx]
		sar	edx, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		mov	ecx, edi
		shr	eax, cl
		or	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax+esi*4+10h], edx
		add	esi, 1
		cmp	esi, 10h
		jz	short loc_772A6

loc_7727B:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+D0j
					; CLC_ListenEvents::ReadFromBuffer(bf_read &)+144j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jg	short loc_77238
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	[eax+esi*4+10h], edx
		add	esi, 1
		cmp	esi, 10h
		jnz	short loc_7727B

loc_772A6:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+119j
		cmp	[ebp+var_19], 0
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_772D1
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_772C2
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_772D1

loc_772C2:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+157j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_77314

loc_772D1:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+14Ej
					; CLC_ListenEvents::ReadFromBuffer(bf_read &)+160j ...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_77307
		mov	ecx, [ebp+var_34]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_38]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	ecx, [ebp+var_2C]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [ecx+54h]

loc_77307:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+176j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_77314:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+16Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7738E
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_77332:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+233j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_772D1
; ---------------------------------------------------------------------------

loc_77340:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_listeneven	; "CLC_ListenEvents::ReadFromBuffer"
		jz	short loc_7737A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_listeneven ; "CLC_ListenEvents::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7737A:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+1EBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7722E
; ---------------------------------------------------------------------------

loc_7738E:				; CODE XREF: CLC_ListenEvents::ReadFromBuffer(bf_read &)+1C3j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_77332
_ZN16CLC_ListenEvents14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_77397:				; CODE XREF: .text:000773DFj
		mov	eax, [ebp-2Ch]
		test	eax, eax
		jz	short loc_773CD
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-2Ch]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_773CD:				; CODE XREF: .text:0007739Cj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_77397
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::ReadFromBuffer(bf_read	&)
_ZN13CLC_VoiceData14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_77495
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_voicedataR ; "CLC_VoiceData::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13CLC_VoiceData14ReadFromBufferER7bf_readE6tm_fmt ; CLC_VoiceData::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 2Eh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx

loc_77495:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+34j
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_774BE
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_77610

loc_774BE:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+B5j
					; CLC_VoiceData::ReadFromBuffer(bf_read	&)+269j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_775C8
		mov	[ebp+var_30], 20h
		lea	edx, [eax+10h]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		sub	[ebp+var_30], ecx
		mov	[ebp+var_2C], ecx
		lea	edx, [eax+0Fh]
		mov	ecx, [ebx]
		sar	edx, 5
		sar	eax, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh

loc_77510:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+1E5j
		mov	[esi+10h], edx
		mov	eax, [ebx]
		mov	[esi+14h], eax
		mov	eax, [ebx+4]
		mov	[esi+18h], eax
		mov	eax, [ebx+8]
		mov	[esi+1Ch], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+20h], eax
		mov	eax, [ebx+10h]
		mov	[esi+24h], eax
		mov	eax, [ebx+14h]
		mov	[esi+28h], eax
		add	edx, [ebx+0Ch]
		js	short loc_775B0
		cmp	edx, [ebx+8]
		jg	short loc_775B0
		mov	[ebx+0Ch], edx
		mov	ebx, 1

loc_77548:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+1D0j
		cmp	[ebp+var_19], 0
		jz	short loc_7756F
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_77560
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7756F

loc_77560:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+165j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_775E0

loc_7756F:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+15Cj
					; CLC_VoiceData::ReadFromBuffer(bf_read	&)+16Ej ...
		test	edi, edi
		jz	short loc_7759F
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_7759F:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+181j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_775B0:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+149j
					; CLC_VoiceData::ReadFromBuffer(bf_read	&)+14Ej
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	short loc_77548
; ---------------------------------------------------------------------------
		align 8

loc_775C8:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+DBj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_77510
; ---------------------------------------------------------------------------
		align 10h

loc_775E0:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+17Dj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_77660
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_775FE:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+275j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7756F
; ---------------------------------------------------------------------------
		align 10h

loc_77610:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_voicedataR	; "CLC_VoiceData::ReadFromBuffer"
		jz	short loc_7764A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_voicedataR ; "CLC_VoiceData::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7764A:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+22Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_774BE
; ---------------------------------------------------------------------------
		align 10h

loc_77660:				; CODE XREF: CLC_VoiceData::ReadFromBuffer(bf_read &)+1FFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_775FE
_ZN13CLC_VoiceData14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_77669:				; CODE XREF: .text:000776ABj
		test	edi, edi
		jz	short loc_77699
		mov	edx, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [edi+54h]

loc_77699:				; CODE XREF: .text:0007766Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_77669
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::ReadFromBuffer(bf_read &)
_ZN8CLC_Move14ReadFromBufferER7bf_read proc near ; DATA	XREF: .rodata:`vtable for'CLC_Moveo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7775D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_moveReadfr ; "CLC_Move::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN8CLC_Move14ReadFromBufferER7bf_readE6tm_fmt ; CLC_Move::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 51h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_2C], edi

loc_7775D:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+39j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_77782
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_779A0

loc_77782:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+BDj
					; CLC_Move::ReadFromBuffer(bf_read &)+339j
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 3
		jle	loc_77950
		mov	edi, [ebx]
		lea	eax, [edx+4]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+3]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 0Fh

loc_777C9:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+2ADj
		mov	[esi+14h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 2
		jle	loc_77938
		mov	edi, [ebx]
		lea	eax, [edx+3]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+2]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 7

loc_77813:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+295j
		mov	[esi+10h], eax
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_77920
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh

loc_77860:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+27Dj
		mov	[esi+18h], edx
		mov	eax, [ebx]
		mov	[esi+1Ch], eax
		mov	eax, [ebx+4]
		mov	[esi+20h], eax
		mov	eax, [ebx+8]
		mov	[esi+24h], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+28h], eax
		mov	eax, [ebx+10h]
		mov	[esi+2Ch], eax
		mov	eax, [ebx+14h]
		mov	[esi+30h], eax
		add	edx, [ebx+0Ch]
		js	short loc_77908
		cmp	edx, [ebx+8]
		jg	short loc_77908
		mov	[ebx+0Ch], edx
		mov	ebx, 1

loc_77898:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+268j
		cmp	[ebp+var_19], 0
		jz	short loc_778C4
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_778B1
		mov	esi, dword ptr g_VProfCurrentProfile+100Ch
		test	esi, esi
		jz	short loc_778C4

loc_778B1:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+1F5j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_77968

loc_778C4:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+1ECj
					; CLC_Move::ReadFromBuffer(bf_read &)+1FFj ...
		mov	ecx, [ebp+var_2C]
		test	ecx, ecx
		jz	short loc_778FA
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_778FA:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+219j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_77908:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+1D9j
					; CLC_Move::ReadFromBuffer(bf_read &)+1DEj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_77898
; ---------------------------------------------------------------------------
		align 10h

loc_77920:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+173j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_77860
; ---------------------------------------------------------------------------
		align 8

loc_77938:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+129j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_77813
; ---------------------------------------------------------------------------
		align 10h

loc_77950:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+DFj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_777C9
; ---------------------------------------------------------------------------
		align 8

loc_77968:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+20Ej
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_779F0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_77986:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+345j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_778C4
; ---------------------------------------------------------------------------
		align 10h

loc_779A0:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_moveReadfr	; "CLC_Move::ReadFromBuffer"
		jz	short loc_779DA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_moveReadfr ; "CLC_Move::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_779DA:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+2FBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_77782
; ---------------------------------------------------------------------------
		align 10h

loc_779F0:				; CODE XREF: CLC_Move::ReadFromBuffer(bf_read &)+2C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_77986
_ZN8CLC_Move14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_779F9:				; CODE XREF: .text:00077A40j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_77A2E
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_77A2E:				; CODE XREF: .text:000779FDj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_779F9
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::ReadFromBuffer(bf_read &)
_ZN14CLC_ClientInfo14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'CLC_ClientInfoo

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		test	eax, eax
		jz	short loc_77AFA
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_clientinfo ; "CLC_ClientInfo::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN14CLC_ClientInfo14ReadFromBufferER7bf_readE6tm_fmt ; CLC_ClientInfo::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 81h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx
		mov	[ebp+var_30], edi

loc_77AFA:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+36j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_77B1E
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_77E10

loc_77B1E:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+B9j
					; CLC_ClientInfo::ReadFromBuffer(bf_read &)+409j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_77DC8
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	esi, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax

loc_77B5C:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+385j
		mov	edi, [ebp+arg_0]
		mov	[edi+14h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_77DB0
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	esi, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax

loc_77BA0:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+36Dj
		mov	edi, [ebp+arg_0]
		mov	[edi+10h], edx
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_77E70
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_77BCB:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+42Aj
		mov	edi, [ebp+arg_0]
		mov	[edi+18h], al
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_77D98
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	esi, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax

loc_77C0F:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+355j
		mov	edi, [ebp+arg_0]
		mov	eax, edi
		mov	[edi+1Ch], edx
		add	eax, 20h
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 20h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		xor	esi, esi

loc_77C40:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+271j
		mov	edi, [ebx+8]
		mov	ecx, [ebx+0Ch]
		mov	eax, edi
		sub	eax, ecx
		test	eax, eax
		jle	loc_77D68
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		mov	eax, [edx+eax*4]
		mov	[ebp+var_2C], edx
		lea	edx, [ecx+1]
		mov	[ebx+0Ch], edx
		shr	eax, cl
		test	al, 1
		jz	loc_77D70
		mov	eax, edi
		sub	eax, edx
		cmp	eax, 1Fh
		jle	loc_77D80
		lea	eax, [ecx+21h]
		mov	edi, edx
		add	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], eax
		mov	eax, 20h
		sub	eax, edi
		mov	[ebp+var_34], edi
		mov	edi, [ebp+var_2C]
		sar	ecx, 5
		mov	[ebp+var_44], eax
		sar	edx, 5
		mov	eax, [edi+ecx*4]
		movzx	ecx, byte ptr [ebp+var_44]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_34]
		shr	edx, cl
		or	eax, edx

loc_77CB4:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+33Dj
		mov	edi, [ebp+arg_0]
		mov	[edi+esi*4+40h], eax

loc_77CBB:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+32Bj
		add	esi, 1
		cmp	esi, 4
		jnz	loc_77C40
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_77E80
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_77CEC:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+43Aj
		mov	edi, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[edi+19h], al
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_77D21
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_77D0E
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_77D21

loc_77D0E:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+2B3j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_77DE0

loc_77D21:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+2AAj
					; CLC_ClientInfo::ReadFromBuffer(bf_read &)+2BCj ...
		mov	eax, [ebp+var_30]
		test	eax, eax
		jz	short loc_77D57
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_30]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_77D57:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+2D6j
		add	esp, 6Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_77D68:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+1FCj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_77D70:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+219j
		mov	edi, [ebp+arg_0]
		mov	dword ptr [edi+esi*4+40h], 0
		jmp	loc_77CBB
; ---------------------------------------------------------------------------

loc_77D80:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+226j
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_77CB4
; ---------------------------------------------------------------------------
		align 8

loc_77D98:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+18Ej
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_77C0F
; ---------------------------------------------------------------------------
		align 10h

loc_77DB0:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+11Fj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_77BA0
; ---------------------------------------------------------------------------
		align 8

loc_77DC8:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+DBj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_77B5C
; ---------------------------------------------------------------------------
		align 10h

loc_77DE0:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+2CBj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_77E60
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_77DFE:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+415j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_77D21
; ---------------------------------------------------------------------------
		align 10h

loc_77E10:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_clientinfo	; "CLC_ClientInfo::ReadFromBuffer"
		jz	short loc_77E4A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_clientinfo ; "CLC_ClientInfo::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_77E4A:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+3CBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_77B1E
; ---------------------------------------------------------------------------
		align 10h

loc_77E60:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+39Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_77DFE
; ---------------------------------------------------------------------------
		align 10h

loc_77E70:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+160j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_77BCB
; ---------------------------------------------------------------------------
		align 10h

loc_77E80:				; CODE XREF: CLC_ClientInfo::ReadFromBuffer(bf_read &)+281j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_77CEC
_ZN14CLC_ClientInfo14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_77E91:				; CODE XREF: .text:00077ED8j
		cmp	dword ptr [ebp-30h], 0
		jz	short loc_77EC6
		mov	eax, [ebp-40h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-3Ch]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-30h]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_77EC6:				; CODE XREF: .text:00077E95j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_77E91
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::ReadFromBuffer(bf_read &)
_ZN15CLC_BaselineAck14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'CLC_BaselineAcko

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_77F82
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_baselineac ; "CLC_BaselineAck::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN15CLC_BaselineAck14ReadFromBufferER7bf_readE6tm_fmt ; CLC_BaselineAck::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 0A6h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_77F82:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_77FA6
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_780F0

loc_77FA6:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+B1j
					; CLC_BaselineAck::ReadFromBuffer(bf_read &)+259j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_780A0
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_34], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_34]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_34]
		shr	eax, cl
		or	edx, eax

loc_77FEA:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+1CDj
		mov	edi, [ebp+arg_0]
		mov	[edi+10h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		test	ecx, ecx
		jle	loc_78140
		lea	edx, [eax+1]
		mov	edi, eax
		sar	eax, 5
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		and	edi, 1Fh
		mov	ecx, 20h
		sub	ecx, edi
		mov	edx, [edx+eax*4]
		mov	eax, edx
		shl	eax, cl
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx
		and	eax, 1

loc_78029:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+26Dj
		mov	edi, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[edi+14h], eax
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_7805A
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7804B
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7805A

loc_7804B:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+160j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_780B8

loc_7805A:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+157j
					; CLC_BaselineAck::ReadFromBuffer(bf_read &)+169j ...
		test	esi, esi
		jz	short loc_7808A
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7808A:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+17Cj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_780A0:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+D3j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_77FEA
; ---------------------------------------------------------------------------
		align 8

loc_780B8:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+178j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_78158
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_780DA:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+27Dj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7805A
; ---------------------------------------------------------------------------
		align 10h

loc_780F0:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_baselineac	; "CLC_BaselineAck::ReadFromBuffer"
		jz	short loc_7812A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_baselineac ; "CLC_BaselineAck::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7812A:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+21Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_77FA6
; ---------------------------------------------------------------------------
		align 10h

loc_78140:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+11Cj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_78029
; ---------------------------------------------------------------------------
		align 8

loc_78158:				; CODE XREF: CLC_BaselineAck::ReadFromBuffer(bf_read &)+1E7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_780DA
_ZN15CLC_BaselineAck14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_78164:				; CODE XREF: .text:000781A6j
		test	esi, esi
		jz	short loc_78194
		mov	edx, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_78194:				; CODE XREF: .text:00078166j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_78164
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::ReadFromBuffer(bf_read &)
_ZN20CLC_RespondCvarValue14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_78255
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_respondcva ; "CLC_RespondCvarValue::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN20CLC_RespondCvarValue14ReadFromBufferER7bf_readE6tm_fmt ; CLC_RespondCvarValue::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 0EBh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx

loc_78255:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+34j
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7827E
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_783A0

loc_7827E:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+B5j
					; CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+239j
		mov	dword ptr [esp+4], 20h
		mov	[esp], esi
		call	_ZN7bf_read12ReadSBitLongEi ; bf_read::ReadSBitLong(int)
		mov	[ebx+10h], eax
		mov	dword ptr [esp+4], 4
		mov	[esp], esi
		call	_ZN7bf_read12ReadSBitLongEi ; bf_read::ReadSBitLong(int)
		mov	[ebx+1Ch], eax
		lea	eax, [ebx+20h]
		mov	[ebp+var_2C], eax
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	[esp+4], eax
		mov	[esp], esi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edx, [ebp+var_2C]
		lea	eax, [ebx+120h]
		mov	[ebp+var_2C], eax
		mov	[ebx+14h], edx
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	[esp+4], eax
		mov	[esp], esi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edx, [ebp+var_2C]
		cmp	[ebp+var_19], 0
		mov	[ebx+18h], edx
		movzx	ebx, byte ptr [esi+10h]
		jz	short loc_78332
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_78323
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_78332

loc_78323:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+168j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_78370

loc_78332:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+15Fj
					; CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+171j	...
		test	edi, edi
		jz	short loc_78362
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_78362:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+184j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_78370:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+180j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_783F0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7838E:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+245j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_78332
; ---------------------------------------------------------------------------
		align 10h

loc_783A0:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_respondcva	; "CLC_RespondCvarValue::ReadFromBuffer"
		jz	short loc_783DA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_respondcva ; "CLC_RespondCvarValue::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_783DA:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+1FBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7827E
; ---------------------------------------------------------------------------
		align 10h

loc_783F0:				; CODE XREF: CLC_RespondCvarValue::ReadFromBuffer(bf_read &)+1CFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7838E
_ZN20CLC_RespondCvarValue14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_783F9:				; CODE XREF: .text:0007843Bj
		test	edi, edi
		jz	short loc_78429
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_78429:				; CODE XREF: .text:000783FBj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_783F9
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::ReadFromBuffer(bf_read &)
_ZN16CLC_FileCRCCheck14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko

var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_13C		= dword	ptr -13Ch
var_12C		= byte ptr -12Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 16Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_148], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_144], 0
		test	eax, eax
		jz	short loc_784F1
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_filecrcche ; "CLC_FileCRCCheck::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CLC_FileCRCCheck14ReadFromBufferER7bf_readE6tm_fmt ; CLC_FileCRCCheck::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 14Fh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_148], eax
		mov	[ebp+var_144], edx

loc_784F1:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+3Aj
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_78516
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_787A0

loc_78516:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+C1j
					; CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+3A9j
		mov	edx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, edx
		test	eax, eax
		jle	loc_78870
		add	edx, 1
		mov	[ebx+0Ch], edx

loc_7852C:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+438j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1
		jle	loc_78600
		mov	edi, [ebx]
		lea	edx, [eax+2]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1]
		mov	[ebp+var_13C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_13C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_13C]
		shr	eax, cl
		or	edx, eax
		and	edx, 3
		jz	loc_7860B
		sub	edx, 1
		xor	edi, edi
		cmp	edx, 2
		jnz	loc_78840

loc_78590:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+259j
					; CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+323j
		cmp	[ebp+var_19], 0
		jz	short loc_785BC
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_785A9
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_785BC

loc_785A9:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+15Dj
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_78770

loc_785BC:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+154j
					; CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+167j ...
		test	esi, esi
		jz	short loc_785F2
		mov	eax, [ebp+var_148]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_144]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_785F2:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+17Ej
		add	esp, 16Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_78600:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+F9j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_7860B:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+13Cj
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp], ebx
		add	eax, 10h
		mov	[esp+4], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)

loc_78635:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+421j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 2
		jle	loc_78800
		mov	edi, [ebx]
		lea	edx, [eax+3]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+2]
		mov	[ebp+var_13C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_13C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_13C]
		shr	eax, cl
		or	edx, eax
		and	edx, 7
		jz	loc_7880B
		sub	edx, 1
		xor	edi, edi
		cmp	edx, 3
		mov	[ebp+var_13C], edx
		ja	loc_78590
		lea	edi, [ebp+var_12C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	[esp+14h], edi
		mov	edi, [ebp+var_13C]
		mov	dword ptr [esp+10h], 2Fh
		mov	dword ptr [esp+8], offset aSCS ; "%s%c%s"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	eax, g_MostCommonPrefixes[edi*4]
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+arg_0]
		add	eax, 114h
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_78706:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+3F7j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_78880
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_13C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_13C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_13C]
		shr	eax, cl
		or	edx, eax

loc_78753:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+44Dj
		mov	edi, [ebp+arg_0]
		mov	[edi+218h], edx
		movzx	edi, byte ptr [ebx+10h]
		xor	edi, 1
		jmp	loc_78590
; ---------------------------------------------------------------------------
		align 10h

loc_78770:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+176j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_787F0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7878E:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+3B5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_785BC
; ---------------------------------------------------------------------------
		align 10h

loc_787A0:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+D0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_filecrcche	; "CLC_FileCRCCheck::ReadFromBuffer"
		jz	short loc_787DA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_filecrcche ; "CLC_FileCRCCheck::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_787DA:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+36Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_78516
; ---------------------------------------------------------------------------
		align 10h

loc_787F0:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+33Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7878E
; ---------------------------------------------------------------------------
		align 10h

loc_78800:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+202j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_7880B:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+245j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp], ebx
		add	eax, 114h
		mov	[esp+4], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		jmp	loc_78706
; ---------------------------------------------------------------------------
		align 10h

loc_78840:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+14Aj
		mov	eax, g_MostCommonPathIDs[edx*4]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_0]
		add	eax, 10h
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_78635
; ---------------------------------------------------------------------------
		align 10h

loc_78870:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+E0j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_7852C
; ---------------------------------------------------------------------------
		align 10h

loc_78880:				; CODE XREF: CLC_FileCRCCheck::ReadFromBuffer(bf_read &)+2D3j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_78753
_ZN16CLC_FileCRCCheck14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7889C:				; CODE XREF: .text:000788DCj
		test	esi, esi
		jz	short loc_788D2
		mov	edx, [ebp-148h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-144h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_788D2:				; CODE XREF: .text:0007889Ej
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7889C
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::ReadFromBuffer(bf_read &)
_ZN16CLC_FileMD5Check14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko

var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_13C		= dword	ptr -13Ch
var_12C		= byte ptr -12Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 16Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_148], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_144], 0
		test	eax, eax
		jz	short loc_78991
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aClc_filemd5che ; "CLC_FileMD5Check::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CLC_FileMD5Check14ReadFromBufferER7bf_readE6tm_fmt ; CLC_FileMD5Check::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 1A6h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_148], eax
		mov	[ebp+var_144], edx

loc_78991:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+3Aj
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_789B5
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_78C00

loc_789B5:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+C0j
					; CLC_FileMD5Check::ReadFromBuffer(bf_read &)+369j
		mov	edx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, edx
		test	eax, eax
		jle	loc_78CD0
		add	edx, 1
		mov	[ebx+0Ch], edx

loc_789CB:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+3F8j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1
		jle	loc_78AA0
		mov	edi, [ebx]
		lea	edx, [eax+2]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1]
		mov	[ebp+var_13C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_13C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_13C]
		shr	eax, cl
		or	edx, eax
		and	edx, 3
		jz	loc_78AAB
		sub	edx, 1
		xor	edi, edi
		cmp	edx, 2
		jnz	loc_78CA0

loc_78A2F:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+259j
					; CLC_FileMD5Check::ReadFromBuffer(bf_read &)+2E9j
		cmp	[ebp+var_19], 0
		jz	short loc_78A5A
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_78A47
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_78A5A

loc_78A47:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+15Cj
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_78BD0

loc_78A5A:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+153j
					; CLC_FileMD5Check::ReadFromBuffer(bf_read &)+165j ...
		test	esi, esi
		jz	short loc_78A90
		mov	eax, [ebp+var_148]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_144]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_78A90:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+17Cj
		add	esp, 16Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_78AA0:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+F8j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_78AAB:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+13Bj
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp], ebx
		add	eax, 10h
		mov	[esp+4], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)

loc_78AD5:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+3E1j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 2
		jle	loc_78C60
		mov	edi, [ebx]
		lea	edx, [eax+3]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+2]
		mov	[ebp+var_13C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_13C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_13C]
		shr	eax, cl
		or	edx, eax
		and	edx, 7
		jz	loc_78C6B
		sub	edx, 1
		xor	edi, edi
		cmp	edx, 3
		mov	[ebp+var_13C], edx
		ja	loc_78A2F
		lea	edi, [ebp+var_12C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	[esp+14h], edi
		mov	edi, [ebp+var_13C]
		mov	dword ptr [esp+10h], 2Fh
		mov	dword ptr [esp+8], offset aSCS ; "%s%c%s"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	eax, g_MostCommonPrefixes[edi*4]
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+arg_0]
		add	eax, 114h
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_78BA6:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+3B7j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+8], 10h
		mov	[esp], ebx
		add	eax, 218h
		mov	[esp+4], eax
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		movzx	edi, byte ptr [ebx+10h]
		xor	edi, 1
		jmp	loc_78A2F
; ---------------------------------------------------------------------------
		align 10h

loc_78BD0:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+174j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_78C50
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_78BEE:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+375j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_78A5A
; ---------------------------------------------------------------------------
		align 10h

loc_78C00:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+CFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aClc_filemd5che	; "CLC_FileMD5Check::ReadFromBuffer"
		jz	short loc_78C3A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aClc_filemd5che ; "CLC_FileMD5Check::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_78C3A:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+32Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_789B5
; ---------------------------------------------------------------------------
		align 10h

loc_78C50:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+2FFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_78BEE
; ---------------------------------------------------------------------------
		align 10h

loc_78C60:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+202j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_78C6B:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+245j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp], ebx
		add	eax, 114h
		mov	[esp+4], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		jmp	loc_78BA6
; ---------------------------------------------------------------------------
		align 10h

loc_78CA0:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+149j
		mov	eax, g_MostCommonPathIDs[edx*4]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_0]
		add	eax, 10h
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_78AD5
; ---------------------------------------------------------------------------
		align 10h

loc_78CD0:				; CODE XREF: CLC_FileMD5Check::ReadFromBuffer(bf_read &)+DFj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_789CB
_ZN16CLC_FileMD5Check14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_78CDF:				; CODE XREF: .text:00078D27j
		test	esi, esi
		jz	short loc_78D15
		mov	edx, [ebp-148h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-144h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_78D15:				; CODE XREF: .text:00078CE1j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_78CDF
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::ReadFromBuffer(bf_read &)
_ZN9SVC_Print14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'SVC_Printo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_78DD2
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_printReadf ; "SVC_Print::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN9SVC_Print14ReadFromBufferER7bf_readE6tm_fmt ; SVC_Print::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 272h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_78DD2:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_78DF6
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_78EC0

loc_78DF6:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+B1j
					; SVC_Print::ReadFromBuffer(bf_read &)+1D9j
		lea	eax, [esi+14h]
		mov	[esi+10h], eax
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 800h
		mov	[esp], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		cmp	[ebp+var_19], 0
		mov	esi, eax
		jz	short loc_78E4C
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_78E3D
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_78E4C

loc_78E3D:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+102j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_78E90

loc_78E4C:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+F9j
					; SVC_Print::ReadFromBuffer(bf_read &)+10Bj ...
		test	ebx, ebx
		jz	short loc_78E7C
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_78E7C:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+11Ej
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_78E90:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+11Aj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_78F10
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_78EAE:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+1E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_78E4C
; ---------------------------------------------------------------------------
		align 10h

loc_78EC0:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_printReadf	; "SVC_Print::ReadFromBuffer"
		jz	short loc_78EFA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_printReadf ; "SVC_Print::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_78EFA:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+19Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_78DF6
; ---------------------------------------------------------------------------
		align 10h

loc_78F10:				; CODE XREF: SVC_Print::ReadFromBuffer(bf_read &)+16Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_78EAE
_ZN9SVC_Print14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_78F19:				; CODE XREF: .text:00078F5Bj
		test	ebx, ebx
		jz	short loc_78F49
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_78F49:				; CODE XREF: .text:00078F1Bj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_78F19
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::ReadFromBuffer(bf_read	&)
_ZN13NET_StringCmd14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'NET_StringCmdo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_79002
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aNet_stringcmdR ; "NET_StringCmd::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13NET_StringCmd14ReadFromBufferER7bf_readE6tm_fmt ; NET_StringCmd::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 287h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_79002:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_79026
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_790F0

loc_79026:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+B1j
					; NET_StringCmd::ReadFromBuffer(bf_read	&)+1D9j
		lea	eax, [esi+14h]
		mov	[esi+10h], eax
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 400h
		mov	[esp], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		cmp	[ebp+var_19], 0
		mov	esi, eax
		jz	short loc_7907C
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7906D
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7907C

loc_7906D:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+102j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_790C0

loc_7907C:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+F9j
					; NET_StringCmd::ReadFromBuffer(bf_read	&)+10Bj ...
		test	ebx, ebx
		jz	short loc_790AC
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_790AC:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+11Ej
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_790C0:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+11Aj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_79140
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_790DE:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+1E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_7907C
; ---------------------------------------------------------------------------
		align 10h

loc_790F0:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aNet_stringcmdR	; "NET_StringCmd::ReadFromBuffer"
		jz	short loc_7912A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aNet_stringcmdR ; "NET_StringCmd::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7912A:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+19Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_79026
; ---------------------------------------------------------------------------
		align 10h

loc_79140:				; CODE XREF: NET_StringCmd::ReadFromBuffer(bf_read &)+16Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_790DE
_ZN13NET_StringCmd14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_79149:				; CODE XREF: .text:0007918Bj
		test	ebx, ebx
		jz	short loc_79179
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_79179:				; CODE XREF: .text:0007914Bj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_79149
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::ReadFromBuffer(bf_read &)
_ZN14SVC_ServerInfo14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_ServerInfoo

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		test	eax, eax
		jz	short loc_7923D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_serverinfo ; "SVC_ServerInfo::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN14SVC_ServerInfo14ReadFromBufferER7bf_readE6tm_fmt ; SVC_ServerInfo::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 2B0h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], edx
		mov	[ebp+var_2C], edi

loc_7923D:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+39j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_79262
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_797A0

loc_79262:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+BDj
					; SVC_ServerInfo::ReadFromBuffer(bf_read &)+659j
		lea	edi, [esi+54h]
		mov	[esi+44h], edi
		mov	[ebp+var_30], edi
		lea	edi, [esi+158h]
		mov	[esi+48h], edi
		mov	[ebp+var_34], edi
		lea	edi, [esi+25Ch]
		mov	[esi+4Ch], edi
		mov	[ebp+var_38], edi
		lea	edi, [esi+360h]
		mov	[esi+50h], edi
		mov	edx, [ebx+8]
		mov	[ebp+var_3C], edi
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_796A8
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax
		movsx	edx, dx

loc_792D6:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+525j
		mov	[esi+10h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_79690
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax

loc_7931D:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+50Dj
		mov	[esi+14h], edx
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_79800
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_79345:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+67Aj
		mov	[esi+19h], al
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_79810
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_7936D:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+68Aj
		mov	[esi+18h], al
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_79740
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax

loc_793B4:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+5BDj
		mov	[esi+30h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_79728
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh

loc_79401:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+5A5j
		cmp	dword ptr [esi+10h], 11h
		mov	[esi+38h], edx
		jg	loc_79708
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_79758
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax

loc_79452:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+5D5j
		mov	[esi+1Ch], edx

loc_79455:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+58Fj
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_796F0
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_7949F:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+56Dj
		mov	[esi+3Ch], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_796D8
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_794EC:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+555j
		mov	[esi+34h], edx
		mov	[esp], ebx
		call	_ZN7bf_read9ReadFloatEv	; bf_read::ReadFloat(void)
		fstp	dword ptr [esi+40h]
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_796C0
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_40], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_40]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	eax, edx

loc_7953E:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+53Dj
		mov	edi, [ebp+var_30]
		mov	[esi+1Bh], al
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edi, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp], ebx
		mov	[esp+4], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edi, [ebp+var_38]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp], ebx
		mov	[esp+4], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edi, [ebp+var_3C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp], ebx
		mov	[esp+4], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	eax, [esi+8]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+11Ch]
		cmp	eax, 0Fh
		jle	short loc_79618
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_79820
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_79615:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+69Aj
		mov	[esi+1Ah], al

loc_79618:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+45Ej
		cmp	[ebp+var_19], 0
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_79648
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_79635
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_79648

loc_79635:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+499j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_79770

loc_79648:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+490j
					; SVC_ServerInfo::ReadFromBuffer(bf_read &)+4A3j ...
		mov	edx, [ebp+var_2C]
		test	edx, edx
		jz	short loc_7967E
		mov	eax, [ebp+var_48]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_44]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7967E:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+4BDj
		add	esp, 6Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_79690:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+156j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7931D
; ---------------------------------------------------------------------------
		align 8

loc_796A8:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+10Cj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_792D6
; ---------------------------------------------------------------------------
		align 10h

loc_796C0:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+377j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7953E
; ---------------------------------------------------------------------------
		align 8

loc_796D8:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+31Fj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_794EC
; ---------------------------------------------------------------------------
		align 10h

loc_796F0:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+2D2j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7949F
; ---------------------------------------------------------------------------
		align 8

loc_79708:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+278j
		lea	eax, [esi+20h]
		mov	dword ptr [esp+8], 10h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		jmp	loc_79455
; ---------------------------------------------------------------------------
		align 8

loc_79728:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+234j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_79401
; ---------------------------------------------------------------------------
		align 10h

loc_79740:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+1EDj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_793B4
; ---------------------------------------------------------------------------
		align 8

loc_79758:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+28Bj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_79452
; ---------------------------------------------------------------------------
		align 10h

loc_79770:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+4B2j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_797F0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7978E:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+665j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_79648
; ---------------------------------------------------------------------------
		align 10h

loc_797A0:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_serverinfo	; "SVC_ServerInfo::ReadFromBuffer"
		jz	short loc_797DA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_serverinfo ; "SVC_ServerInfo::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_797DA:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+61Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_79262
; ---------------------------------------------------------------------------
		align 10h

loc_797F0:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+5EFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7978E
; ---------------------------------------------------------------------------
		align 10h

loc_79800:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+19Aj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_79345
; ---------------------------------------------------------------------------
		align 10h

loc_79810:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+1C2j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7936D
; ---------------------------------------------------------------------------
		align 10h

loc_79820:				; CODE XREF: SVC_ServerInfo::ReadFromBuffer(bf_read &)+46Aj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_79615
_ZN14SVC_ServerInfo14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_79831:				; CODE XREF: .text:00079878j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_79866
		mov	eax, [ebp-48h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-44h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_79866:				; CODE XREF: .text:00079835j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_79831
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::ReadFromBuffer(bf_read &)
_ZN15NET_SignonState14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'NET_SignonStateo

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_79922
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aNet_signonstat ; "NET_SignonState::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN15NET_SignonState14ReadFromBufferER7bf_readE6tm_fmt ; NET_SignonState::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 2F1h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_79922:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_79946
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_79AB0

loc_79946:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+B1j
					; NET_SignonState::ReadFromBuffer(bf_read &)+279j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_79A68
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_34], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_34]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_34]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_79990:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+1F5j
		mov	edi, [ebp+arg_0]
		mov	[edi+10h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_79A50
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_34], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_34]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_34]
		shr	eax, cl
		or	edx, eax

loc_799DA:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+1DDj
		mov	edi, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[edi+14h], edx
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_79A0B
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_799FC
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_79A0B

loc_799FC:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+171j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_79A80

loc_79A0B:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+168j
					; NET_SignonState::ReadFromBuffer(bf_read &)+17Aj ...
		test	esi, esi
		jz	short loc_79A3B
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_79A3B:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+18Dj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_79A50:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+123j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_799DA
; ---------------------------------------------------------------------------
		align 8

loc_79A68:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+D3j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_79990
; ---------------------------------------------------------------------------
		align 10h

loc_79A80:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+189j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_79B00
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_79A9E:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+285j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_79A0B
; ---------------------------------------------------------------------------
		align 10h

loc_79AB0:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aNet_signonstat	; "NET_SignonState::ReadFromBuffer"
		jz	short loc_79AEA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aNet_signonstat ; "NET_SignonState::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_79AEA:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+23Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_79946
; ---------------------------------------------------------------------------
		align 10h

loc_79B00:				; CODE XREF: NET_SignonState::ReadFromBuffer(bf_read &)+20Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_79A9E
_ZN15NET_SignonState14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_79B09:				; CODE XREF: .text:00079B4Bj
		test	esi, esi
		jz	short loc_79B39
		mov	edx, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_79B39:				; CODE XREF: .text:00079B0Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_79B09
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::ReadFromBuffer(bf_read &)
_ZN12SVC_BSPDecal14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_79BFA
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_bspdecalRe ; "SVC_BSPDecal::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN12SVC_BSPDecal14ReadFromBufferER7bf_readE6tm_fmt ; SVC_BSPDecal::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 316h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_34], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_2C], edx

loc_79BFA:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+36j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_79C1E
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_79E68

loc_79C1E:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+B9j
					; SVC_BSPDecal::ReadFromBuffer(bf_read &)+361j
		mov	eax, [ebp+arg_0]
		mov	[esp], ebx
		add	eax, 10h
		mov	[esp+4], eax
		call	_ZN7bf_read16ReadBitVec3CoordER6Vector ; bf_read::ReadBitVec3Coord(Vector &)
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 8
		jle	loc_79E00
		mov	edi, [ebx]
		lea	eax, [edx+9]
		mov	esi, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+8]
		sar	edx, 5
		sar	eax, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		mov	ecx, esi
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFh

loc_79C73:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+2BDj
		mov	edx, [ebp+arg_0]
		mov	[edx+1Ch], eax
		mov	edi, [ebx+8]
		mov	ecx, [ebx+0Ch]
		mov	eax, edi
		sub	eax, ecx
		test	eax, eax
		jle	loc_79D40
		mov	esi, [ebx]
		lea	edx, [ecx+1]
		mov	eax, ecx
		sar	eax, 5
		mov	eax, [esi+eax*4]
		mov	[ebx+0Ch], edx
		shr	eax, cl
		test	al, 1
		jz	loc_79D50
		mov	eax, edi
		sub	eax, edx
		cmp	eax, 0Ah
		jle	loc_79E18
		mov	eax, edx
		mov	edi, 20h
		sar	edx, 5
		and	eax, 1Fh
		mov	[ebp+var_30], eax
		lea	eax, [ecx+0Ch]
		add	ecx, 0Bh
		mov	[ebx+0Ch], eax
		sar	ecx, 5
		sub	edi, [ebp+var_30]
		mov	eax, [esi+ecx*4]
		mov	edx, [esi+edx*4]
		mov	ecx, edi
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 7FFh

loc_79CE8:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+2D5j
		mov	edx, [ebp+arg_0]
		mov	[edx+20h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Bh
		jle	loc_79EC0
		mov	edi, [ebx]
		lea	eax, [edx+0Ch]
		mov	esi, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Bh]
		sar	edx, 5
		sar	eax, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		mov	ecx, esi
		shr	edx, cl
		or	eax, edx
		and	eax, 0FFFh

loc_79D31:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+37Dj
		mov	edx, [ebp+arg_0]
		mov	[edx+24h], eax
		jmp	short loc_79D61
; ---------------------------------------------------------------------------
		align 10h

loc_79D40:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+135j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		nop
		lea	esi, [esi+0]

loc_79D50:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+14Fj
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+20h], 0
		mov	dword ptr [ecx+24h], 0

loc_79D61:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+1E7j
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_79EE8
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_79D86:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+3A2j
		mov	edx, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[edx+28h], al
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_79DB7
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_79DA8
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_79DB7

loc_79DA8:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+24Dj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_79E30

loc_79DB7:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+244j
					; SVC_BSPDecal::ReadFromBuffer(bf_read &)+256j	...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_79DED
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_2C]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_79DED:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+26Cj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_79E00:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+EDj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_79C73
; ---------------------------------------------------------------------------
		align 8

loc_79E18:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+15Cj
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_79CE8
; ---------------------------------------------------------------------------
		align 10h

loc_79E30:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+265j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_79ED8
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_79E52:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+38Dj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_79DB7
; ---------------------------------------------------------------------------
		align 8

loc_79E68:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_bspdecalRe	; "SVC_BSPDecal::ReadFromBuffer"
		jz	short loc_79EA2
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_bspdecalRe ; "SVC_BSPDecal::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_79EA2:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+323j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_79C1E
; ---------------------------------------------------------------------------
		align 10h

loc_79EC0:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+1ABj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_79D31
; ---------------------------------------------------------------------------
		align 8

loc_79ED8:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+2EFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_79E52
; ---------------------------------------------------------------------------
		align 8

loc_79EE8:				; CODE XREF: SVC_BSPDecal::ReadFromBuffer(bf_read &)+21Bj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_79D86
_ZN12SVC_BSPDecal14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_79F01:				; CODE XREF: .text:00079F40j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_79F36
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-2Ch]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_79F36:				; CODE XREF: .text:00079F05j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_79F01
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::ReadFromBuffer(bf_read &)
_ZN11SVC_SetView14ReadFromBufferER7bf_read proc	near
					; DATA XREF: .rodata:`vtable for'SVC_SetViewo

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_79FF2
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_setviewRea ; "SVC_SetView::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN11SVC_SetView14ReadFromBufferER7bf_readE6tm_fmt	; SVC_SetView::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 33Ah
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_79FF2:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+31j
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7A017
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7A120

loc_7A017:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+B2j
					; SVC_SetView::ReadFromBuffer(bf_read &)+219j
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Ah
		jle	loc_7A0D0
		mov	edi, [ebx]
		lea	eax, [edx+0Bh]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Ah]
		and	ecx, 1Fh
		mov	[ebp+var_34], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_34]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_34]
		shr	edx, cl
		or	eax, edx
		and	eax, 7FFh

loc_7A060:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+18Dj
		mov	edx, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[edx+10h], eax
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_7A091
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7A082
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7A091

loc_7A082:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+127j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_7A0E8

loc_7A091:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+11Ej
					; SVC_SetView::ReadFromBuffer(bf_read &)+130j ...
		test	esi, esi
		jz	short loc_7A0C1
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7A0C1:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+143j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7A0D0:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+D4j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7A060
; ---------------------------------------------------------------------------
		align 8

loc_7A0E8:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+13Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7A170
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A106:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+225j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7A091
; ---------------------------------------------------------------------------
		align 10h

loc_7A120:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+C1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_setviewRea	; "SVC_SetView::ReadFromBuffer"
		jz	short loc_7A15A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_setviewRea ; "SVC_SetView::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A15A:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+1DBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7A017
; ---------------------------------------------------------------------------
		align 10h

loc_7A170:				; CODE XREF: SVC_SetView::ReadFromBuffer(bf_read &)+1A7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7A106
_ZN11SVC_SetView14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7A179:				; CODE XREF: .text:0007A1BBj
		test	esi, esi
		jz	short loc_7A1A9
		mov	edx, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_7A1A9:				; CODE XREF: .text:0007A17Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7A179
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::ReadFromBuffer(bf_read &)
_ZN12SVC_FixAngle14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_FixAngleo

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_7A265
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_fixangleRe ; "SVC_FixAngle::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN12SVC_FixAngle14ReadFromBufferER7bf_readE6tm_fmt ; SVC_FixAngle::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 352h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_7A265:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7A28D
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_34], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_34], eax
		jz	loc_7A390

loc_7A28D:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+B4j
					; SVC_FixAngle::ReadFromBuffer(bf_read &)+219j
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7A3F0
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_7A2B2:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+23Aj
		mov	[edi+10h], al
		mov	dword ptr [esp+4], 10h
		mov	[esp], ebx
		call	_ZN7bf_read12ReadBitAngleEi ; bf_read::ReadBitAngle(int)
		fstp	dword ptr [edi+14h]
		mov	dword ptr [esp+4], 10h
		mov	[esp], ebx
		call	_ZN7bf_read12ReadBitAngleEi ; bf_read::ReadBitAngle(int)
		fstp	dword ptr [edi+18h]
		mov	dword ptr [esp+4], 10h
		mov	[esp], ebx
		call	_ZN7bf_read12ReadBitAngleEi ; bf_read::ReadBitAngle(int)
		cmp	[ebp+var_19], 0
		fstp	dword ptr [edi+1Ch]
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_7A31A
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7A30B
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_7A31A

loc_7A30B:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+13Fj
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_7A360

loc_7A31A:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+136j
					; SVC_FixAngle::ReadFromBuffer(bf_read &)+149j	...
		test	esi, esi
		jz	short loc_7A34A
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7A34A:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+15Cj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7A360:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+158j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7A3E0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A37E:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+225j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_7A31A
; ---------------------------------------------------------------------------
		align 10h

loc_7A390:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_fixangleRe	; "SVC_FixAngle::ReadFromBuffer"
		jz	short loc_7A3CA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_fixangleRe ; "SVC_FixAngle::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A3CA:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+1DBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7A28D
; ---------------------------------------------------------------------------
		align 10h

loc_7A3E0:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+1AFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7A37E
; ---------------------------------------------------------------------------
		align 10h

loc_7A3F0:				; CODE XREF: SVC_FixAngle::ReadFromBuffer(bf_read &)+D7j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7A2B2
_ZN12SVC_FixAngle14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7A409:				; CODE XREF: .text:0007A443j
		test	esi, esi
		jz	short loc_7A439
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7A439:				; CODE XREF: .text:0007A40Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7A409
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::ReadFromBuffer(bf_read &)
_ZN18SVC_CrosshairAngle14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_7A4F5
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_crosshaira ; "SVC_CrosshairAngle::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN18SVC_CrosshairAngle14ReadFromBufferER7bf_readE6tm_fmt ; SVC_CrosshairAngle::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 36Dh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_7A4F5:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7A51D
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_34], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_34], eax
		jz	loc_7A5F0

loc_7A51D:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+B4j
					; SVC_CrosshairAngle::ReadFromBuffer(bf_read &)+1E9j
		mov	dword ptr [esp+4], 10h
		mov	[esp], esi
		call	_ZN7bf_read12ReadBitAngleEi ; bf_read::ReadBitAngle(int)
		fstp	dword ptr [edi+10h]
		mov	dword ptr [esp+4], 10h
		mov	[esp], esi
		call	_ZN7bf_read12ReadBitAngleEi ; bf_read::ReadBitAngle(int)
		fstp	dword ptr [edi+14h]
		mov	dword ptr [esp+4], 10h
		mov	[esp], esi
		call	_ZN7bf_read12ReadBitAngleEi ; bf_read::ReadBitAngle(int)
		cmp	[ebp+var_19], 0
		fstp	dword ptr [edi+18h]
		movzx	esi, byte ptr [esi+10h]
		jz	short loc_7A581
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7A572
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7A581

loc_7A572:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+117j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_7A5C0

loc_7A581:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+10Ej
					; SVC_CrosshairAngle::ReadFromBuffer(bf_read &)+120j ...
		test	ebx, ebx
		jz	short loc_7A5B1
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_7A5B1:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+133j
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7A5C0:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+12Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7A640
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A5DE:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+1F5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_7A581
; ---------------------------------------------------------------------------
		align 10h

loc_7A5F0:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_crosshaira	; "SVC_CrosshairAngle::ReadFromBuffer"
		jz	short loc_7A62A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_crosshaira ; "SVC_CrosshairAngle::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A62A:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+1ABj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7A51D
; ---------------------------------------------------------------------------
		align 10h

loc_7A640:				; CODE XREF: SVC_CrosshairAngle::ReadFromBuffer(bf_read	&)+17Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7A5DE
_ZN18SVC_CrosshairAngle14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_7A649:				; CODE XREF: .text:0007A68Bj
		test	ebx, ebx
		jz	short loc_7A679
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_7A679:				; CODE XREF: .text:0007A64Bj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7A649
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::ReadFromBuffer(bf_read	&)
_ZN13SVC_VoiceInit14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_VoiceInito

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7A735
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_voiceinitR ; "SVC_VoiceInit::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13SVC_VoiceInit14ReadFromBufferER7bf_readE6tm_fmt ; SVC_VoiceInit::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 385h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx

loc_7A735:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7A75D
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_7A890

loc_7A75D:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+B4j
					; SVC_VoiceInit::ReadFromBuffer(bf_read	&)+249j
		lea	eax, [edi+18h]
		mov	[edi+10h], eax
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7A848
		mov	[ebp+var_30], 20h
		lea	edx, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		sub	[ebp+var_30], ecx
		mov	[ebp+var_2C], ecx
		lea	edx, [eax+7]
		mov	ecx, [ebx]
		sar	edx, 5
		sar	eax, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_7A7D9:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+1C5j
		cmp	[ebp+var_19], 0
		mov	[edi+14h], edx
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_7A807
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7A7F8
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7A807

loc_7A7F8:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+15Dj
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_7A860

loc_7A807:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+154j
					; SVC_VoiceInit::ReadFromBuffer(bf_read	&)+166j ...
		test	esi, esi
		jz	short loc_7A837
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7A837:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+179j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_7A848:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+104j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	short loc_7A7D9
; ---------------------------------------------------------------------------
		align 10h

loc_7A860:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+175j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7A8E0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A87E:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+255j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7A807
; ---------------------------------------------------------------------------
		align 10h

loc_7A890:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_voiceinitR	; "SVC_VoiceInit::ReadFromBuffer"
		jz	short loc_7A8CA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_voiceinitR ; "SVC_VoiceInit::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7A8CA:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+20Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7A75D
; ---------------------------------------------------------------------------
		align 10h

loc_7A8E0:				; CODE XREF: SVC_VoiceInit::ReadFromBuffer(bf_read &)+1DFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7A87E
_ZN13SVC_VoiceInit14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7A8F1:				; CODE XREF: .text:0007A92Bj
		test	esi, esi
		jz	short loc_7A921
		mov	edx, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_7A921:				; CODE XREF: .text:0007A8F3j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7A8F1
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::ReadFromBuffer(bf_read	&)
_ZN13SVC_VoiceData14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_VoiceDatao

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7A9DD
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_voicedataR ; "SVC_VoiceData::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13SVC_VoiceData14ReadFromBufferER7bf_readE6tm_fmt ; SVC_VoiceData::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 3A5h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_2C], edi

loc_7A9DD:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+39j
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7AA02
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7AC20

loc_7AA02:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+BDj
					; SVC_VoiceData::ReadFromBuffer(bf_read	&)+339j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7ABD8
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_7AA4C:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+2B5j
		mov	[esi+10h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7ABC0
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		mov	[ebp+var_30], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_30]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	eax, cl
		or	edx, eax
		test	dl, dl
		setnz	al

loc_7AA98:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+29Dj
		mov	[esi+14h], al
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7ABA8
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh

loc_7AAE5:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+285j
		mov	[esi+18h], edx
		mov	eax, [ebx]
		mov	[esi+24h], eax
		mov	eax, [ebx+4]
		mov	[esi+28h], eax
		mov	eax, [ebx+8]
		mov	[esi+2Ch], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+30h], eax
		mov	eax, [ebx+10h]
		mov	[esi+34h], eax
		mov	eax, [ebx+14h]
		mov	[esi+38h], eax
		add	edx, [ebx+0Ch]
		js	loc_7AB90
		cmp	edx, [ebx+8]
		jg	short loc_7AB90
		mov	[ebx+0Ch], edx
		mov	ebx, 1

loc_7AB21:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+270j
		cmp	[ebp+var_19], 0
		jz	short loc_7AB4D
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7AB3A
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		jz	short loc_7AB4D

loc_7AB3A:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+1FEj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7ABF0

loc_7AB4D:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+1F5j
					; SVC_VoiceData::ReadFromBuffer(bf_read	&)+208j ...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_7AB83
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7AB83:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+222j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7AB90:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+1DEj
					; SVC_VoiceData::ReadFromBuffer(bf_read	&)+1E7j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_7AB21
; ---------------------------------------------------------------------------
		align 4

loc_7ABA8:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+178j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7AAE5
; ---------------------------------------------------------------------------
		align 10h

loc_7ABC0:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+12Cj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7AA98
; ---------------------------------------------------------------------------
		align 8

loc_7ABD8:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+DFj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7AA4C
; ---------------------------------------------------------------------------
		align 10h

loc_7ABF0:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+217j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7AC70
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7AC0E:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+345j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7AB4D
; ---------------------------------------------------------------------------
		align 10h

loc_7AC20:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_voicedataR	; "SVC_VoiceData::ReadFromBuffer"
		jz	short loc_7AC5A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_voicedataR ; "SVC_VoiceData::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7AC5A:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+2FBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7AA02
; ---------------------------------------------------------------------------
		align 10h

loc_7AC70:				; CODE XREF: SVC_VoiceData::ReadFromBuffer(bf_read &)+2CFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7AC0E
_ZN13SVC_VoiceData14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7AC79:				; CODE XREF: .text:0007ACC0j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_7ACAE
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7ACAE:				; CODE XREF: .text:0007AC7Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7AC79
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::ReadFromBuffer(bf_read &)
_ZN8NET_Tick14ReadFromBufferER7bf_read proc near ; DATA	XREF: .rodata:`vtable for'NET_Ticko

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= qword	ptr -30h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_34], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		test	eax, eax
		jz	short loc_7AD7A
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aNet_tickReadfr ; "NET_Tick::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN8NET_Tick14ReadFromBufferER7bf_readE6tm_fmt ; NET_Tick::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 3C9h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_3C], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_40], eax
		mov	[ebp+var_34], edx

loc_7AD7A:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+36j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7AD9E
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7AF90

loc_7AD9E:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+B9j
					; NET_Tick::ReadFromBuffer(bf_read &)+309j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7AF40
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	esi, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax

loc_7ADDC:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+27Dj
		mov	eax, [ebp+arg_0]
		mov	[eax+10h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7AF28
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	esi, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh
		movd	xmm0, edx
		movq	[ebp+var_30], xmm0
		fild	[ebp+var_30]
		fmul	ds:flt_1EB830

loc_7AE38:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+265j
		mov	eax, [ebp+arg_0]
		fstp	dword ptr [eax+14h]
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7AF10
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	esi, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh
		movd	xmm0, edx
		movq	[ebp+var_30], xmm0
		fild	[ebp+var_30]
		fmul	ds:flt_1EB830

loc_7AE94:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+24Dj
		mov	eax, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		fstp	dword ptr [eax+18h]
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_7AECA
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7AEB7
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		jz	short loc_7AECA

loc_7AEB7:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+1DBj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7AF58

loc_7AECA:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+1D2j
					; NET_Tick::ReadFromBuffer(bf_read &)+1E5j ...
		mov	esi, [ebp+var_34]
		test	esi, esi
		jz	short loc_7AF00
		mov	ecx, [ebp+var_3C]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_40]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	ecx, [ebp+var_34]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [ecx+54h]

loc_7AF00:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+1FFj
		add	esp, 6Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7AF10:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+17Bj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		fldz
		jmp	loc_7AE94
; ---------------------------------------------------------------------------
		align 8

loc_7AF28:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+11Fj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		fldz
		jmp	loc_7AE38
; ---------------------------------------------------------------------------
		align 10h

loc_7AF40:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+DBj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7ADDC
; ---------------------------------------------------------------------------
		align 8

loc_7AF58:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+1F4j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7AFE0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7AF76:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+315j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7AECA
; ---------------------------------------------------------------------------
		align 10h

loc_7AF90:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aNet_tickReadfr	; "NET_Tick::ReadFromBuffer"
		jz	short loc_7AFCA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aNet_tickReadfr ; "NET_Tick::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7AFCA:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+2CBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7AD9E
; ---------------------------------------------------------------------------
		align 10h

loc_7AFE0:				; CODE XREF: NET_Tick::ReadFromBuffer(bf_read &)+297j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7AF76
_ZN8NET_Tick14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7AFE9:				; CODE XREF: .text:0007B030j
		cmp	dword ptr [ebp-34h], 0
		jz	short loc_7B01E
		mov	edx, [ebp-3Ch]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-40h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-34h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_7B01E:				; CODE XREF: .text:0007AFEDj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7AFE9
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::ReadFromBuffer(bf_read &)
_ZN12SVC_SetPause14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_SetPauseo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_7B0E2
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_setpauseRe ; "SVC_SetPause::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN12SVC_SetPause14ReadFromBufferER7bf_readE6tm_fmt ; SVC_SetPause::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 400h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_7B0E2:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7B106
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7B1D0

loc_7B106:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+B1j
					; SVC_SetPause::ReadFromBuffer(bf_read &)+1D9j
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7B230
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_7B12B:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+1FAj
		mov	edx, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[edx+10h], al
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_7B15C
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7B14D
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7B15C

loc_7B14D:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+102j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_7B1A0

loc_7B15C:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+F9j
					; SVC_SetPause::ReadFromBuffer(bf_read &)+10Bj	...
		test	esi, esi
		jz	short loc_7B18C
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7B18C:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+11Ej
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7B1A0:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+11Aj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7B220
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7B1BE:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+1E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_7B15C
; ---------------------------------------------------------------------------
		align 10h

loc_7B1D0:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_setpauseRe	; "SVC_SetPause::ReadFromBuffer"
		jz	short loc_7B20A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_setpauseRe ; "SVC_SetPause::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7B20A:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+19Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7B106
; ---------------------------------------------------------------------------
		align 10h

loc_7B220:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+16Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7B1BE
; ---------------------------------------------------------------------------
		align 10h

loc_7B230:				; CODE XREF: SVC_SetPause::ReadFromBuffer(bf_read &)+D0j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7B12B
_ZN12SVC_SetPause14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7B249:				; CODE XREF: .text:0007B283j
		test	esi, esi
		jz	short loc_7B279
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7B279:				; CODE XREF: .text:0007B24Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7B249
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::ReadFromBuffer(bf_read	&)
_ZN21SVC_UpdateStringTable14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		test	eax, eax
		jz	short loc_7B33D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_updatestri ; "SVC_UpdateStringTable::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN21SVC_UpdateStringTable14ReadFromBufferER7bf_readE6tm_fmt ; SVC_UpdateStringTable::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 453h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx
		mov	[ebp+var_30], edi

loc_7B33D:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+39j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7B361
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7B5F0

loc_7B361:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+BCj
					; SVC_UpdateStringTable::ReadFromBuffer(bf_read	&)+3A9j
		mov	dword ptr [esp], 20h
		call	_Z6Q_log2i	; Q_log2(int)
		mov	edi, eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	edi, ecx
		jg	loc_7B588
		mov	[ebp+var_44], 20h
		lea	eax, [edi+edx]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebx+0Ch], eax
		sub	eax, 1
		mov	[ebp+var_2C], ecx
		sar	eax, 5
		sar	edx, 5
		sub	[ebp+var_44], ecx
		mov	ecx, [ebx]
		mov	ecx, [ecx+eax*4]
		mov	eax, [ebx]
		mov	[ebp+var_34], ecx
		movzx	ecx, byte ptr [ebp+var_44]
		mov	edx, [eax+edx*4]
		shl	[ebp+var_34], cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		or	[ebp+var_34], edx
		lea	ecx, [edi-1]
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	[ebp+var_34], edx

loc_7B3CF:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+30Aj
		mov	edi, [ebp+var_34]
		mov	[esi+10h], edi
		mov	edi, [ebx+8]
		mov	ecx, [ebx+0Ch]
		mov	eax, edi
		sub	eax, ecx
		test	eax, eax
		jle	loc_7B470
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		mov	eax, [edx+eax*4]
		mov	[ebp+var_2C], edx
		lea	edx, [ecx+1]
		mov	[ebx+0Ch], edx
		shr	eax, cl
		test	al, 1
		jz	loc_7B480
		mov	eax, edi
		sub	eax, edx
		cmp	eax, 0Fh
		jle	loc_7B5A0
		lea	eax, [ecx+11h]
		mov	edi, edx
		sar	edx, 5
		and	edi, 1Fh
		mov	[ebx+0Ch], eax
		mov	[ebp+var_34], edi
		lea	eax, [ecx+10h]
		mov	edi, 20h
		sub	edi, [ebp+var_34]
		sar	eax, 5
		mov	ecx, [ebp+var_2C]
		mov	eax, [ecx+eax*4]
		mov	ecx, edi
		mov	edi, [ebp+var_2C]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_34]
		mov	edx, [edi+edx*4]
		shr	edx, cl
		or	eax, edx
		and	eax, 0FFFFh

loc_7B44D:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+31Dj
		mov	[esi+14h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 13h
		jg	short loc_7B496

loc_7B45F:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+204j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_7B4CC
; ---------------------------------------------------------------------------
		align 10h

loc_7B470:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+151j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		nop
		lea	esi, [esi+0]

loc_7B480:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+16Ej
		mov	dword ptr [esi+14h], 1
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 13h
		jle	short loc_7B45F

loc_7B496:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+1CDj
		mov	edi, [ebx]
		lea	eax, [edx+14h]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+13h]
		and	ecx, 1Fh
		mov	[ebp+var_2C], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_2C]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		or	eax, edx
		and	eax, offset loc_FFFFF

loc_7B4CC:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+1DCj
		mov	[esi+18h], eax
		mov	edx, [ebx]
		mov	[esi+1Ch], edx
		mov	edx, [ebx+4]
		mov	[esi+20h], edx
		mov	edx, [ebx+8]
		mov	[esi+24h], edx
		mov	edx, [ebx+0Ch]
		mov	[esi+28h], edx
		mov	edx, [ebx+10h]
		mov	[esi+2Ch], edx
		mov	edx, [ebx+14h]
		mov	[esi+30h], edx
		add	eax, [ebx+0Ch]
		js	short loc_7B570
		cmp	eax, [ebx+8]
		jg	short loc_7B570
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_7B504:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+2F0j
		cmp	[ebp+var_19], 0
		jz	short loc_7B52F
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7B51C
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7B52F

loc_7B51C:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+281j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7B5B8

loc_7B52F:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+278j
					; SVC_UpdateStringTable::ReadFromBuffer(bf_read	&)+28Aj ...
		mov	eax, [ebp+var_30]
		test	eax, eax
		jz	short loc_7B565
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_30]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7B565:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+2A4j
		add	esp, 6Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7B570:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+265j
					; SVC_UpdateStringTable::ReadFromBuffer(bf_read	&)+26Aj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	short loc_7B504
; ---------------------------------------------------------------------------
		align 8

loc_7B588:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+EBj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_34], 0
		jmp	loc_7B3CF
; ---------------------------------------------------------------------------
		align 10h

loc_7B5A0:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+17Bj
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7B44D
; ---------------------------------------------------------------------------
		align 8

loc_7B5B8:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+299j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7B640
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7B5D6:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+3B5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7B52F
; ---------------------------------------------------------------------------
		align 10h

loc_7B5F0:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+CBj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_updatestri	; "SVC_UpdateStringTable::ReadFromBuffer"
		jz	short loc_7B62A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_updatestri ; "SVC_UpdateStringTable::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7B62A:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+36Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7B361
; ---------------------------------------------------------------------------
		align 10h

loc_7B640:				; CODE XREF: SVC_UpdateStringTable::ReadFromBuffer(bf_read &)+337j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7B5D6
_ZN21SVC_UpdateStringTable14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7B649:				; CODE XREF: .text:0007B690j
		cmp	dword ptr [ebp-30h], 0
		jz	short loc_7B67E
		mov	eax, [ebp-40h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-3Ch]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-30h]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7B67E:				; CODE XREF: .text:0007B64Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7B649
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::ReadFromBuffer(bf_read	&)
_ZN21SVC_CreateStringTable14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7B74D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_createstri ; "SVC_CreateStringTable::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN21SVC_CreateStringTable14ReadFromBufferER7bf_readE6tm_fmt ; SVC_CreateStringTable::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 491h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_30], edi

loc_7B74D:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+39j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7B772
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7BB48

loc_7B772:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+BDj
					; SVC_CreateStringTable::ReadFromBuffer(bf_read	&)+4F1j
		mov	dword ptr [esp+4], 8
		mov	[esp], ebx
		call	_ZN7bf_read12PeekUBitLongEi ; bf_read::PeekUBitLong(int)
		cmp	al, 3Ah
		jz	loc_7BB08
		mov	byte ptr [esi+28h], 0

loc_7B78E:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+485j
					; SVC_CreateStringTable::ReadFromBuffer(bf_read	&)+53Bj
		lea	eax, [esi+61h]
		mov	[esi+10h], eax
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7BAF0
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_2C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_2C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh

loc_7B802:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+45Dj
		mov	[esi+14h], edx
		mov	[esp], edx
		call	_Z6Q_log2i	; Q_log2(int)
		mov	edx, [ebx+8]
		mov	edi, eax
		lea	eax, [eax+1]
		mov	[ebp+var_3C], edx
		mov	edx, [ebx+0Ch]
		mov	ecx, [ebp+var_3C]
		sub	ecx, edx
		cmp	eax, ecx
		jg	loc_7BAD0
		mov	ecx, edx
		mov	[ebp+var_40], 20h
		add	eax, edx
		and	ecx, 1Fh
		mov	[ebx+0Ch], eax
		sub	eax, 1
		mov	[ebp+var_2C], ecx
		sar	eax, 5
		sar	edx, 5
		sub	[ebp+var_40], ecx
		mov	ecx, [ebx]
		mov	ecx, [ecx+eax*4]
		mov	eax, [ebx]
		mov	[ebp+var_3C], ecx
		movzx	ecx, byte ptr [ebp+var_40]
		mov	edx, [eax+edx*4]
		shl	[ebp+var_3C], cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		mov	ecx, edi
		or	[ebp+var_3C], edx
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	[ebp+var_3C], edx

loc_7B874:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+445j
		mov	edi, [ebp+var_3C]
		mov	[esi+18h], edi
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 13h
		jle	loc_7BAB8
		mov	edi, [ebx]
		lea	eax, [edx+14h]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+13h]
		and	ecx, 1Fh
		mov	[ebp+var_2C], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_2C]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		or	eax, edx
		and	eax, offset loc_FFFFF

loc_7B8C3:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+425j
		mov	[esi+2Ch], eax
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7B990
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		and	eax, 1
		mov	[ebx+0Ch], ecx
		test	eax, eax
		mov	[esi+1Ch], al
		jz	loc_7B9A0
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Bh
		jle	loc_7BB30
		mov	edi, [ebx]
		lea	eax, [edx+0Ch]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Bh]
		and	ecx, 1Fh
		mov	[ebp+var_2C], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_2C]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		or	eax, edx
		and	eax, 0FFFh

loc_7B93F:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+49Dj
		mov	[esi+20h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 3
		jle	loc_7BBE0
		mov	edi, [ebx]
		lea	eax, [edx+4]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+3]
		and	ecx, 1Fh
		mov	[ebp+var_2C], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_2C]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		or	eax, edx
		and	eax, 0Fh

loc_7B989:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+54Dj
		mov	[esi+24h], eax
		jmp	short loc_7B9AE
; ---------------------------------------------------------------------------
		align 10h

loc_7B990:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+230j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	byte ptr [esi+1Ch], 0
		lea	esi, [esi+0]

loc_7B9A0:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+250j
		mov	dword ptr [esi+20h], 0
		mov	dword ptr [esi+24h], 0

loc_7B9AE:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+2ECj
		mov	eax, [esi+0Ch]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		cmp	eax, 0Eh
		jg	loc_7BA88
		mov	byte ptr [esi+60h], 0

loc_7B9C6:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+410j
		mov	eax, [ebx]
		mov	[esi+30h], eax
		mov	eax, [ebx+4]
		mov	[esi+34h], eax
		mov	eax, [ebx+8]
		mov	[esi+38h], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+3Ch], eax
		mov	eax, [ebx+10h]
		mov	[esi+40h], eax
		mov	eax, [ebx+14h]
		mov	[esi+44h], eax
		mov	eax, [esi+2Ch]
		add	eax, [ebx+0Ch]
		js	short loc_7BA70
		cmp	eax, [ebx+8]
		jg	short loc_7BA70
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_7B9FE:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+3E0j
		cmp	[ebp+var_19], 0
		jz	short loc_7BA2A
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7BA17
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_7BA2A

loc_7BA17:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+36Bj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7BBA0

loc_7BA2A:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+362j
					; SVC_CreateStringTable::ReadFromBuffer(bf_read	&)+375j ...
		mov	edx, [ebp+var_30]
		test	edx, edx
		jz	short loc_7BA60
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_30]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7BA60:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+38Fj
		add	esp, 6Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7BA70:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+34Fj
					; SVC_CreateStringTable::ReadFromBuffer(bf_read	&)+354j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_7B9FE
; ---------------------------------------------------------------------------
		align 4

loc_7BA88:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+31Cj
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7BC00
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_7BAAD:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+56Aj
		mov	[esi+60h], al
		jmp	loc_7B9C6
; ---------------------------------------------------------------------------
		align 4

loc_7BAB8:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+1E7j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7B8C3
; ---------------------------------------------------------------------------
		align 10h

loc_7BAD0:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+182j
		mov	edi, [ebp+var_3C]
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_3C], 0
		jmp	loc_7B874
; ---------------------------------------------------------------------------
		align 10h

loc_7BAF0:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+125j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7B802
; ---------------------------------------------------------------------------
		align 8

loc_7BB08:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+E4j
		mov	byte ptr [esi+28h], 1
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7BBD0
		add	eax, 8
		mov	[ebx+0Ch], eax
		jmp	loc_7B78E
; ---------------------------------------------------------------------------
		align 10h

loc_7BB30:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+263j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7B93F
; ---------------------------------------------------------------------------
		align 8

loc_7BB48:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_createstri	; "SVC_CreateStringTable::ReadFromBuffer"
		jz	short loc_7BB82
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_createstri ; "SVC_CreateStringTable::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7BB82:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+4B3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7B772
; ---------------------------------------------------------------------------
		align 10h

loc_7BBA0:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+384j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7BBF8
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7BBBE:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+55Dj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7BA2A
; ---------------------------------------------------------------------------
		align 10h

loc_7BBD0:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+479j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_7B78E
; ---------------------------------------------------------------------------

loc_7BBE0:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+2AFj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7B989
; ---------------------------------------------------------------------------
		align 8

loc_7BBF8:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+50Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7BBBE
; ---------------------------------------------------------------------------
		align 10h

loc_7BC00:				; CODE XREF: SVC_CreateStringTable::ReadFromBuffer(bf_read &)+3F2j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7BAAD
_ZN21SVC_CreateStringTable14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7BC11:				; CODE XREF: .text:0007BC58j
		cmp	dword ptr [ebp-30h], 0
		jz	short loc_7BC46
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-30h]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7BC46:				; CODE XREF: .text:0007BC15j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7BC11
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::ReadFromBuffer(bf_read &)
_ZN10SVC_Sounds14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_Soundso

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7BD05
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_soundsRead ; "SVC_Sounds::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN10SVC_Sounds14ReadFromBufferER7bf_readE6tm_fmt ; SVC_Sounds::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 4E1h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx

loc_7BD05:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7BD2D
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_7BF60

loc_7BD2D:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+B4j
					; SVC_Sounds::ReadFromBuffer(bf_read &)+349j
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	short loc_7BDB8
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		and	eax, 1
		mov	[ebx+0Ch], ecx
		test	eax, eax
		mov	[esi+10h], al
		jz	short loc_7BDC8
		mov	dword ptr [esi+14h], 1
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7BF18
		mov	[ebp+var_30], 20h
		lea	edx, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		sub	[ebp+var_30], ecx
		mov	[ebp+var_2C], ecx
		lea	edx, [eax+7]
		mov	ecx, [ebx]
		sar	edx, 5
		sar	eax, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh
		jmp	loc_7BE6F
; ---------------------------------------------------------------------------
		align 8

loc_7BDB8:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+D7j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	byte ptr [esi+10h], 0
		lea	esi, [esi+0]

loc_7BDC8:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+F3j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7BF48
		mov	[ebp+var_30], 20h
		lea	edx, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		sub	[ebp+var_30], ecx
		mov	[ebp+var_2C], ecx
		lea	edx, [eax+7]
		mov	ecx, [ebx]
		sar	edx, 5
		sar	eax, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_7BE1A:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+2F5j
		mov	[esi+14h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7BF18
		mov	[ebp+var_30], 20h
		lea	edx, [eax+10h]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		sub	[ebp+var_30], ecx
		mov	[ebp+var_2C], ecx
		lea	edx, [eax+0Fh]
		mov	ecx, [ebx]
		sar	edx, 5
		sar	eax, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh

loc_7BE6F:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+14Ej
					; SVC_Sounds::ReadFromBuffer(bf_read &)+2C5j
		mov	[esi+18h], edx
		mov	eax, [ebx]
		mov	[esi+1Ch], eax
		mov	eax, [ebx+4]
		mov	[esi+20h], eax
		mov	eax, [ebx+8]
		mov	[esi+24h], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+28h], eax
		mov	eax, [ebx+10h]
		mov	[esi+2Ch], eax
		mov	eax, [ebx+14h]
		mov	[esi+30h], eax
		add	edx, [ebx+0Ch]
		js	loc_7BF30
		cmp	edx, [ebx+8]
		jg	loc_7BF30
		mov	[ebx+0Ch], edx
		mov	ebx, 1

loc_7BEAF:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+2E0j
		cmp	[ebp+var_19], 0
		jz	short loc_7BEDA
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7BEC7
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7BEDA

loc_7BEC7:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+25Cj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7BFB0

loc_7BEDA:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+253j
					; SVC_Sounds::ReadFromBuffer(bf_read &)+265j ...
		test	edi, edi
		jz	short loc_7BF0A
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_7BF0A:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+27Cj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_7BF18:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+109j
					; SVC_Sounds::ReadFromBuffer(bf_read &)+1CAj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7BE6F
; ---------------------------------------------------------------------------
		align 10h

loc_7BF30:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+238j
					; SVC_Sounds::ReadFromBuffer(bf_read &)+241j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_7BEAF
; ---------------------------------------------------------------------------
		align 4

loc_7BF48:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+175j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7BE1A
; ---------------------------------------------------------------------------
		align 10h

loc_7BF60:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_soundsRead	; "SVC_Sounds::ReadFromBuffer"
		jz	short loc_7BF9A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_soundsRead ; "SVC_Sounds::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7BF9A:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+30Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7BD2D
; ---------------------------------------------------------------------------
		align 10h

loc_7BFB0:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+274j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7BFE0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7BFCE:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+385j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7BEDA
; ---------------------------------------------------------------------------
		align 10h

loc_7BFE0:				; CODE XREF: SVC_Sounds::ReadFromBuffer(bf_read	&)+35Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7BFCE
_ZN10SVC_Sounds14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7BFE9:				; CODE XREF: .text:0007C02Bj
		test	edi, edi
		jz	short loc_7C019
		mov	edx, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [edi+54h]

loc_7C019:				; CODE XREF: .text:0007BFEBj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7BFE9
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::ReadFromBuffer(bf_read &)
_ZN12SVC_Prefetch14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_Prefetcho

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_7C0D2
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_prefetchRe ; "SVC_Prefetch::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN12SVC_Prefetch14ReadFromBufferER7bf_readE6tm_fmt ; SVC_Prefetch::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 508h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_7C0D2:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7C0F6
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7C210

loc_7C0F6:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+B1j
					; SVC_Prefetch::ReadFromBuffer(bf_read &)+229j
		mov	edi, [ebp+arg_0]
		mov	word ptr [edi+10h], 0
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Ch
		jle	loc_7C1C0
		mov	edi, [ebx]
		lea	edx, [eax+0Dh]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Ch]
		and	ecx, 1Fh
		mov	[ebp+var_34], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_34]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_34]
		shr	eax, cl
		or	edx, eax
		and	dx, 1FFFh

loc_7C148:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+19Dj
		mov	edi, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[edi+12h], dx
		movzx	ebx, byte ptr [ebx+10h]
		jz	short loc_7C17A
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7C16B
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7C17A

loc_7C16B:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+130j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_7C1D8

loc_7C17A:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+127j
					; SVC_Prefetch::ReadFromBuffer(bf_read &)+139j	...
		test	esi, esi
		jz	short loc_7C1AA
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_7C1AA:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+14Cj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7C1C0:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+DCj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7C148
; ---------------------------------------------------------------------------
		align 8

loc_7C1D8:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+148j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7C260
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7C1F6:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+235j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7C17A
; ---------------------------------------------------------------------------
		align 10h

loc_7C210:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_prefetchRe	; "SVC_Prefetch::ReadFromBuffer"
		jz	short loc_7C24A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_prefetchRe ; "SVC_Prefetch::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7C24A:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+1EBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7C0F6
; ---------------------------------------------------------------------------
		align 10h

loc_7C260:				; CODE XREF: SVC_Prefetch::ReadFromBuffer(bf_read &)+1B7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7C1F6
_ZN12SVC_Prefetch14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7C269:				; CODE XREF: .text:0007C2ABj
		test	esi, esi
		jz	short loc_7C299
		mov	edx, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_7C299:				; CODE XREF: .text:0007C26Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7C269
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::ReadFromBuffer(bf_read &)
_ZN16SVC_TempEntities14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7C35D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_tempentiti ; "SVC_TempEntities::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16SVC_TempEntities14ReadFromBufferER7bf_readE6tm_fmt ; SVC_TempEntities::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 527h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_2C], edi

loc_7C35D:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+39j
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7C382
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7C540

loc_7C382:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+BDj
					; SVC_TempEntities::ReadFromBuffer(bf_read &)+2D9j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7C4F0
		mov	edi, [ebx]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_7C3CC:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+24Dj
		mov	[esi+10h], edx
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 10h
		jle	loc_7C4D8
		mov	edi, [ebx]
		lea	eax, [edx+11h]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+10h]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFFFh

loc_7C418:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+235j
		mov	[esi+14h], eax
		mov	edx, [ebx]
		mov	[esi+18h], edx
		mov	edx, [ebx+4]
		mov	[esi+1Ch], edx
		mov	edx, [ebx+8]
		mov	[esi+20h], edx
		mov	edx, [ebx+0Ch]
		mov	[esi+24h], edx
		mov	edx, [ebx+10h]
		mov	[esi+28h], edx
		mov	edx, [ebx+14h]
		mov	[esi+2Ch], edx
		add	eax, [ebx+0Ch]
		js	short loc_7C4C0
		cmp	eax, [ebx+8]
		jg	short loc_7C4C0
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_7C450:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+220j
		cmp	[ebp+var_19], 0
		jz	short loc_7C47B
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7C468
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7C47B

loc_7C468:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+1ADj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7C508

loc_7C47B:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+1A4j
					; SVC_TempEntities::ReadFromBuffer(bf_read &)+1B6j ...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_7C4B1
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7C4B1:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+1D0j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7C4C0:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+191j
					; SVC_TempEntities::ReadFromBuffer(bf_read &)+196j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_7C450
; ---------------------------------------------------------------------------
		align 4

loc_7C4D8:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+12Cj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7C418
; ---------------------------------------------------------------------------
		align 10h

loc_7C4F0:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+DFj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7C3CC
; ---------------------------------------------------------------------------
		align 8

loc_7C508:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+1C5j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7C590
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7C526:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+2E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7C47B
; ---------------------------------------------------------------------------
		align 10h

loc_7C540:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_tempentiti	; "SVC_TempEntities::ReadFromBuffer"
		jz	short loc_7C57A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_tempentiti ; "SVC_TempEntities::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7C57A:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+29Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7C382
; ---------------------------------------------------------------------------
		align 10h

loc_7C590:				; CODE XREF: SVC_TempEntities::ReadFromBuffer(bf_read &)+267j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7C526
_ZN16SVC_TempEntities14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7C599:				; CODE XREF: .text:0007C5E0j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_7C5CE
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7C5CE:				; CODE XREF: .text:0007C59Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7C599
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::ReadFromBuffer(bf_read	&)
_ZN13SVC_GameEvent14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_GameEvento

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7C695
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_gameeventR ; "SVC_GameEvent::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13SVC_GameEvent14ReadFromBufferER7bf_readE6tm_fmt ; SVC_GameEvent::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 5ADh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx

loc_7C695:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7C6BD
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_7C820

loc_7C6BD:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+B4j
					; SVC_GameEvent::ReadFromBuffer(bf_read	&)+279j
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Ah
		jle	loc_7C7D0
		mov	[ebp+var_3C], 20h
		lea	eax, [edx+0Bh]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebx+0Ch], eax
		sub	[ebp+var_3C], ecx
		mov	[ebp+var_2C], ecx
		lea	eax, [edx+0Ah]
		mov	ecx, [ebx]
		sar	eax, 5
		sar	edx, 5
		mov	ecx, [ecx+eax*4]
		mov	eax, [ebx]
		mov	[ebp+var_30], ecx
		movzx	ecx, byte ptr [ebp+var_3C]
		mov	edx, [eax+edx*4]
		shl	[ebp+var_30], cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		or	[ebp+var_30], edx
		and	[ebp+var_30], 7FFh

loc_7C715:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+1F2j
		mov	eax, [ebp+var_30]
		mov	[esi+10h], eax
		mov	edx, [ebx]
		mov	[esi+14h], edx
		mov	edx, [ebx+4]
		mov	[esi+18h], edx
		mov	edx, [ebx+8]
		mov	[esi+1Ch], edx
		mov	edx, [ebx+0Ch]
		mov	[esi+20h], edx
		mov	edx, [ebx+10h]
		mov	[esi+24h], edx
		mov	edx, [ebx+14h]
		mov	[esi+28h], edx
		add	eax, [ebx+0Ch]
		js	short loc_7C7B8
		cmp	eax, [ebx+8]
		jg	short loc_7C7B8
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_7C750:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+1D8j
		cmp	[ebp+var_19], 0
		jz	short loc_7C778
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7C769
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_7C778

loc_7C769:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+16Dj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_7C7F0

loc_7C778:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+164j
					; SVC_GameEvent::ReadFromBuffer(bf_read	&)+177j ...
		test	edi, edi
		jz	short loc_7C7A8
		mov	edx, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [edi+54h]

loc_7C7A8:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+18Aj
		add	esp, 6Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_7C7B8:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+151j
					; SVC_GameEvent::ReadFromBuffer(bf_read	&)+156j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	short loc_7C750
; ---------------------------------------------------------------------------
		align 10h

loc_7C7D0:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+DAj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_30], 0
		jmp	loc_7C715
; ---------------------------------------------------------------------------
		align 10h

loc_7C7F0:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+186j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7C870
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7C80E:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+285j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7C778
; ---------------------------------------------------------------------------
		align 10h

loc_7C820:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_gameeventR	; "SVC_GameEvent::ReadFromBuffer"
		jz	short loc_7C85A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_gameeventR ; "SVC_GameEvent::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7C85A:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+23Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7C6BD
; ---------------------------------------------------------------------------
		align 10h

loc_7C870:				; CODE XREF: SVC_GameEvent::ReadFromBuffer(bf_read &)+20Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7C80E
_ZN13SVC_GameEvent14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7C879:				; CODE XREF: .text:0007C8BBj
		test	edi, edi
		jz	short loc_7C8A9
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_7C8A9:				; CODE XREF: .text:0007C87Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7C879
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::ReadFromBuffer(bf_read	&)
_ZN13SVC_SendTable14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_SendTableo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7C965
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_sendtableR ; "SVC_SendTable::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13SVC_SendTable14ReadFromBufferER7bf_readE6tm_fmt ; SVC_SendTable::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 5C8h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx

loc_7C965:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7C98D
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_7CB00

loc_7C98D:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+B4j
					; SVC_SendTable::ReadFromBuffer(bf_read	&)+289j
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7CB60
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_7C9B2:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+2AAj
		mov	[esi+10h], al
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7CAB8
		mov	[ebp+var_30], 20h
		lea	edx, [eax+10h]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		sub	[ebp+var_30], ecx
		mov	[ebp+var_2C], ecx
		lea	edx, [eax+0Fh]
		mov	ecx, [ebx]
		sar	edx, 5
		sar	eax, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		movsx	edx, dx

loc_7CA04:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+205j
		mov	[esi+14h], edx
		mov	eax, [ebx]
		mov	[esi+18h], eax
		mov	eax, [ebx+4]
		mov	[esi+1Ch], eax
		mov	eax, [ebx+8]
		mov	[esi+20h], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+24h], eax
		mov	eax, [ebx+10h]
		mov	[esi+28h], eax
		mov	eax, [ebx+14h]
		mov	[esi+2Ch], eax
		add	edx, [ebx+0Ch]
		js	short loc_7CAA0
		cmp	edx, [ebx+8]
		jg	short loc_7CAA0
		mov	[ebx+0Ch], edx
		mov	ebx, 1

loc_7CA3C:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+1F0j
		cmp	[ebp+var_19], 0
		jz	short loc_7CA63
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7CA54
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7CA63

loc_7CA54:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+189j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_7CAD0

loc_7CA63:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+180j
					; SVC_SendTable::ReadFromBuffer(bf_read	&)+192j ...
		test	edi, edi
		jz	short loc_7CA93
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_7CA93:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+1A5j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7CAA0:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+16Dj
					; SVC_SendTable::ReadFromBuffer(bf_read	&)+172j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	short loc_7CA3C
; ---------------------------------------------------------------------------
		align 8

loc_7CAB8:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+102j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7CA04
; ---------------------------------------------------------------------------
		align 10h

loc_7CAD0:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+1A1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7CB50
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7CAEE:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+295j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7CA63
; ---------------------------------------------------------------------------
		align 10h

loc_7CB00:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_sendtableR	; "SVC_SendTable::ReadFromBuffer"
		jz	short loc_7CB3A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_sendtableR ; "SVC_SendTable::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7CB3A:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+24Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7C98D
; ---------------------------------------------------------------------------
		align 10h

loc_7CB50:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+21Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7CAEE
; ---------------------------------------------------------------------------
		align 10h

loc_7CB60:				; CODE XREF: SVC_SendTable::ReadFromBuffer(bf_read &)+D7j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7C9B2
_ZN13SVC_SendTable14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7CB79:				; CODE XREF: .text:0007CBB3j
		test	edi, edi
		jz	short loc_7CBA9
		mov	edx, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [edi+54h]

loc_7CBA9:				; CODE XREF: .text:0007CB7Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7CB79
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::ReadFromBuffer(bf_read &)
_ZN17SVC_EntityMessage14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7CC6D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_entitymess ; "SVC_EntityMessage::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN17SVC_EntityMessage14ReadFromBufferER7bf_readE6tm_fmt ;	SVC_EntityMessage::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 5EAh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_2C], edi

loc_7CC6D:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+39j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7CC91
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7CEB0

loc_7CC91:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+BCj
					; SVC_EntityMessage::ReadFromBuffer(bf_read &)+339j
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Ah
		jle	loc_7CE60
		mov	edi, [ebx]
		lea	eax, [edx+0Bh]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Ah]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 7FFh

loc_7CCDA:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+2ADj
		mov	[esi+10h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 8
		jle	loc_7CE48
		mov	edi, [ebx]
		lea	eax, [edx+9]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+8]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFh

loc_7CD26:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+295j
		mov	[esi+14h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Ah
		jle	loc_7CE30
		mov	edi, [ebx]
		lea	eax, [edx+0Bh]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Ah]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 7FFh

loc_7CD72:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+27Dj
		mov	[esi+18h], eax
		mov	edx, [ebx]
		mov	[esi+1Ch], edx
		mov	edx, [ebx+4]
		mov	[esi+20h], edx
		mov	edx, [ebx+8]
		mov	[esi+24h], edx
		mov	edx, [ebx+0Ch]
		mov	[esi+28h], edx
		mov	edx, [ebx+10h]
		mov	[esi+2Ch], edx
		mov	edx, [ebx+14h]
		mov	[esi+30h], edx
		add	eax, [ebx+0Ch]
		js	short loc_7CE18
		cmp	eax, [ebx+8]
		jg	short loc_7CE18
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_7CDAA:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+268j
		cmp	[ebp+var_19], 0
		jz	short loc_7CDD5
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7CDC2
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7CDD5

loc_7CDC2:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+1F7j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7CE78

loc_7CDD5:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+1EEj
					; SVC_EntityMessage::ReadFromBuffer(bf_read &)+200j ...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_7CE0B
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7CE0B:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+21Aj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_7CE18:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+1DBj
					; SVC_EntityMessage::ReadFromBuffer(bf_read &)+1E0j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	short loc_7CDAA
; ---------------------------------------------------------------------------
		align 10h

loc_7CE30:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+176j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7CD72
; ---------------------------------------------------------------------------
		align 8

loc_7CE48:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+12Aj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7CD26
; ---------------------------------------------------------------------------
		align 10h

loc_7CE60:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+DEj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7CCDA
; ---------------------------------------------------------------------------
		align 8

loc_7CE78:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+20Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7CF00
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7CE96:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+345j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7CDD5
; ---------------------------------------------------------------------------
		align 10h

loc_7CEB0:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+CBj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_entitymess	; "SVC_EntityMessage::ReadFromBuffer"
		jz	short loc_7CEEA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_entitymess ; "SVC_EntityMessage::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7CEEA:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+2FBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7CC91
; ---------------------------------------------------------------------------
		align 10h

loc_7CF00:				; CODE XREF: SVC_EntityMessage::ReadFromBuffer(bf_read &)+2C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7CE96
_ZN17SVC_EntityMessage14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7CF09:				; CODE XREF: .text:0007CF50j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_7CF3E
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7CF3E:				; CODE XREF: .text:0007CF0Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7CF09
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::ReadFromBuffer(bf_read &)
_ZN18SVC_PacketEntities14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7D00D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_packetenti ; "SVC_PacketEntities::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN18SVC_PacketEntities14ReadFromBufferER7bf_readE6tm_fmt ; SVC_PacketEntities::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 616h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]

loc_7CFFE:				; DATA XREF: Mod_LoadSurfedges(medge_t *)+49o
					; Mod_LoadSurfedges(medge_t *)+150o
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_2C], edi

loc_7D00D:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+39j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7D032
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7D370

loc_7D032:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+BDj
					; SVC_PacketEntities::ReadFromBuffer(bf_read &)+459j
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Ah
		jle	loc_7D2E0
		mov	edi, [ebx]
		lea	eax, [edx+0Bh]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Ah]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 7FFh

loc_7D07B:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+38Dj
		mov	[esi+10h], eax
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7D110
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		and	eax, 1
		mov	[ebx+0Ch], ecx
		test	eax, eax
		mov	[esi+18h], al
		jz	short loc_7D120
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7D328
		mov	edi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	eax, cl
		or	edx, eax

loc_7D0EE:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+3D5j
		mov	[esi+20h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		test	ecx, ecx
		jg	short loc_7D135

loc_7D0FF:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+1D3j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_7D15C
; ---------------------------------------------------------------------------
		align 10h

loc_7D110:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+128j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	byte ptr [esi+18h], 0
		lea	esi, [esi+0]

loc_7D120:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+148j
		mov	dword ptr [esi+20h], 0FFFFFFFFh
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		test	ecx, ecx
		jle	short loc_7D0FF

loc_7D135:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+19Dj
		lea	edx, [eax+1]
		mov	edi, eax
		sar	eax, 5
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		and	edi, 1Fh
		mov	ecx, 20h
		sub	ecx, edi
		mov	edx, [edx+eax*4]
		mov	eax, edx
		shl	eax, cl
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx
		and	eax, 1

loc_7D15C:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+1ACj
		mov	[esi+1Ch], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Ah
		jle	loc_7D310
		mov	edi, [ebx]
		lea	eax, [edx+0Bh]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+0Ah]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 7FFh

loc_7D1A8:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+3BDj
		mov	[esi+14h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 13h
		jle	loc_7D2F8
		mov	edi, [ebx]
		lea	eax, [edx+14h]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+13h]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, offset loc_FFFFF

loc_7D1F4:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+3A5j
		mov	[esi+24h], eax
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7D3D0
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_7D21C:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+47Aj
		mov	[esi+19h], al
		mov	eax, [ebx]
		mov	[esi+28h], eax
		mov	eax, [ebx+4]
		mov	[esi+2Ch], eax
		mov	eax, [ebx+8]
		mov	[esi+30h], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+34h], eax
		mov	eax, [ebx+10h]
		mov	[esi+38h], eax
		mov	eax, [ebx+14h]
		mov	[esi+3Ch], eax
		mov	eax, [esi+24h]
		add	eax, [ebx+0Ch]
		js	short loc_7D2C8
		cmp	eax, [ebx+8]
		jg	short loc_7D2C8
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_7D257:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+378j
		cmp	[ebp+var_19], 0
		jz	short loc_7D283
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7D270
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_7D283

loc_7D270:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+304j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7D340

loc_7D283:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+2FBj
					; SVC_PacketEntities::ReadFromBuffer(bf_read &)+30Ej ...
		mov	edx, [ebp+var_2C]
		test	edx, edx
		jz	short loc_7D2B9
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7D2B9:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+328j
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_7D2C8:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+2E8j
					; SVC_PacketEntities::ReadFromBuffer(bf_read &)+2EDj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_7D257
; ---------------------------------------------------------------------------
		align 10h

loc_7D2E0:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+DFj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7D07B
; ---------------------------------------------------------------------------
		align 8

loc_7D2F8:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+258j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7D1F4
; ---------------------------------------------------------------------------
		align 10h

loc_7D310:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+20Cj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7D1A8
; ---------------------------------------------------------------------------
		align 8

loc_7D328:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+157j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7D0EE
; ---------------------------------------------------------------------------
		align 10h

loc_7D340:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+31Dj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7D3C0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7D35E:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+465j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7D283
; ---------------------------------------------------------------------------
		align 10h

loc_7D370:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_packetenti	; "SVC_PacketEntities::ReadFromBuffer"
		jz	short loc_7D3AA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_packetenti ; "SVC_PacketEntities::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7D3AA:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+41Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7D032
; ---------------------------------------------------------------------------
		align 10h

loc_7D3C0:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+3EFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7D35E
; ---------------------------------------------------------------------------
		align 10h

loc_7D3D0:				; CODE XREF: SVC_PacketEntities::ReadFromBuffer(bf_read	&)+2A1j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7D21C
_ZN18SVC_PacketEntities14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7D3E9:				; CODE XREF: .text:0007D428j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_7D41E
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7D41E:				; CODE XREF: .text:0007D3EDj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7D3E9
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::ReadFromBuffer(bf_read &)
_ZN17SVC_GameEventList14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_GameEventListo

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_7D4DD
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_gameeventl ; "SVC_GameEventList::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN17SVC_GameEventList14ReadFromBufferER7bf_readE6tm_fmt ;	SVC_GameEventList::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 68Eh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], edx
		mov	[ebp+var_2C], edi

loc_7D4DD:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+39j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7D501
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7D6C0

loc_7D501:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+BCj
					; SVC_GameEventList::ReadFromBuffer(bf_read &)+2D9j
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 8
		jle	loc_7D670
		mov	edi, [ebx]
		lea	eax, [edx+9]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+8]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFh

loc_7D54A:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+24Dj
		mov	[esi+10h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 13h
		jle	loc_7D658
		mov	edi, [ebx]
		lea	eax, [edx+14h]
		mov	ecx, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+13h]
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_30]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_30]
		shr	edx, cl
		or	eax, edx
		and	eax, offset loc_FFFFF

loc_7D596:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+235j
		mov	[esi+14h], eax
		mov	edx, [ebx]
		mov	[esi+18h], edx
		mov	edx, [ebx+4]
		mov	[esi+1Ch], edx
		mov	edx, [ebx+8]
		mov	[esi+20h], edx
		mov	edx, [ebx+0Ch]
		mov	[esi+24h], edx
		mov	edx, [ebx+10h]
		mov	[esi+28h], edx
		mov	edx, [ebx+14h]
		mov	[esi+2Ch], edx
		add	eax, [ebx+0Ch]
		js	short loc_7D640
		cmp	eax, [ebx+8]
		jg	short loc_7D640
		mov	[ebx+0Ch], eax
		mov	ebx, 1

loc_7D5CE:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+220j
		cmp	[ebp+var_19], 0
		jz	short loc_7D5F9
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7D5E6
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7D5F9

loc_7D5E6:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+1ABj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7D688

loc_7D5F9:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+1A2j
					; SVC_GameEventList::ReadFromBuffer(bf_read &)+1B4j ...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_7D62F
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_2C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7D62F:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+1CEj
		add	esp, 5Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7D640:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+18Fj
					; SVC_GameEventList::ReadFromBuffer(bf_read &)+194j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		xor	ebx, ebx
		jmp	loc_7D5CE
; ---------------------------------------------------------------------------
		align 4

loc_7D658:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+12Aj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7D596
; ---------------------------------------------------------------------------
		align 10h

loc_7D670:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+DEj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_7D54A
; ---------------------------------------------------------------------------
		align 8

loc_7D688:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+1C3j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7D710
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7D6A6:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+2E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7D5F9
; ---------------------------------------------------------------------------
		align 10h

loc_7D6C0:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+CBj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_gameeventl	; "SVC_GameEventList::ReadFromBuffer"
		jz	short loc_7D6FA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_gameeventl ; "SVC_GameEventList::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7D6FA:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+29Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7D501
; ---------------------------------------------------------------------------
		align 10h

loc_7D710:				; CODE XREF: SVC_GameEventList::ReadFromBuffer(bf_read &)+267j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7D6A6
_ZN17SVC_GameEventList14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7D719:				; CODE XREF: .text:0007D760j
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_7D74E
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-2Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7D74E:				; CODE XREF: .text:0007D71Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7D719
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::ReadFromBuffer(bf_read &)
_ZN16SVC_GetCvarValue14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_7D812
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_getcvarval ; "SVC_GetCvarValue::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16SVC_GetCvarValue14ReadFromBufferER7bf_readE6tm_fmt ; SVC_GetCvarValue::ReadFromBuffer(bf_read	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 795h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_7D812:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7D836
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7D918

loc_7D836:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+B1j
					; SVC_GetCvarValue::ReadFromBuffer(bf_read &)+1F1j
		mov	dword ptr [esp+4], 20h
		mov	[esp], edi
		call	_ZN7bf_read12ReadSBitLongEi ; bf_read::ReadSBitLong(int)
		mov	edx, [ebp+arg_0]
		mov	esi, edx
		mov	[edx+10h], eax
		add	esi, 18h
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	[esp+4], esi
		mov	[esp], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	eax, [ebp+arg_0]
		cmp	[ebp+var_19], 0
		mov	[eax+14h], esi
		movzx	esi, byte ptr [edi+10h]
		jz	short loc_7D8A6
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7D897
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7D8A6

loc_7D897:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+11Cj
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_7D8E8

loc_7D8A6:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+113j
					; SVC_GetCvarValue::ReadFromBuffer(bf_read &)+125j ...
		test	ebx, ebx
		jz	short loc_7D8D6
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_7D8D6:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+138j
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_7D8E8:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+134j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7D970
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7D906:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+205j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_7D8A6
; ---------------------------------------------------------------------------
		align 8

loc_7D918:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_getcvarval	; "SVC_GetCvarValue::ReadFromBuffer"
		jz	short loc_7D952
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_getcvarval ; "SVC_GetCvarValue::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7D952:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+1B3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7D836
; ---------------------------------------------------------------------------
		align 10h

loc_7D970:				; CODE XREF: SVC_GetCvarValue::ReadFromBuffer(bf_read &)+187j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7D906
_ZN16SVC_GetCvarValue14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_7D979:				; CODE XREF: .text:0007D9BBj
		test	ebx, ebx
		jz	short loc_7D9A9
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_7D9A9:				; CODE XREF: .text:0007D97Bj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7D979
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Base_CmdKeyValues::Base_CmdKeyValues(KeyValues *)
_ZN17Base_CmdKeyValuesC2EP9KeyValues proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV17Base_CmdKeyValues+8)
		mov	[eax+0Ch], edx
		pop	ebp
		retn
_ZN17Base_CmdKeyValuesC2EP9KeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::ReadFromBuffer(bf_read &)
_ZN8SVC_Menu14ReadFromBufferER7bf_read proc near ; DATA	XREF: .rodata:`vtable for'SVC_Menuo

var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
ptr		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_6C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_78], 0
		mov	[ebp+var_74], 0
		test	eax, eax
		jz	short loc_7DA90
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_menuReadfr ; "SVC_Menu::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN8SVC_Menu14ReadFromBufferER7bf_readE6tm_fmt ; SVC_Menu::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 664h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_78], eax
		mov	[ebp+var_74], edx
		mov	[ebp+var_6C], edi

loc_7DA90:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+3Cj
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7DAB5
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7DCE0

loc_7DAB5:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+C0j
					; SVC_Menu::ReadFromBuffer(bf_read &)+349j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7DC90
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_70], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_70]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_70]
		shr	eax, cl
		or	edx, eax
		movsx	edx, dx

loc_7DAFC:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+2BDj
		mov	[esi+14h], edx
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7DC78
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_70], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_70]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_70]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFFFh

loc_7DB49:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+2A5j
		mov	[esi+18h], edx
		lea	edi, [ebp+ptr]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+8], edx	; size
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], edi	; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	eax, [esi+18h]
		mov	[esp], ebx
		mov	[esp+8], eax
		mov	eax, [ebp+ptr]
		mov	[esp+4], eax
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		mov	eax, [esi+18h]
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		mov	[esp+8], eax
		call	_ZN10CUtlBuffer7SeekPutENS_10SeekType_tEi ; CUtlBuffer::SeekPut(CUtlBuffer::SeekType_t,int)
		mov	eax, [esi+10h]
		test	eax, eax
		jz	short loc_7DBA7
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_7DBA7:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+1BDj
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	edi, eax
		mov	dword ptr [esp+4], offset aMenu	; "menu"
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	[esi+10h], edi
		lea	edx, [ebp+ptr]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], edi
		call	_ZN9KeyValues12ReadAsBinaryER10CUtlBufferi ; KeyValues::ReadAsBinary(CUtlBuffer	&,int)
		mov	esi, [ebp+var_58]
		movzx	ebx, byte ptr [ebx+10h]
		test	esi, esi
		js	short loc_7DC07
		mov	eax, [ebp+ptr]
		test	eax, eax
		jz	short loc_7DC00
		mov	[esp], eax	; ptr
		call	free
		mov	[ebp+ptr], 0

loc_7DC00:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+20Fj
		mov	[ebp+var_5C], 0

loc_7DC07:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+208j
		cmp	[ebp+var_19], 0
		jz	short loc_7DC2F
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7DC20
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_7DC2F

loc_7DC20:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+234j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_7DCA8

loc_7DC2F:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+22Bj
					; SVC_Menu::ReadFromBuffer(bf_read &)+23Ej ...
		mov	edx, [ebp+var_6C]
		test	edx, edx
		jz	short loc_7DC65
		mov	eax, [ebp+var_78]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_74]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_6C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7DC65:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+254j
		add	esp, 9Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_7DC78:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+12Cj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7DB49
; ---------------------------------------------------------------------------
		align 10h

loc_7DC90:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+E2j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7DAFC
; ---------------------------------------------------------------------------
		align 8

loc_7DCA8:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+24Dj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7DD30
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7DCC6:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+355j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7DC2F
; ---------------------------------------------------------------------------
		align 10h

loc_7DCE0:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+CFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_menuReadfr	; "SVC_Menu::ReadFromBuffer"
		jz	short loc_7DD1A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_menuReadfr ; "SVC_Menu::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7DD1A:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+30Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7DAB5
; ---------------------------------------------------------------------------
		align 10h

loc_7DD30:				; CODE XREF: SVC_Menu::ReadFromBuffer(bf_read &)+2D7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7DCC6
_ZN8SVC_Menu14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7DD39:				; CODE XREF: .text:0007DD80j
		cmp	dword ptr [ebp-6Ch], 0
		jz	short loc_7DD6E
		mov	edx, [ebp-78h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-74h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-6Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], edx
		mov	[esp+8], ecx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7DD6E:				; CODE XREF: .text:0007DD3Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7DD78:				; CODE XREF: .text:0007DD97j
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7DD39
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)

loc_7DD8C:				; CODE XREF: .text:0007DD9Bj
		lea	eax, [ebp-60h]
		mov	[esp], eax
		call	_ZN10CUtlBufferD2Ev ; CUtlBuffer::~CUtlBuffer()
		jmp	short loc_7DD78
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7DD8C
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::WriteToBuffer(bf_write &)
_ZN8SVC_Menu13WriteToBufferER8bf_write proc near ; DATA	XREF: .rodata:`vtable for'SVC_Menuo

var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
ptr		= dword	ptr -50h
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	ecx, [ebx+10h]
		test	ecx, ecx
		jz	loc_7DF10
		lea	edi, [ebp+ptr]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; size
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], edi	; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	[esp+4], edi
		mov	eax, [ebx+10h]
		mov	[esp], eax
		call	_ZN9KeyValues13WriteAsBinaryER10CUtlBuffer ; KeyValues::WriteAsBinary(CUtlBuffer &)
		cmp	[ebp+var_40], 1000h
		jle	short loc_7DE38
		mov	dword ptr [esp], offset	aTooMuchMenuDat	; "Too much menu data (4096 bytes max)\n"
		call	Msg
		xor	ebx, ebx

loc_7DE0C:				; CODE XREF: SVC_Menu::WriteToBuffer(bf_write &)+16Bj
		mov	eax, [ebp+var_48]
		test	eax, eax
		js	short loc_7DE22
		mov	eax, [ebp+ptr]
		test	eax, eax
		jz	short loc_7DE22
		mov	[esp], eax	; ptr
		call	free

loc_7DE22:				; CODE XREF: SVC_Menu::WriteToBuffer(bf_write &)+71j
					; SVC_Menu::WriteToBuffer(bf_write &)+78j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_7DE38:				; CODE XREF: SVC_Menu::WriteToBuffer(bf_write &)+5Cj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	ecx, [esi+8]
		mov	[ebp+var_60], eax
		mov	eax, [esi+0Ch]
		mov	edx, ecx
		sub	edx, eax
		cmp	edx, 5
		jle	loc_7DF28
		mov	edx, [esi]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebp+var_5C], ecx
		lea	ecx, [eax+6]
		sar	eax, 5
		mov	[esi+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_5C]
		lea	eax, [edx+eax*4]
		mov	edx, [ebp+var_60]
		rol	edx, cl
		mov	[ebp+var_64], edx
		mov	edx, 1Fh
		mov	ecx, edx
		sub	ecx, [ebp+var_5C]
		shr	edx, cl
		movzx	ecx, byte ptr [ebp+var_5C]
		mov	[ebp+var_68], edx
		mov	edx, [eax]
		mov	[ebp+var_6C], edx
		mov	edx, [ebp+var_68]
		and	edx, 1
		lea	edx, [eax+edx*4]
		mov	[ebp+var_70], edx
		mov	edx, [edx]
		mov	[ebp+var_74], edx
		mov	edx, [ebp+var_64]
		xor	edx, [ebp+var_6C]
		mov	[ebp+var_78], edx
		mov	edx, 3Fh
		shl	edx, cl
		mov	ecx, [ebp+var_64]
		and	[ebp+var_78], edx
		mov	edx, [ebp+var_70]
		xor	ecx, [ebp+var_74]
		and	ecx, [ebp+var_68]
		xor	ecx, [ebp+var_74]
		mov	[edx], ecx
		mov	edx, [ebp+var_6C]
		xor	[ebp+var_78], edx
		mov	edx, [ebp+var_78]
		mov	[eax], edx

loc_7DED0:				; CODE XREF: SVC_Menu::WriteToBuffer(bf_write &)+18Fj
		mov	eax, [ebx+14h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		mov	eax, [ebp+var_40]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteWordEi ; bf_write::WriteWord(int)
		mov	eax, [ebp+var_40]
		mov	[esp], esi
		mov	[esp+8], eax
		mov	eax, [ebp+ptr]
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		movzx	ebx, byte ptr [esi+10h]
		xor	ebx, 1
		jmp	loc_7DE0C
; ---------------------------------------------------------------------------

loc_7DF10:				; CODE XREF: SVC_Menu::WriteToBuffer(bf_write &)+1Dj
		xor	ebx, ebx
		mov	esi, [ebp+var_8]
		mov	eax, ebx
		mov	edi, [ebp+var_4]
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_7DF28:				; CODE XREF: SVC_Menu::WriteToBuffer(bf_write &)+B0j
		mov	[esi+0Ch], ecx
		mov	byte ptr [esi+10h], 1
		jmp	short loc_7DED0
_ZN8SVC_Menu13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN10CUtlBufferD2Ev ; CUtlBuffer::~CUtlBuffer()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Base_CmdKeyValues::ReadFromBuffer(bf_read &)
_ZN17Base_CmdKeyValues14ReadFromBufferER7bf_read proc near
					; CODE XREF: SVC_CmdKeyValues::ReadFromBuffer(bf_read &)+4j
					; CLC_CmdKeyValues::ReadFromBuffer(bf_read &)+4j
					; DATA XREF: ...

var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_6D		= byte ptr -6Dh
var_6C		= dword	ptr -6Ch
ptr		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_78], 0
		mov	[ebp+var_74], 0
		test	eax, eax
		jz	short loc_7DFF5
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aBase_cmdkeyval ; "Base_CmdKeyValues::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN17Base_CmdKeyValues14ReadFromBufferER7bf_readE6tm_fmt ;	Base_CmdKeyValues::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 21Bh
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_78], eax
		mov	[ebp+var_74], edx

loc_7DFF5:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7E019
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7E208

loc_7E019:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+B4j
		mov	edx, [ebp+arg_0]
		mov	esi, [edx+0Ch]
		test	esi, esi
		jz	loc_7E25F

loc_7E027:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+309j
					; Base_CmdKeyValues::ReadFromBuffer(bf_read &)+333j
		mov	[esp], esi
		call	_ZN9KeyValues5ClearEv ;	KeyValues::Clear(void)
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7E198
		mov	esi, [ebx]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_6C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_6C]
		sar	eax, 5
		mov	edx, [esi+edx*4]
		mov	eax, [esi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_6C]
		shr	eax, cl
		or	edx, eax
		mov	[ebp+var_6C], edx

loc_7E076:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+25Cj
		mov	eax, [ebx+8]
		mov	[ebp+var_6D], 0
		sub	eax, [ebx+0Ch]
		sar	eax, 3
		cmp	[ebp+var_6C], eax
		jg	loc_7E12E
		mov	[esp], edx	; size
		call	malloc
		test	eax, eax
		mov	esi, eax
		jz	loc_7E12E
		mov	eax, [ebp+var_6C]
		mov	[esp+4], esi
		mov	[esp], ebx
		shl	eax, 3
		mov	[esp+8], eax
		call	_ZN7bf_read8ReadBitsEPvi ; bf_read::ReadBits(void *,int)
		mov	eax, [ebp+var_6C]
		lea	edx, [ebp+ptr]
		mov	dword ptr [esp+0Ch], 8
		mov	[esp+4], esi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN10CUtlBufferC2EPKvii	; CUtlBuffer::CUtlBuffer(void  const*,int,int)
		mov	edx, [ebp+arg_0]
		lea	ecx, [ebp+ptr]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	eax, [edx+0Ch]
		mov	[esp], eax
		call	_ZN9KeyValues12ReadAsBinaryER10CUtlBufferi ; KeyValues::ReadAsBinary(CUtlBuffer	&,int)
		test	al, al
		mov	[esp], esi	; ptr
		jz	loc_7E1B8
		call	free
		movzx	ebx, byte ptr [ebx+10h]
		mov	[ebp+var_6D], bl
		xor	[ebp+var_6D], 1

loc_7E10A:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+271j
		mov	esi, [ebp+var_58]
		test	esi, esi
		js	short loc_7E12E
		mov	eax, [ebp+ptr]
		test	eax, eax
		jz	short loc_7E127
		mov	[esp], eax	; ptr
		call	free
		mov	[ebp+ptr], 0

loc_7E127:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+1C6j
		mov	[ebp+var_5C], 0

loc_7E12E:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+136j
					; Base_CmdKeyValues::ReadFromBuffer(bf_read &)+148j ...
		cmp	[ebp+var_19], 0
		jz	short loc_7E156
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7E147
		mov	ebx, dword ptr g_VProfCurrentProfile+100Ch
		test	ebx, ebx
		jz	short loc_7E156

loc_7E147:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+1EBj
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_7E1D0

loc_7E156:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+1E2j
					; Base_CmdKeyValues::ReadFromBuffer(bf_read &)+1F5j ...
		test	edi, edi
		jz	short loc_7E186
		mov	eax, [ebp+var_78]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_74]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_7E186:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+208j
		movzx	eax, [ebp+var_6D]
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_7E198:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+ECj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_6C], 0
		xor	edx, edx
		jmp	loc_7E076
; ---------------------------------------------------------------------------
		align 8

loc_7E1B8:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+1A4j
		call	free
		mov	[ebp+var_6D], 0
		jmp	loc_7E10A
; ---------------------------------------------------------------------------
		align 10h

loc_7E1D0:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+204j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_7E290
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7E1F2:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+345j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7E156
; ---------------------------------------------------------------------------
		align 8

loc_7E208:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+C3j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aBase_cmdkeyval	; "Base_CmdKeyValues::ReadFromBuffer"
		jz	short loc_7E242
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aBase_cmdkeyval ; "Base_CmdKeyValues::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7E242:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+2C3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	edx, [ebp+arg_0]
		mov	g_VProfCurrentProfile+1010h, 0
		mov	esi, [edx+0Ch]
		test	esi, esi
		jnz	loc_7E027

loc_7E25F:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+D1j
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	esi, eax
		mov	dword ptr [esp+4], (offset asc_20E578+4)
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], esi
		jmp	loc_7E027
; ---------------------------------------------------------------------------
		align 10h

loc_7E290:				; CODE XREF: Base_CmdKeyValues::ReadFromBuffer(bf_read &)+28Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_7E1F2
_ZN17Base_CmdKeyValues14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)

loc_7E2A4:				; CODE XREF: .text:0007E2EAj
					; .text:0007E2F9j
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7E2AC:				; CODE XREF: .text:0007E2E6j
		test	edi, edi
		jz	short loc_7E2DC
		mov	eax, [ebp-78h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-74h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_7E2DC:				; CODE XREF: .text:0007E2AEj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7E2AC
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7E2A4
; ---------------------------------------------------------------------------
		lea	edx, [ebp-60h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN10CUtlBufferD2Ev ; CUtlBuffer::~CUtlBuffer()
		jmp	short loc_7E2A4
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::ReadFromBuffer(bf_read &)
_ZN16SVC_CmdKeyValues14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN17Base_CmdKeyValues14ReadFromBufferER7bf_read ; Base_CmdKeyValues::ReadFromBuffer(bf_read &)
_ZN16SVC_CmdKeyValues14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::ReadFromBuffer(bf_read &)
_ZN16CLC_CmdKeyValues14ReadFromBufferER7bf_read	proc near
					; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN17Base_CmdKeyValues14ReadFromBufferER7bf_read ; Base_CmdKeyValues::ReadFromBuffer(bf_read &)
_ZN16CLC_CmdKeyValues14ReadFromBufferER7bf_read	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Base_CmdKeyValues::WriteToBuffer(bf_write &)
_ZN17Base_CmdKeyValues13WriteToBufferER8bf_write proc near
					; CODE XREF: SVC_CmdKeyValues::WriteToBuffer(bf_write &)+4j
					; CLC_CmdKeyValues::WriteToBuffer(bf_write &)+4j
					; DATA XREF: ...

var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
src		= dword	ptr -50h
var_48		= dword	ptr -48h
var_34		= dword	ptr -34h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edi, [esi+0Ch]
		test	edi, edi
		jz	loc_7E450
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+20h]
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 5
		jle	loc_7E440
		mov	ecx, edx
		mov	[ebp+var_60], 3Fh
		and	ecx, 1Fh
		mov	[ebp+var_5C], ecx
		lea	ecx, [edx+6]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_5C]
		rol	eax, cl
		mov	[ebp+var_64], eax
		mov	eax, 1Fh
		mov	ecx, eax
		sub	ecx, [ebp+var_5C]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_5C]
		mov	[ebp+var_68], eax
		mov	eax, [edx]
		shl	[ebp+var_60], cl
		mov	[ebp+var_6C], eax
		mov	eax, [ebp+var_68]
		mov	ecx, [ebp+var_64]
		and	eax, 1
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_64]
		xor	ecx, [edi]
		xor	eax, [ebp+var_6C]
		and	ecx, [ebp+var_68]
		and	eax, [ebp+var_60]
		xor	ecx, [edi]
		xor	eax, [ebp+var_6C]
		mov	[edi], ecx
		mov	[edx], eax

loc_7E3B9:				; CODE XREF: Base_CmdKeyValues::WriteToBuffer(bf_write &)+127j
		lea	edi, [ebp+src]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; size
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], edi	; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	[esp+4], edi
		mov	eax, [esi+0Ch]
		mov	[esp], eax
		call	_ZN9KeyValues13WriteAsBinaryER10CUtlBuffer ; KeyValues::WriteAsBinary(CUtlBuffer &)
		xor	esi, esi
		test	al, al
		jz	short loc_7E41D
		mov	esi, [ebp+var_34]
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebp+src]
		shl	esi, 3
		mov	[esp], ebx	; int
		mov	[esp+8], esi	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		movzx	esi, byte ptr [ebx+10h]
		xor	esi, 1

loc_7E41D:				; CODE XREF: Base_CmdKeyValues::WriteToBuffer(bf_write &)+CFj
		mov	eax, [ebp+var_48]
		test	eax, eax
		js	short loc_7E433
		mov	eax, [ebp+src]
		test	eax, eax
		jz	short loc_7E433
		mov	[esp], eax	; ptr
		call	free

loc_7E433:				; CODE XREF: Base_CmdKeyValues::WriteToBuffer(bf_write &)+102j
					; Base_CmdKeyValues::WriteToBuffer(bf_write &)+109j
		add	esp, 7Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7E440:				; CODE XREF: Base_CmdKeyValues::WriteToBuffer(bf_write &)+2Fj
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_7E3B9
; ---------------------------------------------------------------------------
		align 10h

loc_7E450:				; CODE XREF: Base_CmdKeyValues::WriteToBuffer(bf_write &)+14j
		add	esp, 7Ch
		xor	esi, esi
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN17Base_CmdKeyValues13WriteToBufferER8bf_write endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN10CUtlBufferD2Ev ; CUtlBuffer::~CUtlBuffer()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::WriteToBuffer(bf_write &)
_ZN16SVC_CmdKeyValues13WriteToBufferER8bf_write	proc near
					; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN17Base_CmdKeyValues13WriteToBufferER8bf_write ; Base_CmdKeyValues::WriteToBuffer(bf_write &)
_ZN16SVC_CmdKeyValues13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::WriteToBuffer(bf_write &)
_ZN16CLC_CmdKeyValues13WriteToBufferER8bf_write	proc near
					; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN17Base_CmdKeyValues13WriteToBufferER8bf_write ; Base_CmdKeyValues::WriteToBuffer(bf_write &)
_ZN16CLC_CmdKeyValues13WriteToBufferER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::CLC_CmdKeyValues(KeyValues *)
_ZN16CLC_CmdKeyValuesC2EP9KeyValues proc near
					; CODE XREF: CBaseClient::ConnectionStart(INetChannel *)+35Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	[eax+0Ch], edx
		mov	dword ptr [eax], (offset _ZTV16CLC_CmdKeyValues+8)
		pop	ebp
		retn
_ZN16CLC_CmdKeyValuesC2EP9KeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::SVC_CmdKeyValues(KeyValues *)
_ZN16SVC_CmdKeyValuesC2EP9KeyValues proc near
					; CODE XREF: CBaseClientState::ConnectionStart(INetChannel *)+6B4p
					; CVEngineServer::ClientCommandKeyValues(edict_t *,KeyValues *)+39p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	[eax+0Ch], edx
		mov	dword ptr [eax], (offset _ZTV16SVC_CmdKeyValues+8)
		pop	ebp
		retn
_ZN16SVC_CmdKeyValuesC2EP9KeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::SVC_CreateStringTable(void)
_ZN21SVC_CreateStringTableC2Ev proc near
					; CODE XREF: CBaseClientState::ConnectionStart(INetChannel *)+24Ep
					; CNetworkStringTableContainer::WriteBaselines(bf_write	&)+15p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	byte ptr [ebx+4], 1
		lea	eax, [ebx+30h]
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx], (offset _ZTV21SVC_CreateStringTable+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+48h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN21SVC_CreateStringTableC2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::SVC_Menu(DIALOG_TYPE, KeyValues *)
_ZN8SVC_MenuC2E11DIALOG_TYPEP9KeyValues	proc near
					; CODE XREF: CServerPlugin::CreateMessage(edict_t *,DIALOG_TYPE,KeyValues *,IServerPluginCallbacks *)+C1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	byte ptr [ebx+4], 1
		mov	[ebx+14h], eax
		mov	eax, [ebp+arg_8]
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx], (offset _ZTV8SVC_Menu+8)
		mov	[esp], eax
		call	_ZNK9KeyValues8MakeCopyEv ; KeyValues::MakeCopy(void)
		mov	[ebx+10h], eax
		mov	dword ptr [ebx+18h], 0FFFFFFFFh
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN8SVC_MenuC2E11DIALOG_TYPEP9KeyValues	endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::ReadFromBuffer(bf_read	&)
_ZN13NET_SetConVar14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'NET_SetConVaro

var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_230		= byte ptr -230h
var_12C		= byte ptr -12Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 27Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_244], 0
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_250], 0
		mov	[ebp+var_24C], 0
		test	eax, eax
		jz	short loc_7E62F
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aNet_setconvarR ; "NET_SetConVar::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13NET_SetConVar14ReadFromBufferER7bf_readE6tm_fmt ; NET_SetConVar::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 421h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_24C], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_250], eax
		mov	[ebp+var_244], edx

loc_7E62F:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+42j
		mov	ebx, dword ptr g_VProfCurrentProfile+100Ch
		test	ebx, ebx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7E654
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_7E80C

loc_7E654:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+CFj
					; NET_SetConVar::ReadFromBuffer(bf_read	&)+2E5j
		mov	edx, [edi+8]
		mov	eax, [edi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7E7C3
		mov	esi, [edi]
		lea	edx, [eax+8]
		mov	ebx, eax
		mov	[edi+0Ch], edx
		lea	edx, [eax+7]
		sar	eax, 5
		sar	edx, 5
		and	ebx, 1Fh
		mov	ecx, 20h
		sub	ecx, ebx
		mov	edx, [esi+edx*4]
		mov	eax, [esi+eax*4]
		shl	edx, cl
		mov	ecx, ebx
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh
		mov	[ebp+var_23C], edx

loc_7E69E:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+268j
		mov	ecx, [ebp+var_23C]
		mov	eax, [ebp+arg_0]
		test	ecx, ecx
		mov	dword ptr [eax+1Ch], 0
		jz	loc_7E745
		lea	ebx, [ebp+var_230]
		add	eax, 10h
		xor	esi, esi
		mov	[ebp+var_240], eax
		mov	esi, esi
		lea	edi, [edi+0]

loc_7E6D0:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+1D3j
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		lea	edx, [ebp+var_12C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 104h
		mov	[esp+4], edx
		mov	[esp], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	ecx, [ebp+arg_0]
		mov	[esp+8], ebx
		add	esi, 1
		mov	eax, [ecx+1Ch]
		mov	[esp+4], eax
		mov	eax, [ebp+var_240]
		mov	[esp], eax
		call	_ZN10CUtlVectorIN13NET_SetConVar6cvar_sE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)
		cmp	esi, [ebp+var_23C]
		jnz	short loc_7E6D0

loc_7E745:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+140j
		cmp	[ebp+var_19], 0
		movzx	ebx, byte ptr [edi+10h]
		jz	short loc_7E771
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7E762
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		jz	short loc_7E771

loc_7E762:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+1E6j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_7E7DD

loc_7E771:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+1DDj
					; NET_SetConVar::ReadFromBuffer(bf_read	&)+1F0j ...
		mov	eax, [ebp+var_244]
		test	eax, eax
		jz	short loc_7E7B3
		mov	ecx, [ebp+var_24C]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_250]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	ecx, [ebp+var_244]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [ecx+54h]

loc_7E7B3:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+209j
		add	esp, 27Ch
		mov	eax, ebx
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_7E7C3:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+F1j
		mov	[edi+0Ch], edx
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_23C], 0
		jmp	loc_7E69E
; ---------------------------------------------------------------------------

loc_7E7DD:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+1FFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7E85A
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7E7FB:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+2EFj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7E771
; ---------------------------------------------------------------------------

loc_7E80C:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+DEj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aNet_setconvarR	; "NET_SetConVar::ReadFromBuffer"
		jz	short loc_7E846
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aNet_setconvarR ; "NET_SetConVar::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7E846:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+2A7j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7E654
; ---------------------------------------------------------------------------

loc_7E85A:				; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+27Cj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7E7FB
_ZN13NET_SetConVar14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76

loc_7E86B:				; CODE XREF: .text:0007E8B7j
		mov	eax, [ebp-244h]
		test	eax, eax
		jz	short loc_7E8AD
		mov	edx, [ebp-24Ch]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-250h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-244h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_7E8AD:				; CODE XREF: .text:0007E873j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_7E86B
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::ReadFromBuffer(bf_read	&)
_ZN13SVC_ClassInfo14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'SVC_ClassInfoo

var_258		= dword	ptr -258h
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_22C		= dword	ptr -22Ch
var_228		= byte ptr -228h
var_128		= byte ptr -128h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 27Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_248], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_250], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_24C], 0
		test	eax, eax
		jz	short loc_7E982
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSvc_classinfoR ; "SVC_ClassInfo::ReadFromBuffer"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13SVC_ClassInfo14ReadFromBufferER7bf_readE6tm_fmt ; SVC_ClassInfo::ReadFromBuffer(bf_read &)::tm_fmt
		mov	dword ptr [esp+1Ch], 555h
		mov	dword ptr [esp+18h], offset aHomeBuildbotBu ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_250], eax
		mov	[ebp+var_24C], edx
		mov	[ebp+var_248], edi

loc_7E982:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+45j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_7E9A6
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_7EC61

loc_7E9A6:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+D1j
					; SVC_ClassInfo::ReadFromBuffer(bf_read	&)+3EAj
		mov	dword ptr [esi+20h], 0
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_7EC20
		mov	edi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_23C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_23C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_23C]
		shr	eax, cl
		or	edx, eax
		movsx	edx, dx

loc_7E9FD:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+36Dj
		mov	[esi+28h], edx
		mov	[esp], edx
		call	_Z6Q_log2i	; Q_log2(int)
		mov	edi, eax
		mov	ecx, [ebx+0Ch]
		lea	eax, [eax+1]
		mov	[ebp+var_240], eax
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_7EAC4
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		and	eax, 1
		mov	[ebx+0Ch], ecx
		test	eax, eax
		mov	[esi+10h], al
		jz	loc_7EAD0

loc_7EA43:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+215j
					; SVC_ClassInfo::ReadFromBuffer(bf_read	&)+321j
		movzx	ebx, byte ptr [ebx+10h]
		xor	ebx, 1
		cmp	[ebp+var_19], 0
		jz	short loc_7EA75
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_7EA62
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_7EA75

loc_7EA62:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+197j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_7EC32

loc_7EA75:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+18Ej
					; SVC_ClassInfo::ReadFromBuffer(bf_read	&)+1A0j ...
		mov	edi, [ebp+var_248]
		test	edi, edi
		jz	short loc_7EAB7
		mov	edx, [ebp+var_250]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp+var_24C]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_248]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], edx
		mov	[esp+8], ecx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7EAB7:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+1BDj
		add	esp, 27Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_7EAC4:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+15Dj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	byte ptr [esi+10h], 0

loc_7EAD0:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+17Dj
		mov	eax, [esi+28h]
		test	eax, eax
		jle	loc_7EA43
		mov	ecx, edi
		mov	eax, 2
		xor	edi, edi
		shl	eax, cl
		sub	eax, 1
		mov	[ebp+var_244], eax
		jmp	loc_7EBE7
; ---------------------------------------------------------------------------
		align 8

loc_7EAF8:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+337j
		mov	eax, [ebp+var_240]
		mov	ecx, edx
		mov	[ebp+var_258], 20h
		and	ecx, 1Fh
		sub	[ebp+var_258], ecx
		mov	[ebp+var_23C], ecx
		mov	ecx, [ebx]
		add	eax, edx
		sar	edx, 5
		mov	[ebx+0Ch], eax
		sub	eax, 1
		sar	eax, 5
		mov	ecx, [ecx+eax*4]
		mov	eax, [ebx]
		mov	[ebp+var_254], ecx
		movzx	ecx, byte ptr [ebp+var_258]
		mov	edx, [eax+edx*4]
		mov	eax, [ebp+var_244]
		shl	[ebp+var_254], cl
		movzx	ecx, byte ptr [ebp+var_23C]
		shr	edx, cl
		or	[ebp+var_254], edx
		and	[ebp+var_254], eax

loc_7EB5F:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+352j
		mov	edx, [ebp+var_254]
		lea	ecx, [ebp+var_128]
		mov	[esp], ebx
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	[ebp+var_22C], edx
		mov	[esp+4], ecx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		lea	eax, [ebp+var_228]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		lea	eax, [ebp+var_22C]
		add	edi, 1
		mov	[esp+8], eax
		mov	eax, [esi+20h]
		mov	[esp+4], eax
		lea	eax, [esi+14h]
		mov	[esp], eax
		call	_ZN10CUtlVectorIN13SVC_ClassInfo7class_sE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<SVC_ClassInfo::class_s,CUtlMemory<SVC_ClassInfo::class_s,int>>::InsertBefore(int,SVC_ClassInfo::class_s const&)
		cmp	[esi+28h], edi
		jle	loc_7EA43

loc_7EBE7:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+22Fj
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	[ebp+var_240], ecx
		jle	loc_7EAF8
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_254], 0
		jmp	loc_7EB5F
; ---------------------------------------------------------------------------
		align 10h

loc_7EC20:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+FAj
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7E9FD
; ---------------------------------------------------------------------------

loc_7EC32:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+1AFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_7ECAF
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7EC50:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+3F4j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_7EA75
; ---------------------------------------------------------------------------

loc_7EC61:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+E0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSvc_classinfoR	; "SVC_ClassInfo::ReadFromBuffer"
		jz	short loc_7EC9B
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSvc_classinfoR ; "SVC_ClassInfo::ReadFromBuffer"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_7EC9B:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+3ACj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_7E9A6
; ---------------------------------------------------------------------------

loc_7ECAF:				; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+381j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_7EC50
_ZN13SVC_ClassInfo14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_7ECB8:				; CODE XREF: .text:0007ED0Cj
		mov	esi, [ebp-248h]
		test	esi, esi
		jz	short loc_7ECFA
		mov	eax, [ebp-250h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-24Ch]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-248h]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_7ECFA:				; CODE XREF: .text:0007ECC0j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		call	_ZN11CVProfScopeD2Ev_constprop_76
		jmp	short loc_7ECB8
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::ReadFromBuffer(bf_read &)
_ZN11MM_Mutelist14ReadFromBufferER7bf_read proc	near
					; DATA XREF: .rodata:`vtable for'MM_Mutelisto

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_4]
		mov	[esp], edi
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		mov	ebx, [ebp+arg_0]
		mov	[ebx+10h], eax
		mov	[ebx+14h], edx
		mov	edx, [edi+8]
		mov	eax, [edi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7EEA0
		mov	esi, [edi]
		lea	edx, [eax+8]
		mov	ebx, eax
		mov	[edi+0Ch], edx
		lea	edx, [eax+7]
		sar	eax, 5
		sar	edx, 5
		and	ebx, 1Fh
		mov	ecx, 20h
		sub	ecx, ebx
		mov	edx, [esi+edx*4]
		mov	eax, [esi+eax*4]
		shl	edx, cl
		mov	ecx, ebx
		mov	ebx, [ebp+arg_0]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh
		test	edx, edx
		mov	[ebx+18h], dl
		jz	loc_7EE8A
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_30], 0

loc_7ED89:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+174j
		mov	edx, [edi+8]
		mov	eax, [edi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7EED8
		mov	esi, [edi]
		lea	edx, [eax+8]
		mov	ebx, eax
		mov	[edi+0Ch], edx
		lea	edx, [eax+7]
		sar	eax, 5
		sar	edx, 5
		and	ebx, 1Fh
		mov	ecx, 20h
		sub	ecx, ebx
		mov	edx, [esi+edx*4]
		mov	eax, [esi+eax*4]
		shl	edx, cl
		mov	ecx, ebx
		shr	eax, cl
		or	edx, eax

loc_7EDC7:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+1D5j
		mov	ebx, [ebp+var_2C]
		mov	[ebx+19h], dl
		mov	[esp], edi
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+var_30]
		mov	[ecx+ebx*8+1Ch], eax
		mov	[ecx+ebx*8+20h], edx
		mov	edx, [edi+8]
		mov	eax, [edi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7EEC0
		mov	esi, [edi]
		lea	edx, [eax+8]
		mov	ebx, eax
		mov	[edi+0Ch], edx
		lea	edx, [eax+7]
		sar	eax, 5
		sar	edx, 5
		and	ebx, 1Fh
		mov	ecx, 20h
		sub	ecx, ebx
		mov	edx, [esi+edx*4]
		mov	eax, [esi+eax*4]
		shl	edx, cl
		mov	ecx, ebx
		mov	ebx, [ebp+var_2C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh
		test	edx, edx
		mov	[ebx+24h], dl
		jz	short loc_7EE72
		mov	ebx, [ebp+var_30]
		xor	esi, esi
		mov	edx, [ebp+arg_0]
		lea	eax, [ebx+ebx*4]
		lea	ebx, [edx+eax*4+28h]

loc_7EE40:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+160j
		mov	[esp], edi
		add	esi, 1
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		lea	ecx, [ebp+var_20]
		mov	[esp+8], ecx
		mov	[ebp+var_20], eax
		mov	eax, [ebx+0Ch]
		mov	[ebp+var_1C], edx
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIy10CUtlMemoryIyiEE12InsertBeforeEiRKy ;	CUtlVector<ulong long,CUtlMemory<ulong long,int>>::InsertBefore(int,ulong long	const&)
		mov	edx, [ebp+var_2C]
		movzx	eax, byte ptr [edx+24h]
		cmp	eax, esi
		jg	short loc_7EE40

loc_7EE72:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+11Fj
					; MM_Mutelist::ReadFromBuffer(bf_read &)+1C2j
		mov	ebx, [ebp+arg_0]
		add	[ebp+var_30], 1
		add	[ebp+var_2C], 1
		movzx	eax, byte ptr [ebx+18h]
		cmp	eax, [ebp+var_30]
		jg	loc_7ED89

loc_7EE8A:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+69j
		movzx	eax, byte ptr [edi+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7EEA0:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+2Aj
		mov	[edi+0Ch], edx
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	byte ptr [ebx+18h], 0
		movzx	eax, byte ptr [edi+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7EEC0:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+E0j
		mov	[edi+0Ch], edx
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	ebx, [ebp+var_2C]
		mov	byte ptr [ebx+24h], 0
		jmp	short loc_7EE72
; ---------------------------------------------------------------------------
		align 8

loc_7EED8:				; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+86j
		mov	[edi+0Ch], edx
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7EDC7
_ZN11MM_Mutelist14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::ReadFromBuffer(bf_read &)
_ZN15MM_JoinResponse14ReadFromBufferER7bf_read proc near
					; DATA XREF: .rodata:`vtable for'MM_JoinResponseo

var_3C		= dword	ptr -3Ch
var_30		= byte ptr -30h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7F1D0
		mov	edi, [esi]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[esi+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_3C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	edx, eax

loc_7EF43:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+2EDj
		mov	[ebx+10h], edx
		mov	[esp], esi
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		mov	[ebx+14h], eax
		mov	[ebx+18h], edx
		mov	[esp], esi
		call	_ZN7bf_read12ReadLongLongEv ; bf_read::ReadLongLong(void)
		mov	[ebx+1Ch], eax
		mov	[ebx+20h], edx
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7F260
		mov	edi, [esi]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[esi+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_3C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	edx, eax

loc_7EFA6:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+37Dj
		mov	[ebx+24h], edx
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7F248
		mov	edi, [esi]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[esi+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_3C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	edx, eax

loc_7EFED:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+365j
		mov	[ebx+28h], edx
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7F230
		mov	edi, [esi]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[esi+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_3C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	edx, eax

loc_7F034:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+34Dj
		mov	[ebx+2Ch], edx
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_7F218
		mov	edi, [esi]
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[esi+0Ch], edx
		lea	edx, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_3C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	edx, eax

loc_7F07B:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+335j
		mov	[ebx+30h], edx
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7F200
		mov	edi, [esi]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[esi+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_3C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_7F0C8:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+31Dj
		mov	[ebx+34h], edx
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_7F1E8
		mov	edi, [esi]
		lea	edx, [eax+8]
		mov	ecx, eax
		mov	[esi+0Ch], edx
		lea	edx, [eax+7]
		and	ecx, 1Fh
		mov	[ebp+var_3C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_7F115:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+305j
		mov	eax, [ebx+34h]
		mov	[ebx+38h], edx
		mov	dword ptr [ebx+48h], 0
		test	eax, eax
		jle	short loc_7F16B
		lea	edx, [ebx+3Ch]
		xor	edi, edi
		mov	[ebp+var_3C], edx
		db	66h
		nop

loc_7F130:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+276j
		lea	ecx, [ebp+var_30]
		mov	dword ptr [esp+8], 10h
		add	edi, 1
		mov	[esp+4], ecx
		mov	[esp], esi
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		lea	eax, [ebp+var_30]
		mov	edx, [ebp+var_3C]
		mov	[esp+8], eax
		mov	eax, [ebx+48h]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorI15_XUSER_PROPERTY10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<_XUSER_PROPERTY,CUtlMemory<_XUSER_PROPERTY,int>>::InsertBefore(int,_XUSER_PROPERTY const&)
		cmp	[ebx+34h], edi
		jg	short loc_7F130
		mov	edx, [ebx+38h]

loc_7F16B:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+234j
		test	edx, edx
		mov	dword ptr [ebx+5Ch], 0
		jle	short loc_7F1B8
		lea	ecx, [ebx+50h]
		xor	edi, edi
		mov	[ebp+var_3C], ecx
		db	66h
		nop

loc_7F180:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+2C6j
		lea	eax, [ebp+var_20]
		mov	dword ptr [esp+8], 8
		add	edi, 1
		mov	[esp+4], eax
		mov	[esp], esi
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		lea	edx, [ebp+var_20]
		mov	ecx, [ebp+var_3C]
		mov	[esp+8], edx
		mov	eax, [ebx+5Ch]
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorI14_XUSER_CONTEXT10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<_XUSER_CONTEXT,CUtlMemory<_XUSER_CONTEXT,int>>::InsertBefore(int,_XUSER_CONTEXT const&)
		cmp	[ebx+38h], edi
		jg	short loc_7F180

loc_7F1B8:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+284j
		movzx	eax, byte ptr [esi+10h]
		add	esp, 4Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_7F1D0:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+1Cj
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7EF43
; ---------------------------------------------------------------------------
		align 8

loc_7F1E8:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+1E8j
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7F115
; ---------------------------------------------------------------------------
		align 10h

loc_7F200:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+19Bj
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7F0C8
; ---------------------------------------------------------------------------
		align 8

loc_7F218:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+154j
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7F07B
; ---------------------------------------------------------------------------
		align 10h

loc_7F230:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+10Dj
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7F034
; ---------------------------------------------------------------------------
		align 8

loc_7F248:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+C6j
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7EFED
; ---------------------------------------------------------------------------
		align 10h

loc_7F260:				; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+7Fj
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_7EFA6
_ZN15MM_JoinResponse14ReadFromBufferER7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; INetMessage::~INetMessage()
_ZN11INetMessageD2Ev proc near		; DATA XREF: .rodata:`vtable for'INetMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN11INetMessageD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::~CNetMessage()
_ZN11CNetMessageD2Ev proc near		; DATA XREF: .rodata:`vtable for'CNetMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN11CNetMessageD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::GetGroup(void)const
_ZNK11CNetMessage8GetGroupEv proc near	; DATA XREF: .rodata:`vtable for'CLC_ClientInfoo
					; .rodata:`vtable for'CLC_RespondCvarValueo ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11CNetMessage8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::GetNetChannel(void)const
_ZNK11CNetMessage13GetNetChannelEv proc	near ; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao
					; .rodata:`vtable for'CLC_Moveo ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+8]
		retn
_ZNK11CNetMessage13GetNetChannelEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::SetReliable(bool)
_ZN11CNetMessage11SetReliableEb	proc near ; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao
					; .rodata:`vtable for'CLC_Moveo ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+4], dl
		pop	ebp
		retn
_ZN11CNetMessage11SetReliableEb	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::IsReliable(void)const
_ZNK11CNetMessage10IsReliableEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao
					; .rodata:`vtable for'CLC_Moveo ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+4]
		retn
_ZNK11CNetMessage10IsReliableEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::SetNetChannel(INetChannel *)
_ZN11CNetMessage13SetNetChannelEP11INetChannel proc near
					; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao
					; .rodata:`vtable for'CLC_Moveo ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		pop	ebp
		retn
_ZN11CNetMessage13SetNetChannelEP11INetChannel endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::Process(void)
_ZN11CNetMessage7ProcessEv proc	near	; DATA XREF: .rodata:`vtable for'Base_CmdKeyValueso
					; .rodata:`vtable for'CNetMessageo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CNetMessage7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::GetType(void)const
_ZNK13NET_SetConVar7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'NET_SetConVaro
		push	ebp
		mov	eax, 5
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13NET_SetConVar7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::GetName(void)const
_ZNK13NET_SetConVar7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'NET_SetConVaro
		push	ebp
		mov	eax, offset aNet_setconvar ; "net_SetConVar"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13NET_SetConVar7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::Process(void)
_ZN13NET_SetConVar7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'NET_SetConVaro

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+10h]
		leave
		retn
_ZN13NET_SetConVar7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::GetGroup(void)const
_ZNK13NET_SetConVar8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'NET_SetConVaro
		push	ebp
		mov	eax, 0Bh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13NET_SetConVar8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::GetType(void)const
_ZNK13NET_StringCmd7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'NET_StringCmdo
		push	ebp
		mov	eax, 4
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13NET_StringCmd7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::GetName(void)const
_ZNK13NET_StringCmd7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'NET_StringCmdo
		push	ebp
		mov	eax, offset aNet_stringcmd ; "net_StringCmd"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13NET_StringCmd7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::Process(void)
_ZN13NET_StringCmd7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'NET_StringCmdo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+0Ch]
		leave
		retn
_ZN13NET_StringCmd7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::GetGroup(void)const
_ZNK13NET_StringCmd8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'NET_StringCmdo
		push	ebp
		mov	eax, 0Bh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13NET_StringCmd8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::GetType(void)const
_ZNK8NET_Tick7GetTypeEv	proc near	; DATA XREF: .rodata:`vtable for'NET_Ticko
		push	ebp
		mov	eax, 3
		mov	ebp, esp
		pop	ebp
		retn
_ZNK8NET_Tick7GetTypeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::GetName(void)const
_ZNK8NET_Tick7GetNameEv	proc near	; DATA XREF: .rodata:`vtable for'NET_Ticko
		push	ebp
		mov	eax, offset aNet_tick ;	"net_Tick"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK8NET_Tick7GetNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::Process(void)
_ZN8NET_Tick7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'NET_Ticko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+8]
		leave
		retn
_ZN8NET_Tick7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::GetType(void)const
_ZNK15NET_SignonState7GetTypeEv	proc near ; DATA XREF: .rodata:`vtable for'NET_SignonStateo
		push	ebp
		mov	eax, 6
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15NET_SignonState7GetTypeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::GetName(void)const
_ZNK15NET_SignonState7GetNameEv	proc near ; DATA XREF: .rodata:`vtable for'NET_SignonStateo
		push	ebp
		mov	eax, offset aNet_signonst_0 ; "net_SignonState"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15NET_SignonState7GetNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::Process(void)
_ZN15NET_SignonState7ProcessEv proc near ; DATA	XREF: .rodata:`vtable for'NET_SignonStateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+14h]
		leave
		retn
_ZN15NET_SignonState7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::GetGroup(void)const
_ZNK15NET_SignonState8GetGroupEv proc near ; DATA XREF:	.rodata:`vtable	for'NET_SignonStateo
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15NET_SignonState8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::GetType(void)const
_ZNK14CLC_ClientInfo7GetTypeEv proc near ; DATA	XREF: .rodata:`vtable for'CLC_ClientInfoo
		push	ebp
		mov	eax, 8
		mov	ebp, esp
		pop	ebp
		retn
_ZNK14CLC_ClientInfo7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::GetName(void)const
_ZNK14CLC_ClientInfo7GetNameEv proc near ; DATA	XREF: .rodata:`vtable for'CLC_ClientInfoo
		push	ebp
		mov	eax, offset aClc_clientin_0 ; "clc_ClientInfo"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK14CLC_ClientInfo7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::Process(void)
_ZN14CLC_ClientInfo7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'CLC_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+18h]
		leave
		retn
_ZN14CLC_ClientInfo7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::GetType(void)const
_ZNK8CLC_Move7GetTypeEv	proc near	; DATA XREF: .rodata:`vtable for'CLC_Moveo
		push	ebp
		mov	eax, 9
		mov	ebp, esp
		pop	ebp
		retn
_ZNK8CLC_Move7GetTypeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::GetName(void)const
_ZNK8CLC_Move7GetNameEv	proc near	; DATA XREF: .rodata:`vtable for'CLC_Moveo
		push	ebp
		mov	eax, offset aClc_move ;	"clc_Move"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK8CLC_Move7GetNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::Process(void)
_ZN8CLC_Move7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'CLC_Moveo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+1Ch]
		leave
		retn
_ZN8CLC_Move7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::GetGroup(void)const
_ZNK8CLC_Move8GetGroupEv proc near	; DATA XREF: .rodata:`vtable for'CLC_Moveo
		push	ebp
		mov	eax, 0Ah
		mov	ebp, esp
		pop	ebp
		retn
_ZNK8CLC_Move8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::GetType(void)const
_ZNK13CLC_VoiceData7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao
		push	ebp
		mov	eax, 0Ah
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13CLC_VoiceData7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::GetName(void)const
_ZNK13CLC_VoiceData7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao
		push	ebp
		mov	eax, offset aClc_voicedata ; "clc_VoiceData"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13CLC_VoiceData7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::Process(void)
_ZN13CLC_VoiceData7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+20h]
		leave
		retn
_ZN13CLC_VoiceData7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::GetGroup(void)const
_ZNK13CLC_VoiceData8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'CLC_VoiceDatao
		push	ebp
		mov	eax, 8
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13CLC_VoiceData8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::GetType(void)const
_ZNK15CLC_BaselineAck7GetTypeEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_BaselineAcko
		push	ebp
		mov	eax, 0Bh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15CLC_BaselineAck7GetTypeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::GetName(void)const
_ZNK15CLC_BaselineAck7GetNameEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_BaselineAcko
		push	ebp
		mov	eax, offset aClc_baseline_0 ; "clc_BaselineAck"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15CLC_BaselineAck7GetNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::Process(void)
_ZN15CLC_BaselineAck7ProcessEv proc near ; DATA	XREF: .rodata:`vtable for'CLC_BaselineAcko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+24h]
		leave
		retn
_ZN15CLC_BaselineAck7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::GetGroup(void)const
_ZNK15CLC_BaselineAck8GetGroupEv proc near ; DATA XREF:	.rodata:`vtable	for'CLC_BaselineAcko
		push	ebp
		mov	eax, 3
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15CLC_BaselineAck8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::GetType(void)const
_ZNK16CLC_ListenEvents7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_ListenEventso
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_ListenEvents7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::GetName(void)const
_ZNK16CLC_ListenEvents7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_ListenEventso
		push	ebp
		mov	eax, offset aClc_listenev_0 ; "clc_ListenEvents"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_ListenEvents7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::Process(void)
_ZN16CLC_ListenEvents7ProcessEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_ListenEventso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+28h]
		leave
		retn
_ZN16CLC_ListenEvents7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::GetGroup(void)const
_ZNK16CLC_ListenEvents8GetGroupEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_ListenEventso
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_ListenEvents8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::GetType(void)const
_ZNK14CLC_SaveReplay7GetTypeEv proc near ; DATA	XREF: .rodata:`vtable for'CLC_SaveReplayo
		push	ebp
		mov	eax, 0Fh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK14CLC_SaveReplay7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::GetName(void)const
_ZNK14CLC_SaveReplay7GetNameEv proc near ; DATA	XREF: .rodata:`vtable for'CLC_SaveReplayo
		push	ebp
		mov	eax, offset aClc_savereplay ; "clc_SaveReplay"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK14CLC_SaveReplay7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::Process(void)
_ZN14CLC_SaveReplay7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'CLC_SaveReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+38h]
		leave
		retn
_ZN14CLC_SaveReplay7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::GetType(void)const
_ZNK20CLC_RespondCvarValue7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo
		push	ebp
		mov	eax, 0Dh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK20CLC_RespondCvarValue7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::GetName(void)const
_ZNK20CLC_RespondCvarValue7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo
		push	ebp
		mov	eax, offset aClc_respondc_0 ; "clc_RespondCvarValue"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK20CLC_RespondCvarValue7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::Process(void)
_ZN20CLC_RespondCvarValue7ProcessEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+2Ch]
		leave
		retn
_ZN20CLC_RespondCvarValue7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::GetType(void)const
_ZNK16CLC_FileCRCCheck7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko
		push	ebp
		mov	eax, 0Eh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_FileCRCCheck7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::GetName(void)const
_ZNK16CLC_FileCRCCheck7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko
		push	ebp
		mov	eax, offset aClc_filecrcc_0 ; "clc_FileCRCCheck"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_FileCRCCheck7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::Process(void)
_ZN16CLC_FileCRCCheck7ProcessEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+30h]
		leave
		retn
_ZN16CLC_FileCRCCheck7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::GetType(void)const
_ZNK16CLC_FileMD5Check7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko
		push	ebp
		mov	eax, 11h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_FileMD5Check7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::GetName(void)const
_ZNK16CLC_FileMD5Check7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko
		push	ebp
		mov	eax, offset aClc_filemd5c_0 ; "clc_FileMD5Check"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_FileMD5Check7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::Process(void)
_ZN16CLC_FileMD5Check7ProcessEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+34h]
		leave
		retn
_ZN16CLC_FileMD5Check7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::GetType(void)const
_ZNK16CLC_CmdKeyValues7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso
		push	ebp
		mov	eax, 10h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_CmdKeyValues7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::GetName(void)const
_ZNK16CLC_CmdKeyValues7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso
		push	ebp
		mov	eax, offset aClc_cmdkeyvalu ; "clc_CmdKeyValues"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CLC_CmdKeyValues7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::Process(void)
_ZN16CLC_CmdKeyValues7ProcessEv	proc near ; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+3Ch]
		leave
		retn
_ZN16CLC_CmdKeyValues7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::GetType(void)const
_ZNK16SVC_CmdKeyValues7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso
		push	ebp
		mov	eax, 20h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16SVC_CmdKeyValues7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::GetName(void)const
_ZNK16SVC_CmdKeyValues7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso
		push	ebp
		mov	eax, offset aSvc_cmdkeyvalu ; "svc_CmdKeyValues"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16SVC_CmdKeyValues7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::Process(void)
_ZN16SVC_CmdKeyValues7ProcessEv	proc near ; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+78h]
		leave
		retn
_ZN16SVC_CmdKeyValues7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::GetType(void)const
_ZNK9SVC_Print7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Printo
		push	ebp
		mov	eax, 7
		mov	ebp, esp
		pop	ebp
		retn
_ZNK9SVC_Print7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::GetName(void)const
_ZNK9SVC_Print7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Printo
		push	ebp
		mov	eax, offset aSvc_print ; "svc_Print"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK9SVC_Print7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::Process(void)
_ZN9SVC_Print7ProcessEv	proc near	; DATA XREF: .rodata:`vtable for'SVC_Printo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+1Ch]
		leave
		retn
_ZN9SVC_Print7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::GetType(void)const
_ZNK14SVC_ServerInfo7GetTypeEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_ServerInfoo
		push	ebp
		mov	eax, 8
		mov	ebp, esp
		pop	ebp
		retn
_ZNK14SVC_ServerInfo7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::GetName(void)const
_ZNK14SVC_ServerInfo7GetNameEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_ServerInfoo
		push	ebp
		mov	eax, offset aSvc_serverin_0 ; "svc_ServerInfo"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK14SVC_ServerInfo7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::Process(void)
_ZN14SVC_ServerInfo7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_ServerInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+20h]
		leave
		retn
_ZN14SVC_ServerInfo7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::GetGroup(void)const
_ZNK14SVC_ServerInfo8GetGroupEv	proc near ; DATA XREF: .rodata:`vtable for'SVC_ServerInfoo
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK14SVC_ServerInfo8GetGroupEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::GetType(void)const
_ZNK13SVC_SendTable7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SendTableo
		push	ebp
		mov	eax, 9
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_SendTable7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::GetName(void)const
_ZNK13SVC_SendTable7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SendTableo
		push	ebp
		mov	eax, offset aSvc_sendtable ; "svc_SendTable"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_SendTable7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::Process(void)
_ZN13SVC_SendTable7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SendTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+24h]
		leave
		retn
_ZN13SVC_SendTable7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::GetGroup(void)const
_ZNK13SVC_SendTable8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_SendTableo
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_SendTable8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::GetType(void)const
_ZNK13SVC_ClassInfo7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_ClassInfoo
		push	ebp
		mov	eax, 0Ah
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_ClassInfo7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::GetName(void)const
_ZNK13SVC_ClassInfo7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_ClassInfoo
		push	ebp
		mov	eax, offset aSvc_classinfo ; "svc_ClassInfo"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_ClassInfo7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::Process(void)
_ZN13SVC_ClassInfo7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_ClassInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+28h]
		leave
		retn
_ZN13SVC_ClassInfo7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::GetGroup(void)const
_ZNK13SVC_ClassInfo8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_ClassInfoo
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_ClassInfo8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::GetType(void)const
_ZNK12SVC_SetPause7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SetPauseo
		push	ebp
		mov	eax, 0Bh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_SetPause7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::GetName(void)const
_ZNK12SVC_SetPause7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SetPauseo
		push	ebp
		mov	eax, offset aSvc_setpause ; "svc_SetPause"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_SetPause7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::Process(void)
_ZN12SVC_SetPause7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SetPauseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+2Ch]
		leave
		retn
_ZN12SVC_SetPause7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::GetType(void)const
_ZNK21SVC_CreateStringTable7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK21SVC_CreateStringTable7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::GetName(void)const
_ZNK21SVC_CreateStringTable7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo
		push	ebp
		mov	eax, offset aSvc_createst_0 ; "svc_CreateStringTable"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK21SVC_CreateStringTable7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::Process(void)
_ZN21SVC_CreateStringTable7ProcessEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+30h]
		leave
		retn
_ZN21SVC_CreateStringTable7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::GetGroup(void)const
_ZNK21SVC_CreateStringTable8GetGroupEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK21SVC_CreateStringTable8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::GetType(void)const
_ZNK21SVC_UpdateStringTable7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo
		push	ebp
		mov	eax, 0Dh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK21SVC_UpdateStringTable7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::GetName(void)const
_ZNK21SVC_UpdateStringTable7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo
		push	ebp
		mov	eax, offset aSvc_updatest_0 ; "svc_UpdateStringTable"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK21SVC_UpdateStringTable7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::Process(void)
_ZN21SVC_UpdateStringTable7ProcessEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+34h]
		leave
		retn
_ZN21SVC_UpdateStringTable7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::GetGroup(void)const
_ZNK21SVC_UpdateStringTable8GetGroupEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo
		push	ebp
		mov	eax, 9
		mov	ebp, esp
		pop	ebp
		retn
_ZNK21SVC_UpdateStringTable8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::GetType(void)const
_ZNK13SVC_VoiceInit7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceInito
		push	ebp
		mov	eax, 0Eh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_VoiceInit7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::GetName(void)const
_ZNK13SVC_VoiceInit7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceInito
		push	ebp
		mov	eax, offset aSvc_voiceinit ; "svc_VoiceInit"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_VoiceInit7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::Process(void)
_ZN13SVC_VoiceInit7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceInito

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+38h]
		leave
		retn
_ZN13SVC_VoiceInit7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::GetGroup(void)const
_ZNK13SVC_VoiceInit8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_VoiceInito
		push	ebp
		mov	eax, 0Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_VoiceInit8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::GetType(void)const
_ZNK13SVC_VoiceData7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceDatao
		push	ebp
		mov	eax, 0Fh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_VoiceData7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::GetName(void)const
_ZNK13SVC_VoiceData7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceDatao
		push	ebp
		mov	eax, offset aSvc_voicedata ; "svc_VoiceData"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_VoiceData7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::Process(void)
_ZN13SVC_VoiceData7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+3Ch]
		leave
		retn
_ZN13SVC_VoiceData7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::GetGroup(void)const
_ZNK13SVC_VoiceData8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_VoiceDatao
		push	ebp
		mov	eax, 8
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_VoiceData8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::GetType(void)const
_ZNK10SVC_Sounds7GetTypeEv proc	near	; DATA XREF: .rodata:`vtable for'SVC_Soundso
		push	ebp
		mov	eax, 11h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK10SVC_Sounds7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::GetName(void)const
_ZNK10SVC_Sounds7GetNameEv proc	near	; DATA XREF: .rodata:`vtable for'SVC_Soundso
		push	ebp
		mov	eax, offset aSvc_sounds	; "svc_Sounds"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK10SVC_Sounds7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::Process(void)
_ZN10SVC_Sounds7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Soundso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+40h]
		leave
		retn
_ZN10SVC_Sounds7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::GetGroup(void)const
_ZNK10SVC_Sounds8GetGroupEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Soundso
		push	ebp
		mov	eax, 4
		mov	ebp, esp
		pop	ebp
		retn
_ZNK10SVC_Sounds8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::GetType(void)const
_ZNK12SVC_Prefetch7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Prefetcho
		push	ebp
		mov	eax, 1Ch
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_Prefetch7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::GetName(void)const
_ZNK12SVC_Prefetch7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Prefetcho
		push	ebp
		mov	eax, offset aSvc_prefetch ; "svc_Prefetch"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_Prefetch7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::Process(void)
_ZN12SVC_Prefetch7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Prefetcho

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+68h]
		leave
		retn
_ZN12SVC_Prefetch7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::GetGroup(void)const
_ZNK12SVC_Prefetch8GetGroupEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Prefetcho
		push	ebp
		mov	eax, 4
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_Prefetch8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::GetType(void)const
_ZNK11SVC_SetView7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SetViewo
		push	ebp
		mov	eax, 12h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11SVC_SetView7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::GetName(void)const
_ZNK11SVC_SetView7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_SetViewo
		push	ebp
		mov	eax, offset aSvc_setview ; "svc_SetView"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11SVC_SetView7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::Process(void)
_ZN11SVC_SetView7ProcessEv proc	near	; DATA XREF: .rodata:`vtable for'SVC_SetViewo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+44h]
		leave
		retn
_ZN11SVC_SetView7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::GetType(void)const
_ZNK12SVC_FixAngle7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_FixAngleo
		push	ebp
		mov	eax, 13h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_FixAngle7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::GetName(void)const
_ZNK12SVC_FixAngle7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_FixAngleo
		push	ebp
		mov	eax, offset aSvc_fixangle ; "svc_FixAngle"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_FixAngle7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::Process(void)
_ZN12SVC_FixAngle7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_FixAngleo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+48h]
		leave
		retn
_ZN12SVC_FixAngle7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::GetType(void)const
_ZNK18SVC_CrosshairAngle7GetTypeEv proc	near
					; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo
		push	ebp
		mov	eax, 14h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK18SVC_CrosshairAngle7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::GetName(void)const
_ZNK18SVC_CrosshairAngle7GetNameEv proc	near
					; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo
		push	ebp
		mov	eax, offset aSvc_crosshai_0 ; "svc_CrosshairAngle"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK18SVC_CrosshairAngle7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::Process(void)
_ZN18SVC_CrosshairAngle7ProcessEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+4Ch]
		leave
		retn
_ZN18SVC_CrosshairAngle7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::GetType(void)const
_ZNK12SVC_BSPDecal7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo
		push	ebp
		mov	eax, 15h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_BSPDecal7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::GetName(void)const
_ZNK12SVC_BSPDecal7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo
		push	ebp
		mov	eax, offset aSvc_bspdecal ; "svc_BSPDecal"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12SVC_BSPDecal7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::Process(void)
_ZN12SVC_BSPDecal7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+50h]
		leave
		retn
_ZN12SVC_BSPDecal7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::GetType(void)const
_ZNK13SVC_GameEvent7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'SVC_GameEvento
		push	ebp
		mov	eax, 19h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_GameEvent7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::GetName(void)const
_ZNK13SVC_GameEvent7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'SVC_GameEvento
		push	ebp
		mov	eax, offset aSvc_gameevent ; "svc_GameEvent"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_GameEvent7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::Process(void)
_ZN13SVC_GameEvent7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_GameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+54h]
		leave
		retn
_ZN13SVC_GameEvent7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::GetGroup(void)const
_ZNK13SVC_GameEvent8GetGroupEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_GameEvento
		push	ebp
		mov	eax, 5
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13SVC_GameEvent8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::GetType(void)const
_ZNK15SVC_UserMessage7GetTypeEv	proc near ; DATA XREF: .rodata:`vtable for'SVC_UserMessageo
		push	ebp
		mov	eax, 17h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15SVC_UserMessage7GetTypeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::GetName(void)const
_ZNK15SVC_UserMessage7GetNameEv	proc near ; DATA XREF: .rodata:`vtable for'SVC_UserMessageo
		push	ebp
		mov	eax, offset aSvc_usermess_0 ; "svc_UserMessage"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15SVC_UserMessage7GetNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::Process(void)
_ZN15SVC_UserMessage7ProcessEv proc near ; DATA	XREF: .rodata:`vtable for'SVC_UserMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+58h]
		leave
		retn
_ZN15SVC_UserMessage7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::GetGroup(void)const
_ZNK15SVC_UserMessage8GetGroupEv proc near ; DATA XREF:	.rodata:`vtable	for'SVC_UserMessageo
		push	ebp
		mov	eax, 6
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15SVC_UserMessage8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::GetType(void)const
_ZNK17SVC_EntityMessage7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo
		push	ebp
		mov	eax, 18h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK17SVC_EntityMessage7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::GetName(void)const
_ZNK17SVC_EntityMessage7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo
		push	ebp
		mov	eax, offset aSvc_entityme_0 ; "svc_EntityMessage"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK17SVC_EntityMessage7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::Process(void)
_ZN17SVC_EntityMessage7ProcessEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+5Ch]
		leave
		retn
_ZN17SVC_EntityMessage7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::GetGroup(void)const
_ZNK17SVC_EntityMessage8GetGroupEv proc	near
					; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo
		push	ebp
		mov	eax, 7
		mov	ebp, esp
		pop	ebp
		retn
_ZNK17SVC_EntityMessage8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::GetType(void)const
_ZNK18SVC_PacketEntities7GetTypeEv proc	near
					; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso
		push	ebp
		mov	eax, 1Ah
		mov	ebp, esp
		pop	ebp
		retn
_ZNK18SVC_PacketEntities7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::GetName(void)const
_ZNK18SVC_PacketEntities7GetNameEv proc	near
					; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso
		push	ebp
		mov	eax, offset aSvc_packeten_0 ; "svc_PacketEntities"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK18SVC_PacketEntities7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::Process(void)
_ZN18SVC_PacketEntities7ProcessEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+60h]
		leave
		retn
_ZN18SVC_PacketEntities7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::GetGroup(void)const
_ZNK18SVC_PacketEntities8GetGroupEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso
		push	ebp
		mov	eax, 3
		mov	ebp, esp
		pop	ebp
		retn
_ZNK18SVC_PacketEntities8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::GetType(void)const
_ZNK16SVC_TempEntities7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso
		push	ebp
		mov	eax, 1Bh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16SVC_TempEntities7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::GetName(void)const
_ZNK16SVC_TempEntities7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso
		push	ebp
		mov	eax, offset aSvc_tempenti_0 ; "svc_TempEntities"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16SVC_TempEntities7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::Process(void)
_ZN16SVC_TempEntities7ProcessEv	proc near ; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+64h]
		leave
		retn
_ZN16SVC_TempEntities7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::GetGroup(void)const
_ZNK16SVC_TempEntities8GetGroupEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso
		push	ebp
		mov	eax, 5
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16SVC_TempEntities8GetGroupEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::GetType(void)const
_ZNK8SVC_Menu7GetTypeEv	proc near	; DATA XREF: .rodata:`vtable for'SVC_Menuo
		push	ebp
		mov	eax, 1Dh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK8SVC_Menu7GetTypeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::GetName(void)const
_ZNK8SVC_Menu7GetNameEv	proc near	; DATA XREF: .rodata:`vtable for'SVC_Menuo
		push	ebp
		mov	eax, offset aSvc_menu ;	"svc_Menu"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK8SVC_Menu7GetNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Menu::Process(void)
_ZN8SVC_Menu7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'SVC_Menuo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+6Ch]
		leave
		retn
_ZN8SVC_Menu7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::GetType(void)const
_ZNK17SVC_GameEventList7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_GameEventListo
		push	ebp
		mov	eax, 1Eh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK17SVC_GameEventList7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::GetName(void)const
_ZNK17SVC_GameEventList7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_GameEventListo
		push	ebp
		mov	eax, offset aSvc_gameeven_0 ; "svc_GameEventList"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK17SVC_GameEventList7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::Process(void)
_ZN17SVC_GameEventList7ProcessEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_GameEventListo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+70h]
		leave
		retn
_ZN17SVC_GameEventList7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::GetType(void)const
_ZNK12MM_Heartbeat7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'MM_Heartbeato
		push	ebp
		mov	eax, 10h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12MM_Heartbeat7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::GetName(void)const
_ZNK12MM_Heartbeat7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'MM_Heartbeato
		push	ebp
		mov	eax, offset word_1E9C46
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12MM_Heartbeat7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::Process(void)
_ZN12MM_Heartbeat7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'MM_Heartbeato

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+18h]
		leave
		retn
_ZN12MM_Heartbeat7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::GetType(void)const
_ZNK13MM_ClientInfo7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'MM_ClientInfoo
		push	ebp
		mov	eax, 11h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13MM_ClientInfo7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::GetName(void)const
_ZNK13MM_ClientInfo7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'MM_ClientInfoo
		push	ebp
		mov	eax, offset aMm_clientinfo ; "mm_ClientInfo"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13MM_ClientInfo7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::Process(void)
_ZN13MM_ClientInfo7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'MM_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+1Ch]
		leave
		retn
_ZN13MM_ClientInfo7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::GetType(void)const
_ZNK19MM_RegisterResponse7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo
		push	ebp
		mov	eax, 13h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK19MM_RegisterResponse7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::GetName(void)const
_ZNK19MM_RegisterResponse7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo
		push	ebp
		mov	eax, offset aMm_registerres ; "mm_RegisterResponse"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK19MM_RegisterResponse7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::Process(void)
_ZN19MM_RegisterResponse7ProcessEv proc	near
					; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+24h]
		leave
		retn
_ZN19MM_RegisterResponse7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::GetType(void)const
_ZNK11MM_Mutelist7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'MM_Mutelisto
		push	ebp
		mov	eax, 15h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11MM_Mutelist7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::GetName(void)const
_ZNK11MM_Mutelist7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'MM_Mutelisto
		push	ebp
		mov	eax, offset byte_1E9C75
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11MM_Mutelist7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::Process(void)
_ZN11MM_Mutelist7ProcessEv proc	near	; DATA XREF: .rodata:`vtable for'MM_Mutelisto

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+2Ch]
		leave
		retn
_ZN11MM_Mutelist7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::GetType(void)const
_ZNK13MM_Checkpoint7GetTypeEv proc near	; DATA XREF: .rodata:`vtable for'MM_Checkpointo
		push	ebp
		mov	eax, 16h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13MM_Checkpoint7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::GetName(void)const
_ZNK13MM_Checkpoint7GetNameEv proc near	; DATA XREF: .rodata:`vtable for'MM_Checkpointo
		push	ebp
		mov	eax, offset aMm_checkpoint ; "mm_Checkpoint"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK13MM_Checkpoint7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::Process(void)
_ZN13MM_Checkpoint7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'MM_Checkpointo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+30h]
		leave
		retn
_ZN13MM_Checkpoint7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::GetType(void)const
_ZNK15MM_JoinResponse7GetTypeEv	proc near ; DATA XREF: .rodata:`vtable for'MM_JoinResponseo
		push	ebp
		mov	eax, 12h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15MM_JoinResponse7GetTypeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::GetName(void)const
_ZNK15MM_JoinResponse7GetNameEv	proc near ; DATA XREF: .rodata:`vtable for'MM_JoinResponseo
		push	ebp
		mov	eax, offset aMm_joinrespons ; "mm_JoinResponse"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK15MM_JoinResponse7GetNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::Process(void)
_ZN15MM_JoinResponse7ProcessEv proc near ; DATA	XREF: .rodata:`vtable for'MM_JoinResponseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+20h]
		leave
		retn
_ZN15MM_JoinResponse7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::GetType(void)const
_ZNK10MM_Migrate7GetTypeEv proc	near	; DATA XREF: .rodata:`vtable for'MM_Migrateo
		push	ebp
		mov	eax, 14h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK10MM_Migrate7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::GetName(void)const
_ZNK10MM_Migrate7GetNameEv proc	near	; DATA XREF: .rodata:`vtable for'MM_Migrateo
		push	ebp
		mov	eax, offset aMm_migrate	; "mm_Migrate"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK10MM_Migrate7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::Process(void)
_ZN10MM_Migrate7ProcessEv proc near	; DATA XREF: .rodata:`vtable for'MM_Migrateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+28h]
		leave
		retn
_ZN10MM_Migrate7ProcessEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::GetType(void)const
_ZNK16SVC_GetCvarValue7GetTypeEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo
		push	ebp
		mov	eax, 1Fh
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16SVC_GetCvarValue7GetTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::GetName(void)const
_ZNK16SVC_GetCvarValue7GetNameEv proc near
					; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo
		push	ebp
		mov	eax, offset aSvc_getcvarv_0 ; "svc_GetCvarValue"
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16SVC_GetCvarValue7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::Process(void)
_ZN16SVC_GetCvarValue7ProcessEv	proc near ; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+74h]
		leave
		retn
_ZN16SVC_GetCvarValue7ProcessEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::~SVC_GetCvarValue()
_ZN16SVC_GetCvarValueD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN16SVC_GetCvarValueD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::~MM_Migrate()
_ZN10MM_MigrateD2Ev proc near		; DATA XREF: .rodata:`vtable for'MM_Migrateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN10MM_MigrateD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::~MM_Checkpoint()
_ZN13MM_CheckpointD2Ev proc near	; DATA XREF: .rodata:`vtable for'MM_Checkpointo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13MM_CheckpointD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::~MM_RegisterResponse()
_ZN19MM_RegisterResponseD2Ev proc near	; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN19MM_RegisterResponseD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::~MM_ClientInfo()
_ZN13MM_ClientInfoD2Ev proc near	; DATA XREF: .rodata:`vtable for'MM_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13MM_ClientInfoD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::~MM_Heartbeat()
_ZN12MM_HeartbeatD2Ev proc near		; DATA XREF: .rodata:`vtable for'MM_Heartbeato

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN12MM_HeartbeatD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::~SVC_GameEventList()
_ZN17SVC_GameEventListD2Ev proc	near	; DATA XREF: .rodata:`vtable for'SVC_GameEventListo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN17SVC_GameEventListD2Ev endp

; ---------------------------------------------------------------------------
		db 90h
byte_7FFFF	db 90h			; DATA XREF: SVC_GameEventList::WriteToBuffer(bf_write &)+17Ao
					; SVC_PacketEntities::WriteToBuffer(bf_write &)+226o ...

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::~SVC_PacketEntities()
_ZN18SVC_PacketEntitiesD2Ev proc near	; DATA XREF: FormatZipMessageU(uint,char *,uint):loc_AC4D8o
					; GetZipItemA(HZIP__ *,int,ZIPENTRY *)+12o ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN18SVC_PacketEntitiesD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::~SVC_EntityMessage()
_ZN17SVC_EntityMessageD2Ev proc	near	; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN17SVC_EntityMessageD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::~SVC_SendTable()
_ZN13SVC_SendTableD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_SendTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13SVC_SendTableD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::~SVC_GameEvent()
_ZN13SVC_GameEventD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_GameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13SVC_GameEventD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::~SVC_TempEntities()
_ZN16SVC_TempEntitiesD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN16SVC_TempEntitiesD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::~SVC_Prefetch()
_ZN12SVC_PrefetchD2Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_Prefetcho

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN12SVC_PrefetchD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::~SVC_Sounds()
_ZN10SVC_SoundsD2Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_Soundso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN10SVC_SoundsD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::~SVC_CreateStringTable()
_ZN21SVC_CreateStringTableD2Ev proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN21SVC_CreateStringTableD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::~SVC_UpdateStringTable()
_ZN21SVC_UpdateStringTableD2Ev proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN21SVC_UpdateStringTableD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::~SVC_SetPause()
_ZN12SVC_SetPauseD2Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_SetPauseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN12SVC_SetPauseD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::~SVC_UserMessage()
_ZN15SVC_UserMessageD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_UserMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN15SVC_UserMessageD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::~NET_Tick()
_ZN8NET_TickD2Ev proc near		; DATA XREF: .rodata:`vtable for'NET_Ticko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN8NET_TickD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::~SVC_VoiceData()
_ZN13SVC_VoiceDataD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13SVC_VoiceDataD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::~SVC_VoiceInit()
_ZN13SVC_VoiceInitD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceInito

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13SVC_VoiceInitD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::~SVC_CrosshairAngle()
_ZN18SVC_CrosshairAngleD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN18SVC_CrosshairAngleD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::~SVC_FixAngle()
_ZN12SVC_FixAngleD2Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_FixAngleo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN12SVC_FixAngleD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::~SVC_SetView()
_ZN11SVC_SetViewD2Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_SetViewo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN11SVC_SetViewD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::~SVC_BSPDecal()
_ZN12SVC_BSPDecalD2Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN12SVC_BSPDecalD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::~NET_SignonState()
_ZN15NET_SignonStateD2Ev proc near	; DATA XREF: .rodata:`vtable for'NET_SignonStateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN15NET_SignonStateD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::~SVC_ServerInfo()
_ZN14SVC_ServerInfoD2Ev	proc near	; DATA XREF: .rodata:`vtable for'SVC_ServerInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN14SVC_ServerInfoD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::~NET_StringCmd()
_ZN13NET_StringCmdD2Ev proc near	; DATA XREF: .rodata:`vtable for'NET_StringCmdo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13NET_StringCmdD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::~SVC_Print()
_ZN9SVC_PrintD2Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_Printo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN9SVC_PrintD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::~CLC_SaveReplay()
_ZN14CLC_SaveReplayD2Ev	proc near	; DATA XREF: .rodata:`vtable for'CLC_SaveReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN14CLC_SaveReplayD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::~CLC_FileMD5Check()
_ZN16CLC_FileMD5CheckD2Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN16CLC_FileMD5CheckD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::~CLC_FileCRCCheck()
_ZN16CLC_FileCRCCheckD2Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN16CLC_FileCRCCheckD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::~CLC_RespondCvarValue()
_ZN20CLC_RespondCvarValueD2Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN20CLC_RespondCvarValueD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::~CLC_ListenEvents()
_ZN16CLC_ListenEventsD2Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_ListenEventso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN16CLC_ListenEventsD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::~CLC_BaselineAck()
_ZN15CLC_BaselineAckD2Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_BaselineAcko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN15CLC_BaselineAckD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::~CLC_ClientInfo()
_ZN14CLC_ClientInfoD2Ev	proc near	; DATA XREF: .rodata:`vtable for'CLC_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN14CLC_ClientInfoD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::~CLC_Move()
_ZN8CLC_MoveD2Ev proc near		; DATA XREF: .rodata:`vtable for'CLC_Moveo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN8CLC_MoveD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::~CLC_VoiceData()
_ZN13CLC_VoiceDataD2Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		retn
_ZN13CLC_VoiceDataD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_VoiceData::~CLC_VoiceData()
_ZN13CLC_VoiceDataD0Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_VoiceDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13CLC_VoiceDataD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_Move::~CLC_Move()
_ZN8CLC_MoveD0Ev proc near		; DATA XREF: .rodata:`vtable for'CLC_Moveo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN8CLC_MoveD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ClientInfo::~CLC_ClientInfo()
_ZN14CLC_ClientInfoD0Ev	proc near	; DATA XREF: .rodata:`vtable for'CLC_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN14CLC_ClientInfoD0Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_BaselineAck::~CLC_BaselineAck()
_ZN15CLC_BaselineAckD0Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_BaselineAcko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN15CLC_BaselineAckD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_ListenEvents::~CLC_ListenEvents()
_ZN16CLC_ListenEventsD0Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_ListenEventso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16CLC_ListenEventsD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_RespondCvarValue::~CLC_RespondCvarValue()
_ZN20CLC_RespondCvarValueD0Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_RespondCvarValueo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN20CLC_RespondCvarValueD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileCRCCheck::~CLC_FileCRCCheck()
_ZN16CLC_FileCRCCheckD0Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_FileCRCChecko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16CLC_FileCRCCheckD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_FileMD5Check::~CLC_FileMD5Check()
_ZN16CLC_FileMD5CheckD0Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_FileMD5Checko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16CLC_FileMD5CheckD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_SaveReplay::~CLC_SaveReplay()
_ZN14CLC_SaveReplayD0Ev	proc near	; DATA XREF: .rodata:`vtable for'CLC_SaveReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN14CLC_SaveReplayD0Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Print::~SVC_Print()
_ZN9SVC_PrintD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_Printo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN9SVC_PrintD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_StringCmd::~NET_StringCmd()
_ZN13NET_StringCmdD0Ev proc near	; DATA XREF: .rodata:`vtable for'NET_StringCmdo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13NET_StringCmdD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ServerInfo::~SVC_ServerInfo()
_ZN14SVC_ServerInfoD0Ev	proc near	; DATA XREF: .rodata:`vtable for'SVC_ServerInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN14SVC_ServerInfoD0Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SignonState::~NET_SignonState()
_ZN15NET_SignonStateD0Ev proc near	; DATA XREF: .rodata:`vtable for'NET_SignonStateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN15NET_SignonStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_BSPDecal::~SVC_BSPDecal()
_ZN12SVC_BSPDecalD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_BSPDecalo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12SVC_BSPDecalD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetView::~SVC_SetView()
_ZN11SVC_SetViewD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_SetViewo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN11SVC_SetViewD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_FixAngle::~SVC_FixAngle()
_ZN12SVC_FixAngleD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_FixAngleo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12SVC_FixAngleD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CrosshairAngle::~SVC_CrosshairAngle()
_ZN18SVC_CrosshairAngleD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_CrosshairAngleo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN18SVC_CrosshairAngleD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceInit::~SVC_VoiceInit()
_ZN13SVC_VoiceInitD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceInito

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13SVC_VoiceInitD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_VoiceData::~SVC_VoiceData()
_ZN13SVC_VoiceDataD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_VoiceDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13SVC_VoiceDataD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_Tick::~NET_Tick()
_ZN8NET_TickD0Ev proc near		; DATA XREF: .rodata:`vtable for'NET_Ticko

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN8NET_TickD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UserMessage::~SVC_UserMessage()
_ZN15SVC_UserMessageD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_UserMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN15SVC_UserMessageD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SetPause::~SVC_SetPause()
_ZN12SVC_SetPauseD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_SetPauseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12SVC_SetPauseD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_UpdateStringTable::~SVC_UpdateStringTable()
_ZN21SVC_UpdateStringTableD0Ev proc near
					; DATA XREF: .rodata:`vtable for'SVC_UpdateStringTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN21SVC_UpdateStringTableD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CreateStringTable::~SVC_CreateStringTable()
_ZN21SVC_CreateStringTableD0Ev proc near
					; DATA XREF: .rodata:`vtable for'SVC_CreateStringTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN21SVC_CreateStringTableD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Sounds::~SVC_Sounds()
_ZN10SVC_SoundsD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_Soundso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN10SVC_SoundsD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_Prefetch::~SVC_Prefetch()
_ZN12SVC_PrefetchD0Ev proc near		; DATA XREF: .rodata:`vtable for'SVC_Prefetcho

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12SVC_PrefetchD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_TempEntities::~SVC_TempEntities()
_ZN16SVC_TempEntitiesD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_TempEntitieso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16SVC_TempEntitiesD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEvent::~SVC_GameEvent()
_ZN13SVC_GameEventD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_GameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13SVC_GameEventD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_SendTable::~SVC_SendTable()
_ZN13SVC_SendTableD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_SendTableo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13SVC_SendTableD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_EntityMessage::~SVC_EntityMessage()
_ZN17SVC_EntityMessageD0Ev proc	near	; DATA XREF: .rodata:`vtable for'SVC_EntityMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN17SVC_EntityMessageD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_PacketEntities::~SVC_PacketEntities()
_ZN18SVC_PacketEntitiesD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_PacketEntitieso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN18SVC_PacketEntitiesD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GameEventList::~SVC_GameEventList()
_ZN17SVC_GameEventListD0Ev proc	near	; DATA XREF: .rodata:`vtable for'SVC_GameEventListo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN17SVC_GameEventListD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Heartbeat::~MM_Heartbeat()
_ZN12MM_HeartbeatD0Ev proc near		; DATA XREF: .rodata:`vtable for'MM_Heartbeato

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12MM_HeartbeatD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_ClientInfo::~MM_ClientInfo()
_ZN13MM_ClientInfoD0Ev proc near	; DATA XREF: .rodata:`vtable for'MM_ClientInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13MM_ClientInfoD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_RegisterResponse::~MM_RegisterResponse()
_ZN19MM_RegisterResponseD0Ev proc near	; DATA XREF: .rodata:`vtable for'MM_RegisterResponseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN19MM_RegisterResponseD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Checkpoint::~MM_Checkpoint()
_ZN13MM_CheckpointD0Ev proc near	; DATA XREF: .rodata:`vtable for'MM_Checkpointo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13MM_CheckpointD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Migrate::~MM_Migrate()
_ZN10MM_MigrateD0Ev proc near		; DATA XREF: .rodata:`vtable for'MM_Migrateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN10MM_MigrateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_GetCvarValue::~SVC_GetCvarValue()
_ZN16SVC_GetCvarValueD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_GetCvarValueo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16SVC_GetCvarValueD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNetMessage::~CNetMessage()
_ZN11CNetMessageD0Ev proc near		; DATA XREF: .rodata:`vtable for'CNetMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN11CNetMessageD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; INetMessage::~INetMessage()
_ZN11INetMessageD0Ev proc near		; DATA XREF: .rodata:`vtable for'INetMessageo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN11INetMessageD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CLC_CmdKeyValues::~CLC_CmdKeyValues()
_ZN16CLC_CmdKeyValuesD2Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16CLC_CmdKeyValues+8)
		pop	ebp
		jmp	_ZN17Base_CmdKeyValuesD2Ev ; Base_CmdKeyValues::~Base_CmdKeyValues()
_ZN16CLC_CmdKeyValuesD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CLC_CmdKeyValues___CLC_CmdKeyValues(void *)
_ZN16CLC_CmdKeyValuesD0Ev proc near	; DATA XREF: .rodata:`vtable for'CLC_CmdKeyValueso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV16CLC_CmdKeyValues+8)
		mov	[esp], ebx	; void *
		call	_ZN17Base_CmdKeyValuesD2Ev ; Base_CmdKeyValues::~Base_CmdKeyValues()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16CLC_CmdKeyValuesD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_CmdKeyValues::~SVC_CmdKeyValues()
_ZN16SVC_CmdKeyValuesD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16SVC_CmdKeyValues+8)
		pop	ebp
		jmp	_ZN17Base_CmdKeyValuesD2Ev ; Base_CmdKeyValues::~Base_CmdKeyValues()
_ZN16SVC_CmdKeyValuesD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl SVC_CmdKeyValues___SVC_CmdKeyValues(void *)
_ZN16SVC_CmdKeyValuesD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_CmdKeyValueso

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV16SVC_CmdKeyValues+8)
		mov	[esp], ebx	; void *
		call	_ZN17Base_CmdKeyValuesD2Ev ; Base_CmdKeyValues::~Base_CmdKeyValues()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16SVC_CmdKeyValuesD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlBuffer::~CUtlBuffer()
_ZN10CUtlBufferD2Ev proc near		; CODE XREF: .text:0007DD92p
					; .text:0007DF36p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_807BC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_807B5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_807B5:				; CODE XREF: CUtlBuffer::~CUtlBuffer()+15j
		mov	dword ptr [ebx+4], 0

loc_807BC:				; CODE XREF: CUtlBuffer::~CUtlBuffer()+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlBufferD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<NET_SetConVar::cvar_s, int>::Purge(void)
_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv proc	near
					; CODE XREF: NET_SetConVar::~NET_SetConVar()+22p
					; NET_SetConVar::~NET_SetConVar()+30p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_807FC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_807F5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_807F5:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_807FC:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::~NET_SetConVar()
_ZN13NET_SetConVarD2Ev proc near	; DATA XREF: .rodata:`vtable for'NET_SetConVaro

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+10h]
		mov	dword ptr [ebx], (offset _ZTV13NET_SetConVar+8)
		mov	dword ptr [ebx+1Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	eax, [ebx+10h]
		mov	[ebx+20h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13NET_SetConVarD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NET_SetConVar::~NET_SetConVar()
_ZN13NET_SetConVarD0Ev proc near	; DATA XREF: .rodata:`vtable for'NET_SetConVaro

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+10h]
		mov	dword ptr [ebx], (offset _ZTV13NET_SetConVar+8)
		mov	dword ptr [ebx+1Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	eax, [ebx+10h]
		mov	[ebx+20h], eax
		mov	[esp], esi	; void *
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13NET_SetConVarD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<SVC_ClassInfo::class_s, int>::Purge(void)
_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE5PurgeEv proc near
					; CODE XREF: SVC_ClassInfo::~SVC_ClassInfo()+22p
					; SVC_ClassInfo::~SVC_ClassInfo()+30p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_808DC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_808D5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_808D5:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_808DC:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::~SVC_ClassInfo()
_ZN13SVC_ClassInfoD2Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_ClassInfoo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+14h]
		mov	dword ptr [ebx], (offset _ZTV13SVC_ClassInfo+8)
		mov	dword ptr [ebx+20h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE5PurgeEv ; CUtlMemory<SVC_ClassInfo::class_s,int>::Purge(void)
		mov	eax, [ebx+14h]
		mov	[ebx+24h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE5PurgeEv ; CUtlMemory<SVC_ClassInfo::class_s,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13SVC_ClassInfoD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SVC_ClassInfo::~SVC_ClassInfo()
_ZN13SVC_ClassInfoD0Ev proc near	; DATA XREF: .rodata:`vtable for'SVC_ClassInfoo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+14h]
		mov	dword ptr [ebx], (offset _ZTV13SVC_ClassInfo+8)
		mov	dword ptr [ebx+20h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE5PurgeEv ; CUtlMemory<SVC_ClassInfo::class_s,int>::Purge(void)
		mov	eax, [ebx+14h]
		mov	[ebx+24h], eax
		mov	[esp], esi	; void *
		call	_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE5PurgeEv ; CUtlMemory<SVC_ClassInfo::class_s,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13SVC_ClassInfoD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<_XUSER_PROPERTY, int>::Purge(void)
_ZN10CUtlMemoryI15_XUSER_PROPERTYiE5PurgeEv proc near
					; CODE XREF: MM_JoinResponse::~MM_JoinResponse()+42p
					; MM_JoinResponse::~MM_JoinResponse()+50p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_809BC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_809B5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_809B5:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_809BC:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15_XUSER_PROPERTYiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<_XUSER_CONTEXT, int>::Purge(void)
_ZN10CUtlMemoryI14_XUSER_CONTEXTiE5PurgeEv proc	near
					; CODE XREF: MM_JoinResponse::~MM_JoinResponse()+22p
					; MM_JoinResponse::~MM_JoinResponse()+33p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_809FC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_809F5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_809F5:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_809FC:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI14_XUSER_CONTEXTiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::~MM_JoinResponse()
_ZN15MM_JoinResponseD2Ev proc near	; DATA XREF: .rodata:`vtable for'MM_JoinResponseo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+50h]
		mov	dword ptr [ebx], (offset _ZTV15MM_JoinResponse+8)
		mov	dword ptr [ebx+5Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI14_XUSER_CONTEXTiE5PurgeEv ; CUtlMemory<_XUSER_CONTEXT,int>::Purge(void)
		mov	eax, [ebx+50h]
		mov	[ebx+60h], eax
		mov	[esp], esi
		lea	esi, [ebx+3Ch]
		call	_ZN10CUtlMemoryI14_XUSER_CONTEXTiE5PurgeEv ; CUtlMemory<_XUSER_CONTEXT,int>::Purge(void)
		mov	dword ptr [ebx+48h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI15_XUSER_PROPERTYiE5PurgeEv ; CUtlMemory<_XUSER_PROPERTY,int>::Purge(void)
		mov	eax, [ebx+3Ch]
		mov	[ebx+4Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI15_XUSER_PROPERTYiE5PurgeEv ; CUtlMemory<_XUSER_PROPERTY,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN15MM_JoinResponseD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_JoinResponse::~MM_JoinResponse()
_ZN15MM_JoinResponseD0Ev proc near	; DATA XREF: .rodata:`vtable for'MM_JoinResponseo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		lea	esi, [ebx+50h]
		mov	dword ptr [ebx], (offset _ZTV15MM_JoinResponse+8)
		mov	dword ptr [ebx+5Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI14_XUSER_CONTEXTiE5PurgeEv ; CUtlMemory<_XUSER_CONTEXT,int>::Purge(void)
		mov	eax, [ebx+50h]
		mov	[ebx+60h], eax
		mov	[esp], esi
		lea	esi, [ebx+3Ch]
		call	_ZN10CUtlMemoryI14_XUSER_CONTEXTiE5PurgeEv ; CUtlMemory<_XUSER_CONTEXT,int>::Purge(void)
		mov	dword ptr [ebx+48h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI15_XUSER_PROPERTYiE5PurgeEv ; CUtlMemory<_XUSER_PROPERTY,int>::Purge(void)
		mov	eax, [ebx+3Ch]
		mov	[ebx+4Ch], eax
		mov	[esp], esi	; void *
		call	_ZN10CUtlMemoryI15_XUSER_PROPERTYiE5PurgeEv ; CUtlMemory<_XUSER_PROPERTY,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	[ebp+arg_0], ebx
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN15MM_JoinResponseD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<NET_SetConVar::cvar_s, int>::Grow(int)
_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE4GrowEi proc near
					; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+FCp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_80B45
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_80B50
		test	eax, eax
		mov	edx, 1
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_80B26
		lea	esi, [esi+0]

loc_80B20:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_80B20

loc_80B26:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+2Aj
					; CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jz	short loc_80B80

loc_80B2F:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+8Ej
		mov	ecx, eax
		mov	[esp], edx	; ptr
		shl	ecx, 9
		lea	eax, [ecx+eax*8]
		mov	[esp+4], eax	; size
		call	realloc
		mov	[ebx], eax

loc_80B45:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_80B50:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_80B26
		lea	esi, [esi+0]

loc_80B68:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_80B68
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jnz	short loc_80B2F

loc_80B80:				; CODE XREF: CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)+3Dj
		mov	edx, eax
		shl	edx, 9
		lea	eax, [edx+eax*8]
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<NET_SetConVar::cvar_s, CUtlMemory<NET_SetConVar::cvar_s, int>>::InsertBefore(int, NET_SetConVar::cvar_s const&)
_ZN10CUtlVectorIN13NET_SetConVar6cvar_sE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: NET_SetConVar::ReadFromBuffer(bf_read &)+1C8p
					; NET_SetConVar::NET_SetConVar(char  const*,char  const*)+8Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi+0Ch]
		mov	edx, [esi+4]
		cmp	eax, edx
		jge	loc_80C90

loc_80BBD:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+104j
		lea	edx, [eax+1]
		mov	eax, [esi]
		mov	[esi+0Ch], edx
		sub	edx, ebx
		sub	edx, 1
		test	edx, edx
		mov	[esi+10h], eax
		jle	loc_80C80
		mov	ecx, ebx
		shl	ecx, 9
		lea	edi, [ecx+ebx*8]
		mov	ecx, edx
		shl	ecx, 9
		lea	edx, [ecx+edx*8]
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		mov	[esp+4], edx	; src
		lea	edx, [ebx+1]
		mov	ecx, edx
		shl	ecx, 9
		lea	edx, [ecx+edx*8]
		add	eax, edx
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [esi]

loc_80C07:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+E8j
		add	edi, eax
		jz	short loc_80C3C
		test	edi, 1
		mov	esi, [ebp+arg_8]
		mov	eax, 208h
		jnz	loc_80CC8

loc_80C1F:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+138j
		test	edi, 2
		jnz	loc_80CB0

loc_80C2B:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+11Fj
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jnz	short loc_80C68
		test	al, 1
		jnz	short loc_80C50

loc_80C3C:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+69j
					; CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+D5j
		add	esp, 1Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_80C50:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+9Aj
					; CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+D7j
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al
		add	esp, 1Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_80C68:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+96j
		movzx	edx, word ptr [esi]
		test	al, 1
		mov	[edi], dx
		mov	edx, 2
		jz	short loc_80C3C
		jmp	short loc_80C50
; ---------------------------------------------------------------------------
		align 10h

loc_80C80:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+2Fj
		mov	edx, ebx
		shl	edx, 9
		lea	edi, [edx+ebx*8]
		jmp	loc_80C07
; ---------------------------------------------------------------------------
		align 10h

loc_80C90:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+17j
		add	eax, 1
		mov	[esp], esi
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE4GrowEi ; CUtlMemory<NET_SetConVar::cvar_s,int>::Grow(int)
		mov	eax, [esi+0Ch]
		jmp	loc_80BBD
; ---------------------------------------------------------------------------
		align 10h

loc_80CB0:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+85j
		movzx	edx, word ptr [esi]
		sub	eax, 2
		add	esi, 2
		mov	[edi], dx
		add	edi, 2
		jmp	loc_80C2B
; ---------------------------------------------------------------------------
		align 8

loc_80CC8:				; CODE XREF: CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)+79j
		movzx	eax, byte ptr [esi]
		add	esi, 1
		mov	[edi], al
		add	edi, 1
		mov	eax, 207h
		jmp	loc_80C1F
_ZN10CUtlVectorIN13NET_SetConVar6cvar_sE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<SVC_ClassInfo::class_s, int>::Grow(int)
_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE4GrowEi proc	near
					; CODE XREF: CUtlVector<SVC_ClassInfo::class_s,CUtlMemory<SVC_ClassInfo::class_s,int>>::InsertBefore(int,SVC_ClassInfo::class_s	const&)+A4p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_80D35
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_80D40
		test	eax, eax
		mov	edx, 1
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_80D16
		lea	esi, [esi+0]

loc_80D10:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_80D10

loc_80D16:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+2Aj
					; CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jz	short loc_80D70

loc_80D1F:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+8Ej
		mov	ecx, eax
		mov	[esp], edx	; ptr
		shl	ecx, 9
		lea	eax, [ecx+eax*4]
		mov	[esp+4], eax	; size
		call	realloc
		mov	[ebx], eax

loc_80D35:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_80D40:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_80D16
		lea	esi, [esi+0]

loc_80D58:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_80D58
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jnz	short loc_80D1F

loc_80D70:				; CODE XREF: CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)+3Dj
		mov	edx, eax
		shl	edx, 9
		lea	eax, [edx+eax*4]
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<SVC_ClassInfo::class_s, CUtlMemory<SVC_ClassInfo::class_s,	int>>::InsertBefore(int, SVC_ClassInfo::class_s	const&)
_ZN10CUtlVectorIN13SVC_ClassInfo7class_sE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: SVC_ClassInfo::ReadFromBuffer(bf_read &)+319p
					; SV_WriteClassInfos(ServerClass *,bf_write &)+ABp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [esi+0Ch]
		mov	eax, [esi+4]
		cmp	edx, eax
		jge	short loc_80E28

loc_80DAF:				; CODE XREF: CUtlVector<SVC_ClassInfo::class_s,CUtlMemory<SVC_ClassInfo::class_s,int>>::InsertBefore(int,SVC_ClassInfo::class_s	const&)+ACj
		add	edx, 1
		mov	eax, [esi]
		mov	[esi+0Ch], edx
		sub	edx, ebx
		sub	edx, 1
		test	edx, edx
		mov	[esi+10h], eax
		jle	short loc_80E18
		mov	ecx, ebx
		shl	ecx, 9
		lea	edi, [ecx+ebx*4]
		mov	ecx, edx
		shl	ecx, 9
		lea	edx, [ecx+edx*4]
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		mov	[esp+4], edx	; src
		lea	edx, [ebx+1]
		mov	ecx, edx
		shl	ecx, 9
		lea	edx, [ecx+edx*4]
		add	eax, edx
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [esi]

loc_80DF5:				; CODE XREF: CUtlVector<SVC_ClassInfo::class_s,CUtlMemory<SVC_ClassInfo::class_s,int>>::InsertBefore(int,SVC_ClassInfo::class_s	const&)+90j
		add	eax, edi
		jz	short loc_80E05
		mov	esi, [ebp+arg_8]
		mov	ecx, 81h
		mov	edi, eax
		rep movsd

loc_80E05:				; CODE XREF: CUtlVector<SVC_ClassInfo::class_s,CUtlMemory<SVC_ClassInfo::class_s,int>>::InsertBefore(int,SVC_ClassInfo::class_s	const&)+67j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_80E18:				; CODE XREF: CUtlVector<SVC_ClassInfo::class_s,CUtlMemory<SVC_ClassInfo::class_s,int>>::InsertBefore(int,SVC_ClassInfo::class_s	const&)+31j
		mov	edx, ebx
		shl	edx, 9
		lea	edi, [edx+ebx*4]
		jmp	short loc_80DF5
; ---------------------------------------------------------------------------
		align 8

loc_80E28:				; CODE XREF: CUtlVector<SVC_ClassInfo::class_s,CUtlMemory<SVC_ClassInfo::class_s,int>>::InsertBefore(int,SVC_ClassInfo::class_s	const&)+1Dj
		add	edx, 1
		mov	[esp], esi
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIN13SVC_ClassInfo7class_sEiE4GrowEi ; CUtlMemory<SVC_ClassInfo::class_s,int>::Grow(int)
		mov	edx, [esi+0Ch]
		jmp	loc_80DAF
_ZN10CUtlVectorIN13SVC_ClassInfo7class_sE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<unsigned long long, int>::Grow(int)
_ZN10CUtlMemoryIyiE4GrowEi proc	near	; CODE XREF: CUtlVector<ulong long,CUtlMemory<ulong long,int>>::InsertBefore(int,ulong long  const&)+8Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_80EA0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_80EB0
		test	eax, eax
		mov	edx, 4
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_80E86
		lea	esi, [esi+0]

loc_80E80:				; CODE XREF: CUtlMemory<ulong long,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_80E80

loc_80E86:				; CODE XREF: CUtlMemory<ulong long,int>::Grow(int)+2Aj
					; CUtlMemory<ulong long,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jz	short loc_80EE3

loc_80E92:				; CODE XREF: CUtlMemory<ulong long,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_80EA0:				; CODE XREF: CUtlMemory<ulong long,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_80EB0:				; CODE XREF: CUtlMemory<ulong long,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_80E86
		lea	esi, [esi+0]

loc_80EC8:				; CODE XREF: CUtlMemory<ulong long,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_80EC8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jnz	short loc_80E92

loc_80EE3:				; CODE XREF: CUtlMemory<ulong long,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIyiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned long long, CUtlMemory<unsigned long long,	int>>::InsertBefore(int, unsigned long long  const&)
_ZN10CUtlVectorIy10CUtlMemoryIyiEE12InsertBeforeEiRKy proc near
					; CODE XREF: MM_Mutelist::ReadFromBuffer(bf_read &)+152p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_80F80

loc_80F1F:				; CODE XREF: CUtlVector<ulong long,CUtlMemory<ulong long,int>>::InsertBefore(int,ulong long  const&)+94j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*8]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_80F56
		shl	edx, 3
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*8+8]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_80F56:				; CODE XREF: CUtlVector<ulong long,CUtlMemory<ulong long,int>>::InsertBefore(int,ulong long  const&)+38j
		add	edi, eax
		jz	short loc_80F67
		mov	eax, [ebp+arg_8]
		mov	edx, [eax+4]
		mov	eax, [eax]
		mov	[edi+4], edx
		mov	[edi], eax

loc_80F67:				; CODE XREF: CUtlVector<ulong long,CUtlMemory<ulong long,int>>::InsertBefore(int,ulong long  const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_80F80:				; CODE XREF: CUtlVector<ulong long,CUtlMemory<ulong long,int>>::InsertBefore(int,ulong long  const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIyiE4GrowEi ; CUtlMemory<ulong long,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_80F1F
_ZN10CUtlVectorIy10CUtlMemoryIyiEE12InsertBeforeEiRKy endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<_XUSER_PROPERTY, int>::Grow(int)
_ZN10CUtlMemoryI15_XUSER_PROPERTYiE4GrowEi proc	near
					; CODE XREF: CUtlVector<_XUSER_PROPERTY,CUtlMemory<_XUSER_PROPERTY,int>>::InsertBefore(int,_XUSER_PROPERTY const&)+9Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_80FF0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_81000
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_80FD6
		lea	esi, [esi+0]

loc_80FD0:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_80FD0

loc_80FD6:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+2Aj
					; CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jz	short loc_81033

loc_80FE2:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_80FF0:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_81000:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_80FD6
		lea	esi, [esi+0]

loc_81018:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_81018
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jnz	short loc_80FE2

loc_81033:				; CODE XREF: CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15_XUSER_PROPERTYiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<_XUSER_PROPERTY, CUtlMemory<_XUSER_PROPERTY, int>>::InsertBefore(int, _XUSER_PROPERTY const&)
_ZN10CUtlVectorI15_XUSER_PROPERTY10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+26Ep

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_810E0

loc_81072:				; CODE XREF: CUtlVector<_XUSER_PROPERTY,CUtlMemory<_XUSER_PROPERTY,int>>::InsertBefore(int,_XUSER_PROPERTY const&)+A4j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		sub	edx, edi
		lea	ecx, [edx-1]
		mov	edx, edi
		shl	edx, 4
		test	ecx, ecx
		mov	[ebx+10h], eax
		jle	short loc_810B1
		shl	ecx, 4
		mov	[ebp+var_1C], edx
		mov	[esp+8], ecx	; n
		lea	ecx, [eax+edx]
		mov	[esp+4], ecx	; src
		lea	ecx, [edi+1]
		shl	ecx, 4
		add	eax, ecx
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]
		mov	edx, [ebp+var_1C]

loc_810B1:				; CODE XREF: CUtlVector<_XUSER_PROPERTY,CUtlMemory<_XUSER_PROPERTY,int>>::InsertBefore(int,_XUSER_PROPERTY const&)+39j
		add	edx, eax
		jz	short loc_810CB
		mov	eax, [esi]
		mov	[edx], eax
		mov	eax, [esi+4]
		mov	[edx+4], eax
		mov	eax, [esi+8]
		mov	[edx+8], eax
		mov	eax, [esi+0Ch]
		mov	[edx+0Ch], eax

loc_810CB:				; CODE XREF: CUtlVector<_XUSER_PROPERTY,CUtlMemory<_XUSER_PROPERTY,int>>::InsertBefore(int,_XUSER_PROPERTY const&)+63j
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_810E0:				; CODE XREF: CUtlVector<_XUSER_PROPERTY,CUtlMemory<_XUSER_PROPERTY,int>>::InsertBefore(int,_XUSER_PROPERTY const&)+20j
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI15_XUSER_PROPERTYiE4GrowEi ; CUtlMemory<_XUSER_PROPERTY,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	loc_81072
_ZN10CUtlVectorI15_XUSER_PROPERTY10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<_XUSER_CONTEXT, int>::Grow(int)
_ZN10CUtlMemoryI14_XUSER_CONTEXTiE4GrowEi proc near
					; CODE XREF: CUtlVector<_XUSER_CONTEXT,CUtlMemory<_XUSER_CONTEXT,int>>::InsertBefore(int,_XUSER_CONTEXT	const&)+8Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_81150
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_81160
		test	eax, eax
		mov	edx, 4
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_81136
		lea	esi, [esi+0]

loc_81130:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_81130

loc_81136:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+2Aj
					; CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jz	short loc_81193

loc_81142:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_81150:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_81160:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_81136
		lea	esi, [esi+0]

loc_81178:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_81178
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jnz	short loc_81142

loc_81193:				; CODE XREF: CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI14_XUSER_CONTEXTiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<_XUSER_CONTEXT, CUtlMemory<_XUSER_CONTEXT,	int>>::InsertBefore(int, _XUSER_CONTEXT	const&)
_ZN10CUtlVectorI14_XUSER_CONTEXT10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: MM_JoinResponse::ReadFromBuffer(bf_read &)+2BEp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_81230

loc_811CF:				; CODE XREF: CUtlVector<_XUSER_CONTEXT,CUtlMemory<_XUSER_CONTEXT,int>>::InsertBefore(int,_XUSER_CONTEXT	const&)+94j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*8]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_81206
		shl	edx, 3
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*8+8]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_81206:				; CODE XREF: CUtlVector<_XUSER_CONTEXT,CUtlMemory<_XUSER_CONTEXT,int>>::InsertBefore(int,_XUSER_CONTEXT	const&)+38j
		add	edi, eax
		jz	short loc_81217
		mov	eax, [ebp+arg_8]
		mov	edx, [eax+4]
		mov	eax, [eax]
		mov	[edi+4], edx
		mov	[edi], eax

loc_81217:				; CODE XREF: CUtlVector<_XUSER_CONTEXT,CUtlMemory<_XUSER_CONTEXT,int>>::InsertBefore(int,_XUSER_CONTEXT	const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_81230:				; CODE XREF: CUtlVector<_XUSER_CONTEXT,CUtlMemory<_XUSER_CONTEXT,int>>::InsertBefore(int,_XUSER_CONTEXT	const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI14_XUSER_CONTEXTiE4GrowEi ; CUtlMemory<_XUSER_CONTEXT,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_811CF
_ZN10CUtlVectorI14_XUSER_CONTEXT10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<unsigned long long, int>::Purge(void)
_ZN10CUtlMemoryIyiE5PurgeEv proc near	; CODE XREF: MM_Mutelist::~MM_Mutelist()+35p
					; MM_Mutelist::~MM_Mutelist()+4Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_8127C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_81275
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_81275:				; CODE XREF: CUtlMemory<ulong long,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_8127C:				; CODE XREF: CUtlMemory<ulong long,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIyiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::~MM_Mutelist()
_ZN11MM_MutelistD2Ev proc near		; DATA XREF: .rodata:`vtable for'MM_Mutelisto

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	edi, eax
		mov	dword ptr [eax], (offset _ZTV11MM_Mutelist+8)
		add	eax, 3Ch
		add	edi, 28h
		mov	[ebp+var_1C], eax
		mov	ebx, eax
		mov	[ebp+var_20], edi
		lea	esi, [esi+0]

loc_812B8:				; CODE XREF: MM_Mutelist::~MM_Mutelist()+53j
		lea	esi, [ebx-14h]
		mov	dword ptr [ebx-8], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIyiE5PurgeEv ; CUtlMemory<ulong long,int>::Purge(void)
		mov	eax, [ebx-14h]
		mov	edx, [ebp+var_20]
		sub	ebx, [ebp+var_1C]
		mov	[edx+ebx+10h], eax
		mov	ebx, esi
		mov	[esp], esi
		call	_ZN10CUtlMemoryIyiE5PurgeEv ; CUtlMemory<ulong long,int>::Purge(void)
		cmp	edi, esi
		jnz	short loc_812B8
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11MM_MutelistD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MM_Mutelist::~MM_Mutelist()
_ZN11MM_MutelistD0Ev proc near		; DATA XREF: .rodata:`vtable for'MM_Mutelisto

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	edi, eax
		mov	[ebp+var_24], eax
		mov	dword ptr [eax], (offset _ZTV11MM_Mutelist+8)
		add	edi, 28h
		add	eax, 3Ch
		mov	[ebp+var_1C], eax
		mov	ebx, eax
		mov	[ebp+var_20], edi
		lea	esi, [esi+0]

loc_81328:				; CODE XREF: MM_Mutelist::~MM_Mutelist()+53j
		lea	esi, [ebx-14h]
		mov	dword ptr [ebx-8], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIyiE5PurgeEv ; CUtlMemory<ulong long,int>::Purge(void)
		mov	eax, [ebx-14h]
		mov	edx, [ebp+var_20]
		sub	ebx, [ebp+var_1C]
		mov	[edx+ebx+10h], eax
		mov	ebx, esi
		mov	[esp], esi	; void *
		call	_ZN10CUtlMemoryIyiE5PurgeEv ; CUtlMemory<ulong long,int>::Purge(void)
		cmp	edi, esi
		jnz	short loc_81328
		mov	eax, [ebp+var_24]
		mov	dword ptr [eax], (offset _ZTV11INetMessage+8)
		mov	[ebp+arg_0], eax
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN11MM_MutelistD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

srand		proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
srand		endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

rand		proc near		; CODE XREF: RandomVectorInUnitSphere(Vector *)+Cp
					; RandomVectorInUnitSphere(Vector *)+13p ...
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+4], 7FFFh
		mov	dword ptr [esp], 0
		call	RandomInt
		leave
		retn
rand		endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetAppFullName(ESourceApp)
_Z14GetAppFullName10ESourceApp proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, offset aSourceSdkBase ; "Source SDK Base"
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, edx
		shl	ecx, 4
		cmp	edx, ds:(_ZL14s_SteamAppInfo+0Ch)[ecx]
		jz	short loc_813C0
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_813C0:				; CODE XREF: GetAppFullName(ESourceApp)+16j
		mov	eax, ds:_ZL14s_SteamAppInfo[ecx] ; s_SteamAppInfo
		pop	ebp
		retn
_Z14GetAppFullName10ESourceApp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetAppModName(ESourceApp)
_Z13GetAppModName10ESourceApp proc near	; CODE XREF: _GLOBAL__sub_I_sv+7D5p
					; _GLOBAL__sub_I_sv+7F7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, offset aSourcetest	; "sourcetest"
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, edx
		shl	ecx, 4
		add	ecx, offset _ZL14s_SteamAppInfo	; s_SteamAppInfo
		cmp	edx, [ecx+0Ch]
		jz	short loc_813F0
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_813F0:				; CODE XREF: GetAppModName(ESourceApp)+19j
		mov	eax, [ecx+4]
		pop	ebp
		retn
_Z13GetAppModName10ESourceApp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetAppSteamAppId(ESourceApp)
_Z16GetAppSteamAppId10ESourceApp proc near ; CODE XREF:	_GLOBAL__sub_I_sv+7C4p
					; _GLOBAL__sub_I_sv+7E6p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 0D7h
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, edx
		shl	ecx, 4
		add	ecx, offset _ZL14s_SteamAppInfo	; s_SteamAppInfo
		cmp	edx, [ecx+0Ch]
		jz	short loc_81420
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_81420:				; CODE XREF: GetAppSteamAppId(ESourceApp)+19j
		mov	eax, [ecx+8]
		pop	ebp
		retn
_Z16GetAppSteamAppId10ESourceApp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSteamID__SetFromString(int, char	*s, int)
_ZN8CSteamID13SetFromStringEPKc9EUniverse proc near
					; CODE XREF: CSteamID::CSteamID(char  const*,EUniverse)+4j

var_29		= byte ptr -29h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	[ebp+var_24], 0FFFFFFFFh
		mov	ebx, [ebp+s]
		mov	[ebp+var_20], 1
		mov	edi, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		movzx	eax, byte ptr [ebx]
		mov	[ebp+var_1C], edi
		cmp	al, 41h
		jz	loc_814E0
		cmp	al, 47h
		jz	loc_81588
		cmp	al, 43h
		mov	[ebp+var_29], 1
		jz	loc_815A0

loc_81472:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+16Bj
					; CSteamID::SetFromString(char	const*,EUniverse)+183j	...
		mov	dword ptr [esp+4], 3Ah ; c
		mov	[esp], ebx	; s
		call	strchr
		test	eax, eax
		jz	loc_81620
		xor	eax, eax
		cmp	byte ptr [ebx],	5Bh
		mov	dword ptr [esp+4], offset format ; "%d:%d"
		setz	al
		add	ebx, eax
		lea	eax, [ebp+var_24]
		mov	[esp], ebx	; s
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+8], eax
		call	sscanf
		mov	eax, [ebp+var_1C]
		test	eax, eax
		cmovz	eax, edi

loc_814BA:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+20Aj
		mov	edx, [ebp+var_24]
		mov	byte ptr [esi+4], 1
		mov	byte ptr [esi+5], 0
		mov	[esi+7], al
		movzx	eax, [ebp+var_29]
		mov	[esi], edx
		shl	eax, 4
		mov	[esi+6], al
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_814E0:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+28j
		movzx	eax, byte ptr [ebx+1]
		cmp	al, 3Ah
		jz	loc_815C0
		cmp	al, 2Dh
		jz	loc_815C0
		add	ebx, 1

loc_814F7:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+193j
		mov	dword ptr [esp+4], 28h ; c
		mov	[esp], ebx	; s
		call	strchr
		test	eax, eax
		jz	short loc_81522
		lea	edx, [ebp+var_20]
		mov	dword ptr [esp+4], offset aD ; "(%d)"
		mov	[esp+8], edx
		mov	[esp], eax	; s
		call	sscanf

loc_81522:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+D9j
		mov	dword ptr [esp+4], 3Ah ; c
		mov	[esp], ebx	; s
		call	strchr
		test	eax, eax
		lea	eax, [ebp+var_24]
		jz	loc_81640
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], offset format ; "%d:%d"
		mov	[esp], ebx	; s
		call	sscanf

loc_81558:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+224j
		mov	eax, [ebp+var_24]
		test	eax, eax
		jnz	loc_815F0
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esi], 0
		mov	byte ptr [esi+4], 0
		mov	byte ptr [esi+5], 0
		mov	byte ptr [esi+6], 40h
		mov	[esi+7], al
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_81588:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+30j
		movzx	eax, byte ptr [ebx+1]
		cmp	al, 3Ah
		jz	short loc_815D0
		cmp	al, 2Dh
		jz	short loc_815D0
		add	ebx, 1
		mov	[ebp+var_29], 3
		jmp	loc_81472
; ---------------------------------------------------------------------------

loc_815A0:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+3Cj
		movzx	eax, byte ptr [ebx+1]
		cmp	al, 3Ah
		jz	short loc_815AC
		cmp	al, 2Dh
		jnz	short loc_815E0

loc_815AC:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+176j
		add	ebx, 2
		mov	[ebp+var_29], 6
		jmp	loc_81472
; ---------------------------------------------------------------------------
		align 10h

loc_815C0:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+B6j
					; CSteamID::SetFromString(char	const*,EUniverse)+BEj
		add	ebx, 2
		jmp	loc_814F7
; ---------------------------------------------------------------------------
		align 10h

loc_815D0:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+15Ej
					; CSteamID::SetFromString(char	const*,EUniverse)+162j
		add	ebx, 2
		mov	[ebp+var_29], 3
		jmp	loc_81472
; ---------------------------------------------------------------------------
		align 10h

loc_815E0:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+17Aj
		add	ebx, 1
		mov	[ebp+var_29], 6
		jmp	loc_81472
; ---------------------------------------------------------------------------
		align 10h

loc_815F0:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+12Dj
		mov	edx, [ebp+var_20]
		mov	[esi], eax
		mov	eax, [ebp+var_1C]
		mov	[esi+4], dl
		mov	[esi+7], al
		movzx	eax, dh
		mov	[esi+5], al
		mov	eax, edx
		shr	eax, 10h
		and	eax, 0Fh
		or	eax, 40h
		mov	[esi+6], al
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_81620:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+54j
		lea	eax, [ebp+var_24]
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp+8], eax
		mov	[esp], ebx	; s
		call	sscanf
		mov	eax, [ebp+var_1C]
		jmp	loc_814BA
; ---------------------------------------------------------------------------
		align 10h

loc_81640:				; CODE XREF: CSteamID::SetFromString(char  const*,EUniverse)+107j
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp], ebx	; s
		call	sscanf
		jmp	loc_81558
_ZN8CSteamID13SetFromStringEPKc9EUniverse endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSteamID::CSteamID(char  const*, EUniverse)
_ZN8CSteamIDC2EPKc9EUniverse proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN8CSteamID13SetFromStringEPKc9EUniverse ; CSteamID::SetFromString(char  const*,EUniverse)
_ZN8CSteamIDC2EPKc9EUniverse endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSteamID__SetFromSteam2String(int, char *s, int)
_ZN8CSteamID19SetFromSteam2StringEPKc9EUniverse	proc near

var_18		= word ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_9		= byte ptr -9
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 30h
		mov	[ebp+var_18], 0
		mov	ebx, [ebp+s]
		mov	[ebp+var_10], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_14], 0
		mov	dword ptr [esp+8], 6
		mov	dword ptr [esp+4], offset aSteam_ ; "STEAM_"
		mov	[esp], ebx
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		lea	edx, [ebx+6]
		mov	dword ptr [esp+4], offset aHuUUC ; "%hu:%u:%u%c"
		lea	ecx, [ebp+var_14]
		test	eax, eax
		mov	[ebp+var_9], 0
		cmovnz	edx, ebx
		mov	[esp+10h], ecx
		lea	eax, [ebp+var_9]
		mov	[esp], edx	; s
		mov	[esp+14h], eax
		lea	ecx, [ebp+var_10]
		lea	eax, [ebp+var_18]
		mov	[esp+0Ch], ecx
		mov	[esp+8], eax
		call	sscanf
		mov	edx, eax
		xor	eax, eax
		cmp	edx, 0FFFFFFFFh
		jz	short loc_81708
		cmp	[ebp+var_9], 0
		jnz	short loc_81708
		cmp	edx, 1
		jle	short loc_81708
		cmp	edx, 2
		jnz	short loc_81710
		cmp	[ebp+var_18], 1
		jz	short loc_81710
		lea	esi, [esi+0]

loc_81708:				; CODE XREF: CSteamID::SetFromSteam2String(char	 const*,EUniverse)+79j
					; CSteamID::SetFromSteam2String(char  const*,EUniverse)+7Fj ...
		add	esp, 30h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_81710:				; CODE XREF: CSteamID::SetFromSteam2String(char	 const*,EUniverse)+89j
					; CSteamID::SetFromSteam2String(char  const*,EUniverse)+90j
		mov	eax, [ebp+var_14]
		mov	edx, [ebp+var_10]
		lea	eax, [edx+eax*2]
		mov	[esi], eax
		mov	eax, [ebp+arg_8]
		mov	byte ptr [esi+4], 1
		mov	byte ptr [esi+5], 0
		mov	byte ptr [esi+6], 10h
		mov	[esi+7], al
		add	esp, 30h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN8CSteamID19SetFromSteam2StringEPKc9EUniverse	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSteamID::Render(void)const
_ZNK8CSteamID6RenderEv proc near	; CODE XREF: CSteamID::Render(ulong long)+18p
					; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)+556p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, ds:_ZZNK8CSteamID6RenderEvE4nBuf ;	CSteamID::Render(void)::nBuf
		mov	ecx, [ebp+arg_0]
		mov	ebx, eax
		shl	ebx, 8
		sub	ebx, eax
		add	eax, 1
		mov	edx, eax
		add	ebx, offset _ZZNK8CSteamID6RenderEvE7rgchBuf ; CSteamID::Render(void)::rgchBuf
		sar	edx, 1Fh
		shr	edx, 1Eh
		add	eax, edx
		and	eax, 3
		sub	eax, edx
		mov	ds:_ZZNK8CSteamID6RenderEvE4nBuf, eax ;	CSteamID::Render(void)::nBuf
		movzx	eax, byte ptr [ecx+6]
		shr	al, 4
		movzx	eax, al
		cmp	eax, 4
		jz	short loc_817F0
		cmp	eax, 3
		jz	loc_81838
		cmp	eax, 2
		jz	loc_81868
		cmp	eax, 5
		jz	loc_818B0
		cmp	eax, 6
		mov	eax, [ecx]
		mov	[esp+10h], eax
		movzx	eax, byte ptr [ecx+7]
		mov	[esp+0Ch], eax	; arg
		jz	short loc_817D0
		mov	dword ptr [esp+8], offset aUU ;	"[%u:%u]"
		mov	dword ptr [esp+4], 0FFh	; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_817C8:				; CODE XREF: CSteamID::Render(void)+F3j
					; CSteamID::Render(void)+11Ej ...
		add	esp, 24h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_817D0:				; CODE XREF: CSteamID::Render(void)+6Ej
		mov	[esp], ebx	; s
		mov	dword ptr [esp+8], offset aCUU ; "[C-%u:%u]"
		mov	dword ptr [esp+4], 0FFh	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 24h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_817F0:				; CODE XREF: CSteamID::Render(void)+40j
		movzx	edx, byte ptr [ecx+5]
		movzx	eax, byte ptr [ecx+4]
		shl	edx, 8
		or	edx, eax
		movzx	eax, byte ptr [ecx+6]
		and	eax, 0Fh
		shl	eax, 10h
		or	eax, edx
		mov	[esp+14h], eax
		mov	eax, [ecx]
		mov	[esp+10h], eax
		movzx	eax, byte ptr [ecx+7]
		mov	dword ptr [esp+8], offset aAUUU	; "[A-%u:%u(%u)]"
		mov	dword ptr [esp+4], 0FFh	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	short loc_817C8
; ---------------------------------------------------------------------------
		align 4

loc_81838:				; CODE XREF: CSteamID::Render(void)+45j
		mov	eax, [ecx]
		mov	[esp+10h], eax
		movzx	eax, byte ptr [ecx+7]
		mov	dword ptr [esp+8], offset aGUU ; "[G-%u:%u]"
		mov	dword ptr [esp+4], 0FFh	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_817C8
; ---------------------------------------------------------------------------
		align 8

loc_81868:				; CODE XREF: CSteamID::Render(void)+4Ej
		movzx	edx, byte ptr [ecx+5]
		movzx	eax, byte ptr [ecx+4]
		shl	edx, 8
		or	edx, eax
		movzx	eax, byte ptr [ecx+6]
		and	eax, 0Fh
		shl	eax, 10h
		or	eax, edx
		mov	[esp+14h], eax
		mov	eax, [ecx]
		mov	[esp+10h], eax
		movzx	eax, byte ptr [ecx+7]
		mov	dword ptr [esp+8], offset aUUU ; "[%u:%u(%u%)]"
		mov	dword ptr [esp+4], 0FFh	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_817C8
; ---------------------------------------------------------------------------

loc_818B0:				; CODE XREF: CSteamID::Render(void)+57j
		mov	eax, [ecx]
		mov	[esp+10h], eax
		movzx	eax, byte ptr [ecx+7]
		mov	dword ptr [esp+8], offset aUUPending ; "[%u:%u(pending)]"
		mov	dword ptr [esp+4], 0FFh	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_817C8
_ZNK8CSteamID6RenderEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSteamID::Render(unsigned long long)
_ZN8CSteamID6RenderEy proc near

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		mov	[ebp+var_C], edx
		mov	[esp], eax
		call	_ZNK8CSteamID6RenderEv ; CSteamID::Render(void)
		leave
		retn
_ZN8CSteamID6RenderEy endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSteamID::BValidExternalSteamID(void)const
_ZNK8CSteamID21BValidExternalSteamIDEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		movzx	eax, byte ptr [ecx+6]
		shr	al, 4
		movzx	edx, al
		xor	eax, eax
		cmp	edx, 5
		jz	short loc_81948
		cmp	edx, 4
		mov	eax, 1
		jz	short loc_81948
		cmp	edx, 6
		jz	short loc_81948
		mov	edx, [ecx]
		test	edx, edx
		jnz	short loc_81948
		movzx	eax, byte ptr [ecx+5]
		movzx	edx, byte ptr [ecx+4]
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx+6]
		and	edx, 0Fh
		shl	edx, 10h
		or	edx, eax
		setnz	al

loc_81948:				; CODE XREF: CSteamID::BValidExternalSteamID(void)+15j
					; CSteamID::BValidExternalSteamID(void)+1Fj ...
		pop	ebp
		retn
_ZNK8CSteamID21BValidExternalSteamIDEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBlockingUDPSocket::~CBlockingUDPSocket()
_ZN18CBlockingUDPSocketD2Ev proc near	; CODE XREF: CBlockingUDPSocket::~CBlockingUDPSocket()+Dp
					; Win32UploadGameStatsBlocking(TGameStatsParameters  const&)+3F3p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+4]
		mov	dword ptr [ebx], (offset _ZTV18CBlockingUDPSocket+8)
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [ebx+14h]
		mov	[ebp+arg_0], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	close
_ZN18CBlockingUDPSocketD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBlockingUDPSocket___CBlockingUDPSocket(void *)
_ZN18CBlockingUDPSocketD0Ev proc near	; DATA XREF: .rodata:`vtable for'CBlockingUDPSocketo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN18CBlockingUDPSocketD2Ev ; CBlockingUDPSocket::~CBlockingUDPSocket()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN18CBlockingUDPSocketD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBlockingUDPSocket::CreateSocket(void)
_ZN18CBlockingUDPSocket12CreateSocketEv	proc near
					; CODE XREF: CBlockingUDPSocket::CBlockingUDPSocket(void)+6Aj

addr		= sockaddr ptr -18h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+8], 11h ; protocol
		mov	dword ptr [esp+4], 2 ; type
		mov	dword ptr [esp], 2 ; domain
		call	socket
		mov	edx, eax
		mov	[ebx+14h], eax
		xor	eax, eax
		cmp	edx, 0FFFFFFFFh
		jz	short loc_81A09
		mov	eax, [ebx+4]
		mov	ecx, [eax]
		mov	dword ptr [ebp+addr.sa_family],	ecx
		mov	ecx, [eax+4]
		mov	dword ptr [ebp+addr.sa_data+2],	ecx
		mov	ecx, [eax+8]
		mov	dword ptr [ebp+addr.sa_data+6],	ecx
		mov	eax, [eax+0Ch]
		mov	dword ptr [esp+8], 10h ; len
		mov	[esp], edx	; fd
		mov	dword ptr [ebp+addr.sa_data+0Ah], eax
		lea	eax, [ebp+addr]
		mov	[esp+4], eax	; addr
		call	bind
		cmp	eax, 0FFFFFFFFh
		setnz	al

loc_81A09:				; CODE XREF: CBlockingUDPSocket::CreateSocket(void)+30j
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN18CBlockingUDPSocket12CreateSocketEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBlockingUDPSocket::CBlockingUDPSocket(void)
_ZN18CBlockingUDPSocketC2Ev proc near	; CODE XREF: CPhoneHome::Init(void)+143p
					; UploadData(char  const*,char	const*,KeyValues *)+2A9p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	dword ptr [ebx], (offset _ZTV18CBlockingUDPSocket+8)
		lea	esi, [ebx+8]
		mov	dword ptr [esp], 90h
		call	_Znwj		; operator new(uint)
		mov	[ebx+4], eax
		mov	[esp], esi
		mov	dword ptr [esp+4], 0
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	[esp], esi
		mov	dword ptr [esp+4], 0
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	[esp], esi
		mov	dword ptr [esp+4], 3
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	dword ptr [ebx+14h], 0
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN18CBlockingUDPSocket12CreateSocketEv	; CBlockingUDPSocket::CreateSocket(void)
_ZN18CBlockingUDPSocketC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBlockingUDPSocket::WaitForMessage(float)
_ZN18CBlockingUDPSocket14WaitForMessageEf proc near
					; CODE XREF: CPhoneHome::SendSessionMessage(uchar,char	const*)+386p
					; CPhoneHome::RequestSessionId(uint &)+34Dp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
timeout		= timeval ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ecx, 20h
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	ebx
		sub	esp, 40h
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebx+4]
		add	edi, 10h
		cld
		rep stosd
		mov	eax, [ebx+14h]
		mov	edx, [ebx+4]
		mov	ecx, eax
		and	eax, 1Fh
		shr	ecx, 5
		bts	[edx+ecx*4+10h], eax
		cvttss2si eax, [ebp+arg_4]
		mov	dword ptr [esp+0Ch], 0 ; exceptfds
		mov	dword ptr [esp+8], 0 ; writefds
		mov	[ebp+var_1C], eax
		fild	[ebp+var_1C]
		mov	[ebp+timeout.tv_sec], eax
		fsubr	[ebp+arg_4]
		fmul	ds:flt_1EBAA0
		fadd	ds:flt_1EBAA4
		fstp	[ebp+var_20]
		cvttss2si eax, [ebp+var_20]
		mov	[ebp+timeout.tv_usec], eax
		lea	eax, [ebp+timeout]
		mov	[esp+10h], eax	; timeout
		mov	eax, [ebx+4]
		add	eax, 10h
		mov	[esp+4], eax	; readfds
		mov	eax, [ebx+14h]
		add	eax, 1
		mov	[esp], eax	; nfds
		call	select
		xor	edx, edx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_81B27
		mov	eax, [ebx+14h]
		mov	ecx, [ebx+4]
		mov	edx, eax
		shr	eax, 5
		and	edx, 1Fh
		bt	[ecx+eax*4+10h], edx
		setb	al
		test	al, al
		setnz	dl

loc_81B27:				; CODE XREF: CBlockingUDPSocket::WaitForMessage(float)+8Aj
		add	esp, 40h
		mov	eax, edx
		pop	ebx
		pop	edi
		pop	ebp
		retn
_ZN18CBlockingUDPSocket14WaitForMessageEf endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBlockingUDPSocket::ReceiveSocketMessage(sockaddr_in *, unsigned char	*, unsigned int)
_ZN18CBlockingUDPSocket20ReceiveSocketMessageEP11sockaddr_inPhj	proc near
					; CODE XREF: CPhoneHome::SendSessionMessage(uchar,char	const*)+3DAp
					; CPhoneHome::RequestSessionId(uint &)+3B4p ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	eax, [ebp+var_C]
		sub	esp, 40h
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp+14h], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[ebp+var_C], 10h
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+14h]
		mov	[esp], eax
		mov	eax, ds:g_pVCR
		call	dword ptr [eax+2Ch]
		xor	edx, edx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_81BB6
		mov	byte ptr [esi+eax], 0
		mov	edx, eax
		mov	eax, [ebp+var_1C]
		mov	[ebx], eax
		mov	eax, [ebp+var_18]
		mov	[ebx+4], eax
		mov	eax, [ebp+var_14]
		mov	[ebx+8], eax
		mov	eax, [ebp+var_10]
		mov	[ebx+0Ch], eax

loc_81BB6:				; CODE XREF: CBlockingUDPSocket::ReceiveSocketMessage(sockaddr_in *,uchar *,uint)+67j
		add	esp, 40h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN18CBlockingUDPSocket20ReceiveSocketMessageEP11sockaddr_inPhj	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBlockingUDPSocket__SendSocketMessage(int, struct	sockaddr *addr,	void *buf, size_t n)
_ZN18CBlockingUDPSocket17SendSocketMessageERK11sockaddr_inPKhj proc near
					; CODE XREF: CPhoneHome::SendSessionMessage(uchar,char	const*)+365p
					; CPhoneHome::RequestSessionId(uint &)+33Ap ...

arg_0		= dword	ptr  8
addr		= dword	ptr  0Ch
buf		= dword	ptr  10h
n		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+addr]
		mov	dword ptr [esp+14h], 10h ; addr_len
		mov	dword ptr [esp+0Ch], 0 ; flags
		mov	[esp+10h], eax	; addr
		mov	eax, [ebp+n]
		mov	[esp+8], eax	; n
		mov	eax, [ebp+buf]
		mov	[esp+4], eax	; buf
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+14h]
		mov	[esp], eax	; fd
		call	sendto
		leave
		cmp	eax, 0FFFFFFFFh
		setnz	al
		retn
_ZN18CBlockingUDPSocket17SendSocketMessageERK11sockaddr_inPKhj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::IsElementInTree(unsigned short)const
_ZNK12CBSPTreeData15IsElementInTreeEt proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		movzx	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		pop	ebp
		lea	eax, [eax+eax*2]
		shl	eax, 2
		add	eax, [edx+1Ch]
		cmp	word ptr [eax+4], 0FFFFh
		setnz	al
		retn
_ZNK12CBSPTreeData15IsElementInTreeEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::EnumerateElementsInLeaf(int, IBSPTreeDataEnumerator *, int)
_ZN12CBSPTreeData23EnumerateElementsInLeafEiP22IBSPTreeDataEnumeratori proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebx+8]
		movzx	ecx, word ptr [eax+edx*2]
		mov	eax, 1
		cmp	cx, 0FFFFh
		jz	short loc_81C9E
		mov	edx, [ebx+38h]
		jmp	short loc_81C6E
; ---------------------------------------------------------------------------
		align 10h

loc_81C60:				; CODE XREF: CBSPTreeData::EnumerateElementsInLeaf(int,IBSPTreeDataEnumerator *,int)+6Aj
		mov	edx, [ebx+38h]
		movzx	ecx, word ptr [edx+edi+4]
		cmp	cx, 0FFFFh
		jz	short loc_81CB0

loc_81C6E:				; CODE XREF: CBSPTreeData::EnumerateElementsInLeaf(int,IBSPTreeDataEnumerator *,int)+27j
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebp+arg_C]
		lea	edi, [eax+eax]
		mov	[esp+8], ecx
		movzx	eax, word ptr [edx+eax*2]
		mov	edx, [ebx+1Ch]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	eax, [eax]
		mov	[esp], esi
		mov	[esp+4], eax
		mov	edx, [esi]
		call	dword ptr [edx]
		test	al, al
		jnz	short loc_81C60
		xor	eax, eax

loc_81C9E:				; CODE XREF: CBSPTreeData::EnumerateElementsInLeaf(int,IBSPTreeDataEnumerator *,int)+22j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_81CB0:				; CODE XREF: CBSPTreeData::EnumerateElementsInLeaf(int,IBSPTreeDataEnumerator *,int)+3Cj
		add	esp, 1Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN12CBSPTreeData23EnumerateElementsInLeafEiP22IBSPTreeDataEnumeratori endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::EnumerateLeavesAtPoint(Vector  const&, ISpatialLeafEnumerator *, int)
_ZN12CBSPTreeData22EnumerateLeavesAtPointERK6VectorP22ISpatialLeafEnumeratori proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+70h]
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+4]
		jmp	eax
_ZN12CBSPTreeData22EnumerateLeavesAtPointERK6VectorP22ISpatialLeafEnumeratori endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::EnumerateLeavesInBox(Vector  const&, Vector  const&, ISpatialLeafEnumerator *, int)
_ZN12CBSPTreeData20EnumerateLeavesInBoxERK6VectorS2_P22ISpatialLeafEnumeratori proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+70h]
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+8]
		jmp	eax
_ZN12CBSPTreeData20EnumerateLeavesInBoxERK6VectorS2_P22ISpatialLeafEnumeratori endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::EnumerateLeavesInSphere(Vector	const&,	float, ISpatialLeafEnumerator *, int)
_ZN12CBSPTreeData23EnumerateLeavesInSphereERK6VectorfP22ISpatialLeafEnumeratori	proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+70h]
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+0Ch]
		jmp	eax
_ZN12CBSPTreeData23EnumerateLeavesInSphereERK6VectorfP22ISpatialLeafEnumeratori	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::EnumerateLeavesAlongRay(Ray_t  const&, ISpatialLeafEnumerator *, int)
_ZN12CBSPTreeData23EnumerateLeavesAlongRayERK5Ray_tP22ISpatialLeafEnumeratori proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+70h]
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+10h]
		jmp	eax
_ZN12CBSPTreeData23EnumerateLeavesAlongRayERK5Ray_tP22ISpatialLeafEnumeratori endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DestroyBSPTreeData(IBSPTreeData *)
_Z18DestroyBSPTreeDataP12IBSPTreeData proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_81D58
		mov	edx, [eax]
		pop	ebp
		mov	eax, [edx+4]
		jmp	eax
; ---------------------------------------------------------------------------
		align 8

loc_81D58:				; CODE XREF: DestroyBSPTreeData(IBSPTreeData *)+8j
		pop	ebp
		retn
_Z18DestroyBSPTreeDataP12IBSPTreeData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::CBSPTreeData(void)
_ZN12CBSPTreeDataC2Ev proc near		; CODE XREF: CreateBSPTreeData(void)+18p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV12CBSPTreeData+8)
		mov	dword ptr [eax+4], (offset _ZTV12CBSPTreeData+48h)
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	word ptr [eax+32h], 0FFFFh
		mov	word ptr [eax+28h], 0FFFFh
		mov	word ptr [eax+2Ah], 0FFFFh
		mov	word ptr [eax+2Ch], 0FFFFh
		mov	word ptr [eax+2Eh], 0
		mov	word ptr [eax+30h], 0
		mov	dword ptr [eax+34h], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+40h], 0
		mov	word ptr [eax+4Eh], 0FFFFh
		mov	word ptr [eax+44h], 0FFFFh
		mov	word ptr [eax+46h], 0FFFFh
		mov	word ptr [eax+48h], 0FFFFh
		mov	word ptr [eax+4Ah], 0
		mov	word ptr [eax+4Ch], 0
		mov	dword ptr [eax+50h], 0
		mov	dword ptr [eax+54h], 0
		mov	dword ptr [eax+58h], 0
		mov	dword ptr [eax+5Ch], 0
		mov	word ptr [eax+6Ah], 0FFFFh
		mov	word ptr [eax+60h], 0FFFFh
		mov	word ptr [eax+62h], 0FFFFh
		mov	word ptr [eax+64h], 0FFFFh
		mov	word ptr [eax+66h], 0
		mov	word ptr [eax+68h], 0
		mov	dword ptr [eax+6Ch], 0
		pop	ebp
		retn
_ZN12CBSPTreeDataC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CreateBSPTreeData(void)
_Z17CreateBSPTreeDatav proc near
		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	dword ptr [esp], 74h
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN12CBSPTreeDataC2Ev ;	CBSPTreeData::CBSPTreeData(void)
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_Z17CreateBSPTreeDatav endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::InsertIntoTree(unsigned	short, Vector  const&, Vector  const&)
_ZN12CBSPTreeData14InsertIntoTreeEtRK6VectorS2_	proc near

arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	edx, [ebp+arg_0]
		movzx	ebx, [ebp+arg_4]
		mov	eax, [edx+70h]
		add	edx, 4
		mov	ecx, [eax]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+10h], ebx
		mov	[esp], eax
		mov	[esp+8], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+4], edx
		call	dword ptr [ecx+8]
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN12CBSPTreeData14InsertIntoTreeEtRK6VectorS2_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::CountElementsInLeaf(int)
_ZN12CBSPTreeData19CountElementsInLeafEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ecx+8]
		movzx	edx, word ptr [eax+edx*2]
		xor	eax, eax
		cmp	edx, 0FFFFh
		jz	short loc_81F03
		mov	ecx, [ecx+38h]
		lea	esi, [esi+0]

loc_81EF0:				; CODE XREF: CBSPTreeData::CountElementsInLeaf(int)+31j
		lea	edx, [edx+edx*2]
		add	eax, 1
		movzx	edx, word ptr [ecx+edx*2+4]
		cmp	edx, 0FFFFh
		jnz	short loc_81EF0

loc_81F03:				; CODE XREF: CBSPTreeData::CountElementsInLeaf(int)+18j
		pop	ebp
		retn
_ZN12CBSPTreeData19CountElementsInLeafEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::Shutdown(void)
_ZN12CBSPTreeData8ShutdownEv proc near	; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		lea	esi, [ebx+1Ch]
		mov	[esp], esi
		call	_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv	; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::RemoveAll(void)
		mov	[esp], esi
		lea	esi, [ebx+38h]
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData12HandleInfo_tEtEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Purge(void)
		mov	eax, [ebx+1Ch]
		mov	word ptr [ebx+2Ch], 0FFFFh
		mov	word ptr [ebx+30h], 0
		mov	word ptr [ebx+32h], 0FFFFh
		mov	[ebx+34h], eax
		mov	[esp], esi
		call	_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE9RemoveAllEv ; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)
		mov	[esp], esi
		lea	esi, [ebx+54h]
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIttEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Purge(void)
		mov	eax, [ebx+38h]
		mov	word ptr [ebx+48h], 0FFFFh
		mov	word ptr [ebx+4Ch], 0
		mov	word ptr [ebx+4Eh], 0FFFFh
		mov	[ebx+50h], eax
		mov	[esp], esi
		call	_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)
		mov	[esp], esi
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData14HandleInLeaf_tEtEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Purge(void)
		mov	eax, [ebx+54h]
		mov	word ptr [ebx+64h], 0FFFFh
		mov	word ptr [ebx+68h], 0
		mov	word ptr [ebx+6Ah], 0FFFFh
		mov	dword ptr [ebx+14h], 0
		mov	[ebx+6Ch], eax
		lea	eax, [ebx+8]
		mov	[esp], eax
		call	_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE5PurgeEv ; CUtlMemory<CBSPTreeData::Leaf_t,int>::Purge(void)
		mov	eax, [ebx+8]
		mov	[ebx+18h], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN12CBSPTreeData8ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::~CBSPTreeData()
_ZN12CBSPTreeDataD2Ev proc near		; CODE XREF: CBSPTreeData::~CBSPTreeData()+Dp
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		lea	esi, [ebx+54h]
		mov	dword ptr [ebx], (offset _ZTV12CBSPTreeData+8)
		mov	dword ptr [ebx+4], (offset _ZTV12CBSPTreeData+48h)
		mov	[esp], esi
		call	_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)
		mov	[esp], esi
		lea	esi, [ebx+38h]
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData14HandleInLeaf_tEtEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Purge(void)
		mov	[esp], esi
		call	_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE9RemoveAllEv ; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)
		mov	[esp], esi
		lea	esi, [ebx+1Ch]
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIttEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Purge(void)
		mov	[esp], esi
		call	_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv	; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::RemoveAll(void)
		mov	[esp], esi
		lea	esi, [ebx+8]
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData12HandleInfo_tEtEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Purge(void)
		mov	dword ptr [ebx+14h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE5PurgeEv ; CUtlMemory<CBSPTreeData::Leaf_t,int>::Purge(void)
		mov	eax, [ebx+8]
		mov	[ebx+18h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE5PurgeEv ; CUtlMemory<CBSPTreeData::Leaf_t,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV12IBSPTreeData+8)
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN12CBSPTreeDataD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBSPTreeData___CBSPTreeData(void *)
_ZN12CBSPTreeDataD0Ev proc near		; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN12CBSPTreeDataD2Ev ;	CBSPTreeData::~CBSPTreeData()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12CBSPTreeDataD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::RemoveFromTree(unsigned	short)
_ZN12CBSPTreeData14RemoveFromTreeEt proc near
					; CODE XREF: CBSPTreeData::ElementMoved(ushort,Vector  const&,Vector  const&)+23p
					; CBSPTreeData::Remove(ushort)+53p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		lea	eax, [eax+eax*2]
		shl	eax, 2
		mov	[ebp+var_2C], eax
		add	eax, [ebx+1Ch]
		movzx	edx, word ptr [eax+4]
		cmp	dx, 0FFFFh
		mov	[ebp+var_1C], dx
		jz	loc_82166
		lea	ecx, [ebx+38h]
		lea	esi, [ebx+54h]
		mov	[ebp+var_24], ecx
		mov	[ebp+var_28], esi
		jmp	short loc_82111
; ---------------------------------------------------------------------------
		align 10h

loc_820A0:				; CODE XREF: CBSPTreeData::RemoveFromTree(ushort)+D6j
		movzx	edx, dx
		lea	ecx, [edx+edx*2]
		add	ecx, ecx
		mov	[ebp+var_20], ecx

loc_820AB:				; CODE XREF: CBSPTreeData::RemoveFromTree(ushort)+F3j
		mov	eax, [ebp+var_24]
		mov	[esp+4], edx
		mov	[esp], eax
		call	_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE6UnlinkEt ;	CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)
		movzx	edx, word ptr [ebx+48h]
		mov	eax, [ebx+38h]
		mov	ecx, [ebp+var_20]
		movzx	esi, [ebp+var_1A]
		mov	[eax+ecx+4], dx
		mov	edx, [ebp+var_34]
		mov	eax, [ebx+54h]
		mov	[ebx+48h], si
		mov	ecx, [ebp+var_28]
		movzx	eax, word ptr [eax+edx+0Ah]
		mov	[esp+4], edi
		mov	[esp], ecx
		mov	[ebp+var_30], eax
		call	_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)
		mov	esi, [ebp+var_34]
		movzx	edx, word ptr [ebx+64h]
		add	esi, [ebx+54h]
		mov	[esi+0Ah], dx
		movzx	esi, [ebp+var_1C]
		mov	[ebx+64h], si
		mov	eax, [ebp+var_30]
		cmp	ax, 0FFFFh
		jz	short loc_82160
		mov	[ebp+var_1C], ax

loc_82111:				; CODE XREF: CBSPTreeData::RemoveFromTree(ushort)+3Aj
		movzx	edi, [ebp+var_1C]
		mov	eax, [ebx+54h]
		mov	ecx, [ebx+8]
		lea	esi, [edi+edi*2]
		shl	esi, 2
		add	eax, esi
		mov	[ebp+var_34], esi
		movzx	edx, word ptr [eax+4]
		mov	eax, [eax]
		mov	[ebp+var_1A], dx
		lea	eax, [ecx+eax*2]
		cmp	dx, [eax]
		jnz	loc_820A0
		movzx	edx, [ebp+var_1A]
		mov	esi, [ebx+38h]
		lea	ecx, [edx+edx*2]
		add	ecx, ecx
		movzx	esi, word ptr [esi+ecx+4]
		mov	[ebp+var_20], ecx
		mov	[eax], si
		jmp	loc_820AB
; ---------------------------------------------------------------------------
		align 10h

loc_82160:				; CODE XREF: CBSPTreeData::RemoveFromTree(ushort)+ABj
		mov	eax, [ebp+var_2C]
		add	eax, [ebx+1Ch]

loc_82166:				; CODE XREF: CBSPTreeData::RemoveFromTree(ushort)+28j
		mov	word ptr [eax+4], 0FFFFh
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN12CBSPTreeData14RemoveFromTreeEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::ElementMoved(unsigned short, Vector  const&, Vector  const&)
_ZN12CBSPTreeData12ElementMovedEtRK6VectorS2_ proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		movzx	eax, [ebp+arg_4]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [ebp+arg_0]
		cmp	ax, 0FFFFh
		jz	short loc_821CC
		movzx	esi, ax
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZN12CBSPTreeData14RemoveFromTreeEt ; CBSPTreeData::RemoveFromTree(ushort)
		mov	edx, [ebx+70h]
		add	ebx, 4
		mov	ecx, [ebp+arg_C]
		mov	eax, [edx]
		mov	[esp+10h], esi
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_8]
		mov	[esp+0Ch], ebx
		mov	[esp], edx
		mov	[esp+4], ecx
		call	dword ptr [eax+8]

loc_821CC:				; CODE XREF: CBSPTreeData::ElementMoved(ushort,Vector  const&,Vector  const&)+17j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CBSPTreeData12ElementMovedEtRK6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::Remove(unsigned	short)
_ZN12CBSPTreeData6RemoveEt proc	near	; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		movzx	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		movzx	edi, si
		cmp	edi, [ebx+20h]
		jnb	short loc_82204
		cmp	si, [ebx+32h]
		jbe	short loc_82218

loc_82204:				; CODE XREF: CBSPTreeData::Remove(ushort)+1Cj
					; CBSPTreeData::Remove(ushort)+94j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_82218:				; CODE XREF: CBSPTreeData::Remove(ushort)+22j
		mov	edx, [ebx+1Ch]
		lea	eax, [edi+edi*2]
		shl	eax, 2
		add	edx, eax
		cmp	si, [edx+8]
		jz	short loc_82270

loc_82229:				; CODE XREF: CBSPTreeData::Remove(ushort)+96j
		mov	[ebp+var_1C], eax
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_ZN12CBSPTreeData14RemoveFromTreeEt ; CBSPTreeData::RemoveFromTree(ushort)
		lea	edx, [ebx+1Ch]
		mov	[esp+4], edi
		mov	[esp], edx
		call	_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)
		mov	eax, [ebp+var_1C]
		movzx	edx, word ptr [ebx+2Ch]
		add	eax, [ebx+1Ch]
		mov	[eax+0Ah], dx
		mov	[ebx+2Ch], si
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_82270:				; CODE XREF: CBSPTreeData::Remove(ushort)+47j
		cmp	si, [edx+0Ah]
		jnz	short loc_82204
		jmp	short loc_82229
_ZN12CBSPTreeData6RemoveEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::AddHandleToLeaf(int, unsigned short)
_ZN12CBSPTreeData15AddHandleToLeafEit proc near
					; CODE XREF: CBSPTreeData::EnumerateLeaf(int,int)+1Bp

var_34		= dword	ptr -34h
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+4], 1
		movzx	edx, [ebp+arg_8]
		lea	edi, [ebx+38h]
		mov	word ptr [ebp+var_1C], dx
		mov	[esp], edi
		call	_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE13AllocInternalEb ;	CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		mov	eax, [ebx+8]
		add	ecx, ecx
		add	eax, ecx
		movzx	edx, word ptr [eax]
		cmp	dx, 0FFFFh
		jz	loc_82418
		movzx	eax, si
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], ecx
		call	_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE6UnlinkEt ;	CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)
		mov	eax, [ebp+var_2C]
		mov	edx, [ebp+var_24]
		lea	edi, [eax+eax*2]
		add	edi, edi
		mov	[ebp+var_34], edi
		add	edi, [ebx+38h]
		mov	[edi+4], dx
		movzx	edx, dx
		lea	eax, [edx+edx*2]
		mov	edx, [ebx+38h]
		mov	[ebp+var_20], edi
		lea	eax, [edx+eax*2]
		mov	edx, [ebp+var_20]
		movzx	edi, word ptr [eax+2]
		mov	[eax+2], si
		mov	[edx+2], di
		cmp	di, 0FFFFh
		mov	[ebp+var_2E], di
		mov	ecx, [ebp+var_28]
		jz	loc_82440
		movzx	edx, [ebp+var_2E]
		mov	edi, [ebx+38h]
		lea	eax, [edx+edx*2]
		lea	eax, [edi+eax*2]
		mov	[eax+4], si

loc_8232D:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+1C4j
		mov	eax, [ebx+8]
		add	word ptr [ebx+4Ah], 1
		add	eax, ecx

loc_82337:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+1A3j
		mov	[eax], si
		movzx	edi, word ptr [ebp+var_1C]
		mov	eax, [ebx+38h]
		mov	ecx, [ebp+var_34]
		mov	[eax+ecx], di
		lea	edi, [ebx+54h]
		mov	dword ptr [esp+4], 1
		mov	[esp], edi
		call	_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)
		movzx	edx, word ptr [ebp+var_1C]
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_1C], edx
		add	edx, [ebx+1Ch]
		movzx	ecx, word ptr [edx+4]
		cmp	cx, 0FFFFh
		jz	loc_82430
		movzx	edx, ax
		mov	[esp], edi
		mov	[esp+4], edx
		mov	[ebp+var_2C], eax
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], ecx
		call	_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_28]
		lea	edi, [edx+edx*2]
		mov	edx, [ebx+54h]
		shl	edi, 2
		add	edx, edi
		mov	[edx+0Ah], cx
		movzx	ecx, cx
		mov	[ebp+var_20], edx
		lea	edx, [ecx+ecx*2]
		mov	ecx, [ebx+54h]
		shl	edx, 2
		add	edx, ecx
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_34], edx
		movzx	edx, word ptr [edx+8]
		mov	[ebp+var_2E], dx
		mov	[ecx+8], dx
		cmp	[ebp+var_2E], 0FFFFh
		mov	eax, [ebp+var_2C]
		mov	edx, [ebp+var_34]
		mov	[edx+8], ax
		jz	short loc_82450
		movzx	ecx, [ebp+var_2E]
		lea	edx, [ecx+ecx*2]
		mov	ecx, [ebx+54h]
		lea	edx, [ecx+edx*4]
		mov	[edx+0Ah], ax

loc_823EB:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+1D4j
		mov	edx, [ebp+var_1C]
		add	word ptr [ebx+66h], 1
		add	edx, [ebx+1Ch]

loc_823F6:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+1B9j
		mov	[edx+4], ax
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebx+54h]
		mov	[eax+edi], ecx
		mov	eax, [ebx+54h]
		mov	[eax+edi+4], si
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_82418:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+3Aj
		movzx	edx, si
		lea	edi, [edx+edx*2]
		add	edi, edi
		mov	[ebp+var_34], edi
		jmp	loc_82337
; ---------------------------------------------------------------------------
		align 10h

loc_82430:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+F3j
		movzx	ecx, ax
		lea	edi, [ecx+ecx*2]
		shl	edi, 2
		jmp	short loc_823F6
; ---------------------------------------------------------------------------
		align 10h

loc_82440:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+96j
		mov	[ebx+44h], si
		jmp	loc_8232D
; ---------------------------------------------------------------------------
		align 10h

loc_82450:				; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+158j
		mov	[ebx+60h], ax
		jmp	short loc_823EB
_ZN12CBSPTreeData15AddHandleToLeafEit endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBSPTreeData::EnumerateLeaf(int, int)
_ZThn4_N12CBSPTreeData13EnumerateLeafEii proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN12CBSPTreeData13EnumerateLeafEii ; CBSPTreeData::EnumerateLeaf(int,int)
_ZThn4_N12CBSPTreeData13EnumerateLeafEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::EnumerateLeaf(int, int)
_ZN12CBSPTreeData13EnumerateLeafEii proc near
					; CODE XREF: `non-virtual thunk	to'CBSPTreeData::EnumerateLeaf(int,int)+5j
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		movzx	eax, [ebp+arg_8]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN12CBSPTreeData15AddHandleToLeafEit ;	CBSPTreeData::AddHandleToLeaf(int,ushort)
		mov	eax, 1
		leave
		retn
_ZN12CBSPTreeData13EnumerateLeafEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::Init(ISpatialQuery *)
_ZN12CBSPTreeData4InitEP13ISpatialQuery	proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [esi+20h], 3FFh
		mov	[esi+70h], eax
		jg	short loc_82530
		mov	eax, [esi+24h]
		test	eax, eax
		js	short loc_82530
		mov	eax, [esi+1Ch]
		mov	dword ptr [esi+20h], 400h
		test	eax, eax
		jz	loc_82606
		mov	dword ptr [esp+4], 3000h ; size
		mov	[esp], eax	; ptr
		call	realloc
		cmp	dword ptr [esi+3Ch], 3FFh
		mov	[esi+1Ch], eax
		mov	[esi+34h], eax
		jle	short loc_8253F

loc_824F3:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+9Dj
					; CBSPTreeData::Init(ISpatialQuery *)+A4j
		mov	eax, [esi+38h]

loc_824F6:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+189j
		cmp	dword ptr [esi+58h], 3FFh
		mov	[esi+50h], eax
		jg	short loc_82577

loc_82502:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+D5j
		mov	ebx, [esi+5Ch]
		test	ebx, ebx
		js	short loc_82577
		mov	eax, [esi+54h]
		mov	dword ptr [esi+58h], 400h
		test	eax, eax
		jz	loc_8262E
		mov	dword ptr [esp+4], 3000h ; size
		mov	[esp], eax	; ptr
		call	realloc
		mov	[esi+54h], eax
		jmp	short loc_8257A
; ---------------------------------------------------------------------------

loc_82530:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+19j
					; CBSPTreeData::Init(ISpatialQuery *)+20j
		mov	eax, [esi+1Ch]

loc_82533:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+175j
		cmp	dword ptr [esi+3Ch], 3FFh
		mov	[esi+34h], eax
		jg	short loc_824F3

loc_8253F:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+51j
		mov	edi, [esi+40h]
		test	edi, edi
		js	short loc_824F3
		mov	eax, [esi+38h]
		mov	dword ptr [esi+3Ch], 400h
		test	eax, eax
		jz	loc_8261A
		mov	dword ptr [esp+4], 1800h ; size
		mov	[esp], eax	; ptr
		call	realloc
		cmp	dword ptr [esi+58h], 3FFh
		mov	[esi+38h], eax
		mov	[esi+50h], eax
		jle	short loc_82502

loc_82577:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+60j
					; CBSPTreeData::Init(ISpatialQuery *)+67j
		mov	eax, [esi+54h]

loc_8257A:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+8Ej
					; CBSPTreeData::Init(ISpatialQuery *)+19Dj
		mov	[esi+6Ch], eax
		mov	eax, [esi+70h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		cmp	eax, [esi+0Ch]
		mov	ebx, eax
		jle	short loc_825B8
		mov	ecx, [esi+10h]
		test	ecx, ecx
		js	short loc_825B8
		mov	[esi+0Ch], eax
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_825F6
		lea	edx, [ebx+ebx]
		mov	[esp], eax	; ptr
		mov	[esp+4], edx	; size
		call	realloc
		mov	[esi+8], eax
		jmp	short loc_825BB
; ---------------------------------------------------------------------------
		align 8

loc_825B8:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+ECj
					; CBSPTreeData::Init(ISpatialQuery *)+F3j
		mov	eax, [esi+8]

loc_825BB:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+111j
					; CBSPTreeData::Init(ISpatialQuery *)+164j
		sub	ebx, 1
		mov	[esi+18h], eax
		mov	[ebp+var_1A], 0FFFFh
		js	short loc_825EE
		lea	edi, [esi+8]
		lea	esi, [esi+0]

loc_825D0:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+14Cj
		lea	eax, [ebp+var_1A]
		sub	ebx, 1
		mov	[esp+8], eax
		mov	eax, [esi+14h]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIN12CBSPTreeData6Leaf_tE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_	; CUtlVector<CBSPTreeData::Leaf_t,CUtlMemory<CBSPTreeData::Leaf_t,int>>::InsertBefore(int,CBSPTreeData::Leaf_t const&)
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_825D0

loc_825EE:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+127j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_825F6:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+FDj
		lea	eax, [ebx+ebx]
		mov	[esp], eax	; size
		call	malloc
		mov	[esi+8], eax
		jmp	short loc_825BB
; ---------------------------------------------------------------------------

loc_82606:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+2Ej
		mov	dword ptr [esp], 3000h ; size
		call	malloc
		mov	[esi+1Ch], eax
		jmp	loc_82533
; ---------------------------------------------------------------------------

loc_8261A:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+B2j
		mov	dword ptr [esp], 1800h ; size
		call	malloc
		mov	[esi+38h], eax
		jmp	loc_824F6
; ---------------------------------------------------------------------------

loc_8262E:				; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+75j
		mov	dword ptr [esp], 3000h ; size
		call	malloc
		mov	[esi+54h], eax
		jmp	loc_8257A
_ZN12CBSPTreeData4InitEP13ISpatialQuery	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::NewHandle(int)
_ZN12CBSPTreeData9NewHandleEi proc near	; CODE XREF: CBSPTreeData::Insert(int,Vector  const&,Vector  const&)+19p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 0
		lea	esi, [ebx+1Ch]
		mov	[esp], esi
		call	_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb ; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)
		mov	edx, (offset loc_BFFF3+1)
		cmp	ax, 0FFFFh
		jz	short loc_826CD
		movzx	edi, ax
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		mov	[esp+4], edi
		call	_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)
		mov	esi, [ebx+1Ch]
		lea	edx, [edi+edi*2]
		shl	edx, 2
		add	esi, edx
		mov	word ptr [esi+0Ah], 0FFFFh
		movzx	ecx, word ptr [ebx+2Ah]
		mov	[esi+8], cx
		cmp	cx, 0FFFFh
		mov	eax, [ebp+var_1C]
		mov	[ebx+2Ah], ax
		jz	short loc_826F0
		mov	esi, [ebx+1Ch]
		movzx	ecx, cx
		lea	ecx, [ecx+ecx*2]
		lea	ecx, [esi+ecx*4]
		mov	[ecx+0Ah], ax

loc_826C8:				; CODE XREF: CBSPTreeData::NewHandle(int)+A4j
		add	word ptr [ebx+2Eh], 1

loc_826CD:				; CODE XREF: CBSPTreeData::NewHandle(int)+2Ej
		mov	ecx, [ebx+1Ch]
		mov	esi, [ebp+arg_4]
		mov	[ecx+edx], esi
		mov	ecx, [ebx+1Ch]
		mov	word ptr [ecx+edx+4], 0FFFFh
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_826F0:				; CODE XREF: CBSPTreeData::NewHandle(int)+66j
		mov	[ebx+28h], ax
		jmp	short loc_826C8
_ZN12CBSPTreeData9NewHandleEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBSPTreeData::Insert(int, Vector  const&, Vector  const&)
_ZN12CBSPTreeData6InsertEiRK6VectorS2_ proc near
					; DATA XREF: .rodata:`vtable for'CBSPTreeDatao

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN12CBSPTreeData9NewHandleEi ;	CBSPTreeData::NewHandle(int)
		mov	esi, eax
		mov	eax, [ebx+70h]
		add	ebx, 4
		movzx	ecx, si
		mov	edx, [eax]
		mov	[esp+10h], ecx
		mov	ecx, [ebp+arg_C]
		mov	[esp+0Ch], ebx
		mov	[esp], eax
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_8]
		mov	[esp+4], ecx
		call	dword ptr [edx+8]
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CBSPTreeData6InsertEiRK6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IBSPTreeData::~IBSPTreeData()
_ZN12IBSPTreeDataD2Ev proc near		; DATA XREF: .rodata:`vtable for'IBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV12IBSPTreeData+8)
		pop	ebp
		retn
_ZN12IBSPTreeDataD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IBSPTreeData::~IBSPTreeData()
_ZN12IBSPTreeDataD0Ev proc near		; DATA XREF: .rodata:`vtable for'IBSPTreeDatao

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV12IBSPTreeData+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12IBSPTreeDataD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CBSPTreeData::HandleInfo_t, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t, unsigned	short>,	unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv	proc near
					; CODE XREF: CBSPTreeData::Shutdown(void)+11p
					; CBSPTreeData::~CBSPTreeData()+44p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	word ptr [ebx+16h], 0FFFFh
		jz	short loc_827F8
		movzx	edx, word ptr [ebx+0Ch]
		cmp	dx, 0FFFFh
		jz	short loc_827E6
		nop
		lea	esi, [esi+0]

loc_827B0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::RemoveAll(void)+3Bj
		mov	ecx, [ebx]
		movzx	eax, dx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		movzx	ecx, word ptr [eax+0Ah]
		mov	[eax+8], dx
		cmp	cx, 0FFFFh
		jz	short loc_827D0
		mov	edx, ecx
		jmp	short loc_827B0
; ---------------------------------------------------------------------------
		align 10h

loc_827D0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::RemoveAll(void)+37j
		movzx	edx, word ptr [ebx+10h]
		mov	[eax+0Ah], dx
		movzx	eax, word ptr [ebx+0Ch]
		cmp	ax, 0FFFFh
		jz	short loc_827E6
		mov	[ebx+10h], ax

loc_827E6:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::RemoveAll(void)+16j
					; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::RemoveAll(void)+50j
		mov	word ptr [ebx+0Ch], 0FFFFh
		mov	word ptr [ebx+0Eh], 0FFFFh
		mov	word ptr [ebx+12h], 0

loc_827F8:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::RemoveAll(void)+Cj
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<unsigned short, unsigned short, true, unsigned	short, CUtlMemory<UtlLinkedListElem_t<unsigned short, unsigned short>, unsigned	short>>::RemoveAll(void)
_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE9RemoveAllEv proc near
					; CODE XREF: CBSPTreeData::Shutdown(void)+3Cp
					; CBSPTreeData::~CBSPTreeData()+31p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		movzx	esi, word ptr [ebx+16h]
		cmp	si, 0FFFFh
		jz	short loc_82882
		mov	ecx, [ebx+4]
		test	ecx, ecx
		jz	short loc_82870
		xor	edi, edi
		xor	edx, edx
		db	66h
		nop

loc_82820:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+6Ej
		cmp	edx, ecx
		mov	eax, edx
		jnb	short loc_82850
		cmp	si, dx
		jb	short loc_82850
		mov	ecx, [ebx]
		add	ecx, edi
		cmp	[ecx+2], dx
		jz	short loc_82890

loc_82835:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+96j
		mov	[ecx+2], ax
		movzx	esi, word ptr [ebx+10h]
		mov	[ecx+4], si
		movzx	esi, word ptr [ebx+16h]
		mov	[ebx+10h], ax
		lea	esi, [esi+0]

loc_82850:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+24j
					; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+29j	...
		cmp	ax, si
		jz	short loc_82870
		mov	ecx, [ebx+4]
		add	eax, 1
		movzx	eax, ax
		cmp	eax, ecx
		jnb	short loc_82870
		add	edx, 1
		add	edi, 6
		cmp	edx, 0FFFFh
		jnz	short loc_82820

loc_82870:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+18j
					; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+53j	...
		mov	word ptr [ebx+0Ch], 0FFFFh
		mov	word ptr [ebx+0Eh], 0FFFFh
		mov	word ptr [ebx+12h], 0

loc_82882:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+11j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_82890:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::RemoveAll(void)+33j
		cmp	dx, [ecx+4]
		jnz	short loc_82850
		jmp	short loc_82835
_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t, unsigned	short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t, unsigned short>, unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv proc near
					; CODE XREF: CBSPTreeData::Shutdown(void)+67p
					; CBSPTreeData::~CBSPTreeData()+1Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	ecx, [ebp+arg_0]
		push	esi
		push	ebx
		movzx	esi, word ptr [ecx+16h]
		cmp	si, 0FFFFh
		jz	short loc_82922
		mov	ebx, [ecx+4]
		test	ebx, ebx
		jz	short loc_82910
		xor	edi, edi
		xor	edx, edx
		db	66h
		nop

loc_828C0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+67j
		cmp	edx, ebx
		mov	eax, edx
		jnb	short loc_828E9
		cmp	si, dx
		jb	short loc_828E9
		mov	ebx, [ecx]
		add	ebx, edi
		cmp	[ebx+8], dx
		jz	short loc_82930

loc_828D5:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+96j
		mov	[ebx+8], ax
		movzx	esi, word ptr [ecx+10h]
		mov	[ebx+0Ah], si
		movzx	esi, word ptr [ecx+16h]
		mov	[ecx+10h], ax

loc_828E9:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+24j
					; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+29j ...
		cmp	ax, si
		jz	short loc_82910
		mov	ebx, [ecx+4]
		add	eax, 1
		movzx	eax, ax
		cmp	eax, ebx
		jnb	short loc_82910
		add	edx, 1
		add	edi, 0Ch
		cmp	edx, 0FFFFh
		jnz	short loc_828C0
		lea	esi, [esi+0]

loc_82910:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+18j
					; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+4Cj ...
		mov	word ptr [ecx+0Ch], 0FFFFh
		mov	word ptr [ecx+0Eh], 0FFFFh
		mov	word ptr [ecx+12h], 0

loc_82922:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+11j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_82930:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::RemoveAll(void)+33j
		cmp	dx, [ebx+0Ah]
		jnz	short loc_828E9
		jmp	short loc_828D5
_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData12HandleInfo_tEtEtE5PurgeEv proc near
					; CODE XREF: CBSPTreeData::Shutdown(void)+1Cp
					; CBSPTreeData::~CBSPTreeData()+4Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_8296C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_82965
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_82965:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_8296C:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData12HandleInfo_tEtEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<unsigned short, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIttEtE5PurgeEv proc near
					; CODE XREF: CBSPTreeData::Shutdown(void)+47p
					; CBSPTreeData::~CBSPTreeData()+3Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_829AC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_829A5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_829A5:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_829AC:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIttEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t, unsigned	short>,	unsigned short>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData14HandleInLeaf_tEtEtE5PurgeEv proc	near
					; CODE XREF: CBSPTreeData::Shutdown(void)+6Fp
					; CBSPTreeData::~CBSPTreeData()+29p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_829EC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_829E5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_829E5:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_829EC:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData14HandleInLeaf_tEtEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CBSPTreeData::Leaf_t, int>::Purge(void)
_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE5PurgeEv proc near
					; CODE XREF: CBSPTreeData::Shutdown(void)+99p
					; CBSPTreeData::~CBSPTreeData()+5Ep ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_82A2C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_82A25
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_82A25:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_82A2C:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CBSPTreeData::HandleInfo_t, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t, unsigned	short>,	unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt proc near
					; CODE XREF: CBSPTreeData::Remove(ushort)+62p
					; CBSPTreeData::NewHandle(int)+3Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_82AB5
		cmp	cx, [eax+16h]
		ja	short loc_82AB5
		mov	esi, [eax]
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]
		cmp	cx, [edx+8]
		jz	short loc_82AB5
		movzx	ebx, word ptr [edx+8]
		cmp	bx, 0FFFFh
		jz	short loc_82AC8
		movzx	edi, word ptr [edx+0Ah]
		movzx	ebx, bx
		lea	ebx, [ebx+ebx*2]
		mov	[esi+ebx*4+0Ah], di
		movzx	ebx, word ptr [edx+0Ah]
		cmp	bx, 0FFFFh
		jz	short loc_82ADA

loc_82A95:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)+98j
		mov	edi, [eax]
		movzx	ebx, bx
		movzx	esi, word ptr [edx+8]
		lea	ebx, [ebx+ebx*2]
		lea	ebx, [edi+ebx*4]
		mov	[ebx+8], si

loc_82AA8:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)+A2j
		mov	[edx+0Ah], cx
		mov	[edx+8], cx
		sub	word ptr [eax+12h], 1

loc_82AB5:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)+22j	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_82AC8:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)+3Aj
		movzx	ebx, word ptr [edx+0Ah]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+0Ah]
		cmp	bx, 0FFFFh
		jnz	short loc_82A95

loc_82ADA:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::Unlink(ushort)+53j
		movzx	ebx, word ptr [edx+8]
		mov	[eax+0Eh], bx
		jmp	short loc_82AA8
_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<unsigned short, unsigned short, true, unsigned	short, CUtlMemory<UtlLinkedListElem_t<unsigned short, unsigned short>, unsigned	short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE6UnlinkEt proc near
					; CODE XREF: CBSPTreeData::RemoveFromTree(ushort)+55p
					; CBSPTreeData::AddHandleToLeaf(int,ushort)+53p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_82B65
		cmp	cx, [eax+16h]
		ja	short loc_82B65
		mov	esi, [eax]
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*2]
		cmp	cx, [edx+2]
		jz	short loc_82B65
		movzx	ebx, word ptr [edx+2]
		cmp	bx, 0FFFFh
		jz	short loc_82B78
		movzx	edi, word ptr [edx+4]
		movzx	ebx, bx
		lea	ebx, [ebx+ebx*2]
		mov	[esi+ebx*2+4], di
		movzx	ebx, word ptr [edx+4]
		cmp	bx, 0FFFFh
		jz	short loc_82B8A

loc_82B45:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)+98j
		mov	edi, [eax]
		movzx	ebx, bx
		movzx	esi, word ptr [edx+2]
		lea	ebx, [ebx+ebx*2]
		lea	ebx, [edi+ebx*2]
		mov	[ebx+2], si

loc_82B58:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)+A2j
		mov	[edx+4], cx
		mov	[edx+2], cx
		sub	word ptr [eax+12h], 1

loc_82B65:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_82B78:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)+3Aj
		movzx	ebx, word ptr [edx+4]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+4]
		cmp	bx, 0FFFFh
		jnz	short loc_82B45

loc_82B8A:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::Unlink(ushort)+53j
		movzx	ebx, word ptr [edx+2]
		mov	[eax+0Eh], bx
		jmp	short loc_82B58
_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t, unsigned	short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t, unsigned short>, unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt proc near
					; CODE XREF: CBSPTreeData::RemoveFromTree(ushort)+89p
					; CBSPTreeData::AddHandleToLeaf(int,ushort)+10Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_82C15
		cmp	cx, [eax+16h]
		ja	short loc_82C15
		mov	esi, [eax]
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]
		cmp	cx, [edx+8]
		jz	short loc_82C15
		movzx	ebx, word ptr [edx+8]
		cmp	bx, 0FFFFh
		jz	short loc_82C28
		movzx	edi, word ptr [edx+0Ah]
		movzx	ebx, bx
		lea	ebx, [ebx+ebx*2]
		mov	[esi+ebx*4+0Ah], di
		movzx	ebx, word ptr [edx+0Ah]
		cmp	bx, 0FFFFh
		jz	short loc_82C3A

loc_82BF5:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)+98j
		mov	edi, [eax]
		movzx	ebx, bx
		movzx	esi, word ptr [edx+8]
		lea	ebx, [ebx+ebx*2]
		lea	ebx, [edi+ebx*4]
		mov	[ebx+8], si

loc_82C08:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)+A2j
		mov	[edx+0Ah], cx
		mov	[edx+8], cx
		sub	word ptr [eax+12h], 1

loc_82C15:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_82C28:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)+3Aj
		movzx	ebx, word ptr [edx+0Ah]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+0Ah]
		cmp	bx, 0FFFFh
		jnz	short loc_82BF5

loc_82C3A:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::Unlink(ushort)+53j
		movzx	ebx, word ptr [edx+8]
		mov	[eax+0Eh], bx
		jmp	short loc_82C08
_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<unsigned short, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIttEtE4GrowEi proc	near
					; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+E1p
					; CUtlLinkedList<ushort,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_82CD4
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_82CE0
		test	eax, eax
		mov	edx, 6
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_82C86
		lea	esi, [esi+0]

loc_82C80:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_82C80

loc_82C86:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_82CB8
		test	ax, ax
		jz	short loc_82CF8
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_82CD4
		cmp	esi, ecx
		jge	short loc_82CB8
		lea	esi, [esi+0]

loc_82CA0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_82CA0
		lea	esi, [esi+0]

loc_82CB8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+4Bj	...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		add	eax, eax
		test	edx, edx
		jz	short loc_82D08
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_82CD4:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+47j	...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_82CE0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_82C86
; ---------------------------------------------------------------------------
		align 8

loc_82CF8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_82CB8
		jmp	short loc_82CD4
; ---------------------------------------------------------------------------
		align 4

loc_82D08:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)+74j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIttEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<unsigned short, unsigned short, true, unsigned	short, CUtlMemory<UtlLinkedListElem_t<unsigned short, unsigned short>, unsigned	short>>::AllocInternal(bool)
_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE13AllocInternalEb proc near
					; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+22p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_82D90
		mov	edi, [ebx]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*2]
		add	ecx, ecx
		add	edi, ecx
		movzx	esi, word ptr [edi+4]
		mov	[ebx+10h], si

loc_82D54:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+ABj
		test	dl, dl
		jz	short loc_82D78
		mov	word ptr [edi+4], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+2], 0FFFFh

loc_82D67:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_82D78:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+36j
		mov	[edi+4], ax
		mov	edx, [ebx]
		mov	[edx+ecx+2], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_82D90:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_82DD0
		test	ecx, ecx
		jz	short loc_82DF0
		xor	edi, edi
		xor	esi, esi

loc_82DA6:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_82DF0

loc_82DAA:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_82E60
		mov	edi, [ebx]
		movzx	eax, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		lea	ecx, [eax+eax*2]
		mov	eax, esi
		add	ecx, ecx
		add	edi, ecx
		jmp	short loc_82D54
; ---------------------------------------------------------------------------
		align 10h

loc_82DD0:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_82DA6
; ---------------------------------------------------------------------------
		align 10h

loc_82DF0:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIttEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_82E90
		test	ecx, ecx
		jz	short loc_82E30
		xor	edi, edi
		xor	esi, esi

loc_82E28:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_82DAA

loc_82E30:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE13AllocInternalEbE14__executeCount, 9 ;	CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_82D67
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE13AllocInternalEbE14__executeCount, 1 ;	CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_82D67
; ---------------------------------------------------------------------------
		align 10h

loc_82E60:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE13AllocInternalEbE14__executeCount_0, 9	; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_82D67
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE13AllocInternalEbE14__executeCount_0, 1	; CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_82D67
; ---------------------------------------------------------------------------
		align 10h

loc_82E90:				; CODE XREF: CUtlLinkedList<ushort,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<ushort,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_82E28
_ZN14CUtlLinkedListIttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIttEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t, unsigned	short>,	unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData14HandleInLeaf_tEtEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_82F45
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_82F50
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_82EF6
		lea	esi, [esi+0]

loc_82EF0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_82EF0

loc_82EF6:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_82F28
		test	ax, ax
		jz	short loc_82F68
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_82F45
		cmp	esi, ecx
		jge	short loc_82F28
		lea	esi, [esi+0]

loc_82F10:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_82F10
		lea	esi, [esi+0]

loc_82F28:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_82F78
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_82F45:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_82F50:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_82EF6
; ---------------------------------------------------------------------------
		align 8

loc_82F68:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_82F28
		jmp	short loc_82F45
; ---------------------------------------------------------------------------
		align 4

loc_82F78:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)+75j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData14HandleInLeaf_tEtEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t, unsigned	short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t, unsigned short>, unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb proc near
					; CODE XREF: CBSPTreeData::AddHandleToLeaf(int,ushort)+D6p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_83000
		mov	edi, [ebx]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 2
		add	edi, ecx
		movzx	esi, word ptr [edi+0Ah]
		mov	[ebx+10h], si

loc_82FC5:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+ACj
		test	dl, dl
		jz	short loc_82FE8
		mov	word ptr [edi+0Ah], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+8], 0FFFFh

loc_82FD8:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_82FE8:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+37j
		mov	[edi+0Ah], ax
		mov	edx, [ebx]
		mov	[edx+ecx+8], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_83000:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_83040
		test	ecx, ecx
		jz	short loc_83060
		xor	edi, edi
		xor	esi, esi

loc_83016:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_83060

loc_8301A:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_830D0
		mov	edi, [ebx]
		movzx	eax, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		lea	ecx, [eax+eax*2]
		mov	eax, esi
		shl	ecx, 2
		add	edi, ecx
		jmp	short loc_82FC5
; ---------------------------------------------------------------------------
		align 10h

loc_83040:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_83016
; ---------------------------------------------------------------------------
		align 10h

loc_83060:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData14HandleInLeaf_tEtEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_83100
		test	ecx, ecx
		jz	short loc_830A0
		xor	edi, edi
		xor	esi, esi

loc_83098:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_8301A

loc_830A0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_82FD8
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_82FD8
; ---------------------------------------------------------------------------
		align 10h

loc_830D0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_82FD8
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_82FD8
; ---------------------------------------------------------------------------
		align 10h

loc_83100:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInLeaf_t,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInLeaf_t,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_83098
_ZN14CUtlLinkedListIN12CBSPTreeData14HandleInLeaf_tEtLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CBSPTreeData::Leaf_t, int>::Grow(int)
_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE4GrowEi proc near
					; CODE XREF: CUtlVector<CBSPTreeData::Leaf_t,CUtlMemory<CBSPTreeData::Leaf_t,int>>::InsertBefore(int,CBSPTreeData::Leaf_t const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_8317F
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_83190
		test	eax, eax
		mov	edx, 10h
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_83166
		lea	esi, [esi+0]

loc_83160:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_83160

loc_83166:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+2Aj
					; CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		add	eax, eax
		test	edx, edx
		jz	short loc_831C2

loc_83171:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+90j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_8317F:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_83190:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_83166
		lea	esi, [esi+0]

loc_831A8:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_831A8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		add	eax, eax
		test	edx, edx
		jnz	short loc_83171

loc_831C2:				; CODE XREF: CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)+3Fj
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CBSPTreeData::Leaf_t, CUtlMemory<CBSPTreeData::Leaf_t, int>>::InsertBefore(int, CBSPTreeData::Leaf_t const&)
_ZN10CUtlVectorIN12CBSPTreeData6Leaf_tE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_	proc near
					; CODE XREF: CBSPTreeData::Init(ISpatialQuery *)+144p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_83250

loc_831FF:				; CODE XREF: CUtlVector<CBSPTreeData::Leaf_t,CUtlMemory<CBSPTreeData::Leaf_t,int>>::InsertBefore(int,CBSPTreeData::Leaf_t const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, [esi+esi]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_83231
		add	edx, edx
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*2+2]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_83231:				; CODE XREF: CUtlVector<CBSPTreeData::Leaf_t,CUtlMemory<CBSPTreeData::Leaf_t,int>>::InsertBefore(int,CBSPTreeData::Leaf_t const&)+34j
		add	edi, eax
		jz	short loc_8323E
		mov	eax, [ebp+arg_8]
		movzx	eax, word ptr [eax]
		mov	[edi], ax

loc_8323E:				; CODE XREF: CUtlVector<CBSPTreeData::Leaf_t,CUtlMemory<CBSPTreeData::Leaf_t,int>>::InsertBefore(int,CBSPTreeData::Leaf_t const&)+53j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_83250:				; CODE XREF: CUtlVector<CBSPTreeData::Leaf_t,CUtlMemory<CBSPTreeData::Leaf_t,int>>::InsertBefore(int,CBSPTreeData::Leaf_t const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIN12CBSPTreeData6Leaf_tEiE4GrowEi ; CUtlMemory<CBSPTreeData::Leaf_t,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_831FF
_ZN10CUtlVectorIN12CBSPTreeData6Leaf_tE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData12HandleInfo_tEtEtE4GrowEi	proc near
					; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_832F5
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_83300
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_832A6
		lea	esi, [esi+0]

loc_832A0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_832A0

loc_832A6:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_832D8
		test	ax, ax
		jz	short loc_83318
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_832F5
		cmp	esi, ecx
		jge	short loc_832D8
		lea	esi, [esi+0]

loc_832C0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_832C0
		lea	esi, [esi+0]

loc_832D8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_83328
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_832F5:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_83300:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_832A6
; ---------------------------------------------------------------------------
		align 8

loc_83318:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_832D8
		jmp	short loc_832F5
; ---------------------------------------------------------------------------
		align 4

loc_83328:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)+75j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData12HandleInfo_tEtEtE4GrowEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CBSPTreeData::HandleInfo_t, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t, unsigned	short>,	unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb proc near
					; CODE XREF: CBSPTreeData::NewHandle(int)+20p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_833B0
		mov	edi, [ebx]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 2
		add	edi, ecx
		movzx	esi, word ptr [edi+0Ah]
		mov	[ebx+10h], si

loc_83375:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+ACj
		test	dl, dl
		jz	short loc_83398
		mov	word ptr [edi+0Ah], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+8], 0FFFFh

loc_83388:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_83398:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+37j
		mov	[edi+0Ah], ax
		mov	edx, [ebx]
		mov	[edx+ecx+8], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_833B0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_833F0
		test	ecx, ecx
		jz	short loc_83410
		xor	edi, edi
		xor	esi, esi

loc_833C6:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_83410

loc_833CA:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_83480
		mov	edi, [ebx]
		movzx	eax, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		lea	ecx, [eax+eax*2]
		mov	eax, esi
		shl	ecx, 2
		add	edi, ecx
		jmp	short loc_83375
; ---------------------------------------------------------------------------
		align 10h

loc_833F0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_833C6
; ---------------------------------------------------------------------------
		align 10h

loc_83410:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIN12CBSPTreeData12HandleInfo_tEtEtE4GrowEi	; CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_834B0
		test	ecx, ecx
		jz	short loc_83450
		xor	edi, edi
		xor	esi, esi

loc_83448:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_833CA

loc_83450:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_83388
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_83388
; ---------------------------------------------------------------------------
		align 10h

loc_83480:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_83388
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_83388
; ---------------------------------------------------------------------------
		align 10h

loc_834B0:				; CODE XREF: CUtlLinkedList<CBSPTreeData::HandleInfo_t,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CBSPTreeData::HandleInfo_t,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_83448
_ZN14CUtlLinkedListIN12CBSPTreeData12HandleInfo_tEtLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetEdgeNeighbor(int)
_ZN13CCoreDispInfo15GetEdgeNeighborEi proc near
					; DATA XREF: .rodata:`vtable for'CCoreDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		lea	edx, [eax+eax*2]
		mov	eax, [ebp+arg_0]
		pop	ebp
		lea	eax, [eax+edx*4+130h]
		retn
_ZN13CCoreDispInfo15GetEdgeNeighborEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetCornerNeighbors(int)
_ZN13CCoreDispInfo18GetCornerNeighborsEi proc near
					; DATA XREF: .rodata:`vtable for'CCoreDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		lea	edx, [eax+eax*4]
		mov	eax, [ebp+arg_0]
		pop	ebp
		lea	eax, [eax+edx*2+160h]
		retn
_ZN13CCoreDispInfo18GetCornerNeighborsEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetDispUtilsByIndex(int)
_ZN13CCoreDispInfo19GetDispUtilsByIndexEi proc near
					; DATA XREF: .rodata:`vtable for'CCoreDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		cmp	edx, 0FFFFh
		jz	short loc_8353C
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+1D4h]
		mov	eax, [eax+edx*4]

loc_8353C:				; CODE XREF: CCoreDispInfo::GetDispUtilsByIndex(int)+Ej
		pop	ebp
		retn
_ZN13CCoreDispInfo19GetDispUtilsByIndexEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetPowerInfo(void)const
_ZNK13CCoreDispInfo12GetPowerInfoEv proc near
					; DATA XREF: .rodata:`vtable for'CCoreDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0Ch]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_Z12GetPowerInfoi ; GetPowerInfo(int)
_ZNK13CCoreDispInfo12GetPowerInfoEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeLevel(int)
_Z12GetNodeLeveli proc near		; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+12p
					; CCoreDispInfo::CalcNodeInfo(int,int)+15p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jz	short loc_83576
		cmp	edx, 4
		mov	al, 2
		jg	short loc_83580

loc_83576:				; CODE XREF: GetNodeLevel(int)+Dj
					; GetNodeLevel(int)+25j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_83580:				; CODE XREF: GetNodeLevel(int)+14j
		cmp	edx, 14h
		mov	al, 3
		jle	short loc_83576
		xor	eax, eax
		cmp	edx, 54h
		pop	ebp
		setle	al
		lea	eax, [eax+eax*4-1]
		retn
_Z12GetNodeLeveli endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeCount(int)
_Z12GetNodeCounti proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, 55555556h
		mov	ebp, esp
		push	ebx
		mov	ebx, 1
		mov	ecx, [ebp+arg_0]
		add	ecx, ecx
		shl	ebx, cl
		mov	eax, ebx
		sar	ebx, 1Fh
		imul	edx
		sub	edx, ebx
		pop	ebx
		mov	eax, edx
		pop	ebp
		retn
_Z12GetNodeCounti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeParent(int)
_Z13GetNodeParenti proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		sub	eax, 1
		sar	eax, 2
		retn
_Z13GetNodeParenti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeChild(int, int, int)
_Z12GetNodeChildiii proc near

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		pop	ebp
		lea	eax, [eax+edx*4-3]
		retn
_Z12GetNodeChildiii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeMinNodeAtLevel(int)
_Z21GetNodeMinNodeAtLeveli proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 0FFFE7961h
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		sub	edx, 1
		cmp	edx, 3
		ja	short loc_8360A
		mov	eax, dword ptr ds:CSWTCH_184[edx*4]

loc_8360A:				; CODE XREF: GetNodeMinNodeAtLevel(int)+11j
		pop	ebp
		retn
_Z21GetNodeMinNodeAtLeveli endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetComponentsFromNodeIndex(int, int *, int *)
_Z26GetComponentsFromNodeIndexiPiS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	esi, [ebp+arg_8]
		mov	ebx, [ebp+arg_4]
		test	edx, edx
		mov	dword ptr [ebx], 0
		mov	dword ptr [esi], 0
		jz	short loc_8364E
		xor	ecx, ecx

loc_83630:				; CODE XREF: GetComponentsFromNodeIndex(int,int	*,int *)+3Cj
		mov	eax, edx
		and	eax, 1
		shl	eax, cl
		or	[ebx], eax
		mov	eax, edx
		sar	edx, 2
		sar	eax, 1
		and	eax, 1
		shl	eax, cl
		add	ecx, 1
		or	[esi], eax
		test	edx, edx
		jnz	short loc_83630

loc_8364E:				; CODE XREF: GetComponentsFromNodeIndex(int,int	*,int *)+1Cj
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z26GetComponentsFromNodeIndexiPiS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeIndexFromComponents(int, int)
_Z26GetNodeIndexFromComponentsii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		test	ebx, ebx
		jz	short loc_83688
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_83678:				; CODE XREF: GetNodeIndexFromComponents(int,int)+26j
		mov	esi, ebx
		and	esi, 1
		shl	esi, cl
		add	ecx, 2
		or	eax, esi
		sar	ebx, 1
		jnz	short loc_83678

loc_83688:				; CODE XREF: GetNodeIndexFromComponents(int,int)+Fj
		test	edx, edx
		jz	short loc_836A8
		mov	ecx, 1
		lea	esi, [esi+0]

loc_83698:				; CODE XREF: GetNodeIndexFromComponents(int,int)+46j
		mov	ebx, edx
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edx, 1
		jnz	short loc_83698

loc_836A8:				; CODE XREF: GetNodeIndexFromComponents(int,int)+2Aj
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z26GetNodeIndexFromComponentsii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CalcBarycentricCooefs(Vector	const&,	Vector	const&,	Vector	const&,	Vector	const&,	float &, float &, float	&)
_Z21CalcBarycentricCooefsRK6VectorS1_S1_S1_RfS2_S2_ proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+F3p
					; CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+F3p ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 24h
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	edx, [ebp+arg_C]
		fld	dword ptr [ecx]
		fst	[ebp+var_18]
		mov	edi, [ebp+arg_10]
		fld	dword ptr [eax]
		mov	esi, [ebp+arg_14]
		fsub	st(1), st
		fld	dword ptr [ecx+4]
		fst	[ebp+var_1C]
		fld	dword ptr [eax+4]
		fsub	st(1), st
		fld	dword ptr [ecx+8]
		fst	[ebp+var_20]
		fld	dword ptr [eax+8]
		fsub	st(1), st
		fld	dword ptr [ebx]
		fst	[ebp+var_24]
		fsubrp	st(5), st
		fld	dword ptr [ebx+4]
		fst	[ebp+var_28]
		fsubrp	st(3), st
		fld	dword ptr [ebx+8]
		fst	[ebp+var_2C]
		fsubrp	st(1), st
		fld	st
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(3)
		fsubp	st(1), st
		fmul	st, st
		fxch	st(2)
		fmul	st, st(5)
		fxch	st(1)
		fmul	st, st(6)
		fsubp	st(1), st
		fmul	st, st
		fxch	st(5)
		fmulp	st(2), st
		fxch	st(2)
		fmulp	st(3), st
		fsubrp	st(2), st
		fxch	st(1)
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		faddp	st(1), st
		fsqrt
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fldz
		fcomi	st, st(2)
		jz	loc_83888
		fstp	st
		fxch	st(1)
		fdivr	ds:flt_1EBCFC
		fstp	[ebp+var_14]
		fld	dword ptr [edx+4]
		fld	[ebp+var_1C]
		fsub	st, st(1)
		fld	dword ptr [edx+8]
		fld	[ebp+var_2C]
		fsub	st, st(1)
		fld	st
		fmul	st, st(3)
		fxch	st(2)
		fsubr	[ebp+var_20]
		fxch	st(4)
		fsubr	[ebp+var_28]
		fld	st
		fmul	st, st(5)
		fsubp	st(3), st
		fxch	st(2)
		fmul	st, st
		fld	dword ptr [edx]
		fld	[ebp+var_24]
		fsub	st, st(1)
		fmul	st(6), st
		fxch	st(1)
		fsubr	[ebp+var_18]
		fmul	st(3), st
		fxch	st(6)
		fsubrp	st(3), st
		fxch	st(2)
		fmul	st, st
		fxch	st(5)
		fmulp	st(3), st
		fxch	st(3)
		fmulp	st(1), st
		fsubp	st(1), st
		fmul	st, st
		faddp	st(1), st
		faddp	st(1), st
		fsqrt
		fxch	st(1)
		fmul	[ebp+var_14]
		fmulp	st(1), st

loc_837A7:				; CODE XREF: CalcBarycentricCooefs(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,float &,float &,float &)+1E1j
		fstp	dword ptr [edi]
		fld	dword ptr [edx]
		fld	dword ptr [ebx]
		fsub	st, st(1)
		fld	dword ptr [edx+4]
		fld	dword ptr [ebx+4]
		fsub	st, st(1)
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx+8]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	dword ptr [eax]
		fxch	st(3)
		fsubr	dword ptr [eax+4]
		fxch	st(1)
		fsubr	dword ptr [eax+8]
		fld	st
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(7)
		fsubp	st(1), st
		fmul	st, st
		fxch	st(6)
		fmul	st, st(4)
		fxch	st(1)
		fmul	st, st(5)
		fsubp	st(1), st
		fmul	st, st
		fxch	st(4)
		fmulp	st(1), st
		fxch	st(1)
		fmulp	st(2), st
		fsubrp	st(1), st
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fmul	[ebp+var_14]
		fmul	ds:flt_1EBAA4
		fstp	dword ptr [esi]
		fld	dword ptr [edx]
		fld	dword ptr [eax]
		fsub	st, st(1)
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+4]
		fsub	st, st(1)
		fld	dword ptr [edx+8]
		fld	dword ptr [eax+8]
		fsub	st, st(1)
		fxch	st(5)
		mov	eax, [ebp+arg_18]
		fsubr	dword ptr [ecx]
		fxch	st(3)
		fsubr	dword ptr [ecx+4]
		fxch	st(1)
		fsubr	dword ptr [ecx+8]
		fld	st
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(7)
		fsubp	st(1), st
		fmul	st, st
		fxch	st(6)
		fmul	st, st(4)
		fxch	st(1)
		fmul	st, st(5)
		fsubp	st(1), st
		fmul	st, st
		fxch	st(4)
		fmulp	st(1), st
		fxch	st(1)
		fmulp	st(2), st
		fsubrp	st(1), st
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fmul	[ebp+var_14]
		fmul	ds:flt_1EBAA4
		fst	dword ptr [eax]
		fld1
		fsub	dword ptr [edi]
		fsub	dword ptr [esi]
		fsubrp	st(1), st
		fabs
		fld	ds:dbl_1EBD18
		fcomip	st, st(1)
		fstp	st
		setnbe	al
		add	esp, 24h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_83888:				; CODE XREF: CalcBarycentricCooefs(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,float &,float &,float &)+8Bj
		fstp	st(1)
		fstp	st(1)
		fld	st
		fstp	[ebp+var_14]
		jmp	loc_837A7
_Z21CalcBarycentricCooefsRK6VectorS1_S1_S1_RfS2_S2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::Init(void)
_ZN16CCoreDispSurface4InitEv proc near	; CODE XREF: CCoreDispSurface::CCoreDispSurface(void)+4j
					; CCoreDispInfo::CCoreDispInfo(void)+24p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	edx, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		mov	dword ptr [edx], 0FFFFFFFFh
		mov	dword ptr [edx+4], 0

loc_838B7:				; CODE XREF: CCoreDispSurface::Init(void)+97j
		lea	eax, [ebx+ebx*2]
		lea	esi, ds:0[ebx*4]
		shl	eax, 2
		lea	ecx, [edx+eax]
		lea	eax, [edx+eax+30h]
		mov	dword ptr [ecx+10h], 0
		mov	dword ptr [ecx+0Ch], 0
		mov	dword ptr [ecx+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+10h], 0
		lea	eax, [edx+ebx*8+60h]
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+8], 0
		xor	eax, eax

loc_83909:				; CODE XREF: CCoreDispSurface::Init(void)+84j
		lea	ecx, [eax+esi+10h]
		add	eax, 1
		lea	ecx, [edx+ecx*8]
		cmp	eax, 4
		mov	dword ptr [ecx+0Ch], 0
		mov	dword ptr [ecx+8], 0
		jnz	short loc_83909
		mov	dword ptr [edx+ebx*4+108h], 3F800000h
		add	ebx, 1
		cmp	ebx, 4
		jnz	loc_838B7
		mov	dword ptr [edx+198h], 0FFFFFFFFh
		xor	al, al
		mov	dword ptr [edx+1A4h], 0
		mov	dword ptr [edx+1A0h], 0
		mov	dword ptr [edx+19Ch], 0
		mov	dword ptr [edx+188h], 0
		mov	dword ptr [edx+184h], 0
		mov	dword ptr [edx+180h], 0
		mov	dword ptr [edx+194h], 0
		mov	dword ptr [edx+190h], 0
		mov	dword ptr [edx+18Ch], 0

loc_839A3:				; CODE XREF: CCoreDispSurface::Init(void)+129j
		lea	ecx, [eax+eax*2]
		lea	ecx, [edx+ecx*4+120h]
		mov	word ptr [ecx],	0FFFFh
		mov	word ptr [ecx+6], 0FFFFh
		lea	ecx, [eax+eax*4]
		add	eax, 1
		cmp	eax, 4
		mov	byte ptr [edx+ecx*2+158h], 0
		jnz	short loc_839A3
		mov	dword ptr [edx+178h], 0
		mov	dword ptr [edx+17Ch], 0
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN16CCoreDispSurface4InitEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::CCoreDispSurface(void)
_ZN16CCoreDispSurfaceC2Ev proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN16CCoreDispSurface4InitEv ; CCoreDispSurface::Init(void)
_ZN16CCoreDispSurfaceC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::SetNeighborData(CDispNeighbor  const*, CDispCornerNeighbors	 const*)
_ZN16CCoreDispSurface15SetNeighborDataEPK13CDispNeighborPK20CDispCornerNeighbors proc near
					; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+8Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	edx, edx
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		mov	ecx, [ebp+arg_0]
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]

loc_83A13:				; CODE XREF: CCoreDispSurface::SetNeighborData(CDispNeighbor  const*,CDispCornerNeighbors  const*)+5Ej
		mov	edi, [esi+eax]
		mov	[ecx+eax+120h],	edi
		mov	edi, [esi+eax+4]
		mov	[ecx+eax+124h],	edi
		mov	edi, [esi+eax+8]
		mov	[ecx+eax+128h],	edi
		add	eax, 0Ch
		mov	edi, [ebx+edx]
		mov	[ecx+edx+150h],	edi
		mov	edi, [ebx+edx+4]
		mov	[ecx+edx+154h],	edi
		movzx	edi, word ptr [ebx+edx+8]
		mov	[ecx+edx+158h],	di
		add	edx, 0Ah
		cmp	eax, 30h
		jnz	short loc_83A13
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CCoreDispSurface15SetNeighborDataEPK13CDispNeighborPK20CDispCornerNeighbors endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&, Vector  const&)
_ZN16CCoreDispSurface38GeneratePointStartIndexFromMappingAxesERK6VectorS2_ proc	near

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [eax+198h], 0FFFFFFFFh
		jz	short loc_83A90
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_83A90:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+16j
		fld	dword ptr [edx]
		mov	[ebp+var_20], 0
		mov	esi, [eax+4]
		mov	[ebp+var_24], 0
		fld	dword ptr [eax+8]
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+0Ch]
		fld	dword ptr [edx+8]
		cmp	esi, 1
		fld	dword ptr [eax+10h]
		jle	loc_83BD3
		fxch	st(2)
		fmul	st, st(3)
		fxch	st(4)
		mov	ecx, 1
		mov	edx, 1
		fmul	st, st(5)
		faddp	st(4), st
		fmul	st(1), st
		fxch	st(3)
		faddp	st(1), st
		fld	ds:dbl_1EBD20
		jmp	short loc_83AF9
; ---------------------------------------------------------------------------
		align 10h

loc_83AE0:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+AEj
		fstp	st
		mov	[ebp+edx*4+var_20], ecx
		add	edx, 1
		jmp	short loc_83AF2
; ---------------------------------------------------------------------------
		align 10h

loc_83AF0:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+B4j
		fstp	st(2)

loc_83AF2:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+79j
		add	ecx, 1
		cmp	ecx, esi
		jge	short loc_83B48

loc_83AF9:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+6Bj
					; CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+C5j
		lea	ebx, [ecx+ecx*2]
		lea	edi, [eax+ebx*4]
		fld	dword ptr [edi+0Ch]
		fmul	st, st(3)
		fld	dword ptr [edi+8]
		fmul	st, st(6)
		faddp	st(1), st
		fld	dword ptr [edi+10h]
		fmul	st, st(5)
		faddp	st(1), st
		fld	st
		fsub	st, st(3)
		fabs
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		ja	short loc_83AE0
		fxch	st(2)
		fcomi	st, st(2)
		jbe	short loc_83AF0
		fstp	st
		mov	[ebp+var_20], ecx
		add	ecx, 1
		mov	edx, 1
		cmp	ecx, esi
		jl	short loc_83AF9
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_83B52
; ---------------------------------------------------------------------------
		align 8

loc_83B48:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+87j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_83B52:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+D1j
		mov	ecx, [ebp+var_20]
		cmp	edx, 1
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_24], ecx
		lea	ecx, [ecx+ecx*2]
		lea	ebx, [eax+ecx*4]
		fld	dword ptr [esi]
		fld	dword ptr [ebx+8]
		fld	dword ptr [esi+4]
		fld	dword ptr [ebx+0Ch]
		fld	dword ptr [esi+8]
		fld	dword ptr [ebx+10h]
		jz	short loc_83BE8
		fxch	st(2)
		fmul	st, st(3)
		fxch	st(4)
		mov	ecx, 1
		fmul	st, st(5)
		faddp	st(4), st
		fmul	st(1), st
		fxch	st(3)
		faddp	st(1), st

loc_83B8C:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+157j
		mov	ebx, [ebp+ecx*4+var_20]
		lea	esi, [ebx+ebx*2]
		lea	edi, [eax+esi*4]
		fld	dword ptr [edi+0Ch]
		fmul	st, st(2)
		fld	dword ptr [edi+8]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [edi+10h]
		fmul	st, st(4)
		faddp	st(1), st
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_83BC0
		fstp	st
		mov	[ebp+var_24], ebx
		jmp	short loc_83BC2
; ---------------------------------------------------------------------------
		align 10h

loc_83BC0:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+13Dj
		fstp	st(1)

loc_83BC2:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+144j
		add	ecx, 1
		cmp	ecx, edx
		jnz	short loc_83B8C
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_83BF8
; ---------------------------------------------------------------------------

loc_83BD3:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+45j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_83BF8
; ---------------------------------------------------------------------------
		align 8

loc_83BE8:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+105j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_83BF8:				; CODE XREF: CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+161j
					; CCoreDispSurface::GeneratePointStartIndexFromMappingAxes(Vector  const&,Vector  const&)+16Fj
		mov	edx, [ebp+var_24]
		mov	[eax+198h], edx
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CCoreDispSurface38GeneratePointStartIndexFromMappingAxesERK6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::GenerateSurfPointStartIndex(void)
_ZN16CCoreDispSurface27GenerateSurfPointStartIndexEv proc near

var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 47C34F80h
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 14h
		mov	[ebp+var_1C], eax
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], eax
		fld	[ebp+var_1C]
		mov	[ebp+var_14], eax
		xor	eax, eax

loc_83C31:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+7Dj
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		fld	dword ptr [edx+8]
		fxch	st(1)
		lea	ecx, [edx+8]
		fcomip	st, st(1)
		jbe	short loc_83C50
		fstp	[ebp+var_14]
		jmp	short loc_83C52
; ---------------------------------------------------------------------------
		align 10h

loc_83C50:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+31j
		fstp	st

loc_83C52:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+36j
		fld	dword ptr [ecx+4]
		fld	[ebp+var_10]
		fcomip	st, st(1)
		jbe	short loc_83C68
		fstp	[ebp+var_10]
		jmp	short loc_83C6A
; ---------------------------------------------------------------------------
		align 8

loc_83C68:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+4Aj
		fstp	st

loc_83C6A:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+4Fj
		fld	dword ptr [ecx+8]
		fld	[ebp+var_C]
		fcomip	st, st(1)
		jbe	short loc_83C80
		fstp	[ebp+var_C]
		jmp	short loc_83C82
; ---------------------------------------------------------------------------
		align 10h

loc_83C80:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+62j
		fstp	st

loc_83C82:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+67j
		add	eax, 1
		cmp	eax, 4
		jz	short loc_83C90
		fld	[ebp+var_14]
		jmp	short loc_83C31
; ---------------------------------------------------------------------------
		align 10h

loc_83C90:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+78j
		fld	[ebp+var_14]
		mov	eax, 0FFFFFFFFh
		xor	edx, edx
		fld	[ebp+var_10]
		fld	[ebp+var_C]
		fld	ds:flt_1EBD00

loc_83CA6:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+D0j
		lea	ecx, [edx+edx*2]
		lea	ebx, [esi+ecx*4]
		fld	dword ptr [ebx+8]
		fsub	st, st(4)
		fmul	st, st
		fld	dword ptr [ebx+0Ch]
		fsub	st, st(4)
		fmul	st, st
		fld	dword ptr [ebx+10h]
		fsub	st, st(4)
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_83CD8
		fstp	st
		mov	eax, edx
		jmp	short loc_83CDA
; ---------------------------------------------------------------------------
		align 8

loc_83CD8:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+BBj
		fstp	st(1)

loc_83CDA:				; CODE XREF: CCoreDispSurface::GenerateSurfPointStartIndex(void)+C1j
		add	edx, 1
		cmp	edx, 4
		jnz	short loc_83CA6
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	[esi+198h], eax
		add	esp, 14h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN16CCoreDispSurface27GenerateSurfPointStartIndexEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::FindSurfPointStartIndex(void)
_ZN16CCoreDispSurface23FindSurfPointStartIndexEv proc near
					; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+513p
					; _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+373p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	ecx, [ebp+arg_0]
		push	ebx
		mov	eax, [ecx+198h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_83D20
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_83D20:				; CODE XREF: CCoreDispSurface::FindSurfPointStartIndex(void)+11j
		fld	dword ptr [ecx+19Ch]
		xor	edx, edx
		fld	dword ptr [ecx+1A0h]
		fld	dword ptr [ecx+1A4h]
		fld	ds:flt_1EBD00

loc_83D3A:				; CODE XREF: CCoreDispSurface::FindSurfPointStartIndex(void)+78j
		lea	ebx, [edx+edx*2]
		lea	esi, [ecx+ebx*4]
		fld	dword ptr [esi+8]
		fsubr	st, st(4)
		fmul	st, st
		fld	dword ptr [esi+0Ch]
		fsubr	st, st(4)
		fmul	st, st
		fld	dword ptr [esi+10h]
		fsubr	st, st(4)
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_83D70
		fstp	st
		mov	eax, edx
		jmp	short loc_83D72
; ---------------------------------------------------------------------------
		align 10h

loc_83D70:				; CODE XREF: CCoreDispSurface::FindSurfPointStartIndex(void)+5Fj
		fstp	st(1)

loc_83D72:				; CODE XREF: CCoreDispSurface::FindSurfPointStartIndex(void)+65j
		add	edx, 1
		cmp	edx, 4
		jnz	short loc_83D3A
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	[ecx+198h], eax
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN16CCoreDispSurface23FindSurfPointStartIndexEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::AdjustSurfPointData(void)
_ZN16CCoreDispSurface19AdjustSurfPointDataEv proc near
					; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+51Bp
					; _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+37Bp

var_A0		= dword	ptr -0A0h
var_9C		= byte ptr -9Ch
var_6C		= byte ptr -6Ch
var_3C		= byte ptr -3Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 94h
		mov	edx, [ebp+arg_0]

loc_83DA1:				; CODE XREF: CCoreDispSurface::AdjustSurfPointData(void)+77j
		lea	ecx, [eax+eax*2]
		lea	ebx, [ebp+var_9C]
		shl	ecx, 2
		lea	edi, [edx+ecx]
		add	ebx, ecx
		lea	esi, [edi+8]
		mov	edi, [edi+8]
		mov	[ebx], edi
		mov	edi, [esi+4]
		mov	esi, [esi+8]
		mov	[ebx+4], edi
		mov	[ebx+8], esi
		lea	esi, [edx+ecx+30h]
		lea	ebx, [ebp+var_6C]
		add	ebx, ecx
		lea	ecx, [esi+8]
		mov	esi, [esi+8]
		mov	[ebx], esi
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[ebx+4], esi
		mov	[ebx+8], ecx
		lea	ebx, [edx+eax*8+60h]
		mov	esi, [ebx+8]
		lea	ecx, [ebp+eax*8+var_3C]
		mov	ebx, [ebx+0Ch]
		mov	[ecx], esi
		mov	[ecx+4], ebx
		mov	ecx, [edx+eax*4+108h]
		mov	[ebp+eax*4+var_1C], ecx
		add	eax, 1
		cmp	eax, 4
		jnz	short loc_83DA1
		xor	al, al

loc_83E0B:				; CODE XREF: CCoreDispSurface::AdjustSurfPointData(void)+131j
		lea	ecx, [eax+eax*2]
		lea	esi, [edx+eax*8+60h]
		shl	ecx, 2
		mov	[ebp+var_A0], ecx
		mov	edi, ecx
		mov	ecx, [edx+198h]
		add	edi, edx
		add	ecx, eax
		mov	ebx, ecx
		sar	ebx, 1Fh
		shr	ebx, 1Eh
		add	ecx, ebx
		and	ecx, 3
		sub	ecx, ebx
		lea	ecx, [ecx+ecx*2]
		lea	ecx, [ebp+ecx*4+var_9C]
		mov	ebx, [ecx]
		mov	[edi+8], ebx
		mov	ebx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[edi+0Ch], ebx
		mov	[edi+10h], ecx
		mov	ecx, [ebp+var_A0]
		lea	edi, [edx+ecx+30h]
		mov	ecx, [edx+198h]
		add	ecx, eax
		mov	ebx, ecx
		sar	ebx, 1Fh
		shr	ebx, 1Eh
		add	ecx, ebx
		and	ecx, 3
		sub	ecx, ebx
		lea	ecx, [ecx+ecx*2]
		lea	ecx, [ebp+ecx*4+var_6C]
		mov	ebx, [ecx]
		mov	[edi+8], ebx
		mov	ebx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[edi+0Ch], ebx
		mov	[edi+10h], ecx
		mov	ecx, [edx+198h]
		add	ecx, eax
		mov	ebx, ecx
		sar	ebx, 1Fh
		shr	ebx, 1Eh
		add	ecx, ebx
		and	ecx, 3
		sub	ecx, ebx
		lea	ecx, [ebp+ecx*8+var_3C]
		mov	ebx, [ecx]
		mov	ecx, [ecx+4]
		mov	[esi+8], ebx
		mov	[esi+0Ch], ecx
		mov	ecx, [ebp+eax*4+var_1C]
		mov	[edx+eax*4+108h], ecx
		add	eax, 1
		cmp	eax, 4
		jnz	loc_83E0B
		add	esp, 94h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CCoreDispSurface19AdjustSurfPointDataEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::LongestInU(Vector  const&, Vector  const&)
_ZN16CCoreDispSurface10LongestInUERK6VectorS2_ proc near
					; CODE XREF: CCoreDispSurface::CalcLuxelCoords(int,bool,Vector	const&,Vector  const&)+59p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	edx, [ebp+arg_4]
		movss	xmm4, ds:dword_1EBD40
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	st(5)
		fmul	st, st(6)
		fld	st(5)
		fmul	st, st(6)
		fstp	[ebp+var_30]
		fld	st(4)
		fmul	st, st(5)
		fstp	[ebp+var_2C]
		fadd	[ebp+var_30]
		fld	ds:flt_1EBD04
		fadd	st(1), st
		fxch	st(1)
		fadd	[ebp+var_2C]
		fstp	[ebp+var_38]
		mov	eax, [ebp+var_38]
		movd	xmm1, eax
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		movss	[ebp+var_38], xmm0
		fld	[ebp+var_38]
		fmul	st(7), st
		fmul	st(6), st
		fxch	st(6)
		fstp	[ebp+var_2C]
		fxch	st(5)
		fmulp	st(4), st
		fxch	st(3)
		fstp	[ebp+var_30]
		fld	st(1)
		fmul	st, st(2)
		fld	st(1)
		fmul	st, st(2)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		faddp	st(5), st
		faddp	st(4), st
		fxch	st(3)
		fstp	[ebp+var_38]
		mov	eax, [ebp+var_38]
		movd	xmm3, eax
		xor	eax, eax
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_38], xmm0
		fld	[ebp+var_38]
		fmul	st(1), st
		fmul	st(3), st
		fmulp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_34]

loc_83FCD:				; CODE XREF: CCoreDispSurface::LongestInU(Vector  const&,Vector	 const&)+12Bj
		lea	edx, [eax+eax*2]
		lea	ecx, [ebx+edx*4]
		fld	dword ptr [ecx+8]
		fld	dword ptr [ecx+0Ch]
		fld	dword ptr [ecx+10h]
		fld	[ebp+var_2C]
		fmul	st, st(2)
		fld	st(6)
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_30]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+eax*4+var_28]
		fxch	st(1)
		fmul	st, st(4)
		fxch	st(2)
		fmul	st, st(3)
		faddp	st(2), st
		fmul	[ebp+var_34]
		faddp	st(1), st
		fstp	[ebp+eax*4+var_18]
		add	eax, 1
		cmp	eax, 4
		jnz	short loc_83FCD
		fstp	st
		fstp	st
		fstp	st
		fldz
		xor	al, al
		fld	st

loc_84019:				; CODE XREF: CCoreDispSurface::LongestInU(Vector  const&,Vector	 const&)+168j
		add	eax, 1
		mov	edx, eax
		and	edx, 3
		fld	[ebp+edx*4+var_28]
		fsub	[ebp+eax*4+var_2C]
		fabs
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fld	[ebp+edx*4+var_18]
		fsub	[ebp+eax*4+var_1C]
		fabs
		fxch	st(2)
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		cmp	eax, 4
		jnz	short loc_84019
		fcomip	st, st(1)
		fstp	st
		setnb	al
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_ZN16CCoreDispSurface10LongestInUERK6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispSurface::CalcLuxelCoords(int, bool, Vector  const&, Vector  const&)
_ZN16CCoreDispSurface15CalcLuxelCoordsEibRK6VectorS2_ proc near

var_50		= dword	ptr -50h
var_49		= byte ptr -49h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	byte ptr [ebp+var_20], 0
		fild	[ebp+arg_4]
		fstp	[ebp+var_2C]
		mov	ebx, [ebp+arg_0]
		fldz
		movzx	eax, [ebp+arg_8]
		fld	[ebp+var_2C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jnb	loc_842B8
		test	al, al
		jnz	loc_842C8
		mov	[ebp+var_24], 2
		mov	edi, 1
		xor	esi, esi
		mov	[ebp+var_28], 3

loc_840A8:				; CODE XREF: CCoreDispSurface::CalcLuxelCoords(int,bool,Vector	const&,Vector  const&)+2BAj
		mov	eax, [ebp+arg_10]
		mov	[esp], ebx
		mov	[esp+8], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+4], eax
		call	_ZN16CCoreDispSurface10LongestInUERK6VectorS2_ ; CCoreDispSurface::LongestInU(Vector  const&,Vector  const&)
		mov	edx, [ebp+var_28]
		mov	[ebp+var_49], al
		lea	eax, [esi+esi*2]
		lea	ecx, [ebx+eax*4]
		lea	eax, [ecx+8]
		mov	[ebp+var_20], eax
		lea	eax, [edx+edx*2]
		lea	edx, [ebx+eax*4]
		fld	dword ptr [edx+8]
		lea	eax, [edx+8]
		fstp	[ebp+var_30]
		fld	dword ptr [ecx+8]
		fld	dword ptr [edx+0Ch]
		mov	edx, [ebp+var_20]
		fstp	[ebp+var_34]
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+8]
		lea	eax, [edi+edi*2]
		fst	[ebp+var_38]
		lea	ecx, [ebx+eax*4]
		fld	dword ptr [edx+8]
		lea	eax, [ecx+8]
		fstp	[ebp+var_3C]
		mov	edx, [ebp+var_24]
		fld	[ebp+var_30]
		mov	[ebp+var_20], eax
		fsub	st, st(3)
		lea	eax, [edx+edx*2]
		fmul	st, st
		lea	edx, [ebx+eax*4]
		lea	eax, [edx+8]
		fld	[ebp+var_34]
		fsub	st, st(3)
		fmul	st, st
		fxch	st(2)
		fsub	[ebp+var_3C]
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		faddp	st(1), st
		fsqrt
		fld	dword ptr [edx+8]
		fstp	[ebp+var_40]
		fld	dword ptr [ecx+8]
		fld	dword ptr [edx+0Ch]
		mov	edx, [ebp+var_20]
		fstp	[ebp+var_44]
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+8]
		fstp	[ebp+var_48]
		fld	dword ptr [edx+8]
		fstp	[ebp+var_20]
		fld	[ebp+var_40]
		fsub	st, st(2)
		fmul	st, st
		fld	[ebp+var_44]
		fsub	st, st(2)
		fmul	st, st
		fld	[ebp+var_48]
		fsub	[ebp+var_20]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(5)
		fsubp	st(2), st
		fxch	st(1)
		fmul	st, st
		fxch	st(3)
		fsubp	st(1), st
		fmul	st, st
		fld	[ebp+var_20]
		fsub	[ebp+var_3C]
		fmul	st, st
		fxch	st(1)
		faddp	st(3), st
		faddp	st(2), st
		fxch	st(1)
		fsqrt
		fld	[ebp+var_40]
		fsub	[ebp+var_30]
		fmul	st, st
		fld	[ebp+var_44]
		fsub	[ebp+var_34]
		fmul	st, st
		fld	[ebp+var_48]
		fsub	[ebp+var_38]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fld	[ebp+var_2C]
		fdivr	ds:flt_1EBCFC
		fxch	st(4)
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		fxch	st(2)
		fmul	st, st(3)
		fstp	[ebp+var_50]
		cvttss2si eax, [ebp+var_50]
		add	eax, 1
		mov	[ebp+var_1C], eax
		fild	[ebp+var_1C]
		fld	ds:flt_1EBD08
		fcomi	st, st(1)
		fxch	st(1)
		fcmovb	st, st(1)
		fxch	st(3)
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		fxch	st(1)
		fmulp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_50]
		cvttss2si eax, [ebp+var_50]
		add	eax, 1
		mov	[ebp+var_1C], eax
		fild	[ebp+var_1C]
		fxch	st(2)
		fcomi	st, st(2)
		fcmovnb	st, st(2)
		fstp	st(2)
		fcomi	st, st(1)
		setnbe	byte ptr [ebp+var_20]
		cmp	[ebp+var_49], 0
		jz	short loc_8421D
		fxch	st(1)
		fcomi	st, st(1)
		fxch	st(1)
		setnbe	byte ptr [ebp+var_20]

loc_8421D:				; CODE XREF: CCoreDispSurface::CalcLuxelCoords(int,bool,Vector	const&,Vector  const&)+1B1j
		fst	[ebp+var_50]
		fxch	st(1)
		xor	edx, edx
		cvttss2si eax, [ebp+var_50]
		mov	[ebp+var_2C], esi
		mov	[ebx+118h], eax
		fst	[ebp+var_50]
		fld	ds:flt_1EBAA4
		fadd	st(1), st
		cvttss2si eax, [ebp+var_50]
		faddp	st(2), st
		mov	[ebx+11Ch], eax
		jmp	short loc_84252
; ---------------------------------------------------------------------------
		align 10h

loc_84250:				; CODE XREF: CCoreDispSurface::CalcLuxelCoords(int,bool,Vector	const&,Vector  const&)+252j
		fxch	st(1)

loc_84252:				; CODE XREF: CCoreDispSurface::CalcLuxelCoords(int,bool,Vector	const&,Vector  const&)+1EAj
		mov	esi, [ebp+var_2C]
		lea	eax, ds:0[edx*4]
		add	edx, 1
		cmp	edx, 4
		lea	ecx, [esi+eax+10h]
		mov	esi, [ebp+var_24]
		lea	ecx, [ebx+ecx*8]
		mov	dword ptr [ecx+8], 3F000000h
		mov	dword ptr [ecx+0Ch], 3F000000h
		lea	ecx, [edi+eax+10h]
		lea	ecx, [ebx+ecx*8]
		fst	dword ptr [ecx+0Ch]
		fxch	st(1)
		mov	dword ptr [ecx+8], 3F000000h
		lea	ecx, [esi+eax+10h]
		lea	ecx, [ebx+ecx*8]
		fst	dword ptr [ecx+8]
		fxch	st(1)
		fst	dword ptr [ecx+0Ch]
		fxch	st(1)
		mov	ecx, [ebp+var_28]
		lea	eax, [ecx+eax+10h]
		lea	eax, [ebx+eax*8]
		fst	dword ptr [eax+8]
		mov	dword ptr [eax+0Ch], 3F000000h
		jnz	short loc_84250
		fstp	st
		fstp	st

loc_842B8:				; CODE XREF: CCoreDispSurface::CalcLuxelCoords(int,bool,Vector	const&,Vector  const&)+25j
		movzx	eax, byte ptr [ebp+var_20]
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_842C8:				; CODE XREF: CCoreDispSurface::CalcLuxelCoords(int,bool,Vector	const&,Vector  const&)+2Dj
		mov	eax, [ebx+198h]
		lea	ecx, [eax+3]
		mov	edx, eax
		lea	edi, [eax+1]
		sar	edx, 1Fh
		shr	edx, 1Eh
		lea	esi, [eax+edx]
		add	eax, 2
		and	esi, 3
		sub	esi, edx
		mov	edx, ecx
		sar	edx, 1Fh
		shr	edx, 1Eh
		add	ecx, edx
		and	ecx, 3
		sub	ecx, edx
		mov	edx, edi
		sar	edx, 1Fh
		mov	[ebp+var_28], ecx
		shr	edx, 1Eh
		add	edi, edx
		and	edi, 3
		sub	edi, edx
		mov	edx, eax
		sar	edx, 1Fh
		shr	edx, 1Eh
		add	eax, edx
		and	eax, 3
		sub	eax, edx
		mov	[ebp+var_24], eax
		jmp	loc_840A8
_ZN16CCoreDispSurface15CalcLuxelCoordsEibRK6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispNode::Init(void)
_ZN13CCoreDispNode4InitEv proc near	; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+246p

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	esi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	dword ptr [edx+8], 0
		mov	ebx, edx
		mov	dword ptr [edx+4], 0
		mov	dword ptr [edx], 0
		mov	dword ptr [edx+14h], 0
		mov	dword ptr [edx+10h], 0
		mov	dword ptr [edx+0Ch], 0
		mov	dword ptr [edx+18h], 0
		mov	dword ptr [edx+1Ch], 0FFFFFFFFh
		mov	dword ptr [edx+20h], 0FFFFFFFFh
		mov	dword ptr [edx+24h], 0FFFFFFFFh
		mov	dword ptr [edx+28h], 0FFFFFFFFh
		mov	dword ptr [edx+2Ch], 0FFFFFFFFh
		nop

loc_84380:				; CODE XREF: CCoreDispNode::Init(void)+C7j
		lea	esi, [eax+eax*2]
		shl	esi, 3
		lea	ecx, [edx+esi+40h]
		mov	dword ptr [ecx+8], 0
		mov	dword ptr [ecx+4], 0
		mov	dword ptr [ecx], 0
		lea	ecx, [edx+esi+4Ch]
		mov	dword ptr [ecx+8], 0
		mov	dword ptr [ecx+4], 0
		mov	dword ptr [ecx], 0
		lea	ecx, [eax+eax*4]
		add	eax, 1
		lea	ecx, [edx+ecx*4+100h]
		mov	dword ptr [ecx+8], 0
		mov	dword ptr [ecx+4], 0
		mov	dword ptr [ecx], 0
		mov	dword ptr [ebx+10Ch], 0
		add	ebx, 14h
		cmp	eax, 8
		jnz	short loc_84380
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN13CCoreDispNode4InitEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetDispNodeTriVerts(CCoreDispInfo *, int, int, Vector	&, Vector &, Vector &)
_Z19GetDispNodeTriVertsP13CCoreDispInfoiiR6VectorS2_S2_	proc near

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_10]
		shl	eax, 9
		mov	esi, [ebp+arg_C]
		add	eax, [edx+4]
		cmp	edi, 7		; switch 8 cases
		mov	ecx, [ebp+arg_14]
		ja	short loc_84497	; jumptable 0008441C default case
		jmp	ds:off_1EBC44[edi*4] ; switch jump
; ---------------------------------------------------------------------------
		align 8

loc_84428:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+1Ch]	; jumptable 0008441C case 6
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+24h]

loc_8445A:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+262j
		lea	esi, [esi+esi*8]
		shl	esi, 4
		add	esi, [edx+1B8h]
		mov	edi, [esi+28h]
		mov	[ebx], edi
		mov	edi, [esi+2Ch]
		mov	[ebx+4], edi
		mov	esi, [esi+30h]
		mov	[ebx+8], esi
		mov	eax, [eax+28h]

loc_8447A:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+10Aj
					; GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector &,Vector &,Vector &)+162j	...
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [edx+1B8h]
		mov	edx, [eax+28h]
		mov	[ecx], edx
		mov	edx, [eax+2Ch]
		mov	[ecx+4], edx
		mov	eax, [eax+30h]
		mov	[ecx+8], eax

loc_84497:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Aj
		mov	ebx, [ebp+var_C] ; jumptable 0008441C default case
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_844A8:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+28h]	; jumptable 0008441C case 7
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+24h]
		lea	esi, [esi+esi*8]
		shl	esi, 4
		add	esi, [edx+1B8h]
		mov	edi, [esi+28h]
		mov	[ebx], edi
		mov	edi, [esi+2Ch]
		mov	[ebx+4], edi
		mov	esi, [esi+30h]
		mov	[ebx+8], esi
		mov	eax, [eax+3Ch]
		jmp	loc_8447A
; ---------------------------------------------------------------------------
		align 10h

loc_84500:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+30h]	; jumptable 0008441C case 0
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+20h]
		lea	esi, [esi+esi*8]
		shl	esi, 4
		add	esi, [edx+1B8h]
		mov	edi, [esi+28h]
		mov	[ebx], edi
		mov	edi, [esi+2Ch]
		mov	[ebx+4], edi
		mov	esi, [esi+30h]
		mov	[ebx+8], esi
		mov	eax, [eax+2Ch]
		jmp	loc_8447A
; ---------------------------------------------------------------------------
		align 10h

loc_84560:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+2Ch]	; jumptable 0008441C case 1
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+20h]

loc_84592:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2A2j
		lea	esi, [esi+esi*8]
		shl	esi, 4
		add	esi, [edx+1B8h]
		mov	edi, [esi+28h]
		mov	[ebx], edi
		mov	edi, [esi+2Ch]
		mov	[ebx+4], edi
		mov	esi, [esi+30h]
		mov	[ebx+8], esi
		mov	eax, [eax+1Ch]
		jmp	loc_8447A
; ---------------------------------------------------------------------------
		align 10h

loc_845C0:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+2Ch]	; jumptable 0008441C case 2
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+1Ch]
		lea	esi, [esi+esi*8]
		shl	esi, 4
		add	esi, [edx+1B8h]
		mov	edi, [esi+28h]
		mov	[ebx], edi
		mov	edi, [esi+2Ch]
		mov	[ebx+4], edi
		mov	esi, [esi+30h]
		mov	[ebx+8], esi
		mov	eax, [eax+34h]
		jmp	loc_8447A
; ---------------------------------------------------------------------------
		align 10h

loc_84620:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+34h]	; jumptable 0008441C case 3
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+1Ch]
		jmp	loc_8445A
; ---------------------------------------------------------------------------
		align 10h

loc_84660:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+20h]	; jumptable 0008441C case 4
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+38h]
		jmp	loc_84592
; ---------------------------------------------------------------------------
		align 10h

loc_846A0:				; CODE XREF: GetDispNodeTriVerts(CCoreDispInfo *,int,int,Vector	&,Vector &,Vector &)+2Cj
					; DATA XREF: .rodata:off_1EBC44o
		mov	edi, [eax+1Ch]	; jumptable 0008441C case 5
		lea	edi, [edi+edi*8]
		shl	edi, 4
		mov	[ebp+var_10], edi
		mov	edi, [edx+1B8h]
		add	[ebp+var_10], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+28h]
		mov	[esi], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+2Ch]
		mov	[esi+4], edi
		mov	edi, [ebp+var_10]
		mov	edi, [edi+30h]
		mov	[esi+8], edi
		mov	esi, [eax+38h]
		lea	esi, [esi+esi*8]
		shl	esi, 4
		add	esi, [edx+1B8h]
		mov	edi, [esi+28h]
		mov	[ebx], edi
		mov	edi, [esi+2Ch]
		mov	[ebx+4], edi
		mov	esi, [esi+30h]
		mov	[ebx+8], esi
		mov	eax, [eax+24h]
		jmp	loc_8447A
_Z19GetDispNodeTriVertsP13CCoreDispInfoiiR6VectorS2_S2_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CCoreDispInfo(void)
_ZN13CCoreDispInfoC2Ev proc near	; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+3C3p
					; DispInfo_LoadDisplacements(model_t *,bool)+209p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		lea	esi, [ebx+10h]
		mov	dword ptr [ebx], (offset _ZTV13CCoreDispInfo+8)
		lea	edi, [ebx+1DCh]
		mov	[esp], esi
		call	_ZN16CCoreDispSurface4InitEv ; CCoreDispSurface::Init(void)
		test	edi, 1
		mov	edx, 28h
		jnz	loc_847F0
		test	edi, 2
		jnz	loc_84810

loc_84746:				; CODE XREF: CCoreDispInfo::CCoreDispInfo(void)+105j
					; CCoreDispInfo::CCoreDispInfo(void)+11Bj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_8475C
		mov	word ptr [edi],	0
		add	edi, 2

loc_8475C:				; CODE XREF: CCoreDispInfo::CCoreDispInfo(void)+52j
		and	edx, 1
		jz	short loc_84764
		mov	byte ptr [edi],	0

loc_84764:				; CODE XREF: CCoreDispInfo::CCoreDispInfo(void)+5Fj
		mov	dword ptr [ebx+1B8h], 0
		mov	dword ptr [ebx+1C4h], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+1BCh], 0
		mov	[esp], esi
		call	_ZN16CCoreDispSurface4InitEv ; CCoreDispSurface::Init(void)
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+1C0h], 0
		mov	dword ptr [ebx+1C8h], 0
		mov	byte ptr [ebx+1CCh], 0
		mov	dword ptr [ebx+1D0h], 0
		mov	dword ptr [ebx+1D4h], 0
		mov	dword ptr [ebx+1D8h], 0
		mov	dword ptr [ebx+204h], 0FFFFFFFFh
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_847F0:				; CODE XREF: CCoreDispInfo::CCoreDispInfo(void)+34j
		lea	edi, [ebx+1DDh]
		mov	byte ptr [ebx+1DCh], 0
		mov	dl, 27h
		test	edi, 2
		jz	loc_84746
		nop
		lea	esi, [esi+0]

loc_84810:				; CODE XREF: CCoreDispInfo::CCoreDispInfo(void)+40j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_84746
_ZN13CCoreDispInfoC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::~CCoreDispInfo()
_ZN13CCoreDispInfoD2Ev proc near	; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+549p
					; CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+7B9p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+1B8h]
		mov	dword ptr [ebx], (offset _ZTV13CCoreDispInfo+8)
		test	eax, eax
		jz	short loc_84842
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_84842:				; CODE XREF: CCoreDispInfo::~CCoreDispInfo()+18j
		mov	eax, [ebx+1C4h]
		test	eax, eax
		jz	short loc_84854
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_84854:				; CODE XREF: CCoreDispInfo::~CCoreDispInfo()+2Aj
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_84863
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_84863:				; CODE XREF: CCoreDispInfo::~CCoreDispInfo()+39j
		mov	eax, [ebx+1BCh]
		test	eax, eax
		jz	short loc_84880
		mov	[ebp+arg_0], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdaPv		; operator delete[](void *)
; ---------------------------------------------------------------------------
		align 10h

loc_84880:				; CODE XREF: CCoreDispInfo::~CCoreDispInfo()+4Bj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN13CCoreDispInfoD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::SetDispUtilsHelperInfo(CCoreDispInfo**, int)
_ZN13CCoreDispInfo22SetDispUtilsHelperInfoEPPS_i proc near
					; CODE XREF: SmoothDispSurfNormals(CCoreDispInfo **,int)+29p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	[eax+1D4h], edx
		mov	edx, [ebp+arg_8]
		mov	[eax+1D8h], edx
		pop	ebp
		retn
_ZN13CCoreDispInfo22SetDispUtilsHelperInfoEPPS_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::BuildTriTLtoBR(int)
_ZN13CCoreDispInfo14BuildTriTLtoBREi proc near
					; CODE XREF: CCoreDispInfo::GenerateCollisionSurface(void)+71p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	edx, 1
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [eax+1C0h]
		mov	esi, [eax+1C4h]
		mov	ecx, [eax+0Ch]
		mov	[esi+edi*2], bx
		mov	esi, [eax+1C0h]
		shl	edx, cl
		mov	ecx, ebx
		mov	ebx, [eax+1C4h]
		lea	edx, [ecx+edx+1]
		mov	[ebx+esi*2+2], dx
		lea	ebx, [ecx+1]
		mov	esi, [eax+1C0h]
		mov	ecx, [eax+1C4h]
		mov	[ecx+esi*2+4], bx
		mov	ecx, [eax+1C0h]
		mov	esi, [eax+1C4h]
		add	ecx, 3
		mov	[eax+1C0h], ecx
		mov	[esi+ecx*2], bx
		mov	ebx, [eax+1C0h]
		mov	ecx, [eax+1C4h]
		mov	[ecx+ebx*2+2], dx
		add	edx, 1
		mov	ebx, [eax+1C0h]
		mov	ecx, [eax+1C4h]
		mov	[ecx+ebx*2+4], dx
		add	dword ptr [eax+1C0h], 3
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo14BuildTriTLtoBREi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::BuildTriBLtoTR(int)
_ZN13CCoreDispInfo14BuildTriBLtoTREi proc near
					; CODE XREF: CCoreDispInfo::GenerateCollisionSurface(void):loc_84A58p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, 1
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [eax+1C0h]
		mov	esi, [eax+1C4h]
		mov	ecx, [eax+0Ch]
		mov	[esi+edi*2], dx
		mov	edi, [eax+1C0h]
		shl	ebx, cl
		mov	ecx, edx
		mov	esi, [eax+1C4h]
		lea	ebx, [ecx+ebx+1]
		add	ecx, 1
		mov	[esi+edi*2+2], bx
		add	ebx, 1
		mov	edi, [eax+1C0h]
		mov	esi, [eax+1C4h]
		mov	[esi+edi*2+4], bx
		mov	esi, [eax+1C0h]
		mov	edi, [eax+1C4h]
		add	esi, 3
		mov	[eax+1C0h], esi
		mov	[edi+esi*2], dx
		mov	esi, [eax+1C0h]
		mov	edx, [eax+1C4h]
		mov	[edx+esi*2+2], bx
		mov	ebx, [eax+1C0h]
		mov	edx, [eax+1C4h]
		mov	[edx+ebx*2+4], cx
		add	dword ptr [eax+1C0h], 3
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo14BuildTriBLtoTREi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GenerateCollisionSurface(void)
_ZN13CCoreDispInfo24GenerateCollisionSurfaceEv proc near
					; CODE XREF: CCoreDispInfo::GenerateCollisionData(void)+4j
					; CCoreDispInfo::CreateWithoutLOD(void)+79p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 14h
		mov	[ebp+var_10], 1
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+1C0h], 0
		mov	ecx, [ebx+0Ch]
		shl	[ebp+var_10], cl
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_10]
		test	eax, eax
		jle	short loc_84A9D
		xor	edi, edi
		mov	[ebp+var_14], 0
		lea	esi, [esi+0]

loc_84A50:				; CODE XREF: CCoreDispInfo::GenerateCollisionSurface(void)+8Bj
		xor	esi, esi
		jmp	short loc_84A65
; ---------------------------------------------------------------------------
		align 8

loc_84A58:				; CODE XREF: CCoreDispInfo::GenerateCollisionSurface(void)+6Fj
		call	_ZN13CCoreDispInfo14BuildTriBLtoTREi ; CCoreDispInfo::BuildTriBLtoTR(int)
		add	esi, 1
		cmp	esi, [ebp+var_10]
		jz	short loc_84A8E

loc_84A65:				; CODE XREF: CCoreDispInfo::GenerateCollisionSurface(void)+42j
					; CCoreDispInfo::GenerateCollisionSurface(void)+7Cj
		lea	edx, [edi+esi]
		mov	[esp], ebx
		mov	ecx, edx
		mov	[esp+4], edx
		shr	ecx, 1Fh
		lea	eax, [edx+ecx]
		and	eax, 1
		sub	eax, ecx
		cmp	eax, 1
		jnz	short loc_84A58
		call	_ZN13CCoreDispInfo14BuildTriTLtoBREi ; CCoreDispInfo::BuildTriTLtoBR(int)
		add	esi, 1
		cmp	esi, [ebp+var_10]
		jnz	short loc_84A65

loc_84A8E:				; CODE XREF: CCoreDispInfo::GenerateCollisionSurface(void)+53j
		add	[ebp+var_14], 1
		mov	eax, [ebp+var_10]
		add	edi, [ebp+var_18]
		cmp	[ebp+var_14], eax
		jnz	short loc_84A50

loc_84A9D:				; CODE XREF: CCoreDispInfo::GenerateCollisionSurface(void)+31j
		add	esp, 14h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo24GenerateCollisionSurfaceEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GenerateCollisionData(void)
_ZN13CCoreDispInfo21GenerateCollisionDataEv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN13CCoreDispInfo24GenerateCollisionSurfaceEv ; CCoreDispInfo::GenerateCollisionSurface(void)
_ZN13CCoreDispInfo21GenerateCollisionDataEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcTriSurfPlanes(int,	int (*)[3])
_ZN13CCoreDispInfo17CalcTriSurfPlanesEiPA3_i proc near
					; CODE XREF: CCoreDispInfo::CalcTriSurfInfoAtNode(int)+56p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		movss	xmm3, ds:dword_1EBD30
		movss	xmm4, ds:dword_1EBD40
		shl	[ebp+arg_4], 9
		mov	edx, [ebp+arg_8]
		lea	esi, [esi+0]

loc_84AE8:				; CODE XREF: CCoreDispInfo::CalcTriSurfPlanes(int,int (*)[3])+131j
		mov	ecx, [edx]
		mov	edi, [esi+1B8h]
		mov	ebx, [edx+8]
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		lea	ebx, [ebx+ebx*8]
		add	ecx, edi
		fld	dword ptr [ecx+28h]
		shl	ebx, 4
		fld	dword ptr [ecx+2Ch]
		add	ebx, edi
		fld	dword ptr [ecx+30h]
		mov	ecx, [edx+4]
		fst	[ebp+var_1C]
		add	edx, 0Ch
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		add	ecx, edi
		mov	edi, [ebp+arg_4]
		fld	dword ptr [ecx+28h]
		fsub	st, st(3)
		fstp	[ebp+var_20]
		fld	dword ptr [ecx+2Ch]
		fsub	st, st(2)
		fxch	st(1)
		fsubr	dword ptr [ecx+30h]
		fld	dword ptr [ebx+28h]
		fsub	st, st(4)
		fld	dword ptr [ebx+2Ch]
		fsub	st, st(4)
		fstp	[ebp+var_24]
		fld	[ebp+var_1C]
		fsubr	dword ptr [ebx+30h]
		lea	ebx, [eax+eax*4]
		add	eax, 1
		shl	ebx, 2
		fld	[ebp+var_24]
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(5)
		fsubp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_20]
		fxch	st(3)
		fmul	st, st(2)
		fsubp	st(3), st
		fxch	st(1)
		fmulp	st(3), st
		fld	[ebp+var_24]
		fmul	[ebp+var_20]
		fsubp	st(3), st
		fld	st
		fmul	st, st(1)
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_28]
		mov	ecx, [ebp+var_28]
		movd	xmm2, ecx
		movaps	xmm0, xmm2
		rsqrtss	xmm0, xmm2
		movaps	xmm1, xmm0
		mulss	xmm1, xmm0
		mulss	xmm1, xmm2
		movaps	xmm2, xmm3
		subss	xmm2, xmm1
		movaps	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_28], xmm0
		fld	[ebp+var_28]
		fmul	st(1), st
		add	edi, [esi+4]
		cmp	eax, 8
		lea	ecx, [edi+ebx+100h]
		fmul	st(2), st
		fmulp	st(3), st
		fst	dword ptr [ecx]
		fxch	st(1)
		fst	dword ptr [ecx+4]
		fxch	st(2)
		fst	dword ptr [ecx+8]
		fxch	st(3)
		fmulp	st(2), st
		fmulp	st(3), st
		faddp	st(2), st
		fmul	[ebp+var_1C]
		faddp	st(1), st
		fstp	dword ptr [edi+ebx+10Ch]
		jnz	loc_84AE8
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo17CalcTriSurfPlanesEiPA3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcRayBoundingBoxes(int, int (*)[3])
_ZN13CCoreDispInfo20CalcRayBoundingBoxesEiPA3_i	proc near
					; CODE XREF: CCoreDispInfo::CalcTriSurfInfoAtNode(int)+46p

var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 1Ch
		shl	[ebp+arg_4], 9
		mov	ebx, [ebp+arg_8]

loc_84C12:				; CODE XREF: CCoreDispInfo::CalcRayBoundingBoxes(int,int (*)[3])+158j
		mov	eax, [ebp+arg_0]
		lea	edi, [ebx+0Ch]
		mov	ecx, [eax+1B8h]
		mov	eax, [ebx]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, ecx
		fld	dword ptr [eax+28h]
		fld	dword ptr [eax+2Ch]
		fld	dword ptr [eax+30h]
		fxch	st(2)
		xor	eax, eax
		fst	[ebp+var_20]
		fxch	st(1)
		fst	[ebp+var_1C]
		fst	[ebp+var_18]
		fxch	st(2)
		fst	[ebp+var_10]
		fst	[ebp+var_14]
		fxch	st(1)
		fst	[ebp+var_28]

loc_84C4D:				; CODE XREF: CCoreDispInfo::CalcRayBoundingBoxes(int,int (*)[3])+101j
		mov	edx, [edi+eax*4]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, ecx
		fld	dword ptr [edx+28h]
		fxch	st(1)
		fcomi	st, st(1)
		fld	st
		fcmovnb	st, st(2)
		fld	[ebp+var_28]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_28]
		fld	dword ptr [edx+2Ch]
		fxch	st(4)
		fcomi	st, st(4)
		fld	st
		fcmovnb	st, st(5)
		fld	[ebp+var_18]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_18]
		fld	dword ptr [edx+30h]
		fxch	st(4)
		fcomi	st, st(4)
		fld	st
		fcmovnb	st, st(5)
		fld	[ebp+var_14]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_14]
		fxch	st(3)
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		fld	[ebp+var_20]
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		fxch	st(1)
		fstp	[ebp+var_20]
		fxch	st(3)
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		fld	[ebp+var_1C]
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		fxch	st(2)
		fstp	[ebp+var_1C]
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fld	[ebp+var_10]
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		add	eax, 1
		cmp	eax, 3
		fstp	[ebp+var_10]
		jz	short loc_84D10
		mov	edx, [ebx+eax*4]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, ecx
		fld	dword ptr [edx+28h]
		fld	dword ptr [edx+2Ch]
		fld	dword ptr [edx+30h]
		fxch	st(1)
		fxch	st(2)
		jmp	loc_84C4D
; ---------------------------------------------------------------------------
		align 10h

loc_84D10:				; CODE XREF: CCoreDispInfo::CalcRayBoundingBoxes(int,int (*)[3])+E7j
		mov	eax, [ebp+arg_0]
		lea	edx, [esi+esi*2]
		add	esi, 1
		mov	ecx, [ebp+arg_4]
		shl	edx, 3
		add	ebx, 18h
		fld	[ebp+var_28]
		add	ecx, [eax+4]
		cmp	esi, 4
		lea	eax, [ecx+edx+1A0h]
		fstp	dword ptr [eax]
		fld	[ebp+var_18]
		fstp	dword ptr [eax+4]
		fld	[ebp+var_14]
		fstp	dword ptr [eax+8]
		lea	eax, [ecx+edx+1ACh]
		fld	[ebp+var_20]
		fstp	dword ptr [eax]
		fld	[ebp+var_1C]
		fstp	dword ptr [eax+4]
		fld	[ebp+var_10]
		fstp	dword ptr [eax+8]
		jnz	loc_84C12
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo20CalcRayBoundingBoxesEiPA3_i	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcTriSurfBoundingBoxes(int, int (*)[3])
_ZN13CCoreDispInfo24CalcTriSurfBoundingBoxesEiPA3_i proc near
					; CODE XREF: CCoreDispInfo::CalcTriSurfInfoAtNode(int)+36p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 8
		shl	[ebp+arg_4], 9
		mov	edi, [ebp+arg_8]
		lea	esi, [esi+0]

loc_84D88:				; CODE XREF: CCoreDispInfo::CalcTriSurfBoundingBoxes(int,int (*)[3])+CEj
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		add	edx, [eax+4]
		lea	eax, [esi+esi*2]
		shl	eax, 3
		lea	ebx, [edx+eax+40h]
		lea	ecx, [edx+eax+4Ch]
		mov	eax, [ebp+arg_0]
		fld	dword ptr [ebx]
		fld	dword ptr [ebx+4]
		fld	dword ptr [ebx+8]
		mov	eax, [eax+1B8h]
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		mov	[ebp+var_14], eax
		xor	eax, eax
		fstp	[ebp+var_10]
		jmp	short loc_84DD4
; ---------------------------------------------------------------------------
		align 8

loc_84DC8:				; CODE XREF: CCoreDispInfo::CalcTriSurfBoundingBoxes(int,int (*)[3])+AFj
		fstp	st
		fxch	st(3)
		fxch	st(1)
		fxch	st(2)
		fxch	st(4)
		fxch	st(1)

loc_84DD4:				; CODE XREF: CCoreDispInfo::CalcTriSurfBoundingBoxes(int,int (*)[3])+50j
		mov	edx, [edi+eax*4]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ebp+var_14]
		fld	dword ptr [edx+28h]
		fcomi	st, st(5)
		fxch	st(5)
		fcmovb	st, st(5)
		fld	dword ptr [edx+2Ch]
		fcomi	st, st(5)
		fxch	st(5)
		fcmovb	st, st(5)
		fld	dword ptr [edx+30h]
		fcomi	st, st(5)
		fxch	st(5)
		fcmovb	st, st(5)
		fxch	st(4)
		fcomi	st, st(7)
		fcmovb	st, st(7)
		fstp	st(7)
		fxch	st(2)
		fcomi	st, st(5)
		fcmovb	st, st(5)
		fstp	st(5)
		fld	[ebp+var_10]
		fcomi	st, st(4)
		fcmovb	st, st(4)
		fstp	st(4)
		fxch	st(3)
		add	eax, 1
		cmp	eax, 3
		fst	[ebp+var_10]
		jnz	short loc_84DC8
		fxch	st(3)
		fstp	dword ptr [ebx]
		add	esi, 1
		add	edi, 0Ch
		fstp	dword ptr [ebx+4]
		cmp	esi, 8
		fstp	dword ptr [ebx+8]
		fxch	st(2)
		fstp	dword ptr [ecx]
		fstp	dword ptr [ecx+4]
		fstp	dword ptr [ecx+8]
		jnz	loc_84D88
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo24CalcTriSurfBoundingBoxesEiPA3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcTriSurfIndices(int, int (*)[3])
_ZN13CCoreDispInfo18CalcTriSurfIndicesEiPA3_i proc near
					; CODE XREF: CCoreDispInfo::CalcTriSurfInfoAtNode(int)+26p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	ebx, [ecx+4]
		shl	eax, 9
		mov	ebx, [ebx+eax+30h]
		mov	[edx], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+20h]
		mov	[edx+4], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+2Ch]
		mov	[edx+8], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+2Ch]
		mov	[edx+0Ch], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+20h]
		mov	[edx+10h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+1Ch]
		mov	[edx+14h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+2Ch]
		mov	[edx+18h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+1Ch]
		mov	[edx+1Ch], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+34h]
		mov	[edx+20h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+34h]
		mov	[edx+24h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+1Ch]
		mov	[edx+28h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+28h]
		mov	[edx+2Ch], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+20h]
		mov	[edx+30h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+38h]
		mov	[edx+34h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+1Ch]
		mov	[edx+38h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+1Ch]
		mov	[edx+3Ch], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+38h]
		mov	[edx+40h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+24h]
		mov	[edx+44h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+1Ch]
		mov	[edx+48h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+24h]
		mov	[edx+4Ch], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+28h]
		mov	[edx+50h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+28h]
		mov	[edx+54h], ebx
		mov	ebx, [ecx+4]
		mov	ebx, [ebx+eax+24h]
		mov	[edx+58h], ebx
		mov	ecx, [ecx+4]
		mov	eax, [ecx+eax+3Ch]
		mov	[edx+5Ch], eax
		pop	ebx
		pop	ebp
		retn
_ZN13CCoreDispInfo18CalcTriSurfIndicesEiPA3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcTriSurfInfoAtNode(int)
_ZN13CCoreDispInfo21CalcTriSurfInfoAtNodeEi proc near
					; CODE XREF: CCoreDispInfo::CalcNodeInfo(int,int)+9Fj

var_78		= byte ptr -78h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		lea	edi, [ebp+var_78]
		mov	[esp+8], edi
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZN13CCoreDispInfo18CalcTriSurfIndicesEiPA3_i ;	CCoreDispInfo::CalcTriSurfIndices(int,int (*)[3])
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo24CalcTriSurfBoundingBoxesEiPA3_i ; CCoreDispInfo::CalcTriSurfBoundingBoxes(int,int (*)[3])
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo20CalcRayBoundingBoxesEiPA3_i	; CCoreDispInfo::CalcRayBoundingBoxes(int,int (*)[3])
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo17CalcTriSurfPlanesEiPA3_i ; CCoreDispInfo::CalcTriSurfPlanes(int,int	(*)[3])
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo21CalcTriSurfInfoAtNodeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int, Vector &, Vector &)
_ZN13CCoreDispInfo27CalcMinMaxBoundingBoxAtNodeEiR6VectorS1_ proc near
					; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+48p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		push	ebx
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_C]
		lea	eax, ds:1[edi*4]
		shl	edi, 0Bh
		shl	eax, 9
		add	edi, 400h
		add	eax, [esi+4]
		mov	ebx, [eax]
		mov	[ecx], ebx
		mov	ebx, [eax+4]
		mov	[ecx+4], ebx
		mov	ebx, [eax+8]
		mov	[ecx+8], ebx
		mov	ebx, [eax+0Ch]
		mov	[edx], ebx
		mov	ebx, [eax+10h]
		mov	[edx+4], ebx
		xor	ebx, ebx
		mov	eax, [eax+14h]
		mov	[edx+8], eax

loc_8501B:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+126j
		lea	eax, [edi+ebx]
		add	eax, [esi+4]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax+0Ch]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+14h]
		fld	dword ptr [ecx]
		fcomip	st, st(6)
		jbe	short loc_85050
		fxch	st(5)
		fstp	dword ptr [ecx]
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		fxch	st(4)
		jmp	short loc_8505A
; ---------------------------------------------------------------------------
		align 10h

loc_85050:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+66j
		fstp	st(5)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		fxch	st(4)

loc_8505A:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+74j
		fld	dword ptr [ecx+4]
		fcomip	st, st(5)
		jbe	short loc_85070
		fxch	st(4)
		fstp	dword ptr [ecx+4]
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_85078
; ---------------------------------------------------------------------------
		align 10h

loc_85070:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+8Fj
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)

loc_85078:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+9Cj
		fld	dword ptr [ecx+8]
		fcomip	st, st(4)
		jbe	short loc_85090
		fxch	st(3)
		fstp	dword ptr [ecx+8]
		fxch	st(1)
		fxch	st(2)
		jmp	short loc_85096
; ---------------------------------------------------------------------------
		align 10h

loc_85090:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+ADj
		fstp	st(3)
		fxch	st(1)
		fxch	st(2)

loc_85096:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+B8j
		fld	dword ptr [edx]
		fxch	st(3)
		fcomi	st, st(3)
		fstp	st(3)
		jbe	short loc_850B0
		fxch	st(2)
		fstp	dword ptr [edx]
		fxch	st(1)
		jmp	short loc_850B4
; ---------------------------------------------------------------------------
		align 10h

loc_850B0:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+CEj
		fstp	st(2)
		fxch	st(1)

loc_850B4:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+D6j
		fld	dword ptr [edx+4]
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jbe	short loc_850D0
		fxch	st(1)
		fstp	dword ptr [edx+4]
		jmp	short loc_850D2
; ---------------------------------------------------------------------------
		align 10h

loc_850D0:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+EDj
		fstp	st(1)

loc_850D2:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+F4j
		fld	dword ptr [edx+8]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_850E8
		fstp	dword ptr [edx+8]
		jmp	short loc_850EA
; ---------------------------------------------------------------------------
		align 8

loc_850E8:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+10Bj
		fstp	st

loc_850EA:				; CODE XREF: CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)+110j
		add	ebx, 200h
		cmp	ebx, 600h
		jnz	loc_8501B
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo27CalcMinMaxBoundingBoxAtNodeEiR6VectorS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcBoundingBoxAtNode(int)
_ZN13CCoreDispInfo21CalcBoundingBoxAtNodeEi proc near
					; CODE XREF: CCoreDispInfo::CalcNodeInfo(int,int)+8Dp

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 50h
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	[esp], esi
		call	_Z12GetNodeLeveli ; GetNodeLevel(int)
		mov	edi, [ebx+4]
		mov	ecx, esi
		shl	ecx, 9
		add	edi, ecx
		cmp	[ebx+0Ch], eax
		mov	edx, [edi+1Ch]
		jz	loc_85370
		lea	eax, [ebp+var_18]
		mov	[ebp+var_44], edx
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_24]
		mov	[esp+8], eax
		mov	[ebp+var_40], ecx
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo27CalcMinMaxBoundingBoxAtNodeEiR6VectorS1_ ; CCoreDispInfo::CalcMinMaxBoundingBoxAtNode(int,Vector &,Vector &)
		mov	eax, [ebx+1B8h]
		mov	edx, [ebp+var_44]
		mov	ecx, [ebp+var_40]
		mov	[ebp+var_3C], eax
		lea	eax, [edx+edx*8]
		shl	eax, 4
		add	eax, [ebp+var_3C]
		fld	dword ptr [eax+28h]
		fld	[ebp+var_24]
		fcomi	st, st(1)
		jbe	short loc_85186
		fstp	st
		fst	[ebp+var_24]
		fld	st

loc_85186:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+6Dj
		fld	dword ptr [eax+2Ch]
		fld	[ebp+var_20]
		fcomi	st, st(1)
		jbe	short loc_85197
		fstp	st
		fst	[ebp+var_20]
		fld	st

loc_85197:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+7Ej
		fld	dword ptr [eax+30h]
		fld	[ebp+var_1C]
		fst	[ebp+var_34]
		fcomip	st, st(1)
		jbe	short loc_851AA
		fst	[ebp+var_1C]
		fst	[ebp+var_34]

loc_851AA:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+92j
		fld	[ebp+var_18]
		fst	[ebp+var_30]
		fxch	st(5)
		fcomi	st, st(5)
		fstp	st(5)
		jbe	short loc_851D0
		fxch	st(4)
		fst	[ebp+var_18]
		fstp	[ebp+var_30]
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_851D8
; ---------------------------------------------------------------------------
		align 10h

loc_851D0:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+A6j
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)

loc_851D8:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+B6j
		fld	[ebp+var_14]
		fld	st
		fxch	st(4)
		fcomi	st, st(1)
		jbe	short loc_85200
		fstp	st(4)
		fstp	st
		fxch	st(1)
		fxch	st(2)
		fst	[ebp+var_14]
		fld	st
		fxch	st(3)
		fxch	st(2)
		fxch	st(1)
		jmp	short loc_85202
; ---------------------------------------------------------------------------
		align 10h

loc_85200:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+D1j
		fstp	st

loc_85202:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+E6j
		fld	[ebp+var_10]
		fst	[ebp+var_38]
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		ja	loc_85340
		fstp	st(1)
		mov	edi, [ebx+4]
		fld	st(1)
		fld	[ebp+var_34]
		fld	[ebp+var_30]
		fld	[ebp+var_38]
		fxch	st(5)
		fxch	st(2)
		fxch	st(4)
		fxch	st(6)
		fxch	st(7)
		fxch	st(2)
		add	edi, ecx

loc_85232:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+257j
					; CCoreDispInfo::CalcBoundingBoxAtNode(int)+2ADj
		fstp	[ebp+var_48]
		fxch	st(5)
		mov	ecx, [ebp+var_34]
		xor	eax, eax
		mov	ebx, [ebp+var_48]
		fstp	[ebp+var_34]
		mov	[ebp+var_4C], edi
		jmp	short loc_85275
; ---------------------------------------------------------------------------
		align 10h

loc_85250:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+1E3j
		mov	[ebp+var_48], esi
		fld	[ebp+var_48]
		mov	[ebp+var_48], ecx
		fld	[ebp+var_38]
		fld	[ebp+var_34]
		fld	[ebp+var_30]
		fld	[ebp+var_48]
		mov	[ebp+var_48], ebx
		fld	[ebp+var_48]
		fxch	st(1)
		fxch	st(2)
		fxch	st(4)
		fxch	st(3)
		fxch	st(5)

loc_85275:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+135j
		mov	esi, [ebp+var_4C]
		mov	edx, [esi+eax*4+20h]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ebp+var_3C]
		fld	dword ptr [edx+28h]
		fxch	st(1)
		fcomip	st, st(1)
		fst	[ebp+var_48]
		mov	esi, [ebp+var_48]
		fld	dword ptr [edx+2Ch]
		fxch	st(2)
		cmovbe	esi, [ebp+var_24]
		fcomip	st, st(2)
		fxch	st(1)
		fst	[ebp+var_48]
		mov	edi, [ebp+var_48]
		mov	[ebp+var_24], esi
		fld	dword ptr [edx+30h]
		fxch	st(3)
		cmova	ebx, edi
		fcomip	st, st(3)
		fxch	st(2)
		fst	[ebp+var_48]
		fxch	st(1)
		mov	edx, [ebp+var_48]
		cmova	ecx, edx
		fcomi	st, st(4)
		fstp	st(4)
		fld	[ebp+var_30]
		fcmovnbe st, st(4)
		fstp	st(4)
		fxch	st(3)
		fstp	[ebp+var_30]
		fcomi	st, st(3)
		fstp	st(3)
		fld	[ebp+var_34]
		fcmovnbe st, st(3)
		fstp	st(3)
		fxch	st(2)
		fstp	[ebp+var_34]
		fcomi	st, st(1)
		fstp	st(1)
		fld	[ebp+var_38]
		fcmovnbe st, st(1)
		fstp	st(1)
		add	eax, 1
		cmp	eax, 8
		fstp	[ebp+var_38]
		jnz	loc_85250
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], ebx
		mov	edi, [ebp+var_4C]
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+var_34]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_38]
		mov	[ebp+var_14], edx
		mov	[ebp+var_10], eax
		mov	[edi], esi
		mov	eax, [ebp+var_20]
		mov	[edi+4], eax
		mov	eax, [ebp+var_1C]
		mov	[edi+8], eax
		mov	eax, [ebp+var_18]
		mov	[edi+0Ch], eax
		mov	eax, [ebp+var_14]
		mov	[edi+10h], eax
		mov	eax, [ebp+var_10]
		mov	[edi+14h], eax
		add	esp, 50h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_85340:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+FEj
		fxch	st(1)
		fst	[ebp+var_10]
		mov	edi, [ebx+4]
		fld	st(2)
		fld	[ebp+var_34]
		fld	[ebp+var_30]
		fxch	st(3)
		add	edi, ecx
		fst	[ebp+var_38]
		fxch	st(5)
		fxch	st(1)
		fxch	st(4)
		fxch	st(6)
		fxch	st(7)
		fxch	st(2)
		fxch	st(3)
		fxch	st(1)
		jmp	loc_85232
; ---------------------------------------------------------------------------
		align 10h

loc_85370:				; CODE XREF: CCoreDispInfo::CalcBoundingBoxAtNode(int)+27j
		mov	ebx, [ebx+1B8h]
		lea	eax, [edx+edx*8]
		shl	eax, 4
		add	eax, ebx
		mov	[ebp+var_3C], ebx
		fld	dword ptr [eax+28h]
		fst	[ebp+var_24]
		fld	dword ptr [eax+2Ch]
		fst	[ebp+var_20]
		fld	dword ptr [eax+30h]
		fst	[ebp+var_1C]
		fxch	st(2)
		fst	[ebp+var_18]
		fxch	st(1)
		fst	[ebp+var_14]
		fxch	st(2)
		fst	[ebp+var_10]
		fld	st
		fld	st(3)
		fld	st(3)
		fld	st(5)
		fxch	st(4)
		fst	[ebp+var_34]
		fxch	st(5)
		fst	[ebp+var_30]
		fld	st(6)
		fxch	st(6)
		fst	[ebp+var_38]
		fxch	st(5)
		jmp	loc_85232
_ZN13CCoreDispInfo21CalcBoundingBoxAtNodeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetMaxErrorFromChildren(int, int)
_ZN13CCoreDispInfo23GetMaxErrorFromChildrenEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		fldz
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		cmp	[ecx+0Ch], eax
		jz	short loc_85406
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		shl	edx, 0Bh
		add	edx, [ecx+4]

loc_853EB:				; CODE XREF: CCoreDispInfo::GetMaxErrorFromChildren(int,int)+34j
		fld	dword ptr [edx+eax+218h]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		add	eax, 200h
		cmp	eax, 800h
		jnz	short loc_853EB

loc_85406:				; CODE XREF: CCoreDispInfo::GetMaxErrorFromChildren(int,int)+Ej
		pop	ebp
		retn
_ZN13CCoreDispInfo23GetMaxErrorFromChildrenEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcErrorTermAtNode(int, int)
_ZN13CCoreDispInfo19CalcErrorTermAtNodeEii proc	near
					; CODE XREF: CCoreDispInfo::CalcNodeInfo(int,int)+81p

var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 54h
		mov	edi, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+arg_4]
		cmp	[edi+0Ch], eax
		jz	loc_85671
		mov	esi, [edi+4]
		mov	ecx, ebx
		xor	eax, eax
		shl	ecx, 9
		add	ecx, esi
		mov	esi, esi
		lea	edi, [edi+0]

loc_85440:				; CODE XREF: CCoreDispInfo::CalcErrorTermAtNode(int,int)+3Ej
		mov	edx, [ecx+eax*4+20h]
		mov	[ebp+eax*4+var_30], edx
		add	eax, 1
		cmp	eax, 8
		jnz	short loc_85440
		mov	eax, [edi+1B8h]
		mov	edi, [ebp+var_1C]
		mov	edx, [ebp+var_20]
		lea	edi, [edi+edi*8]
		lea	edx, [edx+edx*8]
		shl	edi, 4
		add	edi, eax
		shl	edx, 4
		fld	dword ptr [edi+28h]
		add	edx, eax
		fstp	[ebp+var_40]
		fld	dword ptr [edx+28h]
		fld	dword ptr [edi+2Ch]
		fstp	[ebp+var_44]
		fld	dword ptr [edx+2Ch]
		fstp	[ebp+var_48]
		fld	dword ptr [edi+30h]
		fstp	[ebp+var_4C]
		fld	dword ptr [edx+30h]
		fstp	[ebp+var_50]
		mov	edx, [ebp+var_30]
		fld	[ebp+var_40]
		fadd	st, st(1)
		lea	edx, [edx+edx*8]
		fld	ds:flt_1EBAA4
		shl	edx, 4
		fmul	st(1), st
		fxch	st(1)
		add	edx, eax
		fsubr	dword ptr [edx+28h]
		fmul	st, st
		fld	[ebp+var_48]
		fadd	[ebp+var_44]
		fmul	st, st(2)
		fsubr	dword ptr [edx+2Ch]
		fmul	st, st
		fld	[ebp+var_50]
		fadd	[ebp+var_4C]
		fmul	st, st(3)
		fsubr	dword ptr [edx+30h]
		mov	edx, [ebp+var_18]
		fmul	st, st
		fxch	st(1)
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, eax
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fld	dword ptr [edx+28h]
		fld	dword ptr [edx+2Ch]
		fld	dword ptr [edx+30h]
		fstp	[ebp+var_54]
		mov	edx, [ebp+var_2C]
		fld	[ebp+var_40]
		fadd	st, st(2)
		lea	edx, [edx+edx*8]
		fmul	st, st(4)
		shl	edx, 4
		add	edx, eax
		fsubr	dword ptr [edx+28h]
		fmul	st, st
		fld	[ebp+var_44]
		fadd	st, st(2)
		fmul	st, st(5)
		fsubr	dword ptr [edx+2Ch]
		fmul	st, st
		fld	[ebp+var_54]
		fadd	[ebp+var_4C]
		fmul	st, st(6)
		fsubr	dword ptr [edx+30h]
		mov	edx, [ebp+var_14]
		fmul	st, st
		fxch	st(1)
		lea	edx, [edx+edx*8]
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		shl	edx, 4
		add	edx, eax
		fld	dword ptr [edx+28h]
		fstp	[ebp+var_58]
		fld	dword ptr [edx+2Ch]
		fstp	[ebp+var_5C]
		fld	dword ptr [edx+30h]
		fstp	[ebp+var_60]
		mov	edx, [ebp+var_28]
		fld	[ebp+var_58]
		fadd	st, st(2)
		lea	edx, [edx+edx*8]
		fmul	st, st(4)
		shl	edx, 4
		add	edx, eax
		fsubr	dword ptr [edx+28h]
		fmul	st, st
		fld	[ebp+var_5C]
		fadd	st, st(2)
		fmul	st, st(5)
		fsubr	dword ptr [edx+2Ch]
		fmul	st, st
		fld	[ebp+var_60]
		fadd	[ebp+var_54]
		fmul	st, st(6)
		fsubr	dword ptr [edx+30h]
		mov	edx, [ebp+var_24]
		fmul	st, st
		fxch	st(1)
		lea	edx, [edx+edx*8]
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		shl	edx, 4
		add	edx, eax
		fld	[ebp+var_58]
		fadd	st, st(5)
		fmul	st, st(4)
		fsubr	dword ptr [edx+28h]
		fmul	st, st
		fld	[ebp+var_5C]
		fadd	[ebp+var_48]
		fmul	st, st(5)
		fsubr	dword ptr [edx+2Ch]
		fmul	st, st
		fld	[ebp+var_60]
		fadd	[ebp+var_50]
		fmul	st, st(6)
		fsubr	dword ptr [edx+30h]
		mov	edx, [ecx+1Ch]
		fmul	st, st
		fxch	st(1)
		lea	edx, [edx+edx*8]
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		shl	edx, 4
		add	eax, edx
		fld	dword ptr [eax+28h]
		fld	dword ptr [eax+2Ch]
		fld	dword ptr [eax+30h]
		fxch	st(7)
		faddp	st(4), st
		fxch	st(3)
		fmul	st, st(5)
		fsubr	st, st(1)
		fmul	st, st
		fxch	st(2)
		fadd	[ebp+var_48]
		fmul	st, st(5)
		fsubr	st, st(3)
		fmul	st, st
		fld	[ebp+var_54]
		fadd	[ebp+var_50]
		fmul	st, st(6)
		fsubr	st, st(7)
		fmul	st, st
		fxch	st(1)
		faddp	st(3), st
		faddp	st(2), st
		fxch	st(1)
		fsqrt
		fxch	st(3)
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		fld	[ebp+var_58]
		fadd	[ebp+var_40]
		fmul	st, st(4)
		fsubp	st(1), st
		fmul	st, st
		fld	[ebp+var_5C]
		fadd	[ebp+var_44]
		fmul	st, st(4)
		fsubp	st(2), st
		fxch	st(1)
		fmul	st, st
		fld	[ebp+var_60]
		fadd	[ebp+var_4C]
		fmulp	st(4), st
		fxch	st(4)
		fsubrp	st(3), st
		fxch	st(2)
		fmul	st, st
		fxch	st(3)
		faddp	st(2), st
		fxch	st(1)
		faddp	st(2), st
		fxch	st(1)
		fsqrt
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		shl	ebx, 0Bh
		xor	eax, eax
		add	esi, ebx
		fldz

loc_85651:				; CODE XREF: CCoreDispInfo::CalcErrorTermAtNode(int,int)+25Aj
		fld	dword ptr [esi+eax+218h]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		add	eax, 200h
		cmp	eax, 800h
		jnz	short loc_85651
		faddp	st(1), st
		fstp	dword ptr [ecx+18h]

loc_85671:				; CODE XREF: CCoreDispInfo::CalcErrorTermAtNode(int,int)+15j
		add	esp, 54h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo19CalcErrorTermAtNodeEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcNeighborVertIndicesAtNode(int, int)
_ZN13CCoreDispInfo29CalcNeighborVertIndicesAtNodeEii proc near
					; CODE XREF: CCoreDispInfo::CalcNodeInfo(int,int)+6Ep

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, 1
		push	ebx
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		shl	[ebp+arg_4], 9
		mov	ebx, [eax+0Ch]
		mov	eax, 1
		mov	edx, eax
		mov	ecx, ebx
		sub	ecx, [ebp+arg_8]
		shl	edx, cl
		mov	ecx, ebx
		shl	eax, cl
		mov	[ebp+var_18], edx
		add	eax, 1
		mov	[ebp+var_10], eax
		jmp	short loc_856D3
; ---------------------------------------------------------------------------
		align 4

loc_856B8:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+72j
					; CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: ...
		sub	edx, [ebp+var_18] ; jumptable 000856F4 default case
		imul	eax, [ebp+var_10]
		add	eax, edx
		cmp	esi, 8
		mov	[ebx+ecx*4+20h], eax
		jz	loc_8574F
		db	66h
		nop

loc_856D0:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+96j
		add	esi, 1

loc_856D3:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+33j
		mov	eax, [ebp+arg_0]
		lea	ecx, [esi-1]
		mov	ebx, [ebp+arg_4]
		add	ebx, [eax+4]
		mov	eax, [ebx+1Ch]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	[ebp+var_10]
		cmp	ecx, 7		; switch 8 cases
		mov	[ebp+var_14], edx
		mov	edi, eax
		ja	short loc_856B8	; jumptable 000856F4 default case
		jmp	ds:off_1EBC64[ecx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_85700:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: .rodata:off_1EBC64o
		add	edx, [ebp+var_18] ; jumptable 000856F4 case 5
		mov	[ebp+var_14], edx

loc_85706:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: .rodata:off_1EBC64o
		mov	edi, eax	; jumptable 000856F4 case 3
		sub	edi, [ebp+var_18]

loc_8570B:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+ABj
					; CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+B6j ...
		imul	edi, [ebp+var_10]
		add	edi, [ebp+var_14]
		mov	[ebx+ecx*4+20h], edi
		jmp	short loc_856D0
; ---------------------------------------------------------------------------
		align 10h

loc_85720:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: .rodata:off_1EBC64o
		sub	edx, [ebp+var_18] ; jumptable 000856F4 case 6
		mov	[ebp+var_14], edx

loc_85726:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: .rodata:off_1EBC64o
		mov	edi, [ebp+var_18] ; jumptable 000856F4 case 1
		add	edi, eax
		jmp	short loc_8570B
; ---------------------------------------------------------------------------
		align 10h

loc_85730:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: .rodata:off_1EBC64o
		add	edx, [ebp+var_18] ; jumptable 000856F4 case 2
		mov	[ebp+var_14], edx
		jmp	short loc_8570B
; ---------------------------------------------------------------------------
		align 10h

loc_85740:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: .rodata:off_1EBC64o
		add	eax, [ebp+var_18] ; jumptable 000856F4 case 7
		add	edx, [ebp+var_18]
		imul	eax, [ebp+var_10]
		add	edx, eax
		mov	[ebx+3Ch], edx

loc_8574F:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+48j
		add	esp, 0Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_85760:				; CODE XREF: CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)+74j
					; DATA XREF: .rodata:off_1EBC64o
		sub	edx, [ebp+var_18] ; jumptable 000856F4 case 4
		mov	edi, eax
		sub	edi, [ebp+var_18]
		mov	[ebp+var_14], edx
		jmp	short loc_8570B
_ZN13CCoreDispInfo29CalcNeighborVertIndicesAtNodeEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcNodeInfo(int, int)
_ZN13CCoreDispInfo12CalcNodeInfoEii proc near
					; CODE XREF: CCoreDispInfo::CalcNodeInfo(int,int)+40p
					; CCoreDispInfo::GenerateLODTree(void)+4Fp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		mov	[esp], edi
		call	_Z12GetNodeLeveli ; GetNodeLevel(int)
		lea	ecx, ds:0FFFFFFFDh[edi*4]
		mov	edx, 4
		cmp	eax, ebx
		mov	[ebp+var_1C], ecx
		jz	short loc_857D0

loc_8579D:				; CODE XREF: CCoreDispInfo::CalcNodeInfo(int,int)+4Ej
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	[esp+8], ebx
		mov	[esp], esi
		add	eax, edx
		mov	[esp+4], eax
		call	_ZN13CCoreDispInfo12CalcNodeInfoEii ; CCoreDispInfo::CalcNodeInfo(int,int)
		mov	edx, [ebp+var_20]
		add	edx, 1
		cmp	edx, 8
		jnz	short loc_8579D
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_857D0:				; CODE XREF: CCoreDispInfo::CalcNodeInfo(int,int)+2Bj
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[ebp+var_20], eax
		call	_ZN13CCoreDispInfo29CalcNeighborVertIndicesAtNodeEii ; CCoreDispInfo::CalcNeighborVertIndicesAtNode(int,int)
		mov	eax, [ebp+var_20]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[esp+8], eax
		call	_ZN13CCoreDispInfo19CalcErrorTermAtNodeEii ; CCoreDispInfo::CalcErrorTermAtNode(int,int)
		mov	[esp+4], edi
		mov	[esp], esi
		call	_ZN13CCoreDispInfo21CalcBoundingBoxAtNodeEi ; CCoreDispInfo::CalcBoundingBoxAtNode(int)
		mov	[ebp+arg_4], edi
		mov	[ebp+arg_0], esi
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN13CCoreDispInfo21CalcTriSurfInfoAtNodeEi ; CCoreDispInfo::CalcTriSurfInfoAtNode(int)
_ZN13CCoreDispInfo12CalcNodeInfoEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetNodeVertIndexFromParentIndex(int, int, int)
_ZN13CCoreDispInfo31GetNodeVertIndexFromParentIndexEiii	proc near
					; CODE XREF: CCoreDispInfo::CalcVertIndicesAtNodes(int)+6Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	esi, 1
		mov	[ebp+var_4], edi
		mov	eax, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		mov	edx, [edx+0Ch]
		not	ebx
		lea	ecx, [edx+ebx]
		mov	ebx, esi
		shl	ebx, cl
		mov	ecx, edx
		mov	edx, eax
		shl	esi, cl
		sar	edx, 1Fh
		lea	ecx, [esi+1]
		idiv	ecx
		cmp	edi, 5
		jz	short loc_858B0
		jg	short loc_85880
		cmp	edi, 4
		jz	short loc_858C0

loc_85866:				; CODE XREF: CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)+68j
		mov	ebx, [ebp+var_C]
		mov	eax, 0FFFE7961h
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_85880:				; CODE XREF: CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)+3Fj
		cmp	edi, 6
		jz	short loc_858A0
		cmp	edi, 7
		jnz	short loc_85866
		add	edx, ebx
		add	eax, ebx

loc_8588E:				; CODE XREF: CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)+84j
					; CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)+94j ...
		imul	eax, ecx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		add	eax, edx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_858A0:				; CODE XREF: CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)+63j
		sub	edx, ebx
		add	eax, ebx
		jmp	short loc_8588E
; ---------------------------------------------------------------------------
		align 10h

loc_858B0:				; CODE XREF: CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)+3Dj
		add	edx, ebx
		sub	eax, ebx
		jmp	short loc_8588E
; ---------------------------------------------------------------------------
		align 10h

loc_858C0:				; CODE XREF: CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)+44j
		sub	edx, ebx
		sub	eax, ebx
		jmp	short loc_8588E
_ZN13CCoreDispInfo31GetNodeVertIndexFromParentIndexEiii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcVertIndicesAtNodes(int)
_ZN13CCoreDispInfo22CalcVertIndicesAtNodesEi proc near
					; CODE XREF: CCoreDispInfo::CalcVertIndicesAtNodes(int)+99p
					; CCoreDispInfo::GenerateLODTree(void)+31p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	[esp], ebx
		call	_Z12GetNodeLeveli ; GetNodeLevel(int)
		cmp	[edi+0Ch], eax
		mov	[ebp+var_2C], eax
		jz	loc_85973
		lea	eax, ds:0[ebx*4]
		mov	ecx, ebx
		mov	edx, edi
		lea	esi, [eax+1]
		sub	eax, 3
		shl	ecx, 9
		shl	esi, 9
		mov	ebx, 4
		mov	[ebp+var_30], eax

loc_85912:				; CODE XREF: CCoreDispInfo::CalcVertIndicesAtNodes(int)+85j
		mov	eax, [ebp+var_30]
		mov	edi, [edx+4]
		mov	[esp+0Ch], ebx
		add	eax, ebx
		mov	[ebp+ebx*4+var_38], eax
		mov	eax, [edi+ecx+1Ch]
		add	ebx, 1
		mov	[esp], edx
		mov	[ebp+var_38], edx
		mov	[ebp+var_34], ecx
		mov	[esp+8], eax
		mov	eax, [ebp+var_2C]
		mov	[esp+4], eax
		call	_ZN13CCoreDispInfo31GetNodeVertIndexFromParentIndexEiii	; CCoreDispInfo::GetNodeVertIndexFromParentIndex(int,int,int)
		mov	[edi+esi+1Ch], eax
		add	esi, 200h
		cmp	ebx, 8
		mov	edx, [ebp+var_38]
		mov	ecx, [ebp+var_34]
		jnz	short loc_85912
		mov	edi, edx
		xor	bl, bl

loc_8595B:				; CODE XREF: CCoreDispInfo::CalcVertIndicesAtNodes(int)+A1j
		mov	eax, [ebp+ebx*4+var_28]
		add	ebx, 1
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN13CCoreDispInfo22CalcVertIndicesAtNodesEi ; CCoreDispInfo::CalcVertIndicesAtNodes(int)
		cmp	ebx, 4
		jnz	short loc_8595B

loc_85973:				; CODE XREF: CCoreDispInfo::CalcVertIndicesAtNodes(int)+1Dj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo22CalcVertIndicesAtNodesEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GenerateLODTree(void)
_ZN13CCoreDispInfo15GenerateLODTreeEv proc near	; CODE XREF: CCoreDispInfo::Create(void)+79p

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx+4]
		shl	eax, cl
		add	eax, 1
		imul	eax, eax
		sub	eax, 1
		sar	eax, 1
		mov	[edx+1Ch], eax
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo22CalcVertIndicesAtNodesEi ; CCoreDispInfo::CalcVertIndicesAtNodes(int)
		mov	esi, [ebx+0Ch]
		test	esi, esi
		jle	short loc_859D9
		lea	esi, [esi+0]

loc_859C0:				; CODE XREF: CCoreDispInfo::GenerateLODTree(void)+57j
		mov	[esp+8], esi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo12CalcNodeInfoEii ; CCoreDispInfo::CalcNodeInfo(int,int)
		sub	esi, 1
		jnz	short loc_859C0

loc_859D9:				; CODE XREF: CCoreDispInfo::GenerateLODTree(void)+3Bj
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN13CCoreDispInfo15GenerateLODTreeEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcDispSurfCoords(bool, int)
_ZN13CCoreDispInfo18CalcDispSurfCoordsEbi proc near
					; CODE XREF: CCoreDispInfo::CreateWithoutLOD(void)+55p
					; CCoreDispInfo::CreateWithoutLOD(void)+6Cp ...

var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	ecx, ecx
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		add	esp, 0FFFFFF80h
		mov	ebx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		movzx	eax, [ebp+arg_4]
		shl	ebx, 2
		lea	edi, [edx+10h]
		mov	[ebp+var_58], ebx
		mov	[ebp+var_5C], edx
		mov	byte ptr [ebp+var_54], al

loc_85A04:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+5Fj
		lea	esi, [edi+ecx*8+60h]
		mov	eax, [esi+8]
		lea	edx, ds:0[ecx*8]
		lea	ebx, [ebp+var_4C]
		mov	esi, [esi+0Ch]
		add	ebx, edx
		mov	[ebx], eax
		mov	eax, [ebp+var_58]
		mov	[ebx+4], esi
		lea	ebx, [ebp+var_2C]
		add	edx, ebx
		lea	ebx, [ecx+eax+10h]
		add	ecx, 1
		lea	ebx, [edi+ebx*8]
		cmp	ecx, 4
		mov	esi, [ebx+8]
		mov	ebx, [ebx+0Ch]
		mov	[edx], esi
		mov	[edx+4], ebx
		jnz	short loc_85A04
		mov	edx, [ebp+var_5C]
		mov	ebx, 1
		movzx	eax, byte ptr [ebp+var_54]
		mov	ecx, [edx+0Ch]
		shl	ebx, cl
		test	al, al
		mov	[ebp+var_50], ebx
		lea	edi, [ebx+1]
		fild	[ebp+var_50]
		fdivr	ds:flt_1EBCFC
		jnz	loc_85BFC
		fld	[ebp+var_44]
		fsub	[ebp+var_4C]
		fld	[ebp+var_40]
		fsub	[ebp+var_48]
		fld	[ebp+var_3C]
		fsub	[ebp+var_34]
		fld	[ebp+var_38]
		fsub	[ebp+var_30]
		fxch	st(3)

loc_85A83:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+236j
		fmul	st, st(4)
		test	edi, edi
		fstp	[ebp+var_64]
		fxch	st(1)
		fmul	st, st(3)
		fstp	[ebp+var_68]
		fmul	st, st(2)
		fstp	[ebp+var_6C]
		fmul	st, st(1)
		jle	loc_85BC9
		fld	[ebp+var_4C]
		lea	ecx, [edi+edi*8]
		mov	[ebp+var_5C], 0
		fstp	[ebp+var_70]
		mov	ebx, [ebp+arg_8]
		shl	ecx, 4
		fld	[ebp+var_48]
		mov	[ebp+var_60], ecx
		fstp	[ebp+var_74]
		fld	[ebp+var_34]
		mov	[ebp+var_58], 0
		fstp	[ebp+var_78]
		lea	ebx, ds:60h[ebx*8]
		fld	[ebp+var_30]
		mov	[ebp+var_54], ebx
		fstp	[ebp+var_7C]
		fld	[ebp+var_2C]
		fstp	[ebp+var_80]
		fld	[ebp+var_28]
		fstp	[ebp+var_84]
		fld	[ebp+var_14]
		fstp	[ebp+var_88]
		fld	[ebp+var_10]
		fstp	[ebp+var_8C]
		nop
		lea	esi, [esi+0]

loc_85B00:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+1DDj
		fild	[ebp+var_58]
		test	al, al
		fld	[ebp+var_64]
		fmul	st, st(1)
		fld	[ebp+var_68]
		fmul	st, st(2)
		fld	[ebp+var_6C]
		fmul	st, st(3)
		fxch	st(3)
		fmul	st, st(4)
		jnz	loc_85BD8
		fxch	st(2)
		fadd	[ebp+var_70]
		fxch	st(1)
		fadd	[ebp+var_74]
		fxch	st(3)
		fadd	[ebp+var_78]
		fxch	st(2)
		fadd	[ebp+var_7C]
		fxch	st(2)

loc_85B34:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+217j
		fsub	st, st(1)
		mov	ebx, [ebp+var_5C]
		xor	ecx, ecx
		fmul	st, st(5)
		fxch	st(2)
		fsub	st, st(3)
		fmul	st, st(5)
		jmp	short loc_85B61
; ---------------------------------------------------------------------------
		align 4

loc_85B48:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+199j
		fxch	st(1)
		fadd	st, st(3)
		add	ecx, 1
		add	ebx, 90h
		cmp	ecx, edi
		fstp	dword ptr [esi+64h]
		fadd	st, st(4)
		fstp	dword ptr [esi+68h]
		jge	short loc_85BA8

loc_85B61:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+163j
					; CCoreDispInfo::CalcDispSurfCoords(bool,int)+1B5j
		mov	[ebp+var_50], ecx
		fild	[ebp+var_50]
		fld	st
		mov	esi, [edx+1B8h]
		fmul	st, st(4)
		fxch	st(1)
		add	esi, ebx
		test	al, al
		fmul	st, st(2)
		jz	short loc_85B48
		fxch	st(1)
		add	esi, [ebp+var_54]
		fadd	st, st(3)
		add	ecx, 1
		add	ebx, 90h
		cmp	ecx, edi
		fstp	dword ptr [esi+0Ch]
		fadd	st, st(4)
		fstp	dword ptr [esi+10h]
		jl	short loc_85B61
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_85BB0
; ---------------------------------------------------------------------------
		align 8

loc_85BA8:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+17Fj
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_85BB0:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+1BFj
		add	[ebp+var_58], 1
		mov	ecx, [ebp+var_60]
		add	[ebp+var_5C], ecx
		cmp	[ebp+var_58], edi
		jl	loc_85B00
		fstp	st
		fstp	st
		jmp	short loc_85BCD
; ---------------------------------------------------------------------------

loc_85BC9:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+B8j
		fstp	st
		fstp	st

loc_85BCD:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+1E7j
		sub	esp, 0FFFFFF80h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_85BD8:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+138j
		fxch	st(2)
		fadd	[ebp+var_80]
		fxch	st(1)
		fadd	[ebp+var_84]
		fxch	st(3)
		fadd	[ebp+var_88]
		fxch	st(2)
		fadd	[ebp+var_8C]
		fxch	st(2)
		jmp	loc_85B34
; ---------------------------------------------------------------------------

loc_85BFC:				; CODE XREF: CCoreDispInfo::CalcDispSurfCoords(bool,int)+83j
		fld	[ebp+var_24]
		fsub	[ebp+var_2C]
		fld	[ebp+var_20]
		fsub	[ebp+var_28]
		fld	[ebp+var_1C]
		fsub	[ebp+var_14]
		fld	[ebp+var_18]
		fsub	[ebp+var_10]
		fxch	st(3)
		jmp	loc_85A83
_ZN13CCoreDispInfo18CalcDispSurfCoordsEbi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GenerateDispSurfTangentSpaces(void)
_ZN13CCoreDispInfo29GenerateDispSurfTangentSpacesEv proc near
					; CODE XREF: CCoreDispInfo::CreateWithoutLOD(void)+3Dp
					; CCoreDispInfo::Create(void)+3Dp

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 1
		sub	esp, 3Ch
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		lea	eax, [edx+10h]
		fld	dword ptr [edx+190h]
		fld	dword ptr [edx+194h]
		fld	dword ptr [edx+198h]
		shl	ebx, cl
		fld	dword ptr [edx+19Ch]
		add	ebx, 1
		fstp	[ebp+var_20]
		imul	ebx, ebx
		fld	dword ptr [edx+1A0h]
		fstp	[ebp+var_24]
		fld	dword ptr [edx+1A4h]
		test	ebx, ebx
		fst	[ebp+var_28]
		jle	loc_85F9B
		fmul	st, st(2)
		xor	esi, esi
		xor	edi, edi
		movss	xmm0, ds:dword_1EBD30
		movss	xmm3, ds:dword_1EBD40
		mov	[ebp+var_3C], ebx
		fstp	[ebp+var_2C]
		fld	[ebp+var_24]
		fmul	st, st(1)
		fsubr	[ebp+var_2C]
		fstp	[ebp+var_2C]
		fmul	[ebp+var_20]
		fstp	[ebp+var_30]
		fld	[ebp+var_28]
		fmul	st, st(2)
		fsubr	[ebp+var_30]
		fstp	[ebp+var_30]
		fxch	st(1)
		fmul	[ebp+var_24]
		fxch	st(1)
		fmul	[ebp+var_20]
		fsubp	st(1), st
		fstp	[ebp+var_34]
		fld	ds:flt_1EBD04
		lea	esi, [esi+0]

loc_85CC8:				; CODE XREF: CCoreDispInfo::GenerateDispSurfTangentSpaces(void)+371j
		mov	ecx, [edx+1B8h]
		fld	[ebp+var_20]
		add	ecx, esi
		fstp	dword ptr [ecx+58h]
		fld	[ebp+var_24]
		fstp	dword ptr [ecx+5Ch]
		fld	[ebp+var_28]
		fstp	dword ptr [ecx+60h]
		mov	ecx, [edx+1B8h]
		add	ecx, esi
		fld	dword ptr [ecx+58h]
		fld	st
		fmul	st, st(1)
		fld	dword ptr [ecx+5Ch]
		fld	st
		fmul	st, st(1)
		fld	dword ptr [ecx+60h]
		fld	st
		fmul	st, st(1)
		fxch	st(4)
		faddp	st(2), st
		fxch	st(1)
		fadd	st, st(5)
		faddp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_38]
		mov	ebx, [ebp+var_38]
		movd	xmm4, ebx
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm4
		movaps	xmm4, xmm0
		subss	xmm4, xmm2
		movaps	xmm2, xmm4
		mulss	xmm2, xmm3
		mulss	xmm1, xmm2
		movss	[ebp+var_38], xmm1
		fld	[ebp+var_38]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [ecx+58h]
		fmul	st, st(2)
		fstp	dword ptr [ecx+5Ch]
		fmulp	st(1), st
		fstp	dword ptr [ecx+60h]
		mov	ecx, [edx+1B8h]
		add	ecx, esi
		fld	dword ptr [ecx+44h]
		fld	dword ptr [ecx+60h]
		fld	dword ptr [ecx+48h]
		fld	dword ptr [ecx+5Ch]
		fld	st(2)
		fmul	st, st(4)
		fld	st(1)
		fmul	st, st(3)
		fsubp	st(1), st
		fstp	dword ptr [ecx+4Ch]
		fld	dword ptr [ecx+58h]
		fld	dword ptr [ecx+40h]
		fxch	st(3)
		fmul	st, st(1)
		fxch	st(4)
		fmul	st, st(3)
		fsubp	st(4), st
		fxch	st(3)
		fstp	dword ptr [ecx+50h]
		fmulp	st(1), st
		fxch	st(2)
		fmulp	st(1), st
		fsubp	st(1), st
		fstp	dword ptr [ecx+54h]
		mov	ecx, [edx+1B8h]
		add	ecx, esi
		fld	dword ptr [ecx+4Ch]
		fld	st
		fmul	st, st(1)
		fld	dword ptr [ecx+50h]
		fld	st
		fmul	st, st(1)
		fld	dword ptr [ecx+54h]
		fld	st
		fmul	st, st(1)
		fxch	st(4)
		faddp	st(2), st
		fxch	st(1)
		fadd	st, st(5)
		faddp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_38]
		mov	ebx, [ebp+var_38]
		movd	xmm4, ebx
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm4
		movaps	xmm4, xmm0
		subss	xmm4, xmm2
		movaps	xmm2, xmm4
		mulss	xmm2, xmm3
		mulss	xmm1, xmm2
		movss	[ebp+var_38], xmm1
		fld	[ebp+var_38]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [ecx+4Ch]
		fmul	st, st(2)
		fstp	dword ptr [ecx+50h]
		fmulp	st(1), st
		fstp	dword ptr [ecx+54h]
		mov	ecx, [edx+1B8h]
		add	ecx, esi
		fld	dword ptr [ecx+50h]
		fld	dword ptr [ecx+48h]
		fld	dword ptr [ecx+54h]
		fld	dword ptr [ecx+44h]
		fld	st(2)
		fmul	st, st(4)
		fld	st(1)
		fmul	st, st(3)
		fsubp	st(1), st
		fstp	dword ptr [ecx+58h]
		fld	dword ptr [ecx+40h]
		fld	dword ptr [ecx+4Ch]
		fxch	st(3)
		fmul	st, st(1)
		fxch	st(4)
		fmul	st, st(3)
		fsubp	st(4), st
		fxch	st(3)
		fstp	dword ptr [ecx+5Ch]
		fmulp	st(1), st
		fxch	st(2)
		fmulp	st(1), st
		fsubp	st(1), st
		fstp	dword ptr [ecx+60h]
		mov	ecx, [edx+1B8h]
		add	ecx, esi
		fld	dword ptr [ecx+58h]
		fld	st
		fmul	st, st(1)
		fld	dword ptr [ecx+5Ch]
		fld	st
		fmul	st, st(1)
		fld	dword ptr [ecx+60h]
		fld	st
		fmul	st, st(1)
		fxch	st(4)
		faddp	st(2), st
		fxch	st(1)
		fadd	st, st(5)
		faddp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_38]
		mov	ebx, [ebp+var_38]
		movd	xmm4, ebx
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm4
		movaps	xmm4, xmm0
		subss	xmm4, xmm2
		movaps	xmm2, xmm4
		mulss	xmm2, xmm3
		mulss	xmm1, xmm2
		movss	[ebp+var_38], xmm1
		fld	[ebp+var_38]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [ecx+58h]
		fmul	st, st(2)
		fstp	dword ptr [ecx+5Ch]
		fmulp	st(1), st
		fstp	dword ptr [ecx+60h]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax+14h]
		fsub	st, st(1)
		fstp	[ebp+var_1C]
		fld	dword ptr [eax+0Ch]
		fld	dword ptr [eax+18h]
		fsub	st, st(1)
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+1Ch]
		fsub	st, st(1)
		fxch	st(4)
		fsubr	dword ptr [eax+2Ch]
		fxch	st(3)
		fsubr	dword ptr [eax+30h]
		fxch	st(1)
		fsubr	dword ptr [eax+34h]
		fld	st(1)
		fmul	st, st(5)
		fld	st(1)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_1C]
		fxch	st(5)
		fmul	st, st(4)
		fsubp	st(5), st
		fxch	st(2)
		fmulp	st(3), st
		fmul	[ebp+var_1C]
		fsubp	st(2), st
		fld	st
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	st, st(5)
		faddp	st(1), st
		fstp	[ebp+var_38]
		mov	ecx, [ebp+var_38]
		movd	xmm4, ecx
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm4
		movaps	xmm4, xmm0
		subss	xmm4, xmm2
		movaps	xmm2, xmm4
		mulss	xmm2, xmm3
		mulss	xmm1, xmm2
		movss	[ebp+var_38], xmm1
		fld	[ebp+var_38]
		fxch	st(3)
		fmul	[ebp+var_30]
		fxch	st(1)
		fmul	[ebp+var_2C]
		faddp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_34]
		faddp	st(1), st
		fmulp	st(1), st
		fldz
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_85F85
		mov	ecx, [edx+1B8h]
		add	ecx, esi
		fld	dword ptr [ecx+4Ch]
		fchs
		fstp	dword ptr [ecx+4Ch]
		fld	dword ptr [ecx+50h]
		fchs
		fstp	dword ptr [ecx+50h]
		fld	dword ptr [ecx+54h]
		fchs
		fstp	dword ptr [ecx+54h]

loc_85F85:				; CODE XREF: CCoreDispInfo::GenerateDispSurfTangentSpaces(void)+343j
		add	edi, 1
		add	esi, 90h
		cmp	edi, [ebp+var_3C]
		jnz	loc_85CC8
		fstp	st
		jmp	short loc_85FA8
; ---------------------------------------------------------------------------

loc_85F9B:				; CODE XREF: CCoreDispInfo::GenerateDispSurfTangentSpaces(void)+4Ej
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		nop
		lea	esi, [esi+0]

loc_85FA8:				; CODE XREF: CCoreDispInfo::GenerateDispSurfTangentSpaces(void)+379j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo29GenerateDispSurfTangentSpacesEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CalcNormalFromEdges(int, int, bool *, Vector &)
_ZN13CCoreDispInfo19CalcNormalFromEdgesEiiPbR6Vector proc near
					; CODE XREF: CCoreDispInfo::GenerateDispSurfNormals(void)+A4p

var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	edx, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_C]
		mov	eax, [ebp+arg_10]
		mov	ecx, [esi+0Ch]
		movzx	edi, byte ptr [ebx+1]
		shl	edx, cl
		add	edx, 1
		mov	[ebp+var_28], edx
		mov	edx, edi
		test	dl, dl
		jnz	short loc_86040
		movzx	ecx, byte ptr [ebx+2]
		fldz
		xor	edx, edx
		fst	[ebp+var_30]
		fst	[ebp+var_3C]
		mov	byte ptr [ebp+var_2C], cl

loc_85FED:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+A8j
					; CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+49Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_86006
		mov	ecx, edi
		test	cl, cl
		jnz	loc_86458
		cmp	byte ptr [ebx+3], 0
		jnz	loc_8666B

loc_86006:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+40j
					; CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+6B5j ...
		cmp	byte ptr [ebp+var_2C], 0
		jz	short loc_86012
		cmp	byte ptr [ebx+3], 0
		jnz	short loc_86060

loc_86012:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+5Aj
					; CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+29Cj
		mov	[ebp+var_1C], edx
		fild	[ebp+var_1C]
		fdivr	ds:flt_1EBCFC
		fmul	st(1), st
		fxch	st(1)
		fstp	dword ptr [eax]
		fld	[ebp+var_30]
		fmul	st, st(1)
		fstp	dword ptr [eax+4]
		fmul	[ebp+var_3C]
		fstp	dword ptr [eax+8]
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_86040:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+2Aj
		cmp	byte ptr [ebx+2], 0
		jnz	loc_86258
		fldz
		mov	byte ptr [ebp+var_2C], 0
		xor	edx, edx
		fst	[ebp+var_30]
		fst	[ebp+var_3C]
		jmp	short loc_85FED
; ---------------------------------------------------------------------------
		align 10h

loc_86060:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+60j
		mov	edi, [ebp+arg_8]
		add	edx, 2
		mov	ebx, [ebp+arg_8]
		mov	ecx, [esi+1B8h]
		mov	esi, [ebp+arg_4]
		imul	edi, [ebp+var_28]
		sub	ebx, 1
		imul	ebx, [ebp+var_28]
		mov	[ebp+var_20], edi
		add	edi, [ebp+arg_4]
		add	esi, ebx
		lea	esi, [esi+esi*8]
		lea	edi, [edi+edi*8]
		shl	esi, 4
		shl	edi, 4
		add	esi, ecx
		add	edi, ecx
		fld	dword ptr [edi+28h]
		fst	[ebp+var_28]
		fld	dword ptr [esi+28h]
		fsub	st(1), st
		fxch	st(1)
		fstp	[ebp+var_38]
		fld	dword ptr [edi+2Ch]
		fst	[ebp+var_24]
		fld	dword ptr [esi+2Ch]
		fsub	st(1), st
		fxch	st(1)
		fstp	[ebp+var_34]
		fld	dword ptr [edi+30h]
		fst	[ebp+var_40]
		fld	dword ptr [esi+30h]
		mov	esi, [ebp+arg_4]
		fsub	st(1), st
		add	esi, 1
		add	ebx, esi
		lea	ebx, [ebx+ebx*8]
		shl	ebx, 4
		add	ebx, ecx
		fld	dword ptr [ebx+28h]
		fsubr	st(4), st
		fxch	st(4)
		fstp	[ebp+var_2C]
		fld	dword ptr [ebx+2Ch]
		fsubr	st(3), st
		fxch	st(3)
		fstp	[ebp+var_44]
		fld	dword ptr [ebx+30h]
		fsubr	st(1), st
		fld	[ebp+var_44]
		fmul	st, st(3)
		fld	[ebp+var_34]
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_38]
		fxch	st(3)
		fmul	[ebp+var_2C]
		fsubp	st(3), st
		fld	[ebp+var_2C]
		fmul	[ebp+var_34]
		fstp	[ebp+var_2C]
		fld	[ebp+var_44]
		fmul	[ebp+var_38]
		fsubr	[ebp+var_2C]
		fstp	[ebp+var_2C]
		add	esi, [ebp+var_20]
		movss	xmm4, ds:dword_1EBD40
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fstp	[ebp+var_34]
		fld	[ebp+var_2C]
		fmul	st, st
		fxch	st(1)
		fadd	[ebp+var_34]
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_58]
		fld	[ebp+var_28]
		fsub	st, st(5)
		mov	ebx, [ebp+var_58]
		fstp	[ebp+var_34]
		fld	[ebp+var_24]
		movd	xmm1, ebx
		fsub	st, st(4)
		lea	ebx, [esi+esi*8]
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		shl	ebx, 4
		add	ecx, ebx
		fstp	[ebp+var_28]
		fld	[ebp+var_40]
		movaps	xmm2, xmm0
		fsub	st, st(1)
		fxch	st(5)
		mulss	xmm2, xmm0
		fsubr	dword ptr [ecx+28h]
		fxch	st(4)
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		fsubr	dword ptr [ecx+2Ch]
		subss	xmm3, xmm2
		fst	[ebp+var_20]
		fxch	st(1)
		movaps	xmm2, xmm3
		fsubr	dword ptr [ecx+30h]
		fxch	st(1)
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		fmul	st, st(5)
		movss	[ebp+var_38], xmm0
		fld	[ebp+var_28]
		fmul	st, st(2)
		fsubp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_34]
		fxch	st(5)
		fmul	st, st(4)
		fsubp	st(5), st
		fxch	st(3)
		fmul	[ebp+var_28]
		fld	[ebp+var_20]
		fmul	[ebp+var_34]
		fsubp	st(1), st
		fstp	[ebp+var_28]
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		fld	[ebp+var_28]
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_58]
		mov	ecx, [ebp+var_58]
		movd	xmm3, ecx
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_58], xmm0
		fld	[ebp+var_58]
		fxch	st(1)
		fmul	[ebp+var_38]
		fxch	st(3)
		fmul	st, st(1)
		faddp	st(3), st
		fxch	st(4)
		faddp	st(2), st
		fmul	[ebp+var_38]
		fxch	st(2)
		fmul	st, st(3)
		faddp	st(2), st
		fxch	st(1)
		fadd	[ebp+var_30]
		fstp	[ebp+var_30]
		fld	[ebp+var_38]
		fmul	[ebp+var_2C]
		fxch	st(2)
		fmul	[ebp+var_28]
		faddp	st(2), st
		fxch	st(1)
		fadd	[ebp+var_3C]
		fstp	[ebp+var_3C]
		jmp	loc_86012
; ---------------------------------------------------------------------------
		align 8

loc_86258:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+94j
		mov	edx, [ebp+arg_8]
		mov	ecx, [ebp+arg_4]
		imul	edx, [ebp+var_28]
		mov	[ebp+var_20], edx
		add	edx, [ebp+arg_4]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [esi+1B8h]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+arg_8]
		add	edx, 1
		imul	edx, [ebp+var_28]
		add	ecx, edx
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		add	ecx, [esi+1B8h]
		mov	[ebp+var_24], ecx
		fld	dword ptr [ecx+28h]
		mov	ecx, [ebp+var_30]
		fst	[ebp+var_34]
		fld	dword ptr [ecx+28h]
		fsub	st(1), st
		fxch	st(1)
		mov	ecx, [ebp+var_24]
		fstp	[ebp+var_40]
		fld	dword ptr [ecx+2Ch]
		mov	ecx, [ebp+var_30]
		fstp	[ebp+var_44]
		fld	dword ptr [ecx+2Ch]
		fld	[ebp+var_44]
		mov	ecx, [ebp+var_24]
		fsub	st, st(1)
		fld	dword ptr [ecx+30h]
		mov	ecx, [ebp+var_30]
		fstp	[ebp+var_48]
		fld	dword ptr [ecx+30h]
		mov	ecx, [ebp+arg_4]
		fld	[ebp+var_48]
		fsub	st, st(1)
		add	ecx, 1
		mov	[ebp+var_24], ecx
		mov	ecx, [ebp+var_20]
		add	ecx, [ebp+var_24]
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		add	ecx, [esi+1B8h]
		fld	dword ptr [ecx+28h]
		fsubr	st(5), st
		fld	dword ptr [ecx+2Ch]
		fsubr	st(5), st
		fxch	st(5)
		fstp	[ebp+var_20]
		add	edx, [ebp+var_24]
		movss	xmm4, ds:dword_1EBD40
		fld	dword ptr [ecx+30h]
		fsubr	st(3), st
		lea	edx, [edx+edx*8]
		fld	[ebp+var_20]
		shl	edx, 4
		fmul	st, st(3)
		fstp	[ebp+var_30]
		fld	st(3)
		fmul	st, st(5)
		fsubr	[ebp+var_30]
		fst	[ebp+var_30]
		fxch	st(4)
		fmul	[ebp+var_40]
		fxch	st(3)
		fmul	st, st(7)
		fsubp	st(3), st
		fxch	st(4)
		fmulp	st(6), st
		fld	[ebp+var_20]
		fmul	[ebp+var_40]
		fsubp	st(6), st
		fld	st(2)
		fmulp	st(3), st
		fld	st(1)
		fmul	st, st(2)
		fld	st(6)
		fmul	st, st(7)
		fxch	st(4)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_58]
		fld	[ebp+var_34]
		fsub	st, st(2)
		add	edx, [esi+1B8h]
		mov	ecx, [ebp+var_58]
		fstp	[ebp+var_34]
		fld	[ebp+var_44]
		fsub	st, st(4)
		movd	xmm1, ecx
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		fst	[ebp+var_40]
		fld	[ebp+var_48]
		fsub	st, st(4)
		fxch	st(3)
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		fsubr	dword ptr [edx+28h]
		fxch	st(5)
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		fsubr	dword ptr [edx+2Ch]
		subss	xmm3, xmm2
		fld	dword ptr [edx+30h]
		movaps	xmm2, xmm3
		fsubrp	st(5), st
		mulss	xmm2, xmm4
		fld	st
		fmul	st, st(4)
		fxch	st(2)
		mulss	xmm0, xmm2
		fmul	st, st(5)
		movss	[ebp+var_20], xmm0
		fsubp	st(2), st
		fxch	st(4)
		fmul	[ebp+var_34]
		fxch	st(3)
		fmul	st, st(5)
		fsubp	st(3), st
		fxch	st(4)
		fmul	[ebp+var_40]
		fxch	st(3)
		fmul	[ebp+var_34]
		fsubp	st(3), st
		fld	st(3)
		fmul	st, st(4)
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_58]
		mov	edx, [ebp+var_58]
		movd	xmm3, edx
		mov	edx, 2
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_58], xmm0
		fld	[ebp+var_58]
		fmul	st(4), st
		fld	[ebp+var_20]
		fmul	[ebp+var_30]
		faddp	st(5), st
		fmul	st(2), st
		fxch	st(1)
		fmul	[ebp+var_20]
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_30]
		fmulp	st(1), st
		fxch	st(2)
		mov	byte ptr [ebp+var_2C], 1
		fmul	[ebp+var_20]
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_3C]
		jmp	loc_85FED
; ---------------------------------------------------------------------------
		align 8

loc_86458:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+46j
		mov	edi, [ebp+arg_8]
		add	edx, 2
		imul	edi, [ebp+var_28]
		mov	[ebp+var_24], edi
		mov	edi, [ebp+arg_4]
		sub	edi, 1
		mov	[ebp+var_44], edi
		mov	edi, [ebp+var_24]
		add	edi, [ebp+var_44]
		lea	edi, [edi+edi*8]
		shl	edi, 4
		add	edi, [esi+1B8h]
		mov	[ebp+var_20], edi
		mov	edi, [ebp+arg_8]
		mov	ecx, [ebp+var_20]
		add	edi, 1
		imul	edi, [ebp+var_28]
		mov	[ebp+var_40], edi
		mov	edi, [ebp+var_44]
		add	edi, [ebp+var_40]
		lea	edi, [edi+edi*8]
		shl	edi, 4
		add	edi, [esi+1B8h]
		fld	dword ptr [edi+28h]
		fst	[ebp+var_48]
		fld	dword ptr [ecx+28h]
		fsub	st(1), st
		fxch	st(1)
		fstp	[ebp+var_44]
		fld	dword ptr [edi+2Ch]
		fst	[ebp+var_4C]
		fld	dword ptr [ecx+2Ch]
		fsub	st(1), st
		fxch	st(1)
		fstp	[ebp+var_50]
		fld	dword ptr [edi+30h]
		mov	edi, [ebp+arg_4]
		fst	[ebp+var_54]
		fld	dword ptr [ecx+30h]
		fsub	st(1), st
		add	edi, [ebp+var_24]
		lea	edi, [edi+edi*8]
		shl	edi, 4
		add	edi, [esi+1B8h]
		fld	dword ptr [edi+28h]
		fsubr	st(4), st
		fxch	st(4)
		fstp	[ebp+var_20]
		fld	dword ptr [edi+2Ch]
		fsubr	st(3), st
		fxch	st(3)
		fstp	[ebp+var_24]
		movss	xmm4, ds:dword_1EBD40
		fld	dword ptr [edi+30h]
		fsubr	st(1), st
		mov	edi, [ebp+arg_4]
		fld	[ebp+var_24]
		fmul	st, st(3)
		add	edi, [ebp+var_40]
		lea	edi, [edi+edi*8]
		fld	[ebp+var_50]
		shl	edi, 4
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_44]
		fxch	st(3)
		fmul	[ebp+var_20]
		fsubp	st(3), st
		fld	[ebp+var_20]
		fmul	[ebp+var_50]
		fld	[ebp+var_24]
		fmul	[ebp+var_44]
		fsubp	st(1), st
		fstp	[ebp+var_20]
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fstp	[ebp+var_34]
		fld	[ebp+var_20]
		fmul	st, st
		fxch	st(1)
		fadd	[ebp+var_34]
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_58]
		fld	[ebp+var_48]
		fsub	st, st(5)
		add	edi, [esi+1B8h]
		mov	ecx, [ebp+var_58]
		fstp	[ebp+var_48]
		fld	[ebp+var_4C]
		fsub	st, st(4)
		movd	xmm1, ecx
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		fstp	[ebp+var_24]
		fld	[ebp+var_54]
		fsub	st, st(1)
		fxch	st(5)
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		fsubr	dword ptr [edi+28h]
		fxch	st(4)
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		fsubr	dword ptr [edi+2Ch]
		subss	xmm3, xmm2
		fst	[ebp+var_34]
		fxch	st(1)
		movaps	xmm2, xmm3
		fsubr	dword ptr [edi+30h]
		fxch	st(1)
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		fmul	st, st(5)
		movss	[ebp+var_44], xmm0
		fld	[ebp+var_24]
		fmul	st, st(2)
		fsubp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_48]
		fxch	st(5)
		fmul	st, st(4)
		fsubp	st(5), st
		fxch	st(3)
		fmul	[ebp+var_24]
		fld	[ebp+var_34]
		fmul	[ebp+var_48]
		fsubp	st(1), st
		fstp	[ebp+var_24]
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		fld	[ebp+var_24]
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_58]
		mov	ecx, [ebp+var_58]
		movd	xmm3, ecx
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_58], xmm0
		fld	[ebp+var_58]
		fxch	st(1)
		fmul	[ebp+var_44]
		fxch	st(3)
		cmp	byte ptr [ebx+3], 0
		fmul	st, st(1)
		faddp	st(3), st
		fxch	st(4)
		faddp	st(2), st
		fmul	[ebp+var_44]
		fxch	st(2)
		fmul	st, st(3)
		faddp	st(2), st
		fxch	st(1)
		fadd	[ebp+var_30]
		fstp	[ebp+var_30]
		fld	[ebp+var_44]
		fmul	[ebp+var_20]
		fxch	st(2)
		fmul	[ebp+var_24]
		faddp	st(2), st
		fxch	st(1)
		fadd	[ebp+var_3C]
		fstp	[ebp+var_3C]
		jz	loc_86006

loc_8666B:				; CODE XREF: CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector &)+50j
		mov	edi, [ebp+arg_8]
		add	edx, 2
		sub	edi, 1
		imul	edi, [ebp+var_28]
		mov	[ebp+var_20], edi
		mov	edi, [ebp+arg_4]
		sub	edi, 1
		mov	[ebp+var_40], edi
		mov	edi, [ebp+var_20]
		add	edi, [ebp+var_40]
		lea	edi, [edi+edi*8]
		shl	edi, 4
		add	edi, [esi+1B8h]
		mov	[ebp+var_24], edi
		mov	edi, [ebp+arg_8]
		mov	ecx, [ebp+var_24]
		imul	edi, [ebp+var_28]
		mov	[ebp+var_44], edi
		mov	edi, [ebp+var_40]
		add	edi, [ebp+var_44]
		lea	edi, [edi+edi*8]
		shl	edi, 4
		add	edi, [esi+1B8h]
		fld	dword ptr [edi+28h]
		fst	[ebp+var_48]
		fld	dword ptr [ecx+28h]
		fsub	st(1), st
		fxch	st(1)
		fstp	[ebp+var_40]
		fld	dword ptr [edi+2Ch]
		fst	[ebp+var_4C]
		fld	dword ptr [ecx+2Ch]
		fsub	st(1), st
		fxch	st(1)
		fstp	[ebp+var_50]
		fld	dword ptr [edi+30h]
		mov	edi, [ebp+arg_4]
		fst	[ebp+var_54]
		fld	dword ptr [ecx+30h]
		fsub	st(1), st
		add	edi, [ebp+var_20]
		lea	edi, [edi+edi*8]
		shl	edi, 4
		add	edi, [esi+1B8h]
		fld	dword ptr [edi+28h]
		fsubr	st(4), st
		fxch	st(4)
		fstp	[ebp+var_20]
		fld	dword ptr [edi+2Ch]
		fsubr	st(3), st
		fxch	st(3)
		fstp	[ebp+var_24]
		movss	xmm4, ds:dword_1EBD40
		fld	dword ptr [edi+30h]
		fsubr	st(1), st
		mov	edi, [ebp+arg_4]
		fld	[ebp+var_24]
		fmul	st, st(3)
		add	edi, [ebp+var_44]
		lea	edi, [edi+edi*8]
		fld	[ebp+var_50]
		shl	edi, 4
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_40]
		fxch	st(3)
		fmul	[ebp+var_20]
		fsubp	st(3), st
		fld	[ebp+var_20]
		fmul	[ebp+var_50]
		fld	[ebp+var_24]
		fmul	[ebp+var_40]
		fsubp	st(1), st
		fstp	[ebp+var_20]
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fstp	[ebp+var_34]
		fld	[ebp+var_20]
		fmul	st, st
		fxch	st(1)
		fadd	[ebp+var_34]
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_58]
		fld	[ebp+var_48]
		fsub	st, st(5)
		add	edi, [esi+1B8h]
		mov	ecx, [ebp+var_58]
		fstp	[ebp+var_48]
		fld	[ebp+var_4C]
		fsub	st, st(4)
		movd	xmm1, ecx
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		fstp	[ebp+var_24]
		fld	[ebp+var_54]
		fsub	st, st(1)
		fxch	st(5)
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		fsubr	dword ptr [edi+28h]
		fxch	st(4)
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		fsubr	dword ptr [edi+2Ch]
		subss	xmm3, xmm2
		fst	[ebp+var_34]
		fxch	st(1)
		movaps	xmm2, xmm3
		fsubr	dword ptr [edi+30h]
		fxch	st(1)
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		fmul	st, st(5)
		movss	[ebp+var_40], xmm0
		fld	[ebp+var_24]
		fmul	st, st(2)
		fsubp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_48]
		fxch	st(5)
		fmul	st, st(4)
		fsubp	st(5), st
		fxch	st(3)
		fmul	[ebp+var_24]
		fld	[ebp+var_34]
		fmul	[ebp+var_48]
		fsubp	st(1), st
		fstp	[ebp+var_24]
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		fld	[ebp+var_24]
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_58]
		mov	ecx, [ebp+var_58]
		movd	xmm3, ecx
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_58], xmm0
		fld	[ebp+var_58]
		fxch	st(1)
		fmul	[ebp+var_40]
		fxch	st(3)
		fmul	st, st(1)
		faddp	st(3), st
		fxch	st(4)
		faddp	st(2), st
		fmul	[ebp+var_40]
		fxch	st(2)
		fmul	st, st(3)
		faddp	st(2), st
		fxch	st(1)
		fadd	[ebp+var_30]
		fstp	[ebp+var_30]
		fld	[ebp+var_40]
		fmul	[ebp+var_20]
		fxch	st(2)
		fmul	[ebp+var_24]
		faddp	st(2), st
		fxch	st(1)
		fadd	[ebp+var_3C]
		fstp	[ebp+var_3C]
		jmp	loc_86006
_ZN13CCoreDispInfo19CalcNormalFromEdgesEiiPbR6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DoesEdgeExist(int, int, int, int)
_ZN13CCoreDispInfo13DoesEdgeExistEiiii proc near
					; CODE XREF: CCoreDispInfo::GenerateDispSurfNormals(void)+71p

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_C]
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_10]
		cmp	edx, 1
		jz	short loc_868C0
		jle	short loc_868D0
		cmp	edx, 2
		jz	short loc_868B0
		test	eax, eax
		setnle	al
		cmp	edx, 3
		jz	short loc_868A8

loc_868A6:				; CODE XREF: CCoreDispInfo::DoesEdgeExist(int,int,int,int)+59j
		xor	eax, eax

loc_868A8:				; CODE XREF: CCoreDispInfo::DoesEdgeExist(int,int,int,int)+24j
					; CCoreDispInfo::DoesEdgeExist(int,int,int,int)+57j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_868B0:				; CODE XREF: CCoreDispInfo::DoesEdgeExist(int,int,int,int)+1Aj
		sub	ecx, 1
		cmp	ebx, ecx
		pop	ebx
		setl	al
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_868C0:				; CODE XREF: CCoreDispInfo::DoesEdgeExist(int,int,int,int)+13j
		pop	ebx
		sub	ecx, 1
		cmp	ecx, eax
		setnle	al
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_868D0:				; CODE XREF: CCoreDispInfo::DoesEdgeExist(int,int,int,int)+15j
		test	ebx, ebx
		setnle	al
		test	edx, edx
		jz	short loc_868A8
		jmp	short loc_868A6
_ZN13CCoreDispInfo13DoesEdgeExistEiiii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GenerateDispSurfNormals(void)
_ZN13CCoreDispInfo23GenerateDispSurfNormalsEv proc near
					; CODE XREF: CCoreDispInfo::CreateWithoutLOD(void)+35p
					; CCoreDispInfo::Create(void)+35p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+0Ch]
		shl	eax, cl
		add	eax, 1
		test	eax, eax
		mov	[ebp+var_38], eax
		jle	loc_869C6
		lea	eax, [eax+eax*8]
		mov	[ebp+var_3C], 0
		shl	eax, 4
		mov	[ebp+var_30], 0
		mov	[ebp+var_40], eax
		nop
		lea	esi, [esi+0]

loc_86920:				; CODE XREF: CCoreDispInfo::GenerateDispSurfNormals(void)+E0j
		mov	eax, [ebp+var_3C]
		xor	edi, edi
		mov	[ebp+var_34], eax
		nop
		lea	esi, [esi+0]

loc_86930:				; CODE XREF: CCoreDispInfo::GenerateDispSurfNormals(void)+CEj
		mov	[ebp+var_2C], ebx
		mov	ebx, [ebp+var_38]
		xor	esi, esi

loc_86938:				; CODE XREF: CCoreDispInfo::GenerateDispSurfNormals(void)+80j
		mov	eax, [ebp+var_30]
		mov	[esp+0Ch], esi
		mov	[esp+10h], ebx
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	eax, [ebp+var_2C]
		mov	[esp], eax
		call	_ZN13CCoreDispInfo13DoesEdgeExistEiiii ; CCoreDispInfo::DoesEdgeExist(int,int,int,int)
		mov	[ebp+esi+var_1C], al
		add	esi, 1
		cmp	esi, 4
		jnz	short loc_86938
		lea	eax, [ebp+var_28]
		mov	ebx, [ebp+var_2C]
		mov	[esp+4], edi
		mov	[esp+10h], eax
		lea	eax, [ebp+var_1C]
		add	edi, 1
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_30]
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_ZN13CCoreDispInfo19CalcNormalFromEdgesEiiPbR6Vector ; CCoreDispInfo::CalcNormalFromEdges(int,int,bool *,Vector	&)
		mov	eax, [ebp+var_34]
		mov	edx, [ebp+var_28]
		add	[ebp+var_34], 90h
		add	eax, [ebx+1B8h]
		cmp	edi, [ebp+var_38]
		mov	[eax+40h], edx
		mov	edx, [ebp+var_24]
		mov	[eax+44h], edx
		mov	edx, [ebp+var_20]
		mov	[eax+48h], edx
		jl	short loc_86930
		mov	eax, [ebp+var_40]
		add	[ebp+var_30], 1
		add	[ebp+var_3C], eax
		mov	eax, [ebp+var_38]
		cmp	[ebp+var_30], eax
		jl	loc_86920

loc_869C6:				; CODE XREF: CCoreDispInfo::GenerateDispSurfNormals(void)+1Ej
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo23GenerateDispSurfNormalsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GenerateDispSurf(void)
_ZN13CCoreDispInfo16GenerateDispSurfEv proc near
					; CODE XREF: CCoreDispInfo::CreateWithoutLOD(void)+2Dp
					; CCoreDispInfo::Create(void)+2Dp

var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ACh
		mov	eax, [ebp+arg_0]
		lea	edi, [eax+10h]

loc_869E4:				; CODE XREF: CCoreDispInfo::GenerateDispSurf(void)+3Bj
		lea	esi, [edx+edx*2]
		add	edx, 1
		lea	ecx, [ebp+var_48]
		shl	esi, 2
		add	ecx, esi
		add	esi, edi
		cmp	edx, 4
		lea	ebx, [esi+8]
		mov	esi, [esi+8]
		mov	[ecx], esi
		mov	esi, [ebx+4]
		mov	ebx, [ebx+8]
		mov	[ecx+4], esi
		mov	[ecx+8], ebx
		jnz	short loc_869E4
		mov	ecx, [eax+0Ch]
		mov	dl, 1
		shl	edx, cl
		mov	[ebp+var_4C], edx
		lea	esi, [edx+1]
		fild	[ebp+var_4C]
		fdivr	ds:flt_1EBCFC
		fstp	[ebp+var_74]
		fld	[ebp+var_48]
		fst	[ebp+var_98]
		fld	[ebp+var_44]
		fst	[ebp+var_9C]
		fld	[ebp+var_40]
		fst	[ebp+var_A0]
		fxch	st(2)
		fsubr	[ebp+var_3C]
		fld	[ebp+var_74]
		fmulp	st(1), st
		fstp	[ebp+var_7C]
		fsubr	[ebp+var_38]
		fld	[ebp+var_74]
		fmulp	st(1), st
		fstp	[ebp+var_80]
		fsubr	[ebp+var_34]
		fld	[ebp+var_74]
		fmulp	st(1), st
		fstp	[ebp+var_84]
		fld	[ebp+var_24]
		fst	[ebp+var_A4]
		fld	[ebp+var_20]
		fst	[ebp+var_A8]
		fld	[ebp+var_1C]
		fst	[ebp+var_AC]
		fxch	st(2)
		fsubr	[ebp+var_30]
		fld	[ebp+var_74]
		fmulp	st(1), st
		fstp	[ebp+var_88]
		fsubr	[ebp+var_2C]
		fld	[ebp+var_74]
		fmulp	st(1), st
		fstp	[ebp+var_8C]
		fsubr	[ebp+var_28]
		fld	[ebp+var_74]
		fmulp	st(1), st
		fstp	[ebp+var_90]
		fld	dword ptr [eax+8]
		fldz
		fcomi	st, st(1)
		jnz	loc_86C2D
		fstp	st(1)
		fst	[ebp+var_68]
		fst	[ebp+var_70]
		fstp	[ebp+var_6C]

loc_86AC6:				; CODE XREF: CCoreDispInfo::GenerateDispSurf(void)+32Bj
		test	esi, esi
		jle	loc_86C22
		lea	edx, [esi+esi*8]
		mov	[ebp+var_78], 0
		xor	edi, edi
		shl	edx, 4
		mov	[ebp+var_94], edx
		nop
		lea	esi, [esi+0]

loc_86AE8:				; CODE XREF: CCoreDispInfo::GenerateDispSurf(void)+24Cj
		mov	[ebp+var_4C], edi
		mov	ebx, [ebp+var_78]
		xor	ecx, ecx
		fild	[ebp+var_4C]
		fld	[ebp+var_7C]
		fmul	st, st(1)
		fadd	[ebp+var_98]
		fst	[ebp+var_5C]
		fld	[ebp+var_80]
		fmul	st, st(2)
		fadd	[ebp+var_9C]
		fst	[ebp+var_60]
		fld	[ebp+var_84]
		fmul	st, st(3)
		fadd	[ebp+var_A0]
		fst	[ebp+var_64]
		fld	[ebp+var_88]
		fmul	st, st(4)
		fadd	[ebp+var_A4]
		fsubrp	st(3), st
		fxch	st(2)
		fmul	[ebp+var_74]
		fld	[ebp+var_8C]
		fmul	st, st(4)
		fadd	[ebp+var_A8]
		fsubrp	st(2), st
		fxch	st(1)
		fmul	[ebp+var_74]
		fxch	st(3)
		fmul	[ebp+var_90]
		fadd	[ebp+var_AC]
		fsubrp	st(2), st
		fxch	st(1)
		fmul	[ebp+var_74]
		fstp	[ebp+var_58]
		lea	esi, [esi+0]

loc_86B68:				; CODE XREF: CCoreDispInfo::GenerateDispSurf(void)+234j
		mov	edx, [eax+1B8h]
		mov	[ebp+var_4C], ecx
		fild	[ebp+var_4C]
		fld	st
		fmul	st, st(2)
		add	edx, ebx
		fadd	[ebp+var_5C]
		fld	st(1)
		fmul	st, st(4)
		fadd	[ebp+var_60]
		fxch	st(2)
		fmul	[ebp+var_58]
		fadd	[ebp+var_64]
		fxch	st(1)
		fst	dword ptr [edx+34h]
		fxch	st(2)
		fst	dword ptr [edx+38h]
		fxch	st(1)
		fst	dword ptr [edx+3Ch]
		fxch	st(2)
		fst	dword ptr [edx+28h]
		fxch	st(1)
		fst	dword ptr [edx+2Ch]
		fxch	st(2)
		fst	dword ptr [edx+30h]
		fld	dword ptr [eax+8]
		fldz
		fcomip	st, st(1)
		fstp	st
		jz	short loc_86BCA
		fxch	st(1)
		fadd	[ebp+var_6C]
		fxch	st(2)
		fadd	[ebp+var_70]
		fxch	st(1)
		fadd	[ebp+var_68]
		fxch	st(1)
		fxch	st(2)
		fxch	st(1)

loc_86BCA:				; CODE XREF: CCoreDispInfo::GenerateDispSurf(void)+1E3j
		fld	dword ptr [edx+0Ch]
		add	ecx, 1
		add	ebx, 90h
		fld	dword ptr [edx+4]
		cmp	ecx, esi
		fmul	st, st(1)
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		fxch	st(2)
		fmul	dword ptr [edx]
		fadd	dword ptr [edx+1Ch]
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [edx+28h]
		fxch	st(2)
		fadd	dword ptr [edx+20h]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx+2Ch]
		fadd	dword ptr [edx+24h]
		faddp	st(1), st
		fstp	dword ptr [edx+30h]
		jl	loc_86B68
		fstp	st
		fstp	st
		mov	edx, [ebp+var_94]
		add	edi, 1
		add	[ebp+var_78], edx
		cmp	edi, esi
		jl	loc_86AE8

loc_86C22:				; CODE XREF: CCoreDispInfo::GenerateDispSurf(void)+F8j
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_86C2D:				; CODE XREF: CCoreDispInfo::GenerateDispSurf(void)+E5j
		fstp	st
		fld	dword ptr [eax+18h]
		fld	dword ptr [eax+24h]
		fsub	st, st(1)
		fstp	[ebp+var_50]
		fld	dword ptr [eax+1Ch]
		fld	dword ptr [eax+28h]
		fsub	st, st(1)
		fld	dword ptr [eax+20h]
		fld	dword ptr [eax+2Ch]
		fsub	st, st(1)
		fxch	st(4)
		fsubr	dword ptr [eax+3Ch]
		fxch	st(3)
		fsubr	dword ptr [eax+40h]
		fstp	[ebp+var_54]
		fld	dword ptr [eax+44h]
		fsubrp	st(1), st
		fld	[ebp+var_54]
		fmul	st, st(4)
		fld	st(1)
		fmul	st, st(3)
		fsubp	st(1), st
		fld	[ebp+var_50]
		fmulp	st(2), st
		fld	st(3)
		fmulp	st(5), st
		fxch	st(1)
		fsubrp	st(4), st
		fxch	st(2)
		fmulp	st(1), st
		fld	[ebp+var_54]
		fmul	[ebp+var_50]
		fsubp	st(1), st
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_B0]
		mov	edx, [ebp+var_B0]
		movd	xmm0, edx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_B0], xmm1
		fld	[ebp+var_B0]
		fxch	st(2)
		fmul	st, st(4)
		fmul	st, st(2)
		fstp	[ebp+var_6C]
		fxch	st(2)
		fmul	st, st(3)
		fmul	st, st(1)
		fstp	[ebp+var_70]
		fxch	st(1)
		fmulp	st(2), st
		fmulp	st(1), st
		fstp	[ebp+var_68]
		jmp	loc_86AC6
_ZN13CCoreDispInfo16GenerateDispSurfEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeNeighborNode(int, int,	int, int)
_Z19GetNodeNeighborNodeiiii proc near

var_10		= dword	ptr -10h
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4
		mov	[ebp+var_10], 0FFFE7961h
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+arg_4]
		sub	ecx, 1
		cmp	ecx, 3
		ja	short loc_86D28
		mov	eax, dword ptr ds:CSWTCH_184[ecx*4]
		mov	[ebp+var_10], eax

loc_86D28:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+1Cj
		mov	edi, 1
		xor	ebx, ebx
		xor	esi, esi
		shl	edi, cl
		sub	edx, [ebp+var_10]
		jz	short loc_86D5E
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_86D40:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+5Cj
		mov	eax, edx
		and	eax, 1
		shl	eax, cl
		or	ebx, eax
		mov	eax, edx
		sar	edx, 2
		sar	eax, 1
		and	eax, 1
		shl	eax, cl
		add	ecx, 1
		or	esi, eax
		test	edx, edx
		jnz	short loc_86D40

loc_86D5E:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+36j
		cmp	[ebp+arg_8], 1
		jz	loc_86E38
		jle	loc_86E90
		cmp	[ebp+arg_8], 2
		jz	short loc_86D90
		cmp	[ebp+arg_8], 3
		jz	short loc_86DE8

loc_86D7A:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+195j
		mov	eax, 0FFFE7961h

loc_86D7F:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+1EDj
					; GetNodeNeighborNode(int,int,int,int)+1F7j ...
		add	esp, 4
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_86D90:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+72j
		add	ebx, 1
		cmp	ebx, edi
		jz	loc_86EF2
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_86DB8
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_86DA8:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+B6j
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_86DA8

loc_86DB8:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+9Fj
		test	esi, esi
		jz	short loc_86DD8
		mov	ecx, 1
		lea	esi, [esi+0]

loc_86DC8:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+D6j
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_86DC8

loc_86DD8:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+BAj
					; GetNodeNeighborNode(int,int,int,int)+112j ...
		add	eax, [ebp+var_10]

loc_86DDB:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+133j
					; GetNodeNeighborNode(int,int,int,int)+183j ...
		add	esp, 4
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_86DE8:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+78j
		test	esi, esi
		jle	loc_86EFC
		sub	esi, 1
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_86E10
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_86E00:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+10Ej
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_86E00

loc_86E10:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+F7j
		test	esi, esi
		jz	short loc_86DD8
		mov	ecx, 1
		lea	esi, [esi+0]

loc_86E20:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+12Ej
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_86E20
		add	eax, [ebp+var_10]
		jmp	short loc_86DDB
; ---------------------------------------------------------------------------
		align 4

loc_86E38:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+62j
		add	esi, 1
		cmp	esi, edi
		jz	loc_86EE8
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_86E60
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_86E50:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+15Ej
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_86E50

loc_86E60:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+147j
		test	esi, esi
		jz	loc_86DD8
		mov	ecx, 1
		lea	esi, [esi+0]

loc_86E70:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+17Ej
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_86E70
		add	eax, [ebp+var_10]
		jmp	loc_86DDB
; ---------------------------------------------------------------------------
		align 10h

loc_86E90:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+68j
		mov	edx, [ebp+arg_8]
		test	edx, edx
		jnz	loc_86D7A
		test	ebx, ebx
		jle	short loc_86F06
		xor	eax, eax
		sub	ebx, 1
		jz	short loc_86EC0
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_86EB0:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+1BEj
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_86EB0

loc_86EC0:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+1A4j
		test	esi, esi
		jz	loc_86DD8
		mov	ecx, 1
		lea	esi, [esi+0]

loc_86ED0:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+1DEj
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_86ED0
		add	eax, [ebp+var_10]
		jmp	loc_86DDB
; ---------------------------------------------------------------------------

loc_86EE8:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+13Dj
		mov	eax, 0FFFFFFFEh
		jmp	loc_86D7F
; ---------------------------------------------------------------------------

loc_86EF2:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+95j
		mov	eax, 0FFFFFFFDh
		jmp	loc_86D7F
; ---------------------------------------------------------------------------

loc_86EFC:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+EAj
		mov	eax, 0FFFFFFFCh
		jmp	loc_86D7F
; ---------------------------------------------------------------------------

loc_86F06:				; CODE XREF: GetNodeNeighborNode(int,int,int,int)+19Dj
		mov	eax, 0FFFFFFFFh
		jmp	loc_86D7F
_Z19GetNodeNeighborNodeiiii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNodeNeighborNodeFromNeighborSurf(int, int,	int, int, int)
_Z35GetNodeNeighborNodeFromNeighborSurfiiiii proc near

var_10		= dword	ptr -10h
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4
		mov	[ebp+var_10], 0FFFE7961h
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+arg_4]
		sub	ecx, 1
		cmp	ecx, 3
		ja	short loc_86F38
		mov	eax, dword ptr ds:CSWTCH_184[ecx*4]
		mov	[ebp+var_10], eax

loc_86F38:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+1Cj
		mov	edi, 1
		xor	esi, esi
		xor	ebx, ebx
		shl	edi, cl
		sub	edx, [ebp+var_10]
		jz	short loc_86F6E
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_86F50:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+5Cj
		mov	eax, edx
		and	eax, 1
		shl	eax, cl
		or	esi, eax
		mov	eax, edx
		sar	edx, 2
		sar	eax, 1
		and	eax, 1
		shl	eax, cl
		add	ecx, 1
		or	ebx, eax
		test	edx, edx
		jnz	short loc_86F50

loc_86F6E:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+36j
		cmp	[ebp+arg_8], 1
		jz	loc_87090
		jle	loc_87108
		cmp	[ebp+arg_8], 2
		jz	short loc_86FA0
		cmp	[ebp+arg_8], 3
		jz	loc_87020

loc_86F8E:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+B0j
					; GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+130j ...
		add	esp, 4
		mov	eax, 0FFFE7961h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_86FA0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+72j
		cmp	[ebp+arg_10], 1
		jz	loc_871C5
		jle	loc_87495
		cmp	[ebp+arg_10], 2
		jz	loc_87315
		cmp	[ebp+arg_10], 3
		db	66h
		nop
		jnz	short loc_86F8E
		sub	edi, 1
		xor	eax, eax
		mov	edx, edi
		sub	edx, esi
		sub	edi, ebx
		jz	short loc_86FE8
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_86FD8:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+D6j
		mov	ebx, edi
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edi, 1
		jnz	short loc_86FD8

loc_86FE8:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+BDj
		test	edx, edx
		jz	short loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_86FF8:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+F6j
		mov	ebx, edx
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edx, 1
		jnz	short loc_86FF8
		nop
		lea	esi, [esi+0]

loc_87010:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+DAj
					; GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+15Aj ...
		add	eax, [ebp+var_10]
		add	esp, 4
		pop	ebx
		neg	eax
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_87020:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+78j
		cmp	[ebp+arg_10], 1
		jz	loc_87205
		jle	loc_873F5
		cmp	[ebp+arg_10], 2
		jz	loc_8728D
		cmp	[ebp+arg_10], 3
		db	66h
		nop
		jnz	loc_86F8E
		sub	edi, 1
		xor	eax, eax
		sub	edi, esi
		jz	short loc_87068
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_87058:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+156j
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_87058

loc_87068:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+13Dj
		test	ebx, ebx
		jz	short loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87078:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+176j
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_87078
		jmp	short loc_87010
; ---------------------------------------------------------------------------
		align 10h

loc_87090:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+62j
		cmp	[ebp+arg_10], 1
		jz	loc_8717D
		lea	esi, [esi+0]
		jle	loc_87445
		cmp	[ebp+arg_10], 2
		jz	loc_872D5
		cmp	[ebp+arg_10], 3
		jnz	loc_86F8E
		sub	edi, 1
		xor	eax, eax
		sub	edi, ebx
		test	esi, esi
		jz	short loc_870E0
		xor	ecx, ecx
		mov	esi, esi
		lea	edi, [edi+0]

loc_870D0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+1CEj
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_870D0

loc_870E0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+1B3j
		test	edi, edi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_870F0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+1EEj
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_870F0
		jmp	loc_87010
; ---------------------------------------------------------------------------
		align 4

loc_87108:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+68j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jnz	loc_86F8E
		cmp	[ebp+arg_10], 1
		jz	loc_87245
		jle	loc_873A5
		cmp	[ebp+arg_10], 2
		jz	loc_8735D
		cmp	[ebp+arg_10], 3
		jnz	loc_86F8E
		xor	eax, eax
		xor	ecx, ecx
		test	ebx, ebx
		jz	loc_874E5
		nop
		lea	esi, [esi+0]

loc_87148:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+246j
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_87148

loc_87158:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+5D8j
		test	esi, esi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87168:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+266j
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_87168
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_8717D:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+184j
		sub	edi, 1
		xor	eax, eax
		sub	edi, esi
		jz	short loc_871A0
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_87190:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+28Ej
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_87190

loc_871A0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+274j
		test	ebx, ebx
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_871B0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+2AEj
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_871B0
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_871C5:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+94j
		xor	eax, eax
		xor	ecx, ecx
		test	ebx, ebx
		jz	short loc_871E0
		lea	esi, [esi+0]

loc_871D0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+2CEj
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_871D0

loc_871E0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+2BBj
		test	esi, esi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_871F0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+2EEj
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_871F0
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_87205:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+114j
		sub	edi, 1
		xor	eax, eax
		test	esi, esi
		jz	short loc_87220
		xor	ecx, ecx

loc_87210:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+30Ej
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_87210

loc_87220:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+2FCj
		test	edi, edi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87230:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+32Ej
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_87230
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_87245:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+207j
		sub	edi, 1
		xor	eax, eax
		mov	edx, edi
		sub	edx, ebx
		jz	short loc_87268
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_87258:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+356j
		mov	ebx, edx
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edx, 1
		jnz	short loc_87258

loc_87268:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+33Ej
		test	edi, edi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87278:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+376j
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_87278
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_8728D:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+124j
		sub	edi, 1
		xor	eax, eax
		mov	edx, edi
		sub	edx, esi
		test	edi, edi
		jz	short loc_872B0
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_872A0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+39Ej
		mov	ebx, edi
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edi, 1
		jnz	short loc_872A0

loc_872B0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+388j
		test	edx, edx
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_872C0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+3BEj
		mov	ebx, edx
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edx, 1
		jnz	short loc_872C0
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_872D5:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+19Aj
		xor	eax, eax
		xor	ecx, ecx
		test	ebx, ebx
		jz	short loc_872F0
		lea	esi, [esi+0]

loc_872E0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+3DEj
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_872E0

loc_872F0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+3CBj
		test	esi, esi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87300:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+3FEj
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_87300
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_87315:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+A4j
		sub	edi, 1
		xor	eax, eax
		sub	edi, ebx
		test	esi, esi
		jz	short loc_87338
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_87328:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+426j
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_87328

loc_87338:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+40Ej
		test	edi, edi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87348:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+446j
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_87348
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_8735D:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+217j
		xor	eax, eax
		sub	edi, 1
		jz	short loc_87380
		xor	ecx, ecx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_87370:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+46Ej
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_87370

loc_87380:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+452j
		test	ebx, ebx
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87390:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+48Ej
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_87390
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_873A5:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+20Dj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jnz	loc_86F8E
		sub	edi, 1
		xor	eax, eax
		sub	edi, ebx
		test	esi, esi
		jz	short loc_873D0
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_873C0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+4BEj
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_873C0

loc_873D0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+4A9j
		test	edi, edi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_873E0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+4DEj
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_873E0
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_873F5:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+11Aj
		mov	ecx, [ebp+arg_10]
		test	ecx, ecx
		jnz	loc_86F8E
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_87420
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_87410:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+50Ej
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_87410

loc_87420:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+4F4j
		test	esi, esi
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87430:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+52Ej
		mov	edx, esi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	esi, 1
		jnz	short loc_87430
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_87445:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+190j
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jnz	loc_86F8E
		sub	edi, 1
		xor	eax, eax
		mov	edx, edi
		sub	edx, esi
		sub	edi, ebx
		jz	short loc_87470
		xor	ecx, ecx
		nop

loc_87460:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+55Ej
		mov	ebx, edi
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edi, 1
		jnz	short loc_87460

loc_87470:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+54Bj
		test	edx, edx
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_87480:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+57Ej
		mov	ebx, edx
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edx, 1
		jnz	short loc_87480
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_87495:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+9Aj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jnz	loc_86F8E
		sub	edi, 1
		xor	eax, eax
		sub	edi, esi
		jz	short loc_874C0
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_874B0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+5AEj
		mov	edx, edi
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	edi, 1
		jnz	short loc_874B0

loc_874C0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+597j
		test	ebx, ebx
		jz	loc_87010
		mov	ecx, 1
		lea	esi, [esi+0]

loc_874D0:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+5CEj
		mov	edx, ebx
		and	edx, 1
		shl	edx, cl
		add	ecx, 2
		or	eax, edx
		sar	ebx, 1
		jnz	short loc_874D0
		jmp	loc_87010
; ---------------------------------------------------------------------------

loc_874E5:				; CODE XREF: GetNodeNeighborNodeFromNeighborSurf(int,int,int,int,int)+22Dj
		mov	eax, [ebp+arg_8]
		jmp	loc_87158
_Z35GetNodeNeighborNodeFromNeighborSurfiiiii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::BaseFacePlaneToDispUV(Vector  const&, Vector2D	&)
_ZN13CCoreDispInfo21BaseFacePlaneToDispUVERK6VectorR8Vector2D proc near

var_48		= byte ptr -48h
var_3C		= byte ptr -3Ch
var_30		= byte ptr -30h
var_24		= byte ptr -24h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_48]
		push	ebx
		sub	esp, 5Ch
		mov	edx, [ebp+arg_0]
		lea	edi, [edx+10h]

loc_87504:				; CODE XREF: CCoreDispInfo::BaseFacePlaneToDispUV(Vector  const&,Vector2D &)+39j
		lea	ebx, [eax+eax*2]
		add	eax, 1
		shl	ebx, 2
		lea	edx, [esi+ebx]
		add	ebx, edi
		cmp	eax, 4
		lea	ecx, [ebx+8]
		mov	ebx, [ebx+8]
		mov	[edx], ebx
		mov	ebx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[edx+4], ebx
		mov	[edx+8], ecx
		jnz	short loc_87504
		mov	eax, [ebp+arg_8]
		mov	[esp], esi
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+10h], eax
		lea	eax, [ebp+var_3C]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_30]
		mov	[esp+8], eax
		lea	eax, [ebp+var_24]
		mov	[esp+4], eax
		call	_Z24PointInQuadToBarycentricRK6VectorS1_S1_S1_S1_R8Vector2D ; PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo21BaseFacePlaneToDispUVERK6VectorR8Vector2D endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&, int, int, int, int, Vector&, Vector*,	float *, bool)
_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_2ERK6VectoriiiiRS0_PS0_Pfb proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+60Bp
					; CCoreDispInfo::DispUVToSurf_TriTLToBR(Vector &,Vector*,float *,float,float,Vector const&)+94p

var_A8		= dword	ptr -0A8h
var_A1		= byte ptr -0A1h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= byte ptr  2Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		movzx	edx, [ebp+arg_24]
		mov	[ebp+var_A1], dl
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		mov	edx, [ebp+arg_10]
		shl	eax, cl
		mov	ecx, [ebp+arg_8]
		add	eax, 1
		imul	edx, eax
		imul	eax, [ebp+arg_14]
		add	ecx, edx
		add	edx, [ebp+arg_C]
		add	eax, [ebp+arg_8]
		mov	[ebp+var_3C], ecx
		mov	[ebp+var_34], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_38], eax
		mov	edi, [edx+1B8h]
		xor	edx, edx

loc_875AF:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+A2j
		lea	eax, [ecx+ecx*8]
		lea	ebx, [edx+edx*2]
		shl	eax, 4
		lea	ecx, [ebp+var_84]
		add	eax, edi
		shl	ebx, 2
		mov	esi, [eax+34h]
		add	ecx, ebx
		mov	[ecx], esi
		mov	esi, [eax+38h]
		mov	[ecx+4], esi
		mov	esi, [eax+3Ch]
		mov	[ecx+8], esi
		lea	ecx, [ebp+var_60]
		add	ebx, ecx
		mov	ecx, [eax+28h]
		mov	[ebx], ecx
		mov	ecx, [eax+2Ch]
		mov	[ebx+4], ecx
		mov	ecx, [eax+30h]
		mov	eax, [eax+8Ch]
		mov	[ebx+8], ecx
		mov	[ebp+edx*4+var_30], eax
		add	edx, 1
		cmp	edx, 3
		jz	short loc_87608
		mov	ecx, [ebp+edx*4+var_3C]
		jmp	short loc_875AF
; ---------------------------------------------------------------------------
		align 8

loc_87608:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+9Cj
		mov	edx, [ebp+arg_C]
		cmp	[ebp+arg_8], edx
		mov	edx, [ebp+arg_14]
		jz	loc_87998
		cmp	[ebp+arg_10], edx
		jz	loc_87808
		lea	edx, [ebp+var_1C]
		mov	[esp+18h], edx
		lea	edx, [ebp+var_20]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_4]
		lea	eax, [ebp+var_24]
		mov	[esp+10h], eax
		lea	eax, [ebp+var_6C]
		mov	[esp+8], eax
		lea	ecx, [ebp+var_84]
		lea	eax, [ebp+var_78]
		mov	[esp], ecx
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		call	_Z21CalcBarycentricCooefsRK6VectorS1_S1_S1_RfS2_S2_ ; CalcBarycentricCooefs(Vector  const&,Vector  const&,Vector  const&,Vector	 const&,float &,float &,float &)
		test	al, al
		jz	loc_87B18
		fld	[ebp+var_1C]
		fld	[ebp+var_48]
		fstp	[ebp+var_8C]
		mov	edx, [ebp+arg_18]
		fld	[ebp+var_44]
		fstp	[ebp+var_90]
		mov	eax, [ebp+arg_20]
		fld	[ebp+var_40]
		fstp	[ebp+var_94]
		fld	[ebp+var_20]
		fld	[ebp+var_54]
		test	eax, eax
		fstp	[ebp+var_98]
		fld	[ebp+var_50]
		fstp	[ebp+var_9C]
		fld	[ebp+var_4C]
		fstp	[ebp+var_A0]
		fld	[ebp+var_24]
		fld	[ebp+var_60]
		fld	[ebp+var_5C]
		fld	[ebp+var_58]
		fld	[ebp+var_98]
		fmul	st, st(5)
		fld	[ebp+var_8C]
		fmul	st, st(7)
		faddp	st(1), st
		fld	st(3)
		fmul	st, st(5)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	[ebp+var_9C]
		fmul	st, st(5)
		fld	[ebp+var_90]
		fmul	st, st(7)
		faddp	st(1), st
		fld	st(2)
		fmul	st, st(5)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	[ebp+var_A0]
		fmul	st, st(5)
		fld	[ebp+var_94]
		fmul	st, st(7)
		faddp	st(1), st
		fld	st(1)
		fmul	st, st(5)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		jz	short loc_8771E
		fxch	st(4)
		fmul	[ebp+var_2C]
		fxch	st(3)
		mov	edx, [ebp+arg_20]
		fmul	[ebp+var_30]
		faddp	st(3), st
		fxch	st(4)
		fmul	[ebp+var_28]
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [edx]
		jmp	short loc_87728
; ---------------------------------------------------------------------------

loc_8771E:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1A0j
		fstp	st(4)
		fstp	st(4)
		fstp	st(1)
		lea	esi, [esi+0]

loc_87728:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1BCj
		mov	eax, [ebp+arg_1C]
		test	eax, eax
		jz	loc_8796B
		fld	[ebp+var_8C]
		fsub	st, st(1)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_90]
		fsub	st, st(4)
		fld	[ebp+var_94]
		fsub	st, st(4)
		fxch	st(3)
		fsubr	[ebp+var_98]
		fxch	st(5)
		fsubr	[ebp+var_9C]
		fxch	st(4)
		fsubr	[ebp+var_A0]
		fld	st(4)
		fmul	st, st(3)
		fld	st(6)
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(6)
		fmul	st, st(4)
		fxch	st(3)
		fmul	st, st(1)
		fsubp	st(3), st
		fmulp	st(1), st
		fxch	st(3)
		fmulp	st(2), st
		fxch	st(2)
		fsubrp	st(1), st
		fld	st
		fmul	st, st(1)
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(1), st
		fxch	st(1)
		fstp	dword ptr [edx]
		fmul	st(1), st
		fxch	st(1)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_87808:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+BAj
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	ecx, [ebp+arg_20]
		fmul	st, st
		test	ecx, ecx
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_6C]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_68]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_64]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_60]
		fld	[ebp+var_48]
		fsub	st, st(1)
		fld	[ebp+var_5C]
		fld	[ebp+var_44]
		fsub	st, st(1)
		fld	[ebp+var_58]
		fld	[ebp+var_40]
		fsub	st, st(1)
		fstp	[ebp+var_8C]
		fld	st(5)
		fmul	st, st(4)
		fadd	st, st(5)
		fstp	dword ptr [edx]
		fld	st(5)
		fmul	st, st(2)
		fadd	st, st(3)
		fstp	dword ptr [edx+4]
		fld	[ebp+var_8C]
		fmul	st, st(6)
		fadd	st, st(1)
		fstp	dword ptr [edx+8]
		jz	short loc_878B0
		fld	[ebp+var_30]
		fld	[ebp+var_28]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(7), st
		faddp	st(6), st
		fxch	st(5)
		fstp	dword ptr [edx]
		jmp	short loc_878B8
; ---------------------------------------------------------------------------
		align 10h

loc_878B0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+336j
		fstp	st(5)
		lea	esi, [esi+0]

loc_878B8:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+34Bj
		mov	edx, [ebp+arg_1C]
		test	edx, edx
		jz	loc_87978
		fxch	st(3)
		fsubr	[ebp+var_54]
		fxch	st(1)
		mov	edx, [ebp+arg_1C]
		fsubr	[ebp+var_50]
		fxch	st(4)
		fsubr	[ebp+var_4C]
		fld	st(4)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(5)
		fsubp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_8C]
		fxch	st(3)
		fmul	st, st(1)
		fsubp	st(3), st
		fmulp	st(3), st
		fxch	st(3)
		fmul	[ebp+var_8C]
		fsubp	st(2), st
		fld	st(1)
		fmul	st, st(2)
		fld	st(1)
		fmul	st, st(2)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(2), st
		fxch	st(2)
		fstp	dword ptr [edx]
		fmul	st, st(1)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		jmp	short loc_87988
; ---------------------------------------------------------------------------

loc_8796B:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1CDj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_87988
; ---------------------------------------------------------------------------
		align 8

loc_87978:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+35Dj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_87988:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+409j
					; CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+411j ...
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_87998:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+B1j
		cmp	[ebp+arg_10], edx
		jz	loc_87B78
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	esi, [ebp+arg_20]
		fmul	st, st
		test	esi, esi
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_78]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_74]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_70]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_60]
		fld	[ebp+var_5C]
		fld	[ebp+var_58]
		fld	[ebp+var_50]
		fsub	st, st(2)
		fmul	st, st(4)
		faddp	st(2), st
		fld	[ebp+var_4C]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_54]
		fsub	st, st(3)
		fmul	st, st(4)
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx]
		fstp	dword ptr [edx+4]
		fstp	dword ptr [edx+8]
		jz	short loc_87A40
		fld	[ebp+var_30]
		fld	[ebp+var_2C]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx]
		jmp	short loc_87A48
; ---------------------------------------------------------------------------
		align 10h

loc_87A40:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4C1j
		fstp	st
		lea	esi, [esi+0]

loc_87A48:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4D4j
					; CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+634j
		mov	ebx, [ebp+arg_1C]
		test	ebx, ebx
		jz	loc_87988
		fld	[ebp+var_60]
		fld	[ebp+var_48]
		fsub	st, st(1)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_5C]
		fld	[ebp+var_44]
		fsub	st, st(1)
		fld	[ebp+var_58]
		fld	[ebp+var_40]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	[ebp+var_54]
		fxch	st(3)
		fsubr	[ebp+var_50]
		fxch	st(1)
		fsubr	[ebp+var_4C]
		fld	st(1)
		fmul	st, st(5)
		fld	st(4)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(4)
		fmul	st, st(6)
		fxch	st(5)
		fmul	st, st(1)
		fsubp	st(5), st
		fmulp	st(2), st
		fmulp	st(4), st
		fsubrp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fxch	st(1)
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_87B18:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+FAj
		cmp	[ebp+var_A1], 0
		jnz	loc_87988
		mov	edx, [ebp+arg_20]
		mov	dword ptr [esp+24h], 1
		mov	[esp+20h], edx
		mov	edx, [ebp+arg_1C]
		mov	[esp+1Ch], edx
		mov	edx, [ebp+arg_18]
		mov	[esp+18h], edx
		mov	edx, [ebp+arg_14]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_10]
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_1ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		jmp	loc_87988
; ---------------------------------------------------------------------------
		align 4

loc_87B78:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+43Bj
		mov	edx, [ebp+arg_18]
		mov	eax, [ebp+var_60]
		mov	[edx], eax
		mov	eax, [ebp+var_5C]
		mov	[edx+4], eax
		mov	eax, [ebp+var_58]
		mov	[edx+8], eax
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+arg_20]
		mov	[edx], eax
		jmp	loc_87A48
_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_2ERK6VectoriiiiRS0_PS0_Pfb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&, int, int, int, int, Vector&, Vector*,	float *, bool)
_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_1ERK6VectoriiiiRS0_PS0_Pfb proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+60Bp
					; CCoreDispInfo::DispUVToSurf_TriTLToBR(Vector &,Vector*,float *,float,float,Vector const&):loc_88290p

var_A8		= dword	ptr -0A8h
var_A1		= byte ptr -0A1h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= byte ptr  2Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		movzx	edx, [ebp+arg_24]
		mov	[ebp+var_A1], dl
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		mov	edx, [ebp+arg_14]
		shl	eax, cl
		mov	ecx, [ebp+arg_8]
		add	eax, 1
		imul	edx, eax
		imul	eax, [ebp+arg_10]
		add	ecx, edx
		add	edx, [ebp+arg_C]
		add	eax, [ebp+arg_C]
		mov	[ebp+var_3C], ecx
		mov	[ebp+var_38], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_34], eax
		mov	edi, [edx+1B8h]
		xor	edx, edx

loc_87BEF:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+A2j
		lea	eax, [ecx+ecx*8]
		lea	ebx, [edx+edx*2]
		shl	eax, 4
		lea	ecx, [ebp+var_84]
		add	eax, edi
		shl	ebx, 2
		mov	esi, [eax+34h]
		add	ecx, ebx
		mov	[ecx], esi
		mov	esi, [eax+38h]
		mov	[ecx+4], esi
		mov	esi, [eax+3Ch]
		mov	[ecx+8], esi
		lea	ecx, [ebp+var_60]
		add	ebx, ecx
		mov	ecx, [eax+28h]
		mov	[ebx], ecx
		mov	ecx, [eax+2Ch]
		mov	[ebx+4], ecx
		mov	ecx, [eax+30h]
		mov	eax, [eax+8Ch]
		mov	[ebx+8], ecx
		mov	[ebp+edx*4+var_30], eax
		add	edx, 1
		cmp	edx, 3
		jz	short loc_87C48
		mov	ecx, [ebp+edx*4+var_3C]
		jmp	short loc_87BEF
; ---------------------------------------------------------------------------
		align 8

loc_87C48:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+9Cj
		mov	edx, [ebp+arg_C]
		cmp	[ebp+arg_8], edx
		mov	edx, [ebp+arg_14]
		jz	loc_87FE0
		cmp	[ebp+arg_10], edx
		jz	loc_87E48
		lea	edx, [ebp+var_1C]
		mov	[esp+18h], edx
		lea	edx, [ebp+var_20]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_4]
		lea	eax, [ebp+var_24]
		mov	[esp+10h], eax
		lea	eax, [ebp+var_6C]
		mov	[esp+8], eax
		lea	ecx, [ebp+var_84]
		lea	eax, [ebp+var_78]
		mov	[esp], ecx
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		call	_Z21CalcBarycentricCooefsRK6VectorS1_S1_S1_RfS2_S2_ ; CalcBarycentricCooefs(Vector  const&,Vector  const&,Vector  const&,Vector	 const&,float &,float &,float &)
		test	al, al
		jz	loc_88158
		fld	[ebp+var_1C]
		fld	[ebp+var_48]
		fstp	[ebp+var_8C]
		mov	edx, [ebp+arg_18]
		fld	[ebp+var_44]
		fstp	[ebp+var_90]
		mov	eax, [ebp+arg_20]
		fld	[ebp+var_40]
		fstp	[ebp+var_94]
		fld	[ebp+var_20]
		fld	[ebp+var_54]
		test	eax, eax
		fld	[ebp+var_50]
		fld	[ebp+var_4C]
		fld	[ebp+var_24]
		fld	[ebp+var_60]
		fstp	[ebp+var_98]
		fld	[ebp+var_5C]
		fstp	[ebp+var_9C]
		fld	[ebp+var_58]
		fstp	[ebp+var_A0]
		fld	st(3)
		fmul	st, st(5)
		fld	[ebp+var_8C]
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_98]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	st(2)
		fmul	st, st(5)
		fld	[ebp+var_90]
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_9C]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	st(1)
		fmul	st, st(5)
		fld	[ebp+var_94]
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_A0]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		jz	short loc_87D5E
		fxch	st(4)
		fmul	[ebp+var_2C]
		fxch	st(4)
		mov	edx, [ebp+arg_20]
		fmul	[ebp+var_30]
		faddp	st(4), st
		fxch	st(4)
		fmul	[ebp+var_28]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx]
		jmp	short loc_87D68
; ---------------------------------------------------------------------------

loc_87D5E:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1A0j
		fstp	st
		fstp	st(4)
		fstp	st(2)
		lea	esi, [esi+0]

loc_87D68:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1BCj
		mov	edi, [ebp+arg_1C]
		test	edi, edi
		jz	loc_87FB1
		fld	[ebp+var_98]
		fsub	st, st(1)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_9C]
		fsub	st, st(3)
		fld	[ebp+var_A0]
		fsub	st, st(5)
		fxch	st(3)
		fsubr	[ebp+var_8C]
		fxch	st(4)
		fsubr	[ebp+var_90]
		fxch	st(5)
		fsubr	[ebp+var_94]
		fld	st(5)
		fmul	st, st(3)
		fld	st(5)
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(5)
		fmul	st, st(4)
		fxch	st(3)
		fmul	st, st(1)
		fsubp	st(3), st
		fmulp	st(1), st
		fxch	st(4)
		fmulp	st(2), st
		fxch	st(3)
		fsubrp	st(1), st
		fld	st
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(1), st
		fxch	st(1)
		fstp	dword ptr [edx]
		fmul	st(2), st
		fxch	st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_87E48:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+BAj
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	eax, [ebp+arg_20]
		fmul	st, st
		test	eax, eax
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_6C]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_68]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_64]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_48]
		fld	[ebp+var_60]
		fld	[ebp+var_44]
		fld	[ebp+var_5C]
		fld	[ebp+var_40]
		fstp	[ebp+var_8C]
		fld	[ebp+var_58]
		fld	st(4)
		fsub	st, st(4)
		fmul	st, st(6)
		fadd	st, st(4)
		fstp	dword ptr [edx]
		fld	st(2)
		fsub	st, st(2)
		fmul	st, st(6)
		fadd	st, st(2)
		fstp	dword ptr [edx+4]
		fld	[ebp+var_8C]
		fsub	st, st(1)
		fmul	st, st(6)
		fadd	st, st(1)
		fstp	dword ptr [edx+8]
		jz	short loc_87EF0
		fld	[ebp+var_30]
		fld	[ebp+var_28]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(7), st
		faddp	st(6), st
		fxch	st(5)
		fstp	dword ptr [edx]
		jmp	short loc_87EF8
; ---------------------------------------------------------------------------
		align 10h

loc_87EF0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+336j
		fstp	st(5)
		lea	esi, [esi+0]

loc_87EF8:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+34Bj
		mov	eax, [ebp+arg_1C]
		test	eax, eax
		jz	loc_87FC0
		fld	[ebp+var_54]
		fsub	st(3), st
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_50]
		fsub	st(2), st
		fld	[ebp+var_4C]
		fsub	st(7), st
		fxch	st(6)
		fsubrp	st(2), st
		fsubp	st(3), st
		fxch	st(4)
		fsubr	[ebp+var_8C]
		fld	st(2)
		fmul	st, st(4)
		fld	st(5)
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(5)
		fmul	st, st(6)
		fxch	st(4)
		fmul	st, st(1)
		fsubp	st(4), st
		fmulp	st(1), st
		fxch	st(4)
		fmulp	st(1), st
		fsubp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		jmp	short loc_87FD0
; ---------------------------------------------------------------------------

loc_87FB1:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1CDj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_87FD0
; ---------------------------------------------------------------------------
		align 10h

loc_87FC0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+35Dj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_87FD0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+40Fj
					; CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+417j ...
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_87FE0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+B1j
		cmp	[ebp+arg_10], edx
		jz	loc_881B8
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	eax, [ebp+arg_20]
		fmul	st, st
		test	eax, eax
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_6C]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_68]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_64]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_60]
		fld	[ebp+var_5C]
		fld	[ebp+var_58]
		fld	[ebp+var_44]
		fsub	st, st(2)
		fmul	st, st(4)
		faddp	st(2), st
		fld	[ebp+var_40]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_48]
		fsub	st, st(3)
		fmul	st, st(4)
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx]
		fstp	dword ptr [edx+4]
		fstp	dword ptr [edx+8]
		jz	short loc_88080
		fld	[ebp+var_30]
		fld	[ebp+var_28]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx]
		jmp	short loc_88088
; ---------------------------------------------------------------------------
		align 10h

loc_88080:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4C9j
		fstp	st
		lea	esi, [esi+0]

loc_88088:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4DCj
					; CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+634j
		mov	eax, [ebp+arg_1C]
		test	eax, eax
		jz	loc_87FD0
		fld	[ebp+var_54]
		fld	[ebp+var_60]
		fsub	st, st(1)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_50]
		fld	[ebp+var_5C]
		fsub	st, st(1)
		fld	[ebp+var_4C]
		fld	[ebp+var_58]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	[ebp+var_48]
		fxch	st(3)
		fsubr	[ebp+var_44]
		fxch	st(1)
		fsubr	[ebp+var_40]
		fld	st(1)
		fmul	st, st(5)
		fld	st(4)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(4)
		fmul	st, st(6)
		fxch	st(5)
		fmul	st, st(1)
		fsubp	st(5), st
		fmulp	st(2), st
		fmulp	st(4), st
		fsubrp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fxch	st(1)
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_88158:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+FAj
		cmp	[ebp+var_A1], 0
		jnz	loc_87FD0
		mov	edx, [ebp+arg_20]
		mov	dword ptr [esp+24h], 1
		mov	[esp+20h], edx
		mov	edx, [ebp+arg_1C]
		mov	[esp+1Ch], edx
		mov	edx, [ebp+arg_18]
		mov	[esp+18h], edx
		mov	edx, [ebp+arg_14]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_10]
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_2ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		jmp	loc_87FD0
; ---------------------------------------------------------------------------
		align 4

loc_881B8:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+443j
		mov	edx, [ebp+arg_18]
		mov	eax, [ebp+var_60]
		mov	[edx], eax
		mov	eax, [ebp+var_5C]
		mov	[edx+4], eax
		mov	eax, [ebp+var_58]
		mov	[edx+8], eax
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+arg_20]
		mov	[edx], eax
		jmp	loc_88088
_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_1ERK6VectoriiiiRS0_PS0_Pfb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DispUVToSurf_TriTLToBR(Vector &, Vector*, float *, float, float, Vector const&)
_ZN13CCoreDispInfo22DispUVToSurf_TriTLToBRER6VectorPS0_PfffRKS0_ proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+132p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		cvttss2si edx, [ebp+arg_10]
		mov	[ebp+var_4], edi
		cvttss2si ebx, [ebp+arg_14]
		mov	edi, 1
		fld	[ebp+arg_14]
		mov	ecx, [eax+0Ch]
		mov	dword ptr [esp+24h], 0
		fadd	[ebp+arg_10]
		mov	[ebp+var_1C], edx
		lea	esi, [ebx+1]
		mov	[esp+8], edx
		mov	[esp+10h], ebx
		shl	edi, cl
		mov	[esp], eax
		lea	ecx, [edx+1]
		add	edi, 1
		cmp	ecx, edi
		fild	[ebp+var_1C]
		mov	[ebp+var_1C], ebx
		cmovz	ecx, edx
		cmp	esi, edi
		mov	edi, [ebp+arg_C]
		fsubp	st(1), st
		mov	edx, [ebp+arg_18]
		cmovz	esi, ebx
		mov	[esp+0Ch], ecx
		mov	[esp+20h], edi
		mov	edi, [ebp+arg_8]
		fild	[ebp+var_1C]
		mov	[esp+14h], esi
		fsubp	st(1), st
		mov	[esp+4], edx
		mov	[esp+1Ch], edi
		mov	edi, [ebp+arg_4]
		fld	ds:flt_1EBD0C
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		mov	[esp+18h], edi
		jnb	short loc_88290
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_2ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriTLToBR_2(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_88290:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriTLToBR(Vector &,Vector*,float *,float,float,Vector const&)+92j
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriTLToBR_1ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriTLToBR_1(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo22DispUVToSurf_TriTLToBRER6VectorPS0_PfffRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&, int, int, int, int, Vector&, Vector*,	float *, bool)
_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_2ERK6VectoriiiiRS0_PS0_Pfb proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+60Bp
					; CCoreDispInfo::DispUVToSurf_TriBLToTR(Vector &,Vector*,float *,float,float,Vector const&)+88p
					; DATA XREF: ...

var_A8		= dword	ptr -0A8h
var_A1		= byte ptr -0A1h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= byte ptr  2Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		movzx	edx, [ebp+arg_24]
		mov	[ebp+var_A1], dl
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		mov	edx, [ebp+arg_10]
		shl	eax, cl
		mov	ecx, [ebp+arg_8]
		add	eax, 1
		imul	edx, eax
		imul	eax, [ebp+arg_14]
		add	ecx, edx
		add	edx, [ebp+arg_C]
		add	eax, [ebp+arg_C]
		mov	[ebp+var_3C], ecx
		mov	[ebp+var_34], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_38], eax
		mov	edi, [edx+1B8h]
		xor	edx, edx

loc_882FF:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+A2j
		lea	eax, [ecx+ecx*8]
		lea	ebx, [edx+edx*2]
		shl	eax, 4
		lea	ecx, [ebp+var_84]
		add	eax, edi
		shl	ebx, 2
		mov	esi, [eax+34h]
		add	ecx, ebx
		mov	[ecx], esi
		mov	esi, [eax+38h]
		mov	[ecx+4], esi
		mov	esi, [eax+3Ch]
		mov	[ecx+8], esi
		lea	ecx, [ebp+var_60]
		add	ebx, ecx
		mov	ecx, [eax+28h]
		mov	[ebx], ecx
		mov	ecx, [eax+2Ch]
		mov	[ebx+4], ecx
		mov	ecx, [eax+30h]
		mov	eax, [eax+8Ch]
		mov	[ebx+8], ecx
		mov	[ebp+edx*4+var_30], eax
		add	edx, 1
		cmp	edx, 3
		jz	short loc_88358
		mov	ecx, [ebp+edx*4+var_3C]
		jmp	short loc_882FF
; ---------------------------------------------------------------------------
		align 8

loc_88358:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+9Cj
		mov	edx, [ebp+arg_C]
		cmp	[ebp+arg_8], edx
		mov	edx, [ebp+arg_14]
		jz	loc_886F0
		cmp	[ebp+arg_10], edx
		jz	loc_88550
		lea	edx, [ebp+var_1C]
		mov	[esp+18h], edx
		lea	edx, [ebp+var_20]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_4]
		lea	eax, [ebp+var_24]
		mov	[esp+10h], eax
		lea	eax, [ebp+var_6C]
		mov	[esp+8], eax
		lea	ecx, [ebp+var_84]
		lea	eax, [ebp+var_78]
		mov	[esp], ecx
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		call	_Z21CalcBarycentricCooefsRK6VectorS1_S1_S1_RfS2_S2_ ; CalcBarycentricCooefs(Vector  const&,Vector  const&,Vector  const&,Vector	 const&,float &,float &,float &)
		test	al, al
		jz	loc_88868
		fld	[ebp+var_1C]
		fld	[ebp+var_48]
		fld	[ebp+var_44]
		fld	[ebp+var_40]
		fld	[ebp+var_20]
		fld	[ebp+var_54]
		fstp	[ebp+var_8C]
		mov	edx, [ebp+arg_18]
		fld	[ebp+var_50]
		fstp	[ebp+var_90]
		fld	[ebp+var_4C]
		fstp	[ebp+var_94]
		fld	[ebp+var_24]
		fld	[ebp+var_60]
		fstp	[ebp+var_98]
		fld	[ebp+var_5C]
		fstp	[ebp+var_9C]
		fld	[ebp+var_58]
		fstp	[ebp+var_A0]
		fld	[ebp+var_8C]
		fmul	st, st(2)
		fld	st(5)
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_98]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	[ebp+var_90]
		fmul	st, st(2)
		fld	st(4)
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_9C]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	[ebp+var_94]
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_A0]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		mov	edx, [ebp+arg_20]
		test	edx, edx
		jz	short loc_8846E
		fxch	st(1)
		fmul	[ebp+var_2C]
		fxch	st(1)
		mov	edx, [ebp+arg_20]
		fmul	[ebp+var_30]
		faddp	st(1), st
		fxch	st(4)
		fmul	[ebp+var_28]
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [edx]
		jmp	short loc_88478
; ---------------------------------------------------------------------------

loc_8846E:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1A0j
		fstp	st
		fstp	st
		fstp	st(3)
		lea	esi, [esi+0]

loc_88478:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1BCj
		mov	eax, [ebp+arg_1C]
		test	eax, eax
		jz	loc_886C7
		fld	[ebp+var_98]
		fsub	st, st(2)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_9C]
		fsub	st, st(2)
		fld	[ebp+var_A0]
		fsub	st, st(5)
		fxch	st(4)
		fsubr	[ebp+var_8C]
		fxch	st(3)
		fsubr	[ebp+var_90]
		fxch	st(5)
		fsubr	[ebp+var_94]
		fld	st(3)
		fmul	st, st(2)
		fld	st(6)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(3)
		fmul	st, st(1)
		fxch	st(4)
		fmul	st, st(5)
		fsubp	st(4), st
		fxch	st(5)
		fmulp	st(4), st
		fmulp	st(4), st
		fxch	st(2)
		fsubrp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_88550:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+BAj
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	ebx, [ebp+arg_20]
		fmul	st, st
		test	ebx, ebx
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_6C]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_68]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_64]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_48]
		fld	[ebp+var_60]
		fld	[ebp+var_44]
		fld	[ebp+var_5C]
		fld	[ebp+var_40]
		fld	[ebp+var_58]
		fstp	[ebp+var_8C]
		fld	st(4)
		fsub	st, st(4)
		fmul	st, st(6)
		fadd	st, st(4)
		fstp	dword ptr [edx]
		fld	st(2)
		fsub	st, st(2)
		fmul	st, st(6)
		fadd	st, st(2)
		fstp	dword ptr [edx+4]
		fld	[ebp+var_8C]
		fsubr	st, st(1)
		fmul	st, st(6)
		fadd	[ebp+var_8C]
		fstp	dword ptr [edx+8]
		jz	short loc_88600
		fld	[ebp+var_30]
		fld	[ebp+var_28]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(7), st
		faddp	st(6), st
		fxch	st(5)
		fstp	dword ptr [edx]
		jmp	short loc_88608
; ---------------------------------------------------------------------------
		align 10h

loc_88600:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+332j
		fstp	st(5)
		lea	esi, [esi+0]

loc_88608:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+347j
		mov	ecx, [ebp+arg_1C]
		test	ecx, ecx
		jz	loc_886D0
		fxch	st(2)
		fsub	st, st(3)
		fxch	st(2)
		mov	edx, [ebp+arg_1C]
		fsub	st, st(1)
		fld	[ebp+var_8C]
		fsub	st, st(5)
		fxch	st(4)
		fsubr	[ebp+var_54]
		fxch	st(2)
		fsubr	[ebp+var_50]
		fxch	st(5)
		fsubr	[ebp+var_4C]
		fld	st(2)
		fmul	st, st(2)
		fld	st(6)
		fmul	st, st(5)
		fsubp	st(1), st
		fxch	st(4)
		fmul	st, st(1)
		fxch	st(3)
		fmul	st, st(5)
		fsubp	st(3), st
		fxch	st(5)
		fmulp	st(4), st
		fmulp	st(4), st
		fxch	st(2)
		fsubrp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fxch	st(1)
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		jmp	short loc_886E0
; ---------------------------------------------------------------------------

loc_886C7:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1CDj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_886E0
; ---------------------------------------------------------------------------
		align 10h

loc_886D0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+35Dj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_886E0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+415j
					; CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+41Dj ...
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_886F0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+B1j
		cmp	[ebp+arg_10], edx
		jz	loc_888C8
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	edi, [ebp+arg_20]
		fmul	st, st
		test	edi, edi
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_78]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_74]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_70]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_60]
		fld	[ebp+var_5C]
		fld	[ebp+var_58]
		fld	[ebp+var_50]
		fsub	st, st(2)
		fmul	st, st(4)
		faddp	st(2), st
		fld	[ebp+var_4C]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_54]
		fsub	st, st(3)
		fmul	st, st(4)
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx]
		fstp	dword ptr [edx+4]
		fstp	dword ptr [edx+8]
		jz	short loc_88790
		fld	[ebp+var_30]
		fld	[ebp+var_2C]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx]
		jmp	short loc_88798
; ---------------------------------------------------------------------------
		align 10h

loc_88790:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4C9j
		fstp	st
		lea	esi, [esi+0]

loc_88798:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4DCj
					; CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+634j
		mov	esi, [ebp+arg_1C]
		test	esi, esi
		jz	loc_886E0
		fld	[ebp+var_48]
		fld	[ebp+var_60]
		fsub	st, st(1)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_44]
		fld	[ebp+var_5C]
		fsub	st, st(1)
		fld	[ebp+var_40]
		fld	[ebp+var_58]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	[ebp+var_54]
		fxch	st(3)
		fsubr	[ebp+var_50]
		fxch	st(1)
		fsubr	[ebp+var_4C]
		fld	st(3)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(6)
		fsubp	st(1), st
		fxch	st(5)
		fmul	st, st(1)
		fxch	st(4)
		fmul	st, st(6)
		fsubp	st(4), st
		fxch	st(1)
		fmulp	st(5), st
		fmulp	st(1), st
		fsubp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_88868:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+FAj
		cmp	[ebp+var_A1], 0
		jnz	loc_886E0
		mov	edx, [ebp+arg_20]
		mov	dword ptr [esp+24h], 1
		mov	[esp+20h], edx
		mov	edx, [ebp+arg_1C]
		mov	[esp+1Ch], edx
		mov	edx, [ebp+arg_18]
		mov	[esp+18h], edx
		mov	edx, [ebp+arg_14]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_10]
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_1ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		jmp	loc_886E0
; ---------------------------------------------------------------------------
		align 4

loc_888C8:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+443j
		mov	edx, [ebp+arg_18]
		mov	eax, [ebp+var_60]
		mov	[edx], eax
		mov	eax, [ebp+var_5C]
		mov	[edx+4], eax
		mov	eax, [ebp+var_58]
		mov	[edx+8], eax
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+arg_20]
		mov	[edx], eax
		jmp	loc_88798
_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_2ERK6VectoriiiiRS0_PS0_Pfb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&, int, int, int, int, Vector&, Vector*,	float *, bool)
_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_1ERK6VectoriiiiRS0_PS0_Pfb proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+60Bp
					; CCoreDispInfo::DispUVToSurf_TriBLToTR(Vector &,Vector*,float *,float,float,Vector const&):loc_88FD0p

var_A8		= dword	ptr -0A8h
var_A1		= byte ptr -0A1h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= byte ptr  2Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		movzx	edx, [ebp+arg_24]
		mov	[ebp+var_A1], dl
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		mov	edx, [ebp+arg_8]
		shl	eax, cl
		mov	ecx, [ebp+arg_10]
		add	eax, 1
		imul	ecx, eax
		imul	eax, [ebp+arg_14]
		add	ecx, [ebp+arg_8]
		add	edx, eax
		add	eax, [ebp+arg_C]
		mov	[ebp+var_38], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_3C], ecx
		mov	[ebp+var_34], eax
		mov	edi, [edx+1B8h]
		xor	edx, edx

loc_8893F:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+A2j
		lea	eax, [ecx+ecx*8]
		lea	ebx, [edx+edx*2]
		shl	eax, 4
		lea	ecx, [ebp+var_84]
		add	eax, edi
		shl	ebx, 2
		mov	esi, [eax+34h]
		add	ecx, ebx
		mov	[ecx], esi
		mov	esi, [eax+38h]
		mov	[ecx+4], esi
		mov	esi, [eax+3Ch]
		mov	[ecx+8], esi
		lea	ecx, [ebp+var_60]
		add	ebx, ecx
		mov	ecx, [eax+28h]
		mov	[ebx], ecx
		mov	ecx, [eax+2Ch]
		mov	[ebx+4], ecx
		mov	ecx, [eax+30h]
		mov	eax, [eax+8Ch]
		mov	[ebx+8], ecx
		mov	[ebp+edx*4+var_30], eax
		add	edx, 1
		cmp	edx, 3
		jz	short loc_88998
		mov	ecx, [ebp+edx*4+var_3C]
		jmp	short loc_8893F
; ---------------------------------------------------------------------------
		align 8

loc_88998:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+9Cj
		mov	edx, [ebp+arg_C]
		cmp	[ebp+arg_8], edx
		mov	edx, [ebp+arg_14]
		jz	loc_88D30
		cmp	[ebp+arg_10], edx
		jz	loc_88B98
		lea	edx, [ebp+var_1C]
		mov	[esp+18h], edx
		lea	edx, [ebp+var_20]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_4]
		lea	eax, [ebp+var_24]
		mov	[esp+10h], eax
		lea	eax, [ebp+var_6C]
		mov	[esp+8], eax
		lea	ecx, [ebp+var_84]
		lea	eax, [ebp+var_78]
		mov	[esp], ecx
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		call	_Z21CalcBarycentricCooefsRK6VectorS1_S1_S1_RfS2_S2_ ; CalcBarycentricCooefs(Vector  const&,Vector  const&,Vector  const&,Vector	 const&,float &,float &,float &)
		test	al, al
		jz	loc_88EA8
		fld	[ebp+var_1C]
		fld	[ebp+var_48]
		fstp	[ebp+var_8C]
		mov	edx, [ebp+arg_18]
		fld	[ebp+var_44]
		fstp	[ebp+var_90]
		mov	eax, [ebp+arg_20]
		fld	[ebp+var_40]
		fstp	[ebp+var_94]
		fld	[ebp+var_20]
		fld	[ebp+var_54]
		test	eax, eax
		fld	[ebp+var_50]
		fld	[ebp+var_4C]
		fld	[ebp+var_24]
		fld	[ebp+var_60]
		fstp	[ebp+var_98]
		fld	[ebp+var_5C]
		fstp	[ebp+var_9C]
		fld	[ebp+var_58]
		fstp	[ebp+var_A0]
		fld	st(3)
		fmul	st, st(5)
		fld	[ebp+var_8C]
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_98]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	st(2)
		fmul	st, st(5)
		fld	[ebp+var_90]
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_9C]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	st(1)
		fmul	st, st(5)
		fld	[ebp+var_94]
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_A0]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		jz	short loc_88AAE
		fxch	st(4)
		fmul	[ebp+var_2C]
		fxch	st(4)
		mov	edx, [ebp+arg_20]
		fmul	[ebp+var_30]
		faddp	st(4), st
		fxch	st(4)
		fmul	[ebp+var_28]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx]
		jmp	short loc_88AB8
; ---------------------------------------------------------------------------

loc_88AAE:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1A0j
		fstp	st
		fstp	st(4)
		fstp	st(2)
		lea	esi, [esi+0]

loc_88AB8:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1BCj
		mov	eax, [ebp+arg_1C]
		test	eax, eax
		jz	loc_88D08
		fld	[ebp+var_8C]
		fsub	st, st(1)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_90]
		fsub	st, st(3)
		fld	[ebp+var_94]
		fsub	st, st(5)
		fxch	st(3)
		fsubr	[ebp+var_98]
		fxch	st(4)
		fsubr	[ebp+var_9C]
		fxch	st(5)
		fsubr	[ebp+var_A0]
		fld	st(4)
		fmul	st, st(2)
		fld	st(6)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(3)
		fmul	st, st(1)
		fxch	st(5)
		fmul	st, st(4)
		fsubp	st(5), st
		fxch	st(5)
		fmulp	st(3), st
		fmulp	st(4), st
		fxch	st(1)
		fsubrp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fxch	st(1)
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_88B98:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+BAj
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	eax, [ebp+arg_20]
		fmul	st, st
		test	eax, eax
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_6C]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_68]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_64]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_48]
		fld	[ebp+var_60]
		fld	[ebp+var_44]
		fld	[ebp+var_5C]
		fld	[ebp+var_40]
		fstp	[ebp+var_90]
		fld	[ebp+var_58]
		fld	st(4)
		fsub	st, st(4)
		fmul	st, st(6)
		fadd	st, st(4)
		fstp	dword ptr [edx]
		fld	st(2)
		fsub	st, st(2)
		fmul	st, st(6)
		fadd	st, st(2)
		fstp	dword ptr [edx+4]
		fld	[ebp+var_90]
		fsub	st, st(1)
		fmul	st, st(6)
		fadd	st, st(1)
		fstp	dword ptr [edx+8]
		jz	short loc_88C40
		fld	[ebp+var_30]
		fld	[ebp+var_28]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(7), st
		faddp	st(6), st
		fxch	st(5)
		fstp	dword ptr [edx]
		jmp	short loc_88C48
; ---------------------------------------------------------------------------
		align 10h

loc_88C40:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+336j
		fstp	st(5)
		lea	esi, [esi+0]

loc_88C48:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+34Bj
		mov	eax, [ebp+arg_1C]
		test	eax, eax
		jz	loc_88D10
		fxch	st(3)
		fsub	[ebp+var_54]
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_50]
		fsub	st(2), st
		fld	[ebp+var_4C]
		fld	[ebp+var_90]
		fsub	st, st(1)
		fxch	st(5)
		fsub	[ebp+var_54]
		fxch	st(6)
		fsubrp	st(2), st
		fsubp	st(6), st
		fld	st(4)
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(2)
		fmul	st, st(6)
		fxch	st(5)
		fmul	st, st(4)
		fsubp	st(5), st
		fmulp	st(3), st
		fxch	st(1)
		fmulp	st(4), st
		fxch	st(1)
		fsubrp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fxch	st(1)
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		jmp	short loc_88D20
; ---------------------------------------------------------------------------

loc_88D08:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+1CDj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_88D20
; ---------------------------------------------------------------------------

loc_88D10:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+35Dj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_88D20:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+416j
					; CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+41Ej ...
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_88D30:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+B1j
		cmp	[ebp+arg_10], edx
		jz	loc_88F08
		mov	edx, [ebp+arg_4]
		fld	[ebp+var_84]
		fld	[ebp+var_80]
		fld	[ebp+var_7C]
		fld	dword ptr [edx]
		fsub	st, st(3)
		mov	eax, [ebp+arg_20]
		fmul	st, st
		test	eax, eax
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		mov	edx, [ebp+arg_18]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(3)
		fsubr	[ebp+var_6C]
		fmul	st, st
		fxch	st(2)
		fsubr	[ebp+var_68]
		fmul	st, st
		fxch	st(1)
		fsubr	[ebp+var_64]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fdivp	st(1), st
		fld	[ebp+var_60]
		fld	[ebp+var_5C]
		fld	[ebp+var_58]
		fld	[ebp+var_44]
		fsub	st, st(2)
		fmul	st, st(4)
		faddp	st(2), st
		fld	[ebp+var_40]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_48]
		fsub	st, st(3)
		fmul	st, st(4)
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx]
		fstp	dword ptr [edx+4]
		fstp	dword ptr [edx+8]
		jz	short loc_88DD0
		fld	[ebp+var_30]
		fld	[ebp+var_28]
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx]
		jmp	short loc_88DD8
; ---------------------------------------------------------------------------
		align 10h

loc_88DD0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4C9j
		fstp	st
		lea	esi, [esi+0]

loc_88DD8:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+4DCj
					; CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+634j
		mov	eax, [ebp+arg_1C]
		test	eax, eax
		jz	loc_88D20
		fld	[ebp+var_54]
		fld	[ebp+var_48]
		fsub	st, st(1)
		mov	edx, [ebp+arg_1C]
		fld	[ebp+var_50]
		fld	[ebp+var_44]
		fsub	st, st(1)
		fld	[ebp+var_4C]
		fld	[ebp+var_40]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	[ebp+var_60]
		fxch	st(3)
		fsubr	[ebp+var_5C]
		fxch	st(1)
		fsubr	[ebp+var_58]
		fld	st(1)
		fmul	st, st(5)
		fld	st(4)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(4)
		fmul	st, st(6)
		fxch	st(5)
		fmul	st, st(1)
		fsubp	st(5), st
		fmulp	st(2), st
		fmulp	st(4), st
		fsubrp	st(3), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_A8]
		mov	ecx, [ebp+var_A8]
		movd	xmm0, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_A8], xmm1
		fld	[ebp+var_A8]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fxch	st(1)
		fmul	st, st(2)
		fstp	dword ptr [edx+4]
		fmulp	st(1), st
		fstp	dword ptr [edx+8]
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_88EA8:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+FAj
		cmp	[ebp+var_A1], 0
		jnz	loc_88D20
		mov	edx, [ebp+arg_20]
		mov	dword ptr [esp+24h], 1
		mov	[esp+20h], edx
		mov	edx, [ebp+arg_1C]
		mov	[esp+1Ch], edx
		mov	edx, [ebp+arg_18]
		mov	[esp+18h], edx
		mov	edx, [ebp+arg_14]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_10]
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_2ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		jmp	loc_88D20
; ---------------------------------------------------------------------------
		align 4

loc_88F08:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector  const&,int,int,int,int,Vector&,Vector*,float *,bool)+443j
		mov	edx, [ebp+arg_18]
		mov	eax, [ebp+var_60]
		mov	[edx], eax
		mov	eax, [ebp+var_5C]
		mov	[edx+4], eax
		mov	eax, [ebp+var_58]
		mov	[edx+8], eax
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+arg_20]
		mov	[edx], eax
		jmp	loc_88DD8
_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_1ERK6VectoriiiiRS0_PS0_Pfb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DispUVToSurf_TriBLToTR(Vector &, Vector*, float *, float, float, Vector const&)
_ZN13CCoreDispInfo22DispUVToSurf_TriBLToTRER6VectorPS0_PfffRKS0_ proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+108p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		cvttss2si edx, [ebp+arg_10]
		mov	[ebp+var_4], edi
		cvttss2si ebx, [ebp+arg_14]
		mov	edi, 1
		mov	ecx, [eax+0Ch]
		mov	dword ptr [esp+24h], 0
		mov	[ebp+var_1C], edx
		lea	esi, [ebx+1]
		fild	[ebp+var_1C]
		mov	[ebp+var_1C], ebx
		fsubr	[ebp+arg_10]
		mov	[esp+8], edx
		shl	edi, cl
		mov	[esp+10h], ebx
		lea	ecx, [edx+1]
		add	edi, 1
		mov	[esp], eax
		cmp	ecx, edi
		cmovz	ecx, edx
		cmp	esi, edi
		mov	edi, [ebp+arg_C]
		cmovz	esi, ebx
		fild	[ebp+var_1C]
		fsubr	[ebp+arg_14]
		mov	[esp+0Ch], ecx
		mov	edx, [ebp+arg_18]
		mov	[esp+14h], esi
		mov	[esp+20h], edi
		mov	edi, [ebp+arg_8]
		fcomip	st, st(1)
		fstp	st
		mov	[esp+4], edx
		mov	[esp+1Ch], edi
		mov	edi, [ebp+arg_4]
		mov	[esp+18h], edi
		ja	short loc_88FD0
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_2ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriBLToTR_2(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_88FD0:				; CODE XREF: CCoreDispInfo::DispUVToSurf_TriBLToTR(Vector &,Vector*,float *,float,float,Vector const&)+86j
		call	_ZN13CCoreDispInfo24DispUVToSurf_TriBLToTR_1ERK6VectoriiiiRS0_PS0_Pfb ;	CCoreDispInfo::DispUVToSurf_TriBLToTR_1(Vector	const&,int,int,int,int,Vector&,Vector*,float *,bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo22DispUVToSurf_TriBLToTRER6VectorPS0_PfffRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::DispUVToSurf(Vector2D	const&,	Vector &, Vector*, float *)
_ZN13CCoreDispInfo12DispUVToSurfERK8Vector2DR6VectorPS3_Pf proc	near
					; CODE XREF: CCoreDispInfo::GetPositionOnSurface(float,float,Vector &,Vector*,float *)+34p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		fld	dword ptr [ebx]
		fldz
		fcomi	st, st(1)
		ja	short loc_89020
		fld1
		fxch	st(2)
		fcomip	st, st(2)
		jbe	short loc_89048
		fstp	st
		fstp	st
		jmp	short loc_89038
; ---------------------------------------------------------------------------
		align 10h

loc_89020:				; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+1Bj
		fstp	st
		fstp	st
		jmp	short loc_89038
; ---------------------------------------------------------------------------
		align 10h

loc_89030:				; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+5Fj
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_89038:				; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+29j
					; CCoreDispInfo::DispUVToSurf(Vector2D	const&,Vector &,Vector*,float *)+34j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_89048:				; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+23j
		fld	dword ptr [ebx+4]
		fxch	st(1)
		fcomip	st, st(1)
		ja	short loc_89030
		fcomip	st, st(1)
		fstp	st
		ja	short loc_89038
		lea	eax, [esi+24h]
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax
		lea	eax, [esi+30h]
		mov	[esp+8], eax
		lea	eax, [esi+3Ch]
		lea	edi, [ebp+var_24]
		mov	[esp+4], eax
		lea	eax, [esi+18h]
		mov	[esp+14h], edi
		mov	[esp], eax
		call	_Z26PointInQuadFromBarycentricRK6VectorS1_S1_S1_RK8Vector2DRS_ ; PointInQuadFromBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector	 const&,Vector2D  const&,Vector&)
		mov	ecx, [esi+0Ch]
		mov	eax, 1
		shl	eax, cl
		add	eax, 1
		mov	[ebp+var_2C], eax
		fild	[ebp+var_2C]
		fsub	ds:flt_1EBD10
		fld	dword ptr [ebx]
		fmul	st, st(1)
		fst	[ebp+var_30]
		fxch	st(1)
		fmul	dword ptr [ebx+4]
		mov	[esp+18h], edi
		fst	[ebp+var_34]
		cvttss2si edx, [ebp+var_34]
		imul	edx, eax
		cvttss2si eax, [ebp+var_30]
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		and	eax, 1
		sub	eax, ecx
		cmp	eax, 1
		jz	short loc_89102
		fstp	st
		fstp	st
		mov	eax, [ebp+arg_10]
		mov	[esp], esi
		fld	[ebp+var_34]
		fstp	dword ptr [esp+14h]
		fld	[ebp+var_30]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_C]
		fstp	dword ptr [esp+10h]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+4], eax
		call	_ZN13CCoreDispInfo22DispUVToSurf_TriBLToTRER6VectorPS0_PfffRKS0_ ; CCoreDispInfo::DispUVToSurf_TriBLToTR(Vector	&,Vector*,float	*,float,float,Vector const&)
		jmp	loc_89038
; ---------------------------------------------------------------------------

loc_89102:				; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+DCj
		mov	eax, [ebp+arg_10]
		fstp	dword ptr [esp+14h]
		fstp	dword ptr [esp+10h]
		mov	[esp], esi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+4], eax
		call	_ZN13CCoreDispInfo22DispUVToSurf_TriTLToBRER6VectorPS0_PfffRKS0_ ; CCoreDispInfo::DispUVToSurf_TriTLToBR(Vector	&,Vector*,float	*,float,float,Vector const&)
		jmp	loc_89038
_ZN13CCoreDispInfo12DispUVToSurfERK8Vector2DR6VectorPS3_Pf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetPositionOnSurface(float, float, Vector &, Vector*, float *)
_ZN13CCoreDispInfo20GetPositionOnSurfaceEffR6VectorPS0_Pf proc near

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_14]
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_10]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+8], eax
		lea	eax, [ebp+var_10]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN13CCoreDispInfo12DispUVToSurfERK8Vector2DR6VectorPS3_Pf ; CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)
		leave
		retn
_ZN13CCoreDispInfo20GetPositionOnSurfaceEffR6VectorPS0_Pf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *, int)
_ZN13CCoreDispInfo19CreateBoundingBoxesEP14CoreDispBBox_ti proc	near
					; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+59p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 28h
		mov	ebx, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		test	ebx, ebx
		jle	short loc_891C5
		mov	ecx, [ebp+arg_4]
		xor	ebx, ebx
		mov	esi, [ebp+arg_8]
		mov	edx, ecx
		add	edx, 0Ch

loc_89190:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+53j
		add	ebx, 1
		mov	dword ptr [ecx], 7F7FFFFFh
		mov	dword ptr [ecx+4], 7F7FFFFFh
		mov	dword ptr [ecx+8], 7F7FFFFFh
		add	ecx, 18h
		mov	dword ptr [edx], 800000h
		mov	dword ptr [edx+4], 800000h
		mov	dword ptr [edx+8], 800000h
		add	edx, 18h
		cmp	ebx, esi
		jnz	short loc_89190

loc_891C5:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+11j
		mov	ecx, [eax+0Ch]
		mov	[ebp+var_24], 1
		shl	[ebp+var_24], cl
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_24]
		add	edx, 1
		test	ecx, ecx
		mov	[ebp+var_34], edx
		jle	loc_89327
		mov	edx, [ebp+var_34]
		mov	[ebp+var_1C], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_20], edx
		lea	esi, [esi+0]

loc_89208:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+1B1j
		mov	ecx, [ebp+var_2C]
		xor	edi, edi
		mov	esi, [ebp+var_1C]
		add	[ebp+var_30], 1
		lea	edx, [ecx+ecx*2]
		mov	ecx, [ebp+arg_4]
		lea	edx, [ecx+edx*8+14h]
		mov	ecx, [ebp+var_20]
		sub	ecx, esi
		mov	[ebp+var_28], ecx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_89230:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+199j
		mov	ecx, [ebp+var_28]
		add	edi, 1
		xor	ebx, ebx
		add	ecx, esi
		mov	[ebp+var_18], ecx
		mov	ecx, [ebp+var_20]
		add	ecx, edi
		mov	[ebp+var_10], ecx
		mov	ecx, [ebp+var_1C]
		add	ecx, edi
		mov	[ebp+var_14], ecx
		mov	ecx, esi

loc_8924F:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+170j
					; CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+17Cj ...
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		add	ecx, [eax+1B8h]
		fld	dword ptr [ecx+28h]
		fld	dword ptr [ecx+2Ch]
		fld	dword ptr [ecx+30h]
		fld	dword ptr [edx-14h]
		fcomip	st, st(3)
		jbe	short loc_89272
		fxch	st(2)
		fst	dword ptr [edx-14h]
		fxch	st(2)

loc_89272:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+F9j
		fld	dword ptr [edx-10h]
		fcomip	st, st(2)
		jbe	short loc_89280
		fxch	st(1)
		fst	dword ptr [edx-10h]
		fxch	st(1)

loc_89280:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+107j
		fld	dword ptr [edx-0Ch]
		fcomip	st, st(1)
		jbe	short loc_8928A
		fst	dword ptr [edx-0Ch]

loc_8928A:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+115j
		fld	dword ptr [edx-8]
		fxch	st(3)
		fcomi	st, st(3)
		fstp	st(3)
		jbe	short loc_892A0
		fxch	st(2)
		fstp	dword ptr [edx-8]
		fxch	st(1)
		jmp	short loc_892A4
; ---------------------------------------------------------------------------
		align 10h

loc_892A0:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+123j
		fstp	st(2)
		fxch	st(1)

loc_892A4:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+12Cj
		fld	dword ptr [edx-4]
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jbe	short loc_892C0
		fxch	st(1)
		fstp	dword ptr [edx-4]
		jmp	short loc_892C2
; ---------------------------------------------------------------------------
		align 10h

loc_892C0:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+13Dj
		fstp	st(1)

loc_892C2:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+144j
		fld	dword ptr [edx]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_892D0
		fstp	dword ptr [edx]
		jmp	short loc_892D2
; ---------------------------------------------------------------------------

loc_892D0:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+15Aj
		fstp	st

loc_892D2:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+15Ej
		add	ebx, 1
		cmp	ebx, 4
		jz	short loc_89300
		cmp	ebx, 2
		mov	ecx, [ebp+var_10]
		jz	loc_8924F
		cmp	ebx, 3
		mov	ecx, [ebp+var_14]
		jz	loc_8924F
		mov	ecx, [ebp+var_18]
		cmp	ebx, 1
		cmovnz	ecx, esi
		jmp	loc_8924F
; ---------------------------------------------------------------------------

loc_89300:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+168j
		add	edx, 18h
		add	esi, 1
		cmp	edi, [ebp+var_24]
		jnz	loc_89230
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_34]
		add	[ebp+var_2C], edx
		add	[ebp+var_1C], ecx
		add	[ebp+var_20], ecx
		cmp	[ebp+var_30], edx
		jnz	loc_89208

loc_89327:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+70j
		mov	edx, [ebp+arg_8]
		fld1
		xor	esi, esi
		mov	ecx, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		test	edx, edx
		jle	short loc_8936D
		nop
		lea	esi, [esi+0]

loc_89340:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+1F7j
		lea	ebx, [ecx+0Ch]
		xor	eax, eax

loc_89345:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+1EDj
		lea	edx, [ecx+eax]
		fld	dword ptr [edx]
		fsub	st, st(1)
		fstp	dword ptr [edx]
		lea	edx, [ebx+eax]
		add	eax, 4
		fld	dword ptr [edx]
		cmp	eax, 0Ch
		fadd	st, st(1)
		fstp	dword ptr [edx]
		jnz	short loc_89345
		add	esi, 1
		add	ecx, 18h
		cmp	esi, edi
		jnz	short loc_89340
		fstp	st
		jmp	short loc_8936F
; ---------------------------------------------------------------------------

loc_8936D:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+1C6j
		fstp	st

loc_8936F:				; CODE XREF: CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)+1FBj
		add	esp, 28h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo19CreateBoundingBoxesEP14CoreDispBBox_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetTriangleIndicesForDispBBox(int, int	(*)[3])
_ZN13CCoreDispInfo29GetTriangleIndicesForDispBBoxEiPA3_i proc near
					; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+104p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	ecx, [ebp+arg_0]
		push	ebx
		mov	ebx, 1
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	ecx, [ecx+0Ch]
		mov	esi, edx
		shr	esi, 1Fh
		mov	[eax], edx
		shl	ebx, cl
		lea	ecx, [edx+esi]
		add	ebx, 1
		and	ecx, 1
		add	ebx, edx
		sub	ecx, esi
		mov	[eax+4], ebx
		cmp	ecx, 1
		jz	short loc_893D0
		mov	[eax+0Ch], edx
		add	ebx, 1
		add	edx, 1
		mov	[eax+8], ebx
		mov	[eax+10h], ebx
		mov	[eax+14h], edx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_893D0:				; CODE XREF: CCoreDispInfo::GetTriangleIndicesForDispBBox(int,int (*)[3])+32j
		mov	[eax+10h], ebx
		add	edx, 1
		add	ebx, 1
		mov	[eax+8], edx
		mov	[eax+0Ch], edx
		mov	[eax+14h], ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN13CCoreDispInfo29GetTriangleIndicesForDispBBoxEiPA3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::SurfToBaseFacePlane(Vector  const&, Vector&)
_ZN13CCoreDispInfo19SurfToBaseFacePlaneERK6VectorRS0_ proc near

var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= byte ptr -84h
var_78		= byte ptr -78h
var_6C		= byte ptr -6Ch
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0BCh
		mov	[ebp+var_8C], 1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		shl	[ebp+var_8C], cl
		mov	edx, [ebp+var_8C]
		imul	edx, edx
		lea	eax, [edx+edx*2]
		mov	[ebp+var_8C], edx
		shl	eax, 3
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	ecx, [ebp+var_8C]
		mov	[ebp+var_94], eax
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp+8], ecx
		mov	[esp], eax
		call	_ZN13CCoreDispInfo19CreateBoundingBoxesEP14CoreDispBBox_ti ; CCoreDispInfo::CreateBoundingBoxes(CoreDispBBox_t *,int)
		mov	eax, [ebp+var_8C]
		test	eax, eax
		jle	loc_895DA
		mov	ebx, [ebp+var_94]
		xor	esi, esi
		lea	esi, [esi+0]

loc_89468:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+1E4j
		test	ebx, ebx
		jz	loc_895C8
		mov	edx, [ebp+arg_4]
		fld	dword ptr [edx]
		fld	dword ptr [ebx]
		fcomip	st, st(1)
		ja	loc_895B0
		fld	dword ptr [ebx+0Ch]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_895C8
		fld	dword ptr [edx+4]
		fld	dword ptr [ebx+4]
		fcomip	st, st(1)
		ja	loc_895B8
		fld	dword ptr [ebx+10h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_895C8
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx+8]
		fcomip	st, st(1)
		ja	loc_895C0
		fld	dword ptr [ebx+14h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_895C8
		mov	eax, [ebp+arg_0]
		lea	edx, [ebp+var_3C]
		mov	edi, 1
		mov	[esp+8], edx
		mov	edx, esi
		sar	edx, 1Fh
		mov	ecx, [eax+0Ch]
		mov	eax, esi
		shl	edi, cl
		idiv	edi
		mov	edx, [ebp+arg_0]
		lea	edi, [ebp+var_3C]
		mov	[esp], edx
		add	eax, esi
		mov	[esp+4], eax
		call	_ZN13CCoreDispInfo29GetTriangleIndicesForDispBBoxEiPA3_i ; CCoreDispInfo::GetTriangleIndicesForDispBBox(int,int	(*)[3])
		mov	[ebp+var_98], esi
		mov	[ebp+var_90], 0
		mov	[ebp+var_9C], ebx
		nop

loc_89510:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+1AAj
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	esi, [edx+1B8h]

loc_8951B:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+157j
		mov	ecx, [edi+eax*4]
		lea	edx, [eax+eax*2]
		add	eax, 1
		lea	edx, [ebp+edx*4+var_84]
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		add	ecx, esi
		cmp	eax, 3
		mov	ebx, [ecx+28h]
		mov	[edx], ebx
		mov	ebx, [ecx+2Ch]
		mov	[edx+4], ebx
		mov	ecx, [ecx+30h]
		mov	[edx+8], ecx
		jnz	short loc_8951B
		lea	ecx, [ebp+var_1C]
		mov	[esp+18h], ecx
		mov	ecx, [ebp+arg_4]
		lea	eax, [ebp+var_20]
		lea	edx, [ebp+var_24]
		mov	[esp+14h], eax
		mov	[esp+10h], edx
		lea	eax, [ebp+var_6C]
		lea	edx, [ebp+var_78]
		mov	[esp+8], eax
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_84]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	_Z21CalcBarycentricCooefsRK6VectorS1_S1_S1_RfS2_S2_ ; CalcBarycentricCooefs(Vector  const&,Vector  const&,Vector  const&,Vector	 const&,float &,float &,float &)
		test	al, al
		jnz	loc_89608
		add	[ebp+var_90], 1
		add	edi, 0Ch
		cmp	[ebp+var_90], 2
		jnz	loc_89510
		mov	esi, [ebp+var_98]
		mov	ebx, [ebp+var_9C]
		jmp	short loc_895C8
; ---------------------------------------------------------------------------
		align 10h

loc_895B0:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+89j
		fstp	st
		jmp	short loc_895C8
; ---------------------------------------------------------------------------
		align 8

loc_895B8:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+A6j
		fstp	st
		jmp	short loc_895C8
; ---------------------------------------------------------------------------
		align 10h

loc_895C0:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+C3j
		fstp	st
		lea	esi, [esi+0]

loc_895C8:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+7Aj
					; CCoreDispInfo::SurfToBaseFacePlane(Vector  const&,Vector&)+98j ...
		add	esi, 1
		add	ebx, 18h
		cmp	esi, [ebp+var_8C]
		jnz	loc_89468

loc_895DA:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+66j
		mov	esi, [ebp+var_94]
		xor	ebx, ebx
		test	esi, esi
		jz	short loc_895F4

loc_895E6:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+2B9j
		mov	eax, [ebp+var_94]
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_895F4:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+1F4j
					; CCoreDispInfo::SurfToBaseFacePlane(Vector  const&,Vector&)+2BFj
		add	esp, 0BCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_89608:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+193j
		mov	ecx, [ebp+var_90]
		mov	eax, [ebp+arg_0]
		lea	edx, [ecx+ecx*2]
		mov	edi, [eax+1B8h]
		lea	esi, [ebp+edx*4+var_3C]
		xor	eax, eax

loc_89620:				; CODE XREF: CCoreDispInfo::SurfToBaseFacePlane(Vector	const&,Vector&)+259j
		mov	ecx, [esi+eax*4]
		lea	edx, [eax+eax*2]
		add	eax, 1
		lea	edx, [ebp+edx*4+var_60]
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		add	ecx, edi
		cmp	eax, 3
		mov	ebx, [ecx+34h]
		mov	[edx], ebx
		mov	ebx, [ecx+38h]
		mov	ecx, [ecx+3Ch]
		mov	[edx+4], ebx
		mov	[edx+8], ecx
		jnz	short loc_89620
		fld	[ebp+var_1C]
		mov	ebx, 1
		fld	[ebp+var_20]
		fld	[ebp+var_24]
		fld	[ebp+var_50]
		fmul	st, st(2)
		mov	eax, [ebp+arg_8]
		mov	edi, [ebp+var_94]
		fld	[ebp+var_44]
		test	edi, edi
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_5C]
		fmul	st, st(2)
		faddp	st(1), st
		fld	[ebp+var_4C]
		fmul	st, st(3)
		fld	[ebp+var_40]
		fmul	st, st(5)
		faddp	st(1), st
		fld	[ebp+var_58]
		fmul	st, st(3)
		faddp	st(1), st
		fxch	st(3)
		fmul	[ebp+var_54]
		fxch	st(4)
		fmul	[ebp+var_48]
		faddp	st(4), st
		fxch	st(1)
		fmul	[ebp+var_60]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [eax]
		fxch	st(1)
		fstp	dword ptr [eax+4]
		fstp	dword ptr [eax+8]
		jnz	loc_895E6
		jmp	loc_895F4
_ZN13CCoreDispInfo19SurfToBaseFacePlaneERK6VectorRS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetTriCount(void)
_ZN13CCoreDispInfo11GetTriCountEv proc near
					; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+40p
					; BuildTagData(CCoreDispInfo *,CDispInfo *)+9Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, 1
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	ecx, [eax+0Ch]
		shl	edx, cl
		lea	eax, [edx+edx]
		imul	eax, edx
		retn
_ZN13CCoreDispInfo11GetTriCountEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetTriIndices(int, unsigned short &, unsigned short &,	unsigned short &)
_ZN13CCoreDispInfo13GetTriIndicesEiRtS0_S0_ proc near
					; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+2EFp
					; BuildTagData(CCoreDispInfo *,CDispInfo *)+F2p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		test	ebx, ebx
		mov	edx, [eax+1BCh]
		js	short loc_896F8
		test	edx, edx
		jnz	short loc_89700

loc_896F8:				; CODE XREF: CCoreDispInfo::GetTriIndices(int,ushort &,ushort &,ushort &)+12j
					; CCoreDispInfo::GetTriIndices(int,ushort &,ushort &,ushort &)+32j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_89700:				; CODE XREF: CCoreDispInfo::GetTriIndices(int,ushort &,ushort &,ushort &)+16j
		mov	ecx, [eax+0Ch]
		mov	eax, 1
		shl	eax, cl
		lea	ecx, [eax+eax]
		imul	eax, ecx
		cmp	ebx, eax
		jge	short loc_896F8
		lea	eax, [edx+ebx*8]
		mov	edx, [ebp+arg_8]
		movzx	ecx, word ptr [eax]
		mov	[edx], cx
		mov	edx, [ebp+arg_C]
		movzx	ecx, word ptr [eax+2]
		mov	[edx], cx
		movzx	edx, word ptr [eax+4]
		mov	eax, [ebp+arg_10]
		mov	[eax], dx
		pop	ebx
		pop	ebp
		retn
_ZN13CCoreDispInfo13GetTriIndicesEiRtS0_S0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::SetTriIndices(int, unsigned short, unsigned short, unsigned short)
_ZN13CCoreDispInfo13SetTriIndicesEittt proc near

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_8], esi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_8]
		test	ebx, ebx
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_10], edx
		mov	edx, [eax+1BCh]
		js	short loc_8976F
		test	edx, edx
		jnz	short loc_89780

loc_8976F:				; CODE XREF: CCoreDispInfo::SetTriIndices(int,ushort,ushort,ushort)+29j
					; CCoreDispInfo::SetTriIndices(int,ushort,ushort,ushort)+52j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_89780:				; CODE XREF: CCoreDispInfo::SetTriIndices(int,ushort,ushort,ushort)+2Dj
		mov	ecx, [eax+0Ch]
		mov	eax, 1
		shl	eax, cl
		lea	ecx, [eax+eax]
		imul	eax, ecx
		cmp	ebx, eax
		jge	short loc_8976F
		lea	eax, [edx+ebx*8]
		movzx	edx, word ptr [ebp+var_10]
		mov	[eax], si
		mov	[eax+2], di
		mov	[eax+4], dx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo13SetTriIndicesEittt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::GetTriPos(int,	Vector &, Vector &, Vector &)
_ZN13CCoreDispInfo9GetTriPosEiR6VectorS1_S1_ proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	[ebp+var_C], ebx
		mov	edi, [ebp+arg_8]
		test	esi, esi
		mov	ebx, [eax+1BCh]
		js	short loc_897E6
		test	ebx, ebx
		jnz	short loc_897F8

loc_897E6:				; CODE XREF: CCoreDispInfo::GetTriPos(int,Vector &,Vector &,Vector &)+20j
					; CCoreDispInfo::GetTriPos(int,Vector &,Vector &,Vector	&)+4Aj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_897F8:				; CODE XREF: CCoreDispInfo::GetTriPos(int,Vector &,Vector &,Vector &)+24j
		mov	ecx, [eax+0Ch]
		mov	edx, 1
		shl	edx, cl
		lea	ecx, [edx+edx]
		imul	edx, ecx
		cmp	esi, edx
		jge	short loc_897E6
		lea	ecx, [ebx+esi*8]
		mov	esi, [ebp+arg_C]
		movzx	edx, word ptr [ecx]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+1B8h]
		mov	ebx, [edx+28h]
		mov	[edi], ebx
		mov	ebx, [edx+2Ch]
		mov	[edi+4], ebx
		mov	edx, [edx+30h]
		mov	[edi+8], edx
		movzx	edx, word ptr [ecx+2]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+1B8h]
		mov	ebx, [edx+28h]
		mov	[esi], ebx
		mov	ebx, [edx+2Ch]
		mov	[esi+4], ebx
		mov	ebx, [ebp+arg_10]
		mov	edx, [edx+30h]
		mov	[esi+8], edx
		movzx	edx, word ptr [ecx+4]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+1B8h]
		mov	eax, [edx+28h]
		mov	[ebx], eax
		mov	eax, [edx+2Ch]
		mov	[ebx+4], eax
		mov	eax, [edx+30h]
		mov	[ebx+8], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo9GetTriPosEiR6VectorS1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::InitTris(void)
_ZN13CCoreDispInfo8InitTrisEv proc near	; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+318j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1BCh]
		test	eax, eax
		jz	short loc_898D4
		mov	ecx, [edx+0Ch]
		mov	ebx, 1
		shl	ebx, cl
		lea	ecx, [ebx+ebx]
		imul	ebx, ecx
		test	ebx, ebx
		jle	short loc_898D4
		xor	ecx, ecx
		jmp	short loc_898C6
; ---------------------------------------------------------------------------
		align 10h

loc_898C0:				; CODE XREF: CCoreDispInfo::InitTris(void)+42j
		mov	eax, [edx+1BCh]

loc_898C6:				; CODE XREF: CCoreDispInfo::InitTris(void)+27j
		mov	word ptr [eax+ecx*8+6],	0
		add	ecx, 1
		cmp	ecx, ebx
		jnz	short loc_898C0

loc_898D4:				; CODE XREF: CCoreDispInfo::InitTris(void)+Fj
					; CCoreDispInfo::InitTris(void)+23j
		pop	ebx
		pop	ebp
		retn
_ZN13CCoreDispInfo8InitTrisEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::InitDispInfo(int, int,	float, float *,	Vector *, float	*)
_ZN13CCoreDispInfo12InitDispInfoEiifPfP6VectorS0_ proc near
					; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)+C3p

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_10]
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_24], esi
		mov	esi, [ebp+arg_14]
		test	eax, eax
		mov	[ebx+0Ch], edi
		mov	[ebp+var_28], esi
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_30], esi
		js	loc_89BFD

loc_8990F:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+328j
		mov	edx, 1
		mov	ecx, edi
		mov	esi, edx
		mov	[ebp+var_38], edx
		shl	esi, cl
		add	esi, 1
		imul	esi, esi
		lea	eax, [esi+esi*8]
		shl	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[ebx+1B8h], eax
		lea	eax, [esi+esi*2]
		lea	ecx, [eax+eax]
		shl	eax, 2
		mov	[ebp+var_2C], ecx
		mov	[ebp+var_20], eax
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		lea	ecx, [edi+edi]
		mov	edi, 55555556h
		mov	[ebx+1C4h], eax
		mov	edx, [ebp+var_38]
		shl	edx, cl
		mov	eax, edx
		mov	ecx, edx
		imul	edi
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		mov	[ebp+var_1C], edx
		shl	eax, 9
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		test	esi, esi
		mov	[ebx+4], eax
		jle	loc_89AE0
		xor	eax, eax
		xor	edi, edi
		nop
		lea	esi, [esi+0]

loc_89990:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+1FAj
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx], 0
		mov	dword ptr [edx+4], 0
		mov	dword ptr [edx+8], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+1Ch], 0
		mov	dword ptr [edx+20h], 0
		mov	dword ptr [edx+24h], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+10h], 0
		mov	dword ptr [edx+14h], 0
		mov	dword ptr [edx+18h], 0
		mov	edx, [ebx+1B8h]
		mov	dword ptr [edx+eax+0Ch], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+28h], 0
		mov	dword ptr [edx+2Ch], 0
		mov	dword ptr [edx+30h], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+34h], 0
		mov	dword ptr [edx+38h], 0
		mov	dword ptr [edx+3Ch], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+40h], 0
		mov	dword ptr [edx+44h], 0
		mov	dword ptr [edx+48h], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+4Ch], 0
		mov	dword ptr [edx+50h], 0
		mov	dword ptr [edx+54h], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+58h], 0
		mov	dword ptr [edx+5Ch], 0
		mov	dword ptr [edx+60h], 0
		mov	edx, [ebx+1B8h]
		add	edx, eax
		mov	dword ptr [edx+64h], 0
		mov	dword ptr [edx+68h], 0
		xor	edx, edx

loc_89A9D:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+1DDj
		mov	ecx, [ebx+1B8h]
		add	ecx, eax
		lea	ecx, [ecx+edx*8+60h]
		add	edx, 1
		cmp	edx, 4
		mov	dword ptr [ecx+0Ch], 0
		mov	dword ptr [ecx+10h], 0
		jnz	short loc_89A9D
		mov	edx, [ebx+1B8h]
		add	edi, 1
		mov	dword ptr [edx+eax+8Ch], 0
		add	eax, 90h
		cmp	edi, esi
		jnz	loc_89990

loc_89AE0:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+A1j
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jle	short loc_89B03
		mov	ecx, [ebp+var_20]
		xor	eax, eax
		lea	esi, [esi+0]

loc_89AF0:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+221j
		mov	edx, [ebx+1C4h]
		mov	word ptr [edx+eax], 0
		add	eax, 2
		cmp	ecx, eax
		jnz	short loc_89AF0

loc_89B03:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+205j
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jle	short loc_89B34
		mov	[ebp+var_20], esi
		mov	esi, ebx
		mov	ebx, [ebp+var_1C]
		xor	edi, edi
		lea	esi, [esi+0]

loc_89B18:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+24Dj
		mov	eax, edi
		add	edi, 1
		shl	eax, 9
		add	eax, [esi+4]
		mov	[esp], eax
		call	_ZN13CCoreDispNode4InitEv ; CCoreDispNode::Init(void)
		cmp	edi, ebx
		jnz	short loc_89B18
		mov	ebx, esi
		mov	esi, [ebp+var_20]

loc_89B34:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+228j
		mov	eax, [ebp+var_28]
		test	eax, eax
		jz	short loc_89B42
		mov	eax, [ebp+var_24]
		test	eax, eax
		jnz	short loc_89B5E

loc_89B42:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+259j
					; CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+283j ...
		mov	ecx, [ebx+0Ch]
		mov	eax, 1
		shl	eax, cl
		lea	edx, [eax+eax]
		imul	eax, edx
		test	eax, eax
		jnz	short loc_89BD5

loc_89B56:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+308j
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_89B5E:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+260j
		mov	eax, [ebp+var_30]
		test	eax, eax
		jz	short loc_89B42
		test	esi, esi
		jle	short loc_89B42
		mov	ecx, [ebp+var_28]
		xor	edx, edx
		xor	eax, eax
		mov	[ebp+var_20], esi
		nop
		lea	esi, [esi+0]

loc_89B78:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+2EEj
		mov	esi, [ebx+1B8h]
		mov	edi, [ecx]
		add	esi, edx
		mov	[esi], edi
		mov	edi, [ecx+4]
		mov	[esi+4], edi
		mov	edi, [ecx+8]
		add	ecx, 0Ch
		mov	[esi+8], edi
		mov	esi, [ebp+var_30]
		mov	esi, [esi+eax*4]
		mov	[ebp+var_3C], esi
		mov	esi, [ebx+1B8h]
		mov	edi, [ebp+var_3C]
		mov	[esi+edx+0Ch], edi
		mov	esi, [ebp+var_24]
		mov	esi, [esi+eax*4]
		add	eax, 1
		mov	[ebp+var_34], esi
		mov	esi, [ebx+1B8h]
		mov	edi, [ebp+var_34]
		mov	[esi+edx+8Ch], edi
		add	edx, 90h
		cmp	eax, [ebp+var_20]
		jnz	short loc_89B78
		jmp	loc_89B42
; ---------------------------------------------------------------------------

loc_89BD5:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+274j
		shl	eax, 3
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		test	eax, eax
		mov	[ebx+1BCh], eax
		jz	loc_89B56
		mov	[ebp+arg_0], ebx
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN13CCoreDispInfo8InitTrisEv ;	CCoreDispInfo::InitTris(void)
; ---------------------------------------------------------------------------

loc_89BFD:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)+29j
		and	eax, 7FFFFFFFh
		mov	[ebx+188h], eax
		jmp	loc_8990F
_ZN13CCoreDispInfo12InitDispInfoEiifPfP6VectorS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::InitDispInfo(int, int,	float, CDispVert  const*, CDispTri  const*)
_ZN13CCoreDispInfo12InitDispInfoEiifPK9CDispVertPK8CDispTri proc near
					; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+42Dp
					; DispInfo_CreateFromMapDisp(model_t *,int,ddispinfo_t	const*,CCoreDispInfo *,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t  const*,bool)+73p

var_16C4	= dword	ptr -16C4h
var_16C0	= dword	ptr -16C0h
var_16BC	= dword	ptr -16BCh
var_16AC	= byte ptr -16ACh
var_920		= byte ptr -920h
var_49C		= byte ptr -49Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 16DCh
		mov	[ebp+var_16C4],	1
		movzx	ecx, byte ptr [ebp+arg_4]
		shl	[ebp+var_16C4],	cl
		mov	ebx, [ebp+var_16C4]
		add	ebx, 1
		imul	ebx, ebx
		test	ebx, ebx
		mov	[ebp+var_16BC],	ebx
		jle	loc_89D19
		mov	edx, [ebp+arg_10]
		lea	ecx, [ebp+var_49C]
		xor	eax, eax
		lea	esi, [ebp+var_16AC]
		mov	[ebp+var_16C0],	ecx
		lea	edi, [ebp+var_920]
		mov	esi, esi
		lea	edi, [edi+0]

loc_89C70:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)+94j
		mov	ebx, [edx]
		lea	ecx, [eax+eax*2]
		lea	ecx, [esi+ecx*4]
		mov	[ecx], ebx
		mov	ebx, [edx+4]
		mov	[ecx+4], ebx
		mov	ebx, [edx+8]
		mov	[ecx+8], ebx
		mov	ecx, [edx+0Ch]
		mov	ebx, [ebp+var_16C0]
		mov	[edi+eax*4], ecx
		mov	ecx, [edx+10h]
		add	edx, 14h
		mov	[ebx+eax*4], ecx
		add	eax, 1
		cmp	eax, [ebp+var_16BC]
		jnz	short loc_89C70

loc_89CA6:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)+121j
		mov	eax, [ebp+var_16C0]
		mov	[esp+18h], edi
		mov	ecx, [ebp+arg_4]
		mov	[esp+14h], esi
		mov	ebx, [ebp+arg_0]
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+4], ecx
		mov	[esp], ebx
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax
		call	_ZN13CCoreDispInfo12InitDispInfoEiifPfP6VectorS0_ ; CCoreDispInfo::InitDispInfo(int,int,float,float *,Vector *,float *)
		mov	eax, [ebp+var_16C4]
		movzx	ecx, byte ptr [ebp+arg_4]
		shl	eax, cl
		add	eax, eax
		test	eax, eax
		jle	short loc_89D0E
		mov	edi, [ebp+arg_14]
		xor	edx, edx
		mov	esi, ebx
		lea	esi, [esi+0]

loc_89CF8:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)+FCj
		movzx	ebx, word ptr [edi+edx*2]
		mov	ecx, [esi+1BCh]
		mov	[ecx+edx*8+6], bx
		add	edx, 1
		cmp	edx, eax
		jnz	short loc_89CF8

loc_89D0E:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)+D8j
		add	esp, 16DCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_89D19:				; CODE XREF: CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)+34j
		lea	eax, [ebp+var_49C]
		lea	esi, [ebp+var_16AC]
		mov	[ebp+var_16C0],	eax
		lea	edi, [ebp+var_920]
		jmp	loc_89CA6
_ZN13CCoreDispInfo12InitDispInfoEiifPK9CDispVertPK8CDispTri endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CreateTris(void)
_ZN13CCoreDispInfo10CreateTrisEv proc near
					; CODE XREF: CCoreDispInfo::CreateWithoutLOD(void)+81p
					; CCoreDispInfo::Create(void)+89p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	eax, [ebp+arg_0]
		push	esi
		push	ebx
		mov	edx, [eax+1BCh]
		test	edx, edx
		jz	short loc_89DC2
		mov	ecx, [eax+0Ch]
		mov	ebx, 1
		shl	ebx, cl
		lea	ecx, [ebx+ebx]
		imul	ebx, ecx
		test	ebx, ebx
		jle	short loc_89DC2
		lea	esi, [ebx+ebx*2]
		xor	ecx, ecx
		xor	ebx, ebx
		add	esi, esi
		jmp	short loc_89D7E
; ---------------------------------------------------------------------------
		align 8

loc_89D78:				; CODE XREF: CCoreDispInfo::CreateTris(void)+80j
		mov	edx, [eax+1BCh]

loc_89D7E:				; CODE XREF: CCoreDispInfo::CreateTris(void)+30j
		mov	edi, [eax+1C4h]
		movzx	edi, word ptr [edi+ecx]
		mov	[edx+ebx], di
		mov	edx, [eax+1C4h]
		movzx	edi, word ptr [edx+ecx+2]
		mov	edx, [eax+1BCh]
		mov	[edx+ebx+2], di
		mov	edx, [eax+1C4h]
		movzx	edi, word ptr [edx+ecx+4]
		add	ecx, 6
		mov	edx, [eax+1BCh]
		mov	[edx+ebx+4], di
		add	ebx, 8
		cmp	ecx, esi
		jnz	short loc_89D78

loc_89DC2:				; CODE XREF: CCoreDispInfo::CreateTris(void)+11j
					; CCoreDispInfo::CreateTris(void)+25j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CCoreDispInfo10CreateTrisEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::CreateWithoutLOD(void)
_ZN13CCoreDispInfo16CreateWithoutLODEv proc near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		cmp	dword ptr [ebx+14h], 4
		jz	short loc_89DF8
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_89DF8:				; CODE XREF: CCoreDispInfo::CreateWithoutLOD(void)+15j
		mov	[esp], ebx
		xor	esi, esi
		call	_ZN13CCoreDispInfo16GenerateDispSurfEv ; CCoreDispInfo::GenerateDispSurf(void)
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo23GenerateDispSurfNormalsEv ;	CCoreDispInfo::GenerateDispSurfNormals(void)
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo29GenerateDispSurfTangentSpacesEv ; CCoreDispInfo::GenerateDispSurfTangentSpaces(void)
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo18CalcDispSurfCoordsEbi ; CCoreDispInfo::CalcDispSurfCoords(bool,int)

loc_89E2A:				; CODE XREF: CCoreDispInfo::CreateWithoutLOD(void)+74j
		mov	[esp+8], esi
		add	esi, 1
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo18CalcDispSurfCoordsEbi ; CCoreDispInfo::CalcDispSurfCoords(bool,int)
		cmp	esi, 4
		jnz	short loc_89E2A
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo24GenerateCollisionSurfaceEv ; CCoreDispInfo::GenerateCollisionSurface(void)
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo10CreateTrisEv ; CCoreDispInfo::CreateTris(void)
		mov	ebx, [ebp+var_8]
		mov	eax, 1
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo16CreateWithoutLODEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::Create(void)
_ZN13CCoreDispInfo6CreateEv proc near	; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+629p
					; DispInfo_CreateFromMapDisp(model_t *,int,ddispinfo_t	const*,CCoreDispInfo *,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t  const*,bool)+C6p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		cmp	dword ptr [ebx+14h], 4
		jz	short loc_89E98
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_89E98:				; CODE XREF: CCoreDispInfo::Create(void)+15j
		mov	[esp], ebx
		xor	esi, esi
		call	_ZN13CCoreDispInfo16GenerateDispSurfEv ; CCoreDispInfo::GenerateDispSurf(void)
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo23GenerateDispSurfNormalsEv ;	CCoreDispInfo::GenerateDispSurfNormals(void)
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo29GenerateDispSurfTangentSpacesEv ; CCoreDispInfo::GenerateDispSurfTangentSpaces(void)
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo18CalcDispSurfCoordsEbi ; CCoreDispInfo::CalcDispSurfCoords(bool,int)

loc_89ECA:				; CODE XREF: CCoreDispInfo::Create(void)+74j
		mov	[esp+8], esi
		add	esi, 1
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo18CalcDispSurfCoordsEbi ; CCoreDispInfo::CalcDispSurfCoords(bool,int)
		cmp	esi, 4
		jnz	short loc_89ECA
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo15GenerateLODTreeEv ;	CCoreDispInfo::GenerateLODTree(void)
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo24GenerateCollisionSurfaceEv ; CCoreDispInfo::GenerateCollisionSurface(void)
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo10CreateTrisEv ; CCoreDispInfo::CreateTris(void)
		mov	ebx, [ebp+var_8]
		mov	eax, 1
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CCoreDispInfo6CreateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::IsTriWalkable(int)
_ZN13CCoreDispInfo13IsTriWalkableEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [eax+1BCh]
		movzx	edx, word ptr [eax+edx*8+6]
		mov	eax, edx
		and	eax, 1
		test	dl, 2
		jnz	short loc_89F30
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_89F30:				; CODE XREF: CCoreDispInfo::IsTriWalkable(int)+1Cj
		and	edx, 4
		pop	ebp
		setnz	al
		retn
_ZN13CCoreDispInfo13IsTriWalkableEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::IsTriBuildable(int)
_ZN13CCoreDispInfo14IsTriBuildableEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [eax+1BCh]
		movzx	edx, word ptr [eax+edx*8+6]
		test	dl, 8
		setnz	al
		test	dl, 10h
		jnz	short loc_89F68
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_89F68:				; CODE XREF: CCoreDispInfo::IsTriBuildable(int)+1Dj
		and	edx, 20h
		pop	ebp
		setnz	al
		retn
_ZN13CCoreDispInfo14IsTriBuildableEi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCoreDispInfo::IsTriRemove(int)
_ZN13CCoreDispInfo11IsTriRemoveEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		pop	ebp
		mov	eax, [eax+1BCh]
		test	byte ptr [eax+edx*8+6],	40h
		setnz	al
		retn
_ZN13CCoreDispInfo11IsTriRemoveEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CCoreDispInfo__Position_Update(int, int, float, float, float)
_ZN13CCoreDispInfo15Position_UpdateEi6Vector proc near

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	edx, [ebp+arg_0]
		movss	xmm1, ds:dword_1EBD30
		movss	xmm4, ds:dword_1EBD40
		mov	eax, [ebp+arg_4]
		fld	[ebp+arg_8]
		lea	ecx, [eax+eax*8]
		mov	eax, [edx+1B8h]
		shl	ecx, 4
		add	eax, ecx
		fsub	dword ptr [eax+34h]
		fsub	dword ptr [eax+1Ch]
		fld	[ebp+arg_C]
		fsub	dword ptr [eax+38h]
		fsub	dword ptr [eax+20h]
		fld	[ebp+arg_10]
		fsub	dword ptr [eax+3Ch]
		fsub	dword ptr [eax+24h]
		fld	dword ptr [edx+8]
		fldz
		fcomip	st, st(1)
		jz	loc_8A0C8
		fld	dword ptr [edx+18h]
		movss	xmm4, ds:dword_1EBD40
		fld	dword ptr [edx+24h]
		fsub	st, st(1)
		fstp	[ebp+var_14]
		fld	dword ptr [edx+1Ch]
		fld	dword ptr [edx+28h]
		fsub	st, st(1)
		fstp	[ebp+var_18]
		fld	dword ptr [edx+20h]
		fld	dword ptr [edx+2Ch]
		fsub	st, st(1)
		fxch	st(3)
		fsubr	dword ptr [edx+3Ch]
		fstp	[ebp+var_C]
		fxch	st(1)
		fsubr	dword ptr [edx+40h]
		fst	[ebp+var_1C]
		fld	dword ptr [edx+44h]
		fsubrp	st(2), st
		fmul	st, st(2)
		fld	[ebp+var_18]
		fmul	st, st(2)
		fsubp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_14]
		fxch	st(2)
		fmul	[ebp+var_C]
		fsubp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_10]
		fld	[ebp+var_C]
		fmul	[ebp+var_18]
		fstp	[ebp+var_C]
		fld	[ebp+var_1C]
		fmul	[ebp+var_14]
		fsubr	[ebp+var_C]
		fstp	[ebp+var_C]
		fld	st
		fmul	st, st(1)
		fld	[ebp+var_10]
		fmul	st, st
		fld	[ebp+var_C]
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_20]
		mov	ebx, [ebp+var_20]
		movd	xmm1, ebx
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		movss	[ebp+var_20], xmm0
		fld	[ebp+var_20]
		fxch	st(1)
		fmul	st, st(2)
		fmul	st, st(1)
		fsubp	st(5), st
		fld	[ebp+var_10]
		fmul	st, st(2)
		fmul	st, st(1)
		fsubp	st(4), st
		fxch	st(1)
		fmul	[ebp+var_C]
		fmulp	st(1), st
		fsubp	st(1), st
		jmp	loc_8A0CA
; ---------------------------------------------------------------------------
		align 8

loc_8A0C8:				; CODE XREF: CCoreDispInfo::Position_Update(int,Vector)+4Dj
		fstp	st

loc_8A0CA:				; CODE XREF: CCoreDispInfo::Position_Update(int,Vector)+12Fj
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fst	[ebp+var_20]
		mov	ebx, [ebp+var_20]
		movd	xmm3, ebx
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_20], xmm0
		fld	[ebp+var_20]
		fmul	st(4), st
		fxch	st(4)
		fstp	dword ptr [eax]
		fxch	st(2)
		fmul	st, st(3)
		fstp	dword ptr [eax+4]
		fmul	st, st(2)
		fstp	dword ptr [eax+8]
		fmulp	st(1), st
		mov	eax, [edx+1B8h]
		fstp	dword ptr [eax+ecx+0Ch]
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN13CCoreDispInfo15Position_UpdateEi6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL16ComputeBoxOffsetRK5Ray_t_part_5 proc near
					; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+254p
					; ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector	 const&,Vector	const&,float &,float &,float *)+1ACp

var_C		= dword	ptr -0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	dword ptr [eax+10h]
		movss	xmm0, ds:dword_1EBDA0
		fld	dword ptr [eax+14h]
		fld	dword ptr [eax+18h]
		fld	dword ptr [eax+34h]
		fmul	st, st(2)
		fabs
		fld	dword ptr [eax+30h]
		fmul	st, st(4)
		fabs
		faddp	st(1), st
		fld	dword ptr [eax+38h]
		fmul	st, st(2)
		fabs
		faddp	st(1), st
		fxch	st(3)
		fmul	st, st
		fxch	st(2)
		fmul	st, st
		fxch	st(1)
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_C]
		mov	eax, [ebp+var_C]
		movd	xmm1, eax
		maxss	xmm0, xmm1
		rcpss	xmm0, xmm0
		movss	[ebp+var_C], xmm0
		fld	[ebp+var_C]
		fmulp	st(1), st
		fld	ds:dbl_1EBD18
		leave
		faddp	st(1), st
		retn
_ZL16ComputeBoxOffsetRK5Ray_t_part_5 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL19ComputeCenterMatrixRK6VectorRK6QAngleS1_S1_R11matrix3x4_t_constprop_50 proc near
					; CODE XREF: ComputeSeparatingPlane(Vector  const&,QAngle  const&,Vector  const&,Vector	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&,float,cplane_t *)+AEp
					; IsRayIntersectingOBB(Ray_t  const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&)+5Fp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		lea	edi, [ebp+var_24]
		fld	dword ptr [eax+4]
		fadd	dword ptr [ecx+4]
		fld	dword ptr [eax+8]
		fadd	dword ptr [ecx+8]
		fld	dword ptr [eax]
		mov	[esp], edx
		fadd	dword ptr [ecx]
		mov	[esp+4], esi
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fxch	st(1)
		fstp	[ebp+var_30]
		fmul	st(2), st
		fxch	st(2)
		fstp	[ebp+var_2C]
		fmulp	st(1), st
		fstp	[ebp+var_28]
		call	_Z11AngleMatrixRK6QAngleR11matrix3x4_t ; AngleMatrix(QAngle  const&,matrix3x4_t	&)
		lea	eax, [ebp+var_30]
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], eax
		call	_Z12VectorRotatePKfRK11matrix3x4_tPf ; VectorRotate(float  const*,matrix3x4_t  const&,float *)
		mov	[esp+8], esi
		fld	[ebp+var_24]
		mov	[esp], edi
		fadd	dword ptr [ebx]
		mov	dword ptr [esp+4], 3
		fstp	[ebp+var_24]
		fld	[ebp+var_20]
		fadd	dword ptr [ebx+4]
		fstp	[ebp+var_20]
		fld	[ebp+var_1C]
		fadd	dword ptr [ebx+8]
		fstp	[ebp+var_1C]
		call	_Z15MatrixSetColumnRK6VectoriR11matrix3x4_t ; MatrixSetColumn(Vector  const&,int,matrix3x4_t &)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZL19ComputeCenterMatrixRK6VectorRK6QAngleS1_S1_R11matrix3x4_t_constprop_50 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ComputeSeparatingPlane(int, float, int)
_ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49 proc near
					; CODE XREF: ComputeSeparatingPlane(Vector  const&,QAngle  const&,Vector  const&,Vector	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&,float,cplane_t *)+12Dp
					; IsRayIntersectingOBB(Ray_t  const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&)+13Dp

var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_60]
		sub	esp, 0DCh
		mov	[ebp+var_C4], ecx
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_84], edx
		mov	[esp+8], eax
		mov	edi, [ebp+arg_8]
		mov	[esp+4], edx
		mov	[ebp+var_C8], eax
		mov	[esp], ebx
		call	_Z16ConcatTransformsRK11matrix3x4_tS1_RS_ ; ConcatTransforms(matrix3x4_t  const&,matrix3x4_t  const&,matrix3x4_t&)
		mov	eax, [ebp+var_C8]
		lea	edx, [ebp+var_30]
		mov	[esp+8], edx
		mov	dword ptr [esp+4], 3
		mov	[esp], eax
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	eax, [ebp+var_60]
		mov	ecx, [ebp+var_C4]
		mov	edx, [ebp+var_5C]
		mov	[ebp+var_78], eax
		mov	eax, [ebp+var_50]
		fld	dword ptr [ecx]
		mov	[ebp+var_7C], edx
		mov	edx, [ebp+var_58]
		mov	[ebp+var_94], eax
		mov	eax, [ebp+var_4C]
		mov	[ebp+var_98], eax
		mov	eax, [ebp+var_48]
		mov	[ebp+var_A0], eax
		mov	eax, [ebp+var_40]
		mov	[ebp+var_88], eax
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_90], eax
		mov	eax, [ebp+var_38]
		mov	[ebp+var_9C], eax
		mov	eax, [ebp+var_78]
		and	eax, 7FFFFFFFh
		mov	[ebp+var_CC], eax
		mov	eax, [ebp+var_7C]
		fld	[ebp+var_CC]
		fld	dword ptr [esi]
		fld	dword ptr [esi+4]
		fld	dword ptr [esi+8]
		and	eax, 7FFFFFFFh
		fld	[ebp+var_30]
		mov	[ebp+var_D0], eax
		mov	eax, edx
		fld	st
		and	eax, 7FFFFFFFh
		fabs
		mov	[ebp+var_74], eax
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_70]
		fld	st(3)
		fmul	st, st(5)
		fld	[ebp+var_D0]
		fmul	st, st(4)
		faddp	st(1), st
		fadd	st, st(6)
		fstp	[ebp+var_6C]
		fld	[ebp+var_74]
		fmul	st, st(2)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		mov	eax, [ebp+var_6C]
		cmp	[ebp+var_70], eax
		ja	loc_8A790
		fld	dword ptr [ecx+4]
		fstp	[ebp+var_8C]
		mov	eax, [ebp+var_94]
		fld	[ebp+var_2C]
		fst	[ebp+var_80]
		fabs
		fld	[ebp+arg_4]
		and	eax, 7FFFFFFFh
		faddp	st(1), st
		mov	[ebp+var_A8], eax
		mov	eax, [ebp+var_98]
		fstp	[ebp+var_70]
		fld	[ebp+var_A8]
		and	eax, 7FFFFFFFh
		fmul	st, st(4)
		mov	[ebp+var_AC], eax
		mov	eax, [ebp+var_A0]
		and	eax, 7FFFFFFFh
		fstp	[ebp+var_6C]
		fld	[ebp+var_AC]
		mov	[ebp+var_B0], eax
		fmul	st, st(3)
		fadd	[ebp+var_6C]
		fadd	[ebp+var_8C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_B0]
		fmul	st, st(2)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		mov	eax, [ebp+var_6C]
		cmp	[ebp+var_70], eax
		ja	loc_8A748
		fld	dword ptr [ecx+8]
		fstp	[ebp+var_A4]
		mov	eax, [ebp+var_88]
		fld	[ebp+var_28]
		fst	[ebp+var_B4]
		fabs
		fld	[ebp+arg_4]
		and	eax, 7FFFFFFFh
		faddp	st(1), st
		mov	[ebp+var_B8], eax
		mov	eax, [ebp+var_90]
		fstp	[ebp+var_70]
		fld	[ebp+var_B8]
		and	eax, 7FFFFFFFh
		fmul	st, st(4)
		mov	[ebp+var_BC], eax
		mov	eax, [ebp+var_9C]
		and	eax, 7FFFFFFFh
		fstp	[ebp+var_6C]
		fld	[ebp+var_BC]
		mov	[ebp+var_C0], eax
		fmul	st, st(3)
		fadd	[ebp+var_6C]
		fadd	[ebp+var_A4]
		fstp	[ebp+var_6C]
		fld	[ebp+var_C0]
		fmul	st, st(2)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		mov	eax, [ebp+var_6C]
		cmp	[ebp+var_70], eax
		ja	loc_8AB50
		fld	[ebp+var_80]
		fmul	[ebp+var_94]
		fld	[ebp+var_78]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_B4]
		fmul	[ebp+var_88]
		fadd	[ebp+var_6C]
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_A8]
		fmul	[ebp+var_8C]
		fstp	[ebp+var_70]
		fld	st(4)
		fmul	st, st(6)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		fld	[ebp+var_B8]
		fmul	[ebp+var_A4]
		fadd	[ebp+var_70]
		fadd	st, st(4)
		fstp	[ebp+var_70]
		mov	eax, [ebp+var_70]
		cmp	[ebp+var_6C], eax
		ja	loc_8AB80
		fld	[ebp+var_80]
		fmul	[ebp+var_98]
		fld	[ebp+var_7C]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_B4]
		fmul	[ebp+var_90]
		fadd	[ebp+var_6C]
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_AC]
		fmul	[ebp+var_8C]
		fstp	[ebp+var_70]
		fld	[ebp+var_D0]
		fmul	st, st(6)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		fld	[ebp+var_BC]
		fmul	[ebp+var_A4]
		fadd	[ebp+var_70]
		fadd	st, st(3)
		fstp	[ebp+var_70]
		mov	eax, [ebp+var_70]
		cmp	[ebp+var_6C], eax
		ja	loc_8AC70
		fld	[ebp+var_80]
		mov	[ebp+var_CC], edx
		fmul	[ebp+var_A0]
		fld	[ebp+var_CC]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_B4]
		fmul	[ebp+var_9C]
		fadd	[ebp+var_6C]
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_B0]
		fmul	[ebp+var_8C]
		fstp	[ebp+var_70]
		fld	[ebp+var_74]
		fmul	st, st(6)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		fld	[ebp+var_C0]
		fmul	[ebp+var_A4]
		fadd	[ebp+var_70]
		fadd	st, st(2)
		fstp	[ebp+var_70]
		mov	eax, [ebp+var_70]
		cmp	[ebp+var_6C], eax
		ja	loc_8ACA0
		fld	ds:flt_1EBD80
		fcomip	st, st(5)
		jbe	short loc_8A617
		fld	[ebp+var_80]
		fmul	[ebp+var_88]
		fld	[ebp+var_B4]
		fmul	[ebp+var_94]
		fsubrp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_A8]
		fmul	[ebp+var_A4]
		fld	[ebp+var_B8]
		fmul	[ebp+var_8C]
		faddp	st(1), st
		fstp	[ebp+var_70]
		fld	[ebp+var_74]
		fmul	st, st(3)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		fld	[ebp+var_D0]
		fmul	st, st(2)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		mov	eax, [ebp+var_70]
		cmp	[ebp+var_6C], eax
		ja	loc_8AC28

loc_8A617:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+362j
		fld	ds:flt_1EBD80
		fld	[ebp+var_D0]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8A68A
		fld	[ebp+var_80]
		fmul	[ebp+var_90]
		fld	[ebp+var_B4]
		fmul	[ebp+var_98]
		fsubrp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_AC]
		fmul	[ebp+var_A4]
		fld	[ebp+var_BC]
		fmul	[ebp+var_8C]
		faddp	st(1), st
		fstp	[ebp+var_70]
		fld	[ebp+var_74]
		fmul	st, st(4)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		fld	st(1)
		fmul	st, st(5)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		mov	eax, [ebp+var_70]
		cmp	[ebp+var_6C], eax
		ja	loc_8AC50

loc_8A68A:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+3D9j
		fld	ds:flt_1EBD80
		fld	[ebp+var_74]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8A7C0
		fld	[ebp+var_80]
		fmul	[ebp+var_9C]
		fld	[ebp+var_B4]
		fmul	[ebp+var_A0]
		fsubrp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_B0]
		fmul	[ebp+var_A4]
		fstp	[ebp+var_70]
		fld	[ebp+var_C0]
		fmul	[ebp+var_8C]
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		fld	[ebp+var_D0]
		fmul	st, st(4)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		fld	st(2)
		fmul	st, st(5)
		fadd	[ebp+var_70]
		fstp	[ebp+var_70]
		mov	eax, [ebp+var_70]
		cmp	[ebp+var_6C], eax
		jbe	loc_8A7C0
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 2
		mov	[esp+8], esi

loc_8A720:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+9F3j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+A1Bj
		mov	edx, [ebp+var_84]
		mov	[esp], edx
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z12CrossProductPKfS0_Pf ; CrossProduct(float  const*,float  const*,float *)
		mov	eax, 1
		jmp	short loc_8A780
; ---------------------------------------------------------------------------
		align 4

loc_8A748:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+18Fj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	eax, [ebx+10h]
		mov	[edi], eax
		mov	eax, [ebx+14h]
		mov	[edi+4], eax
		mov	eax, [ebx+18h]
		mov	[edi+8], eax
		mov	eax, 1
		jmp	short loc_8A780
; ---------------------------------------------------------------------------
		align 10h

loc_8A770:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+88Cj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		nop
		lea	esi, [esi+0]

loc_8A780:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+4F3j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+51Aj ...
		add	esp, 0DCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8A790:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+10Aj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	eax, [ebx]
		mov	[edi], eax
		mov	eax, [ebx+4]
		mov	[edi+4], eax
		mov	eax, [ebx+8]
		mov	[edi+8], eax
		add	esp, 0DCh
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8A7C0:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+449j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+4AFj
		fld	ds:flt_1EBD80
		fld	[ebp+var_A8]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8A880
		fld	[ebp+var_88]
		fmul	st, st(1)
		fld	[ebp+var_B4]
		fmul	[ebp+var_78]
		fsubp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_88]
		fld	[ebp+var_A4]
		fmul	st, st(5)
		fstp	[ebp+var_6C]
		fld	[ebp+var_B8]
		fmul	st, st(6)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_B0]
		fmul	st, st(3)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_AC]
		fmul	st, st(2)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		mov	eax, [ebp+var_6C]
		cmp	[ebp+var_88], eax
		jbe	short loc_8A880
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 0
		mov	[esp+8], esi

loc_8A853:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+6C7j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+785j
		mov	edx, [ebp+var_84]
		add	ebx, 10h
		mov	[esp], edx
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z12CrossProductPKfS0_Pf ; CrossProduct(float  const*,float  const*,float *)
		mov	eax, 1
		jmp	loc_8A780
; ---------------------------------------------------------------------------
		align 10h

loc_8A880:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+582j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+5E6j
		fld	ds:flt_1EBD80
		fld	[ebp+var_AC]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8A920
		fld	[ebp+var_90]
		fmul	st, st(1)
		fld	[ebp+var_B4]
		fmul	[ebp+var_7C]
		fsubp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_90]
		fld	[ebp+var_A4]
		fmul	[ebp+var_D0]
		fstp	[ebp+var_6C]
		fld	[ebp+var_BC]
		fmul	st, st(6)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_B0]
		fmul	st, st(4)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_A8]
		fmul	st, st(2)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		mov	eax, [ebp+var_6C]
		cmp	[ebp+var_90], eax
		jbe	short loc_8A920
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 1
		mov	[esp+8], esi
		jmp	loc_8A853
; ---------------------------------------------------------------------------
		align 10h

loc_8A920:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+642j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+6AAj
		fld	ds:flt_1EBD80
		fld	[ebp+var_B0]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8A9E0
		fld	[ebp+var_9C]
		mov	[ebp+var_CC], edx
		fmul	st, st(1)
		fld	[ebp+var_CC]
		fmul	[ebp+var_B4]
		fsubp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_9C]
		fld	[ebp+var_74]
		fmul	[ebp+var_A4]
		fstp	[ebp+var_A4]
		fld	[ebp+var_C0]
		fmul	st, st(6)
		fadd	[ebp+var_A4]
		fstp	[ebp+var_A4]
		fld	[ebp+var_AC]
		fmul	st, st(4)
		fadd	[ebp+var_A4]
		fstp	[ebp+var_A4]
		fld	[ebp+var_A8]
		fmul	st, st(3)
		fadd	[ebp+var_A4]
		fstp	[ebp+var_A4]
		mov	eax, [ebp+var_A4]
		cmp	[ebp+var_9C], eax
		jbe	short loc_8A9E0
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 2
		mov	[esp+8], esi
		jmp	loc_8A853
; ---------------------------------------------------------------------------
		align 10h

loc_8A9E0:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+6E2j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+768j
		fld	ds:flt_1EBD80
		fld	[ebp+var_B8]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8AA98
		fld	[ebp+var_94]
		fmul	st, st(1)
		fld	[ebp+var_80]
		fmul	[ebp+var_78]
		fsubrp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_78]
		fxch	st(4)
		fmul	[ebp+var_8C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_A8]
		fmul	st, st(5)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_C0]
		fmul	st, st(2)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_BC]
		fmul	st, st(1)
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		mov	eax, [ebp+var_6C]
		cmp	[ebp+var_78], eax
		jbe	short loc_8AAA8
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 0
		mov	[esp+8], esi

loc_8AA68:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+8F8j
					; _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+9D0j
		mov	edx, [ebp+var_84]
		add	ebx, 20h
		mov	[esp], edx
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z12CrossProductPKfS0_Pf ; CrossProduct(float  const*,float  const*,float *)
		mov	eax, 1
		jmp	loc_8A780
; ---------------------------------------------------------------------------
		align 8

loc_8AA98:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+7A2j
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_8AAAE
; ---------------------------------------------------------------------------
		align 8

loc_8AAA8:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+7FDj
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)

loc_8AAAE:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+850j
		fld	ds:flt_1EBD80
		fld	[ebp+var_BC]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8ABB0
		fstp	st(1)

loc_8AAC8:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+9B3j
		fld	ds:flt_1EBD80
		xor	eax, eax
		fld	[ebp+var_C0]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8A770
		fmul	[ebp+var_A0]
		mov	[ebp+var_CC], edx
		xor	eax, eax
		fld	[ebp+var_CC]
		fmul	[ebp+var_80]
		fsubrp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_80]
		fld	[ebp+var_74]
		fmul	[ebp+var_8C]
		fxch	st(3)
		fmul	[ebp+var_B0]
		faddp	st(3), st
		fxch	st(1)
		fmul	[ebp+var_BC]
		faddp	st(2), st
		fmul	[ebp+var_B8]
		faddp	st(1), st
		fstp	[ebp+var_74]
		mov	edx, [ebp+var_74]
		cmp	[ebp+var_80], edx
		jbe	loc_8A780
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 2
		mov	[esp+8], esi
		jmp	loc_8AA68
; ---------------------------------------------------------------------------
		align 10h

loc_8AB50:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+217j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	eax, [ebx+20h]
		mov	[edi], eax
		mov	eax, [ebx+24h]
		mov	[edi+4], eax
		mov	eax, [ebx+28h]
		mov	[edi+8], eax
		add	esp, 0DCh
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8AB80:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+27Cj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [ebp+var_84]
		mov	[esp+8], edi
		mov	dword ptr [esp+4], 0
		mov	[esp], edx
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	eax, 1
		jmp	loc_8A780
; ---------------------------------------------------------------------------

loc_8ABB0:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+870j
		fld	[ebp+var_98]
		fmul	st, st(1)
		fld	[ebp+var_80]
		fmul	[ebp+var_7C]
		fsubrp	st(1), st
		fabs
		fld	[ebp+arg_4]
		faddp	st(1), st
		fstp	[ebp+var_7C]
		fld	[ebp+var_D0]
		fmul	[ebp+var_8C]
		fld	[ebp+var_AC]
		fmul	st, st(6)
		faddp	st(1), st
		fstp	[ebp+var_6C]
		fld	[ebp+var_C0]
		fmul	st, st(4)
		fadd	[ebp+var_6C]
		fxch	st(2)
		fmul	[ebp+var_B8]
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_6C]
		mov	eax, [ebp+var_6C]
		cmp	[ebp+var_7C], eax
		jbe	loc_8AAC8
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 1
		mov	[esp+8], esi
		jmp	loc_8AA68
; ---------------------------------------------------------------------------
		align 4

loc_8AC28:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+3C1j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 0
		mov	[esp+8], esi
		jmp	loc_8A720
; ---------------------------------------------------------------------------
		align 10h

loc_8AC50:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+434j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [ebp+var_24]
		mov	dword ptr [esp+4], 1
		mov	[esp+8], esi
		jmp	loc_8A720
; ---------------------------------------------------------------------------

loc_8AC70:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+2E5j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [ebp+var_84]
		mov	[esp+8], edi
		mov	dword ptr [esp+4], 1
		mov	[esp], edx
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	eax, 1
		jmp	loc_8A780
; ---------------------------------------------------------------------------

loc_8ACA0:				; CODE XREF: _ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49+354j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [ebp+var_84]
		mov	[esp+8], edi
		mov	dword ptr [esp+4], 2
		mov	[esp], edx
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	eax, 1
		jmp	loc_8A780
_ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49 endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IntersectRayWithTriangle(Ray_t  const&, Vector  const&, Vector  const&, Vector  const&, bool)
_Z24IntersectRayWithTriangleRK5Ray_tRK6VectorS4_S4_b proc near
					; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+312p
					; CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t	 const&,Vector	const&,int,CBaseTrace *,bool,CDispCollTri **)+390p

var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_48		= dword	ptr -48h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 64h
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_C]
		cmp	[ebp+arg_10], 0
		fld	dword ptr [ebx]
		fld	dword ptr [ecx]
		fsub	st, st(1)
		mov	eax, [ebp+arg_0]
		fstp	[ebp+var_28]
		fld	dword ptr [ebx+4]
		fld	dword ptr [ecx+4]
		fsub	st, st(1)
		fstp	[ebp+var_2C]
		fld	dword ptr [ebx+8]
		fld	dword ptr [ecx+8]
		fsub	st, st(1)
		fstp	[ebp+var_30]
		fld	dword ptr [edx]
		fsub	st, st(3)
		fld	dword ptr [edx+4]
		fsub	st, st(3)
		fld	dword ptr [edx+8]
		fsub	st, st(3)
		fstp	[ebp+var_14]
		jnz	loc_8AE30
		fld	dword ptr [eax+14h]
		fstp	[ebp+var_1C]
		fld	dword ptr [eax+18h]
		fstp	[ebp+var_20]
		fld	dword ptr [eax+10h]
		fstp	[ebp+var_24]

loc_8AD2F:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+1B4j
		fld	[ebp+var_1C]
		fmul	[ebp+var_14]
		fld	[ebp+var_20]
		fmul	st, st(2)
		fsubp	st(1), st
		fstp	[ebp+var_C]
		fld	[ebp+var_20]
		fmul	st, st(2)
		fstp	[ebp+var_10]
		fld	[ebp+var_24]
		fmul	[ebp+var_14]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_10]
		fld	[ebp+var_24]
		fmul	st, st(1)
		fld	[ebp+var_1C]
		fmul	st, st(3)
		fsubp	st(1), st
		fstp	[ebp+var_18]
		fld	[ebp+var_10]
		fmul	[ebp+var_2C]
		fld	[ebp+var_C]
		fmul	[ebp+var_28]
		faddp	st(1), st
		fld	[ebp+var_18]
		fmul	[ebp+var_30]
		faddp	st(1), st
		fld	st
		fabs
		fld1
		fchs
		fstp	[ebp+var_34]
		fld	ds:dbl_1EBDB0
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8ADE0
		fld1
		fdivr	st(1), st
		fxch	st(1)
		fstp	[ebp+var_3C]
		fxch	st(5)
		fsubr	dword ptr [eax]
		fst	[ebp+var_38]
		fld	dword ptr [eax+4]
		fsubrp	st(5), st
		fld	dword ptr [eax+8]
		fsubrp	st(4), st
		fld	[ebp+var_10]
		fmul	st, st(5)
		fld	[ebp+var_C]
		fmulp	st(2), st
		faddp	st(1), st
		fld	[ebp+var_18]
		fmul	st, st(4)
		faddp	st(1), st
		fmul	[ebp+var_3C]
		fldz
		fcomi	st, st(1)
		ja	short loc_8ADF0
		fxch	st(1)
		fcomi	st, st(6)
		jbe	loc_8AEA0
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8AE20
; ---------------------------------------------------------------------------
		align 10h

loc_8ADE0:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+BDj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8AE20
; ---------------------------------------------------------------------------
		align 10h

loc_8ADF0:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+F3j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8AE20
; ---------------------------------------------------------------------------

loc_8AE00:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+222j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8AE20
; ---------------------------------------------------------------------------
		align 10h

loc_8AE10:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+232j
		fstp	st
		fstp	st
		jmp	short loc_8AE20
; ---------------------------------------------------------------------------

loc_8AE16:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+28Dj
		fstp	st
		fstp	st
		jmp	short loc_8AE20
; ---------------------------------------------------------------------------

loc_8AE1C:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+2A1j
		fstp	st
		db	66h
		nop

loc_8AE20:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+10Dj
					; IntersectRayWithTriangle(Ray_t  const&,Vector	 const&,Vector	const&,Vector  const&,bool)+11Cj ...
		fld	[ebp+var_34]
		add	esp, 64h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8AE30:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+47j
		fld	dword ptr [eax+10h]
		fstp	[ebp+var_24]
		fld	dword ptr [eax+14h]
		fstp	[ebp+var_1C]
		fld	dword ptr [eax+18h]
		fstp	[ebp+var_20]
		fld	[ebp+var_30]
		fmul	st, st(2)
		fld	[ebp+var_14]
		fmul	[ebp+var_28]
		fsubp	st(1), st
		fmul	[ebp+var_1C]
		fld	[ebp+var_14]
		fmul	[ebp+var_2C]
		fld	[ebp+var_30]
		fmul	st, st(3)
		fsubp	st(1), st
		fmul	[ebp+var_24]
		faddp	st(1), st
		fld	[ebp+var_28]
		fmul	st, st(2)
		fld	[ebp+var_2C]
		fmul	st, st(4)
		fsubp	st(1), st
		fmul	[ebp+var_20]
		faddp	st(1), st
		fld1
		fchs
		fstp	[ebp+var_34]
		fldz
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	loc_8AD2F
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fld	[ebp+var_34]
		add	esp, 64h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8AEA0:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+F9j
		fld	[ebp+var_30]
		fmul	st, st(6)
		fstp	[ebp+var_C]
		fld	[ebp+var_2C]
		fmul	st, st(5)
		fsubr	[ebp+var_C]
		fstp	[ebp+var_C]
		fxch	st(4)
		fmul	[ebp+var_28]
		fld	[ebp+var_38]
		fmul	[ebp+var_30]
		fsubp	st(1), st
		fstp	[ebp+var_10]
		fld	[ebp+var_38]
		fmul	[ebp+var_2C]
		fld	[ebp+var_28]
		fmulp	st(6), st
		fsubrp	st(5), st
		fxch	st(4)
		fstp	[ebp+var_38]
		fld	[ebp+var_1C]
		fmul	[ebp+var_10]
		fld	[ebp+var_24]
		fmul	[ebp+var_C]
		faddp	st(1), st
		fld	[ebp+var_20]
		fmul	[ebp+var_38]
		faddp	st(1), st
		fmul	[ebp+var_3C]
		fxch	st(4)
		fcomip	st, st(4)
		ja	loc_8AE00
		fxch	st(2)
		faddp	st(3), st
		fxch	st(2)
		fcomip	st, st(3)
		fstp	st(2)
		ja	loc_8AE10
		cmp	byte ptr [eax+40h], 0
		fld	ds:flt_1EBD84
		fld	ds:flt_1EBD88
		jnz	short loc_8AF39
		fstp	st
		fstp	st
		fstp	[ebp+var_48]
		fstp	[ebp+var_58]
		call	_ZL16ComputeBoxOffsetRK5Ray_t_part_5
		fld	st
		fchs
		fld	[ebp+var_58]
		fld	[ebp+var_48]
		fxch	st(2)
		fxch	st(1)
		jmp	short loc_8AF3B
; ---------------------------------------------------------------------------

loc_8AF39:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+248j
		fxch	st(3)

loc_8AF3B:				; CODE XREF: IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)+267j
		fmul	[ebp+var_10]
		fxch	st(2)
		fmul	[ebp+var_C]
		faddp	st(2), st
		fld	[ebp+var_38]
		fmul	[ebp+var_14]
		faddp	st(2), st
		fxch	st(1)
		fmul	[ebp+var_3C]
		fld1
		fchs
		fstp	[ebp+var_34]
		fxch	st(1)
		fcomip	st, st(1)
		ja	loc_8AE16
		fxch	st(1)
		fadd	ds:flt_1EBCFC
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		ja	loc_8AE1C
		fstp	[ebp+var_5C]
		xorps	xmm1, xmm1
		mov	eax, [ebp+var_5C]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+var_34], xmm0
		jmp	loc_8AE20
_Z24IntersectRayWithTriangleRK5Ray_tRK6VectorS4_S4_b endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ComputeIntersectionBarycentricCoordinates(Ray_t  const&, Vector  const&, Vector  const&, Vector  const&, float &, float &, float *)
_Z41ComputeIntersectionBarycentricCoordinatesRK5Ray_tRK6VectorS4_S4_RfS5_Pf proc near
					; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+329p
					; CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri **)+449p

var_68		= dword	ptr -68h
var_58		= dword	ptr -58h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 60h
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	eax, [ebp+arg_C]
		mov	edx, [ebp+arg_0]
		fld	dword ptr [esi]
		fld	dword ptr [ecx]
		fsub	st, st(1)
		mov	ebx, [ebp+arg_18]
		fstp	[ebp+var_1C]
		fld	dword ptr [esi+4]
		fld	dword ptr [ecx+4]
		fsub	st, st(1)
		fstp	[ebp+var_20]
		fld	dword ptr [esi+8]
		fst	[ebp+var_C]
		fsubr	dword ptr [ecx+8]
		fstp	[ebp+var_24]
		fld	dword ptr [eax]
		fsub	st, st(2)
		fstp	[ebp+var_10]
		fld	dword ptr [eax+4]
		fsub	st, st(1)
		fstp	[ebp+var_14]
		fld	[ebp+var_C]
		fsubr	dword ptr [eax+8]
		xor	eax, eax
		fst	[ebp+var_18]
		fld	dword ptr [edx+14h]
		fld	dword ptr [edx+18h]
		fxch	st(2)
		fmul	st, st(1)
		fld	[ebp+var_14]
		fmul	st, st(3)
		fsubp	st(1), st
		fld	dword ptr [edx+10h]
		fxch	st(3)
		fmul	[ebp+var_10]
		fld	[ebp+var_18]
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(3)
		fmul	[ebp+var_14]
		fld	[ebp+var_10]
		fmulp	st(3), st
		fsubrp	st(2), st
		fld	[ebp+var_20]
		fmul	st, st(3)
		fld	[ebp+var_1C]
		fmul	st, st(2)
		faddp	st(1), st
		fld	[ebp+var_24]
		fmul	st, st(3)
		faddp	st(1), st
		fld	st
		fabs
		fld	ds:dbl_1EBDB0
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8B070
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8B068
; ---------------------------------------------------------------------------
		align 10h

loc_8B050:				; CODE XREF: ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float	&,float	&,float	*)+13Fj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8B068
; ---------------------------------------------------------------------------
		align 10h

loc_8B060:				; CODE XREF: ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float	&,float	&,float	*)+178j
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_8B068:				; CODE XREF: ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float	&,float	&,float	*)+ACj
					; ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector	 const&,Vector	const&,float &,float &,float *)+B8j
		add	esp, 60h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8B070:				; CODE XREF: ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float	&,float	&,float	*)+9Ej
		fld1
		mov	eax, [ebp+arg_10]
		test	ebx, ebx
		fdivrp	st(1), st
		fxch	st(5)
		fsubr	dword ptr [edx]
		fxch	st(4)
		fsubr	dword ptr [edx+4]
		fld	[ebp+var_C]
		fsubr	dword ptr [edx+8]
		fxch	st(4)
		fmul	st, st(1)
		fxch	st(2)
		fmul	st, st(5)
		faddp	st(2), st
		fxch	st(2)
		fmul	st, st(3)
		faddp	st(1), st
		fmul	st, st(4)
		fstp	dword ptr [eax]
		mov	eax, [ebp+arg_14]
		fld	[ebp+var_24]
		fmul	st, st(1)
		fld	[ebp+var_20]
		fmul	st, st(3)
		fsubp	st(1), st
		fld	[ebp+var_1C]
		fmulp	st(3), st
		fld	[ebp+var_24]
		fmul	st, st(4)
		fsubp	st(3), st
		fxch	st(3)
		fmul	[ebp+var_20]
		fxch	st(1)
		fmul	[ebp+var_1C]
		fsubp	st(1), st
		fld	dword ptr [edx+14h]
		fmul	st, st(2)
		fld	dword ptr [edx+10h]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [edx+18h]
		fmul	st, st(2)
		faddp	st(1), st
		fmul	st, st(4)
		fstp	dword ptr [eax]
		mov	eax, 1
		jz	loc_8B050
		cmp	byte ptr [edx+40h], 0
		fld	ds:flt_1EBD84
		fld	ds:flt_1EBD88
		jz	short loc_8B138
		fxch	st(3)

loc_8B0F9:				; CODE XREF: ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float	&,float	&,float	*)+1CBj
		fmul	[ebp+var_14]
		fxch	st(4)
		xor	eax, eax
		fmul	[ebp+var_10]
		faddp	st(4), st
		fxch	st(1)
		fmul	[ebp+var_18]
		faddp	st(3), st
		fxch	st(2)
		fmulp	st(3), st
		fxch	st(2)
		fst	dword ptr [ebx]
		fxch	st(1)
		fcomip	st, st(1)
		ja	loc_8B060
		fxch	st(1)
		fadd	ds:flt_1EBCFC
		fcomip	st, st(1)
		fstp	st
		setnb	al
		add	esp, 60h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8B138:				; CODE XREF: ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float	&,float	&,float	*)+155j
		fstp	st
		fstp	st
		fxch	st(2)
		fstp	[ebp+var_48]
		mov	eax, edx
		fstp	[ebp+var_58]
		fstp	[ebp+var_68]
		fstp	[ebp+var_38]
		call	_ZL16ComputeBoxOffsetRK5Ray_t_part_5
		fld	st
		fchs
		fld	[ebp+var_38]
		fld	[ebp+var_68]
		fld	[ebp+var_58]
		fld	[ebp+var_48]
		fxch	st(4)
		fxch	st(1)
		fxch	st(3)
		fxch	st(5)
		fxch	st(3)
		jmp	short loc_8B0F9
_Z41ComputeIntersectionBarycentricCoordinatesRK5Ray_tRK6VectorS4_S4_RfS5_Pf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IntersectTriangleWithPlaneBarycentric(Vector	const&,	Vector	const&,	Vector	const&,	Vector4D  const&, Vector2D *)
_Z37IntersectTriangleWithPlaneBarycentricRK6VectorS1_S1_RK8Vector4DP8Vector2D proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	edx, [ebp+arg_C]
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx+4]
		fmul	st, st(2)
		mov	esi, [ebp+arg_10]
		fld	dword ptr [ebx]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [ecx+4]
		fmul	st, st(3)
		fld	dword ptr [ecx]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ecx+8]
		fmul	st, st(3)
		faddp	st(1), st
		fxch	st(3)
		fmul	dword ptr [eax+4]
		fxch	st(4)
		fmul	dword ptr [eax]
		faddp	st(4), st
		fxch	st(1)
		fmul	dword ptr [eax+8]
		faddp	st(3), st
		fldz
		fcomi	st, st(3)
		jz	loc_8B290
		fst	dword ptr [esi]
		fld	dword ptr [edx+0Ch]
		fsub	st, st(2)
		fdiv	st, st(4)
		fst	dword ptr [esi+4]
		fcomi	st, st(1)
		fstp	st(1)
		jb	loc_8B298
		fld1
		xor	eax, eax
		fcomip	st, st(1)
		fstp	st
		fldz
		setnb	al
		fcomi	st, st(2)
		jnz	loc_8B2A6
		fstp	st
		fxch	st(1)
		jmp	short loc_8B222
; ---------------------------------------------------------------------------
		align 10h

loc_8B200:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+130j
		fstp	st
		fxch	st(1)
		jmp	short loc_8B222
; ---------------------------------------------------------------------------
		align 10h

loc_8B210:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+14Dj
		fstp	st
		fxch	st(1)
		jmp	short loc_8B222
; ---------------------------------------------------------------------------
		align 10h

loc_8B220:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+159j
		fxch	st(1)

loc_8B222:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+8Bj
					; IntersectTriangleWithPlaneBarycentric(Vector	const&,Vector  const&,Vector  const&,Vector4D  const&,Vector2D *)+94j ...
		fcomi	st, st(2)
		jz	short loc_8B260
		fxch	st(1)
		fsubr	dword ptr [edx+0Ch]
		lea	ecx, [esi+eax*8]
		fsub	st, st(2)
		fxch	st(2)
		fsubp	st(1), st
		fdivp	st(1), st
		fst	dword ptr [ecx]
		fld1
		fld	st
		fsub	st, st(2)
		fst	dword ptr [ecx+4]
		fldz
		fxch	st(3)
		fcomi	st, st(3)
		jb	short loc_8B270
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jnb	loc_8B2E8
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8B288
; ---------------------------------------------------------------------------
		align 10h

loc_8B260:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+B4j
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8B288
; ---------------------------------------------------------------------------
		align 10h

loc_8B270:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+D7j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8B288
; ---------------------------------------------------------------------------
		align 10h

loc_8B280:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+17Cj
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_8B288:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+EBj
					; IntersectTriangleWithPlaneBarycentric(Vector	const&,Vector  const&,Vector  const&,Vector4D  const&,Vector2D *)+F6j ...
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8B290:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+56j
		fstp	st
		jmp	short loc_8B29A
; ---------------------------------------------------------------------------
		align 8

loc_8B298:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+6Cj
		fstp	st

loc_8B29A:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+122j
		fldz
		xor	eax, eax
		fcomi	st, st(2)
		jz	loc_8B200

loc_8B2A6:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+81j
		fld	dword ptr [edx+0Ch]
		lea	ecx, [esi+eax*8]
		fsub	st, st(2)
		fdiv	st, st(3)
		fst	dword ptr [ecx]
		fxch	st(1)
		fst	dword ptr [ecx+4]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jb	loc_8B210
		fld1
		fcomip	st, st(1)
		fstp	st
		jb	loc_8B220
		cmp	eax, 1
		jnz	short loc_8B2FA
		fstp	st
		fstp	st
		fstp	st
		mov	eax, 2
		jmp	short loc_8B288
; ---------------------------------------------------------------------------
		align 8

loc_8B2E8:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+DFj
		fcomi	st, st(2)
		fstp	st(2)
		jb	short loc_8B280
		lea	edx, [eax+1]
		fcomip	st, st(1)
		fstp	st
		cmovnb	eax, edx
		jmp	short loc_8B288
; ---------------------------------------------------------------------------

loc_8B2FA:				; CODE XREF: IntersectTriangleWithPlaneBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector4D  const&,Vector2D *)+162j
		fxch	st(1)
		mov	eax, 1
		jmp	loc_8B222
_Z37IntersectTriangleWithPlaneBarycentricRK6VectorS1_S1_RK8Vector4DP8Vector2D endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsSphereIntersectingSphere(int, float, int, float)
_Z26IsSphereIntersectingSphereRK6VectorfS1_f proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		fld	[ebp+arg_C]
		fld	dword ptr [edx]
		fsub	dword ptr [eax]
		fmul	st, st
		fld	dword ptr [edx+4]
		fsub	dword ptr [eax+4]
		fmul	st, st
		fld	dword ptr [edx+8]
		fsub	dword ptr [eax+8]
		fmul	st, st
		fxch	st(3)
		fadd	[ebp+arg_4]
		pop	ebp
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		fxch	st(1)
		faddp	st(2), st
		fcomip	st, st(1)
		fstp	st
		setnb	al
_Z26IsSphereIntersectingSphereRK6VectorfS1_f endp ; sp-analysis	failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsBoxIntersectingSphere(int, int,	int, float)
_Z23IsBoxIntersectingSphereRK6VectorS1_S1_f proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		fld	[ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		fld	dword ptr [edx]
		fld	dword ptr [eax]
		fcomi	st, st(1)
		jbe	loc_8B400
		fsubp	st(1), st
		fmul	st, st

loc_8B36F:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+BEj
					; IsBoxIntersectingSphere(Vector  const&,Vector	 const&,Vector	const&,float)+CEj
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+4]
		fcomi	st, st(1)
		jbe	short loc_8B3D0
		fsubp	st(1), st
		fmul	st, st
		faddp	st(1), st
		jmp	short loc_8B38C
; ---------------------------------------------------------------------------
		align 8

loc_8B388:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+89j
		fstp	st
		fstp	st

loc_8B38C:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+2Fj
		fld	dword ptr [edx+8]
		fld	dword ptr [eax+8]
		fcomi	st, st(1)
		ja	short loc_8B3EB
		fstp	st
		jmp	short loc_8B3A2
; ---------------------------------------------------------------------------
		align 10h

loc_8B3A0:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+99j
		fstp	st

loc_8B3A2:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+48j
		fld	dword ptr [ecx+8]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B3B8
		fsubp	st(1), st
		fmul	st, st
		faddp	st(1), st
		fxch	st(1)
		jmp	short loc_8B3BE
; ---------------------------------------------------------------------------
		align 4

loc_8B3B8:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+59j
		fstp	st
		fstp	st
		fxch	st(1)

loc_8B3BE:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+63j
		fmul	st, st
		pop	ebp
		fcomip	st, st(1)
		fstp	st
		setnbe	al
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8B3D0:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+27j
		fstp	st
		fld	dword ptr [ecx+4]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B388
		fsubp	st(1), st
		fmul	st, st
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fld	dword ptr [eax+8]
		fcomi	st, st(1)
		jbe	short loc_8B3A0

loc_8B3EB:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+44j
		fsubp	st(1), st
		pop	ebp
		fmul	st, st
		faddp	st(1), st
		fxch	st(1)
		fmul	st, st
		fcomip	st, st(1)
		fstp	st
		setnbe	al
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8B400:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+15j
		fstp	st
		fld	dword ptr [ecx]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B418
		fsubp	st(1), st
		fmul	st, st
		jmp	loc_8B36F
; ---------------------------------------------------------------------------
		align 8

loc_8B418:				; CODE XREF: IsBoxIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float)+B8j
		fstp	st
		fstp	st
		fldz
		jmp	loc_8B36F
_Z23IsBoxIntersectingSphereRK6VectorS1_S1_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsBoxIntersectingSphereExtents(int, int, int, float)
_Z30IsBoxIntersectingSphereExtentsRK6VectorS1_S1_f proc	near
					; CODE XREF: EnumerateLeafInSphere_R(mnode_t *,EnumLeafSphereInfo_t &,int)+1D4p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		fld	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		fld	dword ptr [ecx]
		fsub	dword ptr [edx]
		fabs
		fld	dword ptr [eax]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B4A8
		fsubrp	st(1), st
		fmul	st, st

loc_8B451:				; CODE XREF: IsBoxIntersectingSphereExtents(Vector  const&,Vector  const&,Vector  const&,float)+7Ej
		fld	dword ptr [ecx+4]
		fsub	dword ptr [edx+4]
		fabs
		fld	dword ptr [eax+4]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B470
		fsubrp	st(1), st
		fmul	st, st
		faddp	st(1), st
		jmp	short loc_8B474
; ---------------------------------------------------------------------------
		align 10h

loc_8B470:				; CODE XREF: IsBoxIntersectingSphereExtents(Vector  const&,Vector  const&,Vector  const&,float)+30j
		fstp	st
		fstp	st

loc_8B474:				; CODE XREF: IsBoxIntersectingSphereExtents(Vector  const&,Vector  const&,Vector  const&,float)+38j
		fld	dword ptr [ecx+8]
		fsub	dword ptr [edx+8]
		fabs
		fld	dword ptr [eax+8]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B490
		fsubrp	st(1), st
		fmul	st, st
		faddp	st(1), st
		fxch	st(1)
		jmp	short loc_8B496
; ---------------------------------------------------------------------------
		align 10h

loc_8B490:				; CODE XREF: IsBoxIntersectingSphereExtents(Vector  const&,Vector  const&,Vector  const&,float)+53j
		fstp	st
		fstp	st
		fxch	st(1)

loc_8B496:				; CODE XREF: IsBoxIntersectingSphereExtents(Vector  const&,Vector  const&,Vector  const&,float)+5Dj
		fmul	st, st
		pop	ebp
		fcomip	st, st(1)
		fstp	st
		setnbe	al
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8B4A8:				; CODE XREF: IsBoxIntersectingSphereExtents(Vector  const&,Vector  const&,Vector  const&,float)+1Bj
		fstp	st
		fstp	st
		fldz
		jmp	short loc_8B451
_Z30IsBoxIntersectingSphereExtentsRK6VectorS1_S1_f endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsCircleIntersectingRectangle(int, int, int, float)
_Z29IsCircleIntersectingRectangleRK8Vector2DS1_S1_f proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		fld	[ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		fld	dword ptr [edx]
		fld	dword ptr [eax]
		fcomi	st, st(1)
		jbe	short loc_8B510
		fsubp	st(1), st
		fmul	st, st

loc_8B4CB:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+96j
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+4]
		fcomi	st, st(1)
		ja	short loc_8B528
		fstp	st
		jmp	short loc_8B4E2
; ---------------------------------------------------------------------------
		align 10h

loc_8B4E0:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+76j
		fstp	st

loc_8B4E2:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+27j
		fld	dword ptr [ecx+4]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B4F8
		fsubp	st(1), st
		fmul	st, st
		faddp	st(1), st
		fxch	st(1)
		jmp	short loc_8B4FE
; ---------------------------------------------------------------------------
		align 4

loc_8B4F8:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+39j
		fstp	st
		fstp	st
		fxch	st(1)

loc_8B4FE:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+43j
		fmul	st, st
		pop	ebp
		fcomip	st, st(1)
		fstp	st
		setnbe	al
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8B510:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+15j
		fstp	st
		fld	dword ptr [ecx]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8B540
		fsubp	st(1), st
		fmul	st, st
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+4]
		fcomi	st, st(1)
		jbe	short loc_8B4E0

loc_8B528:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+23j
		fsubp	st(1), st
		pop	ebp
		fmul	st, st
		faddp	st(1), st
		fxch	st(1)
		fmul	st, st
		fcomip	st, st(1)
		fstp	st
		setnbe	al
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8B540:				; CODE XREF: IsCircleIntersectingRectangle(Vector2D  const&,Vector2D  const&,Vector2D  const&,float)+68j
		fstp	st
		fstp	st
		fldz
		jmp	short loc_8B4CB
_Z29IsCircleIntersectingRectangleRK8Vector2DS1_S1_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsRayIntersectingSphere(int, int,	int, float, float)
_Z23IsRayIntersectingSphereRK6VectorS1_S1_ff proc near
					; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+116p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		fld	[ebp+arg_10]
		fadd	[ebp+arg_C]
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		fld	dword ptr [ecx]
		fstp	[ebp+var_4]
		fld	dword ptr [edx]
		fld	dword ptr [ecx+4]
		fstp	[ebp+var_8]
		fld	dword ptr [edx+4]
		fstp	[ebp+var_C]
		fld	dword ptr [ecx+8]
		fstp	[ebp+var_10]
		fld	dword ptr [edx+8]
		fstp	[ebp+var_14]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	[ebp+var_8]
		fsub	[ebp+var_C]
		fmul	st, st(2)
		fld	[ebp+var_4]
		fsub	st, st(5)
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_10]
		fsub	[ebp+var_14]
		fmul	st, st(2)
		faddp	st(1), st
		fldz
		fcomi	st, st(1)
		jnb	short loc_8B618
		fstp	st
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		faddp	st(1), st
		fld	st(2)
		fmul	st, st(3)
		faddp	st(1), st
		fxch	st(1)
		fcomi	st, st(1)
		ja	short loc_8B5D8
		fdivrp	st(1), st
		fmul	st(3), st
		fmul	st(2), st
		fmulp	st(1), st
		fxch	st(3)
		jmp	short loc_8B5DE
; ---------------------------------------------------------------------------
		align 8

loc_8B5D8:				; CODE XREF: IsRayIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float,float)+73j
		fstp	st
		fstp	st
		fxch	st(3)

loc_8B5DE:				; CODE XREF: IsRayIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float,float)+7Fj
					; IsRayIntersectingSphere(Vector  const&,Vector	 const&,Vector	const&,float,float)+D8j
		fsub	[ebp+var_4]
		faddp	st(2), st
		fxch	st(1)
		fmul	st, st
		fld	[ebp+var_C]
		fsub	[ebp+var_8]
		faddp	st(2), st
		fxch	st(1)
		fmul	st, st
		fld	[ebp+var_14]
		fsub	[ebp+var_10]
		leave
		faddp	st(3), st
		fxch	st(2)
		fmul	st, st
		fxch	st(3)
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		faddp	st(2), st
		fcomip	st, st(1)
		fstp	st
		setnb	al
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8B618:				; CODE XREF: IsRayIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float,float)+5Bj
		fstp	st(4)
		fstp	st
		fstp	st
		fstp	st
		fld	st
		fld	st(1)
		fxch	st(1)
		fxch	st(3)
		jmp	short loc_8B5DE
_Z23IsRayIntersectingSphereRK6VectorS1_S1_ff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectInfiniteRayWithSphere(int, int, int, float, int,	int)
_Z30IntersectInfiniteRayWithSphereRK6VectorS1_S1_fPfS2_	proc near
					; CODE XREF: IntersectRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+31p

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 4
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_10]
		fld	dword ptr [ecx]
		fsub	dword ptr [edx]
		mov	ebx, [ebp+arg_14]
		fld	dword ptr [ecx+4]
		fsub	dword ptr [edx+4]
		fld	dword ptr [ecx+8]
		fsub	dword ptr [edx+8]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		faddp	st(1), st
		fld	st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fldz
		fcomi	st, st(1)
		jz	loc_8B710
		fxch	st(3)
		fmul	st, st(6)
		fxch	st(4)
		xor	eax, eax
		fmul	st, st(7)
		faddp	st(4), st
		fxch	st(1)
		fmul	st, st(4)
		faddp	st(3), st
		fxch	st(2)
		fadd	st, st
		fld	[ebp+arg_C]
		fmul	st, st
		fstp	[ebp+var_C]
		fld	st
		fmul	st, st(1)
		fld	ds:flt_1EBD8C
		fmul	st, st(4)
		fxch	st(6)
		fmul	st, st
		fxch	st(7)
		fmul	st, st
		faddp	st(7), st
		fxch	st(4)
		fmul	st, st
		faddp	st(6), st
		fxch	st(5)
		fsub	[ebp+var_C]
		fmulp	st(4), st
		fxch	st(2)
		fsubrp	st(3), st
		fxch	st(1)
		fcomip	st, st(2)
		ja	short loc_8B6F0
		fxch	st(1)
		fsqrt
		fxch	st(1)
		mov	eax, 1
		fdivr	ds:flt_1EBAA4
		fld	st(1)
		fadd	st, st(3)
		fchs
		fmul	st, st(1)
		fstp	dword ptr [esi]
		fxch	st(2)
		fsubp	st(1), st
		fmulp	st(1), st
		fstp	dword ptr [ebx]
		jmp	short loc_8B700
; ---------------------------------------------------------------------------
		align 10h

loc_8B6F0:				; CODE XREF: IntersectInfiniteRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+92j
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_8B700:				; CODE XREF: IntersectInfiniteRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+B7j
		add	esp, 4
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8B710:				; CODE XREF: IntersectInfiniteRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+43j
		fstp	st(4)
		fstp	st
		fstp	st
		fstp	st
		fst	dword ptr [ebx]
		fstp	dword ptr [esi]
		fxch	st(2)
		fmul	st, st
		fxch	st(1)
		fmul	st, st
		fxch	st(2)
		fmul	st, st
		fld	[ebp+arg_C]
		fmul	st, st
		fxch	st(3)
		faddp	st(2), st
		faddp	st(1), st
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		setnb	al
		add	esp, 4
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z30IntersectInfiniteRayWithSphereRK6VectorS1_S1_fPfS2_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithSphere(int, int, int, float, int,	int)
_Z22IntersectRayWithSphereRK6VectorS1_S1_fPfS2_	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 18h
		mov	eax, [ebp+arg_C]
		mov	ebx, [ebp+arg_10]
		mov	esi, [ebp+arg_14]
		mov	[esp+0Ch], eax	; float
		mov	eax, [ebp+arg_8]
		mov	[esp+10h], ebx	; int
		mov	[esp+14h], esi	; int
		mov	[esp+8], eax	; int
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_Z30IntersectInfiniteRayWithSphereRK6VectorS1_S1_fPfS2_	; IntersectInfiniteRayWithSphere(Vector	 const&,Vector	const&,Vector  const&,float,float *,float *)
		xor	edx, edx
		test	al, al
		jz	short loc_8B7B8
		fld	dword ptr [ebx]
		fld1
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_8B7C8
		fstp	st
		jmp	short loc_8B7B8
; ---------------------------------------------------------------------------
		align 10h

loc_8B7A0:				; CODE XREF: IntersectRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+7Ej
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8B7B8
; ---------------------------------------------------------------------------
		align 10h

loc_8B7B0:				; CODE XREF: IntersectRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+93j
		fstp	st
		lea	esi, [esi+0]

loc_8B7B8:				; CODE XREF: IntersectRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+3Aj
					; IntersectRayWithSphere(Vector	 const&,Vector	const&,Vector  const&,float,float *,float *)+4Aj ...
		add	esp, 18h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8B7C8:				; CODE XREF: IntersectRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+46j
		fld	dword ptr [esi]
		fldz
		fcomi	st, st(1)
		ja	short loc_8B7A0
		fcomi	st, st(2)
		fstp	st(2)
		ja	short loc_8B7F8
		fstp	st(1)

loc_8B7D8:				; CODE XREF: IntersectRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+AEj
		fld1
		fxch	st(1)
		mov	edx, 1
		fcomip	st, st(1)
		jbe	short loc_8B7B0
		fstp	dword ptr [esi]
		add	esp, 18h
		mov	edx, 1
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_8B7F8:				; CODE XREF: IntersectRayWithSphere(Vector  const&,Vector  const&,Vector  const&,float,float *,float *)+84j
		fstp	st
		fstp	dword ptr [ebx]
		fld	dword ptr [esi]
		jmp	short loc_8B7D8
_Z22IntersectRayWithSphereRK6VectorS1_S1_fPfS2_	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsSphereIntersectingCone(int, float, int,	int, float, float)
_Z24IsSphereIntersectingConeRK6VectorfS1_S1_ff proc near

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		fld	[ebp+arg_4]
		fdiv	[ebp+arg_10]
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		fstp	[ebp+var_4]
		fld	dword ptr [edx]
		fstp	[ebp+var_8]
		fld	dword ptr [edx+4]
		fstp	[ebp+var_C]
		fld	dword ptr [edx+8]
		fstp	[ebp+var_10]
		fld	dword ptr [eax]
		fst	[ebp+var_14]
		fld	st(3)
		fmul	st, st(3)
		fsubr	[ebp+var_8]
		fsubp	st(1), st
		fld	dword ptr [eax+4]
		fst	[ebp+var_18]
		fld	st(4)
		fmul	st, st(3)
		fsubr	[ebp+var_C]
		fsubp	st(1), st
		fld	dword ptr [eax+8]
		xor	eax, eax
		fst	[ebp+var_1C]
		fxch	st(5)
		fmul	[ebp+var_4]
		fsubr	[ebp+var_10]
		fsubp	st(5), st
		fld	st(1)
		fmul	st, st(2)
		fld	st(1)
		fmul	st, st(2)
		fld	st(6)
		fmul	st, st(7)
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fmul	[ebp+arg_14]
		fxch	st(1)
		fmul	st, st(3)
		fxch	st(2)
		fmul	st, st(4)
		faddp	st(2), st
		fxch	st(4)
		fmul	[ebp+var_4]
		faddp	st(1), st
		fcomip	st, st(3)
		fstp	st(2)
		jb	short loc_8B8E8
		fld	[ebp+var_14]
		mov	edx, 1
		fsub	[ebp+var_8]
		fld	[ebp+var_18]
		fsub	[ebp+var_C]
		fld	[ebp+var_1C]
		fsub	[ebp+var_10]
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fxch	st(5)
		fmulp	st(2), st
		fxch	st(3)
		fmulp	st(2), st
		faddp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_4]
		faddp	st(1), st
		fchs
		fld	[ebp+arg_10]
		fmul	st, st(2)
		fld	[ebp+arg_4]
		fcomip	st, st(3)
		fstp	st(2)
		setnb	al
		fcomip	st, st(1)
		fstp	st
		cmovb	eax, edx
		jmp	short locret_8B8EC
; ---------------------------------------------------------------------------
		align 8

loc_8B8E8:				; CODE XREF: IsSphereIntersectingCone(Vector  const&,float,Vector  const&,Vector  const&,float,float)+8Cj
		fstp	st
		fstp	st

locret_8B8EC:				; CODE XREF: IsSphereIntersectingCone(Vector  const&,float,Vector  const&,Vector  const&,float,float)+E2j
		leave
		retn
_Z24IsSphereIntersectingConeRK6VectorfS1_S1_ff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsPointInBox(Vector  const&, Vector  const&, Vector  const&)
_Z12IsPointInBoxRK6VectorS1_S1_	proc near
					; CODE XREF: CDispCollTree::PointInBounds(Vector  const&,Vector	 const&,Vector	const&,bool)+76p
					; CDispCollTree::PointInBounds(Vector  const&,Vector  const&,Vector  const&,bool)+99p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		mov	ebx, [ebp+arg_4]
		fld	dword ptr [ecx]
		fld	dword ptr [edx]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		ja	short loc_8B918
		fld	dword ptr [ebx]
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8B938
		jmp	short loc_8B930
; ---------------------------------------------------------------------------
		align 4

loc_8B918:				; CODE XREF: IsPointInBox(Vector  const&,Vector	 const&,Vector	const&)+19j
		fstp	st
		jmp	short loc_8B930
; ---------------------------------------------------------------------------
		align 10h

loc_8B920:				; CODE XREF: IsPointInBox(Vector  const&,Vector	 const&,Vector	const&)+54j
		fstp	st
		jmp	short loc_8B930
; ---------------------------------------------------------------------------
		align 8

loc_8B928:				; CODE XREF: IsPointInBox(Vector  const&,Vector	 const&,Vector	const&)+6Bj
		fstp	st
		lea	esi, [esi+0]

loc_8B930:				; CODE XREF: IsPointInBox(Vector  const&,Vector	 const&,Vector	const&)+23j
					; IsPointInBox(Vector  const&,Vector  const&,Vector  const&)+2Aj ...
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8B938:				; CODE XREF: IsPointInBox(Vector  const&,Vector	 const&,Vector	const&)+21j
		fld	dword ptr [ecx+4]
		fld	dword ptr [edx+4]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		ja	short loc_8B920
		fld	dword ptr [ebx+4]
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8B930
		fld	dword ptr [ecx+8]
		fld	dword ptr [edx+8]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		ja	short loc_8B928
		fld	dword ptr [ebx+8]
		fxch	st(1)
		pop	ebx
		fcomip	st, st(1)
		fstp	st
		setnb	al
		pop	ebp
		retn
_Z12IsPointInBoxRK6VectorS1_S1_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsPointInCone(int, int, int, float, float)
_Z13IsPointInConeRK6VectorS1_S1_ff proc	near

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		fld	dword ptr [ecx]
		fsub	dword ptr [edx]
		fld	dword ptr [ecx+4]
		fsub	dword ptr [edx+4]
		fld	dword ptr [ecx+8]
		fsub	dword ptr [edx+8]
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fst	[ebp+var_C]
		mov	edx, [ebp+var_C]
		movd	xmm0, edx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_C], xmm1
		fld	[ebp+var_C]
		fxch	st(3)
		fmul	dword ptr [eax+4]
		fxch	st(4)
		fmul	dword ptr [eax]
		faddp	st(4), st
		fxch	st(1)
		fmul	dword ptr [eax+8]
		xor	eax, eax
		faddp	st(3), st
		fxch	st(2)
		fmul	st, st(1)
		fld	[ebp+arg_C]
		fcomip	st, st(1)
		ja	short loc_8BA18
		fmulp	st(1), st
		fmulp	st(1), st
		fld	[ebp+arg_10]
		fcomip	st, st(1)
		fstp	st
		setnb	al
		jmp	short locret_8BA1E
; ---------------------------------------------------------------------------
		align 8

loc_8BA18:				; CODE XREF: IsPointInCone(Vector  const&,Vector  const&,Vector	 const&,float,float)+90j
		fstp	st
		fstp	st
		fstp	st

locret_8BA1E:				; CODE XREF: IsPointInCone(Vector  const&,Vector  const&,Vector	 const&,float,float)+A0j
		leave
		retn
_Z13IsPointInConeRK6VectorS1_S1_ff endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsBoxIntersectingBox(Vector  const&, Vector  const&, Vector  const&, Vector  const&)
_Z20IsBoxIntersectingBoxRK6VectorS1_S1_S1_ proc	near
					; CODE XREF: IsBoxIntersectingRay(Vector  const&,Vector	 const&,Ray_t  const&,float)+B5p
					; IsBoxIntersectingRay(float  {__vector} const&,float  {__vector} const&,Ray_t	const&,float)+F4p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 8
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_4], esi
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		fld	dword ptr [ecx]
		fld	dword ptr [edx]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8BA52
		fld	dword ptr [esi]
		fld	dword ptr [ebx]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8BA60

loc_8BA52:				; CODE XREF: IsBoxIntersectingBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&)+24j
					; IsBoxIntersectingBox(Vector  const&,Vector  const&,Vector  const&,Vector  const&)+4Cj ...
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8BA60:				; CODE XREF: IsBoxIntersectingBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&)+30j
		fld	dword ptr [ecx+4]
		fld	dword ptr [edx+4]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8BA52
		fld	dword ptr [esi+4]
		fld	dword ptr [ebx+4]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8BA52
		fld	dword ptr [ecx+8]
		fld	dword ptr [edx+8]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8BA52
		fld	dword ptr [ebx+8]
		fld	dword ptr [esi+8]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		mov	ebx, [ebp+var_8]
		setnb	al
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z20IsBoxIntersectingBoxRK6VectorS1_S1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsBoxIntersectingBoxExtents(Vector  const&, Vector  const&, Vector  const&, Vector  const&)
_Z27IsBoxIntersectingBoxExtentsRK6VectorS1_S1_S1_ proc near
					; CODE XREF: EnumerateLeafInBox_R(mnode_t *,EnumLeafBoxInfo_t &)+3Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 8
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_C]
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+4]
		fld	dword ptr [edx+8]
		fstp	[ebp+var_8]
		fld	dword ptr [eax+8]
		fstp	[ebp+var_C]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ebx+4]
		fld	dword ptr [ecx+8]
		fld	dword ptr [ebx+8]
		fld	dword ptr [ebx]
		fadd	dword ptr [ecx]
		fld	dword ptr [edx]
		fsub	dword ptr [eax]
		fabs
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_8BB10
		fxch	st(3)
		faddp	st(2), st
		fxch	st(3)
		fsubp	st(4), st
		fxch	st(3)
		fabs
		fxch	st(3)
		fcomip	st, st(3)
		fstp	st(2)
		jnb	short loc_8BB28
		fstp	st
		fstp	st
		jmp	short loc_8BB1C
; ---------------------------------------------------------------------------
		align 10h

loc_8BB10:				; CODE XREF: IsBoxIntersectingBoxExtents(Vector	 const&,Vector	const&,Vector  const&,Vector  const&)+41j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_8BB1C:				; CODE XREF: IsBoxIntersectingBoxExtents(Vector	 const&,Vector	const&,Vector  const&,Vector  const&)+5Bj
		add	esp, 8
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8BB28:				; CODE XREF: IsBoxIntersectingBoxExtents(Vector	 const&,Vector	const&,Vector  const&,Vector  const&)+55j
		faddp	st(1), st
		fld	[ebp+var_8]
		fsub	[ebp+var_C]
		fabs
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		setnb	al
		add	esp, 8
		pop	ebx
		pop	ebp
		retn
_Z27IsBoxIntersectingBoxExtentsRK6VectorS1_S1_S1_ endp

; ---------------------------------------------------------------------------
		jmp	short _Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_f ; IsBoxIntersectingRay(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsBoxIntersectingRay(Vector  const&, Vector  const&, Vector  const&, Vector  const&, float)
_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_f proc near ;	CODE XREF: .text:0008BB41j
					; IsBoxIntersectingRay(Vector  const&,Vector  const&,Ray_t  const&,float)+10Fp	...

var_28		= xmmword ptr -28h
var_18		= xmmword ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_8]
		movss	xmm2, [ebp+arg_10]
		shufps	xmm2, xmm2, 0
		movups	xmm3, xmmword ptr [eax]
		mov	eax, [ebp+arg_C]
		movups	xmm4, xmmword ptr [eax]
		mov	eax, [ebp+arg_0]
		movups	xmm1, xmmword ptr [eax]
		mov	eax, [ebp+arg_4]
		subps	xmm1, xmm3
		movups	xmm0, xmmword ptr [eax]
		subps	xmm1, xmm2
		xor	eax, eax
		subps	xmm0, xmm3
		movaps	xmm3, xmmword ptr ds:Four_Zeros
		addps	xmm0, xmm2
		movaps	xmm2, xmm3
		cmpltps	xmm2, xmm1
		movaps	xmm6, xmm0
		movaps	xmm5, xmm0
		movaps	[ebp+var_18], xmm2
		movaps	xmm2, xmm4
		cmpltps	xmm6, xmm3
		cmpltps	xmm2, xmm1
		cmpltps	xmm5, xmm4
		movaps	xmm7, xmm6
		movaps	[ebp+var_28], xmm2
		movaps	xmm2, [ebp+var_18]
		andps	xmm7, xmm5
		andps	xmm2, [ebp+var_28]
		orps	xmm2, xmm7
		andps	xmm2, xmmword ptr ds:g_SIMD_clear_wmask
		movmskps edx, xmm2
		test	edx, edx
		jnz	locret_8BC78
		movaps	xmm2, xmm4
		xorps	xmm5, xmm6
		cmpeqps	xmm2, xmm3
		andps	xmm2, xmmword ptr ds:Four_Epsilons
		orps	xmm2, xmm4
		rcpps	xmm4, xmm2
		movaps	xmm7, xmm4
		mulps	xmm7, xmm4
		addps	xmm4, xmm4
		mulps	xmm7, xmm2
		subps	xmm4, xmm7
		mulps	xmm1, xmm4
		mulps	xmm4, xmm0
		movaps	xmm0, [ebp+var_18]
		xorps	xmm0, [ebp+var_28]
		orps	xmm0, xmm5
		movaps	xmm2, xmm0
		andnps	xmm2, xmmword ptr ds:Four_Negative_FLT_MAX
		andps	xmm1, xmm0
		orps	xmm1, xmm2
		movaps	xmm2, xmm0
		movaps	xmm5, xmm1
		andps	xmm4, xmm0
		andnps	xmm2, xmmword ptr ds:Four_FLT_MAX
		orps	xmm4, xmm2
		minps	xmm5, xmm4
		maxps	xmm4, xmm1
		movaps	xmm0, xmm5
		movaps	xmm2, xmm4
		shufps	xmm0, xmm5, 39h
		maxps	xmm0, xmm5
		shufps	xmm2, xmm4, 39h
		minps	xmm2, xmm4
		shufps	xmm5, xmm5, 4Eh
		shufps	xmm4, xmm4, 4Eh
		maxps	xmm0, xmm5
		minps	xmm2, xmm4
		shufps	xmm0, xmm0, 0
		maxps	xmm0, xmm3
		shufps	xmm2, xmm2, 0
		minps	xmm2, xmmword ptr ds:Four_Ones
		cmpltps	xmm2, xmm0
		cmpeqps	xmm2, xmm3
		movmskps eax, xmm2
		cmp	eax, 0Fh
		setz	al

locret_8BC78:				; CODE XREF: IsBoxIntersectingRay(Vector  const&,Vector	 const&,Vector	const&,Vector  const&,float)+7Dj
		leave
		retn
_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsBoxIntersectingRay(Vector  const&, Vector  const&, Vector  const&, Vector  const&, Vector  const&, float)
_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_S1_f proc near
					; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+3D1p
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+418p ...

var_18		= xmmword ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_8]
		movaps	xmm3, xmmword ptr ds:Four_Zeros
		movaps	xmm4, xmm3
		movups	xmm0, xmmword ptr [eax]
		mov	eax, [ebp+arg_C]
		movups	xmm5, xmmword ptr [eax]
		mov	eax, [ebp+arg_0]
		movups	xmm2, xmmword ptr [eax]
		mov	eax, [ebp+arg_4]
		subps	xmm2, xmm0
		movups	xmm1, xmmword ptr [eax]
		cmpltps	xmm4, xmm2
		xor	eax, eax
		subps	xmm1, xmm0
		movaps	xmm0, xmm5
		cmpltps	xmm0, xmm2
		movaps	xmm6, xmm1
		movaps	xmm7, xmm1
		cmpltps	xmm7, xmm5
		movaps	[ebp+var_18], xmm0
		andps	xmm0, xmm4
		cmpltps	xmm6, xmm3
		movaps	xmm5, xmm7
		movaps	xmm7, xmm6
		andps	xmm7, xmm5
		orps	xmm0, xmm7
		andps	xmm0, xmmword ptr ds:g_SIMD_clear_wmask
		movmskps edx, xmm0
		test	edx, edx
		jz	short loc_8BCF0
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8BCF0:				; CODE XREF: IsBoxIntersectingRay(Vector  const&,Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float)+68j
		mov	eax, [ebp+arg_10]
		movss	xmm0, [ebp+arg_14]
		xorps	xmm5, xmm6
		shufps	xmm0, xmm0, 0
		subps	xmm2, xmm0
		xorps	xmm4, [ebp+var_18]
		addps	xmm1, xmm0
		orps	xmm4, xmm5
		movaps	xmm0, xmm4
		andnps	xmm0, xmmword ptr ds:Four_Negative_FLT_MAX
		movups	xmm7, xmmword ptr [eax]
		mulps	xmm2, xmm7
		mulps	xmm1, xmm7
		andps	xmm2, xmm4
		orps	xmm2, xmm0
		movaps	xmm0, xmm4
		movaps	xmm5, xmm2
		andnps	xmm0, xmmword ptr ds:Four_FLT_MAX
		andps	xmm1, xmm4
		orps	xmm1, xmm0
		minps	xmm5, xmm1
		maxps	xmm2, xmm1
		movaps	xmm0, xmm5
		movaps	xmm4, xmm2
		shufps	xmm0, xmm5, 39h
		maxps	xmm0, xmm5
		shufps	xmm4, xmm2, 39h
		minps	xmm4, xmm2
		shufps	xmm5, xmm5, 4Eh
		shufps	xmm2, xmm2, 4Eh
		maxps	xmm0, xmm5
		minps	xmm4, xmm2
		shufps	xmm0, xmm0, 0
		maxps	xmm0, xmm3
		shufps	xmm4, xmm4, 0
		minps	xmm4, xmmword ptr ds:Four_Ones
		leave
		cmpltps	xmm4, xmm0
		cmpeqps	xmm4, xmm3
		movmskps eax, xmm4
		cmp	eax, 0Fh
		setz	al
		retn
_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_S1_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsBoxIntersectingRay(int,	int, int, float)
_Z20IsBoxIntersectingRayRK6VectorS1_RK5Ray_tf proc near
					; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+1F6p
					; IsRayIntersectingOBB(Ray_t  const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&)+346p	...

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		fld	[ebp+arg_C]
		cmp	byte ptr [eax+41h], 0
		jnz	loc_8BE50
		fld	dword ptr [eax]
		fld	dword ptr [eax+30h]
		fld	st(1)
		fsub	st, st(1)
		fst	[ebp+var_44]
		fstp	[ebp+var_38]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+34h]
		fld	st(1)
		fsub	st, st(1)
		fst	[ebp+var_3C]
		fstp	[ebp+var_34]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax+38h]
		fld	st(1)
		fsub	st, st(1)
		fst	[ebp+var_40]
		fstp	[ebp+var_30]
		fxch	st(5)
		faddp	st(4), st
		fxch	st(3)
		fst	[ebp+var_2C]
		fxch	st(2)
		faddp	st(1), st
		fst	[ebp+var_28]
		fxch	st(2)
		faddp	st(3), st
		fxch	st(2)
		fst	[ebp+var_24]
		fldz
		fcomip	st, st(4)
		jz	short loc_8BE28
		fld	[ebp+var_44]
		fsub	st, st(4)
		fstp	[ebp+var_38]
		fld	[ebp+var_3C]
		fsub	st, st(4)
		fstp	[ebp+var_34]
		fld	[ebp+var_40]
		fsub	st, st(4)
		fstp	[ebp+var_30]
		fxch	st(2)
		fadd	st, st(3)
		fstp	[ebp+var_2C]
		fadd	st, st(2)
		fstp	[ebp+var_28]
		faddp	st(1), st
		fstp	[ebp+var_24]
		jmp	short loc_8BE30
; ---------------------------------------------------------------------------
		align 4

loc_8BE28:				; CODE XREF: IsBoxIntersectingRay(Vector  const&,Vector	 const&,Ray_t  const&,float)+68j
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_8BE30:				; CODE XREF: IsBoxIntersectingRay(Vector  const&,Vector	 const&,Ray_t  const&,float)+93j
		lea	eax, [ebp+var_2C]
		mov	[esp+4], edx
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_38]
		mov	[esp+8], eax
		mov	[esp], ecx
		call	_Z20IsBoxIntersectingBoxRK6VectorS1_S1_S1_ ; IsBoxIntersectingBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&)
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8BE50:				; CODE XREF: IsBoxIntersectingRay(Vector  const&,Vector	 const&,Ray_t  const&,float)+16j
		fld	dword ptr [eax+30h]
		fld	dword ptr [ecx]
		fsub	st, st(1)
		fstp	[ebp+var_20]
		fld	dword ptr [eax+34h]
		fld	dword ptr [ecx+4]
		fsub	st, st(1)
		fstp	[ebp+var_1C]
		fld	dword ptr [eax+38h]
		fld	dword ptr [ecx+8]
		fsub	st, st(1)
		fstp	[ebp+var_18]
		fxch	st(2)
		fadd	dword ptr [edx]
		fstp	[ebp+var_14]
		fadd	dword ptr [edx+4]
		fstp	[ebp+var_10]
		fadd	dword ptr [edx+8]
		lea	edx, [eax+10h]
		mov	[esp+8], eax
		lea	eax, [ebp+var_14]
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		lea	eax, [ebp+var_20]
		mov	[esp], eax
		fstp	[ebp+var_C]
		fstp	dword ptr [esp+10h]
		call	_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_f ; IsBoxIntersectingRay(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,float)
		leave
		retn
_Z20IsBoxIntersectingRayRK6VectorS1_RK5Ray_tf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; IsBoxIntersectingRay(float  {__vector} const&, float	{__vector} const&, float  {__vector} const&, float  {__vector} const&, float  {__vector} const&, float	{__vector} const&)
_Z20IsBoxIntersectingRayRKU8__vectorfS1_S1_S1_S1_S1_ proc near
					; CODE XREF: IsBoxIntersectingRay(float	 {__vector} const&,float  {__vector} const&,Ray_t  const&,float)+9Bp
		push	ebp
		movaps	xmm3, xmmword ptr ds:Four_Zeros
		mov	ebp, esp
		mov	eax, [ebp+10h]
		movaps	xmm4, xmm3
		movaps	xmm0, xmmword ptr [eax]
		mov	eax, [ebp+8]
		movaps	xmm2, xmmword ptr [eax]
		mov	eax, [ebp+0Ch]
		subps	xmm2, xmm0
		movaps	xmm1, xmmword ptr [eax]
		cmpltps	xmm4, xmm2
		mov	eax, [ebp+14h]
		subps	xmm1, xmm0
		movaps	xmm0, xmmword ptr [eax]
		xor	eax, eax
		movaps	xmm5, xmm0
		cmpltps	xmm5, xmm2
		andps	xmm4, xmm5
		movaps	xmm5, xmm1
		cmpltps	xmm5, xmm0
		movaps	xmm0, xmm1
		cmpltps	xmm0, xmm3
		andps	xmm0, xmm5
		orps	xmm0, xmm4
		andps	xmm0, xmmword ptr ds:g_SIMD_clear_wmask
		movmskps edx, xmm0
		test	edx, edx
		jnz	short loc_8BF73
		mov	eax, [ebp+1Ch]
		movaps	xmm0, xmmword ptr [eax]
		mov	eax, [ebp+18h]
		subps	xmm2, xmm0
		addps	xmm1, xmm0
		movaps	xmm0, xmmword ptr [eax]
		mulps	xmm2, xmm0
		mulps	xmm1, xmm0
		movaps	xmm4, xmm2
		minps	xmm4, xmm1
		maxps	xmm1, xmm2
		movaps	xmm0, xmm1
		shufps	xmm0, xmm1, 39h
		minps	xmm0, xmm1
		shufps	xmm1, xmm1, 4Eh
		minps	xmm0, xmm1
		movaps	xmm1, xmm4
		shufps	xmm1, xmm4, 39h
		maxps	xmm1, xmm4
		shufps	xmm4, xmm4, 4Eh
		shufps	xmm0, xmm0, 0
		minps	xmm0, xmmword ptr ds:Four_Ones
		maxps	xmm1, xmm4
		shufps	xmm1, xmm1, 0
		maxps	xmm1, xmm3
		cmpltps	xmm0, xmm1
		cmpeqps	xmm0, xmm3
		movmskps eax, xmm0
		cmp	eax, 0Fh
		setz	al

loc_8BF73:				; CODE XREF: IsBoxIntersectingRay(float	 {__vector} const&,float  {__vector} const&,float  {__vector} const&,float  {__vector} const&,float  {__vector}	const&,float  {__vector} const&)+5Bj
		pop	ebp
		retn
_Z20IsBoxIntersectingRayRKU8__vectorfS1_S1_S1_S1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsBoxIntersectingRay(float  {__vector} const&, float	{__vector} const&, Ray_t  const&, float)
_Z20IsBoxIntersectingRayRKU8__vectorfS1_RK5Ray_tf proc near

var_A8		= xmmword ptr -0A8h
var_98		= xmmword ptr -98h
var_88		= xmmword ptr -88h
var_78		= xmmword ptr -78h
var_68		= xmmword ptr -68h
var_58		= xmmword ptr -58h
var_48		= xmmword ptr -48h
var_38		= xmmword ptr -38h
var_28		= xmmword ptr -28h
var_18		= xmmword ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0C8h
		mov	eax, [ebp+arg_8]
		movss	xmm0, [ebp+arg_C]
		movaps	xmm1, xmmword ptr ds:g_SIMD_clear_wmask
		shufps	xmm0, xmm0, 0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	byte ptr [eax+41h], 0
		movaps	xmm3, xmmword ptr [eax]
		movaps	xmm2, xmmword ptr [eax+30h]
		andps	xmm3, xmm1
		movaps	[ebp+var_A8], xmm3
		andps	xmm2, xmm1
		jz	short loc_8C028
		movaps	xmm3, xmmword ptr [ecx]
		andps	xmm1, xmmword ptr [eax+10h]
		movaps	[ebp+var_18], xmm0
		rcpps	xmm0, xmm1
		lea	eax, [ebp+var_18]
		movaps	[ebp+var_58], xmm1
		subps	xmm3, xmm2
		addps	xmm2, xmmword ptr [edx]
		mov	[esp+14h], eax
		lea	eax, [ebp+var_28]
		mov	[esp+10h], eax
		lea	eax, [ebp+var_58]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_A8]
		movaps	[ebp+var_38], xmm2
		movaps	xmm2, xmm0
		mulps	xmm2, xmm0
		addps	xmm0, xmm0
		mov	[esp+8], eax
		lea	eax, [ebp+var_38]
		movaps	[ebp+var_48], xmm3
		mov	[esp+4], eax
		lea	eax, [ebp+var_48]
		mov	[esp], eax
		mulps	xmm2, xmm1
		subps	xmm0, xmm2
		movaps	[ebp+var_28], xmm0
		call	_Z20IsBoxIntersectingRayRKU8__vectorfS1_S1_S1_S1_S1_ ; IsBoxIntersectingRay(float  {__vector} const&,float  {__vector} const&,float  {__vector}	const&,float  {__vector} const&,float  {__vector} const&,float	{__vector} const&)
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8C028:				; CODE XREF: IsBoxIntersectingRay(float	 {__vector} const&,float  {__vector} const&,Ray_t  const&,float)+3Aj
		lea	eax, [ebp+var_68]
		movaps	xmm1, xmm3
		subps	xmm1, xmm2
		addps	xmm2, xmm3
		addps	xmm1, xmm0
		addps	xmm2, xmm0
		movaps	xmm0, xmmword ptr [ecx]
		movaps	[ebp+var_98], xmm0
		movaps	xmm0, xmmword ptr [edx]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_78]
		mov	[esp+8], eax
		lea	eax, [ebp+var_88]
		mov	[esp+4], eax
		lea	eax, [ebp+var_98]
		mov	[esp], eax
		movaps	[ebp+var_88], xmm0
		movaps	[ebp+var_78], xmm1
		movaps	[ebp+var_68], xmm2
		call	_Z20IsBoxIntersectingBoxRK6VectorS1_S1_S1_ ; IsBoxIntersectingBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&)
		leave
		retn
_Z20IsBoxIntersectingRayRKU8__vectorfS1_RK5Ray_tf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IntersectRayWithRay(Ray_t  const&, Ray_t  const&, float &, float &)
_Z19IntersectRayWithRayRK5Ray_tS1_RfS2_	proc near
					; CODE XREF: QuadWithParallelEdges(Vector  const&,Vector  const&,float,Vector  const&,float,Vector  const&,Vector2D &)+BCp
					; QuadWithParallelEdges(Vector	const&,Vector  const&,float,Vector  const&,float,Vector	 const&,Vector2D &)+129p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 30h
		mov	edx, [ebp+arg_0]
		movss	xmm4, ds:dword_1EBD40
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_C]
		fld	dword ptr [edx+10h]
		fld	dword ptr [edx+14h]
		fld	dword ptr [edx+18h]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+14h]
		fld	dword ptr [eax+18h]
		fld	st(5)
		fmul	st, st(6)
		fld	st(5)
		fmul	st, st(6)
		fstp	[ebp+var_10]
		fld	st(4)
		fmul	st, st(5)
		fstp	[ebp+var_C]
		fadd	[ebp+var_10]
		fld	ds:flt_1EBD04
		fadd	st(1), st
		fxch	st(1)
		fadd	[ebp+var_C]
		fstp	[ebp+var_28]
		mov	esi, [ebp+var_28]
		movd	xmm1, esi
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		movss	[ebp+var_28], xmm0
		fld	[ebp+var_28]
		fmul	st(7), st
		fmul	st(6), st
		fxch	st(6)
		fstp	[ebp+var_C]
		fxch	st(5)
		fmulp	st(4), st
		fxch	st(3)
		fstp	[ebp+var_14]
		fld	st(1)
		fmul	st, st(2)
		fld	st(1)
		fmul	st, st(2)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		faddp	st(5), st
		faddp	st(4), st
		fxch	st(3)
		fstp	[ebp+var_28]
		mov	esi, [ebp+var_28]
		movd	xmm3, esi
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_28], xmm0
		fld	[ebp+var_28]
		fmul	st(1), st
		fmul	st(3), st
		fxch	st(3)
		fstp	[ebp+var_10]
		fxch	st(2)
		fmulp	st(1), st
		fst	[ebp+var_18]
		fld	[ebp+var_C]
		fmul	st, st(1)
		fld	[ebp+var_10]
		fmul	[ebp+var_14]
		fsubp	st(1), st
		fld	[ebp+var_14]
		fmul	st, st(3)
		fxch	st(2)
		fmul	st, st(4)
		fsubp	st(2), st
		fld	[ebp+var_10]
		fmul	st, st(4)
		fld	[ebp+var_C]
		fmul	st, st(4)
		fsubp	st(1), st
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fldz
		fcomi	st, st(1)
		jnz	short loc_8C1D0
		fstp	st(5)
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st(1)
		fst	dword ptr [ecx]
		xor	eax, eax
		fstp	dword ptr [ebx]

loc_8C1C4:				; CODE XREF: IntersectRayWithRay(Ray_t	const&,Ray_t  const&,float &,float &)+209j
		add	esp, 30h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8C1D0:				; CODE XREF: IntersectRayWithRay(Ray_t	const&,Ray_t  const&,float &,float &)+130j
		fstp	st
		fld	dword ptr [eax]
		fsub	dword ptr [edx]
		fstp	[ebp+var_1C]
		fld	dword ptr [eax+4]
		fsub	dword ptr [edx+4]
		fst	[ebp+var_20]
		fld	dword ptr [eax+8]
		fsub	dword ptr [edx+8]
		fxch	st(1)
		fmul	st, st(3)
		fstp	[ebp+var_2C]
		fld	st(4)
		fmul	st, st(1)
		fsub	[ebp+var_2C]
		fstp	[ebp+var_24]
		fld	st(3)
		fmulp	st(1), st
		fld	[ebp+var_1C]
		fmulp	st(3), st
		fsubp	st(2), st
		fxch	st(3)
		fmul	[ebp+var_1C]
		fxch	st(2)
		fmul	[ebp+var_20]
		fsubrp	st(2), st
		fld	[ebp+var_10]
		fmul	st, st(1)
		fld	[ebp+var_24]
		fmul	st, st(5)
		faddp	st(1), st
		fld	[ebp+var_18]
		fmul	st, st(3)
		faddp	st(1), st
		fdiv	st, st(3)
		fstp	dword ptr [ecx]
		fmul	[ebp+var_C]
		fld	[ebp+var_24]
		fmul	st, st(5)
		faddp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_14]
		faddp	st(1), st
		fdivrp	st(1), st
		fst	dword ptr [ebx]
		fld	dword ptr [ecx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fstp	[ebp+var_1C]
		fxch	st(6)
		fmul	st, st(3)
		fadd	dword ptr [edx]
		fxch	st(5)
		fmul	st, st(4)
		fadd	dword ptr [eax]
		fcomip	st, st(5)
		fstp	st(4)
		jnz	short loc_8C290
		fld	[ebp+var_C]
		fmul	st, st(2)
		faddp	st(1), st
		fld	[ebp+var_10]
		fmul	st, st(3)
		faddp	st(5), st
		fcomip	st, st(4)
		fstp	st(3)
		jnz	short loc_8C2A0
		fxch	st(2)
		fmul	[ebp+var_14]
		faddp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_18]
		fadd	[ebp+var_1C]
		fcomip	st, st(1)
		fstp	st
		setz	al
		jmp	loc_8C1C4
; ---------------------------------------------------------------------------
		align 10h

loc_8C290:				; CODE XREF: IntersectRayWithRay(Ray_t	const&,Ray_t  const&,float &,float &)+1DDj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8C2A6
; ---------------------------------------------------------------------------
		align 10h

loc_8C2A0:				; CODE XREF: IntersectRayWithRay(Ray_t	const&,Ray_t  const&,float &,float &)+1F1j
		fstp	st
		fstp	st
		fstp	st

loc_8C2A6:				; CODE XREF: IntersectRayWithRay(Ray_t	const&,Ray_t  const&,float &,float &)+21Aj
		add	esp, 30h
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z19IntersectRayWithRayRK5Ray_tS1_RfS2_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IntersectRayWithPlane(Ray_t  const&, cplane_t	 const&)
_Z21IntersectRayWithPlaneRK5Ray_tRK8cplane_t proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [eax+14h]
		fmul	st, st(2)
		fld	dword ptr [eax+10h]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [eax+18h]
		fmul	st, st(2)
		faddp	st(1), st
		fldz
		fcomi	st, st(1)
		jz	short loc_8C300
		fstp	st
		fxch	st(3)
		fmul	dword ptr [eax]
		fxch	st(1)
		fmul	dword ptr [eax+8]
		faddp	st(1), st
		fld	dword ptr [edx+0Ch]
		fsubrp	st(1), st
		fxch	st(1)
		fmul	dword ptr [eax+4]
		fsubp	st(1), st
		fdivrp	st(1), st
		jmp	short loc_8C308
; ---------------------------------------------------------------------------
		align 10h

loc_8C300:				; CODE XREF: IntersectRayWithPlane(Ray_t  const&,cplane_t  const&)+28j
		fstp	st(3)
		fstp	st
		fstp	st
		fstp	st(1)

loc_8C308:				; CODE XREF: IntersectRayWithPlane(Ray_t  const&,cplane_t  const&)+45j
		pop	ebp
		retn
_Z21IntersectRayWithPlaneRK5Ray_tRK8cplane_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IntersectRayWithPlane(Vector	const&,	Vector	const&,	cplane_t  const&)
_Z21IntersectRayWithPlaneRK6VectorS1_RK8cplane_t proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [edx+4]
		fmul	st, st(2)
		fld	dword ptr [edx]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fldz
		fcomi	st, st(1)
		jz	short loc_8C360
		fstp	st
		fxch	st(1)
		fmul	dword ptr [ecx+8]
		fxch	st(3)
		fmul	dword ptr [ecx]
		faddp	st(3), st
		fld	dword ptr [eax+0Ch]
		fsubrp	st(3), st
		fxch	st(1)
		fmul	dword ptr [ecx+4]
		fsubp	st(2), st
		fdivp	st(1), st
		jmp	short loc_8C368
; ---------------------------------------------------------------------------
		align 10h

loc_8C360:				; CODE XREF: IntersectRayWithPlane(Vector  const&,Vector  const&,cplane_t  const&)+2Aj
		fstp	st(3)
		fstp	st
		fstp	st
		fstp	st(1)

loc_8C368:				; CODE XREF: IntersectRayWithPlane(Vector  const&,Vector  const&,cplane_t  const&)+47j
		pop	ebp
		retn
_Z21IntersectRayWithPlaneRK6VectorS1_RK8cplane_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithPlane(int, int, int, float)
_Z21IntersectRayWithPlaneRK6VectorS1_S1_f proc near
					; CODE XREF: COcclusionSystem::ClipPolygonToNearPlane(Vector **,int,Vector **,bool *)+14Cp
					; COcclusionSystem::ClipPolygonToNearPlane(Vector **,int,Vector	**,bool	*)+20Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [eax+4]
		fmul	st, st(2)
		fld	dword ptr [eax]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [eax+8]
		fmul	st, st(2)
		faddp	st(1), st
		fldz
		fcomi	st, st(1)
		jz	short loc_8C3C0
		fstp	st
		fld	dword ptr [ecx+4]
		fmulp	st(3), st
		fxch	st(1)
		fmul	dword ptr [ecx+8]
		faddp	st(2), st
		fxch	st(2)
		fmul	dword ptr [ecx]
		faddp	st(1), st
		fsubr	[ebp+arg_C]
		fdivrp	st(1), st
		jmp	short loc_8C3C8
; ---------------------------------------------------------------------------
		align 10h

loc_8C3C0:				; CODE XREF: IntersectRayWithPlane(Vector  const&,Vector  const&,Vector	 const&,float)+2Aj
		fstp	st(3)
		fstp	st
		fstp	st
		fstp	st(1)

loc_8C3C8:				; CODE XREF: IntersectRayWithPlane(Vector  const&,Vector  const&,Vector	 const&,float)+45j
		pop	ebp
		retn
_Z21IntersectRayWithPlaneRK6VectorS1_S1_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithAAPlane(int, int,	int, float, float)
_Z23IntersectRayWithAAPlaneRK6VectorS1_iff proc	near
					; CODE XREF: COcclusionSystem::ClipPolygonToAxisAlignedPlane(Vector **,int,COcclusionSystem::AxisAlignedPlane_t	 const&,Vector **)+E9p
					; COcclusionSystem::ClipPolygonToAxisAlignedPlane(Vector **,int,COcclusionSystem::AxisAlignedPlane_t  const&,Vector **)+19Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		fld	[ebp+arg_C]
		fld	dword ptr [edx+eax*4]
		mov	edx, [ebp+arg_4]
		fld	dword ptr [edx+eax*4]
		fsub	st, st(1)
		fmul	st, st(2)
		fldz
		fcomi	st, st(1)
		jz	short loc_8C400
		fstp	st
		fxch	st(2)
		fmulp	st(1), st
		fld	[ebp+arg_10]
		fsubrp	st(1), st
		fdivrp	st(1), st
		jmp	short loc_8C406
; ---------------------------------------------------------------------------
		align 10h

loc_8C400:				; CODE XREF: IntersectRayWithAAPlane(Vector  const&,Vector  const&,int,float,float)+1Dj
		fstp	st(2)
		fstp	st
		fstp	st(1)

loc_8C406:				; CODE XREF: IntersectRayWithAAPlane(Vector  const&,Vector  const&,int,float,float)+2Cj
		pop	ebp
		retn
_Z23IntersectRayWithAAPlaneRK6VectorS1_iff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithBox(int, int, int, int, float, int)
_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP14BoxTraceInfo_t proc near
					; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+7Fp
					; IntersectRayWithOBB(Vector  const&,Vector  const&,matrix3x4_t	 const&,Vector	const&,Vector  const&,float,BoxTraceInfo_t *)+61p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_14]
		push	esi
		fld	[ebp+arg_10]
		push	ebx
		mov	edi, [ebp+arg_8]
		fldz
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_C]
		mov	dword ptr [edx], 0BF800000h
		mov	dword ptr [edx+4], 3F800000h
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [edx+8], 0FFFFFFFFh
		mov	byte ptr [edx+0Ch], 1
		jmp	loc_8C4CD
; ---------------------------------------------------------------------------
		align 10h

loc_8C450:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+C0j
		fld	dword ptr [ecx-0Ch]
		fsub	dword ptr [esi+eax*4-0Ch]
		fld	dword ptr [ebx+eax*4-0Ch]
		fadd	st, st(1)
		fxch	st(1)
		fcomi	st, st(2)
		jbe	loc_8C4F0
		fxch	st(1)
		jmp	short loc_8C472
; ---------------------------------------------------------------------------
		align 10h

loc_8C470:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+D4j
		fxch	st(1)

loc_8C472:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+59j
		fcomi	st, st(2)
		mov	byte ptr [edx+0Ch], 0
		ja	loc_8C550
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8C4FC

loc_8C484:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+EAj
		fld	st
		fsub	st, st(4)
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fxch	st(1)
		fsubrp	st(2), st
		fdivrp	st(1), st
		fld	dword ptr [edx]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_8C4B0
		fstp	dword ptr [edx]
		mov	[edx+8], eax
		jmp	short loc_8C4C2
; ---------------------------------------------------------------------------
		align 10h

loc_8C4B0:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+90j
		fstp	st
		jmp	short loc_8C4C2
; ---------------------------------------------------------------------------
		align 8

loc_8C4B8:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+E4j
		fstp	st(2)
		fstp	st
		jmp	short loc_8C4C2
; ---------------------------------------------------------------------------
		align 10h

loc_8C4C0:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+FBj
		fstp	st

loc_8C4C2:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+97j
					; IntersectRayWithBox(Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+A2j ...
		add	eax, 1
		add	ecx, 4
		cmp	eax, 6
		jz	short loc_8C528

loc_8C4CD:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+34j
					; IntersectRayWithBox(Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+109j
		cmp	eax, 2
		jg	loc_8C450
		fld	dword ptr [edi+eax*4]
		fsub	dword ptr [ecx]
		fld	dword ptr [ebx+eax*4]
		fsubr	st, st(1)
		fxch	st(1)
		fcomi	st, st(2)
		ja	short loc_8C470
		fxch	st(2)
		jmp	short loc_8C4F2
; ---------------------------------------------------------------------------
		align 10h

loc_8C4F0:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+51j
		fxch	st(2)

loc_8C4F2:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+D8j
		fcomi	st, st(1)
		jnb	short loc_8C4B8
		fxch	st(2)
		fcomi	st, st(1)
		ja	short loc_8C484

loc_8C4FC:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+72j
		fld	st
		fadd	st, st(4)
		fxch	st(1)
		fsubrp	st(2), st
		fdivrp	st(1), st
		fld	dword ptr [edx+4]
		fcomip	st, st(1)
		jbe	short loc_8C4C0
		add	eax, 1
		add	ecx, 4
		fstp	dword ptr [edx+4]
		cmp	eax, 6
		jnz	short loc_8C4CD
		fstp	st
		fstp	st
		jmp	short loc_8C52C
; ---------------------------------------------------------------------------
		align 8

loc_8C528:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+BBj
		fstp	st
		fstp	st

loc_8C52C:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+10Fj
		cmp	byte ptr [edx+0Ch], 0
		mov	eax, 1
		jnz	short loc_8C54B
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fcomip	st, st(1)
		jbe	short loc_8C560
		fldz
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		setnb	al

loc_8C54B:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+125j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_8C550:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+68j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8C562
; ---------------------------------------------------------------------------
		align 10h

loc_8C560:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+12Ej
		fstp	st

loc_8C562:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,BoxTraceInfo_t *)+148j
		pop	ebx
		xor	eax, eax
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP14BoxTraceInfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithBox(int, int, int, int, float, int, int)
_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP10CBaseTracePf proc near
					; CODE XREF: IntersectRayWithBox(Ray_t	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+45p
					; IntersectRayWithBox(Ray_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+B7p ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 28h
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_14]
		mov	edi, [ebp+arg_4]
		mov	edx, [ebp+arg_C]
		mov	eax, [esi]
		mov	[ebx], eax
		mov	eax, [esi+4]
		mov	[ebx+4], eax
		mov	eax, [esi+8]
		mov	[ebx+8], eax
		lea	eax, [ebp+var_1C]
		fld	dword ptr [esi]
		fst	dword ptr [ebx+0Ch]
		fld	dword ptr [esi+4]
		fst	dword ptr [ebx+10h]
		fld	dword ptr [esi+8]
		fst	dword ptr [ebx+14h]
		fxch	st(2)
		fadd	dword ptr [edi]
		fstp	dword ptr [ebx+0Ch]
		fadd	dword ptr [edi+4]
		fstp	dword ptr [ebx+10h]
		fadd	dword ptr [edi+8]
		mov	byte ptr [ebx+37h], 0
		mov	byte ptr [ebx+36h], 0
		mov	dword ptr [ebx+2Ch], 3F800000h
		mov	dword ptr [ebx+30h], 0
		fstp	dword ptr [ebx+14h]
		mov	[esp+14h], eax	; int
		mov	eax, [ebp+arg_10]
		mov	[esp+10h], eax	; float
		mov	[esp+0Ch], edx	; int
		mov	ecx, [ebp+arg_8]
		mov	[esp+4], edi	; int
		mov	[esp], esi	; int
		mov	[esp+8], ecx	; int
		call	_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP14BoxTraceInfo_t ; IntersectRayWithBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&,float,BoxTraceInfo_t *)
		xor	edx, edx
		test	al, al
		jz	loc_8C692
		movzx	eax, [ebp+var_10]
		fld	[ebp+var_1C]
		fld	[ebp+var_18]
		fcomi	st, st(1)
		mov	[ebx+37h], al
		jbe	loc_8C6A0
		fldz
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jb	loc_8C6A8
		fstp	st
		fst	dword ptr [ebx+2Ch]
		mov	eax, dword ptr ds:vec3_origin
		fld	dword ptr [edi]
		fmul	st, st(1)
		fadd	dword ptr [ebx]
		fstp	dword ptr [ebx+0Ch]
		fld	dword ptr [edi+4]
		fmul	st, st(1)
		fadd	dword ptr [ebx+4]
		fstp	dword ptr [ebx+10h]
		fmul	dword ptr [edi+8]
		mov	[ebx+18h], eax
		mov	eax, dword ptr ds:vec3_origin+4
		mov	dword ptr [ebx+30h], 1
		mov	[ebx+1Ch], eax
		mov	eax, dword ptr ds:vec3_origin+8
		fadd	dword ptr [ebx+8]
		mov	[ebx+20h], eax
		mov	eax, [ebp+var_14]
		fstp	dword ptr [ebx+14h]
		cmp	eax, 2
		jle	loc_8C740
		mov	ecx, [ebp+arg_C]
		sub	eax, 3
		mov	edx, [ecx+eax*4]
		mov	[ebx+24h], edx
		mov	edx, 1
		mov	dword ptr [ebx+eax*4+18h], 3F800000h
		mov	[ebx+28h], al
		jmp	short loc_8C692
; ---------------------------------------------------------------------------
		align 10h

loc_8C690:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+13Ej
		fstp	st

loc_8C692:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+88j
					; IntersectRayWithBox(Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+11Aj
		add	esp, 28h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8C6A0:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+9Dj
		fstp	st(1)
		jmp	short loc_8C6AA
; ---------------------------------------------------------------------------
		align 8

loc_8C6A8:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+ABj
		fstp	st(1)

loc_8C6AA:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+132j
		xor	edx, edx
		test	al, al
		jz	short loc_8C690
		fldz
		mov	eax, 1
		fcomip	st, st(1)
		jnb	short loc_8C6C6
		fld1
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		setnb	al

loc_8C6C6:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+149j
		mov	[ebx+36h], al
		mov	eax, [ebp+arg_18]
		mov	dword ptr [ebx+2Ch], 0
		test	eax, eax
		jz	short loc_8C6DC
		mov	ecx, [ebp+arg_18]
		fst	dword ptr [ecx]

loc_8C6DC:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+165j
		mov	edx, [ebx+4]
		mov	dword ptr [ebx+30h], 1
		mov	eax, [ebx]
		mov	dword ptr [ebx+18h], 3F800000h
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 0
		mov	[ebx+10h], edx
		mov	edx, [ebx+8]
		mov	[ebx+0Ch], eax
		mov	[ebx+24h], eax
		mov	byte ptr [ebx+28h], 0
		mov	[ebx+14h], edx
		mov	edx, 1
		fld	dword ptr [edi+4]
		mov	eax, edx
		fmul	st, st(1)
		fadd	dword ptr [esi+4]
		fld	dword ptr [edi+8]
		fmul	st, st(2)
		fadd	dword ptr [esi+8]
		fxch	st(2)
		fmul	dword ptr [edi]
		fadd	dword ptr [esi]
		fstp	dword ptr [ebx]
		fstp	dword ptr [ebx+4]
		fstp	dword ptr [ebx+8]
		add	esp, 28h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8C740:				; CODE XREF: IntersectRayWithBox(Vector	 const&,Vector	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+F8j
		mov	edx, [ebp+arg_8]
		fld	dword ptr [edx+eax*4]
		mov	edx, 1
		fchs
		fstp	dword ptr [ebx+24h]
		mov	dword ptr [ebx+eax*4+18h], 0BF800000h
		mov	[ebx+28h], al
		add	esp, 28h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP10CBaseTracePf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithBox(int, int, int, float,	int, int)
_Z19IntersectRayWithBoxRK5Ray_tRK6VectorS4_fP10CBaseTracePf proc near
					; CODE XREF: IntersectRayWithOBB(Ray_t	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+F8p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [ebx+40h], 0
		mov	esi, [ebp+arg_10]
		mov	edi, [ebp+arg_14]
		jz	short loc_8C7D0
		mov	[esp+8], eax	; int
		lea	eax, [ebx+10h]
		mov	[esp+18h], edi	; int
		mov	[esp+14h], esi	; int
		mov	[esp], ebx	; int
		mov	[esp+10h], ecx	; float
		mov	[esp+0Ch], edx	; int
		mov	[esp+4], eax	; int
		call	_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP10CBaseTracePf ; IntersectRayWithBox(Vector	const&,Vector  const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8C7D0:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)+25j
		fld	dword ptr [ebx+30h]
		fld	dword ptr [eax]
		fsub	st, st(1)
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+34h]
		fld	dword ptr [eax+4]
		fsub	st, st(1)
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+38h]
		fld	dword ptr [eax+8]
		lea	eax, [ebp+var_18]
		fsub	st, st(1)
		fstp	[ebp+var_1C]
		fxch	st(2)
		fadd	dword ptr [edx]
		fstp	[ebp+var_18]
		fadd	dword ptr [edx+4]
		fstp	[ebp+var_14]
		fadd	dword ptr [edx+8]
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+8], eax	; int
		lea	eax, [ebx+10h]
		mov	[esp+18h], edi	; int
		mov	[esp+14h], esi	; int
		mov	[esp], ebx	; int
		fstp	[ebp+var_10]
		mov	[esp+10h], ecx	; float
		mov	[esp+4], eax	; int
		call	_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP10CBaseTracePf ; IntersectRayWithBox(Vector	const&,Vector  const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)
		fld	dword ptr [esi]
		fadd	dword ptr [ebx+20h]
		fstp	dword ptr [esi]
		fld	dword ptr [esi+4]
		fadd	dword ptr [ebx+24h]
		fstp	dword ptr [esi+4]
		fld	dword ptr [esi+8]
		fadd	dword ptr [ebx+28h]
		fstp	dword ptr [esi+8]
		fld	dword ptr [esi+0Ch]
		fadd	dword ptr [ebx+20h]
		fstp	dword ptr [esi+0Ch]
		fld	dword ptr [esi+10h]
		fadd	dword ptr [ebx+24h]
		fstp	dword ptr [esi+10h]
		fld	dword ptr [esi+14h]
		fadd	dword ptr [ebx+28h]
		fstp	dword ptr [esi+14h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z19IntersectRayWithBoxRK5Ray_tRK6VectorS4_fP10CBaseTracePf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithOBB(int, int, int, int, int, float, int)
_Z19IntersectRayWithOBBRK6VectorS1_RK11matrix3x4_tS1_S1_fP14BoxTraceInfo_t proc	near

var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+var_30]
		mov	[ebp+var_8], esi
		lea	esi, [ebp+var_24]
		mov	[esp+8], ebx
		mov	[esp], eax
		mov	[esp+4], edi
		call	_Z16VectorITransformPKfRK11matrix3x4_tPf ; VectorITransform(float  const*,matrix3x4_t  const&,float *)
		mov	eax, [ebp+arg_4]
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	[esp], eax
		call	_Z13VectorIRotatePKfRK11matrix3x4_tPf ;	VectorIRotate(float  const*,matrix3x4_t	 const&,float *)
		mov	eax, [ebp+arg_18]
		mov	[esp+4], esi	; int
		mov	[esp], ebx	; int
		mov	[esp+14h], eax	; int
		mov	eax, [ebp+arg_14]
		mov	[esp+10h], eax	; float
		mov	eax, [ebp+arg_10]
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_C]
		mov	[esp+8], eax	; int
		call	_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP14BoxTraceInfo_t ; IntersectRayWithBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&,float,BoxTraceInfo_t *)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z19IntersectRayWithOBBRK6VectorS1_RK11matrix3x4_tS1_S1_fP14BoxTraceInfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithOBB(int, int, int, int, int, float, int)
_Z19IntersectRayWithOBBRK6VectorS1_RK11matrix3x4_tS1_S1_fP10CBaseTrace proc near
					; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+75p
					; IntersectRayWithOBB(Ray_t  const&,matrix3x4_t	 const&,Vector	const&,Vector  const&,float,CBaseTrace *)+88Ap

var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_69		= byte ptr -69h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ACh
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_18]
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_10]
		mov	edx, [edi]
		mov	esi, [ebp+arg_8]
		mov	[ebx], edx
		mov	edx, [edi+4]
		mov	[ebx+4], edx
		mov	edx, [edi+8]
		mov	[ebx+8], edx
		mov	edx, [ebp+arg_C]
		fld	dword ptr [edi]
		fst	dword ptr [ebx+0Ch]
		fld	dword ptr [edi+4]
		fst	dword ptr [ebx+10h]
		fld	dword ptr [edi+8]
		fst	dword ptr [ebx+14h]
		fxch	st(2)
		fadd	dword ptr [eax]
		fstp	dword ptr [ebx+0Ch]
		fadd	dword ptr [eax+4]
		fstp	dword ptr [ebx+10h]
		fadd	dword ptr [eax+8]
		mov	byte ptr [ebx+37h], 0
		mov	byte ptr [ebx+36h], 0
		mov	dword ptr [ebx+2Ch], 3F800000h
		mov	dword ptr [ebx+30h], 0
		fstp	dword ptr [ebx+14h]
		fld	dword ptr [ecx+4]
		fadd	dword ptr [edx+4]
		fld	dword ptr [ecx+8]
		fadd	dword ptr [edx+8]
		fld	dword ptr [ecx]
		fadd	dword ptr [edx]
		lea	edx, [ebp+var_54]
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fxch	st(1)
		fstp	[ebp+var_60]
		fmul	st(2), st
		fxch	st(2)
		mov	[esp+8], edx
		mov	[ebp+var_90], eax
		lea	edx, [ebp+var_60]
		mov	[ebp+var_8C], ecx
		mov	[esp], edx
		mov	[esp+4], esi
		fstp	[ebp+var_5C]
		fmulp	st(1), st
		fstp	[ebp+var_58]
		call	_Z15VectorTransformPKfRK11matrix3x4_tPf	; VectorTransform(float	 const*,matrix3x4_t  const&,float *)
		mov	ecx, [ebp+var_8C]
		lea	edx, [esi+10h]
		mov	eax, [ebp+var_90]
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		fld	dword ptr [ecx]
		fsub	[ebp+var_60]
		fstp	[ebp+var_74]
		fld	dword ptr [ecx+4]
		fsub	[ebp+var_5C]
		fstp	[ebp+var_80]
		fld	dword ptr [ecx+8]
		fsub	[ebp+var_58]
		fstp	[ebp+var_78]
		fld	[ebp+var_74]
		fstp	[ebp+var_60]
		fld	[ebp+var_80]
		fstp	[ebp+var_5C]
		fld	[ebp+var_78]
		fstp	[ebp+var_58]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fst	[ebp+var_70]
		fld	dword ptr [eax+8]
		lea	eax, [esi+20h]
		fld	dword ptr [edi]
		mov	[ebp+var_84], eax
		xor	eax, eax
		fadd	st, st(3)
		fsub	[ebp+var_54]
		fld	dword ptr [edi+4]
		faddp	st(3), st
		fxch	st(2)
		fsub	[ebp+var_50]
		fld	dword ptr [edi+8]
		fadd	st, st(2)
		fsub	[ebp+var_4C]
		fld	[ebp+var_74]
		fstp	[ebp+var_7C]
		mov	[ebp+var_88], edi
		mov	edi, [ebp+var_84]

loc_8CA34:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+198j
		fld	dword ptr [edx+eax]
		fld	[ebp+var_70]
		fmul	st, st(1)
		fld	dword ptr [esi+eax]
		fmul	st, st(7)
		faddp	st(1), st
		fld	dword ptr [edi+eax]
		fmul	st, st(5)
		faddp	st(1), st
		fst	[ebp+eax+var_48]
		fabs
		fst	[ebp+eax+var_3C]
		fxch	st(1)
		fmul	st, st(3)
		fld	dword ptr [esi+eax]
		fmul	st, st(6)
		faddp	st(1), st
		fld	dword ptr [edi+eax]
		fmul	st, st(3)
		faddp	st(1), st
		fxch	st(1)
		fadd	[ebp+var_7C]
		fxch	st(1)
		fabs
		fcomip	st, st(1)
		fstp	st
		ja	loc_8CC70
		add	eax, 4
		cmp	eax, 0Ch
		jz	short loc_8CA90
		fld	[ebp+eax+var_60]
		fstp	[ebp+var_7C]
		jmp	short loc_8CA34
; ---------------------------------------------------------------------------
		align 10h

loc_8CA90:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+18Fj
		fld	[ebp+var_70]
		mov	[ebp+var_69], 0
		fmul	st, st(1)
		mov	edi, [ebp+var_88]
		fld	st(2)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(3)
		fmul	st, st(4)
		fxch	st(1)
		fmul	st, st(5)
		fsubp	st(1), st
		fxch	st(1)
		fmulp	st(4), st
		fxch	st(2)
		fmul	[ebp+var_70]
		fsubp	st(3), st
		fld	dword ptr [esi+10h]
		fmul	st, st(2)
		fld	dword ptr [esi]
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [esi+20h]
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_34]
		fld	[ebp+var_38]
		fld	[ebp+var_78]
		fmul	st, st(1)
		fld	[ebp+var_80]
		fmul	st, st(3)
		faddp	st(1), st
		fxch	st(3)
		fabs
		fcomip	st, st(3)
		fstp	st(2)
		ja	short loc_8CB40
		fld	dword ptr [esi+14h]
		fmul	st, st(4)
		fld	dword ptr [esi+4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [esi+24h]
		fmul	st, st(6)
		faddp	st(1), st
		fld	[ebp+var_3C]
		fld	[ebp+var_78]
		fmul	st, st(1)
		fxch	st(3)
		fmul	[ebp+var_74]
		faddp	st(3), st
		fxch	st(1)
		fabs
		fcomip	st, st(2)
		fstp	st(1)
		ja	short loc_8CB50
		fxch	st(3)
		fmul	dword ptr [esi+18h]
		fxch	st(2)
		fmul	dword ptr [esi+8]
		faddp	st(2), st
		fxch	st(3)
		fmul	dword ptr [esi+28h]
		faddp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_80]
		fxch	st(2)
		fmul	[ebp+var_74]
		faddp	st(2), st
		fabs
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8CB5A
		jmp	short loc_8CB70
; ---------------------------------------------------------------------------
		align 10h

loc_8CB40:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+1F6j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8CB5A
; ---------------------------------------------------------------------------
		align 10h

loc_8CB50:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+222j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_8CB5A:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+249j
					; IntersectRayWithOBB(Vector  const&,Vector  const&,matrix3x4_t	 const&,Vector	const&,Vector  const&,float,CBaseTrace *)+25Aj	...
		movzx	eax, [ebp+var_69]
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8CB70:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+24Bj
		lea	eax, [ebp+var_30]
		mov	[ebp+var_90], edx
		mov	[esp+8], eax
		mov	[ebp+var_8C], ecx
		mov	[esp+4], esi
		mov	[esp], edi
		call	_Z16VectorITransformPKfRK11matrix3x4_tPf ; VectorITransform(float  const*,matrix3x4_t  const&,float *)
		mov	eax, [ebp+arg_14]
		mov	dword ptr [esp+18h], 0 ; int
		fld	[ebp+var_48]
		mov	[esp+14h], ebx	; int
		fadd	st, st
		mov	ecx, [ebp+var_8C]
		mov	[esp+10h], eax	; float
		mov	eax, [ebp+arg_C]
		fstp	[ebp+var_48]
		fld	[ebp+var_44]
		mov	[esp+0Ch], ecx	; int
		fadd	st, st
		mov	[esp+8], eax	; int
		lea	eax, [ebp+var_48]
		mov	[esp+4], eax	; int
		lea	eax, [ebp+var_30]
		fstp	[ebp+var_44]
		fld	[ebp+var_40]
		mov	[esp], eax	; int
		fadd	st, st
		fstp	[ebp+var_40]
		call	_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP10CBaseTracePf ; IntersectRayWithBox(Vector	const&,Vector  const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)
		test	al, al
		jz	loc_8CB5A
		lea	eax, [ebp+var_24]
		mov	[esp+4], esi
		mov	[esp+8], eax
		lea	eax, [ebx+0Ch]
		mov	[esp], eax
		call	_Z15VectorTransformPKfRK11matrix3x4_tPf	; VectorTransform(float	 const*,matrix3x4_t  const&,float *)
		mov	[ebp+var_69], 1
		fld	[ebp+var_24]
		fst	dword ptr [ebx+0Ch]
		fld	[ebp+var_20]
		fst	dword ptr [ebx+10h]
		fld	[ebp+var_1C]
		fst	dword ptr [ebx+14h]
		mov	eax, [edi]
		fld	dword ptr [ebx+2Ch]
		fadd	st, st
		mov	[ebx], eax
		mov	eax, [edi+4]
		mov	[ebx+4], eax
		mov	eax, [edi+8]
		fstp	dword ptr [ebx+2Ch]
		mov	[ebx+8], eax
		movzx	eax, byte ptr [ebx+28h]
		fld	dword ptr [ebx+eax*4+18h]
		fld	dword ptr [esi+eax*4]
		fmul	st, st(1)
		fst	dword ptr [ebx+18h]
		mov	edx, [ebp+var_90]
		fld	dword ptr [edx+eax*4]
		fmul	st, st(2)
		mov	edx, [ebp+var_84]
		fst	dword ptr [ebx+1Ch]
		fxch	st(2)
		fmul	dword ptr [edx+eax*4]
		mov	byte ptr [ebx+28h], 3
		fst	dword ptr [ebx+20h]
		fxch	st(4)
		fmulp	st(2), st
		fmulp	st(4), st
		faddp	st(3), st
		fmulp	st(1), st
		faddp	st(1), st
		fstp	dword ptr [ebx+24h]
		jmp	loc_8CB5A
; ---------------------------------------------------------------------------
		align 10h

loc_8CC70:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+183j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	[ebp+var_69], 0
		movzx	eax, [ebp+var_69]
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19IntersectRayWithOBBRK6VectorS1_RK11matrix3x4_tS1_S1_fP10CBaseTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithOBB(int, int, int, int, int, int,	float, int)
_Z19IntersectRayWithOBBRK6VectorS1_S1_RK6QAngleS1_S1_fP10CBaseTrace proc near
					; CODE XREF: IntersectRayWithOBB(Ray_t	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+138p

var_60		= dword	ptr -60h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	esi, [ebp+arg_10]
		mov	edi, [ebp+arg_14]
		fld	dword ptr [eax]
		fld	dword ptr ds:vec3_angle
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_8CCCB
		fld	dword ptr [eax+4]
		fld	dword ptr ds:vec3_angle+4
		fcomip	st, st(1)
		fstp	st
		jz	short loc_8CD20

loc_8CCCB:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+2Aj
					; IntersectRayWithOBB(Vector  const&,Vector  const&,Vector  const&,QAngle  const&,Vector  const&,Vector	 const&,float,CBaseTrace *)+9Dj
		lea	ebx, [ebp+var_60]
		mov	[esp+4], edx
		mov	[esp+8], ebx
		mov	[esp], eax
		call	_Z11AngleMatrixRK6QAngleRK6VectorR11matrix3x4_t	; AngleMatrix(QAngle  const&,Vector  const&,matrix3x4_t	&)
		mov	eax, [ebp+arg_1C]
		mov	[esp+10h], edi	; int
		mov	ecx, [ebp+arg_18]
		mov	[esp+0Ch], esi	; int
		mov	[esp+8], ebx	; int
		mov	[esp+18h], eax	; int
		mov	eax, [ebp+arg_4]
		mov	[esp+14h], ecx	; float
		mov	ecx, [ebp+arg_0]
		mov	[esp+4], eax	; int
		mov	[esp], ecx	; int
		call	_Z19IntersectRayWithOBBRK6VectorS1_RK11matrix3x4_tS1_S1_fP10CBaseTrace ; IntersectRayWithOBB(Vector  const&,Vector  const&,matrix3x4_t	const&,Vector  const&,Vector  const&,float,CBaseTrace *)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8CD20:				; CODE XREF: IntersectRayWithOBB(Vector	 const&,Vector	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+39j
		fld	dword ptr [eax+8]
		fld	dword ptr ds:vec3_angle+8
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_8CCCB
		fld	dword ptr [edx]
		fld	dword ptr [esi]
		fadd	st, st(1)
		mov	eax, [ebp+arg_1C]
		mov	ecx, [ebp+arg_18]
		fstp	[ebp+var_30]
		fld	dword ptr [edx+4]
		fld	dword ptr [esi+4]
		fadd	st, st(1)
		fstp	[ebp+var_2C]
		fld	dword ptr [edx+8]
		fld	dword ptr [esi+8]
		fadd	st, st(1)
		fstp	[ebp+var_28]
		fxch	st(2)
		fadd	dword ptr [edi]
		fstp	[ebp+var_24]
		fadd	dword ptr [edi+4]
		fstp	[ebp+var_20]
		fadd	dword ptr [edi+8]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_30]
		mov	[esp+10h], ecx	; float
		mov	ecx, [ebp+arg_0]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+18h], 0 ; int
		fstp	[ebp+var_1C]
		mov	[esp], ecx	; int
		mov	[esp+4], eax	; int
		call	_Z19IntersectRayWithBoxRK6VectorS1_S1_S1_fP10CBaseTracePf ; IntersectRayWithBox(Vector	const&,Vector  const&,Vector  const&,Vector  const&,float,CBaseTrace *,float *)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z19IntersectRayWithOBBRK6VectorS1_S1_RK6QAngleS1_S1_fP10CBaseTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithOBB(int, int, int, int, float, int)
_Z19IntersectRayWithOBBRK5Ray_tRK11matrix3x4_tRK6VectorS7_fP10CBaseTrace proc near
					; CODE XREF: IntersectRayWithOBB(Ray_t	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+7Ep

var_1F8		= dword	ptr -1F8h
var_1F4		= dword	ptr -1F4h
var_1F0		= dword	ptr -1F0h
var_1EC		= dword	ptr -1ECh
var_1E8		= dword	ptr -1E8h
var_1E4		= dword	ptr -1E4h
var_1E0		= dword	ptr -1E0h
var_1DC		= dword	ptr -1DCh
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1CC		= dword	ptr -1CCh
var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= dword	ptr -1BCh
var_1B8		= dword	ptr -1B8h
var_1B4		= dword	ptr -1B4h
var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A4		= byte ptr -1A4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 20Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_14]
		cmp	byte ptr [esi+40h], 0
		jnz	loc_8D610
		fld	dword ptr [esi+20h]
		lea	eax, [ebp+var_64]
		fadd	dword ptr [esi]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		fld	dword ptr [esi+24h]
		fadd	dword ptr [esi+4]
		fld	dword ptr [esi+28h]
		fadd	dword ptr [esi+8]
		fxch	st(2)
		fst	dword ptr [ebx]
		fxch	st(1)
		fst	dword ptr [ebx+4]
		fxch	st(2)
		fst	dword ptr [ebx+8]
		fxch	st(1)
		fst	dword ptr [ebx+0Ch]
		fxch	st(2)
		fst	dword ptr [ebx+10h]
		fxch	st(1)
		fst	dword ptr [ebx+14h]
		fxch	st(2)
		fadd	dword ptr [esi+10h]
		fstp	dword ptr [ebx+0Ch]
		fadd	dword ptr [esi+14h]
		fstp	dword ptr [ebx+10h]
		fadd	dword ptr [esi+18h]
		mov	byte ptr [ebx+37h], 0
		mov	byte ptr [ebx+36h], 0
		mov	dword ptr [ebx+2Ch], 3F800000h
		mov	dword ptr [ebx+30h], 0
		fstp	dword ptr [ebx+14h]
		fld	dword ptr [ecx]
		fld	dword ptr [edi]
		fld	dword ptr [ecx+4]
		fld	dword ptr [edi+4]
		fld	dword ptr [ecx+8]
		fld	dword ptr [edi+8]
		lea	edi, [esi+10h]
		fld	st(4)
		mov	ecx, [ebp+arg_4]
		fadd	st, st(6)
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fxch	st(1)
		fadd	dword ptr [ecx+0Ch]
		fstp	[ebp+var_64]
		fld	st(3)
		fadd	st, st(5)
		fmul	st, st(1)
		fadd	dword ptr [ecx+1Ch]
		fstp	[ebp+var_60]
		fld	st(1)
		fadd	st, st(3)
		fmul	st, st(1)
		fadd	dword ptr [ecx+2Ch]
		fstp	[ebp+var_5C]
		fxch	st(6)
		fsubp	st(5), st
		fxch	st(4)
		fmul	st, st(5)
		fmul	st, st
		fxch	st(3)
		fsubp	st(2), st
		fxch	st(1)
		fmul	st, st(4)
		fmul	st, st
		fxch	st(1)
		fsubp	st(3), st
		fxch	st(2)
		fmulp	st(3), st
		fxch	st(2)
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fld	dword ptr [esi+30h]
		fmul	st, st
		fld	dword ptr [esi+34h]
		fmul	st, st
		fld	dword ptr [esi+38h]
		mov	[esp+8], eax	; int
		fmul	st, st
		fxch	st(1)
		mov	[esp+4], edi	; int
		mov	[esp], esi	; int
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fld	[ebp+arg_10]
		fstp	dword ptr [esp+10h] ; float
		faddp	st(1), st
		fstp	dword ptr [esp+0Ch] ; float
		call	_Z23IsRayIntersectingSphereRK6VectorS1_S1_ff ; IsRayIntersectingSphere(Vector  const&,Vector  const&,Vector  const&,float,float)
		xor	edx, edx
		test	al, al
		jz	loc_8CEE8
		jmp	short loc_8CEF8
; ---------------------------------------------------------------------------
		align 10h

loc_8CEE0:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+8CCj
		fstp	st
		lea	esi, [esi+0]

loc_8CEE8:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+11Fj
					; IntersectRayWithOBB(Ray_t  const&,matrix3x4_t	 const&,Vector	const&,Vector  const&,float,CBaseTrace *)+852j	...
		add	esp, 20Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_8CEF8:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+125j
		mov	ecx, [ebp+arg_4]
		lea	eax, [ebp+var_58]
		mov	[esp], esi
		mov	[esp+8], eax
		mov	[esp+4], ecx
		call	_Z16VectorITransformPKfRK11matrix3x4_tPf ; VectorITransform(float  const*,matrix3x4_t  const&,float *)
		mov	ecx, [ebp+arg_4]
		lea	eax, [ebp+var_4C]
		mov	[esp+8], eax
		mov	[esp], edi
		mov	[esp+4], ecx
		call	_Z13VectorIRotatePKfRK11matrix3x4_tPf ;	VectorIRotate(float  const*,matrix3x4_t	 const&,float *)
		mov	ecx, [ebp+arg_C]
		lea	edx, [ebp+var_F0]
		fld	dword ptr [esi+30h]
		xor	eax, eax
		mov	[ebp+var_1F4], esi
		fstp	[ebp+var_1E8]
		fld	dword ptr [esi+34h]
		mov	[ebp+var_1F8], ebx
		fstp	[ebp+var_1F0]
		fld	dword ptr [esi+38h]
		fstp	[ebp+var_1EC]
		fld	dword ptr [ecx]
		mov	ecx, [ebp+arg_8]
		fstp	[ebp+var_1CC]
		fld	dword ptr [ecx]
		mov	ecx, [ebp+arg_C]
		fstp	[ebp+var_1D0]
		fld	dword ptr [ecx+4]
		mov	ecx, [ebp+arg_8]
		fstp	[ebp+var_1C4]
		fld	dword ptr [ecx+4]
		mov	ecx, [ebp+arg_C]
		fstp	[ebp+var_1C8]
		fld	dword ptr [ecx+8]
		mov	ecx, [ebp+arg_8]
		fstp	[ebp+var_1C0]
		fld	dword ptr [ecx+8]
		lea	ecx, [esi+30h]
		fstp	[ebp+var_1BC]
		mov	[ebp+var_1D4], ecx
		jmp	loc_8CFB2
; ---------------------------------------------------------------------------
		align 10h

loc_8CFB0:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+56Dj
		fstp	st

loc_8CFB2:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+1F2j
		lea	ecx, [eax+eax*2]
		mov	esi, [ebp+arg_4]
		lea	ecx, [ebp+ecx*4+var_1A4]
		mov	edi, [ebp+arg_8]
		fldz
		fst	dword ptr [ecx]
		lea	ebx, ds:0[eax*4]
		fst	dword ptr [ecx+4]
		fst	dword ptr [ecx+8]
		fld	[ebp+var_1F0]
		mov	dword ptr [ecx+eax*4], 3F800000h
		fmul	dword ptr [esi+ebx+10h]
		mov	ecx, [ebp+arg_C]
		fabs
		fld	[ebp+var_1E8]
		fmul	dword ptr [esi+eax*4]
		fabs
		faddp	st(1), st
		fld	[ebp+var_1EC]
		fmul	dword ptr [esi+ebx+20h]
		mov	esi, eax
		shl	esi, 4
		add	esi, [ebp+arg_4]
		fabs
		faddp	st(1), st
		fld	dword ptr [edi+eax*4]
		fsub	st, st(1)
		fstp	dword ptr [edx]
		fadd	dword ptr [ecx+eax*4]
		lea	ecx, [eax+3]
		lea	ebx, [ecx+ecx*2]
		lea	ebx, [ebp+ebx*4+var_1A4]
		fstp	dword ptr [edx+4]
		fld	dword ptr [esi]
		fst	dword ptr [ebx]
		fld	dword ptr [esi+4]
		fst	dword ptr [ebx+4]
		fld	dword ptr [esi+8]
		mov	esi, 1
		fst	dword ptr [ebx+8]
		fxch	st(2)
		lea	ebx, [ebp+ecx*8+var_F0]
		xor	ecx, ecx
		fcomi	st, st(3)
		fld	[ebp+var_1CC]
		setnbe	cl
		fmul	st, st(1)
		sub	esi, ecx
		mov	[ebp+var_1B8], ecx
		mov	[ebp+var_1E0], esi
		fstp	dword ptr [ebx+ecx*4]
		xor	ecx, ecx
		fld	[ebp+var_1D0]
		fmul	st, st(1)
		fstp	dword ptr [ebx+esi*4]
		fxch	st(1)
		fcomi	st, st(3)
		fld	[ebp+var_1C4]
		setnbe	cl
		fmul	st, st(1)
		lea	edi, ds:0[ecx*4]
		mov	esi, edi
		mov	[ebp+var_1D8], edi
		mov	edi, 1
		add	esi, ebx
		fadd	dword ptr [esi]
		fstp	dword ptr [esi]
		mov	esi, 1
		fld	[ebp+var_1C8]
		sub	esi, ecx
		fmul	st, st(1)
		mov	ecx, esi
		shl	ecx, 2
		mov	[ebp+var_1DC], ecx
		add	ecx, ebx
		fadd	dword ptr [ecx]
		fstp	dword ptr [ecx]
		fxch	st(2)
		xor	ecx, ecx
		fcomi	st, st(3)
		fld	[ebp+var_1C0]
		setnbe	cl
		fmul	st, st(1)
		mov	esi, ecx
		sub	edi, esi
		lea	ecx, [ebx+esi*4]
		mov	[ebp+var_1E4], edi
		fadd	dword ptr [ecx]
		fstp	dword ptr [ecx]
		lea	ecx, [ebx+edi*4]
		mov	ebx, [ebp+var_1D4]
		fld	[ebp+var_1BC]
		fmul	st, st(1)
		fadd	dword ptr [ecx]
		fstp	dword ptr [ecx]
		mov	ecx, [ebp+var_1D4]
		fld	dword ptr [ecx+eax*4]
		fld	dword ptr [edx+18h]
		fsub	st, st(1)
		mov	ecx, dword ptr ds:_ZL12s_ExtIndices[eax*8] ; s_ExtIndices
		fstp	dword ptr [edx+18h]
		fadd	dword ptr [edx+1Ch]
		fstp	dword ptr [edx+1Ch]
		fld	dword ptr [ebx+ecx*4]
		mov	ecx, dword ptr ds:(_ZL12s_ExtIndices+4)[eax*8]
		fld	dword ptr [ebx+ecx*4]
		mov	ecx, dword ptr ds:_ZL12s_MatIndices[eax*8] ; s_MatIndices
		fld	st(2)
		mov	ebx, dword ptr ds:(_ZL12s_MatIndices+4)[eax*8]
		fchs
		fxch	st(6)
		shl	ecx, 4
		add	ecx, [ebp+arg_4]
		shl	ebx, 4
		add	ebx, [ebp+arg_4]
		mov	[ebp+var_1B4], ecx
		lea	ecx, [eax+6]
		lea	edi, [ecx+ecx*2]
		mov	[ebp+var_1AC], ebx
		xor	ebx, ebx
		lea	edi, [ebp+edi*4+var_1A4]
		fst	dword ptr [edi]
		fxch	st(6)
		lea	ecx, [ebp+ecx*8+var_F0]
		fst	dword ptr [edi+4]
		fxch	st(5)
		fst	dword ptr [edi+8]
		fxch	st(5)
		fcomi	st, st(6)
		fld	[ebp+var_1C4]
		setnbe	bl
		fmul	st, st(1)
		mov	edi, ebx
		mov	ebx, 1
		sub	ebx, edi
		fstp	dword ptr [ecx+edi*4]
		fmul	[ebp+var_1C8]
		fstp	dword ptr [ecx+ebx*4]
		mov	edi, [ebp+var_1D8]
		fld	[ebp+var_1C0]
		fmul	st, st(5)
		mov	ebx, [ebp+var_1E4]
		add	edi, ecx
		add	ecx, [ebp+var_1DC]
		fadd	dword ptr [edi]
		fstp	dword ptr [edi]
		mov	edi, [ebp+var_1AC]
		fld	[ebp+var_1BC]
		fmul	st, st(5)
		fadd	dword ptr [ecx]
		fstp	dword ptr [ecx]
		mov	ecx, [ebp+var_1B4]
		fld	dword ptr [edi]
		fabs
		fmul	st, st(1)
		fld	dword ptr [ecx]
		lea	ecx, [eax+9]
		fabs
		fmul	st, st(3)
		lea	edi, [ecx+ecx*2]
		lea	edi, [ebp+edi*4+var_1A4]
		lea	ecx, [ebp+ecx*8+var_F0]
		faddp	st(1), st
		fld	dword ptr [edx+30h]
		fsub	st, st(1)
		fstp	dword ptr [edx+30h]
		fadd	dword ptr [edx+34h]
		fstp	dword ptr [edx+34h]
		fld	st(3)
		fchs
		fxch	st(3)
		fst	dword ptr [edi]
		fxch	st(6)
		fst	dword ptr [edi+4]
		fxch	st(3)
		fst	dword ptr [edi+8]
		fld	[ebp+var_1CC]
		fmul	st, st(7)
		fstp	dword ptr [ecx+esi*4]
		fxch	st(6)
		fmul	[ebp+var_1D0]
		fstp	dword ptr [ecx+ebx*4]
		fxch	st(5)
		xor	ebx, ebx
		fcomi	st, st(2)
		fld	[ebp+var_1C0]
		setnbe	bl
		fmul	st, st(1)
		mov	esi, ebx
		mov	ebx, [ebp+var_1B4]
		lea	edi, [ecx+esi*4]
		fadd	dword ptr [edi]
		fstp	dword ptr [edi]
		mov	edi, 1
		fmul	[ebp+var_1BC]
		sub	edi, esi
		lea	ecx, [ecx+edi*4]
		mov	edi, 1
		fadd	dword ptr [ecx]
		fstp	dword ptr [ecx]
		mov	ecx, [ebp+var_1AC]
		fld	dword ptr [ecx+4]
		lea	ecx, [eax+0Ch]
		fabs
		fmul	st, st(5)
		lea	esi, [ecx+ecx*2]
		lea	esi, [ebp+esi*4+var_1A4]
		lea	ecx, [ebp+ecx*8+var_F0]
		fld	dword ptr [ebx+4]
		xor	ebx, ebx
		fabs
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [edx+48h]
		fsub	st, st(1)
		fstp	dword ptr [edx+48h]
		fadd	dword ptr [edx+4Ch]
		fstp	dword ptr [edx+4Ch]
		fxch	st(3)
		fchs
		fst	dword ptr [esi]
		fxch	st(2)
		fst	dword ptr [esi+4]
		fxch	st(1)
		fst	dword ptr [esi+8]
		fxch	st(2)
		fcomi	st, st(2)
		fld	[ebp+var_1CC]
		setnbe	bl
		add	eax, 1
		fmul	st, st(1)
		mov	esi, ebx
		mov	ebx, [ebp+var_1B8]
		sub	edi, esi
		fstp	dword ptr [ecx+esi*4]
		lea	esi, [ecx+ebx*4]
		fmul	[ebp+var_1D0]
		fstp	dword ptr [ecx+edi*4]
		mov	edi, [ebp+var_1AC]
		fld	[ebp+var_1C4]
		fmul	st, st(1)
		fadd	dword ptr [esi]
		fstp	dword ptr [esi]
		mov	esi, [ebp+var_1E0]
		fmul	[ebp+var_1C8]
		lea	ecx, [ecx+esi*4]
		fadd	dword ptr [ecx]
		fstp	dword ptr [ecx]
		mov	ecx, [ebp+var_1B4]
		fld	dword ptr [edi+8]
		fabs
		fmulp	st(3), st
		fld	dword ptr [ecx+8]
		fabs
		fmulp	st(2), st
		fxch	st(2)
		faddp	st(1), st
		fld	dword ptr [edx+60h]
		fsub	st, st(1)
		fstp	dword ptr [edx+60h]
		fadd	dword ptr [edx+64h]
		fstp	dword ptr [edx+64h]
		add	edx, 8
		cmp	eax, 3
		jnz	loc_8CFB0
		fld	[ebp+var_58]
		mov	edi, 0FFFFFFFFh
		mov	ecx, 0FFFFFFFFh
		fst	[ebp+var_1AC]
		mov	ebx, [ebp+var_1F8]
		xor	al, al
		fadd	[ebp+var_4C]
		mov	esi, [ebp+var_1F4]
		mov	byte ptr [ebx+37h], 1
		fstp	[ebp+var_1B8]
		fld	[ebp+var_54]
		fst	[ebp+var_1B0]
		fadd	[ebp+var_48]
		fstp	[ebp+var_1BC]
		fld	[ebp+var_50]
		fst	[ebp+var_1B4]
		fadd	[ebp+var_44]
		fstp	[ebp+var_1C0]
		fld1
		fld1
		fchs
		nop
		lea	esi, [esi+0]

loc_8D380:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+738j
		lea	edx, [eax+eax*2]
		lea	edx, [ebp+edx*4+var_1A4]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		xor	edx, edx
		fld	[ebp+var_1B0]
		fmul	st, st(2)
		fld	[ebp+var_1AC]
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_1B4]
		fmul	st, st(2)
		faddp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_1BC]
		fxch	st(3)
		fmul	[ebp+var_1B8]
		faddp	st(3), st
		fmul	[ebp+var_1C0]
		faddp	st(2), st
		fld	[ebp+eax*8+var_F0]
		fld	st
		fsub	st, st(2)
		fst	[ebp+var_28]
		fxch	st(1)
		fsub	st, st(3)
		fst	[ebp+var_20]
		fld	[ebp+eax*8+var_EC]
		fsub	st(3), st
		fxch	st(3)
		fstp	[ebp+var_24]
		fxch	st(3)
		fsubrp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_1C]
		fld	[ebp+arg_10]
		fxch	st(1)
		fcomi	st, st(5)
		jbe	loc_8D4A8
		fxch	st(2)
		jmp	short loc_8D414
; ---------------------------------------------------------------------------
		align 10h

loc_8D410:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+6E1j
		fxch	st(2)
		fxch	st(1)

loc_8D414:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+655j
		fcomi	st, st(5)
		ja	loc_8D650
		fld	st(2)
		mov	byte ptr [ebx+37h], 0
		fsub	st, st(1)
		fdivr	ds:flt_1EBCFC
		fxch	st(3)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	loc_8D4C8
		jmp	short loc_8D444
; ---------------------------------------------------------------------------
		align 10h

loc_8D440:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+70Ej
		fxch	st(5)
		fxch	st(2)

loc_8D444:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+686j
		fsub	st, st(1)
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fmulp	st(2), st
		fxch	st(1)
		fcomi	st, st(2)
		jbe	short loc_8D468
		fstp	st(2)
		fxch	st(1)
		fxch	st(1)
		mov	edi, edx
		mov	ecx, eax
		jmp	short loc_8D478
; ---------------------------------------------------------------------------
		align 8

loc_8D468:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+6A6j
		fstp	st
		jmp	short loc_8D478
; ---------------------------------------------------------------------------
		align 10h

loc_8D470:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+6FCj
		fstp	st(5)
		fstp	st(1)
		lea	esi, [esi+0]

loc_8D478:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+6B2j
					; IntersectRayWithOBB(Ray_t  const&,matrix3x4_t	 const&,Vector	const&,Vector  const&,float,CBaseTrace *)+6BAj
		cmp	edx, 1
		jz	short loc_8D4E0
		jmp	short loc_8D482
; ---------------------------------------------------------------------------
		align 10h

loc_8D480:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+727j
		fxch	st(2)

loc_8D482:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+6CDj
		fld	[ebp+var_24]
		mov	edx, 1
		fld	[ebp+var_1C]
		fxch	st(1)
		fcomi	st, st(5)
		ja	loc_8D410
		fxch	st(5)
		fxch	st(1)
		fxch	st(2)
		fxch	st(1)
		jmp	short loc_8D4AA
; ---------------------------------------------------------------------------
		align 8

loc_8D4A8:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+64Dj
		fxch	st(5)

loc_8D4AA:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+6EFj
		fcomi	st, st(2)
		jnb	short loc_8D470
		fld	st(5)
		fsub	st, st(3)
		fdivr	ds:flt_1EBCFC
		fxch	st(6)
		fcomi	st, st(3)
		fstp	st(3)
		ja	loc_8D440
		fxch	st(5)
		fxch	st(2)

loc_8D4C8:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+680j
		fadd	st, st(1)
		fmulp	st(2), st
		fxch	st(3)
		fcomi	st, st(1)
		fcmovnbe st, st(1)
		fstp	st(1)
		cmp	edx, 1
		jnz	short loc_8D480
		fstp	st(2)
		jmp	short loc_8D4E2
; ---------------------------------------------------------------------------
		align 10h

loc_8D4E0:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+6CBj
		fstp	st

loc_8D4E2:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+72Bj
		add	eax, 1
		cmp	eax, 0Fh
		jnz	loc_8D380
		fstp	st(2)
		fcomi	st, st(1)
		jbe	loc_8D670
		fldz
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jb	loc_8D674
		fstp	st
		fst	dword ptr [ebx+2Ch]
		lea	edx, [ecx+ecx]
		fld	dword ptr [esi+10h]
		add	ecx, edx
		add	edx, edi
		fmul	st, st(1)
		test	edi, edi
		lea	eax, [ebp+ecx*4+var_1A4]
		fadd	dword ptr [ebx]
		fstp	dword ptr [ebx+0Ch]
		fld	dword ptr [esi+14h]
		fmul	st, st(1)
		fadd	dword ptr [ebx+4]
		fstp	dword ptr [ebx+10h]
		fmul	dword ptr [esi+18h]
		mov	dword ptr [ebx+30h], 1
		fadd	dword ptr [ebx+8]
		fstp	dword ptr [ebx+14h]
		fld	dword ptr [eax]
		fst	[ebp+var_78]
		fld	dword ptr [eax+4]
		fst	[ebp+var_74]
		fld	dword ptr [eax+8]
		fst	[ebp+var_70]
		fld	[ebp+edx*4+var_F0]
		fst	[ebp+var_6C]
		jnz	short loc_8D577
		fxch	st(3)
		fchs
		fstp	[ebp+var_78]
		fxch	st(1)
		fchs
		fstp	[ebp+var_74]
		fchs
		fstp	[ebp+var_70]
		fchs
		fstp	[ebp+var_6C]
		jmp	short loc_8D57F
; ---------------------------------------------------------------------------

loc_8D577:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+7ABj
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_8D57F:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+7C5j
		mov	ecx, [ebp+arg_4]
		lea	esi, [ebp+var_40]
		mov	[ebp+var_68], 3
		mov	[esp+8], esi
		mov	dword ptr [esp+4], 3
		mov	[esp], ecx
		call	_Z15MatrixGetColumnRK11matrix3x4_tiR6Vector ; MatrixGetColumn(matrix3x4_t  const&,int,Vector &)
		mov	edi, [ebp+arg_4]
		lea	eax, [ebp+var_34]
		mov	[esp+8], eax
		mov	[esp], esi
		mov	[esp+4], edi
		call	_Z13VectorIRotatePKfRK11matrix3x4_tPf ;	VectorIRotate(float  const*,matrix3x4_t	 const&,float *)
		lea	eax, [ebx+18h]
		mov	[esp+4], edi
		mov	[esp+8], eax
		lea	eax, [ebp+var_78]
		mov	[esp], eax
		call	_Z13VectorIRotatePKfRK11matrix3x4_tPf ;	VectorIRotate(float  const*,matrix3x4_t	 const&,float *)
		mov	edx, 1
		fld	dword ptr [ebx+18h]
		fld	dword ptr [ebx+1Ch]
		fld	dword ptr [ebx+20h]
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		faddp	st(1), st
		fld	st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fmul	[ebp+var_6C]
		fxch	st(2)
		fmul	[ebp+var_30]
		fxch	st(1)
		fmul	[ebp+var_2C]
		faddp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_34]
		faddp	st(2), st
		fsubrp	st(1), st
		fstp	dword ptr [ebx+24h]
		jmp	loc_8CEE8
; ---------------------------------------------------------------------------
		align 10h

loc_8D610:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+16j
		mov	edi, [ebp+arg_4]
		mov	[esp+18h], ebx	; int
		lea	eax, [esi+10h]
		mov	ebx, [ebp+arg_8]
		mov	[esp], esi	; int
		mov	ecx, [ebp+arg_C]
		mov	[esp+4], eax	; int
		fld	[ebp+arg_10]
		mov	[esp+8], edi	; int
		mov	[esp+0Ch], ebx	; int
		fstp	dword ptr [esp+14h] ; float
		mov	[esp+10h], ecx	; int
		call	_Z19IntersectRayWithOBBRK6VectorS1_RK11matrix3x4_tS1_S1_fP10CBaseTrace ; IntersectRayWithOBB(Vector  const&,Vector  const&,matrix3x4_t	const&,Vector  const&,Vector  const&,float,CBaseTrace *)
		add	esp, 20Ch
		pop	ebx
		mov	edx, eax
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8D650:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+666j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		add	esp, 20Ch
		xor	edx, edx
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8D670:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+742j
		fstp	st(1)
		jmp	short loc_8D676
; ---------------------------------------------------------------------------

loc_8D674:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+750j
		fstp	st(1)

loc_8D676:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+8C2j
		xor	edx, edx
		cmp	byte ptr [ebx+37h], 0
		jz	loc_8CEE0
		fldz
		mov	eax, 1
		fcomip	st, st(1)
		jnb	short loc_8D69A
		fld1
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		setnb	al
		jmp	short loc_8D69C
; ---------------------------------------------------------------------------

loc_8D69A:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+8DBj
		fstp	st

loc_8D69C:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,matrix3x4_t  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+8E8j
		mov	edx, [ebx+4]
		mov	[ebx+36h], al
		mov	eax, [ebx]
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+30h], 1
		mov	dword ptr [ebx+18h], 3F800000h
		mov	[ebx+10h], edx
		mov	edx, [ebx+8]
		mov	[ebx+0Ch], eax
		mov	[ebx+24h], eax
		mov	dword ptr [ebx+1Ch], 0
		mov	[ebx+14h], edx
		mov	edx, 1
		mov	dword ptr [ebx+20h], 0
		mov	byte ptr [ebx+28h], 0
		jmp	loc_8CEE8
_Z19IntersectRayWithOBBRK5Ray_tRK11matrix3x4_tRK6VectorS7_fP10CBaseTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IntersectRayWithOBB(int, int, int, int, int, float, int)
_Z19IntersectRayWithOBBRK5Ray_tRK6VectorRK6QAngleS4_S4_fP10CBaseTrace proc near
					; CODE XREF: CEngineTrace::ClipRayToOBB(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+81p

var_6C		= dword	ptr -6Ch
var_60		= byte ptr -60h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_C]
		fld	dword ptr [eax]
		fld	dword ptr ds:vec3_angle
		fcomip	st, st(1)
		fstp	st
		mov	edi, [ebp+arg_10]
		jnz	short loc_8D72E
		fld	dword ptr [eax+4]
		fld	dword ptr ds:vec3_angle+4
		fcomip	st, st(1)
		fstp	st
		jz	short loc_8D780

loc_8D72E:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+2Dj
					; IntersectRayWithOBB(Ray_t  const&,Vector  const&,QAngle  const&,Vector  const&,Vector	 const&,float,CBaseTrace *)+9Dj
		cmp	byte ptr [ebx+40h], 0
		jnz	loc_8D800
		lea	ecx, [ebp+var_60]
		mov	[esp+4], edx
		mov	[esp+8], ecx
		mov	[esp], eax
		mov	[ebp+var_6C], ecx
		call	_Z11AngleMatrixRK6QAngleRK6VectorR11matrix3x4_t	; AngleMatrix(QAngle  const&,Vector  const&,matrix3x4_t	&)
		mov	eax, [ebp+arg_18]
		mov	[esp+0Ch], edi	; int
		mov	ecx, [ebp+var_6C]
		mov	[esp+8], esi	; int
		mov	[esp], ebx	; int
		mov	[esp+14h], eax	; int
		mov	eax, [ebp+arg_14]
		mov	[esp+4], ecx	; int
		mov	[esp+10h], eax	; float
		call	_Z19IntersectRayWithOBBRK5Ray_tRK11matrix3x4_tRK6VectorS7_fP10CBaseTrace ; IntersectRayWithOBB(Ray_t  const&,matrix3x4_t  const&,Vector	 const&,Vector	const&,float,CBaseTrace	*)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_8D780:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+3Cj
		fld	dword ptr [eax+8]
		fld	dword ptr ds:vec3_angle+8
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_8D72E
		fld	dword ptr [edx]
		fld	dword ptr [esi]
		fadd	st, st(1)
		mov	eax, [ebp+arg_18]
		mov	ecx, [ebp+arg_14]
		fstp	[ebp+var_30]
		fld	dword ptr [edx+4]
		fld	dword ptr [esi+4]
		fadd	st, st(1)
		fstp	[ebp+var_2C]
		fld	dword ptr [edx+8]
		fld	dword ptr [esi+8]
		fadd	st, st(1)
		fstp	[ebp+var_28]
		fxch	st(2)
		fadd	dword ptr [edi]
		fstp	[ebp+var_24]
		fadd	dword ptr [edi+4]
		fstp	[ebp+var_20]
		fadd	dword ptr [edi+8]
		mov	[esp+10h], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+8], eax	; int
		lea	eax, [ebp+var_30]
		mov	[esp], ebx	; int
		mov	dword ptr [esp+14h], 0 ; int
		mov	[esp+0Ch], ecx	; float
		fstp	[ebp+var_1C]
		mov	[esp+4], eax	; int
		call	_Z19IntersectRayWithBoxRK5Ray_tRK6VectorS4_fP10CBaseTracePf ; IntersectRayWithBox(Ray_t	 const&,Vector	const&,Vector  const&,float,CBaseTrace *,float *)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8D800:				; CODE XREF: IntersectRayWithOBB(Ray_t	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)+42j
		mov	ecx, [ebp+arg_18]
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebx+10h]
		mov	[esp+14h], edi	; int
		mov	[esp+10h], esi	; int
		mov	[esp], ebx	; int
		mov	[esp+1Ch], ecx	; int
		mov	ecx, [ebp+arg_14]
		mov	[esp+8], edx	; int
		mov	[esp+4], eax	; int
		mov	[esp+18h], ecx	; float
		call	_Z19IntersectRayWithOBBRK6VectorS1_S1_RK6QAngleS1_S1_fP10CBaseTrace ; IntersectRayWithOBB(Vector  const&,Vector	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&,float,CBaseTrace *)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z19IntersectRayWithOBBRK5Ray_tRK6VectorRK6QAngleS4_S4_fP10CBaseTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNonMajorAxes(Vector  const&, Vector2D &)
_Z15GetNonMajorAxesRK6VectorR8Vector2D proc near
					; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+4B6p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	dword ptr [edx], 0
		mov	dword ptr [edx+4], 3F800000h
		fld	dword ptr [eax]
		fabs
		fld	dword ptr [eax+4]
		fabs
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_8D888
		fstp	st(1)
		fld	dword ptr [eax+8]
		fabs
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8D881
		mov	dword ptr [edx], 3F800000h
		mov	dword ptr [edx+4], 40000000h

loc_8D881:				; CODE XREF: GetNonMajorAxes(Vector  const&,Vector2D &)+32j
					; GetNonMajorAxes(Vector  const&,Vector2D &)+55j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8D888:				; CODE XREF: GetNonMajorAxes(Vector  const&,Vector2D &)+23j
		fstp	st
		fld	dword ptr [eax+8]
		fabs
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8D881
		mov	dword ptr [edx+4], 40000000h
		pop	ebp
		retn
_Z15GetNonMajorAxesRK6VectorR8Vector2D endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl QuadWithParallelEdges(int, int, float, int, float, int, int)
_Z21QuadWithParallelEdgesRK6VectorS1_fS1_fS1_R8Vector2D	proc near
					; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+8BFp
					; PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,Vector  const&,Vector2D &)+973p

var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_88		= byte ptr -88h
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_38		= byte ptr -38h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ECh
		mov	[ebp+var_88], 1
		fld	ds:flt_1EBD90
		fld	[ebp+arg_10]
		fmul	st, st(1)
		mov	esi, [ebp+arg_C]
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_14]
		fchs
		mov	edi, [edx+8]
		fld	dword ptr [esi+4]
		fmul	st, st(1)
		mov	ecx, [edx+4]
		mov	edx, [edx]
		mov	[ebp+var_C0], edi
		mov	edi, [ebx+8]
		mov	[ebp+var_C4], ecx
		mov	ecx, [ebx]
		fld	dword ptr [esi+8]
		mov	[ebp+var_C8], edx
		fmul	st, st(2)
		fxch	st(2)
		mov	edx, [ebx+4]
		mov	[ebp+var_B0], edi
		mov	[ebp+var_B8], ecx
		mov	ecx, [eax+4]
		lea	edi, [ebp+var_1C]
		mov	[ebp+var_B4], edx
		mov	edx, [eax+8]
		fmul	dword ptr [esi]
		mov	eax, [eax]
		mov	[ebp+var_74], ecx
		lea	ecx, [ebp+var_78]
		mov	[ebp+var_70], edx
		lea	edx, [ebp+var_20]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_C8]
		fstp	[ebp+var_68]
		fstp	[ebp+var_64]
		fstp	[ebp+var_60]
		mov	[esp+0Ch], edx
		mov	[esp+4], ecx
		mov	[ebp+var_DC], edx
		mov	[ebp+var_E0], ecx
		fstp	[ebp+var_D8]
		mov	[ebp+var_38], 1
		mov	[esp+8], edi
		mov	[esp], eax
		call	_Z19IntersectRayWithRayRK5Ray_tS1_RfS2_	; IntersectRayWithRay(Ray_t  const&,Ray_t  const&,float	&,float	&)
		mov	eax, [ebp+arg_18]
		fld	[ebp+arg_8]
		fdivr	[ebp+var_1C]
		fstp	dword ptr [eax]
		fld	[ebp+var_D8]
		fmul	[ebp+arg_8]
		mov	eax, [esi+8]
		mov	ecx, [ebp+var_E0]
		mov	edx, [ebp+var_DC]
		mov	[ebp+var_B0], eax
		mov	eax, [esi+4]
		fchs
		fld	dword ptr [ebx+4]
		fmul	st, st(1)
		mov	[ebp+var_B4], eax
		mov	eax, [esi]
		fld	dword ptr [ebx+8]
		mov	[ebp+var_B8], eax
		fmul	st, st(2)
		fxch	st(2)
		fmul	dword ptr [ebx]
		mov	[esp+4], ecx
		mov	[esp+0Ch], edx
		lea	ecx, [ebp+var_C8]
		mov	[esp+8], edi
		mov	[esp], ecx
		fstp	[ebp+var_68]
		fstp	[ebp+var_64]
		fstp	[ebp+var_60]
		call	_Z19IntersectRayWithRayRK5Ray_tS1_RfS2_	; IntersectRayWithRay(Ray_t  const&,Ray_t  const&,float	&,float	&)
		mov	ecx, [ebp+arg_18]
		xor	eax, eax
		fld	[ebp+arg_10]
		fdivr	[ebp+var_1C]
		fst	dword ptr [ecx+4]
		fld	dword ptr [ecx]
		fldz
		fcomi	st, st(1)
		ja	loc_8DA00
		fld1
		fxch	st(2)
		fcomip	st, st(2)
		jbe	short loc_8DA28
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8DA18
; ---------------------------------------------------------------------------
		align 10h

loc_8DA00:				; CODE XREF: QuadWithParallelEdges(Vector  const&,Vector  const&,float,Vector  const&,float,Vector  const&,Vector2D &)+142j
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8DA18
; ---------------------------------------------------------------------------
		align 10h

loc_8DA10:				; CODE XREF: QuadWithParallelEdges(Vector  const&,Vector  const&,float,Vector  const&,float,Vector  const&,Vector2D &)+18Aj
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_8DA18:				; CODE XREF: QuadWithParallelEdges(Vector  const&,Vector  const&,float,Vector  const&,float,Vector  const&,Vector2D &)+156j
					; QuadWithParallelEdges(Vector	const&,Vector  const&,float,Vector  const&,float,Vector	 const&,Vector2D &)+166j
		add	esp, 0ECh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8DA28:				; CODE XREF: QuadWithParallelEdges(Vector  const&,Vector  const&,float,Vector  const&,float,Vector  const&,Vector2D &)+14Ej
		fcomip	st, st(2)
		ja	short loc_8DA10
		xor	eax, eax
		fcomip	st, st(1)
		fstp	st
		setnb	al
		add	esp, 0ECh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z21QuadWithParallelEdgesRK6VectorS1_fS1_fS1_R8Vector2D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ResolveQuadratic(double, double, float, int, int,	float, int, int, float,	int, int, int, int, int, float,	int, int, float, int, int, int,	int, int)
_Z16ResolveQuadraticdd6VectorS_S_S_S_S_iRdS0_ proc near
					; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+80Dp

arg_0		= qword	ptr  8
arg_8		= qword	ptr  10h
arg_10		= dword	ptr  18h
arg_1C		= dword	ptr  24h
arg_28		= dword	ptr  30h
arg_40		= dword	ptr  48h
arg_4C		= dword	ptr  54h
arg_58		= dword	ptr  60h
arg_5C		= dword	ptr  64h
arg_60		= dword	ptr  68h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_58]
		fld	[ebp+arg_0]
		fld	[ebp+arg_8]
		mov	ecx, [ebp+arg_5C]
		fld	[ebp+eax*4+arg_10]
		fld	[ebp+eax*4+arg_1C]
		fld	st
		mov	edx, [ebp+arg_60]
		fmul	st, st(4)
		fld1
		fld	st
		fsub	st, st(6)
		fmul	st, st(4)
		faddp	st(2), st
		fxch	st(2)
		fmul	st, st(4)
		fxch	st(2)
		fsub	st, st(4)
		fmulp	st(3), st
		fxch	st(1)
		faddp	st(2), st
		fld	st
		fabs
		fld	ds:dbl_1EBDB8
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	loc_8DBD0
		fld	[ebp+eax*4+arg_4C]
		fsub	[ebp+eax*4+arg_40]
		fld	st(4)
		fmul	[ebp+eax*4+arg_28]
		fsubp	st(1), st
		fdivrp	st(1), st

loc_8DA9E:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+198j
		fld	st(1)
		fabs
		fld	ds:dbl_1EBDB8
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	loc_8DBC0
		fld	[ebp+eax*4+arg_4C]
		fsub	[ebp+eax*4+arg_40]
		fld	st(3)
		fmul	[ebp+eax*4+arg_28]
		fsubp	st(1), st
		fdivrp	st(2), st

loc_8DAC6:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+18Aj
		fldz
		fxch	st(4)
		fcomi	st, st(4)
		jb	short loc_8DAE8
		fld1
		fcomi	st, st(1)
		jnb	loc_8DC80
		fstp	st
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_8DB10
; ---------------------------------------------------------------------------
		align 8

loc_8DAE8:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+8Cj
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_8DB10
; ---------------------------------------------------------------------------
		align 8

loc_8DAF8:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+246j
		fstp	st(1)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		fxch	st(1)
		jmp	short loc_8DB10
; ---------------------------------------------------------------------------
		align 8

loc_8DB08:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+250j
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		fxch	st(1)

loc_8DB10:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+A2j
					; ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+B0j ...
		fldz
		fxch	st(4)
		fcomi	st, st(4)
		jb	short loc_8DB30
		fld1
		fcomi	st, st(1)
		jnb	loc_8DBE0
		fstp	st
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_8DB58
; ---------------------------------------------------------------------------
		align 10h

loc_8DB30:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+D6j
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_8DB58
; ---------------------------------------------------------------------------
		align 10h

loc_8DB40:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+1A6j
		fstp	st(3)
		fxch	st(1)
		fxch	st(2)
		jmp	short loc_8DB58
; ---------------------------------------------------------------------------
		align 10h

loc_8DB50:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+1B0j
		fxch	st(1)
		fxch	st(2)
		lea	esi, [esi+0]

loc_8DB58:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+ECj
					; ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+F8j ...
		fld1
		fxch	st(3)
		fcomi	st, st(3)
		jb	loc_8DC68
		fsubr	st(3), st

loc_8DB66:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+236j
		fld1
		fxch	st(3)
		fcomi	st, st(3)
		jb	loc_8DC50
		fsubr	st(3), st

loc_8DB74:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+21Ej
		fld1
		fxch	st(6)
		fcomi	st, st(6)
		jb	loc_8DC30
		fsubr	st(6), st

loc_8DB82:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+20Aj
		fld1
		fxch	st(4)
		fcomi	st, st(4)
		jb	loc_8DC10
		fsubr	st(4), st

loc_8DB90:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+1E2j
		fxch	st(6)
		fabs
		fxch	st(5)
		fabs
		fxch	st(7)
		fabs
		fxch	st(4)
		fabs
		fcomi	st, st(4)
		fcmovb	st, st(4)
		fstp	st(4)
		fxch	st(6)
		fcomi	st, st(4)
		fcmovb	st, st(4)
		fstp	st(4)
		fxch	st(3)
		fcomip	st, st(2)
		fstp	st(1)
		ja	short loc_8DC00
		fstp	st(2)
		fstp	st(2)

loc_8DBBA:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+25Cj
		fstp	qword ptr [ecx]
		fstp	qword ptr [edx]
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_8DBC0:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+6Ej
		fstp	st(1)
		fld	ds:flt_1EBD94
		fxch	st(1)
		jmp	loc_8DAC6
; ---------------------------------------------------------------------------
		align 10h

loc_8DBD0:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+46j
		fstp	st
		fld	ds:flt_1EBD94
		jmp	loc_8DA9E
; ---------------------------------------------------------------------------
		align 10h

loc_8DBE0:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+DCj
		fxch	st(4)
		fcomi	st, st(5)
		fstp	st(5)
		jb	loc_8DB40
		fxch	st(3)
		fcomip	st, st(4)
		jb	loc_8DB50
		fstp	st
		fstp	st
		fxch	st(1)
		jmp	short loc_8DC06
; ---------------------------------------------------------------------------
		align 10h

loc_8DC00:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+174j
		fstp	st
		fstp	st
		fxch	st(1)

loc_8DC06:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+1BCj
		fstp	qword ptr [ecx]
		fstp	qword ptr [edx]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8DC10:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+148j
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		fld	st
		fxch	st(4)
		fxch	st(3)
		fxch	st(2)
		fxch	st(1)
		jmp	loc_8DB90
; ---------------------------------------------------------------------------
		align 10h

loc_8DC30:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+13Aj
		fstp	st(6)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		fxch	st(4)
		fxch	st(5)
		fld	st
		fxch	st(6)
		fxch	st(5)
		fxch	st(4)
		fxch	st(3)
		fxch	st(2)
		fxch	st(1)
		jmp	loc_8DB82
; ---------------------------------------------------------------------------
		align 10h

loc_8DC50:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+12Cj
		fstp	st(3)
		fxch	st(1)
		fxch	st(2)
		fld	st
		fxch	st(3)
		fxch	st(2)
		fxch	st(1)
		jmp	loc_8DB74
; ---------------------------------------------------------------------------
		align 8

loc_8DC68:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+11Ej
		fstp	st(3)
		fxch	st(1)
		fxch	st(2)
		fld	st
		fxch	st(3)
		fxch	st(2)
		fxch	st(1)
		jmp	loc_8DB66
; ---------------------------------------------------------------------------
		align 10h

loc_8DC80:				; CODE XREF: ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)+92j
		fxch	st(2)
		fcomi	st, st(5)
		fstp	st(5)
		jb	loc_8DAF8
		fxch	st(1)
		fcomip	st, st(4)
		jb	loc_8DB08
		fstp	st(2)
		fstp	st
		fxch	st(1)
		jmp	loc_8DBBA
_Z16ResolveQuadraticdd6VectorS_S_S_S_S_iRdS0_ endp

; ---------------------------------------------------------------------------
		jmp	short _Z24PointInQuadToBarycentricRK6VectorS1_S1_S1_S1_R8Vector2D ; PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector	 const&,Vector2D &)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; PointInQuadToBarycentric(Vector  const&, Vector  const&, Vector  const&, Vector  const&, Vector  const&, Vector2D &)
_Z24PointInQuadToBarycentricRK6VectorS1_S1_S1_S1_R8Vector2D proc near
					; CODE XREF: CCoreDispInfo::BaseFacePlaneToDispUV(Vector  const&,Vector2D &)+61p
					; .text:0008DCA1j ...

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 18Ch
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_C]
		fld	dword ptr [ecx]
		fst	[ebp+var_C0]
		mov	esi, [ebp+arg_10]
		fld	dword ptr [ebx]
		fsubp	st(1), st
		fld	dword ptr [ecx+4]
		fst	[ebp+var_C4]
		fld	dword ptr [ebx+4]
		fsubp	st(1), st
		fld	dword ptr [ecx+8]
		fst	[ebp+var_D8]
		fld	dword ptr [ebx+8]
		fsubp	st(1), st
		fxch	st(2)
		fst	[ebp+var_B4]
		fxch	st(1)
		fst	[ebp+var_B0]
		fxch	st(2)
		fst	[ebp+var_AC]
		fld	dword ptr [edx]
		fld	dword ptr [eax]
		fld	st(1)
		fsub	st, st(1)
		fstp	[ebp+var_D4]
		fld	dword ptr [edx+4]
		fst	[ebp+var_D0]
		fld	dword ptr [eax+4]
		fsub	st(1), st
		fxch	st(1)
		fstp	[ebp+var_DC]
		fld	dword ptr [edx+8]
		fstp	[ebp+var_E4]
		fld	dword ptr [eax+8]
		fld	[ebp+var_E4]
		fsub	st, st(1)
		fstp	[ebp+var_E0]
		fld	[ebp+var_D4]
		fstp	[ebp+var_A8]
		fld	[ebp+var_DC]
		fstp	[ebp+var_A4]
		fld	[ebp+var_E0]
		fstp	[ebp+var_A0]
		fxch	st(2)
		fsub	dword ptr [ebx]
		fxch	st(1)
		fsub	dword ptr [ebx+4]
		fxch	st(2)
		fsub	dword ptr [ebx+8]
		fxch	st(1)
		fst	[ebp+var_9C]
		fxch	st(2)
		fst	[ebp+var_98]
		fxch	st(1)
		fst	[ebp+var_94]
		fxch	st(3)
		fsub	[ebp+var_C0]
		fstp	[ebp+var_CC]
		fld	[ebp+var_D0]
		fsub	[ebp+var_C4]
		fstp	[ebp+var_D0]
		fld	[ebp+var_E4]
		fsub	[ebp+var_D8]
		fstp	[ebp+var_D8]
		fld	[ebp+var_CC]
		fstp	[ebp+var_90]
		fld	[ebp+var_D0]
		fstp	[ebp+var_8C]
		fld	[ebp+var_D8]
		fstp	[ebp+var_88]
		fld	st(4)
		fmul	st, st(5)
		fld	st(6)
		fmul	st, st(7)
		fstp	[ebp+var_C4]
		fld	st(4)
		fmul	st, st(5)
		fxch	st(1)
		fadd	[ebp+var_C4]
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fst	[ebp+var_11C]
		mov	eax, [ebp+var_11C]
		movd	xmm0, eax
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		movaps	xmm3, xmm0
		subss	xmm3, xmm2
		movss	xmm2, ds:dword_1EBD40
		mulss	xmm3, xmm2
		mulss	xmm1, xmm3
		movss	[ebp+var_C0], xmm1
		fld	[ebp+var_C0]
		fmul	st, st(6)
		fst	[ebp+var_E8]
		fstp	[ebp+var_84]
		fld	[ebp+var_C0]
		fmul	st, st(7)
		fst	[ebp+var_EC]
		fstp	[ebp+var_80]
		fld	[ebp+var_C0]
		fmul	st, st(5)
		fst	[ebp+var_F0]
		fstp	[ebp+var_7C]
		fmul	[ebp+var_C0]
		fstp	[ebp+var_118]
		fld	[ebp+var_D4]
		fmul	st, st
		fstp	[ebp+var_C0]
		fld	[ebp+var_DC]
		fmul	st, st
		fld	[ebp+var_E0]
		fmul	st, st
		fxch	st(1)
		fadd	[ebp+var_C0]
		fstp	[ebp+var_C0]
		fld	ds:flt_1EBD04
		fadd	[ebp+var_C0]
		faddp	st(1), st
		fstp	[ebp+var_C0]
		movss	xmm4, [ebp+var_C0]
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm3, xmm1
		mulss	xmm3, xmm1
		mulss	xmm3, xmm4
		movaps	xmm4, xmm0
		subss	xmm4, xmm3
		movaps	xmm3, xmm4
		mulss	xmm3, xmm2
		mulss	xmm1, xmm3
		movss	[ebp+var_11C], xmm1
		fld	[ebp+var_11C]
		fld	[ebp+var_D4]
		fmul	st, st(1)
		fst	[ebp+var_F4]
		fstp	[ebp+var_78]
		fld	[ebp+var_DC]
		fmul	st, st(1)
		fst	[ebp+var_F8]
		fstp	[ebp+var_74]
		fld	[ebp+var_E0]
		fmul	st, st(1)
		fst	[ebp+var_FC]
		fstp	[ebp+var_70]
		fmul	[ebp+var_C0]
		fstp	[ebp+var_C0]
		fld	st(1)
		fmul	st, st(2)
		fstp	[ebp+var_C4]
		fld	st
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(1)
		fadd	[ebp+var_C4]
		fstp	[ebp+var_C4]
		fld	ds:flt_1EBD04
		fadd	[ebp+var_C4]
		faddp	st(1), st
		fstp	[ebp+var_C4]
		movss	xmm4, [ebp+var_C4]
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm3, xmm1
		mulss	xmm3, xmm1
		mulss	xmm3, xmm4
		movaps	xmm4, xmm0
		subss	xmm4, xmm3
		movaps	xmm3, xmm4
		mulss	xmm3, xmm2
		mulss	xmm1, xmm3
		movss	[ebp+var_11C], xmm1
		fld	[ebp+var_11C]
		fld	st
		fmul	st, st(3)
		fst	[ebp+var_100]
		fstp	[ebp+var_6C]
		fld	st
		fmul	st, st(2)
		fst	[ebp+var_104]
		fstp	[ebp+var_68]
		fld	st
		fmul	st, st(4)
		fst	[ebp+var_108]
		fstp	[ebp+var_64]
		fmul	[ebp+var_C4]
		fstp	[ebp+var_C4]
		fld	[ebp+var_CC]
		fmul	st, st
		fstp	[ebp+var_C8]
		fld	[ebp+var_D0]
		fmul	st, st
		fld	[ebp+var_D8]
		fmul	st, st
		fxch	st(1)
		fadd	[ebp+var_C8]
		fstp	[ebp+var_C8]
		fld	ds:flt_1EBD04
		fadd	[ebp+var_C8]
		faddp	st(1), st
		fstp	[ebp+var_C8]
		movss	xmm4, [ebp+var_C8]
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm3, xmm1
		mulss	xmm3, xmm1
		mulss	xmm3, xmm4
		subss	xmm0, xmm3
		mulss	xmm0, xmm2
		mulss	xmm1, xmm0
		movss	[ebp+var_E4], xmm1
		fld	[ebp+var_E4]
		fmul	[ebp+var_CC]
		fst	[ebp+var_10C]
		fstp	[ebp+var_60]
		fld	[ebp+var_E4]
		fmul	[ebp+var_D0]
		fst	[ebp+var_110]
		fstp	[ebp+var_5C]
		fld	[ebp+var_E4]
		fmul	[ebp+var_D8]
		fst	[ebp+var_114]
		fstp	[ebp+var_58]
		fld	[ebp+var_F8]
		fmul	[ebp+var_EC]
		fld	[ebp+var_F4]
		fmul	[ebp+var_E8]
		faddp	st(1), st
		fld	[ebp+var_FC]
		fmul	[ebp+var_F0]
		faddp	st(1), st
		fld	ds:flt_1EBD98
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8E0F1
		fld	[ebp+var_118]
		fsub	[ebp+var_C0]
		fabs
		fld	ds:dbl_1EBD20
		fcomip	st, st(1)
		fstp	st
		ja	loc_8E530

loc_8E0F1:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+421j
		fld	[ebp+var_110]
		fmul	[ebp+var_104]
		fld	[ebp+var_10C]
		fmul	[ebp+var_100]
		faddp	st(1), st
		fld	[ebp+var_114]
		fmul	[ebp+var_108]
		faddp	st(1), st
		fld	ds:flt_1EBD98
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8E338
		mov	byte ptr [ebp+var_D8], 0

loc_8E132:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+739j
		fld	st(2)
		fmul	st, st(6)
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax
		lea	eax, [ebp+var_54]
		mov	[esp], eax
		fld	st(1)
		fmul	st, st(5)
		fsubp	st(1), st
		fstp	[ebp+var_54]
		fxch	st(3)
		fmul	st, st(1)
		fxch	st(2)
		fmul	st, st(4)
		fsubp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_50]
		fxch	st(1)
		fmulp	st(2), st
		fmulp	st(2), st
		fsubrp	st(1), st
		fstp	[ebp+var_4C]
		call	_Z15GetNonMajorAxesRK6VectorR8Vector2D ; GetNonMajorAxes(Vector	 const&,Vector2D &)
		movss	xmm0, [ebp+var_1C]
		cvttss2si ecx, [ebp+var_20]
		cvttss2si edi, xmm0
		fld	[ebp+ecx*4+var_B4]
		lea	edx, ds:0[ecx*4]
		fld	[ebp+edi*4+var_B4]
		lea	eax, ds:0[edi*4]
		fld	st(1)
		fabs
		fld	st(1)
		fabs
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_8E1E7
		fstp	st(1)
		mov	[ebp+var_BC], ecx
		mov	ecx, edi
		fild	[ebp+var_BC]
		movss	[ebp+var_20], xmm0
		fst	[ebp+var_D4]
		cvttss2si edx, [ebp+var_D4]
		fstp	[ebp+var_1C]
		mov	[ebp+var_D4], edx
		mov	edx, eax
		mov	edi, [ebp+var_D4]
		mov	eax, [ebp+var_D4]
		fld	[ebp+edi*4+var_B4]
		shl	eax, 2

loc_8E1E7:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+4F1j
		fldz
		fst	qword ptr [ebp+var_30]
		fstp	qword ptr [ebp+var_28]
		fld	[ebp+edx+var_9C]
		fld	st
		fmul	st, st(2)
		fld	[ebp+eax+var_9C]
		fld	st
		fmul	st, st(5)
		fst	[ebp+var_D4]
		fld	[ebp+eax+var_A8]
		fld	[ebp+edx+var_A8]
		fxch	st(2)
		fsubr	st, st(4)
		fxch	st(5)
		fmul	st, st(1)
		fsubp	st(5), st
		fxch	st(2)
		fmul	st, st(1)
		faddp	st(4), st
		fld	dword ptr [ebx+eax]
		fstp	[ebp+var_DC]
		fld	dword ptr [esi+eax]
		fstp	[ebp+var_E0]
		fld	dword ptr [ebx+edx]
		fstp	[ebp+var_CC]
		fld	dword ptr [esi+edx]
		fstp	[ebp+var_D0]
		fld	ds:dbl_1EBDC0
		fxch	st(4)
		fcomi	st, st(4)
		fstp	st(4)
		jbe	short loc_8E269
		fld	ds:dbl_1EBD20
		fcomip	st, st(4)
		ja	loc_8E580

loc_8E269:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+5A9j
		fld	[ebp+var_D0]
		fmul	st, st(5)
		fld	[ebp+var_DC]
		fmul	st, st(7)
		faddp	st(1), st
		fxch	st(6)
		fmul	[ebp+var_E0]
		fsubp	st(6), st
		fxch	st(4)
		fmul	[ebp+var_CC]
		fsubp	st(5), st
		fld	[ebp+var_CC]
		fmul	st, st(1)
		fld	[ebp+var_E0]
		fmul	st, st(5)
		faddp	st(1), st
		faddp	st(2), st
		fmul	[ebp+var_D0]
		fsubp	st(1), st
		fsub	[ebp+var_D4]
		fxch	st(2)
		fmul	[ebp+var_DC]
		fsubp	st(2), st
		fxch	st(1)
		fadd	st, st(2)
		fld	st
		fmul	st, st(1)
		fxch	st(3)
		fmul	st, st(2)
		fmul	ds:flt_1EBD8C
		fsubp	st(3), st
		fldz
		fcomip	st, st(3)
		jbe	loc_8E3F0
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [ebp+arg_14]
		mov	eax, 2
		mov	dword ptr [edx], 0C7C34F80h
		mov	dword ptr [edx+4], 0C7C34F80h
		jmp	short loc_8E328
; ---------------------------------------------------------------------------
		align 10h

loc_8E300:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+833j
		fstp	st
		fstp	st
		jmp	short loc_8E328
; ---------------------------------------------------------------------------
		align 10h

loc_8E310:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+83Fj
		fstp	st
		fstp	st
		jmp	short loc_8E328
; ---------------------------------------------------------------------------
		align 10h

loc_8E320:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+84Fj
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_8E328:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+644j
					; PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,Vector  const&,Vector2D &)+654j	...
		add	esp, 18Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8E338:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+475j
		fxch	st(4)
		fst	[ebp+var_9C]
		fxch	st(5)
		fst	[ebp+var_98]
		fxch	st(3)
		fst	[ebp+var_94]
		fld	[ebp+var_D4]
		fstp	[ebp+var_90]
		fld	[ebp+var_DC]
		fstp	[ebp+var_8C]
		fld	[ebp+var_E0]
		fstp	[ebp+var_88]
		fxch	st(1)
		fst	[ebp+var_B4]
		fxch	st(4)
		fst	[ebp+var_B0]
		fxch	st(2)
		fst	[ebp+var_AC]
		fld	[ebp+var_CC]
		fstp	[ebp+var_A8]
		fld	[ebp+var_D0]
		fstp	[ebp+var_A4]
		fld	[ebp+var_D8]
		mov	byte ptr [ebp+var_D8], 1
		fstp	[ebp+var_A0]
		fxch	st(4)
		fstp	[ebp+var_11C]
		fld	[ebp+var_11C]
		fxch	st(4)
		fstp	[ebp+var_11C]
		fld	[ebp+var_11C]
		fxch	st(3)
		fstp	[ebp+var_11C]
		fld	[ebp+var_11C]
		fxch	st(1)
		fxch	st(2)
		fxch	st(5)
		fxch	st(1)
		jmp	loc_8E132
; ---------------------------------------------------------------------------
		align 10h

loc_8E3F0:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+623j
		fxch	st(2)
		fsqrt
		fxch	st(1)
		mov	[esp+58h], ecx	; int
		lea	eax, [ebp+var_28]
		mov	[esp+60h], eax	; int
		lea	eax, [ebp+var_30]
		mov	[esp+5Ch], eax	; int
		mov	eax, [esi]
		mov	[esp+4Ch], eax	; float
		mov	eax, [esi+4]
		mov	[esp+50h], eax	; int
		mov	eax, [esi+8]
		mov	[esp+54h], eax	; int
		mov	eax, [ebx]
		mov	[esp+40h], eax	; float
		mov	eax, [ebx+4]
		mov	[esp+44h], eax	; int
		mov	eax, [ebx+8]
		mov	[esp+48h], eax	; int
		mov	eax, [ebp+var_90]
		mov	[esp+34h], eax	; int
		mov	eax, [ebp+var_8C]
		fadd	st, st
		mov	[esp+38h], eax	; int
		mov	eax, [ebp+var_88]
		fld	st(2)
		fsub	st, st(2)
		mov	[esp+3Ch], eax	; int
		mov	eax, [ebp+var_9C]
		fdiv	st, st(1)
		mov	[esp+28h], eax	; float
		mov	eax, [ebp+var_98]
		mov	[esp+2Ch], eax	; int
		mov	eax, [ebp+var_94]
		mov	[esp+30h], eax	; int
		mov	eax, [ebp+var_A8]
		mov	[esp+1Ch], eax	; float
		mov	eax, [ebp+var_A4]
		mov	[esp+20h], eax	; int
		mov	eax, [ebp+var_A0]
		mov	[esp+24h], eax	; int
		mov	eax, [ebp+var_B4]
		mov	[esp+10h], eax	; float
		mov	eax, [ebp+var_B0]
		mov	[esp+14h], eax	; int
		mov	eax, [ebp+var_AC]
		fstp	qword ptr [esp+8] ; double
		fxch	st(2)
		faddp	st(1), st
		mov	[esp+18h], eax	; int
		fdivrp	st(1), st
		fstp	qword ptr [esp]	; double
		call	_Z16ResolveQuadraticdd6VectorS_S_S_S_S_iRdS0_ ;	ResolveQuadratic(double,double,Vector,Vector,Vector,Vector,Vector,Vector,int,double &,double &)
		cmp	byte ptr [ebp+var_D8], 0
		jz	loc_8E518
		mov	eax, [ebp+arg_14]
		fld	qword ptr [ebp+var_28]
		fst	dword ptr [eax]
		fld	qword ptr [ebp+var_30]
		fstp	dword ptr [eax+4]

loc_8E4DD:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+876j
		fldz
		xor	eax, eax
		fcomi	st, st(1)
		ja	loc_8E300
		fld1
		fxch	st(2)
		fcomip	st, st(2)
		ja	loc_8E310
		mov	edx, [ebp+arg_14]
		fld	dword ptr [edx+4]
		fxch	st(1)
		fcomip	st, st(1)
		ja	loc_8E320
		fxch	st(1)
		xor	eax, eax
		fcomip	st, st(1)
		fstp	st
		setnb	al
		jmp	loc_8E328
; ---------------------------------------------------------------------------
		align 4

loc_8E518:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+819j
		mov	eax, [ebp+arg_14]
		fld	qword ptr [ebp+var_30]
		fst	dword ptr [eax]
		fld	qword ptr [ebp+var_28]
		fstp	dword ptr [eax+4]
		jmp	short loc_8E4DD
; ---------------------------------------------------------------------------
		align 10h

loc_8E530:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+43Bj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	eax, [ebp+arg_14]
		mov	[esp+14h], esi	; int
		fld	[ebp+var_C4]
		mov	[esp], ebx	; int
		fstp	dword ptr [esp+10h] ; float
		fld	[ebp+var_118]
		mov	[esp+18h], eax	; int
		lea	eax, [ebp+var_6C]
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_84]
		fstp	dword ptr [esp+8] ; float
		mov	[esp+4], eax	; int
		call	_Z21QuadWithParallelEdgesRK6VectorS1_fS1_fS1_R8Vector2D	; QuadWithParallelEdges(Vector	const&,Vector  const&,float,Vector  const&,float,Vector	 const&,Vector2D &)
		add	esp, 18Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8E580:				; CODE XREF: PointInQuadToBarycentric(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector2D &)+5B3j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fld	[ebp+var_74]
		mov	[esp+14h], esi	; int
		fadd	[ebp+var_80]
		mov	[esp], ebx	; int
		mov	eax, [ebp+arg_14]
		fld	ds:flt_1EBAA4
		mov	[esp+18h], eax	; int
		lea	eax, [ebp+var_3C]
		fmul	st(1), st
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_48]
		mov	[esp+4], eax	; int
		fld	[ebp+var_70]
		fadd	[ebp+var_7C]
		fmul	st, st(1)
		fld	[ebp+var_78]
		fadd	[ebp+var_84]
		fmul	st, st(2)
		fstp	[ebp+var_48]
		fxch	st(2)
		fstp	[ebp+var_44]
		fxch	st(1)
		fstp	[ebp+var_40]
		fld	[ebp+var_5C]
		fadd	[ebp+var_68]
		fmul	st, st(1)
		fld	[ebp+var_58]
		fadd	[ebp+var_64]
		fmul	st, st(2)
		fld	[ebp+var_60]
		fadd	[ebp+var_6C]
		fmul	st, st(3)
		fstp	[ebp+var_3C]
		fxch	st(1)
		fstp	[ebp+var_38]
		fstp	[ebp+var_34]
		fld	[ebp+var_C8]
		fmul	[ebp+var_E4]
		fadd	[ebp+var_C4]
		fmul	st, st(1)
		fstp	dword ptr [esp+10h] ; float
		fld	[ebp+var_C0]
		fadd	[ebp+var_118]
		fmulp	st(1), st
		fstp	dword ptr [esp+8] ; float
		call	_Z21QuadWithParallelEdgesRK6VectorS1_fS1_fS1_R8Vector2D	; QuadWithParallelEdges(Vector	const&,Vector  const&,float,Vector  const&,float,Vector	 const&,Vector2D &)
		jmp	loc_8E328
_Z24PointInQuadToBarycentricRK6VectorS1_S1_S1_S1_R8Vector2D endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; PointInQuadFromBarycentric(Vector  const&, Vector  const&, Vector  const&, Vector  const&, Vector2D  const&, Vector&)
_Z26PointInQuadFromBarycentricRK6VectorS1_S1_S1_RK8Vector2DRS_ proc near
					; CODE XREF: CCoreDispInfo::DispUVToSurf(Vector2D  const&,Vector &,Vector*,float *)+8Dp
					; Overlay_DispUVToWorld(CDispInfo *,CMeshReader	*,Vector2D  const&,Vector &,moverlayfragment_t &)+A3p

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4
		mov	edi, [ebp+arg_10]
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		fld	dword ptr [edi+4]
		fld	dword ptr [esi]
		fld	dword ptr [ebx]
		fsub	st, st(1)
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_14]
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [esi+4]
		fld	dword ptr [ebx+4]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [esi+8]
		fld	dword ptr [ebx+8]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ecx]
		fstp	[ebp+var_10]
		fld	dword ptr [ecx+4]
		fld	dword ptr [edx+4]
		fsub	st, st(1)
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ecx+8]
		fld	dword ptr [edx+8]
		fsub	st, st(1)
		fmul	st, st(6)
		faddp	st(1), st
		fld	dword ptr [edi]
		fld	[ebp+var_10]
		fsubr	dword ptr [edx]
		fmulp	st(7), st
		fxch	st(6)
		fadd	[ebp+var_10]
		fsub	st, st(5)
		fmul	st, st(6)
		faddp	st(5), st
		fxch	st(4)
		fstp	dword ptr [eax]
		fsub	st, st(2)
		fmul	st, st(4)
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [eax+4]
		fsub	st(1), st
		fxch	st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [eax+8]
		add	esp, 4
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z26PointInQuadFromBarycentricRK6VectorS1_S1_S1_RK8Vector2DRS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TexCoordInQuadFromBarycentric(Vector2D  const&, Vector2D  const&, Vector2D  const&, Vector2D	const&,	Vector2D  const&, Vector2D&)
_Z29TexCoordInQuadFromBarycentricRK8Vector2DS1_S1_S1_S1_RS_ proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_C]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		fld	dword ptr [ecx+4]
		fld	dword ptr [edi]
		fld	dword ptr [esi]
		fsub	st, st(1)
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_14]
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [edi+4]
		fld	dword ptr [esi+4]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ebx]
		fld	dword ptr [ebx+4]
		fld	dword ptr [edx+4]
		fsub	st, st(1)
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ecx]
		fld	dword ptr [edx]
		fsub	st, st(3)
		fmulp	st(6), st
		fxch	st(5)
		faddp	st(2), st
		fxch	st(1)
		fsub	st, st(3)
		fmul	st, st(4)
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [eax]
		fsub	st(1), st
		fxch	st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [eax+4]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z29TexCoordInQuadFromBarycentricRK8Vector2DS1_S1_S1_S1_RS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ComputePointFromBarycentric(int, int, int, float,	float, int)
_Z27ComputePointFromBarycentricRK6VectorS1_S1_ffRS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		fld	[ebp+arg_C]
		mov	ebx, [ebp+arg_8]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [ecx+4]
		fsub	st, st(1)
		mov	eax, [ebp+arg_14]
		fld	dword ptr [edx+8]
		fld	dword ptr [ecx+8]
		fsub	st, st(1)
		fld	dword ptr [ebx]
		fsub	st, st(5)
		fxch	st(4)
		fsubr	dword ptr [ebx+4]
		fxch	st(2)
		fsubr	dword ptr [ebx+8]
		fld	dword ptr [ecx]
		fsub	st, st(6)
		fmul	st, st(7)
		faddp	st(6), st
		fxch	st(5)
		fst	dword ptr [eax]
		fxch	st(3)
		fmul	st, st(6)
		fadd	dword ptr [edx+4]
		fst	dword ptr [eax+4]
		fxch	st(1)
		fmulp	st(6), st
		fxch	st(5)
		fadd	dword ptr [edx+8]
		fxch	st(3)
		fmul	[ebp+arg_10]
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [eax]
		fmul	[ebp+arg_10]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [eax+4]
		fmul	[ebp+arg_10]
		faddp	st(1), st
		fstp	dword ptr [eax+8]
		pop	ebx
		pop	ebp
		retn
_Z27ComputePointFromBarycentricRK6VectorS1_S1_ffRS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ComputePointFromBarycentric(int, int, int, float,	float, int)
_Z27ComputePointFromBarycentricRK8Vector2DS1_S1_ffRS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		fld	[ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		fld	[ebp+arg_10]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		mov	ebx, [ebp+arg_8]
		fld	dword ptr [ecx+4]
		fsub	st, st(1)
		mov	eax, [ebp+arg_14]
		fld	dword ptr [ebx]
		fsub	st, st(3)
		fxch	st(2)
		fsubr	dword ptr [ebx+4]
		fld	dword ptr [ecx]
		fsub	st, st(4)
		fmul	st, st(6)
		faddp	st(4), st
		fxch	st(3)
		fst	dword ptr [eax]
		fxch	st(1)
		fmulp	st(5), st
		fxch	st(4)
		fadd	dword ptr [edx+4]
		fxch	st(1)
		fmul	st, st(3)
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [eax]
		fmulp	st(1), st
		faddp	st(1), st
		fstp	dword ptr [eax+4]
		pop	ebx
		pop	ebp
		retn
_Z27ComputePointFromBarycentricRK8Vector2DS1_S1_ffRS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ComputeSeparatingPlane(int, int, int, int, int, int, int,	int, float, int)
_Z22ComputeSeparatingPlaneRK6VectorRK6QAngleS1_S1_S1_S4_S1_S1_fP8cplane_t proc near
					; CODE XREF: IsOBBIntersectingOBB(Vector  const&,QAngle	 const&,Vector	const&,Vector  const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float)+4Bp
					; IsRayIntersectingOBB(Ray_t  const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&)+263p

var_A8		= byte ptr -0A8h
var_78		= byte ptr -78h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_A8]
		push	ebx
		sub	esp, 0ACh
		mov	ebx, [ebp+arg_C]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_4]
		fld	dword ptr [ebx+4]
		fadd	dword ptr [esi+4]
		fld	dword ptr [ebx+8]
		fadd	dword ptr [esi+8]
		fld	dword ptr [ebx]
		fadd	dword ptr [esi]
		mov	[esp+4], edi
		mov	[esp], eax
		fld	ds:flt_1EBD9C
		fmul	st(1), st
		fxch	st(1)
		fstp	[ebp+var_30]
		fmul	st(2), st
		fxch	st(2)
		fstp	[ebp+var_2C]
		fmulp	st(1), st
		fstp	[ebp+var_28]
		call	_Z12AngleIMatrixRK6QAngleR11matrix3x4_t	; AngleIMatrix(QAngle  const&,matrix3x4_t &)
		lea	eax, [ebp+var_24]
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z12VectorRotatePKfRK11matrix3x4_tPf ; VectorRotate(float  const*,matrix3x4_t  const&,float *)
		lea	eax, [ebp+var_30]
		mov	[esp+8], edi
		fld	[ebp+var_30]
		mov	[esp], eax
		fsub	[ebp+var_24]
		mov	dword ptr [esp+4], 3
		fstp	[ebp+var_30]
		fld	[ebp+var_2C]
		fsub	[ebp+var_20]
		fstp	[ebp+var_2C]
		fld	[ebp+var_28]
		fsub	[ebp+var_1C]
		fstp	[ebp+var_28]
		call	_Z15MatrixSetColumnRK6VectoriR11matrix3x4_t ; MatrixSetColumn(Vector  const&,int,matrix3x4_t &)
		lea	eax, [ebp+var_78]
		mov	ecx, [ebp+arg_18]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_1C]
		mov	edx, [ebp+arg_14]
		mov	[esp], eax
		mov	eax, [ebp+arg_10]
		call	_ZL19ComputeCenterMatrixRK6VectorRK6QAngleS1_S1_R11matrix3x4_t_constprop_50
		mov	eax, [ebp+arg_1C]
		lea	ecx, [ebp+var_48]
		fld	dword ptr [ebx+4]
		lea	edx, [ebp+var_78]
		fsub	dword ptr [esi+4]
		fld	dword ptr [ebx+8]
		fsub	dword ptr [esi+8]
		fld	dword ptr [eax]
		mov	eax, [ebp+arg_18]
		fsub	dword ptr [eax]
		mov	eax, [ebp+arg_1C]
		fld	dword ptr [eax+4]
		mov	eax, [ebp+arg_18]
		fsub	dword ptr [eax+4]
		mov	eax, [ebp+arg_1C]
		fld	dword ptr [eax+8]
		mov	eax, [ebp+arg_18]
		fsub	dword ptr [eax+8]
		mov	eax, [ebp+arg_24]
		fld	dword ptr [ebx]
		fsub	dword ptr [esi]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+arg_20]
		fld	ds:flt_1EBAA4
		mov	[esp+4], eax	; float
		lea	eax, [ebp+var_3C]
		fmul	st(1), st
		fxch	st(1)
		mov	[esp], eax	; int
		mov	eax, edi
		fstp	[ebp+var_48]
		fmul	st(5), st
		fxch	st(5)
		fstp	[ebp+var_44]
		fxch	st(3)
		fmul	st, st(4)
		fstp	[ebp+var_40]
		fxch	st(1)
		fmul	st, st(3)
		fstp	[ebp+var_3C]
		fmul	st, st(2)
		fstp	[ebp+var_38]
		fmulp	st(1), st
		fstp	[ebp+var_34]
		call	_ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z22ComputeSeparatingPlaneRK6VectorRK6QAngleS1_S1_S1_S4_S1_S1_fP8cplane_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsOBBIntersectingOBB(int,	int, int, int, int, int, int, int, float)
_Z20IsOBBIntersectingOBBRK6VectorRK6QAngleS1_S1_S1_S4_S1_S1_f proc near

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		lea	eax, [ebp+var_1C]
		mov	[esp+24h], eax	; int
		mov	eax, [ebp+arg_20]
		mov	[esp+20h], eax	; float
		mov	eax, [ebp+arg_1C]
		mov	[esp+1Ch], eax	; int
		mov	eax, [ebp+arg_18]
		mov	[esp+18h], eax	; int
		mov	eax, [ebp+arg_14]
		mov	[esp+14h], eax	; int
		mov	eax, [ebp+arg_10]
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+arg_C]
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_Z22ComputeSeparatingPlaneRK6VectorRK6QAngleS1_S1_S1_S4_S1_S1_fP8cplane_t ; ComputeSeparatingPlane(Vector  const&,QAngle  const&,Vector	 const&,Vector	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,cplane_t *)
		leave
		xor	eax, 1
		retn
_Z20IsOBBIntersectingOBBRK6VectorRK6QAngleS1_S1_S1_S4_S1_S1_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsRayIntersectingOBB(Ray_t  const&, Vector  const&, QAngle  const&, Vector  const&, Vector  const&)
_Z20IsRayIntersectingOBBRK5Ray_tRK6VectorRK6QAngleS4_S4_ proc near

var_19C		= dword	ptr -19Ch
var_198		= dword	ptr -198h
var_18C		= dword	ptr -18Ch
var_188		= dword	ptr -188h
var_184		= dword	ptr -184h
var_180		= dword	ptr -180h
var_17C		= dword	ptr -17Ch
var_178		= dword	ptr -178h
var_174		= dword	ptr -174h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_148		= byte ptr -148h
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_118		= byte ptr -118h
var_117		= byte ptr -117h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_D4		= byte ptr -0D4h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1CCh
		mov	edx, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	edi, [ebp+arg_C]
		fld	dword ptr [edx]
		fld	dword ptr ds:vec3_angle
		fcomip	st, st(1)
		fstp	st
		mov	esi, [ebp+arg_10]
		jnz	short loc_8EA0C
		fld	dword ptr [edx+4]
		fld	dword ptr ds:vec3_angle+4
		fcomip	st, st(1)
		fstp	st
		jz	loc_8EB50

loc_8EA0C:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+27j
					; IsRayIntersectingOBB(Ray_t  const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&)+18Dj
		cmp	byte ptr [ebx+40h], 0
		jnz	loc_8EC50
		cmp	byte ptr [ebx+41h], 0
		jz	loc_8EBE0
		lea	ecx, [ebp+var_A4]
		mov	[esp], esi
		mov	[esp+4], ecx
		mov	ecx, edi
		call	_ZL19ComputeCenterMatrixRK6VectorRK6QAngleS1_S1_R11matrix3x4_t_constprop_50
		lea	eax, [ebp+var_D4]
		fld	ds:flt_1EBAA4
		fld	dword ptr [ebx+14h]
		fmul	st, st(1)
		fadd	dword ptr [ebx+4]
		fld	dword ptr [ebx+18h]
		fmul	st, st(2)
		fadd	dword ptr [ebx+8]
		fld	dword ptr [ebx+10h]
		fmul	st, st(3)
		fadd	dword ptr [ebx]
		mov	[esp], eax
		mov	[ebp+var_18C], eax
		fchs
		fstp	[ebp+var_54]
		fxch	st(1)
		fchs
		fstp	[ebp+var_50]
		fchs
		fstp	[ebp+var_4C]
		fstp	[ebp+var_198]
		call	_Z17SetIdentityMatrixR11matrix3x4_t ; SetIdentityMatrix(matrix3x4_t &)
		mov	eax, [ebp+var_18C]
		lea	edx, [ebp+var_54]
		mov	[esp], edx
		mov	dword ptr [esp+4], 3
		mov	[esp+8], eax
		call	_Z15MatrixSetColumnRK6VectoriR11matrix3x4_t ; MatrixSetColumn(Vector  const&,int,matrix3x4_t &)
		mov	eax, [ebp+var_18C]
		lea	edx, [ebp+var_74]
		fld	dword ptr [ebx+10h]
		lea	ecx, [ebp+var_48]
		fabs
		fld	[ebp+var_198]
		fmul	st(1), st
		fxch	st(1)
		fadd	dword ptr [ebx+30h]
		fstp	[ebp+var_48]
		fld	dword ptr [ebx+14h]
		fabs
		fmul	st, st(1)
		fadd	dword ptr [ebx+34h]
		fstp	[ebp+var_44]
		fld	dword ptr [ebx+18h]
		fabs
		fmul	st, st(1)
		fadd	dword ptr [ebx+38h]
		fstp	[ebp+var_40]
		fld	dword ptr [esi+4]
		fsub	dword ptr [edi+4]
		fld	dword ptr [esi+8]
		fsub	dword ptr [edi+8]
		fld	dword ptr [esi]
		fsub	dword ptr [edi]
		mov	[esp+8], edx	; int
		lea	edx, [ebp+var_3C]
		mov	[esp], edx	; int
		lea	edx, [ebp+var_A4]
		mov	dword ptr [esp+4], 0 ; float
		fmul	st, st(3)
		fstp	[ebp+var_3C]
		fxch	st(1)
		fmul	st, st(2)
		fstp	[ebp+var_38]
		fmulp	st(1), st
		fstp	[ebp+var_34]
		call	_ZL22ComputeSeparatingPlaneRK11matrix3x4_tS1_RK6VectorS4_fP8cplane_t_constprop_49
		mov	edx, eax
		xor	eax, eax
		test	dl, dl
		jnz	loc_8EB40
		jmp	loc_8ED30
; ---------------------------------------------------------------------------
		align 8

loc_8EB28:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+553j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8EB40
; ---------------------------------------------------------------------------
		align 8

loc_8EB38:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+623j
		fstp	st
		fstp	st
		fstp	st
		db	66h
		nop

loc_8EB40:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+148j
					; IsRayIntersectingOBB(Ray_t  const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&)+160j	...
		add	esp, 1CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8EB50:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+36j
		fld	dword ptr [edx+8]
		fld	dword ptr ds:vec3_angle+8
		fcomip	st, st(1)
		fstp	st
		jnz	loc_8EA0C
		fld	dword ptr [eax]
		fld	dword ptr [edi]
		fadd	st, st(1)
		fstp	[ebp+var_104]
		fld	dword ptr [eax+4]
		fld	dword ptr [edi+4]
		fadd	st, st(1)
		fstp	[ebp+var_100]
		fld	dword ptr [eax+8]
		lea	eax, [ebp+var_158]
		fld	dword ptr [edi+8]
		fadd	st, st(1)
		fstp	[ebp+var_FC]
		fxch	st(2)
		fadd	dword ptr [esi]
		fstp	[ebp+var_158]
		fadd	dword ptr [esi+4]
		fstp	[ebp+var_154]
		fadd	dword ptr [esi+8]
		mov	[esp+4], eax	; int
		lea	eax, [ebp+var_104]
		mov	[esp+8], ebx	; int
		mov	dword ptr [esp+0Ch], 0 ; float
		mov	[esp], eax	; int
		fstp	[ebp+var_150]
		call	_Z20IsBoxIntersectingRayRK6VectorS1_RK5Ray_tf ;	IsBoxIntersectingRay(Vector  const&,Vector  const&,Ray_t  const&,float)
		add	esp, 1CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8EBE0:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+4Aj
		fld	dword ptr [ebx+38h]
		lea	ecx, [ebp+var_104]
		fchs
		fld	dword ptr [ebx+34h]
		fchs
		fld	dword ptr [ebx+30h]
		mov	[esp+10h], eax	; int
		lea	eax, [ebx+30h]
		fchs
		mov	[esp+0Ch], eax	; int
		fstp	[ebp+var_60]
		lea	eax, [ebp+var_60]
		fstp	[ebp+var_5C]
		mov	[esp+1Ch], esi	; int
		mov	[esp+18h], edi	; int
		mov	[esp], ebx	; int
		fstp	[ebp+var_58]
		mov	[esp+24h], ecx	; int
		mov	dword ptr [esp+20h], 0 ; float
		mov	[esp+14h], edx	; int
		mov	[esp+8], eax	; int
		mov	dword ptr [esp+4], offset vec3_angle ; int
		call	_Z22ComputeSeparatingPlaneRK6VectorRK6QAngleS1_S1_S1_S4_S1_S1_fP8cplane_t ; ComputeSeparatingPlane(Vector  const&,QAngle  const&,Vector	 const&,Vector	const&,Vector  const&,QAngle  const&,Vector  const&,Vector  const&,float,cplane_t *)
		add	esp, 1CCh
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8EC50:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+40j
		lea	ecx, [ebp+var_104]
		mov	[esp], edx
		mov	[esp+8], ecx
		mov	[esp+4], eax
		mov	[ebp+var_198], ecx
		call	_Z12AngleIMatrixRK6QAngleRK6VectorR11matrix3x4_t ; AngleIMatrix(QAngle	const&,Vector  const&,matrix3x4_t &)
		mov	ecx, [ebp+var_198]
		mov	[esp], ebx
		lea	eax, [ebp+var_158]
		mov	[esp+8], eax
		mov	[ebp+var_18C], eax
		mov	[esp+4], ecx
		call	_Z15VectorTransformPKfRK11matrix3x4_tPf	; VectorTransform(float	 const*,matrix3x4_t  const&,float *)
		mov	ecx, [ebp+var_198]
		lea	edx, [ebp+var_148]
		mov	[esp+8], edx
		lea	edx, [ebx+10h]
		mov	[esp], edx
		mov	[esp+4], ecx
		call	_Z12VectorRotatePKfRK11matrix3x4_tPf ; VectorRotate(float  const*,matrix3x4_t  const&,float *)
		mov	edx, dword ptr ds:vec3_origin+4
		mov	ecx, dword ptr ds:vec3_origin
		mov	eax, [ebp+var_18C]
		mov	[ebp+var_134], edx
		mov	edx, dword ptr ds:vec3_origin+8
		mov	[ebp+var_138], ecx
		mov	[ebp+var_128], ecx
		mov	ecx, dword ptr ds:vec3_origin+4
		mov	[ebp+var_130], edx
		mov	[ebp+var_120], edx
		movzx	edx, byte ptr [ebx+40h]
		mov	[ebp+var_124], ecx
		mov	[ebp+var_118], dl
		movzx	edx, byte ptr [ebx+41h]
		mov	[esp+4], esi	; int
		mov	[esp], edi	; int
		mov	dword ptr [esp+0Ch], 0 ; float
		mov	[ebp+var_117], dl
		mov	[esp+8], eax	; int
		call	_Z20IsBoxIntersectingRayRK6VectorS1_RK5Ray_tf ;	IsBoxIntersectingRay(Vector  const&,Vector  const&,Ray_t  const&,float)
		add	esp, 1CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8ED30:				; CODE XREF: IsRayIntersectingOBB(Ray_t	 const&,Vector	const&,QAngle  const&,Vector  const&,Vector  const&)+14Ej
		mov	edx, [ebx+10h]
		mov	[ebp+var_30], edx
		mov	edx, [ebx+14h]
		fld	[ebp+var_30]
		fld	st
		fmul	st, st(1)
		mov	[ebp+var_2C], edx
		mov	edx, [ebx+18h]
		fld	[ebp+var_2C]
		mov	[ebp+var_28], edx
		fld	st
		fmul	st, st(1)
		fld	[ebp+var_28]
		fld	st
		fmul	st, st(1)
		fxch	st(4)
		faddp	st(2), st
		fxch	st(1)
		fadd	ds:flt_1EBD04
		faddp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_19C]
		mov	edx, [ebp+var_19C]
		movd	xmm0, edx
		lea	edx, [ebp+var_24]
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_19C], xmm1
		fld	[ebp+var_19C]
		fmul	st(3), st
		fxch	st(3)
		fstp	[ebp+var_30]
		fmul	st, st(2)
		fstp	[ebp+var_2C]
		fmulp	st(1), st
		fstp	[ebp+var_28]
		fld	[ebp+var_98]
		fsub	dword ptr [ebx]
		fstp	[ebp+var_16C]
		fld	[ebp+var_88]
		fsub	dword ptr [ebx+4]
		fstp	[ebp+var_168]
		fld	[ebp+var_78]
		fsub	dword ptr [ebx+8]
		mov	[esp+8], edx
		lea	edx, [ebp+var_A4]
		mov	[esp+4], edx
		lea	edx, [ebp+var_30]
		mov	[esp], edx
		mov	byte ptr [ebp+var_18C],	al
		fstp	[ebp+var_170]
		call	_Z13VectorIRotatePKfRK11matrix3x4_tPf ;	VectorIRotate(float  const*,matrix3x4_t	 const&,float *)
		fld	[ebp+var_24]
		fstp	[ebp+var_178]
		fld	[ebp+var_20]
		fabs
		fstp	[ebp+var_174]
		fld	[ebp+var_1C]
		fabs
		fld	[ebp+var_84]
		fld	[ebp+var_94]
		fld	[ebp+var_2C]
		fld	[ebp+var_28]
		fld	st(1)
		fmul	st, st(4)
		fld	st(1)
		fmul	st, st(4)
		fsubp	st(1), st
		fld	[ebp+var_30]
		fld	[ebp+var_A4]
		fmul	st, st(3)
		fxch	st(6)
		fmul	st, st(1)
		fsubp	st(6), st
		fld	st
		fmulp	st(5), st
		fld	[ebp+var_A4]
		fmul	st, st(4)
		fsubp	st(5), st
		fld	[ebp+var_38]
		fstp	[ebp+var_188]
		fld	[ebp+var_34]
		fstp	[ebp+var_164]
		fld	dword ptr [ebx+30h]
		fstp	[ebp+var_17C]
		fld	dword ptr [ebx+34h]
		fstp	[ebp+var_180]
		fld	dword ptr [ebx+38h]
		fstp	[ebp+var_184]
		fld	[ebp+var_168]
		fmul	st, st(6)
		fstp	[ebp+var_160]
		fld	[ebp+var_16C]
		fmul	st, st(2)
		fadd	[ebp+var_160]
		fstp	[ebp+var_160]
		fld	[ebp+var_170]
		fmul	st, st(5)
		fadd	[ebp+var_160]
		fabs
		fstp	[ebp+var_160]
		fld	[ebp+var_174]
		fmul	[ebp+var_164]
		fstp	[ebp+var_15C]
		fld	[ebp+var_188]
		fmul	st, st(7)
		fadd	[ebp+var_15C]
		fxch	st(2)
		fmul	[ebp+var_17C]
		fabs
		faddp	st(2), st
		fxch	st(5)
		fmul	[ebp+var_180]
		fabs
		faddp	st(1), st
		fxch	st(3)
		fmul	[ebp+var_184]
		fabs
		faddp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_15C]
		mov	edx, [ebp+var_15C]
		movzx	eax, byte ptr [ebp+var_18C]
		cmp	[ebp+var_160], edx
		ja	loc_8EB28
		fld	[ebp+var_178]
		fabs
		fstp	[ebp+var_178]
		fld	[ebp+var_80]
		fld	[ebp+var_90]
		fld	st(2)
		fmul	st, st(2)
		fld	st(4)
		fmul	st, st(2)
		fsubp	st(1), st
		fld	[ebp+var_A0]
		fmul	st, st(5)
		fxch	st(3)
		fmul	st, st(6)
		fsubp	st(3), st
		fxch	st(1)
		fmul	st, st(5)
		fld	[ebp+var_A0]
		fmul	st, st(4)
		fsubp	st(1), st
		fld	[ebp+var_3C]
		fstp	[ebp+var_160]
		fld	[ebp+var_168]
		fmul	st, st(3)
		fstp	[ebp+var_15C]
		fld	[ebp+var_16C]
		fmul	st, st(2)
		fadd	[ebp+var_15C]
		fstp	[ebp+var_15C]
		fld	[ebp+var_170]
		fmul	st, st(1)
		fadd	[ebp+var_15C]
		fabs
		fstp	[ebp+var_15C]
		fld	[ebp+var_178]
		fmul	[ebp+var_164]
		fxch	st(7)
		fmul	[ebp+var_160]
		faddp	st(7), st
		fxch	st(1)
		fmul	[ebp+var_17C]
		fabs
		faddp	st(6), st
		fxch	st(1)
		fmul	[ebp+var_180]
		fabs
		faddp	st(5), st
		fmul	[ebp+var_184]
		fabs
		faddp	st(4), st
		fxch	st(3)
		fstp	[ebp+var_164]
		mov	edx, [ebp+var_164]
		cmp	[ebp+var_15C], edx
		ja	loc_8EB38
		fld	[ebp+var_7C]
		fld	[ebp+var_8C]
		fld	[ebp+var_9C]
		fld	st(5)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(3)
		fsubp	st(1), st
		fxch	st(4)
		fmul	st, st(1)
		fld	st(5)
		fmulp	st(4), st
		fsubrp	st(3), st
		fxch	st(4)
		fmulp	st(1), st
		fxch	st(4)
		fmulp	st(3), st
		fxch	st(3)
		fsubrp	st(2), st
		fld	[ebp+var_168]
		fmul	st, st(3)
		fstp	[ebp+var_168]
		fld	[ebp+var_16C]
		fmul	st, st(1)
		fadd	[ebp+var_168]
		fstp	[ebp+var_168]
		fld	[ebp+var_170]
		fmul	st, st(2)
		fadd	[ebp+var_168]
		fabs
		fstp	[ebp+var_168]
		fld	[ebp+var_178]
		fmul	[ebp+var_188]
		fld	[ebp+var_174]
		fmul	[ebp+var_160]
		faddp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_17C]
		fabs
		faddp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_180]
		fabs
		faddp	st(2), st
		fmul	[ebp+var_184]
		fabs
		faddp	st(1), st
		fstp	[ebp+var_178]
		mov	eax, [ebp+var_178]
		cmp	[ebp+var_168], eax
		setbe	al
		jmp	loc_8EB40
_Z20IsRayIntersectingOBBRK5Ray_tRK6VectorRK6QAngleS4_S4_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsBoxIntersectingTriangle(int, int, int, int, int, int, float)
_Z25IsBoxIntersectingTriangleRK6VectorS1_S1_S1_S1_RK8cplane_tf proc near
					; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+385p
					; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)+459p

var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_C]
		mov	ecx, [ebp+arg_10]
		fld	dword ptr [edi]
		fld	dword ptr [esi]
		fsub	st, st(1)
		mov	edx, [ebp+arg_4]
		fld	dword ptr [ebx]
		fsub	st, st(2)
		fld	dword ptr [ecx]
		fsub	st, st(3)
		fxch	st(2)
		fcomi	st, st(1)
		fld	st
		fcmovnb	st, st(2)
		fld	dword ptr [edx]
		fstp	[ebp+var_3C]
		fld	[ebp+arg_18]
		fadd	[ebp+var_3C]
		fxch	st(4)
		fcomi	st, st(1)
		fxch	st(1)
		fcmovb	st, st(1)
		xor	eax, eax
		fcomip	st, st(4)
		ja	loc_8F678
		fxch	st(2)
		fcomi	st, st(1)
		fld	st(1)
		fcmovnb	st, st(1)
		fxch	st(4)
		fchs
		fxch	st(4)
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fxch	st(4)
		fcomip	st, st(4)
		fstp	st(3)
		ja	loc_8F690
		fld	dword ptr [edi+4]
		fst	[ebp+var_44]
		fld	st
		fsubr	dword ptr [esi+4]
		fld	st(1)
		fsubr	dword ptr [ebx+4]
		fxch	st(2)
		fsubr	dword ptr [ecx+4]
		fstp	[ebp+var_40]
		fcomi	st, st(1)
		fld	st
		fcmovnb	st, st(2)
		fld	dword ptr [edx+4]
		fstp	[ebp+var_48]
		fld	[ebp+arg_18]
		fadd	[ebp+var_48]
		fstp	[ebp+var_4C]
		fld	[ebp+var_40]
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fld	[ebp+var_4C]
		fxch	st(1)
		fcomip	st, st(1)
		ja	loc_8F6A0
		fxch	st(2)
		fcomi	st, st(1)
		fld	st(1)
		fcmovnb	st, st(1)
		fxch	st(3)
		fchs
		fstp	[ebp+var_4C]
		fld	[ebp+var_40]
		fxch	st(3)
		fcomi	st, st(3)
		fcmovb	st, st(3)
		fstp	st(3)
		fld	[ebp+var_4C]
		fcomip	st, st(3)
		fstp	st(2)
		ja	loc_8F6B8
		fld	dword ptr [edi+8]
		fst	[ebp+var_58]
		fsubr	dword ptr [esi+8]
		fstp	[ebp+var_4C]
		fld	[ebp+var_58]
		fsubr	dword ptr [ebx+8]
		fst	[ebp+var_54]
		fld	[ebp+var_58]
		fsubr	dword ptr [ecx+8]
		fstp	[ebp+var_50]
		fld	[ebp+var_4C]
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fld	dword ptr [edx+8]
		fstp	[ebp+var_60]
		fld	[ebp+arg_18]
		fadd	[ebp+var_60]
		fstp	[ebp+var_5C]
		fld	[ebp+var_50]
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F6D0
		fld	[ebp+var_54]
		fld	[ebp+var_4C]
		fxch	st(1)
		fcomip	st, st(1)
		fld	[ebp+var_54]
		fcmovb	st, st(1)
		fstp	st(1)
		fld	[ebp+var_5C]
		fchs
		fstp	[ebp+var_5C]
		fld	[ebp+var_50]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fld	[ebp+var_5C]
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F6E8
		fld	st(1)
		fsub	st, st(1)
		fst	[ebp+var_68]
		fld	[ebp+var_54]
		fsub	[ebp+var_4C]
		fst	[ebp+var_6C]
		fxch	st(1)
		fabs
		fstp	[ebp+var_74]
		fabs
		fstp	[ebp+var_70]
		fld	[ebp+var_6C]
		fmul	st, st(1)
		fstp	[ebp+var_5C]
		fld	[ebp+var_68]
		fmul	[ebp+var_4C]
		fsubr	[ebp+var_5C]
		fstp	[ebp+var_5C]
		fld	[ebp+var_6C]
		fmul	[ebp+var_40]
		fld	[ebp+var_68]
		fmul	[ebp+var_50]
		fsubp	st(1), st
		fstp	[ebp+var_64]
		fld	[ebp+var_74]
		fmul	[ebp+var_60]
		fld	[ebp+var_70]
		fmul	[ebp+var_48]
		faddp	st(1), st
		fstp	[ebp+var_78]
		fld	[ebp+var_64]
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		fld	[ebp+var_78]
		fadd	[ebp+arg_18]
		ja	loc_8F948
		fld	[ebp+var_64]
		fcomip	st, st(1)
		ja	loc_8F700
		fchs
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F713

loc_8F2A1:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+8A4j
		fld	st(4)
		fsub	st, st(3)
		fst	[ebp+var_78]
		fabs
		fstp	[ebp+var_7C]
		fld	[ebp+var_6C]
		fchs
		fld	st
		fmul	st, st(4)
		fstp	[ebp+var_5C]
		fld	[ebp+var_78]
		fmul	[ebp+var_4C]
		fadd	[ebp+var_5C]
		fst	[ebp+var_5C]
		fxch	st(1)
		fmul	st, st(5)
		fstp	[ebp+var_64]
		fld	[ebp+var_78]
		fmul	[ebp+var_50]
		fadd	[ebp+var_64]
		fstp	[ebp+var_64]
		fld	[ebp+var_7C]
		fmul	[ebp+var_60]
		fstp	[ebp+var_6C]
		fld	[ebp+var_70]
		fmul	[ebp+var_3C]
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_64]
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8F969
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_6C]
		fld	[ebp+var_5C]
		fcomip	st, st(1)
		ja	loc_8F724
		fchs
		fld	[ebp+var_64]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F737

loc_8F31E:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+8CDj
		fld	[ebp+var_68]
		fmul	st, st(5)
		fld	[ebp+var_78]
		fmul	st, st(3)
		fsubp	st(1), st
		fstp	[ebp+var_5C]
		fld	[ebp+var_68]
		fmul	st, st(4)
		fstp	[ebp+var_68]
		fld	[ebp+var_78]
		fmul	[ebp+var_40]
		fsubr	[ebp+var_68]
		fstp	[ebp+var_68]
		fld	[ebp+var_7C]
		fmul	[ebp+var_48]
		fld	[ebp+var_74]
		fmul	[ebp+var_3C]
		faddp	st(1), st
		fstp	[ebp+var_64]
		fld	[ebp+var_5C]
		fld	[ebp+var_68]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8F992
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_64]
		fld	[ebp+var_68]
		fcomip	st, st(1)
		ja	loc_8F748
		fchs
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F75B

loc_8F388:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+8F6j
		fld	[ebp+var_40]
		fsub	st, st(2)
		fst	[ebp+var_68]
		fld	[ebp+var_50]
		fsub	[ebp+var_54]
		fst	[ebp+var_6C]
		fxch	st(1)
		fabs
		fstp	[ebp+var_78]
		fabs
		fstp	[ebp+var_74]
		fld	[ebp+var_6C]
		fmul	st, st(1)
		fstp	[ebp+var_5C]
		fld	[ebp+var_68]
		fmul	[ebp+var_4C]
		fsubr	[ebp+var_5C]
		fstp	[ebp+var_5C]
		fld	[ebp+var_6C]
		fmul	st, st(2)
		fld	[ebp+var_68]
		fmul	[ebp+var_54]
		fsubp	st(1), st
		fstp	[ebp+var_64]
		fld	[ebp+var_78]
		fmul	[ebp+var_60]
		fld	[ebp+var_74]
		fmul	[ebp+var_48]
		faddp	st(1), st
		fstp	[ebp+var_70]
		fld	[ebp+var_64]
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8F9BB
		fld	[ebp+var_70]
		xor	eax, eax
		fadd	[ebp+arg_18]
		fld	[ebp+var_5C]
		fcomip	st, st(1)
		ja	loc_8F76C
		fchs
		fld	[ebp+var_64]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F77F

loc_8F410:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+91Fj
		fld	st(3)
		fsub	st, st(5)
		fst	[ebp+var_70]
		fabs
		fstp	[ebp+var_7C]
		fld	[ebp+var_6C]
		fchs
		fld	st
		fmul	st, st(4)
		fstp	[ebp+var_5C]
		fld	[ebp+var_70]
		fmul	[ebp+var_4C]
		fadd	[ebp+var_5C]
		fst	[ebp+var_5C]
		fxch	st(1)
		fmul	st, st(6)
		fstp	[ebp+var_64]
		fld	[ebp+var_70]
		fmul	[ebp+var_54]
		fadd	[ebp+var_64]
		fstp	[ebp+var_64]
		fld	[ebp+var_7C]
		fmul	[ebp+var_60]
		fstp	[ebp+var_6C]
		fld	[ebp+var_74]
		fmul	[ebp+var_3C]
		fadd	[ebp+var_6C]
		fstp	[ebp+var_6C]
		fld	[ebp+var_64]
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8F9E4
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_6C]
		fld	[ebp+var_5C]
		fcomip	st, st(1)
		ja	loc_8F790
		fchs
		fld	[ebp+var_64]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F7A3

loc_8F48D:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+948j
		fld	[ebp+var_68]
		fmul	st, st(3)
		fld	[ebp+var_70]
		fmul	st, st(2)
		fsubp	st(1), st
		fstp	[ebp+var_5C]
		fld	[ebp+var_68]
		fmul	st, st(4)
		fstp	[ebp+var_68]
		fld	[ebp+var_70]
		fmul	[ebp+var_40]
		fsubr	[ebp+var_68]
		fstp	[ebp+var_68]
		fld	[ebp+var_7C]
		fmul	[ebp+var_48]
		fld	[ebp+var_78]
		fmul	[ebp+var_3C]
		faddp	st(1), st
		fstp	[ebp+var_64]
		fld	[ebp+var_68]
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8FA0D
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_64]
		fld	[ebp+var_5C]
		fcomip	st, st(1)
		ja	loc_8F7B4
		fchs
		fld	[ebp+var_68]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F7C7

loc_8F4F7:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+971j
		fld	[ebp+var_40]
		fsubr	st, st(1)
		fst	[ebp+var_68]
		fld	[ebp+var_4C]
		fsub	[ebp+var_50]
		fst	[ebp+var_5C]
		fxch	st(1)
		fabs
		fst	[ebp+var_64]
		fxch	st(1)
		fabs
		fstp	[ebp+var_6C]
		fxch	st(1)
		fmul	[ebp+var_5C]
		fstp	[ebp+var_50]
		fld	[ebp+var_68]
		fmul	[ebp+var_4C]
		fsubr	[ebp+var_50]
		fstp	[ebp+var_50]
		fld	[ebp+var_5C]
		fmul	st, st(2)
		fld	[ebp+var_68]
		fmul	[ebp+var_54]
		fsubp	st(1), st
		fld	[ebp+var_60]
		fmulp	st(2), st
		fld	[ebp+var_6C]
		fmul	[ebp+var_48]
		faddp	st(2), st
		fld	[ebp+var_50]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	loc_8FA36
		fxch	st(1)
		fadd	[ebp+arg_18]
		xor	eax, eax
		fld	[ebp+var_50]
		fcomip	st, st(1)
		ja	loc_8F7D8
		fchs
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F7EB

loc_8F571:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+998j
		fld	st(1)
		fsub	st, st(3)
		fld	st
		fabs
		fstp	[ebp+var_50]
		fld	[ebp+var_5C]
		fchs
		fld	st
		fmulp	st(4), st
		fld	[ebp+var_4C]
		fmul	st, st(2)
		faddp	st(4), st
		fmul	st, st(5)
		fld	[ebp+var_54]
		fmul	st, st(2)
		faddp	st(1), st
		fld	[ebp+var_50]
		fmul	[ebp+var_60]
		fstp	[ebp+var_4C]
		fld	[ebp+var_6C]
		fmul	[ebp+var_3C]
		fadd	[ebp+var_4C]
		fstp	[ebp+var_4C]
		fcomi	st, st(3)
		jbe	loc_8FA5D
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_4C]
		fxch	st(4)
		fcomip	st, st(4)
		ja	loc_8F7FA
		fxch	st(3)
		fchs
		fcomip	st, st(3)
		fstp	st(2)
		ja	loc_8F80D

loc_8F5D2:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+9BBj
		fld	[ebp+var_68]
		fmulp	st(4), st
		fmul	st, st(1)
		fsubp	st(3), st
		fxch	st(1)
		fmul	[ebp+var_68]
		fld	[ebp+var_40]
		fmulp	st(2), st
		fsubrp	st(1), st
		fld	[ebp+var_50]
		fmul	[ebp+var_48]
		fld	[ebp+var_64]
		fmul	[ebp+var_3C]
		faddp	st(1), st
		fxch	st(2)
		fcomi	st, st(1)
		jbe	loc_8FA80
		fxch	st(2)
		fadd	[ebp+arg_18]
		fxch	st(1)
		xor	eax, eax
		fcomip	st, st(1)
		ja	loc_8F81C
		fchs
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F827

loc_8F61C:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+9D9j
		fld	[ebp+var_3C]
		fsubr	st, st(1)
		mov	eax, [ebp+arg_14]
		fstp	[ebp+var_30]
		fld	[ebp+var_44]
		mov	[esp+8], eax
		lea	eax, [ebp+var_24]
		fsub	[ebp+var_48]
		mov	[esp+4], eax
		lea	eax, [ebp+var_30]
		mov	[esp], eax
		fstp	[ebp+var_2C]
		fld	[ebp+var_58]
		fsub	[ebp+var_60]
		fstp	[ebp+var_28]
		fadd	[ebp+var_3C]
		fstp	[ebp+var_24]
		fld	[ebp+var_48]
		fadd	[ebp+var_44]
		fstp	[ebp+var_20]
		fld	[ebp+var_60]
		fadd	[ebp+var_58]
		fstp	[ebp+var_1C]
		call	_Z14BoxOnPlaneSidePKfS0_PK8cplane_t ; BoxOnPlaneSide(float  const*,float  const*,cplane_t  const*)
		cmp	eax, 3
		setz	al
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 8

loc_8F678:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+4Ej
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 10h

loc_8F690:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+6Cj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 10h

loc_8F6A0:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+AFj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 8

loc_8F6B8:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+D6j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 10h

loc_8F6D0:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+124j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 8

loc_8F6E8:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+155j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 10h

loc_8F700:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+1CAj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F713:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+1DBj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F724:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+247j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F737:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+258j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F748:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+2B1j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F75B:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+2C2j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F76C:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+339j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F77F:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+34Aj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F790:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+3B6j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F7A3:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+3C7j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F7B4:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+420j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F7C7:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+431j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F7D8:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+49Fj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F7EB:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+4ABj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F7FA:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+4FEj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F80D:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+50Cj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F81C:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+54Aj
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F827:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+556j
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------
		align 10h

loc_8F830:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+88Dj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F843:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+89Ej
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F854:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+8B6j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F867:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+8C7j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F878:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+8DFj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F88B:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+8F0j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F89C:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+908j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	loc_8F938
; ---------------------------------------------------------------------------

loc_8F8AF:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+919j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F8BD:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+931j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F8CD:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+942j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F8DB:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+95Aj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F8EB:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+96Bj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F8F9:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+981j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F907:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+992j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F913:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+9A9j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F923:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+9B5j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8F938
; ---------------------------------------------------------------------------

loc_8F92F:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+9CBj
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_8F938:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+5ADj
					; IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector	 const&,Vector	const&,cplane_t	 const&,float)+5C2j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_8F948:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+1BFj
		fld	[ebp+var_5C]
		fcomip	st, st(1)
		ja	loc_8F830
		fchs
		fld	[ebp+var_64]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F843
		jmp	loc_8F2A1
; ---------------------------------------------------------------------------

loc_8F969:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+234j
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_6C]
		fld	[ebp+var_64]
		fcomip	st, st(1)
		ja	loc_8F854
		fchs
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F867
		jmp	loc_8F31E
; ---------------------------------------------------------------------------

loc_8F992:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+29Ej
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_64]
		fld	[ebp+var_5C]
		fcomip	st, st(1)
		ja	loc_8F878
		fchs
		fld	[ebp+var_68]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F88B
		jmp	loc_8F388
; ---------------------------------------------------------------------------

loc_8F9BB:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+326j
		fld	[ebp+var_70]
		xor	eax, eax
		fadd	[ebp+arg_18]
		fld	[ebp+var_64]
		fcomip	st, st(1)
		ja	loc_8F89C
		fchs
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F8AF
		jmp	loc_8F410
; ---------------------------------------------------------------------------

loc_8F9E4:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+3A3j
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_6C]
		fld	[ebp+var_64]
		fcomip	st, st(1)
		ja	loc_8F8BD
		fchs
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F8CD
		jmp	loc_8F48D
; ---------------------------------------------------------------------------

loc_8FA0D:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+40Dj
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_64]
		fld	[ebp+var_68]
		fcomip	st, st(1)
		ja	loc_8F8DB
		fchs
		fld	[ebp+var_5C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F8EB
		jmp	loc_8F4F7
; ---------------------------------------------------------------------------

loc_8FA36:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+48Dj
		fxch	st(1)
		fadd	[ebp+arg_18]
		fxch	st(1)
		xor	eax, eax
		fcomip	st, st(1)
		ja	loc_8F8F9
		fchs
		fld	[ebp+var_50]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_8F907
		jmp	loc_8F571
; ---------------------------------------------------------------------------

loc_8FA5D:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+4ECj
		fld	[ebp+arg_18]
		xor	eax, eax
		fadd	[ebp+var_4C]
		fxch	st(1)
		fcomip	st, st(1)
		ja	loc_8F913
		fchs
		fcomip	st, st(3)
		fstp	st(2)
		ja	loc_8F923
		jmp	loc_8F5D2
; ---------------------------------------------------------------------------

loc_8FA80:				; CODE XREF: IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,cplane_t  const&,float)+539j
		fxch	st(2)
		fadd	[ebp+arg_18]
		fxch	st(2)
		xor	eax, eax
		fcomip	st, st(2)
		ja	loc_8F92F
		fxch	st(1)
		fchs
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8F61C
		fstp	st
		jmp	loc_8F938
_Z25IsBoxIntersectingTriangleRK6VectorS1_S1_S1_S1_RK8cplane_tf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl OBBHasFullyContainedIntersectionWithQuad(int, int, int, int, int,	float, int, int, float,	int, float)
_Z40OBBHasFullyContainedIntersectionWithQuadRK6VectorS1_S1_S1_S1_fS1_S1_fS1_f proc near

var_184		= dword	ptr -184h
var_180		= dword	ptr -180h
var_17C		= dword	ptr -17Ch
var_178		= dword	ptr -178h
var_174		= dword	ptr -174h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= qword	ptr -168h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_14C		= byte ptr -14Ch
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 17Ch
		mov	edi, [ebp+arg_C]
		mov	esi, [ebp+arg_0]
		fld	[ebp+arg_14]
		mov	ebx, [ebp+arg_4]
		fld	dword ptr [edi]
		fst	[ebp+var_170]
		mov	eax, [ebp+arg_10]
		fld	dword ptr [esi]
		fst	[ebp+var_154]
		mov	ecx, [ebp+arg_8]
		fsubp	st(1), st
		mov	edx, [ebp+arg_24]
		fstp	[ebp+var_174]
		fld	dword ptr [edi+4]
		fst	[ebp+var_178]
		fld	dword ptr [esi+4]
		fst	[ebp+var_158]
		fsubp	st(1), st
		fstp	[ebp+var_17C]
		fld	dword ptr [edi+8]
		fst	[ebp+var_180]
		fld	dword ptr [esi+8]
		fst	[ebp+var_15C]
		fsubp	st(1), st
		fstp	[ebp+var_184]
		fld	dword ptr [ebx]
		fst	[ebp+var_160]
		fld	[ebp+var_174]
		fsubrp	st(1), st
		fld	dword ptr [ebx+4]
		fst	dword ptr [ebp+var_168]
		fld	[ebp+var_17C]
		fsubrp	st(1), st
		fld	dword ptr [ebx+8]
		fst	[ebp+var_16C]
		fld	[ebp+var_184]
		fsubrp	st(1), st
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		fld	st(5)
		fsub	st, st(3)
		fstp	[ebp+var_BC]
		fld	st(4)
		fsub	st, st(2)
		fstp	[ebp+var_B8]
		fld	st(3)
		fsub	st, st(1)
		fstp	[ebp+var_B4]
		fxch	st(5)
		fadd	st, st(2)
		fstp	[ebp+var_B0]
		fadd	st(3), st
		fxch	st(3)
		fstp	[ebp+var_AC]
		fxch	st(1)
		fadd	st, st(3)
		fstp	[ebp+var_A8]
		fld	[ebp+var_174]
		fadd	[ebp+var_160]
		fld	[ebp+var_17C]
		fadd	dword ptr [ebp+var_168]
		fld	[ebp+var_184]
		fadd	[ebp+var_16C]
		fld	st(2)
		fadd	st, st(4)
		fstp	[ebp+var_A4]
		fld	st(1)
		fadd	st, st(5)
		fstp	[ebp+var_A0]
		fld	st
		fadd	st, st(6)
		fstp	[ebp+var_9C]
		fxch	st(2)
		fsub	st, st(3)
		fstp	[ebp+var_98]
		fsub	st, st(3)
		fstp	[ebp+var_94]
		fsub	st, st(3)
		fstp	[ebp+var_90]
		fld	[ebp+var_154]
		fadd	[ebp+var_170]
		fstp	[ebp+var_154]
		fld	[ebp+var_158]
		fadd	[ebp+var_178]
		fstp	[ebp+var_158]
		fld	[ebp+var_15C]
		fadd	[ebp+var_180]
		fst	[ebp+var_15C]
		fld	[ebp+var_154]
		fsub	[ebp+var_160]
		fld	[ebp+var_158]
		fsub	dword ptr [ebp+var_168]
		fxch	st(2)
		fsub	[ebp+var_16C]
		fld	st(1)
		fsub	st, st(4)
		fstp	[ebp+var_8C]
		fld	st(2)
		fsub	st, st(5)
		fstp	[ebp+var_88]
		fld	st
		fsub	st, st(6)
		fstp	[ebp+var_84]
		fxch	st(1)
		fadd	st, st(3)
		fstp	[ebp+var_80]
		fxch	st(1)
		fadd	st, st(3)
		fstp	[ebp+var_7C]
		fadd	st, st(3)
		fstp	[ebp+var_78]
		fld	[ebp+var_154]
		fadd	[ebp+var_160]
		fld	[ebp+var_158]
		fadd	dword ptr [ebp+var_168]
		fld	[ebp+var_15C]
		fadd	[ebp+var_16C]
		fld	st(2)
		fadd	st, st(4)
		fstp	[ebp+var_74]
		fld	st(1)
		fadd	st, st(5)
		fstp	[ebp+var_70]
		fld	st
		fadd	st, st(6)
		fstp	[ebp+var_6C]
		fxch	st(3)
		fsubp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_68]
		fsubrp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_64]
		fsubrp	st(1), st
		fstp	[ebp+var_60]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		xor	eax, eax
		db	66h
		nop

loc_8FCD0:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+248j
		lea	ecx, [eax+eax*2]
		lea	ecx, [ebp+ecx*4+var_BC]
		fld	dword ptr [ecx+4]
		fmul	st, st(2)
		fld	dword ptr [ecx]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ecx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fsub	st, st(4)
		fstp	[ebp+eax*4+var_5C]
		add	eax, 1
		cmp	eax, 8
		jnz	short loc_8FCD0
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fldz
		xor	al, al
		xor	ecx, ecx
		jmp	short loc_8FD23
; ---------------------------------------------------------------------------
		align 10h

loc_8FD10:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+279j
		mov	[ebp+eax*4+var_3C], 1
		add	eax, 1
		or	ecx, 1
		cmp	eax, 8
		jz	short loc_8FD48

loc_8FD23:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+258j
					; OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector	const&,float)+28Cj
		fld	[ebp+eax*4+var_5C]
		fcomip	st, st(1)
		ja	short loc_8FD10
		mov	[ebp+eax*4+var_3C], 2
		add	eax, 1
		or	ecx, 2
		cmp	eax, 8
		jnz	short loc_8FD23
		fstp	st
		jmp	short loc_8FD4A
; ---------------------------------------------------------------------------
		align 8

loc_8FD48:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+271j
		fstp	st

loc_8FD4A:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+290j
		xor	eax, eax
		cmp	ecx, 3
		jz	short loc_8FD60

loc_8FD51:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+38Dj
		add	esp, 17Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_8FD60:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+29Fj
		mov	eax, 1
		xor	ebx, ebx
		mov	[ebp+var_154], edx
		jmp	short loc_8FD7C
; ---------------------------------------------------------------------------
		align 10h

loc_8FD70:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+2D4j
					; OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector	const&,float)+311j
		add	eax, 1
		cmp	eax, 9
		jz	loc_8FE30

loc_8FD7C:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+2BDj
		cmp	[ebp+eax*4+var_40], 2
		lea	esi, [eax-1]
		jnz	short loc_8FD70
		mov	edi, esi
		mov	edx, eax
		mov	ecx, esi
		and	edi, 4
		and	edx, 3
		xor	ecx, 4
		lea	esi, [esi+esi*2]
		add	edx, edi
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_18], edx
		lea	edx, [eax-2]
		lea	esi, [ebp+esi*4+var_BC]
		and	edx, 3
		add	edx, edi
		mov	[ebp+var_14], edx
		xor	edx, edx
		cmp	[ebp+ecx*4+var_3C], 1
		jz	short loc_8FDCE

loc_8FDBB:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+31Cj
					; OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector	const&,float)+377j
		add	edx, 1
		cmp	edx, 3
		jz	short loc_8FD70
		mov	ecx, [ebp+edx*4+var_1C]
		cmp	[ebp+ecx*4+var_3C], 1
		jnz	short loc_8FDBB

loc_8FDCE:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+309j
		fld	[ebp+ecx*4+var_5C]
		lea	ecx, [ecx+ecx*2]
		fld	[ebp+eax*4+var_60]
		lea	edi, [ebp+ecx*4+var_BC]
		fld	st(1)
		fsub	st, st(1)
		lea	ecx, [ebx+ebx*2]
		add	ebx, 1
		lea	ecx, [ebp+ecx*4+var_14C]
		fdiv	st(2), st
		fxch	st(1)
		fchs
		fdivrp	st(1), st
		fld	dword ptr [edi+4]
		fmul	st, st(1)
		fld	dword ptr [esi+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [edi+8]
		fmul	st, st(2)
		fld	dword ptr [esi+8]
		fmul	st, st(4)
		faddp	st(1), st
		fxch	st(2)
		fmul	dword ptr [edi]
		fxch	st(3)
		fmul	dword ptr [esi]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [ecx]
		fxch	st(1)
		fstp	dword ptr [ecx+4]
		fstp	dword ptr [ecx+8]
		jmp	short loc_8FDBB
; ---------------------------------------------------------------------------
		align 10h

loc_8FE30:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+2C6j
		test	ebx, ebx
		mov	edx, [ebp+var_154]
		mov	eax, 1
		jz	loc_8FD51
		mov	eax, [ebp+arg_18]
		fld	[ebp+arg_20]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		mov	eax, [ebp+arg_1C]
		fstp	[ebp+var_160]
		fld	dword ptr [eax]
		fstp	[ebp+var_154]
		fld	dword ptr [eax+4]
		fstp	[ebp+var_15C]
		fld	dword ptr [eax+8]
		xor	eax, eax
		fstp	[ebp+var_158]
		fld	[ebp+arg_28]
		fstp	[ebp+var_168]
		jmp	short loc_8FEAF
; ---------------------------------------------------------------------------
		align 8

loc_8FE88:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+43Bj
		fxch	st(1)
		fmul	dword ptr [edx+4]
		fxch	st(2)
		fmul	dword ptr [edx]
		faddp	st(2), st
		fmul	dword ptr [edx+8]
		faddp	st(1), st
		fabs
		fld	[ebp+var_168]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_8FF00
		add	eax, 1
		cmp	ebx, eax
		jz	short loc_8FF18

loc_8FEAF:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+3CFj
		lea	ecx, [eax+eax*2]
		lea	ecx, [ebp+ecx*4+var_14C]
		fld	dword ptr [ecx]
		fsub	st, st(2)
		fld	dword ptr [ecx+4]
		fsub	st, st(2)
		fld	[ebp+var_160]
		fsubr	dword ptr [ecx+8]
		fld	[ebp+var_15C]
		fmul	st, st(2)
		fld	[ebp+var_154]
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_158]
		fmul	st, st(2)
		faddp	st(1), st
		fabs
		fcomip	st, st(6)
		jbe	short loc_8FE88
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_8FF06
; ---------------------------------------------------------------------------
		align 10h

loc_8FF00:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+3F6j
		fstp	st
		fstp	st
		fstp	st

loc_8FF06:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+449j
		add	esp, 17Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_8FF18:				; CODE XREF: OBBHasFullyContainedIntersectionWithQuad(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+3FDj
		fstp	st
		fstp	st
		fstp	st
		add	esp, 17Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z40OBBHasFullyContainedIntersectionWithQuadRK6VectorS1_S1_S1_S1_fS1_S1_fS1_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl RayHasFullyContainedIntersectionWithQuad(int, int, float,	int, int, float, int, float)
_Z40RayHasFullyContainedIntersectionWithQuadRK5Ray_tRK6VectorfS4_S4_fS4_f proc near

var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= qword	ptr -308h
var_300		= dword	ptr -300h
var_2FC		= dword	ptr -2FCh
var_2F8		= dword	ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= byte ptr -110h
var_B0		= dword	ptr -0B0h
var_90		= dword	ptr -90h
var_70		= dword	ptr -70h
var_50		= dword	ptr -50h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 314h
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		fld	[ebp+arg_8]
		mov	edx, [ebp+arg_18]
		cmp	byte ptr [ecx+40h], 0
		jz	loc_90020
		cmp	byte ptr [ecx+41h], 0
		jz	loc_90440
		fld	dword ptr [ecx]
		fst	[ebp+var_30]
		fld	dword ptr [ecx+4]
		fst	[ebp+var_2C]
		fld	dword ptr [ecx+8]
		fst	[ebp+var_28]
		fld	dword ptr [ecx+14h]
		fadd	st, st(2)
		fld	dword ptr [ecx+18h]
		fadd	st, st(2)
		fld	dword ptr [ecx+10h]
		fadd	st, st(5)
		fst	[ebp+var_24]
		fxch	st(2)
		fst	[ebp+var_20]
		fxch	st(1)
		fst	[ebp+var_1C]
		fld	dword ptr [eax]
		fstp	[ebp+var_2F8]
		fld	dword ptr [eax+4]
		fstp	[ebp+var_2FC]
		fld	dword ptr [eax+8]
		fxch	st(5)
		fmul	[ebp+var_2FC]
		fxch	st(4)
		fmul	st, st(5)
		faddp	st(4), st
		fxch	st(5)
		fmul	[ebp+var_2F8]
		faddp	st(3), st
		fxch	st(2)
		fsub	st, st(5)
		fxch	st(2)
		fmul	[ebp+var_2FC]
		fxch	st(1)
		fmul	[ebp+var_2F8]
		faddp	st(1), st
		fxch	st(3)
		fmulp	st(2), st
		fxch	st(2)
		faddp	st(1), st
		fsubrp	st(2), st
		fld	st
		fldz
		fcomi	st, st(2)
		jnb	loc_906B2
		fstp	st(2)
		fxch	st(1)
		fcomip	st, st(2)
		jnb	loc_9064E
		fstp	st
		fstp	st
		jmp	short loc_90010
; ---------------------------------------------------------------------------
		align 8

loc_8FFF8:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+53Aj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_90010
; ---------------------------------------------------------------------------

loc_90000:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+5BEj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_90010
; ---------------------------------------------------------------------------

loc_90008:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+78Aj
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_90010:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+C1j
					; RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector	 const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+CEj ...
		xor	eax, eax

loc_90012:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+355j
					; RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector	 const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+61Bj
		add	esp, 314h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_90020:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+1Cj
		fld	dword ptr [ecx+4]
		mov	[ebp+var_18], 0
		xor	esi, esi
		fld	dword ptr [ecx+8]
		fld	dword ptr [ecx]
		fsub	dword ptr [ecx+30h]
		fst	[ebp+var_170]
		fld	dword ptr [ecx+34h]
		fld	st(3)
		fsub	st, st(1)
		fst	[ebp+var_16C]
		fld	dword ptr [ecx+38h]
		fld	st(4)
		fsub	st, st(1)
		fst	[ebp+var_168]
		fxch	st(4)
		fst	[ebp+var_164]
		fxch	st(2)
		fst	[ebp+var_160]
		fxch	st(1)
		faddp	st(5), st
		fxch	st(4)
		fst	[ebp+var_15C]
		fxch	st(1)
		fst	[ebp+var_158]
		fxch	st(2)
		faddp	st(5), st
		fxch	st(4)
		fst	[ebp+var_154]
		fxch	st(4)
		fst	[ebp+var_150]
		fxch	st(1)
		fstp	[ebp+var_14C]
		fxch	st(3)
		fst	[ebp+var_148]
		fxch	st(1)
		fst	[ebp+var_144]
		fld	dword ptr [ecx]
		fadd	dword ptr [ecx+30h]
		fst	[ebp+var_140]
		fxch	st(3)
		fst	[ebp+var_13C]
		fxch	st(1)
		fst	[ebp+var_138]
		fxch	st(3)
		fst	[ebp+var_134]
		fxch	st(1)
		fstp	[ebp+var_130]
		fxch	st(3)
		fst	[ebp+var_12C]
		fxch	st(3)
		fst	[ebp+var_128]
		fxch	st(1)
		fst	[ebp+var_124]
		fxch	st(3)
		fstp	[ebp+var_120]
		fstp	[ebp+var_11C]
		fxch	st(1)
		fstp	[ebp+var_118]
		fstp	[ebp+var_114]
		mov	[ebp+var_14], 0
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		xor	eax, eax
		fldz
		jmp	loc_90133
; ---------------------------------------------------------------------------
		align 10h

loc_90120:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+22Aj
		mov	[ebp+eax*4+var_70], 1
		add	eax, 1
		or	esi, 1
		cmp	eax, 8
		jz	short loc_90178

loc_90133:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+1E6j
					; RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector	 const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+23Dj
		lea	ebx, [eax+eax*2]
		lea	ebx, [ebp+ebx*4+var_170]
		fld	dword ptr [ebx+4]
		fmul	st, st(3)
		fld	dword ptr [ebx]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(3)
		faddp	st(1), st
		fsub	st, st(5)
		fst	[ebp+eax*4+var_B0]
		fcomip	st, st(1)
		ja	short loc_90120
		mov	[ebp+eax*4+var_70], 2
		add	eax, 1
		or	esi, 2
		cmp	eax, 8
		jnz	short loc_90133
		fstp	st
		jmp	short loc_9017A
; ---------------------------------------------------------------------------
		align 8

loc_90178:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+201j
		fstp	st

loc_9017A:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+241j
		cmp	byte ptr [ecx+41h], 0
		mov	[ebp+var_18], esi
		jz	loc_90270
		fld	dword ptr [ecx+10h]
		xor	al, al
		fld	dword ptr [ecx+14h]
		fld	dword ptr [ecx+18h]
		fxch	st(6)
		fstp	[ebp+var_2F4]
		fxch	st(4)
		fstp	[ebp+var_2F8]
		lea	esi, [esi+0]

loc_901A8:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+2ABj
		lea	ebx, [eax+eax*2]
		add	eax, 1
		lea	esi, [ebp+var_170]
		shl	ebx, 2
		add	esi, ebx
		cmp	eax, 8
		fld	dword ptr [esi+4]
		lea	ebx, [ebp+ebx+var_110]
		fadd	st, st(4)
		fld	dword ptr [esi+8]
		fadd	st, st(6)
		fld	dword ptr [esi]
		fadd	st, st(3)
		fstp	dword ptr [ebx]
		fxch	st(1)
		fstp	dword ptr [ebx+4]
		fstp	dword ptr [ebx+8]
		jnz	short loc_901A8
		fstp	st
		fstp	st(2)
		fstp	st(2)
		fld	[ebp+var_2F4]
		xor	al, al
		fld	[ebp+var_2F8]
		mov	esi, [ebp+var_14]
		fldz
		jmp	short loc_90213
; ---------------------------------------------------------------------------
		align 10h

loc_90200:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+30Aj
		mov	[ebp+eax*4+var_50], 1
		add	eax, 1
		or	esi, 1
		cmp	eax, 8
		jz	short loc_90260

loc_90213:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+2C6j
					; RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector	 const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+31Dj
		lea	ebx, [eax+eax*2]
		lea	ebx, [ebp+ebx*4+var_110]
		fld	dword ptr [ebx+4]
		fmul	st, st(5)
		fld	dword ptr [ebx]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(5)
		faddp	st(1), st
		fsub	st, st(3)
		fst	[ebp+eax*4+var_90]
		fcomip	st, st(1)
		ja	short loc_90200
		mov	[ebp+eax*4+var_50], 2
		add	eax, 1
		or	esi, 2
		cmp	eax, 8
		jnz	short loc_90213
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_9026A
; ---------------------------------------------------------------------------
		align 10h

loc_90260:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+2E1j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_9026A:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+329j
		mov	[ebp+var_14], esi
		jmp	short loc_90278
; ---------------------------------------------------------------------------
		align 10h

loc_90270:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+251j
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_90278:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+33Dj
		mov	ebx, [ebp+var_18]
		xor	eax, eax
		mov	esi, [ebp+var_14]
		or	esi, ebx
		cmp	esi, 3
		jnz	loc_90012
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_318], ecx
		mov	[ebp+var_2F4], eax
		lea	esi, [ebp+var_70]
		xor	eax, eax
		cmp	ebx, 3
		mov	[ebp+var_31C], edx
		mov	[ebp+var_2F8], 0
		jz	short loc_902E0

loc_902B7:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+3AEj
					; RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector	 const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+3EEj
		add	[ebp+var_2F4], 20h
		add	esi, 20h
		cmp	[ebp+var_2F8], 1
		jz	loc_90550
		mov	[ebp+var_2F8], 1
		mov	ebx, [ebp+var_14]
		cmp	ebx, 3
		jnz	short loc_902B7

loc_902E0:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+385j
		mov	ecx, [ebp+var_2F8]
		mov	edx, 1
		mov	ebx, [ebp+var_2F8]
		lea	ecx, [ebx+ecx*2]
		mov	[ebp+var_310], ecx
		mov	ecx, [ebp+var_2F8]
		shl	[ebp+var_310], 5
		shl	ecx, 3
		mov	dword ptr [ebp+var_308], ecx
		jmp	short loc_90320
; ---------------------------------------------------------------------------
		align 8

loc_90318:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+3F8j
					; RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector	 const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+44Dj
		add	edx, 1
		cmp	edx, 9
		jz	short loc_902B7

loc_90320:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+3E0j
		cmp	dword ptr [esi+edx*4-4], 2
		lea	edi, [edx-1]
		jnz	short loc_90318
		mov	ecx, edi
		mov	ebx, edi
		lea	edi, [edi+edi*2]
		and	ecx, 4
		xor	ebx, 4
		mov	[ebp+var_30C], ecx
		mov	ecx, edx
		shl	edi, 2
		and	ecx, 3
		mov	[ebp+var_314], edi
		mov	edi, dword ptr [ebp+var_308]
		add	ecx, [ebp+var_30C]
		mov	[ebp+var_30], ebx
		add	edi, ebx
		mov	[ebp+var_2C], ecx
		lea	ecx, [edx-2]
		and	ecx, 3
		add	ecx, [ebp+var_30C]
		mov	[ebp+var_28], ecx
		xor	ecx, ecx
		cmp	[ebp+edi*4+var_70], 1
		jz	short loc_90392

loc_90377:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+460j
					; RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector	 const&,float,Vector  const&,Vector  const&,float,Vector  const&,float)+504j
		add	ecx, 1
		cmp	ecx, 3
		jz	short loc_90318
		mov	ebx, [ebp+ecx*4+var_30]
		mov	edi, dword ptr [ebp+var_308]
		add	edi, ebx
		cmp	[ebp+edi*4+var_70], 1
		jnz	short loc_90377

loc_90392:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+445j
		fld	[ebp+edi*4+var_B0]
		lea	ebx, [ebx+ebx*2]
		mov	edi, [ebp+var_2F4]
		fld	dword ptr [edi+edx*4-4]
		fld	st(1)
		mov	edi, [ebp+var_314]
		fsub	st, st(1)
		fdivr	ds:flt_1EBCFC
		add	edi, [ebp+var_310]
		mov	[ebp+var_2FC], edi
		lea	edi, [ebp+var_170]
		add	edi, [ebp+var_2FC]
		mov	[ebp+var_30C], edi
		mov	edi, [ebp+var_310]
		lea	ebx, [edi+ebx*4]
		lea	edi, [ebp+var_170]
		add	edi, ebx
		mov	ebx, [ebp+var_30C]
		fmul	st(2), st
		fxch	st(1)
		fchs
		fmulp	st(1), st
		fld	dword ptr [edi+4]
		fmul	st, st(1)
		fld	st(2)
		fmul	dword ptr [ebx+4]
		faddp	st(1), st
		fld	dword ptr [edi+8]
		fmul	st, st(2)
		fld	dword ptr [ebx+8]
		lea	ebx, [eax+eax*2]
		add	eax, 1
		fmul	st, st(4)
		lea	ebx, [ebp+ebx*4+var_2F0]
		faddp	st(1), st
		fxch	st(2)
		fmul	dword ptr [edi]
		fxch	st(3)
		mov	edi, [ebp+var_30C]
		fmul	dword ptr [edi]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [ebx]
		fxch	st(1)
		fstp	dword ptr [ebx+4]
		fstp	dword ptr [ebx+8]
		jmp	loc_90377
; ---------------------------------------------------------------------------
		align 10h

loc_90440:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+26j
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		fld	dword ptr [eax+4]
		fmul	st, st(2)
		fld	dword ptr [eax]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [eax+8]
		fmul	st, st(2)
		faddp	st(1), st
		fsubrp	st(4), st
		fxch	st(3)
		fabs
		fld	ds:dbl_1EBDB0
		fcomip	st, st(1)
		fstp	st
		jbe	loc_8FFF8
		fxch	st(1)
		fstp	[ebp+var_2F0]
		fstp	[ebp+var_2EC]
		fstp	[ebp+var_2E8]

loc_90484:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+77Dj
		mov	eax, 1

loc_90489:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+6FBj
		mov	ecx, [ebp+arg_C]
		fld	[ebp+arg_14]
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		mov	ecx, [ebp+arg_10]
		fstp	[ebp+var_2F8]
		fld	dword ptr [ecx]
		fstp	[ebp+var_2F4]
		fld	dword ptr [ecx+4]
		fstp	[ebp+var_2FC]
		fld	dword ptr [ecx+8]
		xor	ecx, ecx
		fstp	[ebp+var_300]
		fld	[ebp+arg_1C]
		fstp	[ebp+var_308]
		jmp	short loc_904FF
; ---------------------------------------------------------------------------
		align 10h

loc_904D0:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+60Bj
		fxch	st(1)
		fmul	dword ptr [edx+4]
		fxch	st(2)
		fmul	dword ptr [edx]
		faddp	st(2), st
		fmul	dword ptr [edx+8]
		faddp	st(1), st
		fabs
		fld	[ebp+var_308]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_90000
		add	ecx, 1
		cmp	eax, ecx
		jz	loc_90638

loc_904FF:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+595j
		lea	ebx, [ecx+ecx*2]
		lea	ebx, [ebp+ebx*4+var_2F0]
		fld	dword ptr [ebx]
		fsub	st, st(2)
		fld	dword ptr [ebx+4]
		fsub	st, st(2)
		fld	[ebp+var_2F8]
		fsubr	dword ptr [ebx+8]
		fld	[ebp+var_2FC]
		fmul	st, st(2)
		fld	[ebp+var_2F4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_300]
		fmul	st, st(2)
		faddp	st(1), st
		fabs
		fcomip	st, st(6)
		jbe	short loc_904D0
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		xor	eax, eax
		jmp	loc_90012
; ---------------------------------------------------------------------------

loc_90550:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+398j
		mov	ecx, [ebp+var_318]
		mov	edx, [ebp+var_31C]
		cmp	byte ptr [ecx+41h], 0
		jz	loc_90629
		xor	ecx, ecx
		mov	[ebp+var_2F4], edx
		db	66h
		nop

loc_90570:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+6EDj
		mov	ebx, [ebp+ecx*4+var_70]
		cmp	ebx, [ebp+ecx*4+var_50]
		jz	loc_90617
		xor	edx, edx
		cmp	ebx, 1
		setnz	bl
		setz	dl
		lea	edi, [edx+edx]
		movzx	ebx, bl
		lea	esi, [ecx+ebx*8]
		fld	[ebp+esi*4+var_B0]
		lea	esi, [ecx+edx*8]
		add	edx, edi
		fld	[ebp+esi*4+var_B0]
		lea	esi, [ecx+ecx*2]
		shl	edx, 5
		fld	st(1)
		shl	esi, 2
		fsub	st, st(1)
		lea	edi, [ebp+var_170]
		add	edx, esi
		add	edx, edi
		lea	edi, [ebx+ebx]
		fdivr	ds:flt_1EBCFC
		add	ebx, edi
		shl	ebx, 5
		add	esi, ebx
		lea	ebx, [ebp+var_170]
		add	esi, ebx
		lea	ebx, [eax+eax*2]
		add	eax, 1
		lea	ebx, [ebp+ebx*4+var_2F0]
		fmul	st(2), st
		fxch	st(1)
		fchs
		fmulp	st(1), st
		fld	dword ptr [esi+4]
		fmul	st, st(1)
		fld	dword ptr [edx+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [esi+8]
		fmul	st, st(2)
		fld	dword ptr [edx+8]
		fmul	st, st(4)
		faddp	st(1), st
		fxch	st(2)
		fmul	dword ptr [esi]
		fxch	st(3)
		fmul	dword ptr [edx]
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [ebx]
		fxch	st(1)
		fstp	dword ptr [ebx+4]
		fstp	dword ptr [ebx+8]

loc_90617:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+648j
		add	ecx, 1
		cmp	ecx, 8
		jnz	loc_90570
		mov	edx, [ebp+var_2F4]

loc_90629:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+630j
		test	eax, eax
		jnz	loc_90489
		jmp	short loc_9063E
; ---------------------------------------------------------------------------
		align 8

loc_90638:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+5C9j
		fstp	st
		fstp	st
		fstp	st

loc_9063E:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+701j
		add	esp, 314h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_9064E:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+B7j
		mov	ecx, 1
		xor	eax, eax

loc_90655:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+799j
		fld	st
		fsub	st, st(2)
		lea	ebx, [eax+eax]
		add	eax, ebx
		lea	ebx, [ecx+ecx]
		fdivr	ds:flt_1EBCFC
		add	ecx, ebx
		lea	ecx, [ebp+ecx*4+var_30]
		lea	eax, [ebp+eax*4+var_30]
		fmul	st(2), st
		fmulp	st(1), st
		fld	dword ptr [ecx+4]
		fmul	st, st(1)
		fld	dword ptr [eax+4]
		fmul	st, st(3)
		fsubp	st(1), st
		fld	dword ptr [ecx+8]
		fmul	st, st(2)
		fld	dword ptr [eax+8]
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(2)
		fmul	dword ptr [ecx]
		fxch	st(3)
		fmul	dword ptr [eax]
		fsubp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_2F0]
		fxch	st(1)
		fstp	[ebp+var_2EC]
		fstp	[ebp+var_2E8]
		jmp	loc_90484
; ---------------------------------------------------------------------------

loc_906B2:				; CODE XREF: RayHasFullyContainedIntersectionWithQuad(Ray_t  const&,Vector  const&,float,Vector	 const&,Vector	const&,float,Vector  const&,float)+ABj
		fstp	st(1)
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jb	loc_90008
		fxch	st(1)
		xor	ecx, ecx
		mov	eax, 1
		jmp	short loc_90655
_Z40RayHasFullyContainedIntersectionWithQuadRK5Ray_tRK6VectorfS4_S4_fS4_f endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CheckHeap(void)
_Z9CheckHeapv	proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z9CheckHeapv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InitCRTMemDebug(void)
_Z15InitCRTMemDebugv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z15InitCRTMemDebugv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTri::CDispCollTri(void)
_ZN12CDispCollTriC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	[eax+0Ch], edx
		mov	[eax+10h], edx
		mov	[eax+14h], edx
		mov	word ptr [eax+4], 0
		mov	word ptr [eax+2], 0
		mov	word ptr [eax],	0
		pop	ebp
		retn
_ZN12CDispCollTriC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTri::Init(void)
_ZN12CDispCollTri4InitEv proc near

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	[eax+0Ch], edx
		mov	[eax+10h], edx
		mov	[eax+14h], edx
		mov	word ptr [eax+4], 0
		mov	word ptr [eax+2], 0
		mov	word ptr [eax],	0
		pop	ebp
		retn
_ZN12CDispCollTri4InitEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTri::CalcPlane(CDispVector<Vector> &)
_ZN12CDispCollTri9CalcPlaneER11CDispVectorI6VectorE proc near
					; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+3EFp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		movzx	eax, word ptr [edx]
		movzx	ebx, word ptr [edx+2]
		mov	ecx, [esi]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		and	ebx, 1FFh
		lea	ebx, [ebx+ebx*2]
		shl	eax, 2
		lea	edi, [ecx+eax]
		fld	dword ptr [edi]
		lea	ebx, [ecx+ebx*4]
		fld	dword ptr [ebx]
		fsub	st, st(1)
		fld	dword ptr [edi+4]
		fld	dword ptr [ebx+4]
		fsub	st, st(1)
		fld	dword ptr [edi+8]
		fld	dword ptr [ebx+8]
		movzx	ebx, word ptr [edx+4]
		fsub	st, st(1)
		fxch	st(5)
		and	ebx, 1FFh
		lea	ebx, [ebx+ebx*2]
		lea	ecx, [ecx+ebx*4]
		fsubr	dword ptr [ecx]
		fxch	st(3)
		fsubr	dword ptr [ecx+4]
		fxch	st(1)
		fsubr	dword ptr [ecx+8]
		fld	st(1)
		fmul	st, st(6)
		fld	st(1)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(1)
		fmul	st, st(5)
		fxch	st(6)
		fmul	st, st(4)
		fsubp	st(6), st
		fxch	st(3)
		fmulp	st(2), st
		fmulp	st(3), st
		fsubrp	st(2), st
		fld	st
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		movd	xmm0, ecx
		xor	ecx, ecx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_1C], xmm1
		fld	[ebp+var_1C]
		fmul	st(1), st
		fxch	st(1)
		fst	dword ptr [edx+8]
		fld	st(1)
		fmulp	st(4), st
		fxch	st(3)
		fst	dword ptr [edx+0Ch]
		fxch	st(2)
		fmulp	st(1), st
		fst	dword ptr [edx+10h]
		fxch	st(1)
		add	eax, [esi]
		lea	esi, [edx+8]
		fmul	dword ptr [eax+4]
		fxch	st(2)
		fmul	dword ptr [eax]
		faddp	st(2), st
		fmul	dword ptr [eax+8]
		faddp	st(1), st
		fstp	dword ptr [edx+14h]
		movzx	eax, byte ptr [edx+6]
		and	eax, 0FFFFFFC0h
		or	eax, 28h
		mov	[edx+6], al

loc_90864:				; CODE XREF: CDispCollTri::CalcPlane(CDispVector<Vector> &)+13Dj
		lea	ebx, [esi+ecx*4]
		fld	dword ptr [ebx]
		fldz
		fcomip	st, st(1)
		ja	short loc_908A0

loc_9086F:				; CODE XREF: CDispCollTri::CalcPlane(CDispVector<Vector> &)+168j
		fld1
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_90887
		mov	ebx, ecx
		and	eax, 0FFFFFFC7h
		and	ebx, 7
		shl	ebx, 3
		or	eax, ebx
		mov	[edx+6], al

loc_90887:				; CODE XREF: CDispCollTri::CalcPlane(CDispVector<Vector> &)+125j
		add	ecx, 1
		cmp	ecx, 3
		jnz	short loc_90864
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_908A0:				; CODE XREF: CDispCollTri::CalcPlane(CDispVector<Vector> &)+11Dj
		fstp	st
		mov	edi, 1
		shl	edi, cl
		or	edi, eax
		and	eax, 0FFFFFFF8h
		and	edi, 7
		or	eax, edi
		mov	[edx+6], al
		fld	dword ptr [ebx]
		jmp	short loc_9086F
_ZN12CDispCollTri9CalcPlaneER11CDispVectorI6VectorE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTri::FindMinMax(CDispVector<Vector> &)
_ZN12CDispCollTri10FindMinMaxER11CDispVectorI6VectorE proc near
					; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+409p

var_28		= byte ptr -28h
var_18		= dword	ptr -18h
var_11		= byte ptr -11h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		movzx	edx, word ptr [eax+4]
		mov	esi, [ebx]
		and	edx, 1FFh
		lea	ecx, [edx+edx*2]
		movzx	edx, word ptr [eax+2]
		shl	ecx, 2
		fld	dword ptr [esi+ecx]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_18], edx
		fld	dword ptr [esi+edx]
		movzx	edi, word ptr [eax]
		and	edi, 1FFh
		lea	edi, [edi+edi*2]
		shl	edi, 2
		fld	dword ptr [esi+edi]
		mov	esi, 2
		mov	[ebp+var_10], edi
		fcomi	st, st(1)
		mov	edi, 1
		fld	st
		setnbe	dl
		fcmovnbe st, st(2)
		movzx	edx, dl
		fcomip	st, st(3)
		fxch	st(1)
		cmovbe	esi, edx
		fcomi	st, st(1)
		ja	short loc_90940
		fstp	st
		fxch	st(1)
		xor	di, di
		jmp	short loc_90944
; ---------------------------------------------------------------------------
		align 10h

loc_90940:				; CODE XREF: CDispCollTri::FindMinMax(CDispVector<Vector> &)+6Ej
		fstp	st(1)
		fxch	st(1)

loc_90944:				; CODE XREF: CDispCollTri::FindMinMax(CDispVector<Vector> &)+77j
		fcomip	st, st(1)
		fstp	st
		mov	edx, 2
		cmovbe	edx, edi
		lea	edi, [esi+esi]
		mov	[ebp+var_28], dl
		mov	edx, edi
		mov	[ebp+var_11], dl
		movzx	esi, byte ptr [eax+1]
		and	[ebp+var_28], 3
		and	esi, 0FFFFFFE1h
		movzx	edx, [ebp+var_28]
		lea	edi, ds:0[edx*8]
		movzx	edx, [ebp+var_11]
		or	esi, edx
		or	esi, edi
		mov	edx, esi
		mov	[eax+1], dl
		mov	esi, [ebx]
		mov	edi, [ebp+var_18]
		mov	edx, [ebp+var_10]
		fld	dword ptr [esi+ecx+4]
		fld	dword ptr [esi+edi+4]
		mov	edi, 1
		fld	dword ptr [esi+edx+4]
		mov	esi, 2
		fcomi	st, st(1)
		fld	st
		setnbe	dl
		fcmovnbe st, st(2)
		movzx	edx, dl
		fcomip	st, st(3)
		fxch	st(1)
		cmovbe	esi, edx
		fcomi	st, st(1)
		ja	short loc_909C0
		fstp	st
		fxch	st(1)
		xor	di, di
		jmp	short loc_909C4
; ---------------------------------------------------------------------------
		align 10h

loc_909C0:				; CODE XREF: CDispCollTri::FindMinMax(CDispVector<Vector> &)+F1j
		fstp	st(1)
		fxch	st(1)

loc_909C4:				; CODE XREF: CDispCollTri::FindMinMax(CDispVector<Vector> &)+FAj
		fcomip	st, st(1)
		fstp	st
		mov	edx, 2
		cmovbe	edx, edi
		lea	edi, [esi+esi]
		mov	[ebp+var_28], dl
		mov	edx, edi
		mov	[ebp+var_11], dl
		movzx	esi, byte ptr [eax+3]
		and	[ebp+var_28], 3
		and	esi, 0FFFFFFE1h
		movzx	edx, [ebp+var_28]
		lea	edi, ds:0[edx*8]
		movzx	edx, [ebp+var_11]
		or	esi, edx
		or	esi, edi
		mov	edx, esi
		mov	[eax+3], dl
		mov	ebx, [ebx]
		mov	edi, [ebp+var_18]
		mov	edx, [ebp+var_10]
		fld	dword ptr [ebx+ecx+8]
		fld	dword ptr [ebx+edi+8]
		fld	dword ptr [ebx+edx+8]
		mov	edx, 2
		fcomi	st, st(1)
		fld	st
		setnbe	cl
		fcmovnbe st, st(2)
		movzx	ecx, cl
		fcomip	st, st(3)
		fxch	st(1)
		cmovbe	edx, ecx
		fcomi	st, st(1)
		mov	ecx, 1
		ja	short loc_90A40
		fstp	st
		fxch	st(1)
		xor	cl, cl
		jmp	short loc_90A44
; ---------------------------------------------------------------------------
		align 10h

loc_90A40:				; CODE XREF: CDispCollTri::FindMinMax(CDispVector<Vector> &)+171j
		fstp	st(1)
		fxch	st(1)

loc_90A44:				; CODE XREF: CDispCollTri::FindMinMax(CDispVector<Vector> &)+179j
		fcomip	st, st(1)
		fstp	st
		mov	ebx, 2
		cmova	ecx, ebx
		lea	ebx, [edx+edx]
		movzx	edx, byte ptr [eax+5]
		and	ecx, 3
		shl	ecx, 3
		and	edx, 0FFFFFFE1h
		or	edx, ebx
		or	edx, ecx
		mov	[eax+5], dl
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN12CDispCollTri10FindMinMaxER11CDispVectorI6VectorE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_GenerateBoxes_r(int, Vector *, Vector	*)
_ZN13CDispCollTree24AABBTree_GenerateBoxes_rEiP6VectorS1_ proc near
					; CODE XREF: CDispCollTree::AABBTree_GenerateBoxes_r(int,Vector	*,Vector *)+14Ap
					; CDispCollTree::AABBTree_CalcBounds(void)+39p

var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= xmmword ptr -78h
var_60		= xmmword ptr -60h
var_48		= xmmword ptr -48h
var_30		= xmmword ptr -30h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		mov	[esp], esi
		mov	[esp+4], edi
		call	_Z11ClearBoundsR6VectorS0_ ; ClearBounds(Vector	&,Vector &)
		mov	eax, [ebx+98h]
		cmp	eax, [ebp+arg_4]
		jg	loc_90B70
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_7C], esi
		mov	esi, ebx
		mov	[ebp+var_80], edi
		sub	edx, eax
		mov	eax, edx
		xor	edx, edx
		shl	eax, 2
		mov	edi, edx
		mov	[ebp+var_84], eax

loc_90ABC:				; CODE XREF: CDispCollTree::AABBTree_GenerateBoxes_r(int,Vector	*,Vector *)+E8j
		lea	eax, [edi+edi]
		mov	edx, [ebp+var_84]
		add	edi, 1
		add	eax, [esi+0A0h]
		movsx	eax, word ptr [eax+edx]
		mov	edx, [esi+80h]
		lea	ebx, [eax+eax*2]
		mov	eax, [ebp+var_80]
		lea	ebx, [edx+ebx*8]
		mov	edx, [ebp+var_7C]
		mov	[esp+8], eax
		mov	[esp+4], edx
		movzx	eax, word ptr [ebx]
		mov	ecx, [esi+70h]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		mov	[esp], eax
		call	_Z16AddPointToBoundsRK6VectorRS_S2_ ; AddPointToBounds(Vector  const&,Vector&,Vector&)
		mov	eax, [ebp+var_80]
		mov	edx, [ebp+var_7C]
		mov	[esp+8], eax
		mov	[esp+4], edx
		movzx	eax, word ptr [ebx+2]
		mov	edx, [esi+70h]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	[esp], eax
		call	_Z16AddPointToBoundsRK6VectorRS_S2_ ; AddPointToBounds(Vector  const&,Vector&,Vector&)
		mov	eax, [ebp+var_80]
		mov	edx, [ebp+var_7C]
		mov	[esp+8], eax
		mov	[esp+4], edx
		movzx	eax, word ptr [ebx+4]
		mov	ecx, [esi+70h]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		mov	[esp], eax
		call	_Z16AddPointToBoundsRK6VectorRS_S2_ ; AddPointToBounds(Vector  const&,Vector&,Vector&)
		cmp	edi, 2
		jnz	loc_90ABC
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_90B70:				; CODE XREF: CDispCollTree::AABBTree_GenerateBoxes_r(int,Vector	*,Vector *)+2Aj
		mov	eax, [ebp+arg_4]
		xor	edx, edx
		mov	[ebp+var_88], ebx
		mov	[ebp+var_7C], esi
		mov	[ebp+var_80], edi
		shl	eax, 2
		mov	[ebp+var_8C], eax

loc_90B8A:				; CODE XREF: CDispCollTree::AABBTree_GenerateBoxes_r(int,Vector	*,Vector *)+182j
		mov	eax, [ebp+var_8C]
		lea	ebx, [edx+1]
		lea	edi, [edx+edx*2]
		lea	esi, [ebp+var_48]
		shl	edi, 2
		lea	edx, [ebp+var_78]
		add	esi, edi
		add	eax, ebx
		add	edi, edx
		mov	[esp+0Ch], esi
		mov	[esp+4], eax
		mov	eax, [ebp+var_88]
		mov	[esp+8], edi
		mov	[esp], eax
		call	_ZN13CDispCollTree24AABBTree_GenerateBoxes_rEiP6VectorS1_ ; CDispCollTree::AABBTree_GenerateBoxes_r(int,Vector *,Vector	*)
		mov	edx, [ebp+var_80]
		mov	[esp], edi
		mov	eax, [ebp+var_7C]
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_Z16AddPointToBoundsRK6VectorRS_S2_ ; AddPointToBounds(Vector  const&,Vector&,Vector&)
		mov	edx, [ebp+var_80]
		mov	[esp], esi
		mov	eax, [ebp+var_7C]
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_Z16AddPointToBoundsRK6VectorRS_S2_ ; AddPointToBounds(Vector  const&,Vector&,Vector&)
		cmp	ebx, 4
		jz	short loc_90BF8
		mov	edx, ebx
		jmp	short loc_90B8A
; ---------------------------------------------------------------------------
		align 8

loc_90BF8:				; CODE XREF: CDispCollTree::AABBTree_GenerateBoxes_r(int,Vector	*,Vector *)+17Ej
		mov	ebx, [ebp+var_88]
		mov	edx, [ebp+arg_4]
		movups	xmm0, [ebp+var_78]
		movaps	xmm3, xmm0
		lea	eax, [edx+edx*2]
		mov	edx, [ebx+90h]
		shl	eax, 5
		add	edx, eax
		movaps	xmmword	ptr [edx], xmm0
		movups	xmm2, [ebp+var_78+0Ch]
		movaps	xmmword	ptr [edx+10h], xmm2
		unpcklps xmm3, xmm2
		unpckhps xmm0, xmm2
		movups	xmm1, [ebp+var_60]
		movaps	xmm2, xmm3
		movaps	xmmword	ptr [edx+20h], xmm1
		movaps	xmm4, xmm1
		movups	xmm5, [ebp+var_60+0Ch]
		unpcklps xmm4, xmm5
		unpckhps xmm1, xmm5
		movlhps	xmm2, xmm4
		movlhps	xmm0, xmm1
		movhlps	xmm4, xmm3
		movaps	xmmword	ptr [edx], xmm2
		movaps	xmmword	ptr [edx+10h], xmm4
		movaps	xmmword	ptr [edx+20h], xmm0
		add	eax, [ebx+90h]
		movups	xmm0, [ebp+var_48]
		movaps	xmm3, xmm0
		movaps	xmmword	ptr [eax+30h], xmm0
		movups	xmm2, [ebp+var_48+0Ch]
		movaps	xmmword	ptr [eax+40h], xmm2
		unpcklps xmm3, xmm2
		unpckhps xmm0, xmm2
		movups	xmm1, [ebp+var_30]
		movaps	xmm2, xmm3
		movaps	xmmword	ptr [eax+50h], xmm1
		movaps	xmm4, xmm1
		movups	xmm5, [ebp+var_30+0Ch]
		unpcklps xmm4, xmm5
		unpckhps xmm1, xmm5
		movlhps	xmm2, xmm4
		movlhps	xmm0, xmm1
		movhlps	xmm4, xmm3
		movaps	xmmword	ptr [eax+30h], xmm2
		movaps	xmmword	ptr [eax+40h], xmm4
		movaps	xmmword	ptr [eax+50h], xmm0
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CDispCollTree24AABBTree_GenerateBoxes_rEiP6VectorS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_CalcBounds(void)
_ZN13CDispCollTree19AABBTree_CalcBoundsEv proc near
					; CODE XREF: CDispCollTree::AABBTree_Create(CCoreDispInfo *)+2Dp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	esi, [eax+78h]
		test	esi, esi
		jz	short loc_90D0E
		mov	ebx, [eax+98h]
		test	ebx, ebx
		jz	short loc_90D0E
		lea	esi, [eax+14h]
		mov	[esp], eax
		lea	ebx, [eax+4]
		mov	[esp+0Ch], esi
		mov	[esp+8], ebx
		mov	dword ptr [esp+4], 0
		call	_ZN13CDispCollTree24AABBTree_GenerateBoxes_rEiP6VectorS1_ ; CDispCollTree::AABBTree_GenerateBoxes_r(int,Vector *,Vector	*)
		xor	eax, eax
		fld1

loc_90CF2:				; CODE XREF: CDispCollTree::AABBTree_CalcBounds(void)+5Aj
		lea	edx, [ebx+eax]
		fld	dword ptr [edx]
		fsub	st, st(1)
		fstp	dword ptr [edx]
		lea	edx, [esi+eax]
		add	eax, 4
		fld	dword ptr [edx]
		cmp	eax, 0Ch
		fadd	st, st(1)
		fstp	dword ptr [edx]
		jnz	short loc_90CF2
		fstp	st

loc_90D0E:				; CODE XREF: CDispCollTree::AABBTree_CalcBounds(void)+14j
					; CDispCollTree::AABBTree_CalcBounds(void)+1Ej
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN13CDispCollTree19AABBTree_CalcBoundsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&, Vector  const&, int, RayDispOutput_t &, CDispCollTri **)
_ZN13CDispCollTree35AABBTree_TreeTrisRayBarycentricTestERK5Ray_tRK6VectoriR15RayDispOutput_tPP12CDispCollTri proc near
					; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+16Ep

var_6DC		= dword	ptr -6DCh
var_6D8		= xmmword ptr -6D8h
var_6B8		= xmmword ptr -6B8h
var_6A8		= xmmword ptr -6A8h
var_698		= xmmword ptr -698h
var_688		= xmmword ptr -688h
var_678		= xmmword ptr -678h
var_668		= xmmword ptr -668h
var_658		= xmmword ptr -658h
var_648		= xmmword ptr -648h
var_638		= xmmword ptr -638h
var_598		= dword	ptr -598h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 6FCh
		mov	edx, [ebp+arg_8]
		fld	ds:flt_1EBF78
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_C]
		movss	xmm0, dword ptr	[edx+4]
		movss	xmm7, dword ptr	[edx]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_638], xmm0
		movss	xmm0, dword ptr	[edx+8]
		mov	edx, [ebp+arg_4]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_658], xmm0
		shufps	xmm7, xmm7, 0
		fld	dword ptr [edx+30h]
		movss	xmm0, dword ptr	[edx]
		fadd	st, st(1)
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_668], xmm0
		movss	xmm0, dword ptr	[edx+4]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_678], xmm0
		movss	xmm0, dword ptr	[edx+8]
		fstp	dword ptr [ebp+var_648]
		shufps	xmm0, xmm0, 0
		fld	dword ptr [edx+34h]
		movaps	[ebp+var_688], xmm0
		movss	xmm0, dword ptr	[ebp+var_648]
		fadd	st, st(1)
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_698], xmm0
		fstp	dword ptr [ebp+var_648]
		fadd	dword ptr [edx+38h]
		movss	xmm0, dword ptr	[ebp+var_648]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_6A8], xmm0
		fstp	dword ptr [ebp+var_648]
		movss	xmm0, dword ptr	[ebp+var_648]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_6B8], xmm0
		mov	[ebp+var_598], eax
		mov	edx, [ebx+98h]
		mov	dword ptr [ebp+var_648], 0
		movaps	[ebp+var_6D8], xmm7
		mov	[ebp+var_6DC], edx
		jmp	short loc_90E27
; ---------------------------------------------------------------------------
		align 10h

loc_90E20:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+24Fj
		mov	eax, [ebp+esi*4+var_598]

loc_90E27:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+F4j
		cmp	[ebp+var_6DC], eax
		jle	loc_90F80
		lea	ecx, [eax+eax*2]
		add	esi, 1
		shl	ecx, 5
		add	ecx, [ebx+90h]
		movaps	xmm3, xmmword ptr [ecx+10h]
		movaps	xmm5, xmmword ptr [ecx]
		movaps	xmm2, xmmword ptr [ecx+40h]
		movaps	xmm4, xmmword ptr [ecx+30h]
		subps	xmm3, [ebp+var_678]
		subps	xmm5, [ebp+var_668]
		subps	xmm2, [ebp+var_678]
		movaps	xmm1, xmmword ptr [ecx+20h]
		subps	xmm4, [ebp+var_668]
		movaps	xmm0, xmmword ptr [ecx+50h]
		subps	xmm3, [ebp+var_6A8]
		subps	xmm1, [ebp+var_688]
		subps	xmm5, [ebp+var_698]
		addps	xmm2, [ebp+var_6A8]
		subps	xmm0, [ebp+var_688]
		addps	xmm4, [ebp+var_698]
		mulps	xmm3, [ebp+var_638]
		mulps	xmm5, [ebp+var_6D8]
		mulps	xmm2, [ebp+var_638]
		subps	xmm1, [ebp+var_6B8]
		mulps	xmm4, [ebp+var_6D8]
		movaps	xmm7, xmm3
		addps	xmm0, [ebp+var_6B8]
		movaps	xmm6, xmm5
		mulps	xmm1, [ebp+var_658]
		maxps	xmm7, xmm2
		minps	xmm2, xmm3
		mulps	xmm0, [ebp+var_658]
		maxps	xmm6, xmm4
		minps	xmm4, xmm5
		movaps	[ebp+var_648], xmm7
		movaps	xmm7, xmm1
		minps	xmm6, [ebp+var_648]
		maxps	xmm7, xmm0
		maxps	xmm4, xmm2
		minps	xmm0, xmm1
		minps	xmm6, xmm7
		maxps	xmm4, xmm0
		minps	xmm6, xmmword ptr ds:Four_Ones
		maxps	xmm4, xmmword ptr ds:Four_Zeros
		cmpleps	xmm4, xmm6
		movmskps ecx, xmm4
		test	ecx, ecx
		jz	short loc_90F6D
		shl	eax, 2
		test	cl, 1
		jz	short loc_90F37
		lea	edx, [eax+1]
		add	edi, 1
		mov	[ebp+edi*4+var_598], edx

loc_90F37:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+208j
		test	cl, 2
		jz	short loc_90F49
		lea	edx, [eax+2]
		add	edi, 1
		mov	[ebp+edi*4+var_598], edx

loc_90F49:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+21Aj
		test	cl, 4
		jz	short loc_90F5B
		lea	edx, [eax+3]
		add	edi, 1
		mov	[ebp+edi*4+var_598], edx

loc_90F5B:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+22Cj
		and	ecx, 8
		jz	short loc_90F6D
		add	edi, 1
		add	eax, 4
		mov	[ebp+edi*4+var_598], eax

loc_90F6D:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+200j
					; CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri **)+23Ej
		cmp	edi, esi
		jge	loc_90E20

loc_90F75:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+26Ej
					; CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri **)+3B3j
		add	esp, 6FCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_90F80:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+10Dj
		cmp	esi, edi
		mov	dword ptr [ebp+var_648], edi
		mov	edx, [ebp+var_6DC]
		jg	short loc_90F75
		mov	dword ptr [ebp+var_638], esi
		jmp	loc_910EC
; ---------------------------------------------------------------------------
		align 10h

loc_90FA0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+45Fj
		fstp	st
		fstp	st
		jmp	short loc_90FF0
; ---------------------------------------------------------------------------
		align 10h

loc_90FB0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+46Aj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_90FF0
; ---------------------------------------------------------------------------
		align 10h

loc_90FC0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+47Aj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_90FF0
; ---------------------------------------------------------------------------
		align 10h

loc_90FD0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+487j
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_90FF0
; ---------------------------------------------------------------------------
		align 10h

loc_90FE0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+495j
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_90FF0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+284j
					; CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri **)+296j ...
		lea	edx, [ebp+var_1C]
		mov	eax, [ebx+70h]
		lea	ecx, [ebp+var_20]
		mov	[esp+18h], edx
		lea	edx, [ebp+var_24]
		mov	[esp+14h], ecx
		mov	ecx, [ebp+arg_4]
		mov	[esp+10h], edx
		movzx	edx, word ptr [edi+2]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [eax+edx*4]
		mov	[esp+0Ch], edx
		movzx	edx, word ptr [edi+4]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [eax+edx*4]
		mov	[esp+8], edx
		movzx	edx, word ptr [edi]
		mov	[esp], ecx
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	eax, [eax+edx*4]
		mov	[esp+4], eax
		call	_Z41ComputeIntersectionBarycentricCoordinatesRK5Ray_tRK6VectorS4_S4_RfS5_Pf ; ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float &,float &,float *)
		test	al, al
		jz	short loc_910C0
		fld	[ebp+var_24]
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		jb	short loc_91080
		fld	[ebp+var_20]
		fcomi	st, st(2)
		jb	short loc_91090
		fld	st
		fadd	st, st(2)
		fld1
		fcomip	st, st(1)
		fstp	st
		jnb	loc_911D0
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_910C0
; ---------------------------------------------------------------------------
		align 10h

loc_91080:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+33Bj
		fstp	st
		fstp	st
		jmp	short loc_910C0
; ---------------------------------------------------------------------------
		align 10h

loc_91090:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+342j
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_910C0
; ---------------------------------------------------------------------------
		align 10h

loc_910A0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+4B7j
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_910C0
; ---------------------------------------------------------------------------
		align 10h

loc_910B0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+4C5j
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_910C0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+330j
					; CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri **)+35Aj ...
		add	dword ptr [ebp+var_638], 1
		mov	ecx, dword ptr [ebp+var_648]
		cmp	dword ptr [ebp+var_638], ecx
		jg	loc_90F75
		mov	edx, dword ptr [ebp+var_638]
		mov	eax, [ebp+edx*4+var_598]
		mov	edx, [ebx+98h]

loc_910EC:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+276j
		mov	edi, [ebx+0A0h]
		sub	eax, edx
		mov	edx, [ebx+80h]
		lea	eax, [edi+eax*4]
		movsx	ecx, word ptr [eax]
		movsx	eax, word ptr [eax+2]
		lea	ecx, [ecx+ecx*2]
		lea	esi, [edx+ecx*8]
		lea	eax, [eax+eax*2]
		lea	ecx, [ebp+var_1C]
		lea	edi, [edx+eax*8]
		mov	eax, [ebx+70h]
		mov	[esp+18h], ecx
		lea	edx, [ebp+var_20]
		lea	ecx, [ebp+var_24]
		mov	[esp+14h], edx
		mov	[esp+10h], ecx
		movzx	edx, word ptr [esi+2]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [eax+edx*4]
		mov	[esp+0Ch], edx
		movzx	edx, word ptr [esi+4]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [eax+edx*4]
		mov	[esp+8], edx
		movzx	edx, word ptr [esi]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	eax, [eax+edx*4]
		mov	edx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z41ComputeIntersectionBarycentricCoordinatesRK5Ray_tRK6VectorS4_S4_RfS5_Pf ; ComputeIntersectionBarycentricCoordinates(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,float &,float &,float *)
		test	al, al
		jz	loc_90FF0
		fld	[ebp+var_24]
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		jb	loc_90FA0
		fld	[ebp+var_20]
		fcomi	st, st(2)
		jb	loc_90FB0
		fld	st
		fadd	st, st(2)
		fld1
		fcomip	st, st(1)
		fstp	st
		jb	loc_90FC0
		fld	[ebp+var_1C]
		fcomi	st, st(3)
		fstp	st(3)
		jbe	loc_90FD0
		mov	ecx, [ebp+arg_10]
		fld	dword ptr [ecx+10h]
		fcomip	st, st(3)
		jbe	loc_90FE0
		fxch	st(1)
		mov	edx, [ebp+arg_14]
		mov	[edx], esi
		fstp	dword ptr [ecx+8]
		fstp	dword ptr [ecx+0Ch]
		fstp	dword ptr [ecx+10h]
		jmp	loc_90FF0
; ---------------------------------------------------------------------------

loc_911D0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t  const&,Vector  const&,int,RayDispOutput_t &,CDispCollTri	**)+34Ej
		fld	[ebp+var_1C]
		fcomi	st, st(3)
		fstp	st(3)
		jbe	loc_910A0
		mov	edx, [ebp+arg_10]
		fld	dword ptr [edx+10h]
		fcomip	st, st(3)
		jbe	loc_910B0
		fxch	st(1)
		mov	ecx, [ebp+arg_14]
		mov	[ecx], edi
		fstp	dword ptr [edx+8]
		fstp	dword ptr [edx+0Ch]
		fstp	dword ptr [edx+10h]
		jmp	loc_910C0
_ZN13CDispCollTree35AABBTree_TreeTrisRayBarycentricTestERK5Ray_tRK6VectoriR15RayDispOutput_tPP12CDispCollTri endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_Ray(Ray_t  const&, Vector  const&, RayDispOutput_t &)
_ZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorR15RayDispOutput_t proc near
					; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,RayDispOutput_t &)+6Dp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_912A2
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aDispraytest ; "DispRayTest"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorR15RayDispOutput_tE6tm_fmt ; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,RayDispOutput_t &)::tm_fmt
		mov	dword ptr [esp+1Ch], 236h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_0 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_912A2:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_912C6
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_913B0

loc_912C6:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+B1j
					; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,RayDispOutput_t &)+1F9j
		xor	esi, esi
		test	byte ptr [edi+2Ch], 8
		jnz	short loc_912D7
		test	dword ptr [edi+20h], 4081h
		jnz	short loc_91340

loc_912D7:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+CCj
					; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,RayDispOutput_t &)+178j ...
		cmp	[ebp+var_19], 0
		jz	short loc_91302
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_912EF
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_91302

loc_912EF:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+E4j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_91400

loc_91302:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+DBj
					; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,RayDispOutput_t &)+EDj ...
		test	ebx, ebx
		jz	short loc_91332
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_91332:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+104j
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_91340:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+D5j
		lea	eax, [ebp+var_20]
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_20], 0
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_8]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+10h], edx
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		call	_ZN13CDispCollTree35AABBTree_TreeTrisRayBarycentricTestERK5Ray_tRK6VectoriR15RayDispOutput_tPP12CDispCollTri ; CDispCollTree::AABBTree_TreeTrisRayBarycentricTest(Ray_t	 const&,Vector	const&,int,RayDispOutput_t &,CDispCollTri **)
		mov	eax, [ebp+var_20]
		test	eax, eax
		jz	loc_912D7
		movzx	edx, word ptr [eax]
		mov	esi, 1
		mov	ecx, [ebp+arg_C]
		and	dx, 1FFh
		mov	[ecx], dx
		movzx	edx, word ptr [eax+4]
		and	dx, 1FFh
		mov	[ecx+2], dx
		movzx	eax, word ptr [eax+2]
		and	ax, 1FFh
		mov	[ecx+4], ax
		jmp	loc_912D7
; ---------------------------------------------------------------------------
		align 10h

loc_913B0:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aDispraytest ; "DispRayTest"
		jz	short loc_913EA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aDispraytest ; "DispRayTest"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_913EA:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+1BBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_912C6
; ---------------------------------------------------------------------------
		align 10h

loc_91400:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+FCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_91430
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_9141E:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+235j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_91302
; ---------------------------------------------------------------------------
		align 10h

loc_91430:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,RayDispOutput_t &)+20Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_9141E
_ZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorR15RayDispOutput_t endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_91444:				; CODE XREF: .text:0009147Ej
		test	ebx, ebx
		jz	short loc_91474
		mov	edx, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [ebx+54h]

loc_91474:				; CODE XREF: .text:00091446j
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		jmp	short loc_91444

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_Ray(Ray_t  const&, RayDispOutput_t &)
_ZN13CDispCollTree12AABBTree_RayERK5Ray_tR15RayDispOutput_t proc near
					; CODE XREF: CDispInfo::TestRay(Ray_t  const&,float,float,float	&,Vector2D *,Vector2D *)+FBp

var_14		= byte ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 30h
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [esp+10h], 3D000000h
		mov	esi, [ebp+arg_0]
		lea	eax, [ebx+10h]
		mov	[esp+8], ebx
		mov	[esp+0Ch], eax
		lea	eax, [esi+14h]
		mov	[esp+4], eax
		lea	eax, [esi+4]
		mov	[esp], eax
		call	_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_f ; IsBoxIntersectingRay(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,float)
		xor	edx, edx
		test	al, al
		jz	short loc_914F4
		lea	edx, [ebp+var_14]
		xor	eax, eax
		fldz

loc_914C0:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,RayDispOutput_t &)+57j
		fld	dword ptr [ebx+eax+10h]
		fcomi	st, st(1)
		jz	short loc_91500
		fdivr	ds:flt_1EBCFC
		fstp	dword ptr [edx+eax]

loc_914D1:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,RayDispOutput_t &)+89j
		add	eax, 4
		cmp	eax, 0Ch
		jnz	short loc_914C0
		fstp	st
		mov	eax, [ebp+arg_8]
		mov	[esp+8], edx
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+0Ch], eax
		call	_ZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorR15RayDispOutput_t ; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector	 const&,RayDispOutput_t	&)
		mov	edx, eax

loc_914F4:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,RayDispOutput_t &)+37j
		add	esp, 30h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_91500:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,RayDispOutput_t &)+46j
		fstp	st
		mov	dword ptr [edx+eax], 7F7FFFFFh
		jmp	short loc_914D1
_ZN13CDispCollTree12AABBTree_RayERK5Ray_tR15RayDispOutput_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t	 const&, Vector	 const&, int, CBaseTrace *, bool, CDispCollTri **)
_ZN13CDispCollTree24AABBTree_TreeTrisRayTestERK5Ray_tRK6VectoriP10CBaseTracebPP12CDispCollTri proc near
					; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+17Ep

var_6D8		= xmmword ptr -6D8h
var_6C0		= dword	ptr -6C0h
var_6B9		= byte ptr -6B9h
var_6A8		= xmmword ptr -6A8h
var_698		= xmmword ptr -698h
var_688		= xmmword ptr -688h
var_678		= xmmword ptr -678h
var_668		= xmmword ptr -668h
var_658		= xmmword ptr -658h
var_648		= xmmword ptr -648h
var_638		= xmmword ptr -638h
var_628		= xmmword ptr -628h
var_588		= dword	ptr -588h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= byte ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 6ECh
		mov	eax, [ebp+arg_8]
		fld	ds:flt_1EBF78
		mov	ebx, [ebp+arg_0]
		movzx	ecx, [ebp+arg_14]
		movss	xmm0, dword ptr	[eax+4]
		movss	xmm7, dword ptr	[eax]
		mov	edx, [ebp+arg_C]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_628], xmm0
		movss	xmm0, dword ptr	[eax+8]
		mov	eax, [ebp+arg_4]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_638], xmm0
		mov	[ebp+var_6B9], cl
		shufps	xmm7, xmm7, 0
		fld	dword ptr [eax+30h]
		movss	xmm0, dword ptr	[eax]
		fadd	st, st(1)
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_658], xmm0
		movss	xmm0, dword ptr	[eax+4]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_668], xmm0
		movss	xmm0, dword ptr	[eax+8]
		fstp	dword ptr [ebp+var_648]
		shufps	xmm0, xmm0, 0
		fld	dword ptr [eax+34h]
		movaps	[ebp+var_678], xmm0
		movss	xmm0, dword ptr	[ebp+var_648]
		fadd	st, st(1)
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_688], xmm0
		fstp	dword ptr [ebp+var_648]
		fadd	dword ptr [eax+38h]
		movss	xmm0, dword ptr	[ebp+var_648]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_698], xmm0
		fstp	dword ptr [ebp+var_648]
		movss	xmm0, dword ptr	[ebp+var_648]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_6A8], xmm0
		mov	eax, [ebx+98h]
		mov	[ebp+var_588], edx
		mov	dword ptr [ebp+var_648], 0
		movaps	[ebp+var_6D8], xmm7
		mov	[ebp+var_6C0], eax
		jmp	short loc_91617
; ---------------------------------------------------------------------------

loc_91610:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+24Fj
		mov	edx, [ebp+esi*4+var_588]

loc_91617:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+FEj
		cmp	[ebp+var_6C0], edx
		jle	loc_91770
		lea	ecx, [edx+edx*2]
		add	esi, 1
		shl	ecx, 5
		add	ecx, [ebx+90h]
		movaps	xmm3, xmmword ptr [ecx+10h]
		movaps	xmm5, xmmword ptr [ecx]
		movaps	xmm2, xmmword ptr [ecx+40h]
		movaps	xmm4, xmmword ptr [ecx+30h]
		subps	xmm3, [ebp+var_668]
		subps	xmm5, [ebp+var_658]
		subps	xmm2, [ebp+var_668]
		movaps	xmm1, xmmword ptr [ecx+20h]
		subps	xmm4, [ebp+var_658]
		movaps	xmm0, xmmword ptr [ecx+50h]
		subps	xmm3, [ebp+var_698]
		subps	xmm1, [ebp+var_678]
		subps	xmm5, [ebp+var_688]
		addps	xmm2, [ebp+var_698]
		subps	xmm0, [ebp+var_678]
		addps	xmm4, [ebp+var_688]
		mulps	xmm3, [ebp+var_628]
		mulps	xmm5, [ebp+var_6D8]
		mulps	xmm2, [ebp+var_628]
		subps	xmm1, [ebp+var_6A8]
		mulps	xmm4, [ebp+var_6D8]
		movaps	xmm7, xmm3
		addps	xmm0, [ebp+var_6A8]
		movaps	xmm6, xmm5
		mulps	xmm1, [ebp+var_638]
		maxps	xmm7, xmm2
		minps	xmm2, xmm3
		mulps	xmm0, [ebp+var_638]
		maxps	xmm6, xmm4
		minps	xmm4, xmm5
		movaps	[ebp+var_648], xmm7
		movaps	xmm7, xmm1
		minps	xmm6, [ebp+var_648]
		maxps	xmm7, xmm0
		maxps	xmm4, xmm2
		minps	xmm0, xmm1
		minps	xmm6, xmm7
		maxps	xmm4, xmm0
		minps	xmm6, xmmword ptr ds:Four_Ones
		maxps	xmm4, xmmword ptr ds:Four_Zeros
		cmpleps	xmm4, xmm6
		movmskps ecx, xmm4
		test	ecx, ecx
		jz	short loc_9175D
		shl	edx, 2
		test	cl, 1
		jz	short loc_91727
		lea	eax, [edx+1]
		add	edi, 1
		mov	[ebp+edi*4+var_588], eax

loc_91727:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+208j
		test	cl, 2
		jz	short loc_91739
		lea	eax, [edx+2]
		add	edi, 1
		mov	[ebp+edi*4+var_588], eax

loc_91739:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+21Aj
		test	cl, 4
		jz	short loc_9174B
		lea	eax, [edx+3]
		add	edi, 1
		mov	[ebp+edi*4+var_588], eax

loc_9174B:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+22Cj
		and	ecx, 8
		jz	short loc_9175D
		add	edi, 1
		add	edx, 4
		mov	[ebp+edi*4+var_588], edx

loc_9175D:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+200j
					; CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t	 const&,Vector	const&,int,CBaseTrace *,bool,CDispCollTri **)+23Ej
		cmp	edi, esi
		jge	loc_91610

loc_91765:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+26Ej
		add	esp, 6ECh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_91770:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+10Dj
		cmp	esi, edi
		mov	dword ptr [ebp+var_648], edi
		mov	eax, [ebp+var_6C0]
		jg	short loc_91765
		movzx	ecx, [ebp+var_6B9]
		mov	dword ptr [ebp+var_628], esi
		mov	dword ptr [ebp+var_638], ecx
		mov	ecx, eax
		mov	eax, edx
		jmp	short loc_917B3
; ---------------------------------------------------------------------------
		align 10h

loc_917A0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+3D5j
		mov	ecx, dword ptr [ebp+var_628]
		mov	eax, [ebp+ecx*4+var_588]
		mov	ecx, [ebx+98h]

loc_917B3:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+287j
		mov	edx, [ebx+0A0h]
		sub	eax, ecx
		lea	eax, [edx+eax*4]
		mov	edx, [ebx+80h]
		movsx	ecx, word ptr [eax]
		movsx	eax, word ptr [eax+2]
		lea	ecx, [ecx+ecx*2]
		lea	eax, [eax+eax*2]
		lea	edi, [edx+eax*8]
		mov	eax, dword ptr [ebp+var_638]
		lea	esi, [edx+ecx*8]
		mov	edx, [ebx+70h]
		mov	[esp+10h], eax
		movzx	eax, word ptr [esi+2]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	[esp+0Ch], eax
		movzx	eax, word ptr [esi+4]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	[esp+8], eax
		movzx	eax, word ptr [esi]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	edx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z24IntersectRayWithTriangleRK5Ray_tRK6VectorS4_S4_b ; IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jb	short loc_91848
		mov	ecx, [ebp+arg_10]
		fld	dword ptr [ecx+2Ch]
		fcomip	st, st(1)
		jbe	short loc_91850
		mov	edx, [ebp+arg_18]
		fstp	dword ptr [ecx+2Ch]
		mov	[edx], esi
		jmp	short loc_91852
; ---------------------------------------------------------------------------
		align 4

loc_91848:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+31Fj
		fstp	st
		jmp	short loc_91852
; ---------------------------------------------------------------------------
		align 10h

loc_91850:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+329j
		fstp	st

loc_91852:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+333j
					; CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t	 const&,Vector	const&,int,CBaseTrace *,bool,CDispCollTri **)+33Aj
		mov	ecx, dword ptr [ebp+var_638]
		mov	eax, [ebx+70h]
		mov	[esp+10h], ecx
		movzx	edx, word ptr [edi+2]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [eax+edx*4]
		mov	[esp+0Ch], edx
		movzx	edx, word ptr [edi+4]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [eax+edx*4]
		mov	[esp+8], edx
		movzx	edx, word ptr [edi]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	eax, [eax+edx*4]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z24IntersectRayWithTriangleRK5Ray_tRK6VectorS4_S4_b ; IntersectRayWithTriangle(Ray_t  const&,Vector  const&,Vector  const&,Vector  const&,bool)
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jb	short loc_918C8
		mov	edx, [ebp+arg_10]
		fld	dword ptr [edx+2Ch]
		fcomip	st, st(1)
		jbe	short loc_918D0
		mov	eax, [ebp+arg_18]
		fstp	dword ptr [edx+2Ch]
		mov	[eax], edi
		jmp	short loc_918D2
; ---------------------------------------------------------------------------
		align 8

loc_918C8:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+39Dj
		fstp	st
		jmp	short loc_918D2
; ---------------------------------------------------------------------------
		align 10h

loc_918D0:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+3A7j
		fstp	st

loc_918D2:				; CODE XREF: CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri **)+3B1j
					; CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t	 const&,Vector	const&,int,CBaseTrace *,bool,CDispCollTri **)+3BAj
		add	dword ptr [ebp+var_628], 1
		mov	edx, dword ptr [ebp+var_648]
		cmp	dword ptr [ebp+var_628], edx
		jle	loc_917A0
		add	esp, 6ECh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CDispCollTree24AABBTree_TreeTrisRayTestERK5Ray_tRK6VectoriP10CBaseTracebPP12CDispCollTri endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_Ray(Ray_t  const&, Vector  const&, CBaseTrace	*, bool)
_ZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorP10CBaseTraceb proc near
					; CODE XREF: CM_TraceToDispTree<true>(TraceInfo_t *,CDispCollTree *,float,float)+6Ep

var_31		= byte ptr -31h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		movzx	eax, [ebp+arg_10]
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_31], al
		mov	eax, ds:g_Telemetry+0Ch
		test	eax, eax
		jz	short loc_919A9
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aAabbtree_ray ; "AABBTree_Ray"
		mov	[esp+4], edx
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorP10CBaseTracebE6tm_fmt ;	CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,CBaseTrace *,bool)::tm_fmt
		mov	dword ptr [esp+1Ch], 28Bh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_0 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], edx
		mov	[ebp+var_2C], ecx

loc_919A9:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+38j
		mov	esi, dword ptr g_VProfCurrentProfile+100Ch
		test	esi, esi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_919CE
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_91AC8

loc_919CE:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+B9j
					; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,CBaseTrace *,bool)+211j
		xor	esi, esi
		test	byte ptr [edi+2Ch], 8
		jnz	short loc_919DF
		test	dword ptr [edi+20h], 4081h
		jnz	short loc_91A48

loc_919DF:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+D4j
					; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,CBaseTrace *,bool)+188j ...
		cmp	[ebp+var_19], 0
		jz	short loc_91A0B
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_919F8
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_91A0B

loc_919F8:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+ECj
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_91B20

loc_91A0B:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+E3j
					; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,CBaseTrace *,bool)+F6j ...
		test	ebx, ebx
		jz	short loc_91A3B
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_91A3B:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+10Dj
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_91A48:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+DDj
		lea	eax, [ebp+var_20]
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_20], 0
		mov	[esp+18h], eax
		movzx	eax, [ebp+var_31]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+10h], ecx
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		call	_ZN13CDispCollTree24AABBTree_TreeTrisRayTestERK5Ray_tRK6VectoriP10CBaseTracebPP12CDispCollTri ;	CDispCollTree::AABBTree_TreeTrisRayTest(Ray_t  const&,Vector  const&,int,CBaseTrace *,bool,CDispCollTri	**)
		mov	eax, [ebp+var_20]
		test	eax, eax
		jz	loc_919DF
		mov	edx, [eax+8]
		mov	esi, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx+18h], edx
		mov	edx, [eax+0Ch]
		mov	[ecx+1Ch], edx
		mov	edx, [eax+10h]
		mov	[ecx+20h], edx
		mov	edx, [eax+14h]
		mov	[ecx+24h], edx
		movzx	eax, word ptr [eax+6]
		shr	ax, 6
		and	eax, 1Fh
		mov	[ecx+34h], ax
		jmp	loc_919DF
; ---------------------------------------------------------------------------
		align 8

loc_91AC8:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aAabbtree_ray ;	"AABBTree_Ray"
		jz	short loc_91B02
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aAabbtree_ray	; "AABBTree_Ray"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_91B02:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+1D3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_919CE
; ---------------------------------------------------------------------------
		align 10h

loc_91B20:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+105j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_91B50
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_91B3E:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+255j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_91A0B
; ---------------------------------------------------------------------------
		align 10h

loc_91B50:				; CODE XREF: CDispCollTree::AABBTree_Ray(Ray_t	const&,Vector  const&,CBaseTrace *,bool)+22Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_91B3E
_ZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorP10CBaseTraceb endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_91B64:				; CODE XREF: .text:00091B9Ej
		test	ebx, ebx
		jz	short loc_91B94
		mov	edx, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [ebx+54h]

loc_91B94:				; CODE XREF: .text:00091B66j
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		jmp	short loc_91B64

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDispCollTree__AABBTree_BuildTreeTrisInSphere_r(int, int,	float, int, int, __int16)
_ZN13CDispCollTree32AABBTree_BuildTreeTrisInSphere_rERK6VectorfiPtt proc near
					; CODE XREF: CDispCollTree::AABBTree_GetTrisInSphere(Vector  const&,float,ushort *,int)+31p

var_5D0		= dword	ptr -5D0h
var_5C8		= dword	ptr -5C8h
var_5C4		= dword	ptr -5C4h
var_5C0		= dword	ptr -5C0h
var_5BB		= byte ptr -5BBh
var_5BA		= word ptr -5BAh
var_5B8		= xmmword ptr -5B8h
var_5A8		= xmmword ptr -5A8h
var_598		= xmmword ptr -598h
var_580		= dword	ptr -580h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= word ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5FCh
		mov	dword ptr [ebp+var_598], 0
		fld	[ebp+arg_8]
		fmul	st, st
		mov	eax, [ebp+arg_4]
		movzx	ecx, [ebp+arg_14]
		mov	esi, [ebp+arg_0]
		mov	edx, [ebp+arg_C]
		movss	xmm6, dword ptr	[eax]
		movss	xmm5, dword ptr	[eax+4]
		movss	xmm4, dword ptr	[eax+8]
		fstp	[ebp+var_5C0]
		shufps	xmm6, xmm6, 0
		shufps	xmm5, xmm5, 0
		mov	eax, [ebp+var_5C0]
		mov	[ebp+var_5BA], cx
		shufps	xmm4, xmm4, 0
		mov	ecx, [esi+98h]
		mov	[ebp+var_580], edx
		movaps	xmm3, xmmword ptr ds:Four_Zeros
		movd	xmm0, eax
		xor	eax, eax
		shufps	xmm0, xmm0, 0
		mov	[ebp+var_5C8], ecx
		movaps	[ebp+var_5B8], xmm0
		jmp	short loc_91C2F
; ---------------------------------------------------------------------------
		align 8

loc_91C28:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+16Fj
		mov	edx, [ebp+ebx*4+var_580]

loc_91C2F:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+81j
		cmp	[ebp+var_5C8], edx
		jle	loc_91D28
		lea	edi, [edx+edx*2]
		movaps	xmm7, xmm6
		shl	edi, 5
		add	edi, [esi+90h]
		subps	xmm7, xmmword ptr [edi+30h]
		movaps	xmm2, xmmword ptr [edi]
		movaps	xmm1, xmmword ptr [edi+10h]
		subps	xmm2, xmm6
		movaps	xmm0, xmmword ptr [edi+20h]
		movaps	[ebp+var_598], xmm7
		subps	xmm1, xmm5
		movaps	xmm7, xmm5
		subps	xmm7, xmmword ptr [edi+40h]
		subps	xmm0, xmm4
		maxps	xmm2, xmm3
		maxps	xmm1, xmm3
		movaps	[ebp+var_5A8], xmm7
		movaps	xmm7, xmm4
		subps	xmm7, xmmword ptr [edi+50h]
		maxps	xmm0, xmm3
		maxps	xmm2, [ebp+var_598]
		maxps	xmm1, [ebp+var_5A8]
		maxps	xmm0, xmm7
		mulps	xmm2, xmm2
		mulps	xmm1, xmm1
		mulps	xmm0, xmm0
		addps	xmm1, xmm2
		addps	xmm0, xmm1
		cmpleps	xmm0, [ebp+var_5B8]
		movmskps edi, xmm0
		test	edi, edi
		jz	short loc_91D0A
		shl	edx, 2
		test	edi, 1
		jz	short loc_91CCE
		lea	ecx, [edx+1]
		add	eax, 1
		mov	[ebp+eax*4+var_580], ecx

loc_91CCE:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+11Fj
		test	edi, 2
		jz	short loc_91CE3
		lea	ecx, [edx+2]
		add	eax, 1
		mov	[ebp+eax*4+var_580], ecx

loc_91CE3:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+134j
		test	edi, 4
		jz	short loc_91CF8
		lea	ecx, [edx+3]
		add	eax, 1
		mov	[ebp+eax*4+var_580], ecx

loc_91CF8:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+149j
		and	edi, 8
		jz	short loc_91D0A
		add	eax, 1
		add	edx, 4
		mov	[ebp+eax*4+var_580], edx

loc_91D0A:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+114j
					; CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+15Bj
		add	ebx, 1
		cmp	ebx, eax
		jle	loc_91C28
		xor	edi, edi

loc_91D17:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+32Aj
		add	esp, 5FCh
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_91D28:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+95j
		mov	dword ptr [ebp+var_598], eax
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	dword ptr [ebp+var_5B8], 0
		mov	[ebp+var_5C8], 0
		test	eax, eax
		mov	[ebp+var_5C4], 0
		jz	short loc_91DDE
		lea	edx, [ebp+var_20]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aTris ; "Tris"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13CDispCollTree32AABBTree_BuildTreeTrisInSphere_rERK6VectorfiPttE6tm_fmt ; CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)::tm_fmt
		mov	dword ptr [esp+1Ch], 2E6h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_0 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_20]
		mov	[ebp+var_5C4], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_5C8], eax
		mov	dword ptr [ebp+var_5B8], edx

loc_91DDE:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+1C1j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	[ebp+var_5BB]
		jz	short loc_91E01
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_91F15

loc_91E01:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+24Cj
					; CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+3BEj
		cmp	ebx, dword ptr [ebp+var_598]
		jg	loc_91F75
		movzx	ecx, [ebp+var_5BA]
		xor	edi, edi
		mov	dword ptr [ebp+var_5A8], ecx
		lea	esi, [esi+0]

loc_91E20:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+2D0j
		lea	eax, [edi+1]
		cmp	dword ptr [ebp+var_5A8], eax
		mov	[ebp+var_5D0], eax
		jle	short loc_91E67
		mov	eax, [ebp+ebx*4+var_580]
		mov	edx, [esi+0A0h]
		mov	ecx, [ebp+arg_10]
		sub	eax, [esi+98h]
		movzx	edx, word ptr [edx+eax*4]
		mov	[ecx+edi*2], dx
		add	edi, 2
		mov	edx, [esi+0A0h]
		movzx	eax, word ptr [edx+eax*4+2]
		mov	edx, [ebp+var_5D0]
		mov	[ecx+edx*2], ax

loc_91E67:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+28Fj
		add	ebx, 1
		cmp	dword ptr [ebp+var_598], ebx
		jge	short loc_91E20

loc_91E72:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+3D7j
		cmp	[ebp+var_5BB], 0
		jz	short loc_91EC2
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_91E8D
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_91EC2

loc_91E8D:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+2E2j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jnz	short loc_91EC2
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jnz	loc_91F63
		mov	eax, dword ptr g_VProfCurrentProfile+1014h

loc_91EB6:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+3D0j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h

loc_91EC2:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+2D9j
					; CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+2EBj ...
		mov	eax, dword ptr [ebp+var_5B8]
		test	eax, eax
		jz	loc_91D17
		mov	edx, [ebp+var_5C4]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_5C8]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, dword ptr [ebp+var_5B8]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]
		add	esp, 5FCh
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_91F15:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+25Bj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aTris ;	"Tris"
		jz	short loc_91F4F
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aTris	; "Tris"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_91F4F:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+380j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_91E01
; ---------------------------------------------------------------------------

loc_91F63:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+30Bj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax
		jmp	loc_91EB6
; ---------------------------------------------------------------------------

loc_91F75:				; CODE XREF: CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)+267j
		xor	edi, edi
		jmp	loc_91E72
_ZN13CDispCollTree32AABBTree_BuildTreeTrisInSphere_rERK6VectorfiPtt endp

; ---------------------------------------------------------------------------
		mov	edi, [ebp-5B8h]
		mov	ebx, eax
		test	edi, edi
		jz	short loc_91FC0
		mov	edx, [ebp-5C4h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-5C8h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-5B8h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_91FC0:				; CODE XREF: .text:00091F86j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDispCollTree__AABBTree_GetTrisInSphere(int, int,	float, int, __int16)
_ZN13CDispCollTree24AABBTree_GetTrisInSphereERK6VectorfPti proc	near
					; CODE XREF: CVirtualTerrain::GetTrianglesInSphere(void	*,Vector  const&,float,virtualmeshtrianglelist_t *)+37p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= word ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		movzx	eax, [ebp+arg_10]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+14h], eax	; __int16
		mov	eax, [ebp+arg_C]
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax	; float
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_ZN13CDispCollTree32AABBTree_BuildTreeTrisInSphere_rERK6VectorfiPtt ; CDispCollTree::AABBTree_BuildTreeTrisInSphere_r(Vector  const&,float,int,ushort *,ushort)
		leave
		retn
_ZN13CDispCollTree24AABBTree_GetTrisInSphereERK6VectorfPti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,	Vector	const&)
_ZN13CDispCollTree22AABBTree_IntersectAABBERK6VectorS2_	proc near
					; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+170p

var_610		= dword	ptr -610h
var_60C		= byte ptr -60Ch
var_608		= xmmword ptr -608h
var_5F8		= xmmword ptr -5F8h
var_5E8		= xmmword ptr -5E8h
var_5CC		= dword	ptr -5CCh
var_5C8		= xmmword ptr -5C8h
var_5B4		= dword	ptr -5B4h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_43		= byte ptr -43h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 63Ch
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		test	byte ptr [ebx+2Ch], 4
		jnz	loc_92200
		mov	[ebp+var_5B4], 0
		fld	dword ptr [edx]
		xor	esi, esi
		fld	dword ptr [eax]
		fld	dword ptr [edx+4]
		fstp	dword ptr [ebp+var_5C8]
		fld	dword ptr [eax+4]
		movss	xmm6, dword ptr	[ebp+var_5C8]
		fld	dword ptr [edx+8]
		shufps	xmm6, xmm6, 0
		xor	edx, edx
		fst	dword ptr [ebp+var_5E8]
		fld	dword ptr [eax+8]
		movss	xmm0, dword ptr	[ebp+var_5E8]
		fld	st(3)
		shufps	xmm0, xmm0, 0
		fadd	st, st(5)
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fxch	st(1)
		fst	[ebp+var_40]
		fld	dword ptr [ebp+var_5C8]
		movaps	[ebp+var_5C8], xmm0
		fadd	st, st(5)
		fmul	st, st(2)
		fst	[ebp+var_3C]
		fxch	st(4)
		fadd	st, st(3)
		fmulp	st(2), st
		fxch	st(1)
		fst	[ebp+var_38]
		fxch	st(1)
		fsubr	st, st(5)
		fstp	[ebp+var_34]
		fxch	st(2)
		fsubr	st, st(3)
		fstp	[ebp+var_30]
		fsubr	st(1), st
		fxch	st(1)
		fstp	[ebp+var_2C]
		fxch	st(3)
		fstp	[ebp+var_610]
		fxch	st(1)
		mov	eax, [ebp+var_610]
		fstp	[ebp+var_610]
		movd	xmm7, eax
		mov	eax, [ebp+var_610]
		fstp	[ebp+var_610]
		shufps	xmm7, xmm7, 0
		movd	xmm0, eax
		mov	eax, [ebp+var_610]
		fstp	[ebp+var_610]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_5E8], xmm0
		mov	ecx, [ebx+98h]
		movd	xmm0, eax
		mov	eax, [ebp+var_610]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_5F8], xmm0
		mov	[ebp+var_5CC], ecx
		movd	xmm0, eax
		xor	eax, eax
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_608], xmm0
		jmp	short loc_92137
; ---------------------------------------------------------------------------
		align 10h

loc_92130:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+1EAj
		mov	edx, [ebp+esi*4+var_5B4]

loc_92137:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+11Dj
		cmp	edx, [ebp+var_5CC]
		jge	loc_92210
		lea	edi, [edx+edx*2]
		movaps	xmm1, [ebp+var_5C8]
		shl	edi, 5
		movaps	xmm5, [ebp+var_5E8]
		add	edi, [ebx+90h]
		movaps	xmm4, [ebp+var_5F8]
		movaps	xmm3, [ebp+var_608]
		movaps	xmm0, xmmword ptr [edi]
		movaps	xmm2, xmmword ptr [edi+10h]
		maxps	xmm1, xmmword ptr [edi+20h]
		minps	xmm5, xmmword ptr [edi+30h]
		minps	xmm4, xmmword ptr [edi+40h]
		minps	xmm3, xmmword ptr [edi+50h]
		maxps	xmm0, xmm7
		maxps	xmm2, xmm6
		cmpleps	xmm1, xmm3
		cmpleps	xmm0, xmm5
		cmpleps	xmm2, xmm4
		andps	xmm0, xmm2
		andps	xmm0, xmm1
		movmskps edi, xmm0
		test	edi, edi
		jz	short loc_921F5
		shl	edx, 2
		test	edi, 1
		jz	short loc_921B9
		lea	ecx, [edx+1]
		add	eax, 1
		mov	[ebp+eax*4+var_5B4], ecx

loc_921B9:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+19Aj
		test	edi, 2
		jz	short loc_921CE
		lea	ecx, [edx+2]
		add	eax, 1
		mov	[ebp+eax*4+var_5B4], ecx

loc_921CE:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+1AFj
		test	edi, 4
		jz	short loc_921E3
		lea	ecx, [edx+3]
		add	eax, 1
		mov	[ebp+eax*4+var_5B4], ecx

loc_921E3:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+1C4j
		and	edi, 8
		jz	short loc_921F5
		add	eax, 1
		add	edx, 4
		mov	[ebp+eax*4+var_5B4], edx

loc_921F5:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+18Fj
					; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)+1D6j
		add	esi, 1
		cmp	esi, eax
		jle	loc_92130

loc_92200:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+19j
		xor	eax, eax

loc_92202:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+49Fj
					; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)+55Ej
		add	esp, 63Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_92210:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+12Dj
		mov	[ebp+var_5CC], eax
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	dword ptr [ebp+var_5E8], 0
		mov	dword ptr [ebp+var_5F8], 0
		test	eax, eax
		mov	dword ptr [ebp+var_5F8+4], 0
		jz	short loc_922C6
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aTris ; "Tris"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13CDispCollTree22AABBTree_IntersectAABBERK6VectorS2_E6tm_fmt ; CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)::tm_fmt
		mov	dword ptr [esp+1Ch], 334h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_0 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	dword ptr [ebp+var_5F8+4], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	dword ptr [ebp+var_5F8], eax
		mov	dword ptr [ebp+var_5E8], edx

loc_922C6:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+239j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_922EA
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_92573

loc_922EA:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+2C5j
					; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)+5ACj
		cmp	esi, [ebp+var_5CC]
		jle	loc_923B1
		jmp	loc_92508
; ---------------------------------------------------------------------------
		align 10h

loc_92300:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+460j
		movsx	eax, word ptr [ebp+var_5C8]
		mov	ecx, [ebx+70h]
		lea	eax, [eax+eax*2]
		lea	eax, [edi+eax*8]
		mov	edx, [eax+8]
		mov	[ebp+var_54], edx
		mov	edx, [eax+0Ch]
		mov	[ebp+var_50], edx
		mov	edx, [eax+10h]
		mov	[ebp+var_4C], edx
		mov	edx, [eax+14h]
		mov	[ebp+var_48], edx
		movzx	edx, byte ptr [eax+6]
		and	edx, 7
		mov	[ebp+var_43], dl
		movzx	edx, byte ptr [eax+6]
		mov	dword ptr [esp+18h], 0 ; float
		shr	dl, 3
		and	edx, 7
		mov	[ebp+var_44], dl
		lea	edx, [ebp+var_54]
		mov	[esp+14h], edx	; int
		movzx	edx, word ptr [eax+2]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]
		mov	[esp+10h], edx	; int
		movzx	edx, word ptr [eax+4]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]
		mov	[esp+0Ch], edx	; int
		movzx	eax, word ptr [eax]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		mov	[esp+8], eax	; int
		lea	ecx, [ebp+var_34]
		lea	eax, [ebp+var_40]
		mov	[esp+4], ecx	; int
		mov	[esp], eax	; int
		call	_Z25IsBoxIntersectingTriangleRK6VectorS1_S1_S1_S1_RK8cplane_tf ; IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,Vector  const&,cplane_t	const&,float)
		test	al, al
		jnz	loc_92476
		add	esi, 1
		cmp	esi, [ebp+var_5CC]
		jg	loc_92508

loc_923B1:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+2E0j
		mov	edx, [ebp+esi*4+var_5B4]
		mov	edi, [ebx+0A0h]
		mov	ecx, [ebx+70h]
		sub	edx, [ebx+98h]
		lea	edx, [edi+edx*4]
		mov	edi, [ebx+80h]
		movsx	eax, word ptr [edx]
		movzx	edx, word ptr [edx+2]
		lea	eax, [eax+eax*2]
		lea	eax, [edi+eax*8]
		mov	word ptr [ebp+var_5C8],	dx
		mov	edx, [eax+8]
		mov	[ebp+var_54], edx
		mov	edx, [eax+0Ch]
		mov	[ebp+var_50], edx
		mov	edx, [eax+10h]
		mov	[ebp+var_4C], edx
		mov	edx, [eax+14h]
		mov	[ebp+var_48], edx
		movzx	edx, byte ptr [eax+6]
		and	edx, 7
		mov	[ebp+var_43], dl
		movzx	edx, byte ptr [eax+6]
		mov	dword ptr [esp+18h], 0 ; float
		shr	dl, 3
		and	edx, 7
		mov	[ebp+var_44], dl
		lea	edx, [ebp+var_54]
		mov	[esp+14h], edx	; int
		movzx	edx, word ptr [eax+2]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]
		mov	[esp+10h], edx	; int
		movzx	edx, word ptr [eax+4]
		and	edx, 1FFh
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]
		mov	[esp+0Ch], edx	; int
		movzx	eax, word ptr [eax]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		mov	[esp+8], eax	; int
		lea	ecx, [ebp+var_34]
		lea	eax, [ebp+var_40]
		mov	[esp+4], ecx	; int
		mov	[esp], eax	; int
		call	_Z25IsBoxIntersectingTriangleRK6VectorS1_S1_S1_S1_RK8cplane_tf ; IsBoxIntersectingTriangle(Vector  const&,Vector  const&,Vector	 const&,Vector	const&,Vector  const&,cplane_t	const&,float)
		test	al, al
		jz	loc_92300

loc_92476:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+38Cj
		cmp	[ebp+var_19], 0
		jz	short loc_924A2
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_9248F
		mov	esi, dword ptr g_VProfCurrentProfile+100Ch
		test	esi, esi
		jz	short loc_924A2

loc_9248F:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+473j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_925C1

loc_924A2:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+46Aj
					; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)+47Dj ...
		mov	ecx, dword ptr [ebp+var_5E8]
		mov	eax, 1
		test	ecx, ecx
		jz	loc_92202

loc_924B5:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+558j
		mov	ecx, dword ptr [ebp+var_5F8+4]
		mov	[ebp+var_60C], al
		mov	edx, dword ptr [ebp+var_5F8]
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	ecx, dword ptr [ebp+var_5E8]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [ecx+54h]
		movzx	eax, [ebp+var_60C]
		add	esp, 63Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_92508:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+2E6j
					; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)+39Bj
		cmp	[ebp+var_19], 0
		jz	short loc_9255E
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_92521
		mov	ebx, dword ptr g_VProfCurrentProfile+100Ch
		test	ebx, ebx
		jz	short loc_9255E

loc_92521:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+505j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jnz	short loc_9255E
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_925F7
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_92552:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+5ECj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h

loc_9255E:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+4FCj
					; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)+50Fj ...
		mov	edx, dword ptr [ebp+var_5E8]
		xor	eax, eax
		test	edx, edx
		jnz	loc_924B5
		jmp	loc_92202
; ---------------------------------------------------------------------------

loc_92573:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+2D4j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aTris ;	"Tris"
		jz	short loc_925AD
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aTris	; "Tris"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_925AD:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+56Ej
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_922EA
; ---------------------------------------------------------------------------

loc_925C1:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+48Cj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_925F0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_925DF:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+5E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_924A2
; ---------------------------------------------------------------------------

loc_925F0:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+5C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_925DF
; ---------------------------------------------------------------------------

loc_925F7:				; CODE XREF: CDispCollTree::AABBTree_IntersectAABB(Vector  const&,Vector  const&)+52Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_92552
_ZN13CDispCollTree22AABBTree_IntersectAABBERK6VectorS2_	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_92603:				; CODE XREF: .text:00092659j
		cmp	dword ptr [ebp-5E8h], 0
		jz	short loc_92644
		mov	edx, [ebp-5F4h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-5F8h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-5E8h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_92644:				; CODE XREF: .text:0009260Aj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_92603
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDispCollTree__ResolveRayPlaneIntersect(int, float, float, int, int, int)
_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper proc near
					; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+C9p
					; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&,Vector  const&,int,CDispCollTri *,CBaseTrace *)+131p ...

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		fld	[ebp+arg_4]
		fld	[ebp+arg_8]
		fldz
		fxch	st(2)
		mov	ecx, [ebp+arg_C]
		fcomi	st, st(2)
		mov	edx, [ebp+arg_14]
		jbe	short loc_926A8
		fxch	st(1)
		xor	eax, eax
		fcomi	st, st(2)
		fstp	st(2)
		jbe	short loc_926AC
		fstp	st
		fstp	st
		jmp	short loc_926A0
; ---------------------------------------------------------------------------
		align 10h

loc_92690:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+BFj
		fstp	st
		fstp	st
		fstp	st
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_926A0:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+26j
					; CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector  const&,float,CDispCollHelper *)+11Cj
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_926A8:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+16j
		fstp	st(2)
		fxch	st(1)

loc_926AC:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+20j
		fldz
		fcomi	st, st(1)
		ja	short loc_92718
		fld	st(1)
		fsub	st, st(3)
		fcomi	st, st(1)
		fxch	st(1)
		setz	bl
		fcomi	st, st(3)
		fstp	st(3)
		mov	eax, ebx
		jnb	short loc_92738
		fstp	st(2)
		fxch	st(1)

loc_926C9:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+D0j
		fldz
		test	al, al
		jnz	short loc_926E0
		fstp	st
		fld	ds:flt_1EBF78
		faddp	st(2), st
		fdivp	st(1), st
		jmp	short loc_926E4
; ---------------------------------------------------------------------------
		align 10h

loc_926E0:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+6Dj
		fstp	st(1)
		fstp	st(1)

loc_926E4:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+7Bj
		fld	dword ptr [edx+4]
		fcomip	st, st(1)
		jbe	short loc_92700
		fstp	dword ptr [edx+4]
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_92700:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+89j
		fstp	st
		jmp	short loc_9270A
; ---------------------------------------------------------------------------
		align 8

loc_92708:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+FCj
		fstp	st

loc_9270A:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+A2j
		pop	ebx
		mov	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_92718:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+50j
		fcomi	st, st(2)
		mov	eax, 1
		ja	loc_92690
		fld	st(1)
		fsubrp	st(3), st
		fcomip	st, st(2)
		fxch	st(1)
		setz	al
		jmp	short loc_926C9
; ---------------------------------------------------------------------------
		align 8

loc_92738:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+63j
		test	bl, bl
		jnz	short loc_92750
		fstp	st(2)
		fxch	st(1)
		fld	ds:flt_1EBF78
		fsubp	st(2), st
		fdivp	st(1), st
		jmp	short loc_92754
; ---------------------------------------------------------------------------
		align 10h

loc_92750:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+DAj
		fstp	st
		fstp	st

loc_92754:				; CODE XREF: CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector	 const&,float,CDispCollHelper *)+EAj
		fld	dword ptr [edx]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_92708
		fstp	dword ptr [edx]
		mov	eax, [ecx]
		mov	[edx+8], eax
		mov	eax, [ecx+4]
		mov	[edx+0Ch], eax
		mov	eax, [ecx+8]
		mov	[edx+10h], eax
		mov	eax, [ebp+arg_10]
		mov	[edx+14h], eax
		mov	eax, 1
		jmp	loc_926A0
_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::PointInBounds(Vector  const&, Vector  const&, Vector  const&, bool)
_ZN13CDispCollTree13PointInBoundsERK6VectorS2_S2_b proc	near
					; CODE XREF: CM_PreStab(TraceInfo_t *,cleaf_t *,Vector &,int,int &)+D0p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		cmp	[ebp+arg_10], 0
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		jnz	short loc_92818
		fld	dword ptr [ecx]
		fsub	dword ptr [edx]
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fld	dword ptr [ecx+4]
		fsub	dword ptr [edx+4]
		fmul	st, st(1)
		fld	dword ptr [ecx+8]
		fsub	dword ptr [edx+8]
		lea	edx, [ebp+var_14]
		fmulp	st(2), st
		fld	dword ptr [eax+8]
		fsub	st, st(1)
		fld	dword ptr [eax+0Ch]
		fsub	st, st(3)
		fld	dword ptr [eax+4]
		fsub	st, st(5)
		fstp	[ebp+var_20]
		fxch	st(1)
		fstp	[ebp+var_1C]
		fstp	[ebp+var_18]
		fadd	dword ptr [eax+18h]
		fxch	st(1)
		fadd	dword ptr [eax+1Ch]
		fxch	st(2)
		fadd	dword ptr [eax+14h]
		lea	eax, [ebp+var_20]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	[esp+4], eax
		fstp	[ebp+var_14]
		fstp	[ebp+var_10]
		fstp	[ebp+var_C]
		call	_Z12IsPointInBoxRK6VectorS1_S1_	; IsPointInBox(Vector  const&,Vector  const&,Vector  const&)
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_92818:				; CODE XREF: CDispCollTree::PointInBounds(Vector  const&,Vector	 const&,Vector	const&,bool)+17j
		lea	edx, [eax+14h]
		add	eax, 4
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_Z12IsPointInBoxRK6VectorS1_S1_	; IsPointInBox(Vector  const&,Vector  const&,Vector  const&)
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_ZN13CDispCollTree13PointInBoundsERK6VectorS2_S2_b endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::GetVirtualMeshList(virtualmeshlist_t *)
_ZN13CDispCollTree18GetVirtualMeshListEP17virtualmeshlist_t proc near
					; CODE XREF: CVirtualTerrain::GetVirtualMesh(void *,virtualmeshlist_t *)+2Bp
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+165p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	eax, [ebp+arg_0]
		push	ebx
		mov	ebx, 1
		mov	edx, [ebp+arg_4]
		mov	ecx, [eax+28h]
		shl	ebx, cl
		shl	ebx, cl
		lea	ecx, [ebx+ebx]
		lea	esi, [ecx+ebx*4]
		mov	[edx+8], ecx
		test	ecx, ecx
		mov	[edx+4], esi
		mov	ebx, [eax+78h]
		mov	[edx+0Ch], ebx
		mov	ebx, [eax+70h]
		mov	dword ptr [edx+14h], 0
		mov	[edx], ebx
		movsx	ebx, word ptr [eax+6Ch]
		mov	[edx+10h], ebx
		jle	short loc_928D4
		add	edx, 18h
		shl	esi, 3
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_92890:				; CODE XREF: CDispCollTree::GetVirtualMeshList(virtualmeshlist_t *)+92j
		mov	ebx, [eax+80h]
		movzx	ebx, word ptr [ebx+ecx]
		and	bx, 1FFh
		mov	[edx], bx
		mov	ebx, [eax+80h]
		movzx	ebx, word ptr [ebx+ecx+2]
		and	bx, 1FFh
		mov	[edx+2], bx
		mov	ebx, [eax+80h]
		movzx	ebx, word ptr [ebx+ecx+4]
		add	ecx, 18h
		and	bx, 1FFh
		mov	[edx+4], bx
		add	edx, 6
		cmp	ecx, esi
		jnz	short loc_92890

loc_928D4:				; CODE XREF: CDispCollTree::GetVirtualMeshList(virtualmeshlist_t *)+3Ej
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN13CDispCollTree18GetVirtualMeshListEP17virtualmeshlist_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_CreateLeafs(void)
_ZN13CDispCollTree20AABBTree_CreateLeafsEv proc	near
					; CODE XREF: CDispCollTree::AABBTree_Create(CCoreDispInfo *)+25p

var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, 1
		push	ebx
		mov	ebx, esi
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		mov	ecx, [edi+28h]
		lea	eax, [edi+0A0h]
		mov	[esp], eax
		shl	ebx, cl
		imul	ebx, ebx
		mov	[esp+4], ebx
		call	_ZN10CUtlVectorI13CDispCollLeaf11CHunkMemoryIS0_EE8SetCountEi ;	CUtlVector<CDispCollLeaf,CHunkMemory<CDispCollLeaf>>::SetCount(int)
		mov	eax, [edi+28h]
		mov	edx, 55555556h
		lea	ecx, [eax+eax+2]
		mov	eax, esi
		shl	eax, cl
		mov	ecx, eax
		imul	edx
		lea	eax, [edi+90h]
		sar	ecx, 1Fh
		mov	[esp], eax
		sub	edx, ecx
		sub	edx, ebx
		mov	[esp+4], edx
		call	_ZN10CUtlVectorI13CDispCollNode11CHunkMemoryIS0_EE8SetCountEi ;	CUtlVector<CDispCollNode,CHunkMemory<CDispCollNode>>::SetCount(int)
		mov	ecx, [edi+28h]
		shl	esi, cl
		test	esi, esi
		mov	[ebp+var_24], esi
		jle	loc_929EF
		movzx	eax, word ptr [ebp+var_24]
		mov	[ebp+var_1C], 0
		mov	[ebp+var_20], 0
		add	eax, eax
		mov	[ebp+var_26], ax

loc_92961:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+109j
		movzx	eax, [ebp+var_1C]
		xor	esi, esi
		mov	[ebp+var_1A], ax
		xor	eax, eax
		lea	esi, [esi+0]

loc_92970:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+F5j
					; CDispCollTree::AABBTree_CreateLeafs(void)+11Ej
		mov	edx, [ebp+var_20]
		test	edx, edx
		jz	short loc_92990
		mov	edx, [ebp+var_20]
		mov	ecx, 1
		nop

loc_92980:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+AEj
		mov	ebx, edx
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edx, 1
		jnz	short loc_92980

loc_92990:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+95j
		mov	edx, [edi+0A0h]
		add	esi, 1
		movzx	ecx, [ebp+var_1A]
		mov	[edx+eax*4], cx
		add	ecx, 1
		cmp	esi, [ebp+var_24]
		mov	edx, [edi+0A0h]
		mov	[edx+eax*4+2], cx
		jz	short loc_929D7
		test	esi, esi
		jz	short loc_929F7
		mov	edx, esi
		xor	eax, eax
		xor	ecx, ecx
		db	66h
		nop

loc_929C0:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+EEj
		mov	ebx, edx
		and	ebx, 1
		shl	ebx, cl
		add	ecx, 2
		or	eax, ebx
		sar	edx, 1
		jnz	short loc_929C0
		add	[ebp+var_1A], 2
		jmp	short loc_92970
; ---------------------------------------------------------------------------

loc_929D7:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+D2j
		movzx	eax, [ebp+var_26]
		add	[ebp+var_20], 1
		add	[ebp+var_1C], ax
		mov	eax, [ebp+var_24]
		cmp	[ebp+var_20], eax
		jnz	loc_92961

loc_929EF:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+64j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_929F7:				; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+D6j
		add	[ebp+var_1A], 2
		xor	eax, eax
		jmp	loc_92970
_ZN13CDispCollTree20AABBTree_CreateLeafsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&, Vector  const&, int, CDispCollTri	*, CBaseTrace *)
_ZN13CDispCollTree21SweepAABBTriIntersectERK5Ray_tRK6VectoriP12CDispCollTriP10CBaseTrace proc near
					; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+500p
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+52Bp

var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_58		= dword	ptr -58h
var_48		= dword	ptr -48h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	[ebp+var_2C], 3F800000h
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_30], 0C7C34FF3h
		mov	esi, [ebp+arg_10]
		fld	dword ptr [edi+14h]
		fmul	dword ptr [esi+0Ch]
		fld	dword ptr [edi+10h]
		fmul	dword ptr [esi+8]
		faddp	st(1), st
		fld	dword ptr [edi+18h]
		fmul	dword ptr [esi+10h]
		faddp	st(1), st
		fld	ds:flt_1EBF78
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_92BA8
		mov	[ebp+var_3C], edi
		mov	ebx, 2
		mov	edi, esi

loc_92A62:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+140j
		movzx	eax, byte ptr [edi+ebx*2+1]
		lea	esi, ds:0[ebx*4]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_3C]
		shr	al, 1
		and	eax, 3
		movzx	eax, word ptr [edi+eax*2]
		fld	dword ptr [edx+ebx*4]
		fld	dword ptr [edx+esi+30h]
		fld	dword ptr [edx+esi+10h]
		lea	edx, [ebx+ebx*2]
		and	eax, 1FFh
		shl	edx, 2
		lea	eax, [eax+eax*2]
		shl	eax, 2
		add	eax, [ecx+70h]
		fld	dword ptr [eax+esi]
		lea	eax, [ebp+var_30]
		mov	[ebp+var_6C], edx
		fld	st
		mov	[esp+14h], eax	; int
		fsub	st, st(3)
		lea	eax, _ZZN13CDispCollTree13AxisPlanesXYZERK5Ray_tP12CDispCollTriP15CDispCollHelperE18g_ImpactNormalVecs[edx] ; CDispCollTree::AxisPlanesXYZ(Ray_t  const&,CDispCollTri *,CDispCollHelper	*)::g_ImpactNormalVecs
		mov	[esp], ecx	; int
		mov	[esp+0Ch], eax	; int
		fsub	st, st(4)
		fxch	st(1)
		fstp	dword ptr [esp+10h] ; int
		fld	st
		fsub	st, st(2)
		fstp	dword ptr [esp+8] ; float
		fstp	dword ptr [esp+4] ; float
		fstp	[ebp+var_68]
		fxch	st(1)
		fstp	[ebp+var_48]
		fstp	[ebp+var_58]
		call	_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper ; CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector  const&,float,CDispCollHelper *)
		mov	edx, [ebp+var_6C]
		fld	[ebp+var_68]
		test	al, al
		fld	[ebp+var_48]
		fld	[ebp+var_58]
		jz	loc_92B90
		movzx	eax, byte ptr [edi+ebx*2+1]
		add	edx, (offset _ZZN13CDispCollTree13AxisPlanesXYZERK5Ray_tP12CDispCollTriP15CDispCollHelperE18g_ImpactNormalVecs+24h)
		mov	ecx, [ebp+arg_0]
		shr	al, 3
		and	eax, 3
		movzx	eax, word ptr [edi+eax*2]
		and	eax, 1FFh
		lea	eax, [eax+eax*2]
		shl	eax, 2
		add	eax, [ecx+70h]
		fld	dword ptr [eax+esi]
		lea	eax, [ebp+var_30]
		mov	[esp+0Ch], edx	; int
		fadd	st(1), st
		fxch	st(2)
		mov	[esp+14h], eax	; int
		mov	[esp], ecx	; int
		fsubrp	st(1), st
		fxch	st(1)
		fstp	dword ptr [esp+10h] ; int
		fadd	st(1), st
		fxch	st(1)
		fstp	dword ptr [esp+8] ; float
		fstp	dword ptr [esp+4] ; float
		call	_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper ; CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector  const&,float,CDispCollHelper *)
		test	al, al
		jz	short loc_92BA8
		sub	ebx, 1
		cmp	ebx, 0FFFFFFFFh
		jnz	loc_92A62
		mov	ecx, [ebp+arg_C]
		mov	esi, edi
		mov	edx, [ebp+arg_0]
		mov	edi, [ebp+var_3C]
		lea	ebx, [ecx+ecx*8]
		lea	ecx, [ebp+var_30]
		add	ebx, ebx
		add	ebx, [edx+0B0h]
		mov	[esp+0Ch], ecx
		movzx	eax, word ptr [ebx]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi0EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	short loc_92BA8
		jmp	short loc_92BB8
; ---------------------------------------------------------------------------
		align 10h

loc_92B90:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+DCj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_92BA8
; ---------------------------------------------------------------------------

loc_92B98:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+392j
		fstp	st
		jmp	short loc_92BA8
; ---------------------------------------------------------------------------

loc_92B9C:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+3A4j
		fstp	st
		jmp	short loc_92BA8
; ---------------------------------------------------------------------------

loc_92BA0:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+3B2j
		fstp	st
		lea	esi, [esi+0]

loc_92BA8:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+42j
					; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&,Vector  const&,int,CDispCollTri *,CBaseTrace *)+138j ...
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_92BB8:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+17Aj
		lea	edx, [ebp+var_30]
		mov	ecx, [ebp+arg_0]
		mov	[esp+0Ch], edx
		movzx	eax, word ptr [ebx+2]
		mov	[esp+4], edi
		mov	[esp], ecx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi0EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	short loc_92BA8
		lea	eax, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		mov	[esp+0Ch], eax
		movzx	eax, word ptr [ebx+4]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi0EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	short loc_92BA8
		lea	ecx, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		mov	[esp+0Ch], ecx
		movzx	eax, word ptr [ebx+6]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi1EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	short loc_92BA8
		lea	ecx, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		mov	[esp+0Ch], ecx
		movzx	eax, word ptr [ebx+8]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi1EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	loc_92BA8
		lea	ecx, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		mov	[esp+0Ch], ecx
		movzx	eax, word ptr [ebx+0Ah]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi1EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	loc_92BA8
		lea	ecx, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		mov	[esp+0Ch], ecx
		movzx	eax, word ptr [ebx+0Ch]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi2EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	loc_92BA8
		lea	ecx, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		mov	[esp+0Ch], ecx
		movzx	eax, word ptr [ebx+0Eh]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi2EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	loc_92BA8
		lea	ecx, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		mov	[esp+0Ch], ecx
		movzx	eax, word ptr [ebx+10h]
		mov	[esp+4], edi
		mov	[esp], edx
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13EdgeCrossAxisILi2EEEbRK5Ray_ttP15CDispCollHelper ; CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)
		test	al, al
		jz	loc_92BA8
		fld	dword ptr [esi+8]
		fldz
		fld	dword ptr [edi+30h]
		fxch	st(1)
		fcomip	st, st(2)
		ja	short loc_92CEC
		fchs

loc_92CEC:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+2D8j
		fld	dword ptr [esi+0Ch]
		fldz
		fld	dword ptr [edi+34h]
		fxch	st(1)
		fcomip	st, st(2)
		ja	short loc_92CFC
		fchs

loc_92CFC:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+2E8j
		fld	dword ptr [esi+10h]
		fldz
		fld	dword ptr [edi+38h]
		fxch	st(1)
		fcomip	st, st(2)
		ja	short loc_92D0C
		fchs

loc_92D0C:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+2F8j
		fld	dword ptr [esi+14h]
		fxch	st(5)
		lea	eax, [ebp+var_30]
		fmul	st, st(6)
		mov	edx, [ebp+arg_0]
		fsubr	st, st(5)
		fxch	st(3)
		fmul	st, st(4)
		fsubp	st(3), st
		fmul	st, st(1)
		fsubp	st(2), st
		fld	dword ptr [edi]
		fld	dword ptr [edi+4]
		fld	dword ptr [edi+8]
		mov	[esp+14h], eax	; int
		lea	eax, [esi+8]
		fstp	[ebp+var_3C]
		fxch	st(5)
		fstp	dword ptr [esp+10h] ; int
		mov	[esp+0Ch], eax	; int
		fld	dword ptr [edi+14h]
		fadd	st, st(5)
		fmul	st, st(4)
		fld	dword ptr [edi+10h]
		fadd	st, st(2)
		fmul	st, st(7)
		faddp	st(1), st
		fld	[ebp+var_3C]
		fadd	dword ptr [edi+18h]
		mov	[esp], edx	; int
		fmul	st, st(3)
		faddp	st(1), st
		fsub	st, st(3)
		fstp	dword ptr [esp+8] ; float
		fxch	st(3)
		fmulp	st(4), st
		fxch	st(4)
		fmulp	st(2), st
		fxch	st(2)
		faddp	st(1), st
		fxch	st(2)
		fmul	[ebp+var_3C]
		faddp	st(2), st
		fsubp	st(1), st
		fstp	dword ptr [esp+4] ; float
		call	_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper ; CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector  const&,float,CDispCollHelper *)
		test	al, al
		jz	loc_92BA8
		fld	[ebp+var_30]
		fld	[ebp+var_2C]
		fcomi	st, st(1)
		ja	short loc_92DAA
		fsubr	st, st(1)
		fabs
		fld	ds:flt_1EBD88
		fcomip	st, st(1)
		fstp	st
		jbe	loc_92B98
		jmp	short loc_92DAC
; ---------------------------------------------------------------------------

loc_92DAA:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+382j
		fstp	st

loc_92DAC:				; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+398j
		fld	ds:flt_1EBF7C
		fcomip	st, st(1)
		jz	loc_92B9C
		mov	ecx, [ebp+arg_14]
		fld	dword ptr [ecx+2Ch]
		fcomip	st, st(1)
		jbe	loc_92BA0
		mov	eax, [ebp+var_28]
		fldz
		fcomi	st, st(1)
		fcmovbe	st, st(1)
		fstp	st(1)
		mov	[ecx+18h], eax
		mov	eax, [ebp+var_24]
		fstp	dword ptr [ecx+2Ch]
		mov	[ecx+1Ch], eax
		mov	eax, [ebp+var_20]
		mov	[ecx+20h], eax
		mov	eax, [ebp+var_1C]
		mov	[ecx+24h], eax
		movzx	eax, word ptr [esi+6]
		shr	ax, 6
		and	eax, 1Fh
		mov	[ecx+34h], ax
		jmp	loc_92BA8
_ZN13CDispCollTree21SweepAABBTriIntersectERK5Ray_tRK6VectoriP12CDispCollTriP10CBaseTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::~CDispCollTree()
_ZN13CDispCollTreeD2Ev proc near	; CODE XREF: DispCollTrees_Free(CDispCollTree *)+2Cp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+24h]
		mov	dword ptr [ebx], (offset _ZTV13CDispCollTree+8)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_92E29
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	g_DispCollTriCache
		call	_ZN16CDataManagerBase15DestroyResourceEP13memhandle_t__	; CDataManagerBase::DestroyResource(memhandle_t__ *)

loc_92E29:				; CODE XREF: CDispCollTree::~CDispCollTree()+17j
		mov	eax, [ebx+70h]
		lea	esi, [ebx+0C4h]
		mov	dword ptr [ebx+78h], 0
		mov	dword ptr [ebx+74h], 0
		mov	dword ptr [ebx+88h], 0
		mov	dword ptr [ebx+84h], 0
		mov	[ebx+7Ch], eax
		mov	eax, [ebx+80h]
		mov	dword ptr [ebx+0D0h], 0
		mov	[ebx+8Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI6VectoriE5PurgeEv ; CUtlMemory<Vector,int>::Purge(void)
		mov	eax, [ebx+0C4h]
		mov	dword ptr [ebx+0D0h], 0
		mov	[ebx+0D4h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI6VectoriE5PurgeEv ; CUtlMemory<Vector,int>::Purge(void)
		mov	eax, [ebx+0C4h]
		mov	[ebx+0D4h], eax
		mov	[esp], esi
		lea	esi, [ebx+0B0h]
		call	_ZN10CUtlMemoryI6VectoriE5PurgeEv ; CUtlMemory<Vector,int>::Purge(void)
		mov	dword ptr [ebx+0BCh], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI17CDispCollTriCacheiE5PurgeEv ;	CUtlMemory<CDispCollTriCache,int>::Purge(void)
		mov	eax, [ebx+0B0h]
		mov	[ebx+0C0h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI17CDispCollTriCacheiE5PurgeEv ;	CUtlMemory<CDispCollTriCache,int>::Purge(void)
		mov	eax, [ebx+0A0h]
		mov	dword ptr [ebx+0A8h], 0
		mov	dword ptr [ebx+0A4h], 0
		mov	dword ptr [ebx+98h], 0
		mov	dword ptr [ebx+94h], 0
		mov	[ebx+0ACh], eax
		mov	eax, [ebx+90h]
		mov	dword ptr [ebx+88h], 0
		mov	dword ptr [ebx+84h], 0
		mov	dword ptr [ebx+78h], 0
		mov	[ebx+9Ch], eax
		mov	eax, [ebx+80h]
		mov	dword ptr [ebx+74h], 0
		mov	[ebx+8Ch], eax
		mov	eax, [ebx+70h]
		mov	[ebx+7Ch], eax
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN13CDispCollTreeD2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx+0D0h], 0
		lea	esi, [ebx+0C4h]
		mov	[ebp-0Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI6VectoriE5PurgeEv ; CUtlMemory<Vector,int>::Purge(void)
		mov	edx, [ebx+0C4h]
		mov	[ebx+0D4h], edx
		mov	[esp], esi
		lea	esi, [ebx+0B0h]
		call	_ZN10CUtlMemoryI6VectoriE5PurgeEv ; CUtlMemory<Vector,int>::Purge(void)
		mov	dword ptr [ebx+0BCh], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI17CDispCollTriCacheiE5PurgeEv ;	CUtlMemory<CDispCollTriCache,int>::Purge(void)
		mov	edx, [ebx+0B0h]
		mov	[ebx+0C0h], edx
		mov	[esp], esi
		call	_ZN10CUtlMemoryI17CDispCollTriCacheiE5PurgeEv ;	CUtlMemory<CDispCollTriCache,int>::Purge(void)
		mov	edx, [ebx+0A0h]
		mov	dword ptr [ebx+0A8h], 0
		mov	dword ptr [ebx+0A4h], 0
		mov	dword ptr [ebx+98h], 0
		mov	dword ptr [ebx+94h], 0
		mov	[ebx+0ACh], edx
		mov	edx, [ebx+90h]
		mov	dword ptr [ebx+88h], 0
		mov	dword ptr [ebx+84h], 0
		mov	dword ptr [ebx+78h], 0
		mov	[ebx+9Ch], edx
		mov	edx, [ebx+80h]
		mov	dword ptr [ebx+74h], 0
		mov	[ebx+8Ch], edx
		mov	edx, [ebx+70h]
		mov	[ebx+7Ch], edx
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispCollTrees_Free(CDispCollTree *)
_Z18DispCollTrees_FreeP13CDispCollTree proc near
					; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+62p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	eax, ds:_ZL8g_nTrees ; g_nTrees
		test	eax, eax
		jle	short loc_93069
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_93050:				; CODE XREF: DispCollTrees_Free(CDispCollTree *)+37j
		add	ebx, 1
		mov	[esp], esi
		add	esi, 0F4h
		call	_ZN13CDispCollTreeD2Ev ; CDispCollTree::~CDispCollTree()
		cmp	ds:_ZL8g_nTrees, ebx ; g_nTrees
		jg	short loc_93050

loc_93069:				; CODE XREF: DispCollTrees_Free(CDispCollTree *)+Fj
		mov	ds:_ZL8g_nTrees, 0 ; g_nTrees
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z18DispCollTrees_FreeP13CDispCollTree endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::CDispCollTree(void)
_ZN13CDispCollTreeC2Ev proc near	; CODE XREF: DispCollTrees_Alloc(int)+3Fp

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV13CDispCollTree+8)
		mov	dword ptr [ebx+70h], 0
		mov	dword ptr [ebx+74h], 0
		mov	dword ptr [ebx+78h], 0
		mov	dword ptr [ebx+7Ch], 0
		mov	dword ptr [ebx+80h], 0
		mov	dword ptr [ebx+84h], 0
		mov	dword ptr [ebx+88h], 0
		mov	dword ptr [ebx+8Ch], 0
		mov	dword ptr [ebx+90h], 0
		mov	dword ptr [ebx+94h], 0
		mov	dword ptr [ebx+98h], 0
		mov	dword ptr [ebx+9Ch], 0
		mov	dword ptr [ebx+0A0h], 0
		mov	dword ptr [ebx+0A4h], 0
		mov	dword ptr [ebx+0A8h], 0
		mov	dword ptr [ebx+0ACh], 0
		mov	dword ptr [ebx+0B0h], 0
		mov	dword ptr [ebx+0B4h], 0
		mov	dword ptr [ebx+0B8h], 0
		mov	dword ptr [ebx+0BCh], 0
		mov	dword ptr [ebx+0C0h], 0
		mov	dword ptr [ebx+0C4h], 0
		mov	dword ptr [ebx+0C8h], 0
		mov	dword ptr [ebx+0CCh], 0
		mov	dword ptr [ebx+0D0h], 0
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0

loc_93198:				; CODE XREF: CDispCollTree::CDispCollTree(void)+139j
		lea	edx, [eax+eax*2]
		add	eax, 1
		lea	edx, [ebx+edx*4+30h]
		cmp	eax, 4
		mov	dword ptr [edx], 0
		mov	dword ptr [edx+4], 0
		mov	dword ptr [edx+8], 0
		jnz	short loc_93198
		mov	eax, [ebx+70h]
		mov	dword ptr [ebx+20h], 0FFFFFFFFh
		mov	word ptr [ebx+6Ch], 0
		mov	word ptr [ebx+6Eh], 0
		mov	dword ptr [ebx+60h], 0
		mov	[ebx+7Ch], eax
		mov	eax, [ebx+80h]
		mov	dword ptr [ebx+64h], 0
		mov	dword ptr [ebx+68h], 0
		mov	dword ptr [ebx+4], 7F7FFFFFh
		mov	[ebx+8Ch], eax
		lea	eax, [ebx+0C4h]
		mov	dword ptr [ebx+8], 7F7FFFFFh
		mov	dword ptr [ebx+0Ch], 7F7FFFFFh
		mov	dword ptr [ebx+14h], 0FF7FFFFFh
		mov	dword ptr [ebx+18h], 0FF7FFFFFh
		mov	dword ptr [ebx+1Ch], 0FF7FFFFFh
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+78h], 0
		mov	dword ptr [ebx+74h], 0
		mov	dword ptr [ebx+88h], 0
		mov	dword ptr [ebx+84h], 0
		mov	dword ptr [ebx+0D0h], 0
		mov	[esp], eax
		call	_ZN10CUtlMemoryI6VectoriE5PurgeEv ; CUtlMemory<Vector,int>::Purge(void)
		mov	eax, [ebx+0C4h]
		mov	dword ptr [ebx+24h], 0FFFFFFFFh
		mov	[ebx+0D4h], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN13CDispCollTreeC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispCollTrees_Alloc(int)
_Z19DispCollTrees_Alloci proc near	; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+1CFp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+4], 0
		imul	eax, ebx, 0F4h
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		test	ebx, ebx
		mov	ds:_ZL8g_nTrees, ebx ; g_nTrees
		mov	[ebp+var_1C], eax
		jle	short loc_932D5
		mov	esi, eax
		xor	edi, edi
		nop
		lea	esi, [esi+0]

loc_932B8:				; CODE XREF: DispCollTrees_Alloc(int)+53j
		test	esi, esi
		jz	short loc_932C4
		mov	[esp], esi
		call	_ZN13CDispCollTreeC2Ev ; CDispCollTree::CDispCollTree(void)

loc_932C4:				; CODE XREF: DispCollTrees_Alloc(int)+3Aj
		add	edi, 1
		add	esi, 0F4h
		cmp	ds:_ZL8g_nTrees, edi ; g_nTrees
		jg	short loc_932B8

loc_932D5:				; CODE XREF: DispCollTrees_Alloc(int)+2Dj
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_932F8
		test	ebx, ebx
		jle	short loc_932F8
		mov	ecx, [ebp+var_1C]
		xor	edx, edx
		lea	esi, [esi+0]

loc_932E8:				; CODE XREF: DispCollTrees_Alloc(int)+76j
		mov	[ecx+10h], edx
		add	edx, 1
		add	ecx, 0F4h
		cmp	edx, ebx
		jnz	short loc_932E8

loc_932F8:				; CODE XREF: DispCollTrees_Alloc(int)+5Aj
					; DispCollTrees_Alloc(int)+5Ej
		mov	eax, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19DispCollTrees_Alloci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo *)
_ZN13CDispCollTree21AABBTree_CopyDispDataEP13CCoreDispInfo proc	near
					; CODE XREF: CDispCollTree::AABBTree_Create(CCoreDispInfo *)+1Dp

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	eax, [esi+0Ch]
		lea	edx, [esi+10h]
		mov	[ebp+var_2C], edx
		mov	[ebx+28h], eax
		mov	eax, [esi+18Ch]
		mov	[ebx+20h], eax
		fld	dword ptr [esi+18h]
		fld	dword ptr [esi+24h]
		fsub	st, st(1)
		fld	dword ptr [esi+1Ch]
		fld	dword ptr [esi+28h]
		fsub	st, st(1)
		fld	dword ptr [esi+20h]
		fld	dword ptr [esi+2Ch]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	dword ptr [esi+3Ch]
		fxch	st(3)
		fsubr	dword ptr [esi+40h]
		fxch	st(1)
		fsubr	dword ptr [esi+44h]
		fld	st(1)
		fmul	st, st(6)
		fld	st(1)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(1)
		fmul	st, st(5)
		fxch	st(6)
		fmul	st, st(4)
		fsubp	st(6), st
		fxch	st(3)
		fmulp	st(2), st
		fmulp	st(3), st
		fsubrp	st(2), st
		fld	st
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_40]
		mov	eax, [ebp+var_40]
		movd	xmm0, eax
		xor	eax, eax
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_40], xmm1
		fld	[ebp+var_40]
		fmul	st(1), st
		fxch	st(1)
		fstp	dword ptr [ebx+60h]
		fmul	st(2), st
		fxch	st(2)
		fstp	dword ptr [ebx+64h]
		fmulp	st(1), st
		fstp	dword ptr [ebx+68h]

loc_933E0:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+F7j
		lea	edi, [eax+eax*2]
		add	eax, 1
		shl	edi, 2
		lea	edx, [ebx+edi+30h]
		add	edi, [ebp+var_2C]
		cmp	eax, 4
		lea	ecx, [edi+8]
		mov	edi, [edi+8]
		mov	[edx], edi
		mov	edi, [ecx+4]
		mov	[edx+4], edi
		mov	ecx, [ecx+8]
		mov	[edx+8], ecx
		jnz	short loc_933E0
		mov	ecx, [ebx+28h]
		mov	edi, 1
		mov	eax, edi
		shl	eax, cl
		lea	ecx, [ebx+70h]
		add	eax, 1
		imul	eax, eax
		mov	[ebp+var_34], ecx
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorI6Vector11CHunkMemoryIS0_EE8SetCountEi ;	CUtlVector<Vector,CHunkMemory<Vector>>::SetCount(int)
		mov	ecx, [ebx+28h]
		mov	eax, edi
		mov	dword ptr [ebx+88h], 0
		shl	eax, cl
		mov	edx, eax
		shl	edx, cl
		mov	ecx, edx
		lea	edx, [ebx+80h]
		mov	edi, ecx
		add	edi, edi
		mov	[ebp+var_2C], edx
		jz	loc_934DA
		mov	eax, [ebx+84h]
		cmp	edi, eax
		jg	loc_93740
		mov	eax, [ebx+80h]
		test	edi, edi
		mov	[ebx+88h], edi
		setnle	byte ptr [ebp+var_30]
		mov	[ebx+8Ch], eax

loc_9347D:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+495j
					; CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo *)+4BDj
		xor	edx, edx
		xor	ecx, ecx
		cmp	byte ptr [ebp+var_30], 0
		jz	short loc_934D0
		mov	[ebp+var_30], ebx
		mov	ebx, [ebp+var_2C]
		lea	esi, [esi+0]

loc_93490:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+1BBj
		mov	eax, edx
		add	eax, [ebx]
		jz	short loc_934C3
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	word ptr [eax+4], 0
		mov	word ptr [eax+2], 0
		mov	word ptr [eax],	0

loc_934C3:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+184j
		add	ecx, 1
		add	edx, 18h
		cmp	edi, ecx
		jg	short loc_93490
		mov	ebx, [ebp+var_30]

loc_934D0:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+175j
					; CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo *)+48Bj
		mov	ecx, [ebx+28h]
		mov	eax, 1
		shl	eax, cl

loc_934DA:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+141j
		mov	edi, eax
		imul	edi, eax
		lea	eax, [ebx+0A0h]
		mov	[esp], eax
		mov	[esp+4], edi
		call	_ZN10CUtlVectorI13CDispCollLeaf11CHunkMemoryIS0_EE8SetCountEi ;	CUtlVector<CDispCollLeaf,CHunkMemory<CDispCollLeaf>>::SetCount(int)
		mov	eax, [ebx+28h]
		mov	edx, 1
		lea	ecx, [eax+eax+2]
		shl	edx, cl
		mov	ecx, edx
		mov	edx, 55555556h
		mov	eax, ecx
		sar	ecx, 1Fh
		imul	edx
		lea	eax, [ebx+90h]
		mov	[esp], eax
		sub	edx, ecx
		sub	edx, edi
		mov	edi, 1
		mov	[esp+4], edx
		call	_ZN10CUtlVectorI13CDispCollNode11CHunkMemoryIS0_EE8SetCountEi ;	CUtlVector<CDispCollNode,CHunkMemory<CDispCollNode>>::SetCount(int)
		movzx	ecx, byte ptr [ebx+28h]
		mov	edx, [ebx+98h]
		shl	edi, cl
		mov	ecx, [ebx+0A8h]
		lea	edx, [edx+edx*2]
		lea	eax, [edi+1]
		shl	edx, 5
		imul	eax, eax
		lea	edx, [edx+ecx*4+804h]
		movzx	ecx, byte ptr [ebx+28h]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		shl	edi, cl
		lea	edx, ds:0[edi*4]
		lea	edx, [edx+edi*2]
		lea	eax, [eax+edx*8]
		mov	[ebx+0F0h], eax
		mov	eax, [ebx+78h]
		test	eax, eax
		jle	short loc_935C5
		xor	eax, eax
		mov	[ebp+var_30], esi
		xor	edi, edi
		xor	ecx, ecx
		mov	[ebp+var_2C], ebx
		mov	esi, eax
		lea	esi, [esi+0]

loc_93588:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+2AEj
		mov	ebx, [ebp+var_2C]
		mov	eax, ecx
		mov	edx, edi
		add	esi, 1
		add	ecx, 0Ch
		add	edi, 90h
		add	eax, [ebx+70h]
		mov	ebx, [ebp+var_30]
		add	edx, [ebx+1B8h]
		mov	ebx, [edx+28h]
		mov	[eax], ebx
		mov	ebx, [edx+2Ch]
		mov	[eax+4], ebx
		mov	edx, [edx+30h]
		mov	[eax+8], edx
		mov	eax, [ebp+var_2C]
		cmp	[eax+78h], esi
		jg	short loc_93588
		mov	esi, [ebp+var_30]
		mov	ebx, eax

loc_935C5:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+261j
		mov	eax, [ebx+88h]
		test	eax, eax
		jle	loc_9372A
		xor	eax, eax
		mov	[ebp+var_30], esi
		xor	edi, edi
		mov	esi, eax
		lea	esi, [esi+0]

loc_935E0:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+414j
		lea	edx, [ebp+var_1A]
		mov	[esp+4], esi
		mov	[esp+10h], edx
		mov	edx, [ebp+var_30]
		lea	ecx, [ebp+var_1C]
		lea	eax, [ebp+var_1E]
		mov	[esp+0Ch], ecx
		mov	[esp+8], eax
		mov	[esp], edx
		call	_ZN13CCoreDispInfo13GetTriIndicesEiRtS0_S0_ ; CCoreDispInfo::GetTriIndices(int,ushort &,ushort &,ushort	&)
		mov	ecx, [ebx+80h]
		movzx	edx, [ebp+var_1E]
		fldz
		movzx	eax, word ptr [ecx+edi]
		and	dx, 1FFh
		and	ax, 0FE00h
		or	eax, edx
		mov	[ecx+edi], ax
		mov	ecx, [ebx+80h]
		movzx	edx, [ebp+var_1C]
		movzx	eax, word ptr [ecx+edi+2]
		and	dx, 1FFh
		and	ax, 0FE00h
		or	eax, edx
		mov	[ecx+edi+2], ax
		mov	ecx, [ebx+80h]
		movzx	edx, [ebp+var_1A]
		movzx	eax, word ptr [ecx+edi+4]
		and	dx, 1FFh
		and	ax, 0FE00h
		or	eax, edx
		mov	[ecx+edi+4], ax
		mov	edx, [ebp+var_30]
		mov	ecx, [ebx+80h]
		mov	eax, [edx+1BCh]
		movzx	edx, byte ptr [eax+esi*8+6]
		movzx	eax, word ptr [ecx+edi+6]
		and	edx, 1Fh
		shl	edx, 6
		and	ax, 0F83Fh
		or	eax, edx
		mov	[ecx+edi+6], ax
		xor	eax, eax
		mov	ecx, [ebp+var_30]
		mov	[ebp+var_44], ebx
		mov	ecx, [ecx+1B8h]
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebx+80h]
		add	ecx, edi

loc_936A4:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+3B4j
		movzx	edx, word ptr [ecx+eax*2]
		add	eax, 1
		mov	ebx, [ebp+var_2C]
		and	edx, 1FFh
		lea	edx, [edx+edx*8]
		shl	edx, 4
		cmp	eax, 3
		fadd	dword ptr [ebx+edx+8Ch]
		jnz	short loc_936A4
		fld	ds:flt_1EBF80
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		mov	ebx, [ebp+var_44]
		jbe	short loc_93738
		or	word ptr [ecx+6], 400h

loc_936DD:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+42Ej
		mov	eax, [ebx+80h]
		add	esi, 1
		add	eax, edi
		or	word ptr [eax+6], 40h
		mov	eax, [ebp+var_34]
		mov	[esp+4], eax
		mov	eax, [ebx+80h]
		add	eax, edi
		mov	[esp], eax
		call	_ZN12CDispCollTri9CalcPlaneER11CDispVectorI6VectorE ; CDispCollTri::CalcPlane(CDispVector<Vector> &)
		mov	edx, [ebp+var_34]
		mov	[esp+4], edx
		mov	eax, [ebx+80h]
		add	eax, edi
		add	edi, 18h
		mov	[esp], eax
		call	_ZN12CDispCollTri10FindMinMaxER11CDispVectorI6VectorE ;	CDispCollTri::FindMinMax(CDispVector<Vector> &)
		cmp	[ebx+88h], esi
		jg	loc_935E0

loc_9372A:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+2BDj
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_93738:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+3C5j
		or	word ptr [ecx+6], 200h
		jmp	short loc_936DD
; ---------------------------------------------------------------------------

loc_93740:				; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+14Fj
		mov	edx, edi
		mov	[ebp+var_3C], ecx
		sub	edx, eax
		mov	dword ptr [esp+4], 0
		lea	eax, [edx+edx*2]
		mov	[ebp+var_30], edx
		shl	eax, 3
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, eax
		mov	[ebx+80h], eax
		mov	eax, [ebp+var_30]
		mov	[ebx+8Ch], edx
		mov	[ebx+84h], eax
		mov	eax, [ebx+88h]
		test	eax, eax
		mov	[ebp+var_44], eax
		setnle	[ebp+var_35]
		test	edi, edi
		setnle	byte ptr [ebp+var_30]
		add	eax, edi
		cmp	byte ptr [ebp+var_30], 0
		mov	[ebx+88h], eax
		mov	ecx, [ebp+var_3C]
		jz	loc_934D0
		cmp	[ebp+var_35], 0
		jz	loc_9347D
		mov	eax, [ebp+var_44]
		mov	[esp+4], edx	; src
		lea	eax, [eax+eax*2]
		mov	[ebp+var_44], eax
		shl	eax, 3
		mov	[esp+8], eax	; n
		lea	eax, [edi+ecx*4]
		lea	eax, [edx+eax*8]
		mov	[esp], eax	; dest
		call	memmove
		jmp	loc_9347D
_ZN13CDispCollTree21AABBTree_CopyDispDataEP13CCoreDispInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_Create(CCoreDispInfo *)
_ZN13CDispCollTree15AABBTree_CreateEP13CCoreDispInfo proc near
					; CODE XREF: CDispCollTree::Create(CCoreDispInfo *)+4j

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edx, [eax+188h]
		mov	[ebx+2Ch], edx
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN13CDispCollTree21AABBTree_CopyDispDataEP13CCoreDispInfo ; CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)
		mov	[esp], ebx
		call	_ZN13CDispCollTree20AABBTree_CreateLeafsEv ; CDispCollTree::AABBTree_CreateLeafs(void)
		mov	[esp], ebx
		call	_ZN13CDispCollTree19AABBTree_CalcBoundsEv ; CDispCollTree::AABBTree_CalcBounds(void)
		add	esp, 14h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
_ZN13CDispCollTree15AABBTree_CreateEP13CCoreDispInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::Create(CCoreDispInfo *)
_ZN13CDispCollTree6CreateEP13CCoreDispInfo proc	near
					; DATA XREF: .rodata:`vtable for'CDispCollTreeo
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN13CDispCollTree15AABBTree_CreateEP13CCoreDispInfo ; CDispCollTree::AABBTree_Create(CCoreDispInfo *)
_ZN13CDispCollTree6CreateEP13CCoreDispInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AddPlane(Vector  const&)
_ZN13CDispCollTree8AddPlaneERK6Vector proc near
					; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisZ(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+F4p
					; CDispCollTree::Cache_EdgeCrossAxisY(Vector  const&,Vector  const&,Vector  const&,CDispCollTri	*,ushort &)+114p ...

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[ebp+var_34], eax
		mov	eax, [ebx+4]
		mov	[ebp+var_30], eax
		mov	eax, [ebx+8]
		mov	[ebp+var_2C], eax
		mov	eax, [ecx+0D0h]
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_34]
		mov	[esp], eax
		call	_Z6Hash12PKv	; Hash12(void  const*)
		fld	[ebp+var_2C]
		mov	esi, eax
		fchs
		fld	[ebp+var_30]
		lea	eax, [ebp+var_24]
		fchs
		mov	[esp], eax
		fld	[ebp+var_34]
		fchs
		fstp	[ebp+var_24]
		fstp	[ebp+var_20]
		fstp	[ebp+var_1C]
		call	_Z6Hash12PKv	; Hash12(void  const*)
		xor	eax, esi
		cmp	ds:g_DispCollPlaneIndexHash+16h, 0
		jz	loc_93A08
		and	eax, dword ptr ds:g_DispCollPlaneIndexHash+18h
		mov	[ebp+var_3C], eax

loc_938A1:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+1E3j
		mov	edx, [ebp+var_3C]
		mov	ecx, dword ptr ds:g_DispCollPlaneIndexHash
		lea	eax, [edx+edx*4]
		lea	edi, [ecx+eax*4]
		mov	[ebp+var_40], ecx
		mov	esi, [edi+0Ch]
		test	esi, esi
		jle	loc_93A48
		fld	[ebp+var_34]
		xor	edx, edx
		fld	[ebp+var_30]
		fld	[ebp+var_2C]
		fld	st(2)
		mov	ecx, [edi]
		fchs
		fld	st(2)
		fchs
		fld	st(2)
		fchs

loc_938D7:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+135j
		mov	eax, edx
		shl	eax, 4
		add	eax, ecx
		fld	dword ptr [eax]
		fcomi	st, st(6)
		jnz	short loc_93958
		fld	dword ptr [eax+4]
		fcomip	st, st(6)
		jnz	short loc_93958
		fld	dword ptr [eax+8]
		fcomip	st, st(5)
		jnz	short loc_93958
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_93914
; ---------------------------------------------------------------------------
		align 8

loc_93908:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+1C8j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_93914:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+D0j
					; CDispCollTree::AddPlane(Vector  const&)+21Aj
		cmp	esi, edx
		jz	short loc_93977
		mov	eax, [ebp+var_3C]
		mov	ecx, [ebp+var_40]
		fld	dword ptr [ebx]
		shl	eax, 10h
		or	eax, edx
		mov	edx, eax
		and	eax, 0FFFFh
		shr	edx, 10h
		shl	eax, 4
		lea	edx, [edx+edx*4]
		add	eax, [ecx+edx*4]
		fld	dword ptr [eax]
		fcomip	st, st(1)
		fstp	st
		jz	loc_93A20

loc_93944:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+1FAj
					; CDispCollTree::AddPlane(Vector  const&)+20Aj
		mov	eax, [eax+0Ch]
		or	ah, 80h

loc_9394A:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+213j
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_93958:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+B2j
					; CDispCollTree::AddPlane(Vector  const&)+B9j ...
		fcomip	st, st(3)
		jz	loc_939E8

loc_93960:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+1BDj
					; CDispCollTree::AddPlane(Vector  const&)+1CEj
		add	edx, 1
		cmp	edx, esi
		jnz	loc_938D7
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_93977:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+E6j
		mov	dword ptr [esp+4], 1
		mov	[esp], edi
		call	_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE10GrowVectorEi	; CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::GrowVector(int)
		mov	[esp+4], esi
		shl	esi, 4
		mov	dword ptr [esp+8], 1
		mov	[esp], edi
		call	_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE18ShiftElementsRightEii ; CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::ShiftElementsRight(int,int)
		add	esi, [edi]
		jz	short loc_939B9
		mov	eax, [ebp+var_34]
		mov	[esi], eax
		mov	eax, [ebp+var_30]
		mov	[esi+4], eax
		mov	eax, [ebp+var_2C]
		mov	[esi+8], eax
		mov	eax, [ebp+var_28]
		mov	[esi+0Ch], eax

loc_939B9:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+170j
		mov	ecx, [ebp+arg_0]
		mov	[esp+8], ebx
		mov	eax, [ecx+0D0h]
		mov	[esp+4], eax
		mov	eax, ecx
		add	eax, 0C4h
		mov	[esp], eax
		call	_ZN10CUtlVectorI6Vector10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_	; CUtlVector<Vector,CUtlMemory<Vector,int>>::InsertBefore(int,Vector const&)
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_939E8:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+12Aj
		fld	dword ptr [eax+4]
		fcomip	st, st(2)
		jnz	loc_93960
		fld	dword ptr [eax+8]
		fcomip	st, st(1)
		jz	loc_93908
		jmp	loc_93960
; ---------------------------------------------------------------------------
		align 8

loc_93A08:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+62j
		xor	edx, edx
		div	dword ptr ds:g_DispCollPlaneIndexHash+0Ch
		mov	[ebp+var_3C], edx
		jmp	loc_938A1
; ---------------------------------------------------------------------------
		align 10h

loc_93A20:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+10Ej
		fld	dword ptr [ebx+4]
		fld	dword ptr [eax+4]
		fcomip	st, st(1)
		fstp	st
		jnz	loc_93944
		fld	dword ptr [ebx+8]
		fld	dword ptr [eax+8]
		fcomip	st, st(1)
		fstp	st
		jnz	loc_93944
		mov	eax, [eax+0Ch]
		jmp	loc_9394A
; ---------------------------------------------------------------------------

loc_93A48:				; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+88j
		xor	edx, edx
		jmp	loc_93914
_ZN13CDispCollTree8AddPlaneERK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::Cache_EdgeCrossAxisZ(Vector  const&, Vector  const&, Vector  const&, CDispCollTri *, unsigned short &)
_ZN13CDispCollTree20Cache_EdgeCrossAxisZERK6VectorS2_S2_P12CDispCollTriRt proc near
					; CODE XREF: CDispCollTree::Cache_Create(CDispCollTri *,int)+E6p
					; CDispCollTree::Cache_Create(CDispCollTri *,int)+180p	...

var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_C]
		mov	ebx, [ebp+arg_14]
		fld	dword ptr [eax]
		fchs
		fld	dword ptr [eax+4]
		fldz
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		fstp	[ebp+var_1C]
		mov	eax, [ebp+var_1C]
		movd	xmm0, eax
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_1C], xmm1
		fld	[ebp+var_1C]
		fmul	st(2), st
		fxch	st(2)
		fst	[ebp+var_14]
		fxch	st(3)
		fmulp	st(2), st
		fxch	st(1)
		fst	[ebp+var_10]
		fxch	st(2)
		fcomi	st, st(1)
		jz	loc_93B60
		fxch	st(2)
		fcomi	st, st(1)
		fstp	st(1)
		jz	loc_93B70
		fld	dword ptr [ecx+4]
		fmul	st, st(1)
		fld	dword ptr [ecx]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [edx+4]
		fmul	st, st(2)
		fld	dword ptr [edx]
		fmul	st, st(4)
		faddp	st(1), st
		fld	st
		fsub	st, st(2)
		fabs
		fld	ds:flt_1EBF78
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_93B20
		fcomip	st, st(1)
		jbe	short loc_93B30
		fxch	st(2)
		fchs
		fstp	[ebp+var_14]
		fchs
		fstp	[ebp+var_10]
		fchs
		jmp	short loc_93B34
; ---------------------------------------------------------------------------
		align 10h

loc_93B20:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisZ(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+B6j
		fstp	st
		fstp	st(1)
		fstp	st(1)
		jmp	short loc_93B34
; ---------------------------------------------------------------------------
		align 10h

loc_93B30:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisZ(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+BAj
		fstp	st(1)
		fstp	st(1)

loc_93B34:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisZ(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+CAj
					; CDispCollTree::Cache_EdgeCrossAxisZ(Vector  const&,Vector  const&,Vector  const&,CDispCollTri	*,ushort &)+D6j
		lea	eax, [ebp+var_14]
		fstp	[ebp+var_C]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN13CDispCollTree8AddPlaneERK6Vector ;	CDispCollTree::AddPlane(Vector	const&)
		mov	[ebx], ax
		add	esp, 34h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_93B60:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisZ(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+7Cj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_93B74
; ---------------------------------------------------------------------------
		align 10h

loc_93B70:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisZ(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+88j
		fstp	st
		fstp	st

loc_93B74:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisZ(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+116j
		mov	word ptr [ebx],	0FFFFh
		add	esp, 34h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_ZN13CDispCollTree20Cache_EdgeCrossAxisZERK6VectorS2_S2_P12CDispCollTriRt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::Cache_EdgeCrossAxisY(Vector  const&, Vector  const&, Vector  const&, CDispCollTri *, unsigned short &)
_ZN13CDispCollTree20Cache_EdgeCrossAxisYERK6VectorS2_S2_P12CDispCollTriRt proc near
					; CODE XREF: CDispCollTree::Cache_Create(CDispCollTri *,int)+BBp
					; CDispCollTree::Cache_Create(CDispCollTri *,int)+155p	...

var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_C]
		mov	ebx, [ebp+arg_14]
		fld	dword ptr [eax]
		fld	dword ptr [eax+8]
		fchs
		fldz
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		fstp	[ebp+var_1C]
		mov	eax, [ebp+var_1C]
		movd	xmm0, eax
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_1C], xmm1
		fld	[ebp+var_1C]
		fmul	st(2), st
		fxch	st(2)
		fst	[ebp+var_14]
		fxch	st(3)
		fmulp	st(2), st
		fxch	st(1)
		fst	[ebp+var_C]
		fxch	st(2)
		fcomi	st, st(1)
		jz	short loc_93C60
		fxch	st(2)
		fcomi	st, st(1)
		fstp	st(1)
		jz	short loc_93C70
		fld	dword ptr [ecx+8]
		fmul	st, st(1)
		fld	dword ptr [ecx]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		fld	dword ptr [edx]
		fmul	st, st(4)
		faddp	st(1), st
		fld	st
		fsub	st, st(2)
		fabs
		fld	ds:flt_1EBF78
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_93C88
		fcomip	st, st(1)
		jbe	short loc_93C90
		fxch	st(2)
		fchs
		fstp	[ebp+var_14]
		fxch	st(1)
		fchs
		fstp	[ebp+var_10]
		fchs
		fstp	[ebp+var_C]
		jmp	short loc_93C97
; ---------------------------------------------------------------------------
		align 10h

loc_93C60:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisY(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+7Cj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_93C74
; ---------------------------------------------------------------------------
		align 10h

loc_93C70:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisY(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+84j
		fstp	st
		fstp	st

loc_93C74:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisY(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+D6j
		mov	word ptr [ebx],	0FFFFh
		add	esp, 34h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_93C88:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisY(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+AEj
		fstp	st
		fstp	st(1)
		fstp	st(1)
		jmp	short loc_93C94
; ---------------------------------------------------------------------------

loc_93C90:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisY(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+B2j
		fstp	st(1)
		fstp	st(1)

loc_93C94:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisY(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+FEj
		fstp	[ebp+var_10]

loc_93C97:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisY(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+C7j
		lea	eax, [ebp+var_14]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN13CDispCollTree8AddPlaneERK6Vector ;	CDispCollTree::AddPlane(Vector	const&)
		mov	[ebx], ax
		add	esp, 34h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
_ZN13CDispCollTree20Cache_EdgeCrossAxisYERK6VectorS2_S2_P12CDispCollTriRt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::Cache_EdgeCrossAxisX(Vector  const&, Vector  const&, Vector  const&, CDispCollTri *, unsigned short &)
_ZN13CDispCollTree20Cache_EdgeCrossAxisXERK6VectorS2_S2_P12CDispCollTriRt proc near
					; CODE XREF: CDispCollTree::Cache_Create(CDispCollTri *,int)+90p
					; CDispCollTree::Cache_Create(CDispCollTri *,int)+12Ap	...

var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_C]
		mov	ebx, [ebp+arg_14]
		fld	dword ptr [eax+4]
		fchs
		fld	dword ptr [eax+8]
		fldz
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		fstp	[ebp+var_1C]
		mov	eax, [ebp+var_1C]
		movd	xmm0, eax
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_1C], xmm1
		fld	[ebp+var_1C]
		fmul	st(2), st
		fxch	st(2)
		fst	[ebp+var_10]
		fxch	st(3)
		fmulp	st(2), st
		fxch	st(1)
		fst	[ebp+var_C]
		fxch	st(2)
		fcomi	st, st(1)
		jz	short loc_93D90
		fxch	st(2)
		fcomi	st, st(1)
		fstp	st(1)
		jz	short loc_93DA0
		fld	dword ptr [ecx+8]
		fmul	st, st(1)
		fld	dword ptr [ecx+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		fld	dword ptr [edx+4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	st
		fsub	st, st(2)
		fabs
		fld	ds:flt_1EBF78
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_93DB8
		fcomip	st, st(1)
		jbe	short loc_93DC0
		fchs
		fstp	[ebp+var_14]
		fxch	st(1)
		fchs
		fstp	[ebp+var_10]
		fchs
		fstp	[ebp+var_C]
		jmp	short loc_93DC7
; ---------------------------------------------------------------------------
		align 10h

loc_93D90:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisX(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+7Dj
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_93DA4
; ---------------------------------------------------------------------------
		align 10h

loc_93DA0:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisX(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+85j
		fstp	st
		fstp	st

loc_93DA4:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisX(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+D6j
		mov	word ptr [ebx],	0FFFFh
		add	esp, 34h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_93DB8:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisX(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+B1j
		fstp	st
		fstp	st(1)
		fstp	st(1)
		jmp	short loc_93DC4
; ---------------------------------------------------------------------------

loc_93DC0:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisX(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+B5j
		fstp	st(1)
		fstp	st(1)

loc_93DC4:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisX(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+FEj
		fstp	[ebp+var_14]

loc_93DC7:				; CODE XREF: CDispCollTree::Cache_EdgeCrossAxisX(Vector	 const&,Vector	const&,Vector  const&,CDispCollTri *,ushort &)+C8j
		lea	eax, [ebp+var_14]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN13CDispCollTree8AddPlaneERK6Vector ;	CDispCollTree::AddPlane(Vector	const&)
		mov	[ebx], ax
		add	esp, 34h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
_ZN13CDispCollTree20Cache_EdgeCrossAxisXERK6VectorS2_S2_P12CDispCollTriRt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::Cache_Create(CDispCollTri *, int)
_ZN13CDispCollTree12Cache_CreateEP12CDispCollTrii proc near
					; CODE XREF: CDispCollTree::Cache(void)+133p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	edi, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		movzx	ecx, word ptr [edi+2]
		mov	eax, [edx+70h]
		movzx	edx, word ptr [edi]
		and	ecx, 1FFh
		lea	ecx, [ecx+ecx*2]
		lea	esi, [eax+ecx*4]
		and	edx, 1FFh
		movzx	ecx, word ptr [edi+4]
		lea	edx, [edx+edx*2]
		fld	dword ptr [esi]
		lea	edx, [eax+edx*4]
		fsub	dword ptr [edx]
		and	ecx, 1FFh
		lea	ecx, [ecx+ecx*2]
		lea	ebx, [eax+ecx*4]
		mov	ecx, [ebp+arg_8]
		fstp	[ebp+var_24]
		fld	dword ptr [esi+4]
		fsub	dword ptr [edx+4]
		lea	eax, [ecx+ecx*8]
		mov	ecx, [ebp+arg_0]
		add	eax, eax
		mov	ecx, [ecx+0B0h]
		fstp	[ebp+var_20]
		fld	dword ptr [esi+8]
		fsub	dword ptr [edx+8]
		mov	[esp+10h], edi
		mov	[esp+0Ch], ebx
		add	eax, ecx
		mov	ecx, [ebp+arg_0]
		mov	[esp+8], edx
		mov	[ebp+var_2C], eax
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		fstp	[ebp+var_1C]
		mov	[esp], ecx
		mov	[ebp+var_30], edx
		mov	[esp+4], eax
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisXERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisX(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	eax, [ebp+var_2C]
		mov	[esp+10h], edi
		mov	edx, [ebp+var_30]
		mov	[esp+0Ch], ebx
		mov	ecx, [ebp+arg_0]
		add	eax, 6
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		mov	[esp+8], edx
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisYERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisY(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	eax, [ebp+var_2C]
		mov	[esp+10h], edi
		mov	edx, [ebp+var_30]
		mov	[esp+0Ch], ebx
		mov	ecx, [ebp+arg_0]
		add	eax, 0Ch
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		mov	[esp+8], edx
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisZERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisZ(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	eax, [ebp+var_2C]
		fld	dword ptr [ebx]
		fsub	dword ptr [esi]
		mov	edx, [ebp+var_30]
		mov	ecx, [ebp+arg_0]
		add	eax, 2
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+4]
		fsub	dword ptr [esi+4]
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+8]
		fsub	dword ptr [esi+8]
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		mov	[esp+10h], edi
		mov	[esp+0Ch], edx
		mov	[esp+8], esi
		mov	[esp], ecx
		fstp	[ebp+var_1C]
		mov	[esp+4], eax
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisXERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisX(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	eax, [ebp+var_2C]
		mov	[esp+10h], edi
		mov	edx, [ebp+var_30]
		mov	[esp+8], esi
		mov	ecx, [ebp+arg_0]
		add	eax, 8
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		mov	[esp+0Ch], edx
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisYERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisY(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	eax, [ebp+var_2C]
		mov	[esp+10h], edi
		mov	ecx, [ebp+arg_0]
		mov	[esp+8], esi
		mov	edx, [ebp+var_30]
		add	eax, 0Eh
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		mov	[esp], ecx
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisZERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisZ(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	edx, [ebp+var_30]
		mov	eax, [ebp+var_2C]
		fld	dword ptr [edx]
		fsub	dword ptr [ebx]
		add	eax, 4
		fstp	[ebp+var_24]
		fld	dword ptr [edx+4]
		fsub	dword ptr [ebx+4]
		fstp	[ebp+var_20]
		fld	dword ptr [edx+8]
		fsub	dword ptr [ebx+8]
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[esp+10h], edi
		mov	[esp+0Ch], esi
		mov	[esp+8], ebx
		mov	[esp+4], eax
		fstp	[ebp+var_1C]
		mov	[esp], edx
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisXERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisX(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	eax, [ebp+var_2C]
		lea	ecx, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[esp+10h], edi
		mov	[esp+0Ch], esi
		mov	[esp+8], ebx
		add	eax, 0Ah
		mov	[esp+4], ecx
		mov	[esp], edx
		mov	[esp+14h], eax
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisYERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisY(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		mov	eax, [ebp+var_2C]
		lea	ecx, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[esp+10h], edi
		mov	[esp+0Ch], esi
		mov	[esp+8], ebx
		add	eax, 10h
		mov	[esp+4], ecx
		mov	[esp+14h], eax
		mov	[esp], edx
		call	_ZN13CDispCollTree20Cache_EdgeCrossAxisZERK6VectorS2_S2_P12CDispCollTriRt ; CDispCollTree::Cache_EdgeCrossAxisZ(Vector	const&,Vector  const&,Vector  const&,CDispCollTri *,ushort &)
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN13CDispCollTree12Cache_CreateEP12CDispCollTrii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::Cache(void)
_ZN13CDispCollTree5CacheEv proc	near	; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+6A6p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	edi, [ebp+arg_0]
		mov	ecx, [edi+28h]
		shl	eax, cl
		shl	eax, cl
		add	eax, eax
		cmp	[edi+0BCh], eax
		jz	loc_941F6
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_38], 0
		test	eax, eax
		mov	[ebp+var_34], 0
		jz	short loc_940E4
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCdispcolltreeC ; "CDispCollTree::Cache"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13CDispCollTree5CacheEvE6tm_fmt	; CDispCollTree::Cache(void)::tm_fmt
		mov	dword ptr [esp+1Ch], 216h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_0 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_34], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_30], edx

loc_940E4:				; CODE XREF: CDispCollTree::Cache(void)+50j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_94108
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_94233

loc_94108:				; CODE XREF: CDispCollTree::Cache(void)+D3j
					; CDispCollTree::Cache(void)+25Cj
		mov	ecx, [edi+28h]
		mov	eax, 1
		shl	eax, cl
		shl	eax, cl
		add	eax, eax
		mov	[ebp+var_2C], eax
		mov	[esp+4], eax
		lea	eax, [edi+0B0h]
		mov	[esp], eax
		call	_ZN10CUtlVectorI17CDispCollTriCache10CUtlMemoryIS0_iEE8SetCountEi ; CUtlVector<CDispCollTriCache,CUtlMemory<CDispCollTriCache,int>>::SetCount(int)
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jle	short loc_94163
		xor	esi, esi
		xor	ebx, ebx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_94140:				; CODE XREF: CDispCollTree::Cache(void)+141j
		mov	[esp+8], ebx
		mov	eax, [edi+80h]
		mov	[esp], edi
		add	eax, esi
		mov	[esp+4], eax
		call	_ZN13CDispCollTree12Cache_CreateEP12CDispCollTrii ; CDispCollTree::Cache_Create(CDispCollTri *,int)
		add	ebx, 1
		add	esi, 18h
		cmp	ebx, [ebp+var_2C]
		jnz	short loc_94140

loc_94163:				; CODE XREF: CDispCollTree::Cache(void)+110j
		mov	eax, dword ptr ds:g_DispCollPlaneIndexHash+0Ch
		test	eax, eax
		mov	[ebp+var_2C], eax
		jle	short loc_9419F
		xor	edi, edi
		xor	esi, esi
		nop
		lea	esi, [esi+0]

loc_94178:				; CODE XREF: CDispCollTree::Cache(void)+17Dj
		mov	ebx, dword ptr ds:g_DispCollPlaneIndexHash
		add	esi, 1
		add	ebx, edi
		add	edi, 14h
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE5PurgeEv ; CUtlMemory<DispCollPlaneIndex_t,int>::Purge(void)
		mov	eax, [ebx]
		cmp	esi, [ebp+var_2C]
		mov	[ebx+10h], eax
		jnz	short loc_94178

loc_9419F:				; CODE XREF: CDispCollTree::Cache(void)+14Dj
		cmp	[ebp+var_19], 0
		jz	short loc_941C0
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_94200
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jnz	short loc_94200
		mov	esi, esi
		lea	edi, [edi+0]

loc_941C0:				; CODE XREF: CDispCollTree::Cache(void)+183j
					; CDispCollTree::Cache(void)+1EDj ...
		mov	edi, [ebp+var_30]
		test	edi, edi
		jz	short loc_941F6
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_30]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_941F6:				; CODE XREF: CDispCollTree::Cache(void)+20j
					; CDispCollTree::Cache(void)+1A5j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94200:				; CODE XREF: CDispCollTree::Cache(void)+18Cj
					; CDispCollTree::Cache(void)+195j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jnz	short loc_941C0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jnz	short loc_94281
		mov	eax, dword ptr g_VProfCurrentProfile+1014h

loc_94225:				; CODE XREF: CDispCollTree::Cache(void)+26Ej
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_941C0
; ---------------------------------------------------------------------------

loc_94233:				; CODE XREF: CDispCollTree::Cache(void)+E2j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCdispcolltreeC	; "CDispCollTree::Cache"
		jz	short loc_9426D
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCdispcolltreeC ; "CDispCollTree::Cache"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_9426D:				; CODE XREF: CDispCollTree::Cache(void)+21Ej
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_94108
; ---------------------------------------------------------------------------

loc_94281:				; CODE XREF: CDispCollTree::Cache(void)+1FEj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax
		jmp	short loc_94225
_ZN13CDispCollTree5CacheEv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_94292:				; CODE XREF: .text:000942DDj
		mov	esi, [ebp-30h]
		test	esi, esi
		jz	short loc_942C8
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-30h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_942C8:				; CODE XREF: .text:00094297j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_94292
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&, Vector  const&, CBaseTrace *)
_ZN13CDispCollTree18AABBTree_SweepAABBERK5Ray_tRK6VectorP10CBaseTrace proc near
					; CODE XREF: CM_TraceToDispTree<false>(TraceInfo_t *,CDispCollTree *,float,float)+63p

var_708		= xmmword ptr -708h
var_6F0		= dword	ptr -6F0h
var_6EC		= dword	ptr -6ECh
var_6E8		= dword	ptr -6E8h
var_6E4		= dword	ptr -6E4h
var_6E0		= dword	ptr -6E0h
var_6DC		= dword	ptr -6DCh
var_6D8		= xmmword ptr -6D8h
var_6C8		= xmmword ptr -6C8h
var_6B8		= xmmword ptr -6B8h
var_6A8		= xmmword ptr -6A8h
var_698		= xmmword ptr -698h
var_688		= xmmword ptr -688h
var_678		= xmmword ptr -678h
var_668		= xmmword ptr -668h
var_658		= xmmword ptr -658h
var_648		= dword	ptr -648h
var_5A8		= dword	ptr -5A8h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 72Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_6DC], 0
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_6E8], 0
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_6E4], 0
		test	eax, eax
		jz	short loc_943A2
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aDisphulltest ; "DispHullTest"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN13CDispCollTree18AABBTree_SweepAABBERK5Ray_tRK6VectorP10CBaseTraceE6tm_fmt ; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)::tm_fmt
		mov	dword ptr [esp+1Ch], 37Eh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_0 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_6E8], eax
		mov	[ebp+var_6E4], edx
		mov	[ebp+var_6DC], edi

loc_943A2:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+45j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_943C7
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_9487A

loc_943C7:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+D2j
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+5E3j
		test	byte ptr [ebx+2Ch], 4
		jnz	loc_94840
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		fld	dword ptr [edi+10h]
		fld	dword ptr [edi+14h]
		fld	dword ptr [edi+18h]
		fld	st(2)
		mov	edi, [ebp+arg_C]
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_6EC]
		mov	eax, [ebp+var_6EC]
		movd	xmm0, eax
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_6EC], xmm1
		fld	[ebp+var_6EC]
		movss	xmm0, dword ptr	[esi+4]
		movss	xmm7, dword ptr	[esi]
		fmul	st(3), st
		fxch	st(3)
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_658], xmm0
		movss	xmm0, dword ptr	[esi+8]
		shufps	xmm7, xmm7, 0
		xor	esi, esi
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_668], xmm0
		fstp	[ebp+var_34]
		fxch	st(1)
		fmul	st, st(2)
		fstp	[ebp+var_30]
		fmulp	st(1), st
		fstp	[ebp+var_2C]
		fld	dword ptr [edi+2Ch]
		fst	[ebp+var_6E0]
		mov	edi, [ebp+arg_4]
		fld	dword ptr ds:_ZL22g_Vec3DispCollEpsilons+4
		fld	dword ptr ds:_ZL22g_Vec3DispCollEpsilons+8
		fld	dword ptr ds:_ZL22g_Vec3DispCollEpsilons ; g_Vec3DispCollEpsilons
		fadd	dword ptr [edi+30h]
		movss	xmm0, dword ptr	[edi]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_678], xmm0
		movss	xmm0, dword ptr	[edi+4]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_688], xmm0
		movss	xmm0, dword ptr	[edi+8]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_698], xmm0
		fstp	[ebp+var_6EC]
		fxch	st(1)
		mov	eax, [ebp+var_6EC]
		fadd	dword ptr [edi+34h]
		mov	[ebp+var_5A8], 0
		mov	[ebp+var_648], 0
		movaps	[ebp+var_6D8], xmm7
		movd	xmm0, eax
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_6A8], xmm0
		fstp	[ebp+var_6EC]
		fadd	dword ptr [edi+38h]
		mov	eax, [ebp+var_6EC]
		fstp	[ebp+var_6EC]
		movd	xmm0, eax
		mov	eax, [ebp+var_6EC]
		shufps	xmm0, xmm0, 0
		movaps	[ebp+var_6B8], xmm0
		mov	ecx, [ebx+98h]
		movd	xmm0, eax
		shufps	xmm0, xmm0, 0
		mov	[ebp+var_6F0], ecx
		xor	ecx, ecx
		movaps	[ebp+var_6C8], xmm0
		jmp	loc_94567
; ---------------------------------------------------------------------------
		align 10h

loc_94560:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+3CBj
		mov	edx, [ebp+esi*4+var_5A8]

loc_94567:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+271j
		cmp	edx, [ebp+var_6F0]
		jge	loc_94740
		lea	eax, [edx+edx*2]
		shl	eax, 5
		add	eax, [ebx+90h]
		movaps	xmm3, xmmword ptr [eax+10h]
		movaps	xmm5, xmmword ptr [eax]
		movaps	xmm2, xmmword ptr [eax+40h]
		movaps	xmm4, xmmword ptr [eax+30h]
		subps	xmm3, [ebp+var_688]
		subps	xmm5, [ebp+var_678]
		subps	xmm2, [ebp+var_688]
		movaps	xmm1, xmmword ptr [eax+20h]
		subps	xmm4, [ebp+var_678]
		movaps	xmm0, xmmword ptr [eax+50h]
		subps	xmm3, [ebp+var_6B8]
		subps	xmm1, [ebp+var_698]
		subps	xmm5, [ebp+var_6A8]
		addps	xmm2, [ebp+var_6B8]
		subps	xmm0, [ebp+var_698]
		addps	xmm4, [ebp+var_6A8]
		mulps	xmm3, [ebp+var_658]
		mulps	xmm5, [ebp+var_6D8]
		mulps	xmm2, [ebp+var_658]
		subps	xmm1, [ebp+var_6C8]
		mulps	xmm4, [ebp+var_6D8]
		movaps	xmm7, xmm3
		addps	xmm0, [ebp+var_6C8]
		movaps	xmm6, xmm5
		mulps	xmm1, [ebp+var_668]
		maxps	xmm7, xmm2
		minps	xmm2, xmm3
		mulps	xmm0, [ebp+var_668]
		maxps	xmm6, xmm4
		minps	xmm4, xmm5
		movaps	[ebp+var_708], xmm7
		movaps	xmm7, xmm1
		minps	xmm6, [ebp+var_708]
		maxps	xmm7, xmm0
		maxps	xmm4, xmm2
		minps	xmm0, xmm1
		minps	xmm6, xmm7
		maxps	xmm4, xmm0
		minps	xmm6, xmmword ptr ds:Four_Ones
		maxps	xmm4, xmmword ptr ds:Four_Zeros
		cmpleps	xmm4, xmm6
		movmskps eax, xmm4
		test	eax, eax
		jz	short loc_946A6
		shl	edx, 2
		test	al, 1
		jz	short loc_94673
		lea	edi, [edx+1]
		add	ecx, 1
		mov	[ebp+ecx*4+var_5A8], edi

loc_94673:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+384j
		test	al, 2
		jz	short loc_94684
		lea	edi, [edx+2]
		add	ecx, 1
		mov	[ebp+ecx*4+var_5A8], edi

loc_94684:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+395j
		test	al, 4
		jz	short loc_94695
		lea	edi, [edx+3]
		add	ecx, 1
		mov	[ebp+ecx*4+var_5A8], edi

loc_94695:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+3A6j
		test	al, 8
		jz	short loc_946A6
		add	ecx, 1
		add	edx, 4
		mov	[ebp+ecx*4+var_5A8], edx

loc_946A6:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+37Dj
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+3B7j
		add	esi, 1
		cmp	esi, ecx
		jle	loc_94560

loc_946B1:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+555j
		fld	[ebp+var_6E0]
		fcomip	st, st(1)
		fstp	st
		setnbe	bl

loc_946BE:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+562j
		cmp	[ebp+var_19], 0
		jz	short loc_946E9
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_946D6
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_946E9

loc_946D6:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+3EBj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_94847

loc_946E9:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+3E2j
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+3F4j ...
		mov	eax, [ebp+var_6DC]
		test	eax, eax
		jz	short loc_9472B
		mov	eax, [ebp+var_6E8]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_6E4]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_6DC]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_9472B:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+411j
		add	esp, 72Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94740:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+28Dj
		fstp	st
		mov	eax, [ebx+24h]
		mov	[ebp+var_648], ecx
		mov	dword ptr [esp], offset	g_DispCollTriCache
		mov	[esp+4], eax
		call	_ZN16CDataManagerBase12LockResourceEP13memhandle_t__ ; CDataManagerBase::LockResource(memhandle_t__ *)
		test	eax, eax
		jz	loc_948C8
		mov	edx, [eax+88h]
		cmp	[eax+0BCh], edx
		jnz	loc_948C8

loc_94775:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+66Bj
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+685j
		cmp	[ebp+var_648], esi
		jl	loc_9481C
		mov	edi, esi
		nop
		lea	esi, [esi+0]

loc_94788:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+536j
		mov	edx, [ebp+edi*4+var_5A8]
		add	edi, 1
		mov	ecx, [ebx+0A0h]
		sub	edx, [ebx+98h]
		lea	edx, [ecx+edx*4]
		mov	ecx, [ebx+80h]
		movsx	esi, word ptr [edx+2]
		movsx	eax, word ptr [edx]
		mov	[esp], ebx
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*8]
		mov	[esp+0Ch], eax
		mov	dword ptr [ebp+var_658], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+14h], edx
		lea	edx, [eax+eax*2]
		lea	edx, [ecx+edx*8]
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_4]
		lea	eax, [ebp+var_34]
		mov	[esp+8], eax
		mov	[esp+4], edx
		call	_ZN13CDispCollTree21SweepAABBTriIntersectERK5Ray_tRK6VectoriP12CDispCollTriP10CBaseTrace ; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&,Vector  const&,int,CDispCollTri *,CBaseTrace *)
		mov	edx, dword ptr [ebp+var_658]
		mov	[esp+0Ch], esi
		mov	eax, [ebp+arg_C]
		mov	[esp], ebx
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+14h], eax
		lea	eax, [ebp+var_34]
		mov	[esp+8], eax
		mov	[esp+4], edx
		call	_ZN13CDispCollTree21SweepAABBTriIntersectERK5Ray_tRK6VectoriP12CDispCollTriP10CBaseTrace ; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&,Vector  const&,int,CDispCollTri *,CBaseTrace *)
		cmp	edi, [ebp+var_648]
		jle	loc_94788

loc_9481C:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+49Bj
		mov	eax, [ebx+24h]
		mov	dword ptr [esp], offset	g_DispCollTriCache
		mov	[esp+4], eax
		call	_ZN16CDataManagerBase14UnlockResourceEP13memhandle_t__ ; CDataManagerBase::UnlockResource(memhandle_t__	*)
		mov	edi, [ebp+arg_C]
		fld	dword ptr [edi+2Ch]
		jmp	loc_946B1
; ---------------------------------------------------------------------------
		align 10h

loc_94840:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+EBj
		xor	ebx, ebx
		jmp	loc_946BE
; ---------------------------------------------------------------------------

loc_94847:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+403j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_9496A
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_94869:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+68Fj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_946E9
; ---------------------------------------------------------------------------

loc_9487A:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+E1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aDisphulltest ;	"DispHullTest"
		jz	short loc_948B4
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aDisphulltest	; "DispHullTest"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_948B4:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+5A5j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_943C7
; ---------------------------------------------------------------------------

loc_948C8:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+47Dj
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+48Fj
		call	ThreadGetCurrentId
		mov	edi, eax
		mov	eax, dword ptr ds:_ZL12s_CacheMutex ; s_CacheMutex
		cmp	edi, eax
		jz	loc_94974
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	_ZL12s_CacheMutex ; s_CacheMutex
		call	ThreadInterlockedAssignIf
		test	al, al
		jnz	short loc_94974
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	_ZL12s_CacheMutex ; s_CacheMutex
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)

loc_94912:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+6A1j
		mov	eax, [ebx+24h]
		mov	dword ptr [esp], offset	g_DispCollTriCache
		mov	[esp+4], eax
		call	_ZN16CDataManagerBase12LockResourceEP13memhandle_t__ ; CDataManagerBase::LockResource(memhandle_t__ *)
		test	eax, eax
		jz	short loc_94983
		mov	edi, [eax+88h]
		cmp	[eax+0BCh], edi
		jnz	short loc_94983

loc_94937:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+72Dj
		mov	eax, dword ptr ds:_ZL12s_CacheMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL12s_CacheMutex+4, eax
		mov	eax, dword ptr ds:_ZL12s_CacheMutex+4
		test	eax, eax
		jnz	loc_94775
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL12s_CacheMutex ; s_CacheMutex
		call	ThreadInterlockedExchange
		jmp	loc_94775
; ---------------------------------------------------------------------------

loc_9496A:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+576j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_94869
; ---------------------------------------------------------------------------

loc_94974:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+5F6j
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+616j
		mov	eax, dword ptr ds:_ZL12s_CacheMutex+4
		add	eax, 1
		mov	dword ptr ds:_ZL12s_CacheMutex+4, eax
		jmp	short loc_94912
; ---------------------------------------------------------------------------

loc_94983:				; CODE XREF: CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+647j
					; CDispCollTree::AABBTree_SweepAABB(Ray_t  const&,Vector  const&,CBaseTrace *)+655j
		mov	[esp], ebx
		call	_ZN13CDispCollTree5CacheEv ; CDispCollTree::Cache(void)
		mov	eax, [ebx+0D0h]
		lea	edx, [eax+eax*2]
		mov	eax, [ebx+0BCh]
		mov	dword ptr [esp], offset	g_DispCollTriCache
		lea	eax, [eax+eax*8]
		add	eax, eax
		lea	eax, [eax+edx*4]
		mov	[esp+4], eax
		call	_ZN16CDataManagerBase14EnsureCapacityEj	; CDataManagerBase::EnsureCapacity(uint)
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	g_DispCollTriCache
		call	_ZN16CDataManagerBase12CreateHandleEb ;	CDataManagerBase::CreateHandle(bool)
		mov	edx, eax
		mov	eax, [ebx+0D0h]
		lea	ecx, [eax+eax*2]
		mov	eax, [ebx+0BCh]
		mov	[esp+8], ebx
		mov	dword ptr [esp], offset	g_DispCollTriCache
		lea	eax, [eax+eax*8]
		add	eax, eax
		lea	eax, [eax+ecx*4]
		mov	[esp+0Ch], eax
		movzx	eax, dx
		mov	[esp+4], eax
		call	_ZN16CDataManagerBase21StoreResourceInHandleEtPvj ; CDataManagerBase::StoreResourceInHandle(ushort,void	*,uint)
		mov	[ebx+24h], eax
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	g_DispCollTriCache
		call	_ZN16CDataManagerBase12LockResourceEP13memhandle_t__ ; CDataManagerBase::LockResource(memhandle_t__ *)
		jmp	loc_94937
_ZN13CDispCollTree18AABBTree_SweepAABBERK5Ray_tRK6VectorP10CBaseTrace endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL12s_CacheMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL12s_CacheMutex+4, eax
		mov	eax, dword ptr ds:_ZL12s_CacheMutex+4
		test	eax, eax
		jnz	short loc_94A3E
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL12s_CacheMutex ; s_CacheMutex
		call	ThreadInterlockedExchange

loc_94A3E:				; CODE XREF: .text:00094A28j
					; .text:00094A95j
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_94A49:				; CODE XREF: .text:00094A99j
		mov	eax, [ebp-6DCh]
		test	eax, eax
		jz	short loc_94A8B
		mov	eax, [ebp-6E8h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-6E4h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-6DCh]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_94A8B:				; CODE XREF: .text:00094A51j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_94A3E
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_94A49
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDataManager<CDispCollTree, CDispCollTree*, bool, CThreadFastMutex>::GetRealSize(void	*)
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE11GetRealSizeEPv proc near
					; DATA XREF: .rodata:`vtable for'CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>o

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		pop	ebp
		mov	edx, [eax+0D0h]
		mov	eax, [eax+0BCh]
		lea	edx, [edx+edx*2]
		lea	eax, [eax+eax*8]
		add	eax, eax
		lea	eax, [eax+edx*4]
		retn
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE11GetRealSizeEPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDataManager<CDispCollTree, CDispCollTree*, bool, CThreadFastMutex>::~CDataManager()
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_DispCollTriCache+45o
					; .rodata:`vtable for'CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE+8)
		mov	[esp], ebx
		call	_ZN16CDataManagerBase8FlushAllEv ; CDataManagerBase::FlushAll(void)
		or	byte ptr [ebx+4Ah], 1
		mov	[ebp+arg_0], ebx
		add	esp, 24h
		pop	ebx
		pop	ebp
		jmp	_ZN16CDataManagerBaseD2Ev ; CDataManagerBase::~CDataManagerBase()
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexED2Ev endp

; ---------------------------------------------------------------------------
		mov	[ebp-0Ch], eax
		mov	[esp], ebx
		call	_ZN16CDataManagerBaseD2Ev ; CDataManagerBase::~CDataManagerBase()
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDataManager<CDispCollTree, CDispCollTree*, bool, CThreadFastMutex>::TryLock(void)
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE7TryLockEv proc near
					; DATA XREF: .rodata:`vtable for'CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		call	ThreadGetCurrentId
		mov	edx, [ebx+4Ch]
		cmp	eax, edx
		jz	short loc_94B40
		lea	edx, [ebx+4Ch]
		mov	dword ptr [esp+8], 0
		mov	[esp], edx
		mov	[esp+4], eax
		call	ThreadInterlockedAssignIf
		mov	edx, eax
		xor	eax, eax
		test	dl, dl
		jnz	short loc_94B40
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94B40:				; CODE XREF: CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>::TryLock(void)+14j
					; CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>::TryLock(void)+33j
		mov	eax, [ebx+50h]
		add	eax, 1
		mov	[ebx+50h], eax
		add	esp, 14h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE7TryLockEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDataManager<CDispCollTree, CDispCollTree*, bool, CThreadFastMutex>::Lock(void)
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE4LockEv proc near
					; DATA XREF: .rodata:`vtable for'CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>o

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		call	ThreadGetCurrentId
		mov	esi, eax
		mov	eax, [ebx+4Ch]
		cmp	esi, eax
		jz	short loc_94B9B
		lea	edi, [ebx+4Ch]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], edi
		call	ThreadInterlockedAssignIf
		test	al, al
		jz	short loc_94BB8

loc_94B9B:				; CODE XREF: CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>::Lock(void)+1Ej
		mov	eax, [ebx+50h]
		add	eax, 1
		mov	[ebx+50h], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_94BB8:				; CODE XREF: CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>::Lock(void)+39j
		pause
		mov	[esp+4], esi
		mov	[esp], edi
		mov	dword ptr [esp+8], 0
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE4LockEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDataManager<CDispCollTree, CDispCollTree*, bool, CThreadFastMutex>::Unlock(void)
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE6UnlockEv proc	near
					; DATA XREF: .rodata:`vtable for'CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+50h]
		sub	edx, 1
		mov	[eax+50h], edx
		mov	edx, [eax+50h]
		test	edx, edx
		jz	short loc_94C00
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94C00:				; CODE XREF: CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>::Unlock(void)+17j
		add	eax, 4Ch
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	ThreadInterlockedExchange
		leave
		retn
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE6UnlockEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDataManager_CDispCollTree_CDispCollTree__bool_CThreadFastMutex____CDataManager(void *)
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexED0Ev proc near
					; DATA XREF: .rodata:`vtable for'CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE+8)
		mov	[esp], ebx
		call	_ZN16CDataManagerBase8FlushAllEv ; CDataManagerBase::FlushAll(void)
		or	byte ptr [ebx+4Ah], 1
		mov	[esp], ebx	; void *
		call	_ZN16CDataManagerBaseD2Ev ; CDataManagerBase::~CDataManagerBase()
		mov	[ebp+arg_0], ebx
		add	esp, 24h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexED0Ev endp

; ---------------------------------------------------------------------------
		mov	[ebp-0Ch], eax
		mov	[esp], ebx
		call	_ZN16CDataManagerBaseD2Ev ; CDataManagerBase::~CDataManagerBase()
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CVProfScope::~CVProfScope()
_ZN11CVProfScopeD2Ev proc near		; CODE XREF: .text:0009143Fp
					; .text:00091B5Fp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax],	0
		jz	short loc_94CA0
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_94C91
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_94CA0

loc_94C91:				; CODE XREF: CVProfScope::~CVProfScope()+16j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_94CB0

loc_94CA0:				; CODE XREF: CVProfScope::~CVProfScope()+Dj
					; CVProfScope::~CVProfScope()+1Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94CB0:				; CODE XREF: CVProfScope::~CVProfScope()+2Ej
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jz	short loc_94CCE
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_94CCE:				; CODE XREF: CVProfScope::~CVProfScope()+54j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CVProfScopeD2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDispCollLeaf, CHunkMemory<CDispCollLeaf>>::SetCount(int)
_ZN10CUtlVectorI13CDispCollLeaf11CHunkMemoryIS0_EE8SetCountEi proc near
					; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+28p
					; CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo *)+1DCp

var_19		= byte ptr -19h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+8], 0
		jz	short loc_94D0F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_94D20
		mov	eax, [ebx]
		mov	[ebx+8], esi
		mov	[ebx+0Ch], eax

loc_94D0F:				; CODE XREF: CUtlVector<CDispCollLeaf,CHunkMemory<CDispCollLeaf>>::SetCount(int)+1Ej
					; CUtlVector<CDispCollLeaf,CHunkMemory<CDispCollLeaf>>::SetCount(int)+79j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94D20:				; CODE XREF: CUtlVector<CDispCollLeaf,CHunkMemory<CDispCollLeaf>>::SetCount(int)+25j
		mov	edi, esi
		mov	dword ptr [esp+4], 0
		sub	edi, eax
		lea	eax, ds:0[edi*4]
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebx+8]
		mov	[ebx+4], edi
		mov	[ebx], eax
		mov	[ebx+0Ch], eax
		lea	edi, [esi+edx]
		test	edx, edx
		setnle	[ebp+var_19]
		test	esi, esi
		mov	[ebx+8], edi
		setnle	cl
		test	cl, cl
		jz	short loc_94D0F
		cmp	[ebp+var_19], 0
		jz	short loc_94D0F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorI13CDispCollLeaf11CHunkMemoryIS0_EE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDispCollNode, CHunkMemory<CDispCollNode>>::SetCount(int)
_ZN10CUtlVectorI13CDispCollNode11CHunkMemoryIS0_EE8SetCountEi proc near
					; CODE XREF: CDispCollTree::AABBTree_CreateLeafs(void)+55p
					; CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo *)+213p

var_19		= byte ptr -19h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+8], 0
		jz	short loc_94DBF
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_94DD0
		mov	eax, [ebx]
		mov	[ebx+8], esi
		mov	[ebx+0Ch], eax

loc_94DBF:				; CODE XREF: CUtlVector<CDispCollNode,CHunkMemory<CDispCollNode>>::SetCount(int)+1Ej
					; CUtlVector<CDispCollNode,CHunkMemory<CDispCollNode>>::SetCount(int)+78j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94DD0:				; CODE XREF: CUtlVector<CDispCollNode,CHunkMemory<CDispCollNode>>::SetCount(int)+25j
		mov	edi, esi
		mov	dword ptr [esp+4], 0
		sub	edi, eax
		lea	eax, [edi+edi*2]
		shl	eax, 5
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebx+8]
		mov	[ebx+4], edi
		mov	[ebx], eax
		mov	[ebx+0Ch], eax
		lea	edi, [esi+edx]
		test	edx, edx
		setnle	[ebp+var_19]
		test	esi, esi
		mov	[ebx+8], edi
		setnle	cl
		test	cl, cl
		jz	short loc_94DBF
		cmp	[ebp+var_19], 0
		jz	short loc_94DBF
		lea	edx, [edx+edx*2]
		mov	[esp+4], eax	; src
		shl	edx, 5
		mov	[esp+8], edx	; n
		lea	edx, [esi+esi*2]
		shl	edx, 5
		add	eax, edx
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorI13CDispCollNode11CHunkMemoryIS0_EE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bool CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&, unsigned short, CDispCollHelper *)
_ZN13CDispCollTree13EdgeCrossAxisILi0EEEbRK5Ray_ttP15CDispCollHelper proc near
					; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+171p
					; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&,Vector  const&,int,CDispCollTri *,CBaseTrace *)+1C1p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	ebx
		sub	esp, 28h
		movzx	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	cx, 0FFFFh
		jz	loc_94EF5
		test	cx, cx
		js	loc_94F00
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+0C4h]
		lea	eax, [ecx+eax*4]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fst	[ebp+var_C]
		fld	dword ptr [eax+8]
		fst	[ebp+var_8]

loc_94E86:				; CODE XREF: CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)+EEj
		fldz
		fst	[ebp+var_10]
		fcomip	st, st(2)
		fld	dword ptr [edx+34h]
		ja	short loc_94E94
		fchs

loc_94E94:				; CODE XREF: CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)+50j
		fldz
		fcomip	st, st(2)
		fld	dword ptr [edx+38h]
		ja	short loc_94E9F
		fchs

loc_94E9F:				; CODE XREF: CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)+5Bj
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fxch	st(3)
		fmul	st, st(5)
		mov	eax, [ebp+arg_C]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_10]
		fsubr	st, st(6)
		fxch	st(2)
		mov	[esp+0Ch], eax	; int
		fmul	st, st(4)
		fsubp	st(2), st
		fxch	st(5)
		fstp	dword ptr [esp+10h] ; int
		fld	dword ptr [edx+18h]
		fadd	st, st(2)
		fmul	st, st(3)
		fld	dword ptr [edx+14h]
		mov	[esp], ebx	; int
		fadd	st, st(6)
		fmul	st, st(5)
		faddp	st(1), st
		fsub	st, st(1)
		fstp	dword ptr [esp+8] ; float
		fxch	st(2)
		fmulp	st(1), st
		fxch	st(2)
		fmulp	st(3), st
		fxch	st(1)
		faddp	st(2), st
		fsubp	st(1), st
		fstp	dword ptr [esp+4] ; float
		call	_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper ; CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector  const&,float,CDispCollHelper *)

loc_94EF5:				; CODE XREF: CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)+1Aj
		add	esp, 28h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_94F00:				; CODE XREF: CDispCollTree::EdgeCrossAxis<0>(Ray_t  const&,ushort,CDispCollHelper *)+23j
		and	ecx, 7FFFh
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+0C4h]
		lea	eax, [ecx+eax*4]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax]
		fchs
		fld	dword ptr [eax+4]
		fchs
		fst	[ebp+var_C]
		fxch	st(2)
		fchs
		fst	[ebp+var_8]
		fxch	st(1)
		fxch	st(2)
		fxch	st(1)
		jmp	loc_94E86
_ZN13CDispCollTree13EdgeCrossAxisILi0EEEbRK5Ray_ttP15CDispCollHelper endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bool CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&, unsigned short, CDispCollHelper *)
_ZN13CDispCollTree13EdgeCrossAxisILi1EEEbRK5Ray_ttP15CDispCollHelper proc near
					; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+205p
					; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&,Vector  const&,int,CDispCollTri *,CBaseTrace *)+227p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	ebx
		sub	esp, 28h
		movzx	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	cx, 0FFFFh
		jz	loc_94FF2
		test	cx, cx
		js	loc_95000
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+0C4h]
		lea	eax, [ecx+eax*4]
		fld	dword ptr [eax]
		fst	[ebp+var_10]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fst	[ebp+var_8]

loc_94F86:				; CODE XREF: CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)+EAj
		fldz
		fst	[ebp+var_C]
		fcomip	st, st(1)
		fld	dword ptr [edx+38h]
		ja	short loc_94F94
		fchs

loc_94F94:				; CODE XREF: CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)+50j
		fldz
		fcomip	st, st(4)
		fld	dword ptr [edx+30h]
		ja	short loc_94F9F
		fchs

loc_94F9F:				; CODE XREF: CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)+5Bj
		fld	dword ptr [edx+8]
		fld	dword ptr [edx]
		fxch	st(3)
		fmul	st, st(4)
		mov	eax, [ebp+arg_C]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_10]
		fsubr	st, st(5)
		fxch	st(2)
		mov	[esp+0Ch], eax	; int
		fmul	st, st(6)
		fsubp	st(2), st
		fxch	st(4)
		fstp	dword ptr [esp+10h] ; int
		fld	dword ptr [edx+10h]
		fadd	st, st(2)
		fmul	st, st(5)
		fld	dword ptr [edx+18h]
		mov	[esp], ebx	; int
		fadd	st, st(5)
		fmul	st, st(4)
		faddp	st(1), st
		fsub	st, st(1)
		fstp	dword ptr [esp+8] ; float
		fxch	st(4)
		fmulp	st(1), st
		fxch	st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fsubrp	st(1), st
		fstp	dword ptr [esp+4] ; float
		call	_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper ; CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector  const&,float,CDispCollHelper *)

loc_94FF2:				; CODE XREF: CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)+1Aj
		add	esp, 28h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95000:				; CODE XREF: CDispCollTree::EdgeCrossAxis<1>(Ray_t  const&,ushort,CDispCollHelper *)+23j
		and	ecx, 7FFFh
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+0C4h]
		lea	eax, [ecx+eax*4]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax]
		fchs
		fst	[ebp+var_10]
		fxch	st(2)
		fchs
		fxch	st(1)
		fchs
		fst	[ebp+var_8]
		jmp	loc_94F86
_ZN13CDispCollTree13EdgeCrossAxisILi1EEEbRK5Ray_ttP15CDispCollHelper endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bool CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&, unsigned short, CDispCollHelper *)
_ZN13CDispCollTree13EdgeCrossAxisILi2EEEbRK5Ray_ttP15CDispCollHelper proc near
					; CODE XREF: CDispCollTree::SweepAABBTriIntersect(Ray_t	 const&,Vector	const&,int,CDispCollTri	*,CBaseTrace *)+273p
					; CDispCollTree::SweepAABBTriIntersect(Ray_t  const&,Vector  const&,int,CDispCollTri *,CBaseTrace *)+299p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	ebx
		sub	esp, 28h
		movzx	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	cx, 0FFFFh
		jz	loc_950E2
		test	cx, cx
		js	loc_950F0
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+0C4h]
		lea	eax, [ecx+eax*4]
		fld	dword ptr [eax]
		fst	[ebp+var_10]
		fld	dword ptr [eax+4]
		fst	[ebp+var_C]
		fld	dword ptr [eax+8]

loc_95076:				; CODE XREF: CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)+EAj
		fldz
		fst	[ebp+var_8]
		fcomip	st, st(3)
		fld	dword ptr [edx+30h]
		ja	short loc_95084
		fchs

loc_95084:				; CODE XREF: CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)+50j
		fldz
		fcomip	st, st(3)
		fld	dword ptr [edx+34h]
		ja	short loc_9508F
		fchs

loc_9508F:				; CODE XREF: CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)+5Bj
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fxch	st(3)
		fmul	st, st(6)
		mov	eax, [ebp+arg_C]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_10]
		fsubr	st, st(4)
		fxch	st(2)
		mov	[esp+0Ch], eax	; int
		fmul	st, st(5)
		fsubp	st(2), st
		fxch	st(3)
		fstp	dword ptr [esp+10h] ; int
		fld	dword ptr [edx+14h]
		fadd	st, st(2)
		fmul	st, st(4)
		fld	dword ptr [edx+10h]
		mov	[esp], ebx	; int
		fadd	st, st(4)
		fmul	st, st(6)
		faddp	st(1), st
		fsub	st, st(1)
		fstp	dword ptr [esp+8] ; float
		fxch	st(3)
		fmulp	st(1), st
		fxch	st(3)
		fmulp	st(1), st
		faddp	st(2), st
		fsubp	st(1), st
		fstp	dword ptr [esp+4] ; float
		call	_ZN13CDispCollTree24ResolveRayPlaneIntersectEffRK6VectorfP15CDispCollHelper ; CDispCollTree::ResolveRayPlaneIntersect(float,float,Vector  const&,float,CDispCollHelper *)

loc_950E2:				; CODE XREF: CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)+1Aj
		add	esp, 28h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_950F0:				; CODE XREF: CDispCollTree::EdgeCrossAxis<2>(Ray_t  const&,ushort,CDispCollHelper *)+23j
		and	ecx, 7FFFh
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+0C4h]
		lea	eax, [ecx+eax*4]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax]
		fchs
		fst	[ebp+var_10]
		fxch	st(2)
		fchs
		fst	[ebp+var_C]
		fxch	st(1)
		fchs
		jmp	loc_95076
_ZN13CDispCollTree13EdgeCrossAxisILi2EEEbRK5Ray_ttP15CDispCollHelper endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispCollTriCache,	int>::Purge(void)
_ZN10CUtlMemoryI17CDispCollTriCacheiE5PurgeEv proc near
					; CODE XREF: CDispCollTree::~CDispCollTree()+BAp
					; CDispCollTree::~CDispCollTree()+CEp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_9514C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_95145
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_95145:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_9514C:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI17CDispCollTriCacheiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<Vector, int>::Purge(void)
_ZN10CUtlMemoryI6VectoriE5PurgeEv proc near ; CODE XREF: CDispCollTree::~CDispCollTree()+70p
					; CDispCollTree::~CDispCollTree()+8Ep ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_9518C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_95185
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_95185:				; CODE XREF: CUtlMemory<Vector,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_9518C:				; CODE XREF: CUtlMemory<Vector,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI6VectoriE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDataManager<CDispCollTree, CDispCollTree*, bool, CThreadFastMutex>::DestroyResourceStorage(void *)
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE22DestroyResourceStorageEPv proc near
					; DATA XREF: .rodata:`vtable for'CDataManager<CDispCollTree,CDispCollTree*,bool,CThreadFastMutex>o

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [ebx+0BCh], 0
		lea	eax, [ebx+0B0h]
		mov	[esp], eax
		call	_ZN10CUtlMemoryI17CDispCollTriCacheiE5PurgeEv ;	CUtlMemory<CDispCollTriCache,int>::Purge(void)
		mov	eax, [ebx+0B0h]
		mov	dword ptr [ebx+0D0h], 0
		mov	[ebx+0C0h], eax
		lea	eax, [ebx+0C4h]
		mov	[esp], eax
		call	_ZN10CUtlMemoryI6VectoriE5PurgeEv ; CUtlMemory<Vector,int>::Purge(void)
		mov	eax, [ebx+0C4h]
		mov	dword ptr [ebx+24h], 0
		mov	[ebx+0D4h], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN12CDataManagerI13CDispCollTreePS0_b16CThreadFastMutexE22DestroyResourceStorageEPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<Vector, CHunkMemory<Vector>>::SetCount(int)
_ZN10CUtlVectorI6Vector11CHunkMemoryIS0_EE8SetCountEi proc near
					; CODE XREF: CDispCollTree::AABBTree_CopyDispData(CCoreDispInfo	*)+118p

var_19		= byte ptr -19h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+8], 0
		jz	short loc_9522F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_95240
		mov	eax, [ebx]
		mov	[ebx+8], esi
		mov	[ebx+0Ch], eax

loc_9522F:				; CODE XREF: CUtlVector<Vector,CHunkMemory<Vector>>::SetCount(int)+1Ej
					; CUtlVector<Vector,CHunkMemory<Vector>>::SetCount(int)+78j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95240:				; CODE XREF: CUtlVector<Vector,CHunkMemory<Vector>>::SetCount(int)+25j
		mov	edi, esi
		mov	dword ptr [esp+4], 0
		sub	edi, eax
		lea	eax, [edi+edi*2]
		shl	eax, 2
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebx+8]
		mov	[ebx+4], edi
		mov	[ebx], eax
		mov	[ebx+0Ch], eax
		lea	edi, [esi+edx]
		test	edx, edx
		setnle	[ebp+var_19]
		test	esi, esi
		mov	[ebx+8], edi
		setnle	cl
		test	cl, cl
		jz	short loc_9522F
		cmp	[ebp+var_19], 0
		jz	short loc_9522F
		lea	edx, [edx+edx*2]
		mov	[esp+4], eax	; src
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [esi+esi*2]
		lea	eax, [eax+edx*4]
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorI6Vector11CHunkMemoryIS0_EE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<DispCollPlaneIndex_t, int>::Purge(void)
_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE5PurgeEv proc near
					; CODE XREF: CDispCollTree::Cache(void)+170p
					; CUtlVector<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>>::RemoveAll(void)+37p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+8]
		test	edx, edx
		js	short loc_952DC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_952D5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_952D5:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_952DC:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CUtlVector<DispCollPlaneIndex_t, CUtlMemory<DispCollPlaneIndex_t, int>>, int>::Purge(void)
_ZN10CUtlMemoryI10CUtlVectorI20DispCollPlaneIndex_tS_IS1_iEEiE5PurgeEv proc near
					; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::~CUtlHash()+57p
					; CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::~CUtlHash()+6Ej

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+8]
		test	ecx, ecx
		js	short loc_9531C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_95315
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_95315:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_9531C:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI10CUtlVectorI20DispCollPlaneIndex_tS_IS1_iEEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CUtlVector<DispCollPlaneIndex_t, CUtlMemory<DispCollPlaneIndex_t, int>>, CUtlMemory<CUtlVector<DispCollPlaneIndex_t, CUtlMemory<DispCollPlaneIndex_t, int>>, int>>::RemoveAll(void)
_ZN10CUtlVectorIS_I20DispCollPlaneIndex_t10CUtlMemoryIS0_iEES1_IS3_iEE9RemoveAllEv proc	near
					; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::~CUtlHash()+4Cp
					; CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+34p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+0Ch]
		sub	esi, 1
		js	short loc_9537E
		lea	edi, [esi+esi*4]
		shl	edi, 2
		lea	esi, [esi+0]

loc_95350:				; CODE XREF: CUtlVector<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>>::RemoveAll(void)+4Cj
		mov	eax, [ebp+arg_0]
		mov	ebx, edi
		sub	esi, 1
		sub	edi, 14h
		add	ebx, [eax]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE5PurgeEv ; CUtlMemory<DispCollPlaneIndex_t,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE5PurgeEv ; CUtlMemory<DispCollPlaneIndex_t,int>::Purge(void)
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_95350

loc_9537E:				; CODE XREF: CUtlVector<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>>::RemoveAll(void)+12j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 0
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CUtlVectorIS_I20DispCollPlaneIndex_t10CUtlMemoryIS0_iEES1_IS3_iEE9RemoveAllEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlHash<DispCollPlaneIndex_t, CPlaneIndexHashFuncs, CPlaneIndexHashFuncs>::~CUtlHash()
_ZN8CUtlHashI20DispCollPlaneIndex_t20CPlaneIndexHashFuncsS1_ED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_DispCollTriCache+ADo

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+0Ch]
		mov	[ebp+var_1C], eax
		test	edx, edx
		mov	[ebp+var_20], edx
		jle	short loc_953D6
		xor	edi, edi
		xor	esi, esi
		lea	esi, [esi+0]

loc_953B0:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::~CUtlHash()+44j
		mov	eax, [ebp+var_1C]
		mov	ebx, edi
		add	esi, 1
		add	edi, 14h
		add	ebx, [eax]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE5PurgeEv ; CUtlMemory<DispCollPlaneIndex_t,int>::Purge(void)
		mov	eax, [ebx]
		cmp	esi, [ebp+var_20]
		mov	[ebx+10h], eax
		jnz	short loc_953B0

loc_953D6:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::~CUtlHash()+17j
		mov	edx, [ebp+var_1C]
		mov	[esp], edx
		call	_ZN10CUtlVectorIS_I20DispCollPlaneIndex_t10CUtlMemoryIS0_iEES1_IS3_iEE9RemoveAllEv ; CUtlVector<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>>::RemoveAll(void)
		mov	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_ZN10CUtlMemoryI10CUtlVectorI20DispCollPlaneIndex_tS_IS1_iEEiE5PurgeEv ; CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Purge(void)
		mov	edx, [ebp+var_1C]
		mov	eax, [edx]
		mov	[edx+10h], eax
		mov	[ebp+arg_0], edx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN10CUtlMemoryI10CUtlVectorI20DispCollPlaneIndex_tS_IS1_iEEiE5PurgeEv ; CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Purge(void)
_ZN8CUtlHashI20DispCollPlaneIndex_t20CPlaneIndexHashFuncsS1_ED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<DispCollPlaneIndex_t, CUtlMemory<DispCollPlaneIndex_t, int>>::ShiftElementsRight(int, int)
_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE18ShiftElementsRightEii proc near
					; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+169p
					; CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+113p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	eax, [ebx+0Ch]
		sub	eax, ecx
		sub	eax, edx
		test	eax, eax
		jg	short loc_95430

loc_95428:				; CODE XREF: CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::ShiftElementsRight(int,int)+22j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95430:				; CODE XREF: CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::ShiftElementsRight(int,int)+16j
		test	edx, edx
		jle	short loc_95428
		mov	ebx, [ebx]
		shl	eax, 4
		add	edx, ecx
		mov	[ebp+arg_8], eax
		mov	eax, ecx
		shl	edx, 4
		shl	eax, 4
		add	eax, ebx
		add	edx, ebx
		pop	ebx
		mov	[ebp+arg_4], eax
		mov	[ebp+arg_0], edx
		pop	ebp
		jmp	memmove
_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE18ShiftElementsRightEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<Vector, int>::Grow(int)
_ZN10CUtlMemoryI6VectoriE4GrowEi proc near
					; CODE XREF: CUtlVector<Vector,CUtlMemory<Vector,int>>::InsertBefore(int,Vector	const&)+9Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_954B3
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_954C0
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_95496
		lea	esi, [esi+0]

loc_95490:				; CODE XREF: CUtlMemory<Vector,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_95490

loc_95496:				; CODE XREF: CUtlMemory<Vector,int>::Grow(int)+2Aj
					; CUtlMemory<Vector,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_954F6

loc_954A5:				; CODE XREF: CUtlMemory<Vector,int>::Grow(int)+94j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_954B3:				; CODE XREF: CUtlMemory<Vector,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_954C0:				; CODE XREF: CUtlMemory<Vector,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_95496
		lea	esi, [esi+0]

loc_954D8:				; CODE XREF: CUtlMemory<Vector,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_954D8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jnz	short loc_954A5

loc_954F6:				; CODE XREF: CUtlMemory<Vector,int>::Grow(int)+43j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI6VectoriE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<Vector, CUtlMemory<Vector,	int>>::InsertBefore(int, Vector	const&)
_ZN10CUtlVectorI6Vector10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_	proc near
					; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+1A4p
					; COcclusionSystem::StitchClippedVertices(Vector *,int)+117p ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_955A0

loc_95532:				; CODE XREF: CUtlVector<Vector,CUtlMemory<Vector,int>>::InsertBefore(int,Vector	const&)+A4j
		lea	ecx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], ecx
		lea	edx, [esi+esi*2]
		sub	ecx, esi
		sub	ecx, 1
		shl	edx, 2
		test	ecx, ecx
		mov	[ebx+10h], eax
		jle	short loc_95574
		lea	ecx, [ecx+ecx*2]
		mov	[ebp+var_1C], edx
		shl	ecx, 2
		mov	[esp+8], ecx	; n
		lea	ecx, [eax+edx]
		mov	[esp+4], ecx	; src
		lea	ecx, [esi+esi*2+3]
		lea	eax, [eax+ecx*4]
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]
		mov	edx, [ebp+var_1C]

loc_95574:				; CODE XREF: CUtlVector<Vector,CUtlMemory<Vector,int>>::InsertBefore(int,Vector	const&)+3Aj
		add	edx, eax
		jz	short loc_95588
		mov	eax, [edi]
		mov	[edx], eax
		mov	eax, [edi+4]
		mov	[edx+4], eax
		mov	eax, [edi+8]
		mov	[edx+8], eax

loc_95588:				; CODE XREF: CUtlVector<Vector,CUtlMemory<Vector,int>>::InsertBefore(int,Vector	const&)+66j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_955A0:				; CODE XREF: CUtlVector<Vector,CUtlMemory<Vector,int>>::InsertBefore(int,Vector	const&)+20j
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI6VectoriE4GrowEi ; CUtlMemory<Vector,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	loc_95532
_ZN10CUtlVectorI6Vector10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<DispCollPlaneIndex_t, int>::Grow(int)
_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE4GrowEi	proc near
					; CODE XREF: CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::GrowVector(int)+27p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_95610
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_95620
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_955F6
		lea	esi, [esi+0]

loc_955F0:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_955F0

loc_955F6:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+2Aj
					; CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jz	short loc_95653

loc_95602:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_95610:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95620:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_955F6
		lea	esi, [esi+0]

loc_95638:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_95638
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jnz	short loc_95602

loc_95653:				; CODE XREF: CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE4GrowEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<DispCollPlaneIndex_t, CUtlMemory<DispCollPlaneIndex_t, int>>::GrowVector(int)
_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE10GrowVectorEi	proc near
					; CODE XREF: CDispCollTree::AddPlane(Vector  const&)+152p
					; CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+FCp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		add	eax, esi
		cmp	eax, edx
		jle	short loc_956A1
		sub	eax, edx
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI20DispCollPlaneIndex_tiE4GrowEi	; CUtlMemory<DispCollPlaneIndex_t,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		add	eax, esi

loc_956A1:				; CODE XREF: CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::GrowVector(int)+1Cj
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE10GrowVectorEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispCollTriCache,	int>::Grow(int)
_ZN10CUtlMemoryI17CDispCollTriCacheiE4GrowEi proc near
					; CODE XREF: CUtlVector<CDispCollTriCache,CUtlMemory<CDispCollTriCache,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_95712
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_95720
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_956F6
		lea	esi, [esi+0]

loc_956F0:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_956F0

loc_956F6:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Grow(int)+2Aj
					; CUtlMemory<CDispCollTriCache,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*8]
		add	eax, eax
		test	edx, edx
		jz	short loc_95755

loc_95704:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Grow(int)+93j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_95712:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95720:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_956F6
		lea	esi, [esi+0]

loc_95738:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_95738
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*8]
		add	eax, eax
		test	edx, edx
		jnz	short loc_95704

loc_95755:				; CODE XREF: CUtlMemory<CDispCollTriCache,int>::Grow(int)+42j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI17CDispCollTriCacheiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDispCollTriCache,	CUtlMemory<CDispCollTriCache, int>>::SetCount(int)
_ZN10CUtlVectorI17CDispCollTriCache10CUtlMemoryIS0_iEE8SetCountEi proc near
					; CODE XREF: CDispCollTree::Cache(void)+106p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_9579F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_957B0
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_9579F:				; CODE XREF: CUtlVector<CDispCollTriCache,CUtlMemory<CDispCollTriCache,int>>::SetCount(int)+1Ej
					; CUtlVector<CDispCollTriCache,CUtlMemory<CDispCollTriCache,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_957B0:				; CODE XREF: CUtlVector<CDispCollTriCache,CUtlMemory<CDispCollTriCache,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryI17CDispCollTriCacheiE4GrowEi ; CUtlMemory<CDispCollTriCache,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		test	eax, eax
		setnle	cl
		test	esi, esi
		setnle	dl
		mov	edi, edx
		lea	edx, [esi+eax]
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		mov	[ebx+10h], edx
		mov	ebx, edi
		test	bl, bl
		jz	short loc_9579F
		test	cl, cl
		jz	short loc_9579F
		lea	eax, [eax+eax*8]
		mov	[esp+4], edx	; src
		add	eax, eax
		mov	[esp+8], eax	; n
		lea	eax, [esi+esi*8]
		lea	eax, [edx+eax*2]
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorI17CDispCollTriCache10CUtlMemoryIS0_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CUtlVector<DispCollPlaneIndex_t, CUtlMemory<DispCollPlaneIndex_t, int>>, int>::Grow(int)
_ZN10CUtlMemoryI10CUtlVectorI20DispCollPlaneIndex_tS_IS1_iEEiE4GrowEi proc near
					; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+167p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_95863
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_95870
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_95846
		lea	esi, [esi+0]

loc_95840:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_95840

loc_95846:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+2Aj
					; CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*4]
		shl	eax, 2
		test	edx, edx
		jz	short loc_958A6

loc_95855:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+94j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_95863:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95870:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_95846
		lea	esi, [esi+0]

loc_95888:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_95888
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*4]
		shl	eax, 2
		test	edx, edx
		jnz	short loc_95855

loc_958A6:				; CODE XREF: CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)+43j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI10CUtlVectorI20DispCollPlaneIndex_tS_IS1_iEEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlHash<DispCollPlaneIndex_t, CPlaneIndexHashFuncs, CPlaneIndexHashFuncs>::CUtlHash(int, int, int, CPlaneIndexHashFuncs, CPlaneIndexHashFuncs)
_ZN8CUtlHashI20DispCollPlaneIndex_t20CPlaneIndexHashFuncsS1_EC2EiiiS1_S1_ proc near
					; CODE XREF: _GLOBAL__sub_I_g_DispCollTriCache+98p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	[esp], ebx
		call	_ZN10CUtlVectorIS_I20DispCollPlaneIndex_t10CUtlMemoryIS0_iEES1_IS3_iEE9RemoveAllEv ; CUtlVector<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>>::RemoveAll(void)
		test	esi, esi
		mov	edx, [ebx+0Ch]
		jz	loc_959F7
		mov	edi, [ebx+4]
		lea	ecx, [esi+edx]
		mov	eax, ecx
		cmp	ecx, edi
		jg	loc_95A18

loc_95914:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+177j
		mov	edi, [ebx]
		mov	[ebx+0Ch], eax
		sub	eax, edx
		sub	eax, esi
		test	esi, esi
		setnle	byte ptr [ebp+var_1C]
		test	eax, eax
		mov	[ebp+var_20], edi
		mov	[ebx+10h], edi
		jg	loc_95A40
		cmp	byte ptr [ebp+var_1C], 0
		jz	loc_959F7

loc_9593B:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+1AEj
		mov	edi, [ebp+arg_C]
		lea	edx, [edx+edx*4]
		xor	ecx, ecx
		shl	edx, 2
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_95950:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+C0j
		mov	eax, [ebx]
		add	eax, edx
		jz	short loc_95978
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0

loc_95978:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+94j
		add	ecx, 1
		add	edx, 14h
		cmp	esi, ecx
		jg	short loc_95950
		cmp	byte ptr [ebp+var_1C], 0
		mov	[ebp+arg_C], edi
		jz	short loc_959F7
		xor	eax, eax
		xor	edx, edx
		mov	[ebp+var_1C], esi
		mov	esi, edi
		mov	edi, eax
		mov	eax, ebx
		mov	ebx, edx
		mov	edx, esi
		lea	esi, [esi+0]

loc_959A0:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+130j
		mov	esi, [eax]
		add	esi, edi
		test	edx, edx
		mov	dword ptr [esi+0Ch], 0
		jz	short loc_959DE
		mov	[ebp+var_28], eax
		mov	[esp+4], edx
		mov	[ebp+var_24], edx
		mov	[esp], esi
		call	_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE10GrowVectorEi	; CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::GrowVector(int)
		mov	edx, [ebp+var_24]
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		mov	[esp+8], edx
		call	_ZN10CUtlVectorI20DispCollPlaneIndex_t10CUtlMemoryIS0_iEE18ShiftElementsRightEii ; CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>::ShiftElementsRight(int,int)
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]

loc_959DE:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+EDj
		mov	esi, [eax]
		add	ebx, 1
		mov	ecx, [ebp+arg_8]
		mov	[esi+edi+8], ecx
		add	edi, 14h
		cmp	ebx, [ebp+var_1C]
		jnz	short loc_959A0
		mov	esi, [ebp+var_1C]
		mov	ebx, eax

loc_959F7:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+3Ej
					; CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+75j ...
		lea	edx, [esi-1]
		test	edx, esi
		setz	cl
		xor	eax, eax
		test	cl, cl
		mov	[ebx+16h], cl
		cmovnz	eax, edx
		mov	[ebx+18h], eax
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_95A18:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+4Ej
		sub	eax, edi
		mov	[ebp+var_24], edx
		mov	[esp+4], eax
		mov	[ebp+var_28], ecx
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI10CUtlVectorI20DispCollPlaneIndex_tS_IS1_iEEiE4GrowEi ;	CUtlMemory<CUtlVector<DispCollPlaneIndex_t,CUtlMemory<DispCollPlaneIndex_t,int>>,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebp+var_28]
		mov	edx, [ebp+var_24]
		add	eax, esi
		jmp	loc_95914
; ---------------------------------------------------------------------------
		align 10h

loc_95A40:				; CODE XREF: CUtlHash<DispCollPlaneIndex_t,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs>::CUtlHash(int,int,int,CPlaneIndexHashFuncs,CPlaneIndexHashFuncs)+6Bj
		cmp	byte ptr [ebp+var_1C], 0
		jz	short loc_959F7
		lea	eax, [eax+eax*4]
		mov	[ebp+var_24], edx
		shl	eax, 2
		mov	[esp+8], eax	; n
		lea	eax, [edx+edx*4]
		lea	eax, [edi+eax*4]
		mov	[esp+4], eax	; src
		lea	eax, [ecx+ecx*4]
		lea	eax, [edi+eax*4]
		mov	[esp], eax	; dest
		call	memmove
		mov	edx, [ebp+var_24]
		jmp	loc_9593B
_ZN8CUtlHashI20DispCollPlaneIndex_t20CPlaneIndexHashFuncsS1_EC2EiiiS1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29 proc near
					; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+BEp
					; DispCommon_GenerateTriIndices(int,ushort *)+37p

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, edx
		push	esi
		push	ebx
		mov	ebx, eax
		mov	eax, ecx
		sub	esp, 5Ch
		mov	edx, [ebp+arg_0]
		cmp	edx, 1
		jz	loc_95BD0
		sub	edx, 1
		xor	esi, esi
		mov	[ebp+var_40], edx
		lea	edx, [ebp+var_38]
		mov	[ebp+var_3C], edx

loc_95AA9:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+C6j
		mov	edx, esi
		shl	edx, 4
		lea	ecx, _ZL17g_NodeChildLookup[edx] ; g_NodeChildLookup
		mov	edx, dword ptr ds:_ZL17g_NodeChildLookup[edx] ;	g_NodeChildLookup
		test	edx, edx
		jz	loc_95B80
		cmp	edx, 1
		jz	loc_95B90
		mov	edx, [edi]
		mov	[ebp+var_38], edx

loc_95AD0:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+105j
					; _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+119j
		mov	edx, [ecx+4]
		test	edx, edx
		jz	loc_95B70
		cmp	edx, 1
		jz	loc_95BC0
		mov	edx, [edi+4]
		mov	[ebp+var_34], edx

loc_95AEA:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+F6j
					; _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+14Bj
		mov	edx, esi
		shl	edx, 4
		lea	ecx, (_ZL17g_NodeChildLookup+8)[edx]
		add	edx, 8
		mov	edx, dword ptr ds:_ZL17g_NodeChildLookup[edx] ;	g_NodeChildLookup
		test	edx, edx
		jz	short loc_95B60
		cmp	edx, 1
		jz	loc_95BB0
		mov	edx, [edi]
		mov	[ebp+var_20], edx

loc_95B10:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+E5j
					; _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+139j
		mov	edx, [ecx+4]
		test	edx, edx
		jz	short loc_95B58
		cmp	edx, 1
		jz	loc_95BA0
		mov	edx, [edi+4]
		mov	[ebp+var_1C], edx

loc_95B26:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+DEj
					; _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+12Bj
		mov	ecx, [ebp+arg_4]
		add	esi, 1
		mov	edx, [ebp+var_40]
		mov	[esp+4], ecx
		mov	ecx, eax
		mov	eax, [ebp+var_3C]
		mov	[esp], edx
		lea	edx, [ebp+var_20]
		call	_ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29
		cmp	esi, 4
		jnz	loc_95AA9
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_95B58:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+95j
		mov	edx, [ebx+4]
		mov	[ebp+var_1C], edx
		jmp	short loc_95B26
; ---------------------------------------------------------------------------

loc_95B60:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+80j
		mov	edx, [ebx]
		mov	[ebp+var_20], edx
		jmp	short loc_95B10
; ---------------------------------------------------------------------------
		align 10h

loc_95B70:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+55j
		mov	edx, [ebx+4]
		mov	[ebp+var_34], edx
		jmp	loc_95AEA
; ---------------------------------------------------------------------------
		align 10h

loc_95B80:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+3Cj
		mov	edx, [ebx]
		mov	[ebp+var_38], edx
		jmp	loc_95AD0
; ---------------------------------------------------------------------------
		align 10h

loc_95B90:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+45j
		mov	edx, [ebx]
		add	edx, [edi]
		sar	edx, 1
		mov	[ebp+var_38], edx
		jmp	loc_95AD0
; ---------------------------------------------------------------------------
		align 10h

loc_95BA0:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+9Aj
		mov	edx, [ebx+4]
		add	edx, [edi+4]
		sar	edx, 1
		mov	[ebp+var_1C], edx
		jmp	loc_95B26
; ---------------------------------------------------------------------------

loc_95BB0:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+85j
		mov	edx, [ebx]
		add	edx, [edi]
		sar	edx, 1
		mov	[ebp+var_20], edx
		jmp	loc_95B10
; ---------------------------------------------------------------------------
		align 10h

loc_95BC0:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+5Ej
		mov	edx, [ebx+4]
		add	edx, [edi+4]
		sar	edx, 1
		mov	[ebp+var_34], edx
		jmp	loc_95AEA
; ---------------------------------------------------------------------------

loc_95BD0:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+15j
		mov	edx, [ebx]
		xor	ecx, ecx
		mov	[ebp+var_44], eax
		lea	esi, [ebp+var_38]
		mov	[ebp+var_40], edi
		mov	eax, ecx
		mov	[ebp+var_3C], esi
		add	edx, [edi]
		sar	edx, 1
		mov	[ebp+var_38], edx
		mov	edx, [ebx+4]
		add	edx, [edi+4]
		sar	edx, 1
		mov	[ebp+var_34], edx
		mov	edx, 1
		jmp	short loc_95C3B
; ---------------------------------------------------------------------------
		align 10h

loc_95C00:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+1D1j
		cmp	esi, 1
		jz	loc_95CC8
		mov	esi, [ebp+var_40]
		mov	esi, [esi]
		mov	[ecx], esi

loc_95C10:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+25Dj
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_95C5E

loc_95C17:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+1DCj
		cmp	esi, 1
		jz	loc_95CB0
		mov	edi, [ebp+var_40]
		mov	esi, [edi+4]
		mov	[ecx+4], esi

loc_95C29:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+23Ej
		cmp	edx, 2
		jz	short loc_95C69

loc_95C2E:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+1E7j
		add	eax, 1
		cmp	eax, 9
		jz	short loc_95CA0

loc_95C36:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+21Ej
		mov	edx, 2

loc_95C3B:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+179j
		mov	esi, [ebp+var_3C]
		lea	edi, _ZL16g_NodeTriWinding[eax*8] ; g_NodeTriWinding
		lea	ecx, [esi+edx*8]
		mov	esi, dword ptr ds:_ZL16g_NodeTriWinding[eax*8] ; g_NodeTriWinding
		test	esi, esi
		jnz	short loc_95C00
		mov	esi, [ebx]
		mov	[ecx], esi
		mov	esi, [edi+4]
		test	esi, esi
		jnz	short loc_95C17

loc_95C5E:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+195j
		mov	esi, [ebx+4]
		cmp	edx, 2
		mov	[ecx+4], esi
		jnz	short loc_95C2E

loc_95C69:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+1ACj
		mov	esi, [ebp+var_44]
		mov	edi, [ebp+var_3C]

loc_95C6F:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+206j
		mov	ecx, [ebp+arg_4]
		imul	ecx, [edi+edx*8+4]
		add	ecx, [edi+edx*8]
		sub	edx, 1
		mov	[esi], cx
		add	esi, 2
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_95C6F
		mov	esi, [ebp+var_28]
		add	eax, 1
		mov	edi, [ebp+var_24]
		add	[ebp+var_44], 6
		cmp	eax, 9
		mov	[ebp+var_30], esi
		mov	[ebp+var_2C], edi
		jnz	short loc_95C36

loc_95CA0:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+1B4j
		mov	eax, [ebp+var_44]
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95CB0:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+19Aj
		mov	esi, [ebx+4]
		mov	edi, [ebp+var_40]
		add	esi, [edi+4]
		sar	esi, 1
		mov	[ecx+4], esi
		jmp	loc_95C29
; ---------------------------------------------------------------------------
		align 8

loc_95CC8:				; CODE XREF: _ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29+183j
		mov	esi, [ebx]
		mov	[ebp+var_48], esi
		mov	esi, [ebp+var_40]
		mov	esi, [esi]
		add	[ebp+var_48], esi
		sar	[ebp+var_48], 1
		mov	esi, [ebp+var_48]
		mov	[ecx], esi
		jmp	loc_95C10
_ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetEdgeIndexFromPoint(CVertIndex  const&, int)
_Z21GetEdgeIndexFromPointRK10CVertIndexi proc near
					; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+BAp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		movzx	esi, word ptr [ebx]
		test	si, si
		jz	short loc_95D35
		mov	ecx, [ebp+arg_4]
		mov	edx, 1
		mov	al, 1
		shl	edx, cl
		movzx	ecx, word ptr [ebx+2]
		movsx	ebx, cx
		cmp	ebx, edx
		jz	short loc_95D35
		movsx	esi, si
		mov	al, 2
		cmp	esi, edx
		jz	short loc_95D35
		cmp	cx, 1
		sbb	eax, eax
		and	eax, 4
		sub	eax, 1

loc_95D35:				; CODE XREF: GetEdgeIndexFromPoint(CVertIndex  const&,int)+17j
					; GetEdgeIndexFromPoint(CVertIndex  const&,int)+2Ej ...
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z21GetEdgeIndexFromPointRK10CVertIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetCornerIndexFromPoint(CVertIndex  const&, int)
_Z23GetCornerIndexFromPointRK10CVertIndexi proc	near
					; CODE XREF: DoesPointHaveAnyNeighbors(CDispUtilsHelper	*,CVertIndex  const&)+63p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	edx, 1
		mov	ebp, esp
		sub	esp, 8
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		shl	edx, cl
		movzx	ecx, word ptr [ebx]
		test	cx, cx
		jnz	short loc_95D75
		movzx	esi, word ptr [ebx+2]
		xor	eax, eax
		test	si, si
		jz	short loc_95D81
		movsx	esi, si
		mov	al, 1
		cmp	esi, edx
		jz	short loc_95D81

loc_95D75:				; CODE XREF: GetCornerIndexFromPoint(CVertIndex	 const&,int)+1Fj
		movsx	ecx, cx
		mov	eax, 0FFFFFFFFh
		cmp	ecx, edx
		jz	short loc_95D90

loc_95D81:				; CODE XREF: GetCornerIndexFromPoint(CVertIndex	 const&,int)+2Aj
					; GetCornerIndexFromPoint(CVertIndex  const&,int)+33j ...
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95D90:				; CODE XREF: GetCornerIndexFromPoint(CVertIndex	 const&,int)+3Fj
		movzx	ecx, word ptr [ebx+2]
		mov	eax, 2
		movsx	ebx, cx
		cmp	edx, ebx
		jz	short loc_95D81
		cmp	cx, 1
		mov	ebx, [ebp+var_8]
		sbb	eax, eax
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		and	eax, 4
		pop	ebp
		sub	eax, 1
		retn
_Z23GetCornerIndexFromPointRK10CVertIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetNeighborEdgePower(CDispUtilsHelper	*, int,	int)
_Z20GetNeighborEdgePowerP16CDispUtilsHelperii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+4]
		lea	edx, [esi+esi*2]
		lea	esi, [eax+edx*2]
		mov	edx, 0FFFFFFFFh
		movzx	eax, word ptr [esi]
		cmp	ax, 0FFFFh
		jz	short loc_95E25
		mov	edx, [ebx]
		movzx	eax, ax
		mov	[esp], ebx
		mov	[esp+4], eax
		call	dword ptr [edx+0Ch]
		movzx	edx, byte ptr [esi+4]
		lea	ecx, [edx+edx*2]
		movzx	edx, byte ptr [esi+3]
		lea	edx, [edx+edx*8]
		shl	edx, 2
		lea	ebx, g_ShiftInfos[edx+ecx*4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		mov	edx, [ebx+4]
		add	edx, [eax+1Ch]

loc_95E25:				; CODE XREF: GetNeighborEdgePower(CDispUtilsHelper *,int,int)+2Fj
		add	esp, 10h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z20GetNeighborEdgePowerP16CDispUtilsHelperii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetSubNeighborIndex(CDispUtilsHelper *, int, CVertIndex  const&)
_Z19GetSubNeighborIndexP16CDispUtilsHelperiRK10CVertIndex proc near
					; CODE XREF: TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+28p
					; IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+A3p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], esi
		call	dword ptr [eax+4]
		mov	edx, dword ptr g_EdgeDims[esi*4]
		xor	ecx, ecx
		mov	ebx, [edi+2Ch]
		test	edx, edx
		mov	edx, [ebp+arg_8]
		setz	cl
		movsx	ecx, word ptr [edx+ecx*2]
		xor	edx, edx
		cmp	ecx, ebx
		setnle	dl
		cmp	ebx, ecx
		jz	short loc_95EA0
		lea	ecx, [edx+edx*2]
		cmp	word ptr [eax+ecx*2], 0FFFFh
		jz	short loc_95EB7

loc_95E87:				; CODE XREF: GetSubNeighborIndex(CDispUtilsHelper *,int,CVertIndex  const&)+79j
					; GetSubNeighborIndex(CDispUtilsHelper *,int,CVertIndex	 const&)+85j ...
		mov	ebx, [ebp+var_C]
		mov	eax, edx
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95EA0:				; CODE XREF: GetSubNeighborIndex(CDispUtilsHelper *,int,CVertIndex  const&)+4Bj
		cmp	byte ptr [eax+3], 0
		mov	edx, 0FFFFFFFFh
		jnz	short loc_95E87
		xor	edx, edx
		lea	ecx, [edx+edx*2]
		cmp	word ptr [eax+ecx*2], 0FFFFh
		jnz	short loc_95E87

loc_95EB7:				; CODE XREF: GetSubNeighborIndex(CDispUtilsHelper *,int,CVertIndex  const&)+55j
		cmp	edx, 1
		mov	edx, 0FFFFFFFFh
		jnz	short loc_95E87
		cmp	word ptr [eax],	0FFFFh
		jz	short loc_95E87
		cmp	byte ptr [eax+3], 1
		sbb	edx, edx
		not	edx
		jmp	short loc_95E87
_Z19GetSubNeighborIndexP16CDispUtilsHelperiRK10CVertIndex endp

; ---------------------------------------------------------------------------
		jmp	short _Z9SetupSpanii12NeighborSpanR10CVertIndexS1_ ; SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupSpan(int, int, NeighborSpan, CVertIndex &, CVertIndex &)
_Z9SetupSpanii12NeighborSpanR10CVertIndexS1_ proc near ; CODE XREF: .text:00095ED1j
					; TransformIntoSubNeighbor(CDispUtilsHelper *,int,int,CVertIndex  const&,CVertIndex&)+4Ep ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	ecx, dword ptr g_EdgeDims[ebx*4]
		mov	[esp], eax
		test	ecx, ecx
		setz	dl
		mov	[ebp+var_1C], edx
		call	_Z12GetPowerInfoi ; GetPowerInfo(int)
		mov	[esp+4], ebx
		mov	esi, eax
		mov	[esp], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	ecx, [ebp+arg_C]
		mov	eax, [eax]
		mov	[ecx], eax
		lea	eax, [ebx+1]
		sub	ebx, 2
		and	eax, 3
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	edx, [ebp+arg_10]
		cmp	ebx, 1
		mov	eax, [eax]
		mov	[edx], eax
		jbe	short loc_95F80
		cmp	edi, 1
		jz	short loc_95F8A
		cmp	edi, 2
		jz	short loc_95F60

loc_95F51:				; CODE XREF: SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+A8j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95F60:				; CODE XREF: SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+6Fj
					; SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+A3j
		mov	eax, [esi+2Ch]
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_C]
		mov	[edx+ecx*2], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_95F80:				; CODE XREF: SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+65j
		cmp	edi, 1
		jz	short loc_95F60
		cmp	edi, 2
		jnz	short loc_95F51

loc_95F8A:				; CODE XREF: SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+6Aj
		mov	eax, [esi+2Ch]
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_10]
		mov	[edx+ecx*2], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z9SetupSpanii12NeighborSpanR10CVertIndexS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TransformIntoSubNeighbor(CDispUtilsHelper *, int, int, CVertIndex  const&, CVertIndex&)
_Z24TransformIntoSubNeighborP16CDispUtilsHelperiiRK10CVertIndexRS1_ proc near
					; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+D7p
					; TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+4Cp ...

var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_24		= word ptr -24h
var_20		= word ptr -20h
var_1C		= word ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], edi
		call	dword ptr [eax+4]
		lea	edx, [esi+esi*2]
		lea	edx, [eax+edx*2]
		mov	eax, [ebx]
		movzx	esi, byte ptr [edx+3]
		mov	[ebp+var_2C], edx
		mov	[esp], ebx
		call	dword ptr [eax]
		lea	ecx, [ebp+var_24]
		mov	[esp+4], edi
		mov	[esp+10h], ecx
		lea	ecx, [ebp+var_28]
		mov	[esp+0Ch], ecx
		mov	[esp+8], esi
		mov	eax, [eax+1Ch]
		mov	[esp], eax
		call	_Z9SetupSpanii12NeighborSpanR10CVertIndexS1_ ; SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)
		mov	edx, [ebp+var_2C]
		mov	eax, [ebx]
		movzx	ecx, word ptr [edx]
		mov	[esp], ebx
		mov	[esp+4], ecx
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_2C]
		mov	esi, eax
		movzx	eax, byte ptr [edx+2]
		movzx	edx, byte ptr [edx+4]
		lea	ebx, [edi+eax+2]
		mov	eax, [esi]
		mov	[esp], esi
		mov	[ebp+var_2C], edx
		and	ebx, 3
		call	dword ptr [eax]
		mov	edx, [ebp+var_2C]
		lea	ecx, [ebp+var_20]
		mov	[esp+10h], ecx
		lea	ecx, [ebp+var_1C]
		mov	[esp+0Ch], ecx
		mov	[esp+4], ebx
		mov	[esp+8], edx
		mov	eax, [eax+1Ch]
		mov	[esp], eax
		call	_Z9SetupSpanii12NeighborSpanR10CVertIndexS1_ ; SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)
		mov	edi, dword ptr g_EdgeDims[edi*4]
		xor	ecx, ecx
		mov	eax, [ebp+arg_C]
		test	edi, edi
		mov	edi, [ebp+arg_10]
		setz	cl
		movsx	edx, [ebp+ecx*2+var_28]
		movsx	eax, word ptr [eax+ecx*2]
		movsx	ecx, [ebp+ecx*2+var_24]
		sub	eax, edx
		shl	eax, 10h
		sub	ecx, edx
		mov	edx, eax
		sar	edx, 1Fh
		idiv	ecx
		mov	edx, dword ptr g_EdgeDims[ebx*4]
		movsx	ecx, dx
		movzx	ebx, [ebp+ecx*2+var_20]
		mov	[edi+ecx*2], bx
		xor	ecx, ecx
		test	edx, edx
		setz	cl
		movzx	ebx, [ebp+ecx*2+var_20]
		movsx	edx, [ebp+ecx*2+var_1C]
		movsx	edi, bx
		sub	edx, edi
		mov	edi, [ebp+arg_10]
		imul	edx, eax
		lea	eax, [edx+0FFFFh]
		test	edx, edx
		cmovs	edx, eax
		mov	eax, esi
		sar	edx, 10h
		add	edx, ebx
		mov	[edi+ecx*2], dx
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z24TransformIntoSubNeighborP16CDispUtilsHelperiiRK10CVertIndexRS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupEdgeIncrements(CDispUtilsHelper *, int, int, CVertIndex &, CVertIndex &,	CVertIndex &, CVertIndex &, int	&, int &)
_Z19SetupEdgeIncrementsP16CDispUtilsHelperiiR10CVertIndexS2_S2_S2_RiS3_	proc near
					; CODE XREF: CDispSubEdgeIterator::Start(CDispUtilsHelper *,int,int,bool)+54p

var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	edx, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, dword ptr g_EdgeDims[edx*4]
		test	edx, edx
		mov	[ebp+var_30], edx
		mov	edx, [ebp+arg_20]
		setz	al
		xor	edi, edi
		mov	[edx], eax
		mov	eax, [ebx]
		mov	[esp+4], ecx
		mov	[esp], ebx
		call	dword ptr [eax+4]
		mov	edx, [ebp+arg_8]
		lea	ecx, [edx+edx*2]
		lea	esi, [eax+ecx*2]
		movzx	eax, word ptr [esi]
		cmp	ax, 0FFFFh
		jz	loc_96247
		mov	ecx, [ebx]
		movzx	eax, ax
		mov	[esp], ebx
		mov	[esp+4], eax
		call	dword ptr [ecx+0Ch]
		mov	edi, eax
		movzx	eax, byte ptr [esi+4]
		lea	ecx, [eax+eax*2]
		movzx	eax, byte ptr [esi+3]
		lea	eax, [eax+eax*8]
		shl	eax, 2
		lea	eax, g_ShiftInfos[eax+ecx*4]
		mov	[ebp+var_34], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		movsx	ecx, word ptr [ebp+var_30]
		mov	edx, [eax+28h]
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_30], ecx
		mov	ecx, [ebp+arg_4]
		imul	dx, word ptr g_EdgeSideLenMul[ecx*4]
		mov	ecx, [ebp+var_30]
		mov	[eax+ecx*2], dx
		mov	edx, [ebp+arg_20]
		movzx	eax, word ptr [ebp+arg_8]
		movsx	ecx, word ptr [edx]
		mov	edx, [ebp+var_2C]
		imul	ax, [edx+2Ch]
		mov	edx, [ebp+arg_C]
		mov	[edx+ecx*2], ax
		mov	ecx, [ebp+arg_8]
		mov	eax, [ebp+arg_14]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+8], ecx
		mov	[esp+10h], eax
		mov	[esp+4], edx
		call	_Z24TransformIntoSubNeighborP16CDispUtilsHelperiiRK10CVertIndexRS1_ ; TransformIntoSubNeighbor(CDispUtilsHelper	*,int,int,CVertIndex  const&,CVertIndex&)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_3C], eax
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax]
		mov	edx, [ebp+var_34]
		mov	ecx, [eax+1Ch]
		mov	eax, [ebp+arg_10]
		add	ecx, [edx+4]
		mov	edx, [ebp+var_30]
		cmp	[ebp+var_3C], ecx
		mov	word ptr [ebp+edx*2+var_1C], 0
		mov	word ptr [eax+edx*2], 0
		mov	edx, [ebp+arg_20]
		jl	short loc_96258
		movsx	edx, word ptr [edx]
		mov	eax, 1
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_3C]
		sub	edx, ecx
		mov	ecx, edx
		mov	edx, [ebp+var_2C]
		shl	eax, cl
		mov	ecx, [ebp+arg_10]
		mov	[ecx+edx*2], ax
		mov	edx, [ebp+arg_20]
		movsx	eax, word ptr [edx]
		mov	word ptr [ebp+eax*2+var_1C], 1
		movzx	eax, byte ptr [esi+2]
		test	eax, eax
		jnz	short loc_96281

loc_96227:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+19Fj
		mov	eax, [ebp+var_1C]
		mov	edx, [ebp+arg_18]
		mov	[edx], eax

loc_9622F:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+1F4j
					; SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+216j
		cmp	byte ptr [esi+3], 1
		mov	eax, [ebx]
		mov	[esp], ebx
		jz	short loc_962AA

loc_9623A:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+1C8j
		call	dword ptr [eax]
		mov	edx, [ebp+arg_1C]
		mov	eax, [eax+24h]
		sub	eax, 1
		mov	[edx], eax

loc_96247:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+46j
		add	esp, 5Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_96258:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+112j
		movsx	eax, word ptr [edx]
		mov	edx, [ebp+arg_10]
		sub	ecx, [ebp+var_3C]
		mov	word ptr [edx+eax*2], 1
		mov	edx, [ebp+arg_20]
		mov	eax, 1
		shl	eax, cl
		movsx	edx, word ptr [edx]
		mov	word ptr [ebp+edx*2+var_1C], ax
		movzx	eax, byte ptr [esi+2]
		test	eax, eax
		jz	short loc_96227

loc_96281:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+145j
		cmp	eax, 1
		jz	short loc_962C0
		cmp	eax, 2
		jz	short loc_962E0
		movzx	eax, word ptr [ebp+var_1C+2]
		mov	edx, [ebp+arg_18]
		neg	eax
		mov	[edx], ax
		movzx	eax, word ptr [ebp+var_1C]
		mov	[edx+2], ax
		cmp	byte ptr [esi+3], 1
		mov	eax, [ebx]
		mov	[esp], ebx
		jnz	short loc_9623A

loc_962AA:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+158j
		call	dword ptr [eax]
		mov	edx, [ebp+arg_1C]
		mov	eax, [eax+24h]
		sar	eax, 1
		mov	[edx], eax
		add	esp, 5Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_962C0:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+1A4j
		movzx	eax, word ptr [ebp+var_1C+2]
		mov	edx, [ebp+arg_18]
		mov	[edx], ax
		movzx	eax, word ptr [ebp+var_1C]
		neg	eax
		mov	[edx+2], ax
		jmp	loc_9622F
; ---------------------------------------------------------------------------
		align 10h

loc_962E0:				; CODE XREF: SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)+1A9j
		movzx	eax, word ptr [ebp+var_1C]
		mov	edx, [ebp+arg_18]
		neg	eax
		mov	[edx], ax
		movzx	eax, word ptr [ebp+var_1C+2]
		neg	eax
		mov	[edx+2], ax
		jmp	loc_9622F
_Z19SetupEdgeIncrementsP16CDispUtilsHelperiiR10CVertIndexS2_S2_S2_RiS3_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TransformIntoNeighbor(CDispUtilsHelper *, int, CVertIndex  const&, CVertIndex&)
_Z21TransformIntoNeighborP16CDispUtilsHelperiRK10CVertIndexRS1_	proc near
					; CODE XREF: DoesPointHaveAnyNeighbors(CDispUtilsHelper	*,CVertIndex  const&)+30p
					; DoesPointHaveAnyNeighbors(CDispUtilsHelper *,CVertIndex  const&)+A5p	...

var_1A		= word ptr -1Ah
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_96360

loc_9631D:				; CODE XREF: TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+9Aj
					; TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+A2j ...
		mov	[esp+8], edi
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z19GetSubNeighborIndexP16CDispUtilsHelperiRK10CVertIndex ; GetSubNeighborIndex(CDispUtilsHelper *,int,CVertIndex  const&)
		mov	edx, eax
		xor	eax, eax
		cmp	edx, 0FFFFFFFFh
		jz	short loc_96351
		mov	eax, [ebp+arg_C]
		mov	[esp+0Ch], edi
		mov	[esp+8], edx
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+10h], eax
		call	_Z24TransformIntoSubNeighborP16CDispUtilsHelperiiRK10CVertIndexRS1_ ; TransformIntoSubNeighbor(CDispUtilsHelper	*,int,int,CVertIndex  const&,CVertIndex&)

loc_96351:				; CODE XREF: TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+34j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96360:				; CODE XREF: TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+1Bj
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax]
		mov	ecx, [eax+1Ch]
		movzx	eax, word ptr [edi]
		test	ax, ax
		jz	short loc_963A0
		mov	edx, 1
		shl	edx, cl
		movzx	ecx, word ptr [edi+2]
		mov	[ebp+var_1A], cx
		movsx	ecx, cx
		cmp	edx, ecx
		jz	short loc_963B0
		cwde
		cmp	edx, eax
		jz	short loc_963C0
		cmp	[ebp+var_1A], 0
		mov	eax, 3
		cmovz	ebx, eax
		jmp	short loc_9631D
; ---------------------------------------------------------------------------
		align 10h

loc_963A0:				; CODE XREF: TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+70j
		xor	ebx, ebx
		jmp	loc_9631D
; ---------------------------------------------------------------------------
		align 10h

loc_963B0:				; CODE XREF: TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+86j
		mov	ebx, 1
		jmp	loc_9631D
; ---------------------------------------------------------------------------
		align 10h

loc_963C0:				; CODE XREF: TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)+8Bj
		mov	ebx, 2
		jmp	loc_9631D
_Z21TransformIntoNeighborP16CDispUtilsHelperiRK10CVertIndexRS1_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DoesPointHaveAnyNeighbors(CDispUtilsHelper *,	CVertIndex  const&)
_Z25DoesPointHaveAnyNeighborsP16CDispUtilsHelperRK10CVertIndex proc near

var_2C		= dword	ptr -2Ch
var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, 1
		mov	[esp+0Ch], eax
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp+8], edi
		mov	[esp], ebx
		call	_Z21TransformIntoNeighborP16CDispUtilsHelperiRK10CVertIndexRS1_	; TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)
		test	eax, eax
		jz	short loc_96420

loc_96409:				; CODE XREF: DoesPointHaveAnyNeighbors(CDispUtilsHelper	*,CVertIndex  const&)+6Dj
					; DoesPointHaveAnyNeighbors(CDispUtilsHelper *,CVertIndex  const&)+8Aj	...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96420:				; CODE XREF: DoesPointHaveAnyNeighbors(CDispUtilsHelper	*,CVertIndex  const&)+37j
		mov	eax, [ebx]
		mov	[esp], ebx
		xor	esi, esi
		call	dword ptr [eax]
		mov	eax, [eax+1Ch]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z23GetCornerIndexFromPointRK10CVertIndexi ; GetCornerIndexFromPoint(CVertIndex	 const&,int)
		cmp	eax, 0FFFFFFFFh
		mov	edx, eax
		jz	short loc_96409
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	esi, 1
		mov	[ebp+var_2C], edx
		mov	[esp], ebx
		call	dword ptr [eax+8]
		mov	edx, [ebp+var_2C]
		cmp	byte ptr [eax+8], 0
		jnz	short loc_96409
		lea	eax, [ebp+var_1C]
		mov	[esp+8], edi
		mov	[esp+0Ch], eax
		mov	eax, dword ptr ds:_ZL13g_CornerEdges[edx*8] ; g_CornerEdges
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z21TransformIntoNeighborP16CDispUtilsHelperiRK10CVertIndexRS1_	; TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)
		mov	edx, [ebp+var_2C]
		test	eax, eax
		jnz	short loc_96409
		lea	eax, [ebp+var_1C]
		mov	[esp+8], edi
		mov	[esp+0Ch], eax
		mov	eax, dword ptr ds:(_ZL13g_CornerEdges+4)[edx*8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z21TransformIntoNeighborP16CDispUtilsHelperiRK10CVertIndexRS1_	; TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)
		test	eax, eax
		setnz	al
		mov	esi, eax
		jmp	loc_96409
_Z25DoesPointHaveAnyNeighborsP16CDispUtilsHelperRK10CVertIndex endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispSubEdgeIterator::CDispSubEdgeIterator(void)
_ZN20CDispSubEdgeIteratorC2Ev proc near	; CODE XREF: BlendEdges(CCoreDispInfo **,int)+B0p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+14h], 0
		mov	word ptr [eax+8], 0
		mov	word ptr [eax+4], 0
		mov	dword ptr [eax+18h], 0
		pop	ebp
		retn
_ZN20CDispSubEdgeIteratorC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispSubEdgeIterator::Start(CDispUtilsHelper *, int, int, bool)
_ZN20CDispSubEdgeIterator5StartEP16CDispUtilsHelperiib proc near
					; CODE XREF: CDispEdgeIterator::Next(void)+3Ap
					; BlendEdges(CCoreDispInfo **,int)+DBp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edi, [ebp+arg_10]
		lea	eax, [ebx+18h]
		mov	[esp+20h], eax
		lea	eax, [ebx+14h]
		mov	[esp+1Ch], eax
		lea	eax, [ebx+10h]
		mov	[esp+18h], eax
		lea	eax, [ebx+0Ch]
		mov	[esp+14h], eax
		lea	eax, [ebx+4]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_C]
		lea	esi, [ebx+8]
		mov	[esp+10h], esi
		mov	[esp+8], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z19SetupEdgeIncrementsP16CDispUtilsHelperiiR10CVertIndexS2_S2_S2_RiS3_	; SetupEdgeIncrements(CDispUtilsHelper *,int,int,CVertIndex &,CVertIndex &,CVertIndex &,CVertIndex &,int &,int &)
		test	eax, eax
		mov	[ebx], eax
		jz	short loc_96580
		mov	eax, edi
		test	al, al
		jz	short loc_96571
		movzx	eax, word ptr [ebx+8]
		sub	[ebx+4], ax
		movzx	eax, word ptr [ebx+0Ah]
		sub	[ebx+6], ax
		movzx	eax, word ptr [ebx+10h]
		sub	[ebx+0Ch], ax
		movzx	eax, word ptr [ebx+12h]
		sub	[ebx+0Eh], ax
		movsx	eax, word ptr [ebx+18h]
		movsx	eax, word ptr [ebx+eax*2+8]
		add	[ebx+14h], eax

loc_96571:				; CODE XREF: CDispSubEdgeIterator::Start(CDispUtilsHelper *,int,int,bool)+63j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96580:				; CODE XREF: CDispSubEdgeIterator::Start(CDispUtilsHelper *,int,int,bool)+5Dj
		mov	dword ptr [ebx+14h], 0
		mov	word ptr [ebx+8], 0
		mov	word ptr [ebx+4], 0
		mov	dword ptr [ebx+18h], 0
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN20CDispSubEdgeIterator5StartEP16CDispUtilsHelperiib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispSubEdgeIterator::Next(void)
_ZN20CDispSubEdgeIterator4NextEv proc near ; CODE XREF:	CDispEdgeIterator::Next(void)+42p
					; BlendEdges(CCoreDispInfo **,int)+E6p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		movzx	edx, word ptr [eax+8]
		add	[eax+4], dx
		movzx	edx, word ptr [eax+0Ah]
		add	[eax+6], dx
		movzx	edx, word ptr [eax+10h]
		add	[eax+0Ch], dx
		movzx	edx, word ptr [eax+12h]
		add	[eax+0Eh], dx
		movsx	edx, word ptr [eax+18h]
		pop	ebp
		movsx	edx, word ptr [eax+edx*2+4]
		cmp	edx, [eax+14h]
		setl	al
		retn
_ZN20CDispSubEdgeIterator4NextEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispSubEdgeIterator::IsLastVert(void)const
_ZNK20CDispSubEdgeIterator10IsLastVertEv proc near
					; CODE XREF: BlendEdges(CCoreDispInfo **,int)+156p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movsx	edx, word ptr [eax+18h]
		add	edx, edx
		movsx	ecx, word ptr [eax+edx+4]
		movsx	edx, word ptr [eax+edx+8]
		add	edx, ecx
		cmp	edx, [eax+14h]
		setnl	al
		retn
_ZNK20CDispSubEdgeIterator10IsLastVertEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispEdgeIterator::CDispEdgeIterator(CDispUtilsHelper	*, int)
_ZN17CDispEdgeIteratorC2EP16CDispUtilsHelperi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+0Ch], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+20h], 0
		mov	word ptr [eax+14h], 0
		mov	word ptr [eax+10h], 0
		mov	dword ptr [eax+24h], 0
		mov	[eax+4], edx
		mov	dword ptr [eax+8], 0FFFFFFFFh
		pop	ebp
		retn
_ZN17CDispEdgeIteratorC2EP16CDispUtilsHelperi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispEdgeIterator::Next(void)
_ZN17CDispEdgeIterator4NextEv proc near	; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+73p
					; VerifyNeighborConnections(CCoreDispInfo **,int)+1C5p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	ebx, [ebp+arg_0]
		lea	esi, [ebx+0Ch]
		jmp	short loc_9668F
; ---------------------------------------------------------------------------

loc_96660:				; CODE XREF: CDispEdgeIterator::Next(void)+49j
		mov	eax, [ebx+8]
		cmp	eax, 1
		jz	short loc_966B0
		add	eax, 1
		mov	[ebx+8], eax
		mov	dword ptr [esp+10h], 0
		mov	[esp+0Ch], eax
		mov	eax, [ebx+4]
		mov	[esp+8], eax
		mov	eax, [ebx]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN20CDispSubEdgeIterator5StartEP16CDispUtilsHelperiib ; CDispSubEdgeIterator::Start(CDispUtilsHelper *,int,int,bool)

loc_9668F:				; CODE XREF: CDispEdgeIterator::Next(void)+Ej
		mov	[esp], esi
		call	_ZN20CDispSubEdgeIterator4NextEv ; CDispSubEdgeIterator::Next(void)
		test	al, al
		jz	short loc_96660
		add	esp, 20h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_966B0:				; CODE XREF: CDispEdgeIterator::Next(void)+16j
		add	esp, 20h
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN17CDispEdgeIterator4NextEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCircumferenceIterator::CDispCircumferenceIterator(int)
_ZN26CDispCircumferenceIteratorC2Ei proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		sub	edx, 1
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	[eax], edx
		pop	ebp
		retn
_ZN26CDispCircumferenceIteratorC2Ei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispCircumferenceIterator::Next(void)
_ZN26CDispCircumferenceIterator4NextEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+4]
		add	ecx, 1		; switch 5 cases
		cmp	ecx, 4
		ja	short loc_96720	; jumptable 000966F6 default case
		jmp	ds:off_1EBFA0[ecx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_96700:				; CODE XREF: CDispCircumferenceIterator::Next(void)+16j
					; DATA XREF: .rodata:off_1EBFA0o
		movzx	ecx, word ptr [edx+0Ah]	; jumptable 000966F6 case 2
		mov	eax, 1
		sub	ecx, 1
		test	cx, cx
		mov	[edx+0Ah], cx
		jnz	short loc_96720	; jumptable 000966F6 default case
		mov	dword ptr [edx+4], 3
		lea	esi, [esi+0]

loc_96720:				; CODE XREF: CDispCircumferenceIterator::Next(void)+14j
					; CDispCircumferenceIterator::Next(void)+33j ...
		pop	ebp		; jumptable 000966F6 default case
		retn
; ---------------------------------------------------------------------------
		align 8

loc_96728:				; CODE XREF: CDispCircumferenceIterator::Next(void)+16j
					; DATA XREF: .rodata:off_1EBFA0o
		movzx	eax, word ptr [edx+8] ;	jumptable 000966F6 case	3
		sub	eax, 1
		mov	[edx+8], ax
		test	ax, ax
		setnz	al
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96740:				; CODE XREF: CDispCircumferenceIterator::Next(void)+16j
					; DATA XREF: .rodata:off_1EBFA0o
		mov	dword ptr [edx+4], 0 ; jumptable 000966F6 case -1
		mov	eax, 1
		mov	word ptr [edx+8], 0
		mov	word ptr [edx+0Ah], 0
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96760:				; CODE XREF: CDispCircumferenceIterator::Next(void)+16j
					; DATA XREF: .rodata:off_1EBFA0o
		movzx	eax, word ptr [edx+0Ah]	; jumptable 000966F6 case 0
		add	eax, 1
		movsx	ecx, ax
		mov	[edx+0Ah], ax
		mov	eax, 1
		cmp	ecx, [edx]
		jnz	short loc_96720	; jumptable 000966F6 default case
		mov	dword ptr [edx+4], 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_96780:				; CODE XREF: CDispCircumferenceIterator::Next(void)+16j
					; DATA XREF: .rodata:off_1EBFA0o
		movzx	eax, word ptr [edx+8] ;	jumptable 000966F6 case	1
		add	eax, 1
		movsx	ecx, ax
		mov	[edx+8], ax
		mov	eax, 1
		cmp	ecx, [edx]
		jnz	short loc_96720	; jumptable 000966F6 default case
		mov	dword ptr [edx+4], 2
		pop	ebp
		retn
_ZN26CDispCircumferenceIterator4NextEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispUtilsHelper::GetPower(void)const
_ZNK16CDispUtilsHelper8GetPowerEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		mov	eax, [eax+1Ch]
		leave
		retn
_ZNK16CDispUtilsHelper8GetPowerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispUtilsHelper::GetSideLength(void)const
_ZNK16CDispUtilsHelper13GetSideLengthEv	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		mov	eax, [eax+24h]
		leave
		retn
_ZNK16CDispUtilsHelper13GetSideLengthEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispUtilsHelper::GetCornerPointIndex(int)const
_ZNK16CDispUtilsHelper19GetCornerPointIndexEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		mov	[ebp+arg_4], ebx
		mov	[ebp+arg_0], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
_ZNK16CDispUtilsHelper19GetCornerPointIndexEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)const
_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex proc near
					; CODE XREF: FindNeighborCornerVert(CCoreDispInfo *,Vector  const&)+43p
					; UpdateTangentSpace(CCoreDispInfo *,CVertIndex	 const&,Vector	const&,Vector  const&)+22p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], esi
		mov	edx, [eax]
		movsx	esi, word ptr [ebx+2]
		mov	[esp], eax
		call	dword ptr [edx]
		imul	esi, [eax+24h]
		movsx	eax, word ptr [ebx]
		mov	ebx, [ebp+var_8]
		add	eax, esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispUtilsHelper::GetEdgeMidPoint(int)const
_ZNK16CDispUtilsHelper15GetEdgeMidPointEi proc near
					; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+6Cp

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	eax, [eax+24h]
		mov	[ebp+var_1C], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		test	edi, edi
		mov	eax, [eax+2Ch]
		jz	short loc_968A8
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		cmp	edi, 1
		jz	short loc_968B8
		cmp	edi, 2
		jz	short loc_968C8
		cmp	edi, 3
		jz	short loc_968D8
		mov	word ptr [esi],	0
		mov	word ptr [esi+2], 0

loc_96893:				; CODE XREF: CDispUtilsHelper::GetEdgeMidPoint(int)+71j
					; CDispUtilsHelper::GetEdgeMidPoint(int)+7Fj ...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 8

loc_968A8:				; CODE XREF: CDispUtilsHelper::GetEdgeMidPoint(int)+31j
		mov	word ptr [esi],	0
		mov	[esi+2], ax
		jmp	short loc_96893
; ---------------------------------------------------------------------------
		align 8

loc_968B8:				; CODE XREF: CDispUtilsHelper::GetEdgeMidPoint(int)+3Cj
		mov	[esi], ax
		mov	[esi+2], dx
		jmp	short loc_96893
; ---------------------------------------------------------------------------
		align 8

loc_968C8:				; CODE XREF: CDispUtilsHelper::GetEdgeMidPoint(int)+41j
		mov	[esi], dx
		mov	[esi+2], ax
		jmp	short loc_96893
; ---------------------------------------------------------------------------
		align 8

loc_968D8:				; CODE XREF: CDispUtilsHelper::GetEdgeMidPoint(int)+46j
		mov	[esi], ax
		mov	word ptr [esi+2], 0
		jmp	short loc_96893
_ZNK16CDispUtilsHelper15GetEdgeMidPointEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispCommon_GetNumTriIndices(int)
_Z27DispCommon_GetNumTriIndicesi proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		pop	ebp
		shl	eax, cl
		shl	eax, cl
		lea	eax, [eax+eax*2]
		add	eax, eax
		retn
_Z27DispCommon_GetNumTriIndicesi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispCommon_GenerateTriIndices(int, unsigned short *)
_Z29DispCommon_GenerateTriIndicesiPt proc near

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		sub	esp, 28h
		mov	ecx, [ebp+arg_0]
		lea	edx, [ebp+var_10]
		mov	[ebp+var_18], 0
		mov	[ebp+var_14], 0
		shl	eax, cl
		mov	[esp], ecx
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+var_18]
		call	_ZL31DispCommon_GenerateTriIndices_RRK9CNodeVertS1_Ptii_constprop_29
		leave
		retn
_Z29DispCommon_GenerateTriIndicesiPt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ClearNeighborData(CCoreDispInfo *)
_Z17ClearNeighborDataP13CCoreDispInfo proc near
					; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+22p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]

loc_9695D:				; CODE XREF: ClearNeighborData(CCoreDispInfo *)+3Aj
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+4]
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0FFFFh
		mov	eax, [esi]
		mov	[esp+4], ebx
		add	ebx, 1
		mov	[esp], esi
		call	dword ptr [eax+8]
		cmp	ebx, 4
		mov	byte ptr [eax+8], 0
		jnz	short loc_9695D
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z17ClearNeighborDataP13CCoreDispInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetDispBox(CCoreDispInfo *, CDispBox &)
_Z10GetDispBoxP13CCoreDispInfoR8CDispBox proc near
					; CODE XREF: SetupDispBoxes(CCoreDispInfo **,int,CUtlVector<CDispBox,CUtlMemory<CDispBox,int>> &)+40p

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 4
		fld	ds:flt_1EC104
		fld	st
		mov	edx, [ebp+arg_0]
		fld	st(1)
		mov	ebx, [ebp+arg_4]
		fld	ds:flt_1EC108
		fld	st
		fst	[ebp+var_C]
		lea	esi, [edx+10h]
		jmp	short loc_969DC
; ---------------------------------------------------------------------------
		align 10h

loc_969D0:				; CODE XREF: GetDispBox(CCoreDispInfo *,CDispBox &)+81j
		fstp	st
		fxch	st(2)
		fxch	st(4)
		fxch	st(1)
		fxch	st(3)
		fxch	st(1)

loc_969DC:				; CODE XREF: GetDispBox(CCoreDispInfo *,CDispBox &)+28j
		lea	edx, [eax+eax*2]
		lea	ecx, [esi+edx*4]
		fld	dword ptr [ecx+8]
		fcomi	st, st(5)
		fxch	st(5)
		fcmovb	st, st(5)
		fld	dword ptr [ecx+0Ch]
		fcomi	st, st(5)
		fxch	st(5)
		fcmovb	st, st(5)
		fld	dword ptr [ecx+10h]
		fcomi	st, st(5)
		fxch	st(5)
		fcmovb	st, st(5)
		fxch	st(3)
		fcomi	st, st(7)
		fcmovb	st, st(7)
		fstp	st(7)
		fxch	st(3)
		fcomi	st, st(5)
		fcmovb	st, st(5)
		fstp	st(5)
		fld	[ebp+var_C]
		fcomi	st, st(4)
		fcmovb	st, st(4)
		fstp	st(4)
		fxch	st(3)
		add	eax, 1
		cmp	eax, 4
		fst	[ebp+var_C]
		jnz	short loc_969D0
		fld	ds:flt_1EC10C
		fsub	st(4), st
		fxch	st(4)
		fstp	dword ptr [ebx]
		fxch	st(2)
		fsub	st, st(3)
		fstp	dword ptr [ebx+4]
		fsub	st, st(2)
		fstp	dword ptr [ebx+8]
		fxch	st(3)
		fadd	st, st(1)
		fstp	dword ptr [ebx+0Ch]
		fadd	st(1), st
		fxch	st(1)
		fstp	dword ptr [ebx+10h]
		faddp	st(1), st
		fstp	dword ptr [ebx+14h]
		add	esp, 4
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z10GetDispBoxP13CCoreDispInfoR8CDispBox endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FindEdge(CCoreDispInfo *, Vector  const&, Vector  const&, int	&)
_Z8FindEdgeP13CCoreDispInfoRK6VectorS3_Ri proc near
					; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+8Bp
					; SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+113p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		fld	ds:flt_1EC110
		mov	ebp, esp
		push	edi
		mov	eax, [ebp+arg_C]
		push	esi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ecx, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		mov	dword ptr [eax], 0
		mov	eax, 1
		lea	esi, [edx+10h]
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_96A90:				; CODE XREF: FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int	&)+ABj
		lea	edx, [eax+eax*2-3]
		fld	dword ptr [ecx]
		lea	edx, [esi+edx*4]
		fsub	dword ptr [edx+8]
		fabs
		fcomip	st, st(1)
		ja	short loc_96B00
		fld	dword ptr [ecx+4]
		fsub	dword ptr [edx+0Ch]
		fabs
		fcomip	st, st(1)
		ja	short loc_96B00
		fld	dword ptr [ecx+8]
		fsub	dword ptr [edx+10h]
		fabs
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jb	short loc_96B00
		mov	edx, eax
		fld	dword ptr [edi]
		and	edx, 3
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]
		fsub	dword ptr [edx+8]
		fabs
		fcomip	st, st(1)
		ja	short loc_96B00
		fld	dword ptr [edi+4]
		fsub	dword ptr [edx+0Ch]
		fabs
		fcomip	st, st(1)
		ja	short loc_96B00
		fld	dword ptr [edi+8]
		fsub	dword ptr [edx+10h]
		fabs
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jb	short loc_96B00
		fstp	st
		pop	ebx
		mov	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96B00:				; CODE XREF: FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int	&)+40j
					; FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int &)+4Cj ...
		mov	edx, [ebp+arg_C]
		mov	[edx], eax
		add	eax, 1
		cmp	eax, 5
		jnz	short loc_96A90
		fstp	st
		pop	ebx
		xor	eax, eax
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z8FindEdgeP13CCoreDispInfoRK6VectorS3_Ri endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; NeighborSpanFlip(int,	NeighborSpan)
_Z16NeighborSpanFlipi12NeighborSpan proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		cmp	byte ptr ds:_ZL19g_bEdgeNeighborFlip[edx], 0 ; g_bEdgeNeighborFlip
		jz	short loc_96B39
		mov	eax, dword ptr ds:_ZL10g_SpanFlip[eax*4] ; g_SpanFlip

loc_96B39:				; CODE XREF: NeighborSpanFlip(int,NeighborSpan)+10j
		pop	ebp
		retn
_Z16NeighborSpanFlipi12NeighborSpan endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; AddNeighbor(CCoreDispInfo *, int, int, NeighborSpan, CCoreDispInfo *,	int, NeighborSpan)
_Z11AddNeighborP13CCoreDispInfoii12NeighborSpanS0_iS1_ proc near
					; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+C1p
					; SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+217p ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_10]
		cmp	byte ptr ds:_ZL19g_bEdgeNeighborFlip[ecx], 0 ; g_bEdgeNeighborFlip
		mov	ebx, [ebp+arg_14]
		jz	short loc_96B74
		mov	ecx, [ebp+arg_C]
		mov	ecx, dword ptr ds:_ZL10g_SpanFlip[ecx*4] ; g_SpanFlip
		mov	[ebp+arg_C], ecx

loc_96B74:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+25j
		cmp	byte ptr ds:_ZL19g_bEdgeNeighborFlip[ebx], 0 ; g_bEdgeNeighborFlip
		jz	short loc_96B8A
		mov	ecx, [ebp+arg_18]
		mov	ecx, dword ptr ds:_ZL10g_SpanFlip[ecx*4] ; g_SpanFlip
		mov	[ebp+arg_18], ecx

loc_96B8A:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+3Bj
		mov	ecx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[ebp+var_1C], edx
		mov	[esp], esi
		mov	[esp+4], ecx
		call	dword ptr [eax+4]
		mov	edx, [ebp+var_1C]
		cmp	[ebp+arg_18], 2
		lea	edx, [edx+edx*2]
		lea	edx, [eax+edx*2]
		mov	eax, [edi]
		mov	[esp+4], ebx
		mov	[esp], edi
		mov	[ebp+var_1C], edx
		jz	short loc_96C30
		call	dword ptr [eax+4]
		mov	edx, [ebp+var_1C]

loc_96BBD:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+F9j
		cmp	word ptr [edx],	0FFFFh
		jz	short loc_96BE0

loc_96BC3:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+A4j
		mov	eax, ds:_ZZ11AddNeighborP13CCoreDispInfoii12NeighborSpanS0_iS1_E14__executeCount ; AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)::__executeCount
		test	eax, eax
		jle	short loc_96C40

loc_96BCC:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+EDj
					; AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+113j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96BE0:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+81j
		cmp	word ptr [eax],	0FFFFh
		jnz	short loc_96BC3
		mov	ecx, [edi+204h]
		mov	edi, [ebp+arg_4]
		mov	[edx], cx
		lea	ecx, [ebx+edi*4]
		mov	ecx, dword ptr ds:_ZL32g_CoreDispNeighborOrientationMap[ecx*4] ; g_CoreDispNeighborOrientationMap
		mov	[edx+2], cl
		movzx	ecx, byte ptr [ebp+arg_C]
		mov	[edx+3], cl
		movzx	ecx, byte ptr [ebp+arg_18]
		mov	[edx+4], cl
		mov	edx, [esi+204h]
		mov	[eax+3], cl
		movzx	ecx, byte ptr [ebp+arg_C]
		mov	[eax], dx
		lea	edx, [edi+ebx*4]
		mov	edx, dword ptr ds:_ZL32g_CoreDispNeighborOrientationMap[edx*4] ; g_CoreDispNeighborOrientationMap
		mov	[eax+4], cl
		mov	[eax+2], dl
		jmp	short loc_96BCC
; ---------------------------------------------------------------------------
		align 10h

loc_96C30:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+75j
		call	dword ptr [eax+4]
		mov	edx, [ebp+var_1C]
		add	eax, 6
		jmp	short loc_96BBD
; ---------------------------------------------------------------------------
		align 10h

loc_96C40:				; CODE XREF: AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo *,int,NeighborSpan)+8Aj
		mov	dword ptr [esp], offset	aFoundADisplace	; "Found a displacement	edge abutting mult"...
		call	Warning
		add	ds:_ZZ11AddNeighborP13CCoreDispInfoii12NeighborSpanS0_iS1_E14__executeCount, 1 ; AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo	*,int,NeighborSpan)::__executeCount
		jmp	loc_96BCC
_Z11AddNeighborP13CCoreDispInfoii12NeighborSpanS0_iS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupEdgeNeighbors(CCoreDispInfo *, CCoreDispInfo *)
_Z18SetupEdgeNeighborsP13CCoreDispInfoS0_ proc near
					; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+F3p

var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 7Ch
		mov	ecx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		add	ecx, 10h
		mov	[ebp+var_5C], ecx

loc_96C77:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+CDj
		mov	ecx, [ebp+var_5C]
		lea	eax, [ebx+ebx*2]
		lea	esi, [ebx+1]
		lea	edx, [ecx+eax*4]
		mov	eax, esi
		fld	dword ptr [edx+8]
		and	eax, 3
		fst	[ebp+var_58]
		lea	eax, [eax+eax*2]
		fld	dword ptr [edx+0Ch]
		fst	[ebp+var_54]
		fld	dword ptr [edx+10h]
		lea	edx, [ecx+eax*4]
		fst	[ebp+var_50]
		lea	eax, [ebp+var_1C]
		fld	dword ptr [edx+8]
		lea	ecx, [ebp+var_58]
		fst	[ebp+var_4C]
		fld	dword ptr [edx+0Ch]
		fst	[ebp+var_48]
		fld	dword ptr [edx+10h]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_4C]
		fst	[ebp+var_44]
		fxch	st(2)
		faddp	st(5), st
		mov	[esp+8], ecx
		mov	[esp+4], eax
		mov	[esp], edi
		fld	ds:flt_1EBAA4
		fmul	st(5), st
		fxch	st(5)
		fstp	[ebp+var_40]
		faddp	st(3), st
		fxch	st(2)
		fmul	st, st(3)
		fstp	[ebp+var_3C]
		faddp	st(1), st
		fmulp	st(1), st
		fstp	[ebp+var_38]
		call	_Z8FindEdgeP13CCoreDispInfoRK6VectorS3_Ri ; FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int &)
		test	al, al
		jz	short loc_96D38
		mov	dword ptr [esp+18h], 0

loc_96CFC:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+124j
					; SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+18Cj
		mov	eax, [ebp+var_1C]
		mov	[esp+10h], edi
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	[esp+14h], eax
		mov	[esp], ecx
		call	_Z11AddNeighborP13CCoreDispInfoii12NeighborSpanS0_iS1_ ; AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo	*,int,NeighborSpan)

loc_96D26:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+1DBj
					; SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+21Cj
		cmp	esi, 4
		jz	short loc_96D90
		mov	ebx, esi
		jmp	loc_96C77
; ---------------------------------------------------------------------------
		align 8

loc_96D38:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+92j
		fld	[ebp+var_54]
		lea	eax, [ebp+var_1C]
		mov	[esp], edi
		fadd	st, st
		mov	[esp+0Ch], eax
		lea	ecx, [ebp+var_34]
		lea	eax, [ebp+var_4C]
		mov	[esp+8], ecx
		mov	[esp+4], eax
		fld	[ebp+var_50]
		fadd	st, st
		fld	[ebp+var_58]
		fadd	st, st
		fsub	[ebp+var_4C]
		fstp	[ebp+var_34]
		fxch	st(1)
		fsub	[ebp+var_48]
		fstp	[ebp+var_30]
		fsub	[ebp+var_44]
		fstp	[ebp+var_2C]
		call	_Z8FindEdgeP13CCoreDispInfoRK6VectorS3_Ri ; FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int &)
		test	al, al
		jz	short loc_96DA0
		mov	dword ptr [esp+18h], 1
		jmp	loc_96CFC
; ---------------------------------------------------------------------------
		align 10h

loc_96D90:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+C9j
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96DA0:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+11Aj
		fld	[ebp+var_48]
		lea	eax, [ebp+var_1C]
		mov	[esp], edi
		fadd	st, st
		mov	[esp+0Ch], eax
		lea	ecx, [ebp+var_58]
		lea	eax, [ebp+var_28]
		mov	[esp+8], ecx
		mov	[esp+4], eax
		fld	[ebp+var_44]
		fadd	st, st
		fld	[ebp+var_4C]
		fadd	st, st
		fsub	[ebp+var_58]
		fstp	[ebp+var_28]
		fxch	st(1)
		fsub	[ebp+var_54]
		fstp	[ebp+var_24]
		fsub	[ebp+var_50]
		fstp	[ebp+var_20]
		call	_Z8FindEdgeP13CCoreDispInfoRK6VectorS3_Ri ; FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int &)
		test	al, al
		jz	short loc_96DF8
		mov	dword ptr [esp+18h], 2
		jmp	loc_96CFC
; ---------------------------------------------------------------------------
		align 8

loc_96DF8:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+182j
		lea	edx, [ebp+var_40]
		mov	[esp], edi
		lea	eax, [ebp+var_1C]
		mov	[esp+4], edx
		lea	ecx, [ebp+var_58]
		mov	[ebp+var_60], edx
		mov	[esp+0Ch], eax
		mov	[esp+8], ecx
		call	_Z8FindEdgeP13CCoreDispInfoRK6VectorS3_Ri ; FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int &)
		mov	edx, [ebp+var_60]
		test	al, al
		jnz	short loc_96E88

loc_96E1F:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+260j
		lea	eax, [ebp+var_1C]
		mov	[esp+8], edx
		lea	ecx, [ebp+var_4C]
		mov	[esp+0Ch], eax
		mov	[esp+4], ecx
		mov	[esp], edi
		call	_Z8FindEdgeP13CCoreDispInfoRK6VectorS3_Ri ; FindEdge(CCoreDispInfo *,Vector  const&,Vector  const&,int &)
		test	al, al
		jz	loc_96D26
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp+18h], 0
		mov	ecx, [ebp+arg_0]
		mov	[esp+10h], edi
		mov	dword ptr [esp+0Ch], 2
		mov	[esp+4], ebx
		mov	[esp+14h], eax
		movzx	eax, ds:(_ZL13g_CornerEdges+1Fh)[esi]
		mov	[esp], ecx
		xor	eax, 1
		movzx	eax, al
		mov	[esp+8], eax
		call	_Z11AddNeighborP13CCoreDispInfoii12NeighborSpanS0_iS1_ ; AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo	*,int,NeighborSpan)
		jmp	loc_96D26
; ---------------------------------------------------------------------------
		align 8

loc_96E88:				; CODE XREF: SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)+1BDj
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp+18h], 0
		mov	ecx, [ebp+arg_0]
		mov	[esp+10h], edi
		mov	dword ptr [esp+0Ch], 1
		mov	[esp+4], ebx
		mov	[esp+14h], eax
		movzx	eax, ds:(_ZL13g_CornerEdges+1Fh)[esi]
		mov	[esp], ecx
		mov	[esp+8], eax
		call	_Z11AddNeighborP13CCoreDispInfoii12NeighborSpanS0_iS1_ ; AddNeighbor(CCoreDispInfo *,int,int,NeighborSpan,CCoreDispInfo	*,int,NeighborSpan)
		mov	edx, [ebp+var_60]
		jmp	loc_96E1F
_Z18SetupEdgeNeighborsP13CCoreDispInfoS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; HasEdgeNeighbor(CCoreDispInfo	 const*, int)
_Z15HasEdgeNeighborPK13CCoreDispInfoi proc near
					; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+1Cp

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 4
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		add	eax, 10h
		mov	[ebp+var_10], eax

loc_96EE7:				; CODE XREF: HasEdgeNeighbor(CCoreDispInfo  const*,int)+71j
		mov	edx, [ebp+var_10]
		lea	eax, [edi+edi*4]
		lea	ecx, [edx+eax*2+150h]
		movzx	esi, byte ptr [ecx+8]
		test	esi, esi
		jz	short loc_96F1F
		movzx	eax, word ptr [ecx]
		cmp	eax, ebx
		jz	short loc_96F50
		xor	eax, eax
		jmp	short loc_96F18
; ---------------------------------------------------------------------------
		align 10h

loc_96F10:				; CODE XREF: HasEdgeNeighbor(CCoreDispInfo  const*,int)+4Dj
		movzx	edx, word ptr [ecx+eax*2]
		cmp	edx, ebx
		jz	short loc_96F50

loc_96F18:				; CODE XREF: HasEdgeNeighbor(CCoreDispInfo  const*,int)+35j
		add	eax, 1
		cmp	eax, esi
		jl	short loc_96F10

loc_96F1F:				; CODE XREF: HasEdgeNeighbor(CCoreDispInfo  const*,int)+2Aj
		mov	edx, [ebp+var_10]
		lea	eax, [edi+edi*2]
		lea	eax, [edx+eax*4+120h]
		movzx	edx, word ptr [eax]
		cmp	edx, ebx
		jz	short loc_96F50
		movzx	eax, word ptr [eax+6]
		cmp	eax, ebx
		jz	short loc_96F50
		add	edi, 1
		cmp	edi, 4
		jnz	short loc_96EE7
		add	esp, 4
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_96F50:				; CODE XREF: HasEdgeNeighbor(CCoreDispInfo  const*,int)+31j
					; HasEdgeNeighbor(CCoreDispInfo	 const*,int)+46j ...
		add	esp, 4
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z15HasEdgeNeighborPK13CCoreDispInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupCornerNeighbors(CCoreDispInfo *,	CCoreDispInfo *, int *)
_Z20SetupCornerNeighborsP13CCoreDispInfoS0_Pi proc near
					; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+109p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	eax, [ebx+204h]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_Z15HasEdgeNeighborPK13CCoreDispInfoi ;	HasEdgeNeighbor(CCoreDispInfo  const*,int)
		test	al, al
		jnz	loc_9709A
		mov	[ebp+var_1C], 0
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_24], 0FFFFFFFFh
		mov	[ebp+var_20], 0

loc_96FA5:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+12Ej
		mov	esi, [ebp+arg_0]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax]
		mov	edx, [ebp+var_1C]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	edx, [ebp+arg_0]
		movsx	edi, word ptr [eax+2]
		mov	esi, eax
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax]
		imul	edi, [eax+24h]
		movsx	eax, word ptr [esi]
		mov	esi, [ebp+arg_0]
		add	edi, eax
		lea	edx, [edi+edi*8]
		shl	edx, 4
		add	edx, [esi+1B8h]
		xor	esi, esi
		add	edx, 28h

loc_96FEB:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+120j
		mov	eax, [ebx]
		mov	[ebp+var_2C], edx
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		movsx	ecx, word ptr [eax+2]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_30], ecx
		call	dword ptr [eax]
		mov	ecx, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		imul	ecx, [eax+24h]
		movsx	eax, word ptr [edi]
		fld	dword ptr [edx]
		add	ecx, eax
		lea	eax, [ecx+ecx*8]
		shl	eax, 4
		add	eax, [ebx+1B8h]
		fsub	dword ptr [eax+28h]
		fabs
		fld	ds:flt_1EBD88
		fxch	st(1)
		fcomip	st, st(1)
		ja	short loc_97070
		fld	dword ptr [edx+4]
		fsub	dword ptr [eax+2Ch]
		fabs
		fcomip	st, st(1)
		ja	short loc_97078
		fld	dword ptr [edx+8]
		fsub	dword ptr [eax+30h]
		fabs
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_9707A
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_28], esi
		add	[ebp+var_20], 1
		mov	[ebp+var_24], eax
		jmp	short loc_9707A
; ---------------------------------------------------------------------------
		align 10h

loc_97070:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+DDj
		fstp	st
		jmp	short loc_9707A
; ---------------------------------------------------------------------------
		align 8

loc_97078:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+E9j
		fstp	st

loc_9707A:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+F9j
					; SetupCornerNeighbors(CCoreDispInfo *,CCoreDispInfo *,int *)+108j ...
		add	esi, 1
		cmp	esi, 4
		jnz	loc_96FEB
		add	[ebp+var_1C], 1
		cmp	[ebp+var_1C], 4
		jnz	loc_96FA5
		cmp	[ebp+var_20], 1
		jz	short loc_970A8

loc_9709A:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+23j
					; SetupCornerNeighbors(CCoreDispInfo *,CCoreDispInfo *,int *)+180j ...
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_970A8:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+138j
		mov	edx, [ebp+arg_0]
		mov	esi, [ebp+var_24]
		mov	eax, [edx]
		mov	[esp], edx
		mov	[esp+4], esi
		call	dword ptr [eax+8]
		mov	edx, [ebp+var_28]
		mov	esi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+8]
		movzx	edx, byte ptr [esi+8]
		cmp	dl, 3
		ja	short loc_970DA
		cmp	byte ptr [eax+8], 3
		jbe	short loc_970E2

loc_970DA:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+172j
		mov	edx, [ebp+arg_8]
		add	dword ptr [edx], 1
		jmp	short loc_9709A
; ---------------------------------------------------------------------------

loc_970E2:				; CODE XREF: SetupCornerNeighbors(CCoreDispInfo	*,CCoreDispInfo	*,int *)+178j
		mov	ebx, [ebx+204h]
		movzx	ecx, dl
		add	edx, 1
		mov	[esi+ecx*2], bx
		mov	[esi+8], dl
		mov	esi, [ebp+arg_0]
		movzx	edx, byte ptr [eax+8]
		mov	ebx, [esi+204h]
		movzx	ecx, dl
		add	edx, 1
		mov	[eax+ecx*2], bx
		mov	[eax+8], dl
		jmp	short loc_9709A
_Z20SetupCornerNeighborsP13CCoreDispInfoS0_Pi endp

; ---------------------------------------------------------------------------
		jmp	short _Z28VerifyNeighborVertConnectionP16CDispUtilsHelperRK10CVertIndexPKS_S3_i	; VerifyNeighborVertConnection(CDispUtilsHelper	*,CVertIndex  const&,CDispUtilsHelper const*,CVertIndex	 const&,int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VerifyNeighborVertConnection(CDispUtilsHelper	*, CVertIndex  const&, CDispUtilsHelper	const*,	CVertIndex  const&, int)
_Z28VerifyNeighborVertConnectionP16CDispUtilsHelperRK10CVertIndexPKS_S3_i proc near
					; CODE XREF: .text:00097111j
					; VerifyNeighborConnections(CCoreDispInfo **,int)+9Cp

var_2A		= word ptr -2Ah
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		lea	edi, [ebp+var_20]
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	esi, 1
		mov	[ebp+var_20], 0FFFFh
		mov	[esp+8], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_1E], 0FFFFh
		mov	[esp+0Ch], edi
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z21TransformIntoNeighborP16CDispUtilsHelperiRK10CVertIndexRS1_	; TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_9716D
		xor	esi, esi
		cmp	eax, [ebp+arg_8]
		jz	short loc_97180

loc_9716D:				; CODE XREF: VerifyNeighborVertConnection(CDispUtilsHelper *,CVertIndex	 const&,CDispUtilsHelper const*,CVertIndex  const&,int)+44j
					; VerifyNeighborVertConnection(CDispUtilsHelper	*,CVertIndex  const&,CDispUtilsHelper const*,CVertIndex	 const&,int)+6Aj ...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_97180:				; CODE XREF: VerifyNeighborVertConnection(CDispUtilsHelper *,CVertIndex	 const&,CDispUtilsHelper const*,CVertIndex  const&,int)+4Bj
		mov	edx, [ebp+arg_C]
		movzx	edx, word ptr [edx]
		cmp	[ebp+var_20], dx
		jnz	short loc_9716D
		mov	edx, [ebp+arg_C]
		movzx	edx, word ptr [edx+2]
		cmp	[ebp+var_1E], dx
		jnz	short loc_9716D
		mov	[ebp+var_1C], 0FFFFh
		mov	[ebp+var_1A], 0FFFFh
		mov	eax, [eax]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	ecx, [eax+1Ch]
		movzx	eax, [ebp+var_20]
		mov	[ebp+var_2A], ax
		xor	eax, eax
		cmp	[ebp+var_2A], 0
		jnz	short loc_97200

loc_971C0:				; CODE XREF: VerifyNeighborVertConnection(CDispUtilsHelper *,CVertIndex	 const&,CDispUtilsHelper const*,CVertIndex  const&,int)+102j
					; VerifyNeighborVertConnection(CDispUtilsHelper	*,CVertIndex  const&,CDispUtilsHelper const*,CVertIndex	 const&,int)+115j ...
		lea	edx, [ebp+var_1C]
		mov	[esp+8], edi
		xor	esi, esi
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_Z21TransformIntoNeighborP16CDispUtilsHelperiRK10CVertIndexRS1_	; TransformIntoNeighbor(CDispUtilsHelper *,int,CVertIndex  const&,CVertIndex&)
		cmp	[ebp+arg_0], eax
		jnz	short loc_9716D
		movzx	eax, [ebp+var_1C]
		mov	edx, [ebp+arg_4]
		cmp	[edx], ax
		jnz	short loc_9716D
		movzx	eax, [ebp+var_1A]
		cmp	[edx+2], ax
		setz	dl
		mov	esi, edx
		jmp	loc_9716D
; ---------------------------------------------------------------------------
		align 10h

loc_97200:				; CODE XREF: VerifyNeighborVertConnection(CDispUtilsHelper *,CVertIndex	 const&,CDispUtilsHelper const*,CVertIndex  const&,int)+9Ej
		mov	edx, 1
		shl	edx, cl
		movzx	ecx, [ebp+var_1E]
		movsx	eax, cx
		cmp	edx, eax
		jz	short loc_97230
		movsx	eax, [ebp+var_2A]
		cmp	edx, eax
		jz	short loc_97240
		test	cx, cx
		mov	eax, 3
		jz	short loc_971C0
		jmp	loc_9716D
; ---------------------------------------------------------------------------
		align 10h

loc_97230:				; CODE XREF: VerifyNeighborVertConnection(CDispUtilsHelper *,CVertIndex	 const&,CDispUtilsHelper const*,CVertIndex  const&,int)+F0j
		mov	eax, 1
		jmp	short loc_971C0
; ---------------------------------------------------------------------------
		align 10h

loc_97240:				; CODE XREF: VerifyNeighborVertConnection(CDispUtilsHelper *,CVertIndex	 const&,CDispUtilsHelper const*,CVertIndex  const&,int)+F8j
		mov	eax, 2
		jmp	loc_971C0
_Z28VerifyNeighborVertConnectionP16CDispUtilsHelperRK10CVertIndexPKS_S3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VerifyNeighborConnections(CCoreDispInfo **, int)
_Z25VerifyNeighborConnectionsPP13CCoreDispInfoi	proc near
					; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+149p

var_88		= qword	ptr -88h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= qword	ptr -68h
var_50		= dword	ptr -50h
var_49		= byte ptr -49h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2C		= word ptr -2Ch
var_28		= byte ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_40]
		push	ebx
		sub	esp, 9Ch
		mov	[ebp+var_50], 0
		mov	[ebp+var_49], 1

loc_9726A:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+205j
		mov	edx, [ebp+arg_4]
		cmp	[ebp+var_50], edx
		jge	loc_97444
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_97280:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+1EEj
		mov	edx, [ebp+var_50]
		xor	edi, edi
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax+edx*4]

loc_9728B:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+1DEj
		mov	[ebp+var_34], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_40], ebx
		mov	[ebp+var_3C], edi
		mov	[ebp+var_38], 0FFFFFFFFh
		lea	esi, [esi+0]

loc_972C0:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+A3j
		mov	[esp], esi
		call	_ZN17CDispEdgeIterator4NextEv ;	CDispEdgeIterator::Next(void)
		test	al, al
		jz	loc_97428

loc_972D0:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+1CCj
		lea	edx, [ebp+var_28]
		mov	[esp+10h], edi
		mov	[esp+0Ch], edx
		mov	eax, [esi+0Ch]
		mov	[esp], ebx
		mov	[esp+8], eax
		lea	eax, [ebp+var_30]
		mov	[esp+4], eax
		call	_Z28VerifyNeighborVertConnectionP16CDispUtilsHelperRK10CVertIndexPKS_S3_i ; VerifyNeighborVertConnection(CDispUtilsHelper *,CVertIndex	const&,CDispUtilsHelper	const*,CVertIndex  const&,int)
		test	al, al
		jnz	short loc_972C0
		mov	eax, [ebx]
		mov	[esp+4], edi
		mov	[esp], ebx
		call	dword ptr [eax+4]
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0FFFFh
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		movsx	ecx, word ptr [eax+2]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[ebp+var_6C], edx
		mov	[esp], ebx
		mov	[ebp+var_70], ecx
		call	dword ptr [eax]
		mov	edx, [ebp+var_6C]
		mov	ecx, [ebp+var_70]
		imul	ecx, [eax+24h]
		movsx	eax, word ptr [edx]
		add	ecx, eax
		lea	eax, [ecx+ecx*8]
		shl	eax, 4
		add	eax, [ebx+1B8h]
		fld	dword ptr [eax+30h]
		mov	eax, [ebx]
		fstp	[ebp+var_68]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		movsx	ecx, word ptr [eax+2]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[ebp+var_6C], edx
		mov	[esp], ebx
		mov	[ebp+var_70], ecx
		call	dword ptr [eax]
		mov	edx, [ebp+var_6C]
		mov	ecx, [ebp+var_70]
		imul	ecx, [eax+24h]
		movsx	eax, word ptr [edx]
		add	ecx, eax
		lea	eax, [ecx+ecx*8]
		shl	eax, 4
		add	eax, [ebx+1B8h]
		fld	dword ptr [eax+2Ch]
		mov	eax, [ebx]
		fstp	[ebp+var_88]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		movsx	ecx, word ptr [eax+2]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[ebp+var_6C], edx
		mov	[esp], ebx
		mov	[ebp+var_70], ecx
		call	dword ptr [eax]
		mov	edx, [ebp+var_6C]
		fld	[ebp+var_68]
		mov	ecx, [ebp+var_70]
		fstp	qword ptr [esp+14h]
		fld	[ebp+var_88]
		fstp	qword ptr [esp+0Ch]
		imul	ecx, [eax+24h]
		movsx	eax, word ptr [edx]
		add	ecx, eax
		lea	eax, [ecx+ecx*8]
		shl	eax, 4
		add	eax, [ebx+1B8h]
		fld	dword ptr [eax+28h]
		mov	dword ptr [esp], offset	aWarningInvalid	; "Warning: invalid neighbor connection	on"...
		fstp	qword ptr [esp+4]
		call	Warning
		mov	[ebp+var_49], 0
		mov	[esp], esi
		call	_ZN17CDispEdgeIterator4NextEv ;	CDispEdgeIterator::Next(void)
		test	al, al
		jnz	loc_972D0
		lea	esi, [esi+0]

loc_97428:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+7Aj
		add	edi, 1
		cmp	edi, 4
		jnz	loc_9728B
		add	[ebp+var_50], 1
		mov	edx, [ebp+arg_4]
		cmp	[ebp+var_50], edx
		jl	loc_97280

loc_97444:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+20j
		cmp	[ebp+var_49], 0
		jnz	short loc_9745A
		mov	[ebp+var_50], 0
		mov	[ebp+var_49], 1
		jmp	loc_9726A
; ---------------------------------------------------------------------------

loc_9745A:				; CODE XREF: VerifyNeighborConnections(CCoreDispInfo **,int)+1F8j
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z25VerifyNeighborConnectionsPP13CCoreDispInfoi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsCorner(CVertIndex  const&, int)
_Z8IsCornerRK10CVertIndexi proc	near	; CODE XREF: IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+2Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		movzx	eax, word ptr [edx]
		test	ax, ax
		jnz	short loc_974A0
		movzx	edx, word ptr [edx+2]
		mov	eax, 1
		test	dx, dx
		jz	short loc_9749D
		movsx	edx, dx
		sub	ecx, 1
		xor	eax, eax
		cmp	edx, ecx
		setz	al

loc_9749D:				; CODE XREF: IsCorner(CVertIndex  const&,int)+1Ej
					; IsCorner(CVertIndex  const&,int)+3Aj	...
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_974A0:				; CODE XREF: IsCorner(CVertIndex  const&,int)+10j
		movsx	ebx, ax
		sub	ecx, 1
		xor	eax, eax
		cmp	ebx, ecx
		jnz	short loc_9749D
		movzx	edx, word ptr [edx+2]
		mov	al, 1
		test	dx, dx
		jz	short loc_9749D
		movsx	edx, dx
		xor	eax, eax
		cmp	ebx, edx
		setz	al
		jmp	short loc_9749D
_Z8IsCornerRK10CVertIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsVertAllowed(CDispUtilsHelper *, CVertIndex	const&,	int)
_Z13IsVertAllowedP16CDispUtilsHelperRK10CVertIndexi proc near
					; CODE XREF: DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex  const&,int,int &)+49p

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, 1
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	eax, [eax+24h]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z8IsCornerRK10CVertIndexi ; IsCorner(CVertIndex  const&,int)
		test	eax, eax
		jz	short loc_97518

loc_97504:				; CODE XREF: IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+86j
					; IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+B0j	...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_97518:				; CODE XREF: IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+32j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		xor	edx, edx
		mov	ecx, [eax+1Ch]
		movzx	eax, word ptr [edi]
		test	ax, ax
		jz	short loc_97560
		mov	dl, 1
		shl	edx, cl
		movzx	ecx, word ptr [edi+2]
		mov	word ptr [ebp+var_2C], cx
		movsx	ecx, cx
		cmp	edx, ecx
		jz	loc_97650
		cwde
		cmp	edx, eax
		jz	loc_97660
		cmp	word ptr [ebp+var_2C], 0
		mov	edx, 3
		jnz	short loc_97504
		nop
		lea	esi, [esi+0]

loc_97560:				; CODE XREF: IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+5Aj
					; IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+185j ...
		mov	[esp+4], edx
		mov	esi, 1
		mov	[ebp+var_34], edx
		mov	[esp+8], edi
		mov	[esp], ebx
		call	_Z19GetSubNeighborIndexP16CDispUtilsHelperiRK10CVertIndex ; GetSubNeighborIndex(CDispUtilsHelper *,int,CVertIndex  const&)
		mov	edx, [ebp+var_34]
		cmp	eax, 0FFFFFFFFh
		mov	ecx, eax
		jz	short loc_97504
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[ebp+var_38], ecx
		mov	[esp], ebx
		call	dword ptr [eax+4]
		mov	ecx, [ebp+var_38]
		lea	esi, [ecx+ecx*2]
		lea	esi, [eax+esi*2]
		mov	[ebp+var_30], esi
		movzx	esi, word ptr [esi]
		mov	[esp], ebx
		mov	[esp+4], esi
		mov	esi, [ebx]
		call	dword ptr [esi+0Ch]
		mov	esi, [ebp+var_30]
		mov	[ebp+var_2C], eax
		movzx	eax, byte ptr [esi+4]
		lea	eax, [eax+eax*2]
		mov	[ebp+var_3C], eax
		movzx	eax, byte ptr [esi+3]
		mov	esi, [ebp+var_3C]
		lea	eax, [eax+eax*8]
		shl	eax, 2
		lea	eax, g_ShiftInfos[eax+esi*4]
		mov	esi, [ebp+var_2C]
		mov	[ebp+var_30], eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax]
		mov	esi, [ebp+var_30]
		mov	eax, [eax+1Ch]
		mov	edx, [ebp+var_34]
		mov	ecx, [ebp+var_38]
		add	eax, [esi+4]
		xor	esi, esi
		cmp	eax, [ebp+arg_8]
		jle	loc_97504
		lea	eax, [ebp+var_1C]
		mov	[esp+8], ecx
		mov	[esp+4], edx
		mov	[esp], ebx
		mov	[esp+10h], eax
		mov	[esp+0Ch], edi
		call	_Z24TransformIntoSubNeighborP16CDispUtilsHelperiiRK10CVertIndexRS1_ ; TransformIntoSubNeighbor(CDispUtilsHelper	*,int,int,CVertIndex  const&,CVertIndex&)
		mov	edx, [ebp+var_2C]
		movsx	ebx, [ebp+var_1A]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax]
		mov	esi, [ebp+var_2C]
		mov	ecx, [eax+24h]
		movsx	eax, [ebp+var_1C]
		imul	ecx, ebx
		add	ecx, eax
		mov	eax, 1
		shl	eax, cl
		shr	ecx, 5
		test	[esi+ecx*4+1DCh], eax
		setnz	al
		mov	esi, eax
		jmp	loc_97504
; ---------------------------------------------------------------------------
		align 10h

loc_97650:				; CODE XREF: IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+6Dj
		mov	edx, 1
		jmp	loc_97560
; ---------------------------------------------------------------------------
		align 10h

loc_97660:				; CODE XREF: IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)+76j
		mov	edx, 2
		jmp	loc_97560
_Z13IsVertAllowedP16CDispUtilsHelperRK10CVertIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; UnallowVerts_R(CDispUtilsHelper *, CVertIndex	 const&, int &)
_Z14UnallowVerts_RP16CDispUtilsHelperRK10CVertIndexRi proc near
					; CODE XREF: UnallowVerts_R(CDispUtilsHelper *,CVertIndex  const&,int &)+9Bp
					; DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex	 const&,int,int	&)+C6p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_8]
		movsx	ecx, word ptr [edi+2]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_20], ecx
		call	dword ptr [eax]
		mov	ecx, [ebp+var_20]
		imul	ecx, [eax+24h]
		movsx	eax, word ptr [edi]
		add	ecx, eax
		mov	eax, 1
		mov	edx, ecx
		shl	eax, cl
		shr	edx, 5
		test	[ebx+edx*4+1DCh], eax
		jz	short loc_976F5
		add	dword ptr [esi], 1
		mov	edx, ecx
		not	eax
		sar	edx, 5
		imul	ecx, 2Ah
		xor	edi, edi
		and	[ebx+edx*4+1DCh], eax
		mov	[ebp+var_1C], ecx

loc_976CA:				; CODE XREF: UnallowVerts_R(CDispUtilsHelper *,CVertIndex  const&,int &)+83j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		lea	edx, [edi+edi*2]
		mov	eax, [eax]
		add	eax, [ebp+var_1C]
		lea	eax, [eax+edx*2]
		cmp	word ptr [eax+0Ch], 0FFFFh
		lea	edx, [eax+0Ch]
		jz	short loc_976ED
		cmp	word ptr [eax+10h], 0FFFFh
		jz	short loc_97700

loc_976ED:				; CODE XREF: UnallowVerts_R(CDispUtilsHelper *,CVertIndex  const&,int &)+74j
					; UnallowVerts_R(CDispUtilsHelper *,CVertIndex	const&,int &)+A0j
		add	edi, 1
		cmp	edi, 4
		jnz	short loc_976CA

loc_976F5:				; CODE XREF: UnallowVerts_R(CDispUtilsHelper *,CVertIndex  const&,int &)+3Fj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_97700:				; CODE XREF: UnallowVerts_R(CDispUtilsHelper *,CVertIndex  const&,int &)+7Bj
		mov	[esp+8], esi
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_Z14UnallowVerts_RP16CDispUtilsHelperRK10CVertIndexRi ;	UnallowVerts_R(CDispUtilsHelper	*,CVertIndex  const&,int &)
		jmp	short loc_976ED
_Z14UnallowVerts_RP16CDispUtilsHelperRK10CVertIndexRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DisableUnallowedVerts_R(CDispUtilsHelper *, CVertIndex  const&, int, int &)
_Z23DisableUnallowedVerts_RP16CDispUtilsHelperRK10CVertIndexiRi	proc near
					; CODE XREF: DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex  const&,int,int &)+9Fp
					; SetupAllowedVerts(CCoreDispInfo **,int)+C5p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx]
		movsx	edi, word ptr [esi+2]
		mov	[esp], ebx
		call	dword ptr [eax]
		imul	edi, [eax+24h]
		movsx	eax, word ptr [esi]
		xor	esi, esi
		add	edi, eax
		shl	edi, 4
		mov	[ebp+var_20], edi

loc_9774B:				; CODE XREF: DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex  const&,int,int &)+58j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	edx, [ebp+arg_8]
		mov	eax, [eax+4]
		mov	[esp], ebx
		mov	[esp+8], edx
		add	eax, [ebp+var_20]
		lea	edi, [eax+esi*4]
		mov	[esp+4], edi
		call	_Z13IsVertAllowedP16CDispUtilsHelperRK10CVertIndexi ; IsVertAllowed(CDispUtilsHelper *,CVertIndex  const&,int)
		test	al, al
		jz	short loc_977D8

loc_97772:				; CODE XREF: DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex  const&,int,int &)+CBj
		add	esi, 1
		cmp	esi, 4
		jnz	short loc_9774B
		mov	edx, [ebp+arg_8]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	edi, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_1C], edx
		call	dword ptr [eax]
		mov	edx, [ebp+var_1C]
		cmp	edx, [eax+1Ch]
		jge	short loc_977C9
		xor	si, si

loc_97798:				; CODE XREF: DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex  const&,int,int &)+A7j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+var_1C]
		mov	[esp+8], edx
		mov	eax, [eax+8]
		mov	[esp], ebx
		add	eax, edi
		lea	eax, [eax+esi*4]
		add	esi, 1
		mov	[esp+4], eax
		call	_Z23DisableUnallowedVerts_RP16CDispUtilsHelperRK10CVertIndexiRi	; DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex	 const&,int,int	&)
		cmp	esi, 4
		jnz	short loc_97798

loc_977C9:				; CODE XREF: DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex  const&,int,int &)+73j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_977D8:				; CODE XREF: DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex  const&,int,int &)+50j
		mov	edx, [ebp+arg_C]
		mov	[esp+4], edi
		mov	[esp], ebx
		mov	[esp+8], edx
		call	_Z14UnallowVerts_RP16CDispUtilsHelperRK10CVertIndexRi ;	UnallowVerts_R(CDispUtilsHelper	*,CVertIndex  const&,int &)
		jmp	short loc_97772
_Z23DisableUnallowedVerts_RP16CDispUtilsHelperRK10CVertIndexiRi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupAllowedVerts(CCoreDispInfo **, int)
_Z17SetupAllowedVertsPP13CCoreDispInfoi	proc near

var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		test	edi, edi
		jle	short loc_97864
		xor	edx, edx
		lea	esi, [esi+0]

loc_97808:				; CODE XREF: SetupAllowedVerts(CCoreDispInfo **,int)+72j
		mov	ebx, [ecx+edx*4]
		mov	eax, ebx
		add	eax, 1DCh
		jz	short loc_9785D
		mov	dword ptr [ebx+1DCh], 0FFFFFFFFh
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	dword ptr [eax+8], 0FFFFFFFFh
		mov	dword ptr [eax+0Ch], 0FFFFFFFFh
		mov	dword ptr [eax+10h], 0FFFFFFFFh
		mov	dword ptr [eax+14h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0FFFFFFFFh
		mov	dword ptr [eax+1Ch], 0FFFFFFFFh
		mov	dword ptr [eax+20h], 0FFFFFFFFh
		mov	dword ptr [eax+24h], 0FFFFFFFFh

loc_9785D:				; CODE XREF: SetupAllowedVerts(CCoreDispInfo **,int)+22j
		add	edx, 1
		cmp	edx, edi
		jnz	short loc_97808

loc_97864:				; CODE XREF: SetupAllowedVerts(CCoreDispInfo **,int)+11j
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_34], ecx
		nop
		lea	esi, [esi+0]

loc_97870:				; CODE XREF: SetupAllowedVerts(CCoreDispInfo **,int)+DAj
		cmp	ebx, edi
		jl	short loc_97882

loc_97874:				; CODE XREF: SetupAllowedVerts(CCoreDispInfo **,int)+90j
		mov	ecx, esi
		test	cl, cl
		jz	short loc_978D0
		xor	ebx, ebx
		xor	esi, esi
		cmp	ebx, edi
		jge	short loc_97874

loc_97882:				; CODE XREF: SetupAllowedVerts(CCoreDispInfo **,int)+82j
		mov	ecx, [ebp+var_34]
		mov	edx, [ecx+ebx*4]
		mov	[ebp+var_1C], 0
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_2C], edx
		call	dword ptr [eax]
		mov	edx, [ebp+var_2C]
		lea	ecx, [ebp+var_1C]
		add	eax, 20h
		mov	[esp+0Ch], ecx
		mov	[esp+4], eax
		mov	dword ptr [esp+8], 0
		mov	[esp], edx
		call	_Z23DisableUnallowedVerts_RP16CDispUtilsHelperRK10CVertIndexiRi	; DisableUnallowedVerts_R(CDispUtilsHelper *,CVertIndex	 const&,int,int	&)
		mov	eax, [ebp+var_1C]
		test	eax, eax
		mov	eax, 1
		cmovnz	esi, eax
		add	ebx, 1
		jmp	short loc_97870
; ---------------------------------------------------------------------------
		align 10h

loc_978D0:				; CODE XREF: SetupAllowedVerts(CCoreDispInfo **,int)+88j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z17SetupAllowedVertsPP13CCoreDispInfoi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupDispBoxes(CCoreDispInfo **, int,	CUtlVector<CDispBox, CUtlMemory<CDispBox, int>>	&)
_Z14SetupDispBoxesPP13CCoreDispInfoiR10CUtlVectorI8CDispBox10CUtlMemoryIS3_iEE proc near
					; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+66p
					; FindNeighboringDispSurfs(CCoreDispInfo **,int)+1B3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		mov	[esp+4], esi
		mov	[esp], edi
		call	_ZN10CUtlVectorI8CDispBox10CUtlMemoryIS0_iEE8SetCountEi	; CUtlVector<CDispBox,CUtlMemory<CDispBox,int>>::SetCount(int)
		test	esi, esi
		jle	short loc_97929
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_97908:				; CODE XREF: SetupDispBoxes(CCoreDispInfo **,int,CUtlVector<CDispBox,CUtlMemory<CDispBox,int>> &)+47j
		mov	edx, [edi]
		lea	eax, [ebx+ebx*2]
		lea	eax, [edx+eax*8]
		mov	edx, [ebp+arg_0]
		mov	[esp+4], eax
		mov	eax, [edx+ebx*4]
		add	ebx, 1
		mov	[esp], eax
		call	_Z10GetDispBoxP13CCoreDispInfoR8CDispBox ; GetDispBox(CCoreDispInfo *,CDispBox &)
		cmp	ebx, esi
		jnz	short loc_97908

loc_97929:				; CODE XREF: SetupDispBoxes(CCoreDispInfo **,int,CUtlVector<CDispBox,CUtlMemory<CDispBox,int>> &)+1Dj
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z14SetupDispBoxesPP13CCoreDispInfoiR10CUtlVectorI8CDispBox10CUtlMemoryIS3_iEE endp

; ---------------------------------------------------------------------------
		jmp	short _Z24FindNeighboringDispSurfsPP13CCoreDispInfoi ; FindNeighboringDispSurfs(CCoreDispInfo **,int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FindNeighboringDispSurfs(CCoreDispInfo **, int)
_Z24FindNeighboringDispSurfsPP13CCoreDispInfoi proc near ; CODE	XREF: .text:00097931j

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	ecx, [ebp+arg_4]
		test	ecx, ecx
		jle	loc_97AB9
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx

loc_97959:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+2Aj
		mov	eax, [esi+ebx*4]
		add	ebx, 1
		mov	[esp], eax
		call	_Z17ClearNeighborDataP13CCoreDispInfo ;	ClearNeighborData(CCoreDispInfo	*)
		cmp	ebx, [ebp+arg_4]
		jnz	short loc_97959
		lea	eax, [ebp+var_30]
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_44], eax
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[esp], eax
		mov	[ebp+var_20], 0
		mov	[esp+4], edx
		call	_Z14SetupDispBoxesPP13CCoreDispInfoiR10CUtlVectorI8CDispBox10CUtlMemoryIS3_iEE ; SetupDispBoxes(CCoreDispInfo **,int,CUtlVector<CDispBox,CUtlMemory<CDispBox,int>> &)
		mov	[ebp+var_1C], 0
		xor	eax, eax
		mov	[ebp+var_4C], 18h
		nop
		lea	esi, [esi+0]

loc_979C0:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+120j
		mov	edx, [ebp+arg_0]
		mov	edx, [edx+eax*4]
		add	eax, 1
		mov	[ebp+var_48], eax
		mov	[ebp+var_3C], edx
		mov	edx, [ebp+arg_4]
		cmp	eax, edx
		jz	loc_97A65
		mov	eax, [ebp+var_4C]
		mov	esi, [ebp+var_4C]
		mov	ebx, [ebp+var_48]
		sub	eax, 18h
		mov	[ebp+var_40], eax
		lea	esi, [esi+0]

loc_979F0:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+117j
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_44]
		mov	edi, [edx+ebx*4]
		mov	edx, [eax]
		xor	eax, eax
		lea	ecx, [edx+esi]
		add	edx, [ebp+var_40]

loc_97A03:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+E7j
		fld	dword ptr [ecx+eax]
		fld	dword ptr [edx+eax+0Ch]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_97A4E
		fld	dword ptr [edx+eax]
		fld	dword ptr [ecx+eax+0Ch]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_97A4E
		add	eax, 4
		cmp	eax, 0Ch
		jnz	short loc_97A03
		mov	edx, [ebp+var_3C]
		mov	[esp+4], edi
		mov	[esp], edx
		call	_Z18SetupEdgeNeighborsP13CCoreDispInfoS0_ ; SetupEdgeNeighbors(CCoreDispInfo *,CCoreDispInfo *)
		mov	eax, [ebp+var_3C]
		lea	edx, [ebp+var_1C]
		mov	[esp+4], edi
		mov	[esp+8], edx
		mov	[esp], eax
		call	_Z20SetupCornerNeighborsP13CCoreDispInfoS0_Pi ;	SetupCornerNeighbors(CCoreDispInfo *,CCoreDispInfo *,int *)

loc_97A4E:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+D0j
					; FindNeighboringDispSurfs(CCoreDispInfo **,int)+DFj
		add	ebx, 1
		add	esi, 18h
		cmp	ebx, [ebp+arg_4]
		jnz	short loc_979F0
		add	[ebp+var_4C], 18h
		mov	eax, [ebp+var_48]
		jmp	loc_979C0
; ---------------------------------------------------------------------------

loc_97A65:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+94j
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_97A7C
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aWarningOverflo	; "Warning: overflowed %d displacement cor"...
		call	Warning

loc_97A7C:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+12Aj
					; FindNeighboringDispSurfs(CCoreDispInfo **,int)+1BFj
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edx
		mov	[esp], eax
		call	_Z25VerifyNeighborConnectionsPP13CCoreDispInfoi	; VerifyNeighborConnections(CCoreDispInfo **,int)
		mov	edx, [ebp+var_44]
		mov	[ebp+var_24], 0
		mov	[esp], edx
		call	_ZN10CUtlMemoryI8CDispBoxiE5PurgeEv ; CUtlMemory<CDispBox,int>::Purge(void)
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_44]
		mov	[esp], eax
		call	_ZN10CUtlMemoryI8CDispBoxiE5PurgeEv ; CUtlMemory<CDispBox,int>::Purge(void)
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_97AB9:				; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+Ej
		lea	eax, [ebp+var_30]
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_44], eax
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	_Z14SetupDispBoxesPP13CCoreDispInfoiR10CUtlVectorI8CDispBox10CUtlMemoryIS3_iEE ; SetupDispBoxes(CCoreDispInfo **,int,CUtlVector<CDispBox,CUtlMemory<CDispBox,int>> &)
		mov	[ebp+var_1C], 0
		jmp	loc_97A7C
_Z24FindNeighboringDispSurfsPP13CCoreDispInfoi endp

; ---------------------------------------------------------------------------
		mov	edx, [ebp-44h]
		mov	ebx, eax
		mov	dword ptr [ebp-24h], 0
		mov	[esp], edx
		call	_ZN10CUtlMemoryI8CDispBoxiE5PurgeEv ; CUtlMemory<CDispBox,int>::Purge(void)
		mov	eax, [ebp-30h]
		mov	[ebp-20h], eax
		mov	eax, [ebp-44h]
		mov	[esp], eax
		call	_ZN10CUtlMemoryI8CDispBoxiE5PurgeEv ; CUtlMemory<CDispBox,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispBox, int>::Purge(void)
_ZN10CUtlMemoryI8CDispBoxiE5PurgeEv proc near
					; CODE XREF: FindNeighboringDispSurfs(CCoreDispInfo **,int)+15Bp
					; FindNeighboringDispSurfs(CCoreDispInfo **,int)+16Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_97B6C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_97B65
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_97B65:				; CODE XREF: CUtlMemory<CDispBox,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_97B6C:				; CODE XREF: CUtlMemory<CDispBox,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI8CDispBoxiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispBox, int>::Grow(int)
_ZN10CUtlMemoryI8CDispBoxiE4GrowEi proc	near
					; CODE XREF: CUtlVector<CDispBox,CUtlMemory<CDispBox,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_97BE4
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_97BF0
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_97BC7
		lea	esi, [esi+0]

loc_97BB8:				; CODE XREF: CUtlMemory<CDispBox,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_97BB8

loc_97BC7:				; CODE XREF: CUtlMemory<CDispBox,int>::Grow(int)+30j
					; CUtlMemory<CDispBox,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 3
		test	edx, edx
		jz	short loc_97C15

loc_97BD6:				; CODE XREF: CUtlMemory<CDispBox,int>::Grow(int)+93j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_97BE4:				; CODE XREF: CUtlMemory<CDispBox,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_97BF0:				; CODE XREF: CUtlMemory<CDispBox,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_97BC7
		db	66h
		nop

loc_97C00:				; CODE XREF: CUtlMemory<CDispBox,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_97C00
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 3
		test	edx, edx
		jnz	short loc_97BD6

loc_97C15:				; CODE XREF: CUtlMemory<CDispBox,int>::Grow(int)+54j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI8CDispBoxiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDispBox, CUtlMemory<CDispBox, int>>::SetCount(int)
_ZN10CUtlVectorI8CDispBox10CUtlMemoryIS0_iEE8SetCountEi	proc near
					; CODE XREF: SetupDispBoxes(CCoreDispInfo **,int,CUtlVector<CDispBox,CUtlMemory<CDispBox,int>> &)+16p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_97C5F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_97C70
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_97C5F:				; CODE XREF: CUtlVector<CDispBox,CUtlMemory<CDispBox,int>>::SetCount(int)+1Ej
					; CUtlVector<CDispBox,CUtlMemory<CDispBox,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_97C70:				; CODE XREF: CUtlVector<CDispBox,CUtlMemory<CDispBox,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryI8CDispBoxiE4GrowEi ; CUtlMemory<CDispBox,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		test	eax, eax
		setnle	cl
		test	esi, esi
		setnle	dl
		mov	edi, edx
		lea	edx, [esi+eax]
		mov	[ebx+0Ch], edx
		mov	edx, [ebx]
		mov	[ebx+10h], edx
		mov	ebx, edi
		test	bl, bl
		jz	short loc_97C5F
		test	cl, cl
		jz	short loc_97C5F
		lea	eax, [eax+eax*2]
		mov	[esp+4], edx	; src
		shl	eax, 3
		mov	[esp+8], eax	; n
		lea	eax, [esi+esi*2]
		lea	eax, [edx+eax*8]
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorI8CDispBox10CUtlMemoryIS0_iEE8SetCountEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InitPowerInfoTriInfos_R(CPowerInfo *,	CVertIndex  const&, CTriInfo *&, int, int)
_ZL23InitPowerInfoTriInfos_RP10CPowerInfoRK10CVertIndexRP8CTriInfoii proc near
					; CODE XREF: InitPowerInfoTriInfos_R(CPowerInfo	*,CVertIndex  const&,CTriInfo *&,int,int)+68p
					; InitPowerInfo(CPowerInfo *,int)+121p

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3A		= word ptr -3Ah
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, eax
		push	ebx
		sub	esp, 4Ch
		mov	[ebp+var_40], ecx
		movzx	eax, word ptr [edx+2]
		movzx	ecx, byte ptr [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	word ptr [ebp+var_2C], ax
		mov	eax, 1
		shl	eax, cl
		movsx	ecx, word ptr [ebp+var_2C]
		add	eax, 1
		add	edi, 1
		mov	[ebp+var_38], eax
		movzx	eax, word ptr [edx]
		imul	ecx, [ebp+var_38]
		movsx	ebx, ax
		add	ebx, ecx
		cmp	[ebp+arg_0], edi
		mov	[ebp+var_44], ebx
		jle	short loc_97D50
		shl	ebx, 4
		mov	[ebp+var_2C], ebx
		xor	ebx, ebx

loc_97D1D:				; CODE XREF: InitPowerInfoTriInfos_R(CPowerInfo	*,CVertIndex  const&,CTriInfo *&,int,int)+70j
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+arg_0]
		add	eax, [esi+8]
		mov	[esp+4], edi
		mov	[esp], ecx
		mov	ecx, [ebp+var_40]
		lea	edx, [eax+ebx*4]
		mov	eax, esi
		add	ebx, 1
		call	_ZL23InitPowerInfoTriInfos_RP10CPowerInfoRK10CVertIndexRP8CTriInfoii ; InitPowerInfoTriInfos_R(CPowerInfo *,CVertIndex	const&,CTriInfo	*&,int,int)
		cmp	ebx, 4
		jnz	short loc_97D1D

loc_97D42:				; CODE XREF: InitPowerInfoTriInfos_R(CPowerInfo	*,CVertIndex  const&,CTriInfo *&,int,int)+88j
					; InitPowerInfoTriInfos_R(CPowerInfo *,CVertIndex  const&,CTriInfo *&,int,int)+D1j
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_97D50:				; CODE XREF: InitPowerInfoTriInfos_R(CPowerInfo	*,CVertIndex  const&,CTriInfo *&,int,int)+43j
		cmp	word ptr g_TWinding+4, 0
		jle	short loc_97D42
		mov	ecx, [ebp+arg_0]
		mov	ebx, 1
		mov	[ebp+var_30], 0
		mov	[ebp+var_34], edx
		mov	edi, [ebp+var_40]
		sub	ecx, [ebp+arg_4]
		sub	ecx, 1
		shl	ebx, cl
		xor	ecx, ecx
		mov	[ebp+var_28], bx
		xor	ebx, ebx
		jmp	short loc_97DBB
; ---------------------------------------------------------------------------
		align 8

loc_97D88:				; CODE XREF: InitPowerInfoTriInfos_R(CPowerInfo	*,CVertIndex  const&,CTriInfo *&,int,int)+115j
		imul	esi, [ebp+var_38]
		add	eax, esi
		mov	[ebp+var_3A], ax

loc_97D92:				; CODE XREF: InitPowerInfoTriInfos_R(CPowerInfo	*,CVertIndex  const&,CTriInfo *&,int,int)+13Ej
		movsx	eax, word ptr g_TWinding+4
		add	ecx, 1
		add	ebx, 6
		cmp	eax, ecx
		jle	short loc_97D42
		mov	edx, [ebp+var_34]
		mov	[ebp+var_30], 1
		movzx	edx, word ptr [edx+2]
		mov	word ptr [ebp+var_2C], dx
		mov	edx, [ebp+var_34]
		movzx	eax, word ptr [edx]

loc_97DBB:				; CODE XREF: InitPowerInfoTriInfos_R(CPowerInfo	*,CVertIndex  const&,CTriInfo *&,int,int)+AFj
		mov	edx, g_TWinding
		movzx	esi, [ebp+var_28]
		add	edx, ebx
		imul	si, [edx+2]
		movzx	edx, word ptr [edx]
		add	si, word ptr [ebp+var_2C]
		imul	dx, [ebp+var_28]
		movsx	esi, si
		add	eax, edx
		cmp	[ebp+var_30], 1
		cwde
		mov	[ebp+var_2C], eax
		jnz	short loc_97D88
		mov	eax, [edi]
		movzx	edx, [ebp+var_3A]
		imul	esi, [ebp+var_38]
		mov	[eax], dx
		add	esi, [ebp+var_2C]
		mov	edx, [edi]
		mov	[ebp+var_3A], si
		mov	[edx+2], si
		movzx	edx, word ptr [ebp+var_44]
		mov	eax, [edi]
		mov	[eax+4], dx
		add	dword ptr [edi], 6
		jmp	short loc_97D92
_ZL23InitPowerInfoTriInfos_RP10CPowerInfoRK10CVertIndexRP8CTriInfoii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetEdgeVertIndex(int,	int, int, CVertIndex &)
_ZL16GetEdgeVertIndexiiiR10CVertIndex proc near
					; CODE XREF: InitPowerInfo(CPowerInfo *,int)+149p
					; InitPowerInfo(CPowerInfo *,int)+15Fp	...

arg_0		= dword	ptr  8

		push	ebp
		cmp	edx, 2
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		jz	short loc_97E48
		cmp	edx, 1
		jz	short loc_97E58
		test	edx, edx
		jz	short loc_97E38
		mov	[ebx], cx
		mov	word ptr [ebx+2], 0
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_97E38:				; CODE XREF: GetEdgeVertIndex(int,int,int,CVertIndex &)+13j
		mov	word ptr [ebx],	0
		mov	[ebx+2], cx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_97E48:				; CODE XREF: GetEdgeVertIndex(int,int,int,CVertIndex &)+Aj
		sub	eax, 1
		mov	[ebx+2], cx
		mov	[ebx], ax
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_97E58:				; CODE XREF: GetEdgeVertIndex(int,int,int,CVertIndex &)+Fj
		sub	eax, 1
		mov	[ebx], cx
		mov	[ebx+2], ax
		pop	ebx
		pop	ebp
		retn
_ZL16GetEdgeVertIndexiiiR10CVertIndex endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8 proc near
					; CODE XREF: InitPowerInfo_R(CPowerInfo	*,int,CVertIndex  const&,CVertIndex  const&,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	 const&,int)+97p
					; InitPowerInfo_R(CPowerInfo *,int,CVertIndex  const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,int)+B1p ...

var_25		= byte ptr -25h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, edx
		push	ebx
		mov	ebx, ecx
		sub	esp, 2Ch
		mov	[ebp+var_20], 1
		movzx	ecx, byte ptr [ebp+arg_0]
		movzx	edx, [ebp+arg_4]
		movsx	edi, word ptr [esi]
		shl	[ebp+var_20], cl
		mov	[ebp+var_25], dl
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_1C], edx
		movsx	edx, word ptr [esi+2]
		imul	edx, [ebp+var_1C]
		add	edi, edx
		xor	edx, edx
		imul	edi, 2Ah
		add	edi, eax
		cmp	word ptr [edi],	0FFFFh
		jz	short loc_97EBF
		xor	edx, edx
		cmp	word ptr [edi+6], 0FFFFh
		setz	dl

loc_97EBF:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+43j
		lea	ecx, [edx+edx]
		add	edx, ecx
		mov	ecx, [ebx]
		lea	edx, [edi+edx*2]
		mov	word ptr [edx+4], 0FFFFh
		mov	[edx], ecx
		movsx	ecx, word ptr [ebx+2]
		movsx	edx, word ptr [ebx]
		imul	ecx, [ebp+var_1C]
		add	edx, ecx
		imul	edx, 2Ah
		add	eax, edx
		xor	edx, edx

loc_97EE5:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+86j
		lea	ecx, [edx+edx*2]
		cmp	word ptr [eax+ecx*2+0Ch], 0FFFFh
		jz	short loc_97EFA
		add	edx, 1
		cmp	edx, 4
		jnz	short loc_97EE5
		xor	dl, dl

loc_97EFA:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+7Ej
		lea	edx, [edx+edx*2]
		cmp	[ebp+var_25], 0
		lea	eax, [eax+edx*2]
		mov	edx, [esi]
		mov	word ptr [eax+10h], 0FFFFh
		mov	[eax+0Ch], edx
		jnz	short loc_97F20

loc_97F11:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+C5j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_97F20:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+9Fj
		mov	ecx, [ebp+arg_0]
		mov	[esp], esi
		mov	[esp+4], ecx
		call	_Z21GetEdgeIndexFromPointRK10CVertIndexi ; GetEdgeIndexFromPoint(CVertIndex  const&,int)
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_24], eax
		jz	short loc_97F11
		movzx	eax, word ptr [esi]
		movzx	ecx, word ptr [esi+2]
		add	eax, eax
		sub	ax, [ebx]
		add	ecx, ecx
		sub	cx, [ebx+2]
		test	ax, ax
		movsx	ebx, ax
		js	short loc_97FC0
		cmp	[ebp+var_1C], ebx
		jle	short loc_97F88

loc_97F56:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+124j
					; _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+161j
		test	cx, cx
		js	short loc_97FA0
		movsx	edx, cx
		cmp	[ebp+var_1C], edx
		jg	short loc_97F6B
		mov	eax, edx
		sar	edx, 1Fh
		idiv	[ebp+var_1C]

loc_97F6B:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+F1j
					; _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+144j
		movzx	ecx, word ptr [ebp+var_24]
		mov	[edi+6], bx
		mov	[edi+8], dx
		mov	[edi+0Ah], cx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_97F88:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+E4j
		mov	edx, ebx
		mov	eax, ebx
		sar	edx, 1Fh
		idiv	[ebp+var_1C]
		mov	ebx, edx
		jmp	short loc_97F56
; ---------------------------------------------------------------------------
		align 10h

loc_97FA0:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+E9j
		movsx	eax, cx
		neg	eax
		mov	edx, eax
		sar	edx, 1Fh
		idiv	[ebp+var_1C]
		mov	ecx, edx
		mov	edx, [ebp+var_20]
		sub	edx, ecx
		jmp	short loc_97F6B
; ---------------------------------------------------------------------------
		align 10h

loc_97FC0:				; CODE XREF: _ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8+DFj
		mov	eax, ebx
		mov	ebx, [ebp+var_20]
		neg	eax
		mov	edx, eax
		sar	edx, 1Fh
		idiv	[ebp+var_1C]
		sub	ebx, edx
		jmp	short loc_97F56
_ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InitPowerInfo_R(CPowerInfo *,	int, CVertIndex	 const&, CVertIndex  const&, CVertIndex	 const&, CVertIndex  const&, CVertIndex	 const&, CVertIndex  const&, int)
_ZL15InitPowerInfo_RP10CPowerInfoiRK10CVertIndexS3_S3_S3_S3_S3_i proc near
					; CODE XREF: InitPowerInfo_R(CPowerInfo	*,int,CVertIndex  const&,CVertIndex  const&,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	 const&,int)+2FFp
					; InitPowerInfo(CPowerInfo *,int)+FBp

var_54		= word ptr -54h
var_52		= word ptr -52h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, eax
		mov	eax, 1
		push	ebx
		mov	ebx, ecx
		mov	ecx, edx
		shl	eax, cl
		sub	esp, 6Ch
		mov	[ebp+var_4C], edx
		add	eax, 1
		movsx	edx, word ptr [ebx]
		mov	[ebp+var_34], eax
		movsx	eax, word ptr [ebx+2]
		mov	ecx, [esi]
		mov	edi, [ebp+arg_8]
		imul	eax, [ebp+var_34]
		add	edx, eax
		imul	eax, edx, 2Ah
		mov	[ebp+var_30], edx
		mov	edx, [ebp+arg_10]
		mov	edx, [edx]
		mov	[ecx+eax+26h], edx
		movzx	ecx, word ptr [ebp+arg_14]
		mov	edx, [esi]
		add	ecx, 1
		mov	[edx+eax+24h], cx
		movsx	edx, word ptr [edi+2]
		movsx	eax, word ptr [edi]
		mov	ecx, [esi+10h]
		mov	edi, [ebp+var_30]
		imul	edx, [ebp+var_34]
		add	eax, edx
		mov	[ecx+edi*4], ax
		mov	eax, [ebp+arg_C]
		mov	ecx, [esi+10h]
		movsx	edx, word ptr [eax+2]
		movsx	eax, word ptr [eax]
		imul	edx, [ebp+var_34]
		add	eax, edx
		mov	edx, ebx
		mov	[ecx+edi*4+2], ax
		mov	ecx, [ebp+var_4C]
		mov	edi, 1
		mov	dword ptr [esp+4], 0
		mov	[esp], ecx
		mov	ecx, [ebp+arg_0]
		mov	eax, [esi]
		call	_ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8
		mov	ecx, [ebp+var_4C]
		mov	dword ptr [esp+4], 0
		mov	edx, ebx
		mov	[esp], ecx
		mov	ecx, [ebp+arg_4]
		mov	eax, [esi]
		call	_ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8
		mov	ecx, [ebp+var_4C]
		mov	eax, [ebp+var_30]
		sub	ecx, [ebp+arg_14]
		shl	eax, 4
		mov	[ebp+var_48], eax
		xor	eax, eax
		sub	ecx, 1
		shl	edi, cl
		mov	[ebp+var_50], edi
		movzx	edi, word ptr [ebp+var_50]
		mov	word ptr [ebp+var_30], di
		mov	edi, ebx
		mov	ebx, eax

loc_980BB:				; CODE XREF: InitPowerInfo_R(CPowerInfo	*,int,CVertIndex  const&,CVertIndex  const&,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	 const&,int)+1F3j
		movzx	edx, word ptr [ebp+var_30]
		movzx	ecx, word ptr [edi+2]
		movzx	eax, word ptr [ebp+var_30]
		imul	dx, word ptr ds:(_ZL13g_SideVertMul+2)[ebx*4]
		imul	ax, word ptr ds:_ZL13g_SideVertMul[ebx*4] ; g_SideVertMul
		add	edx, ecx
		mov	[ebp+var_52], dx
		movzx	edx, word ptr [edi]
		movzx	ecx, [ebp+var_52]
		add	eax, edx
		mov	edx, [ebp+var_48]
		mov	word ptr [ebp+var_28], ax
		mov	word ptr [ebp+var_28+2], cx
		mov	[ebp+var_54], ax
		lea	eax, ds:0[ebx*4]
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_3C], eax
		add	eax, [esi+4]
		mov	[eax+edx], ecx
		movzx	edx, word ptr [ebp+var_30]
		movzx	ecx, word ptr [edi+2]
		imul	dx, word ptr ds:(_ZL17g_SideVertCorners+2)[ebx*8]
		add	edx, ecx
		mov	word ptr [ebp+var_40], dx
		movzx	edx, word ptr [ebp+var_30]
		imul	dx, word ptr ds:_ZL17g_SideVertCorners[ebx*8] ;	g_SideVertCorners
		add	dx, [edi]
		mov	[ebp+var_42], dx
		movzx	edx, word ptr [ebp+var_30]
		movzx	eax, [ebp+var_42]
		imul	dx, word ptr ds:(_ZL17g_SideVertCorners+6)[ebx*8]
		add	edx, ecx
		movsx	edx, dx
		mov	[ebp+var_2C], edx
		movzx	edx, word ptr [ebp+var_30]
		imul	dx, word ptr ds:(_ZL17g_SideVertCorners+4)[ebx*8]
		add	ebx, 1
		add	dx, [edi]
		movsx	edx, dx
		mov	[ebp+var_38], edx
		mov	edx, [ebp+var_48]
		add	edx, [esi+0Ch]
		add	edx, [ebp+var_3C]
		mov	[edx], ax
		movzx	ecx, word ptr [ebp+var_40]
		movsx	eax, [ebp+var_54]
		mov	[edx+2], cx
		movsx	ecx, [ebp+var_52]
		movsx	edx, word ptr [ebp+var_40]
		imul	ecx, [ebp+var_34]
		imul	edx, [ebp+var_34]
		add	ecx, eax
		movsx	eax, [ebp+var_42]
		add	edx, eax
		mov	eax, [esi+10h]
		mov	[eax+ecx*4], dx
		mov	edx, [ebp+var_2C]
		mov	eax, [esi+10h]
		imul	edx, [ebp+var_34]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_38]
		add	edx, [ebp+var_2C]
		mov	[eax+ecx*4+2], dx
		mov	ecx, [ebp+var_4C]
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+4], 1
		mov	[esp], ecx
		mov	ecx, edi
		mov	eax, [esi]
		call	_ZL13AddDependencyP9CVertInfoiRK10CVertIndexS3_ibb_isra_3_constprop_8
		cmp	ebx, 4
		jnz	loc_980BB
		mov	ecx, [ebp+var_50]
		mov	ebx, edi
		movzx	edi, word ptr [ebp+var_30]
		sar	ecx, 1
		jz	loc_982ED
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_40], esi
		mov	esi, ebx
		mov	word ptr [ebp+var_2C], cx
		add	eax, 1
		mov	[ebp+var_38], eax
		xor	eax, eax
		mov	ebx, eax

loc_98200:				; CODE XREF: InitPowerInfo_R(CPowerInfo	*,int,CVertIndex  const&,CVertIndex  const&,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	 const&,int)+307j
		movzx	edx, word ptr ds:(_ZL19g_ChildNodeIndexMul+2)[ebx*4]
		movzx	ecx, word ptr ds:_ZL19g_ChildNodeIndexMul[ebx*4] ; g_ChildNodeIndexMul
		mov	word ptr [ebp+var_34], dx
		mov	eax, edx
		movzx	edx, word ptr [ebp+var_2C]
		imul	ax, word ptr [ebp+var_2C]
		mov	word ptr [ebp+var_30], cx
		imul	edx, ecx
		add	ax, [esi+2]
		mov	ecx, [ebp+var_48]
		add	dx, [esi]
		mov	word ptr [ebp+var_28+2], ax
		lea	eax, ds:0[ebx*4]
		mov	word ptr [ebp+var_28], dx
		mov	edx, [ebp+var_40]
		add	eax, [edx+8]
		mov	edx, [ebp+var_28]
		mov	[eax+ecx], edx
		movzx	edx, word ptr [ebp+var_34]
		movzx	eax, word ptr [esi+2]
		movzx	ecx, word ptr [ebp+var_30]
		imul	edx, edi
		imul	ecx, edi
		add	edx, eax
		mov	[ebp+var_1A], dx
		mov	edx, edi
		imul	dx, word ptr ds:(_ZL23g_ChildNodeDependencies+6)[ebx*8]
		add	cx, [esi]
		add	edx, eax
		mov	[ebp+var_1E], dx
		mov	edx, edi
		imul	dx, word ptr ds:(_ZL23g_ChildNodeDependencies+2)[ebx*8]
		mov	[ebp+var_1C], cx
		mov	ecx, edi
		imul	cx, word ptr ds:(_ZL23g_ChildNodeDependencies+4)[ebx*8]
		add	eax, edx
		mov	edx, edi
		add	cx, [esi]
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_1C]
		imul	dx, word ptr ds:_ZL23g_ChildNodeDependencies[ebx*8] ; g_ChildNodeDependencies
		add	ebx, 1
		add	dx, [esi]
		mov	[ebp+var_20], cx
		mov	ecx, [ebp+var_38]
		mov	[ebp+var_24], dx
		lea	edx, [ebp+var_20]
		mov	[esp+14h], ecx
		lea	ecx, [ebp+var_24]
		mov	[esp+10h], esi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_40]
		mov	[esp+4], edx
		mov	edx, [ebp+var_4C]
		mov	[esp], ecx
		lea	ecx, [ebp+var_28]
		mov	[esp+8], esi
		call	_ZL15InitPowerInfo_RP10CPowerInfoiRK10CVertIndexS3_S3_S3_S3_S3_i ; InitPowerInfo_R(CPowerInfo *,int,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	 const&,CVertIndex  const&,CVertIndex  const&,int)
		cmp	ebx, 4
		jnz	loc_98200

loc_982ED:				; CODE XREF: InitPowerInfo_R(CPowerInfo	*,int,CVertIndex  const&,CVertIndex  const&,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	 const&,int)+204j
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZL15InitPowerInfo_RP10CPowerInfoiRK10CVertIndexS3_S3_S3_S3_S3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CTesselateVert::CTesselateVert(CVertIndex  const&, int)
_ZN14CTesselateVertC2ERK10CVertIndexi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	edx, [edx]
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	[eax+4], dx
		pop	ebp
		retn
_ZN14CTesselateVertC2ERK10CVertIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CVertInfo::CVertInfo(void)
_ZN9CVertInfoC2Ev proc near		; CODE XREF: _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+206p
					; _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+25Ep ...

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	word ptr [edx],	0FFFFh
		mov	ecx, edx
		mov	word ptr [edx+2], 0FFFFh
		mov	word ptr [edx+4], 0FFFFh
		mov	word ptr [edx+6], 0FFFFh
		mov	word ptr [edx+8], 0FFFFh
		mov	word ptr [edx+0Ah], 0FFFFh

loc_9834E:				; CODE XREF: CVertInfo::CVertInfo(void)+4Fj
		lea	ebx, [eax+eax*2]
		add	eax, 1
		lea	ebx, [edx+ebx*2]
		mov	word ptr [ebx+0Ch], 0FFFFh
		mov	word ptr [ebx+0Eh], 0FFFFh
		mov	word ptr [ecx+10h], 0FFFFh
		add	ecx, 6
		cmp	eax, 4
		jnz	short loc_9834E
		mov	word ptr [edx+28h], 0FFFFh
		mov	word ptr [edx+26h], 0FFFFh
		mov	word ptr [edx+24h], 0FFFFh
		pop	ebx
		pop	ebp
		retn
_ZN9CVertInfoC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPowerInfo::CPowerInfo(CVertInfo *, CFourVerts *, CFourVerts *, CFourVerts *,	CTwoUShorts *, CTriInfo	*)
_ZN10CPowerInfoC2EP9CVertInfoP10CFourVertsS3_S3_P11CTwoUShortsP8CTriInfo proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	[eax+4], edx
		mov	edx, [ebp+arg_C]
		mov	[eax+8], edx
		mov	edx, [ebp+arg_10]
		mov	[eax+0Ch], edx
		mov	edx, [ebp+arg_14]
		mov	[eax+10h], edx
		mov	edx, [ebp+arg_18]
		mov	[eax+14h], edx
		pop	ebp
		retn
_ZN10CPowerInfoC2EP9CVertInfoP10CFourVertsS3_S3_P11CTwoUShortsP8CTriInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InitPowerInfo(CPowerInfo *, int)
_Z13InitPowerInfoP10CPowerInfoi	proc near
					; CODE XREF: _GLOBAL__sub_I__ZN14CTesselateVertC2ERK10CVertIndexi+313p

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= word ptr -5Ch
var_5A		= word ptr -5Ah
var_58		= dword	ptr -58h
var_54		= word ptr -54h
var_52		= word ptr -52h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_3C		= dword	ptr -3Ch
var_38		= word ptr -38h
var_36		= word ptr -36h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	[ebp+var_68], 1
		movzx	ecx, byte ptr [ebp+arg_4]
		mov	[ebp+var_34], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_32], 0
		shl	[ebp+var_68], cl
		mov	word ptr [esi+0E8h], 0
		mov	word ptr [esi+0EAh], 0
		mov	word ptr [esi+0ECh], 0
		mov	ebx, [ebp+var_68]
		add	ebx, 1
		mov	[ebp+var_60], ebx
		shr	ebx, 1Fh
		mov	edi, [ebp+var_60]
		mov	edx, [ebp+var_60]
		movzx	eax, word ptr [ebp+var_60]
		add	ebx, [ebp+var_60]
		mov	[esi+24h], edi
		mov	edi, [ebp+var_68]
		imul	edx, edx
		sub	eax, 1
		sar	ebx, 1
		mov	[esi+0EEh], ax
		mov	[esi+28h], edi
		mov	[esi+30h], edx
		mov	[esi+0F0h], ax
		mov	[esi+0F2h], ax
		mov	[ebp+var_38], ax
		mov	[ebp+var_36], ax
		mov	[esi+20h], bx
		mov	[esi+22h], bx
		mov	[esi+2Ch], ebx
		mov	[esi+0F4h], ax
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_2C], ax
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_28]
		mov	word ptr [esi+0F6h], 0
		add	esi, 20h
		mov	[esp+10h], eax
		lea	eax, [ebp+var_2C]
		mov	ecx, esi
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_30]
		mov	[esp+8], eax
		lea	eax, [ebp+var_34]
		mov	[esp+4], eax
		lea	eax, [ebp+var_38]
		mov	[esp], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_28], 0FFFFh
		mov	[ebp+var_26], 0FFFFh
		mov	[ebp+var_30], 0
		mov	[ebp+var_2E], 0
		mov	dword ptr [esp+14h], 0
		call	_ZL15InitPowerInfo_RP10CPowerInfoiRK10CVertIndexS3_S3_S3_S3_S3_i ; InitPowerInfo_R(CPowerInfo *,int,CVertIndex	const&,CVertIndex  const&,CVertIndex  const&,CVertIndex	 const&,CVertIndex  const&,CVertIndex  const&,int)
		mov	edi, [ebp+arg_0]
		mov	edx, esi
		mov	ecx, [ebp+arg_4]
		mov	eax, [edi+14h]
		mov	[edi+1Ch], ecx
		mov	[esp], ecx
		lea	ecx, [ebp+var_3C]
		mov	dword ptr [esp+4], 0
		mov	[ebp+var_3C], eax
		mov	eax, edi
		call	_ZL23InitPowerInfoTriInfos_RP10CPowerInfoRK10CVertIndexRP8CTriInfoii ; InitPowerInfoTriInfos_R(CPowerInfo *,CVertIndex	const&,CTriInfo	*&,int,int)
		mov	[ebp+var_52], bx
		mov	[ebp+var_58], 0

loc_984F1:				; CODE XREF: InitPowerInfo(CPowerInfo *,int)+2AEj
		mov	edi, [ebp+arg_0]
		xor	ecx, ecx
		mov	ebx, [ebp+var_58]
		mov	edx, [ebp+var_58]
		mov	eax, [ebp+var_60]
		lea	esi, [edi+ebx*4+40h]
		lea	ebx, [esi+8]
		mov	[esp], ebx
		call	_ZL16GetEdgeVertIndexiiiR10CVertIndex ;	GetEdgeVertIndex(int,int,int,CVertIndex	&)
		lea	eax, [ebp+var_24]
		mov	edx, [ebp+var_58]
		mov	[esp], eax
		mov	eax, [ebp+var_60]
		mov	ecx, 1
		call	_ZL16GetEdgeVertIndexiiiR10CVertIndex ;	GetEdgeVertIndex(int,int,int,CVertIndex	&)
		movzx	eax, [ebp+var_22]
		mov	ebx, [ebp+var_58]
		movzx	edx, [ebp+var_24]
		sub	ax, [esi+0Ah]
		sub	dx, [esi+8]
		lea	ecx, [edi+ebx*4+50h]
		add	ebx, 2
		and	ebx, 3
		mov	[ecx+0Ah], ax
		mov	eax, [ebp+var_60]
		lea	esi, [ebp+var_20]
		lea	edi, [ebp+var_1C]
		mov	[ecx+8], dx
		mov	edx, ebx
		xor	ecx, ecx
		mov	[esp], esi
		call	_ZL16GetEdgeVertIndexiiiR10CVertIndex ;	GetEdgeVertIndex(int,int,int,CVertIndex	&)
		mov	eax, [ebp+var_60]
		mov	edx, ebx
		mov	ecx, 1
		mov	[esp], edi
		call	_ZL16GetEdgeVertIndexiiiR10CVertIndex ;	GetEdgeVertIndex(int,int,int,CVertIndex	&)
		movzx	edx, [ebp+var_1E]
		movzx	eax, [ebp+var_1A]
		movzx	ecx, [ebp+var_1C]
		mov	ebx, [ebp+var_58]
		sub	ax, dx
		sub	dx, [ebp+var_52]
		mov	[ebp+var_4E], ax
		movzx	eax, [ebp+var_20]
		shl	ebx, 2
		mov	[ebp+var_64], ebx
		mov	[ebp+var_5A], dx
		xor	edx, edx
		sub	cx, ax
		sub	ax, [ebp+var_52]
		mov	[ebp+var_50], cx
		mov	[ebp+var_54], ax

loc_985A9:				; CODE XREF: InitPowerInfo(CPowerInfo *,int)+2A0j
		movzx	esi, [ebp+var_54]
		mov	ecx, edx
		movzx	ebx, [ebp+var_5A]
		shl	ecx, 4
		mov	edi, [ebp+arg_0]
		imul	si, word ptr (_ZL22g_OrientationRotations+8)[ecx]
		imul	bx, word ptr (_ZL22g_OrientationRotations+0Ch)[ecx]
		add	ebx, esi
		mov	esi, [ebp+var_64]
		add	bx, [ebp+var_52]
		add	esi, edx
		add	edx, 1
		mov	[ebp+var_5C], bx
		lea	ebx, [edi+esi*4+60h]
		movzx	edi, [ebp+var_54]
		mov	[ebp+var_4C], esi
		movzx	esi, [ebp+var_5A]
		imul	di, word ptr _ZL22g_OrientationRotations[ecx] ;	g_OrientationRotations
		imul	si, word ptr (_ZL22g_OrientationRotations+4)[ecx]
		add	esi, edi
		mov	edi, [ebp+var_4C]
		add	si, [ebp+var_52]
		mov	[ebx+8], si
		movzx	esi, [ebp+var_5C]
		mov	[ebx+0Ah], si
		movzx	esi, [ebp+var_4E]
		movzx	ebx, [ebp+var_50]
		movzx	eax, word ptr (_ZL22g_OrientationRotations+4)[ecx]
		imul	si, word ptr (_ZL22g_OrientationRotations+0Ch)[ecx]
		imul	bx, word ptr (_ZL22g_OrientationRotations+8)[ecx]
		movzx	ecx, word ptr _ZL22g_OrientationRotations[ecx] ; g_OrientationRotations
		imul	ax, [ebp+var_4E]
		add	ebx, esi
		mov	[ebp+var_5C], bx
		mov	ebx, [ebp+arg_0]
		imul	cx, [ebp+var_50]
		lea	esi, [ebx+edi*4+0A0h]
		movzx	edi, [ebp+var_5C]
		add	eax, ecx
		cmp	edx, 4
		mov	[esi+8], ax
		mov	[esi+0Ah], di
		jnz	loc_985A9
		add	[ebp+var_58], 1
		cmp	[ebp+var_58], 4
		jnz	loc_984F1
		cmp	[ebp+arg_4], 1
		mov	dl, 1
		jle	short loc_986AE
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4C], 0
		xor	ecx, ecx
		mov	edi, [ebp+arg_0]
		neg	eax
		lea	ebx, ds:4[eax*4]
		mov	eax, [ebp+arg_4]
		lea	esi, [edi+eax*4]
		xor	eax, eax

loc_9869C:				; CODE XREF: InitPowerInfo(CPowerInfo *,int)+2EAj
		add	ecx, edx
		shl	edx, 2
		mov	[esi+eax+30h], ecx
		sub	eax, 4
		cmp	eax, ebx
		jnz	short loc_9869C
		add	edx, ecx

loc_986AE:				; CODE XREF: InitPowerInfo(CPowerInfo *,int)+2BAj
		mov	eax, [ebp+var_68]
		mov	ebx, [ebp+arg_0]
		imul	eax, eax
		mov	[ebx+34h], edx
		add	eax, eax
		mov	[ebx+18h], eax
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z13InitPowerInfoP10CPowerInfoi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetPowerInfo(int)
_Z12GetPowerInfoi proc near		; CODE XREF: CCoreDispInfo::GetPowerInfo(void)+Dj
					; SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+2Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, g_PowerInfos[eax*4]
		retn
_Z12GetPowerInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPowerInfo::GetCornerPointIndex(int)const
_ZNK10CPowerInfo19GetCornerPointIndexEi	proc near
					; CODE XREF: SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+3Ap
					; SetupSpan(int,int,NeighborSpan,CVertIndex &,CVertIndex &)+56p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		lea	eax, ds:0E0h[eax*4]
		add	eax, [ebp+arg_0]
		pop	ebp
		add	eax, 8
		retn
_ZNK10CPowerInfo19GetCornerPointIndexEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_FloatToFloat(CRecvProxyData	 const*, void *, void *)
_Z22RecvProxy_FloatToFloatPK14CRecvProxyDataPvS2_ proc near
					; DATA XREF: _GLOBAL__sub_I_s_ClientElementNames+3Do
					; CStandardRecvProxies::CStandardRecvProxies(void)+1Ao

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+4]
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		pop	ebp
		retn
_Z22RecvProxy_FloatToFloatPK14CRecvProxyDataPvS2_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_VectorToVector(CRecvProxyData  const*, void	*, void	*)
_Z24RecvProxy_VectorToVectorPK14CRecvProxyDataPvS2_ proc near
					; DATA XREF: _GLOBAL__sub_I_s_ClientElementNames+47o
					; CStandardRecvProxies::CStandardRecvProxies(void)+21o

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		mov	[eax], ecx
		mov	ecx, [edx+8]
		mov	[eax+4], ecx
		mov	edx, [edx+0Ch]
		mov	[eax+8], edx
		pop	ebp
		retn
_Z24RecvProxy_VectorToVectorPK14CRecvProxyDataPvS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_Int32ToInt8(CRecvProxyData	const*,	void *,	void *)
_Z21RecvProxy_Int32ToInt8PK14CRecvProxyDataPvS2_ proc near
					; DATA XREF: _GLOBAL__sub_I_s_ClientElementNames+1Fo
					; CStandardRecvProxies::CStandardRecvProxies(void)+6o ...

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+4]
		mov	eax, [ebp+arg_8]
		mov	[eax], dl
		pop	ebp
		retn
_Z21RecvProxy_Int32ToInt8PK14CRecvProxyDataPvS2_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_Int32ToInt16(CRecvProxyData	 const*, void *, void *)
_Z22RecvProxy_Int32ToInt16PK14CRecvProxyDataPvS2_ proc near
					; DATA XREF: _GLOBAL__sub_I_s_ClientElementNames+29o
					; CStandardRecvProxies::CStandardRecvProxies(void)+Co ...

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+4]
		mov	eax, [ebp+arg_8]
		mov	[eax], dx
		pop	ebp
		retn
_Z22RecvProxy_Int32ToInt16PK14CRecvProxyDataPvS2_ endp

; ---------------------------------------------------------------------------
		jmp	short _Z22RecvProxy_Int32ToInt32PK14CRecvProxyDataPvS2_	; RecvProxy_Int32ToInt32(CRecvProxyData	 const*,void *,void *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_Int32ToInt32(CRecvProxyData	 const*, void *, void *)
_Z22RecvProxy_Int32ToInt32PK14CRecvProxyDataPvS2_ proc near ; CODE XREF: .text:00098751j
					; DATA XREF: _GLOBAL__sub_I_s_ClientElementNames+33o ...

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+4]
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		pop	ebp
		retn
_Z22RecvProxy_Int32ToInt32PK14CRecvProxyDataPvS2_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStandardRecvProxies::CStandardRecvProxies(void)
_ZN20CStandardRecvProxiesC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], offset	_Z21RecvProxy_Int32ToInt8PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt8(CRecvProxyData	 const*,void *,void *)
		mov	dword ptr [eax+4], offset _Z22RecvProxy_Int32ToInt16PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt16(CRecvProxyData  const*,void *,void	*)
		mov	dword ptr [eax+8], offset _Z22RecvProxy_Int32ToInt32PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt32(CRecvProxyData  const*,void *,void	*)
		mov	dword ptr [eax+0Ch], offset _Z22RecvProxy_FloatToFloatPK14CRecvProxyDataPvS2_ ;	RecvProxy_FloatToFloat(CRecvProxyData  const*,void *,void *)
		mov	dword ptr [eax+10h], offset _Z24RecvProxy_VectorToVectorPK14CRecvProxyDataPvS2_	; RecvProxy_VectorToVector(CRecvProxyData  const*,void *,void *)
		pop	ebp
		retn
_ZN20CStandardRecvProxiesC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProp::RecvProp(void)
_ZN8RecvPropC2Ev proc near		; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+15p
					; RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void	*,int,int),int,RecvProp)+6Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	byte ptr [eax+10h], 0
		pop	ebp
		retn
_ZN8RecvPropC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable::RecvTable(void)
_ZN9RecvTableC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	byte ptr [eax+10h], 0
		mov	byte ptr [eax+11h], 0
		pop	ebp
		retn
_ZN9RecvTableC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable::RecvTable(RecvProp	*, int,	char  const*)
_ZN9RecvTableC2EP8RecvPropiPKc proc near
					; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+1C6p
					; RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void	*,int,int),int,RecvProp)+3BBp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+8], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	byte ptr [eax+10h], 0
		mov	byte ptr [eax+11h], 0
		mov	[eax+4], edx
		mov	edx, [ebp+arg_C]
		mov	[eax+0Ch], edx
		pop	ebp
		retn
_ZN9RecvTableC2EP8RecvPropiPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable::~RecvTable()
_ZN9RecvTableD2Ev proc near		; CODE XREF: CHLTVServer::FreeClientRecvTables(void)+3Bp
					; CReplayServer::FreeClientRecvTables(void)+3Bp
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9RecvTableD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable::Construct(RecvProp	*, int,	char  const*)
_ZN9RecvTable9ConstructEP8RecvPropiPKc proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+8], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	byte ptr [eax+10h], 0
		mov	byte ptr [eax+11h], 0
		mov	[eax+4], edx
		mov	edx, [ebp+arg_C]
		mov	[eax+0Ch], edx
		pop	ebp
		retn
_ZN9RecvTable9ConstructEP8RecvPropiPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropFloat(char  const*, int, int,	int, void (*)(CRecvProxyData  const*, void *, void *))
_Z13RecvPropFloatPKciiiPFvPK14CRecvProxyDataPvS4_E proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+14h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	[eax+2Ch], edx
		mov	edx, [ebp+arg_10]
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	[eax+8], edx
		mov	edx, [ebp+arg_14]
		mov	byte ptr [eax+10h], 0
		mov	dword ptr [eax+4], 1
		mov	[eax+20h], edx
		pop	ebp
		retn	4
_Z13RecvPropFloatPKciiiPFvPK14CRecvProxyDataPvS4_E endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropVector(char  const*, int, int, int, void (*)(CRecvProxyData  const*, void *, void *))
_Z14RecvPropVectorPKciiiPFvPK14CRecvProxyDataPvS4_E proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+14h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	[eax+2Ch], edx
		mov	edx, [ebp+arg_10]
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	[eax+8], edx
		mov	edx, [ebp+arg_14]
		mov	byte ptr [eax+10h], 0
		mov	dword ptr [eax+4], 2
		mov	[eax+20h], edx
		pop	ebp
		retn	4
_Z14RecvPropVectorPKciiiPFvPK14CRecvProxyDataPvS4_E endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropVectorXY(char	 const*, int, int, int,	void (*)(CRecvProxyData	 const*, void *, void *))
_Z16RecvPropVectorXYPKciiiPFvPK14CRecvProxyDataPvS4_E proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+14h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	[eax+2Ch], edx
		mov	edx, [ebp+arg_10]
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	[eax+8], edx
		mov	edx, [ebp+arg_14]
		mov	byte ptr [eax+10h], 0
		mov	dword ptr [eax+4], 3
		mov	[eax+20h], edx
		pop	ebp
		retn	4
_Z16RecvPropVectorXYPKciiiPFvPK14CRecvProxyDataPvS4_E endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropInt(char  const*, int, int, int, void	(*)(CRecvProxyData  const*, void *, void *))
_Z11RecvPropIntPKciiiPFvPK14CRecvProxyDataPvS4_E proc near
					; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+110p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_14]
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_C]
		test	edx, edx
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	byte ptr [eax+10h], 0
		jz	short loc_98A28

loc_98A0C:				; CODE XREF: RecvPropInt(char  const*,int,int,int,void (*)(CRecvProxyData  const*,void *,void *))+70j
					; RecvPropInt(char  const*,int,int,int,void (*)(CRecvProxyData	const*,void *,void *))+7Aj ...
		mov	ecx, [ebp+arg_4]
		mov	[eax+20h], edx
		mov	[eax], ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax+2Ch], ecx
		mov	ecx, [ebp+arg_10]
		mov	[eax+8], ecx
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 8

loc_98A28:				; CODE XREF: RecvPropInt(char  const*,int,int,int,void (*)(CRecvProxyData  const*,void *,void *))+4Aj
		cmp	ecx, 1
		mov	edx, offset _Z21RecvProxy_Int32ToInt8PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt8(CRecvProxyData  const*,void *,void	*)
		jz	short loc_98A0C
		cmp	ecx, 2
		mov	edx, offset _Z22RecvProxy_Int32ToInt16PK14CRecvProxyDataPvS2_ ;	RecvProxy_Int32ToInt16(CRecvProxyData  const*,void *,void *)
		jz	short loc_98A0C
		cmp	ecx, 4
		mov	edx, offset _Z22RecvProxy_Int32ToInt32PK14CRecvProxyDataPvS2_ ;	RecvProxy_Int32ToInt32(CRecvProxyData  const*,void *,void *)
		mov	ecx, offset _Z21RecvProxy_Int32ToInt8PK14CRecvProxyDataPvS2_ ; RecvProxy_Int32ToInt8(CRecvProxyData  const*,void *,void	*)
		cmovnz	edx, ecx
		jmp	short loc_98A0C
_Z11RecvPropIntPKciiiPFvPK14CRecvProxyDataPvS4_E endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropString(char  const*, int, int, int, void (*)(CRecvProxyData  const*, void *, void *))
_Z14RecvPropStringPKciiiPFvPK14CRecvProxyDataPvS4_E proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+14h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	[eax+2Ch], edx
		mov	edx, [ebp+arg_10]
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	[eax+8], edx
		mov	edx, [ebp+arg_C]
		mov	byte ptr [eax+10h], 0
		mov	dword ptr [eax+4], 4
		mov	[eax+0Ch], edx
		mov	edx, [ebp+arg_14]
		mov	[eax+20h], edx
		pop	ebp
		retn	4
_Z14RecvPropStringPKciiiPFvPK14CRecvProxyDataPvS4_E endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropDataTable(char  const*, int, int, RecvTable *, void (*)(RecvProp  const*, void **, void *, int))
_Z17RecvPropDataTablePKciiP9RecvTablePFvPK8RecvPropPPvS6_iE proc near
					; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+1F5p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+14h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+34h], 1
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	[eax+2Ch], edx
		mov	edx, [ebp+arg_C]
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	byte ptr [eax+10h], 0
		mov	[eax+8], edx
		mov	edx, [ebp+arg_14]
		mov	dword ptr [eax+4], 6
		mov	[eax+24h], edx
		mov	edx, [ebp+arg_10]
		mov	[eax+28h], edx
		pop	ebp
		retn	4
_Z17RecvPropDataTablePKciiP9RecvTablePFvPK8RecvPropPPvS6_iE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropArray3(char  const*, int, int, int, RecvProp,	void (*)(RecvProp const*, void **, void	*, int))
_Z14RecvPropArray3PKciii8RecvPropPFvPKS1_PPvS4_iE proc near

var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_34		= dword	ptr  3Ch
arg_38		= dword	ptr  40h
arg_3C		= dword	ptr  44h
arg_44		= dword	ptr  4Ch
arg_48		= dword	ptr  50h
arg_4C		= dword	ptr  54h
arg_50		= dword	ptr  58h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	eax, [ebp+arg_0]
		mov	edx, dword ptr [ebp+arg]
		mov	dword ptr [eax+14h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_0]
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	byte ptr [eax+10h], 0
		mov	eax, [ebp+arg_8]
		mov	dword ptr [edx+4], 6
		mov	[edx+2Ch], eax
		mov	eax, [ebp+arg_50]
		mov	[edx+24h], eax
		imul	eax, [ebp+arg_10], 3Ch
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_4C], eax
		test	ecx, ecx
		jz	short loc_98C01
		mov	ecx, [ebp+arg_10]
		xor	edx, edx
		db	66h
		nop

loc_98BA0:				; CODE XREF: RecvPropArray3(char  const*,int,int,int,RecvProp,void (*)(RecvProp	const*,void **,void *,int))+DFj
		add	edx, 1
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+34h], 1
		mov	dword ptr [eax+30h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	byte ptr [eax+10h], 0
		add	eax, 3Ch
		cmp	ecx, edx
		jnz	short loc_98BA0

loc_98C01:				; CODE XREF: RecvPropArray3(char  const*,int,int,int,RecvProp,void (*)(RecvProp	const*,void **,void *,int))+77j
		mov	edx, dword ptr [ebp+arg]
		mov	dword ptr [esp], (offset aDFS+9) ; format
		mov	[esp+4], edx	; arg
		call	_Z20AllocateStringHelperPKcz ; AllocateStringHelper(char  const*,...)
		mov	edx, [ebp+arg_10]
		test	edx, edx
		jle	loc_98CED
		mov	edx, [ebp+var_4C]
		xor	ebx, ebx
		xor	ecx, ecx
		mov	edi, [ebp+arg_14]
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_50], edx
		mov	edx, [ebp+arg_1C]
		mov	[ebp+var_44], edx
		mov	edx, [ebp+arg_20]
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+arg_24]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+arg_28]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+arg_2C]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+arg_30]
		mov	[ebp+var_34], edx
		mov	edx, [ebp+arg_34]
		mov	[ebp+var_38], edx
		mov	edx, [ebp+arg_38]
		mov	[ebp+var_3C], edx
		mov	edx, [ebp+arg_3C]
		mov	[ebp+var_40], edx
		mov	edx, [ebp+arg_44]
		mov	[ebp+var_48], edx
		mov	edx, [ebp+arg_48]
		mov	[ebp+var_20], edx
		mov	edx, [ebp+arg_4C]
		mov	[ebp+var_28], edx
		mov	edx, [ebp+var_50]
		mov	[ebp+var_50], eax
		lea	esi, [esi+0]

loc_98C80:				; CODE XREF: RecvPropArray3(char  const*,int,int,int,RecvProp,void (*)(RecvProp	const*,void **,void *,int))+1CBj
		mov	eax, [ebp+var_44]
		mov	[edx], edi
		mov	[edx+2Ch], ebx
		add	ebx, [ebp+arg_C]
		mov	[edx+4], esi
		mov	[edx+8], eax
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [ebp+var_24]
		mov	[edx+10h], eax
		mov	eax, [ebp+var_2C]
		mov	[edx+14h], eax
		mov	eax, [ebp+var_30]
		mov	[edx+18h], eax
		mov	eax, [ebp+var_34]
		mov	[edx+1Ch], eax
		mov	eax, [ebp+var_38]
		mov	[edx+20h], eax
		mov	eax, [ebp+var_3C]
		mov	[edx+24h], eax
		mov	eax, [ebp+var_40]
		mov	[edx+28h], eax
		mov	eax, [ebp+var_48]
		mov	[edx+30h], eax
		mov	eax, [ebp+var_20]
		mov	[edx+34h], eax
		mov	eax, [ebp+var_28]
		mov	[edx+38h], eax
		mov	eax, s_ClientElementNames[ecx*4]
		add	ecx, 1
		mov	[edx], eax
		mov	eax, [ebp+var_50]
		mov	[edx+38h], eax
		add	edx, 3Ch
		cmp	ecx, [ebp+arg_10]
		jnz	short loc_98C80

loc_98CED:				; CODE XREF: RecvPropArray3(char  const*,int,int,int,RecvProp,void (*)(RecvProp	const*,void **,void *,int))+F9j
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_4C]
		mov	dword ptr [eax+8], 0
		mov	byte ptr [eax+10h], 0
		mov	byte ptr [eax+11h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_10]
		mov	[eax+4], edx
		mov	edx, dword ptr [ebp+arg]
		mov	[eax+0Ch], edx
		mov	edx, [ebp+arg_0]
		mov	[edx+28h], eax
		add	esp, 5Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn	4
_Z14RecvPropArray3PKciii8RecvPropPFvPKS1_PPvS4_iE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InternalRecvPropArray(int, int, char	const*,	void (*)(void *, int, int))
_Z21InternalRecvPropArrayiiPKcPFvPviiE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+14h], 0
		mov	[eax+34h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+20h], 0
		mov	[eax+30h], edx
		mov	edx, [ebp+arg_C]
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+18h], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_10]
		mov	byte ptr [eax+10h], 0
		mov	dword ptr [eax+4], 5
		mov	[eax+1Ch], edx
		pop	ebp
		retn	4
_Z21InternalRecvPropArrayiiPKcPFvPviiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_VectorXYToVectorXY(CRecvProxyData  const*, void *, void *)
_Z28RecvProxy_VectorXYToVectorXYPK14CRecvProxyDataPvS2_	proc near

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		mov	[eax], ecx
		mov	edx, [edx+8]
		mov	[eax+4], edx
		pop	ebp
		retn
_Z28RecvProxy_VectorXYToVectorXYPK14CRecvProxyDataPvS2_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_QuaternionToQuaternion(CRecvProxyData  const*, void	*, void	*)
_Z32RecvProxy_QuaternionToQuaternionPK14CRecvProxyDataPvS2_ proc near

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		mov	[eax], ecx
		mov	ecx, [edx+8]
		mov	[eax+4], ecx
		mov	ecx, [edx+0Ch]
		mov	[eax+8], ecx
		mov	edx, [edx+10h]
		mov	[eax+0Ch], edx
		pop	ebp
		retn
_Z32RecvProxy_QuaternionToQuaternionPK14CRecvProxyDataPvS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_StringToString(CRecvProxyData  const*, void	*, void	*)
_Z24RecvProxy_StringToStringPK14CRecvProxyDataPvS2_ proc near

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	eax, [ecx]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jle	short loc_98E27
		mov	eax, [ecx+4]
		movzx	edx, byte ptr [eax]
		xor	eax, eax
		test	dl, dl
		mov	[ebx], dl
		jnz	short loc_98E16
		jmp	short loc_98E30
; ---------------------------------------------------------------------------
		align 8

loc_98E08:				; CODE XREF: RecvProxy_StringToString(CRecvProxyData  const*,void *,void *)+40j
		mov	edx, [ecx+4]
		movzx	edx, byte ptr [edx+eax]
		test	dl, dl
		mov	[ebx+eax], dl
		jz	short loc_98E30

loc_98E16:				; CODE XREF: RecvProxy_StringToString(CRecvProxyData  const*,void *,void *)+1Fj
		mov	edx, [ecx]
		add	eax, 1
		mov	edx, [edx+0Ch]
		cmp	edx, eax
		jg	short loc_98E08

loc_98E22:				; CODE XREF: RecvProxy_StringToString(CRecvProxyData  const*,void *,void *)+55j
		mov	byte ptr [ebx+edx-1], 0

loc_98E27:				; CODE XREF: RecvProxy_StringToString(CRecvProxyData  const*,void *,void *)+11j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_98E30:				; CODE XREF: RecvProxy_StringToString(CRecvProxyData  const*,void *,void *)+21j
					; RecvProxy_StringToString(CRecvProxyData  const*,void *,void *)+34j
		mov	eax, [ecx]
		mov	edx, [eax+0Ch]
		jmp	short loc_98E22
_Z24RecvProxy_StringToStringPK14CRecvProxyDataPvS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTableRecvProxy_StaticDataTable(RecvProp  const*, void **,	void *,	int)
_Z34DataTableRecvProxy_StaticDataTablePK8RecvPropPPvS2_i proc near
					; DATA XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+36o

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		pop	ebp
		retn
_Z34DataTableRecvProxy_StaticDataTablePK8RecvPropPPvS2_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTableRecvProxy_PointerDataTable(RecvProp	const*,	void **, void *, int)
_Z35DataTableRecvProxy_PointerDataTablePK8RecvPropPPvS2_i proc near

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [eax]
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		pop	ebp
		retn
_Z35DataTableRecvProxy_PointerDataTablePK8RecvPropPPvS2_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_FloatToFloat(SendProp  const*, void	 const*, void  const*, DVariant	*, int,	int)
_Z22SendProxy_FloatToFloatPK8SendPropPKvS3_P8DVariantii	proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+5Bo
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+2Fo ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [eax]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		pop	ebp
		retn
_Z22SendProxy_FloatToFloatPK8SendPropPKvS3_P8DVariantii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_VectorToVector(SendProp  const*, void  const*, void	 const*, DVariant *, int, int)
_Z24SendProxy_VectorToVectorPK8SendPropPKvS3_P8DVariantii proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+65o
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+36o ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_C]
		mov	ecx, [edx]
		mov	[eax], ecx
		mov	ecx, [edx+4]
		mov	[eax+4], ecx
		mov	edx, [edx+8]
		mov	[eax+8], edx
		pop	ebp
		retn
_Z24SendProxy_VectorToVectorPK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_Int8ToInt32(SendProp  const*, void	const*,	void  const*, DVariant *, int, int)
_Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+1Fo
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+6o ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		movsx	edx, byte ptr [eax]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		pop	ebp
		retn
_Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_Int16ToInt32(SendProp  const*, void	 const*, void  const*, DVariant	*, int,	int)
_Z22SendProxy_Int16ToInt32PK8SendPropPKvS3_P8DVariantii	proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+29o
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+Co ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		movsx	edx, word ptr [eax]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		pop	ebp
		retn
_Z22SendProxy_Int16ToInt32PK8SendPropPKvS3_P8DVariantii	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_Int32ToInt32(SendProp  const*, void	 const*, void  const*, DVariant	*, int,	int)
_Z22SendProxy_Int32ToInt32PK8SendPropPKvS3_P8DVariantii	proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+33o
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+13o ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [eax]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		pop	ebp
		retn
_Z22SendProxy_Int32ToInt32PK8SendPropPKvS3_P8DVariantii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_UInt8ToInt32(SendProp  const*, void	 const*, void  const*, DVariant	*, int,	int)
_Z22SendProxy_UInt8ToInt32PK8SendPropPKvS3_P8DVariantii	proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+3Do
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+1Ao ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		movzx	edx, byte ptr [eax]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		pop	ebp
		retn
_Z22SendProxy_UInt8ToInt32PK8SendPropPKvS3_P8DVariantii	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_UInt16ToInt32(SendProp  const*, void  const*, void	const*,	DVariant *, int, int)
_Z23SendProxy_UInt16ToInt32PK8SendPropPKvS3_P8DVariantii proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+47o
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+21o ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		movzx	edx, word ptr [eax]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		pop	ebp
		retn
_Z23SendProxy_UInt16ToInt32PK8SendPropPKvS3_P8DVariantii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_UInt32ToInt32(SendProp  const*, void  const*, void	const*,	DVariant *, int, int)
_Z23SendProxy_UInt32ToInt32PK8SendPropPKvS3_P8DVariantii proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+51o
					; CStandardSendProxiesV1::CStandardSendProxiesV1(void)+28o ...

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [eax]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		pop	ebp
		retn
_Z23SendProxy_UInt32ToInt32PK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_DataTableToDataTable(SendProp  const*, void	 const*, void  const*, CSendProxyRecipients *, int)
_Z30SendProxy_DataTableToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+6Fo
					; CStandardSendProxies::CStandardSendProxies(void)+3Do	...

arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		pop	ebp
		retn
_Z30SendProxy_DataTableToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_DataTablePtrToDataTable(SendProp  const*, void  const*, void  const*, CSendProxyRecipients *, int)
_Z33SendProxy_DataTablePtrToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi proc near
					; DATA XREF: SendPropArray3(char  const*,int,int,int,SendProp,void * (*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients	*,int))+184o
					; SendPropDataTable(char  const*,int,SendTable *,void *	(*)(SendProp  const*,void  const*,void	const*,CSendProxyRecipients *,int))+83o ...

arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		pop	ebp
		mov	eax, [eax]
		retn
_Z33SendProxy_DataTablePtrToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_Empty(SendProp  const*, void  const*, void	const*,	DVariant *, int, int)
_ZL15SendProxy_EmptyPK8SendPropPKvS3_P8DVariantii proc near
					; DATA XREF: InternalSendPropArray(int,int,char	 const*,int (*)(void  const*,int))+61o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZL15SendProxy_EmptyPK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProp::~SendProp()
_ZN8SendPropD2Ev proc near		; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+251p
					; SendPropUtlVector(char *,int,int,void	(*)(void *,int,int),int,SendProp,void *	(*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients *,int))+362p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		pop	ebp
		retn
_ZN8SendPropD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProp::~SendProp()
_ZN8SendPropD0Ev proc near		; DATA XREF: .rodata:`vtable for'SendPropo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN8SendPropD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_SendLocalDataTable(SendProp	 const*, void  const*, void  const*, CSendProxyRecipients *, int)
_Z28SendProxy_SendLocalDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi proc near
					; DATA XREF: _GLOBAL__sub_I_s_ElementNames+79o
					; CStandardSendProxies::CStandardSendProxies(void)+44o

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_C], ebx
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		sub	ecx, 1
		test	eax, eax
		jz	short loc_98FA0
		test	al, 1
		mov	ebx, eax
		mov	esi, 20h
		jnz	short loc_98FC0

loc_98F77:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+7Aj
		test	bl, 2
		jnz	short loc_98FD0

loc_98F7C:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+8Bj
		mov	edi, esi
		xor	edx, edx
		and	edi, 0FFFFFFFCh

loc_98F83:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+3Fj
		mov	dword ptr [ebx+edx], 0
		add	edx, 4
		cmp	edx, edi
		jb	short loc_98F83
		add	ebx, edx
		test	esi, 2
		jnz	short loc_98FE8

loc_98F9B:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+A0j
		and	esi, 1
		jnz	short loc_98FE0

loc_98FA0:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+1Aj
					; SendProxy_SendLocalDataTable(SendProp	 const*,void  const*,void  const*,CSendProxyRecipients *,int)+93j
		mov	ebx, ecx
		mov	edx, 1
		sar	ebx, 5
		shl	edx, cl
		or	[eax+ebx*4], edx
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_98FC0:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+25j
		mov	byte ptr [eax],	0
		lea	ebx, [eax+1]
		mov	si, 1Fh
		jmp	short loc_98F77
; ---------------------------------------------------------------------------
		align 10h

loc_98FD0:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+2Aj
		mov	word ptr [ebx],	0
		sub	esi, 2
		add	ebx, 2
		jmp	short loc_98F7C
; ---------------------------------------------------------------------------
		align 10h

loc_98FE0:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+4Ej
		mov	byte ptr [ebx],	0
		jmp	short loc_98FA0
; ---------------------------------------------------------------------------
		align 4

loc_98FE8:				; CODE XREF: SendProxy_SendLocalDataTable(SendProp  const*,void	 const*,void  const*,CSendProxyRecipients *,int)+49j
		mov	word ptr [ebx],	0
		add	ebx, 2
		jmp	short loc_98F9B
_Z28SendProxy_SendLocalDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CNonModifiedPointerProxy::CNonModifiedPointerProxy(void * (*)(SendProp  const*, void	const*,	void  const*, CSendProxyRecipients *, int))
_ZN24CNonModifiedPointerProxyC2EPFPvPK8SendPropPKvS5_P20CSendProxyRecipientsiE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	edx, ds:_ZL30s_pNonModifiedPointerProxyHead ; s_pNonModifiedPointerProxyHead
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	edx, [ebp+arg_4]
		mov	ds:_ZL30s_pNonModifiedPointerProxyHead,	eax ; s_pNonModifiedPointerProxyHead
		mov	[eax], edx
		pop	ebp
		retn
_ZN24CNonModifiedPointerProxyC2EPFPvPK8SendPropPKvS5_P20CSendProxyRecipientsiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStandardSendProxiesV1::CStandardSendProxiesV1(void)
_ZN22CStandardSendProxiesV1C2Ev	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], offset	_Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int8ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+4], offset _Z22SendProxy_Int16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int16ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+8], offset _Z22SendProxy_Int32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int32ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+0Ch], offset _Z22SendProxy_UInt8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt8ToInt32(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		mov	dword ptr [eax+10h], offset _Z23SendProxy_UInt16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt16ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+14h], offset _Z23SendProxy_UInt32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt32ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+18h], offset _Z22SendProxy_FloatToFloatPK8SendPropPKvS3_P8DVariantii ; SendProxy_FloatToFloat(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		mov	dword ptr [eax+1Ch], offset _Z24SendProxy_VectorToVectorPK8SendPropPKvS3_P8DVariantii ;	SendProxy_VectorToVector(SendProp  const*,void	const*,void  const*,DVariant *,int,int)
		pop	ebp
		retn
_ZN22CStandardSendProxiesV1C2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStandardSendProxies::CStandardSendProxies(void)
_ZN20CStandardSendProxiesC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], offset	_Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int8ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+4], offset _Z22SendProxy_Int16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int16ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+8], offset _Z22SendProxy_Int32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int32ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+0Ch], offset _Z22SendProxy_UInt8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt8ToInt32(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		mov	dword ptr [eax+10h], offset _Z23SendProxy_UInt16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt16ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+14h], offset _Z23SendProxy_UInt32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt32ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+18h], offset _Z22SendProxy_FloatToFloatPK8SendPropPKvS3_P8DVariantii ; SendProxy_FloatToFloat(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		mov	dword ptr [eax+1Ch], offset _Z24SendProxy_VectorToVectorPK8SendPropPKvS3_P8DVariantii ;	SendProxy_VectorToVector(SendProp  const*,void	const*,void  const*,DVariant *,int,int)
		mov	dword ptr [eax+20h], offset _Z30SendProxy_DataTableToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi	; SendProxy_DataTableToDataTable(SendProp  const*,void	const*,void  const*,CSendProxyRecipients *,int)
		mov	dword ptr [eax+24h], offset _Z28SendProxy_SendLocalDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ;	SendProxy_SendLocalDataTable(SendProp  const*,void  const*,void	 const*,CSendProxyRecipients *,int)
		mov	dword ptr [eax+28h], offset _ZL30s_pNonModifiedPointerProxyHead	; s_pNonModifiedPointerProxyHead
		pop	ebp
		retn
_ZN20CStandardSendProxiesC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_AngleToFloat(SendProp  const*, void	 const*, void  const*, DVariant	*, int,	int)
_Z22SendProxy_AngleToFloatPK8SendPropPKvS3_P8DVariantii	proc near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_8]
		fld	ds:flt_1ED110
		fmul	dword ptr [eax]
		fstp	[ebp+var_8]
		cvttss2si eax, [ebp+var_8]
		and	eax, 0FFFFh
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_C]
		fild	[ebp+var_4]
		fmul	ds:flt_1ED114
		fstp	dword ptr [eax]
		leave
		retn
_Z22SendProxy_AngleToFloatPK8SendPropPKvS3_P8DVariantii	endp

; ---------------------------------------------------------------------------
		jmp	short _Z17SendProxy_QAnglesPK8SendPropPKvS3_P8DVariantii ; SendProxy_QAngles(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_QAngles(SendProp  const*, void  const*, void  const*, DVariant *, int, int)
_Z17SendProxy_QAnglesPK8SendPropPKvS3_P8DVariantii proc	near ; CODE XREF: .text:000990F1j

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	edx, [ebp+arg_8]
		fld	ds:flt_1ED110
		mov	eax, [ebp+arg_C]
		fld	dword ptr [edx]
		fmul	st, st(1)
		fstp	[ebp+var_8]
		cvttss2si ecx, [ebp+var_8]
		and	ecx, 0FFFFh
		mov	[ebp+var_4], ecx
		fild	[ebp+var_4]
		fld	ds:flt_1ED114
		fmul	st(1), st
		fxch	st(1)
		fstp	dword ptr [eax]
		fld	dword ptr [edx+4]
		fmul	st, st(2)
		fstp	[ebp+var_8]
		cvttss2si ecx, [ebp+var_8]
		and	ecx, 0FFFFh
		mov	[ebp+var_4], ecx
		fild	[ebp+var_4]
		fmul	st, st(1)
		fstp	dword ptr [eax+4]
		fxch	st(1)
		fmul	dword ptr [edx+8]
		fstp	[ebp+var_8]
		cvttss2si edx, [ebp+var_8]
		and	edx, 0FFFFh
		mov	[ebp+var_4], edx
		fild	[ebp+var_4]
		fmulp	st(1), st
		fstp	dword ptr [eax+8]
		leave
		retn
_Z17SendProxy_QAnglesPK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_VectorXYToVectorXY(SendProp	 const*, void  const*, void  const*, DVariant *, int, int)
_Z28SendProxy_VectorXYToVectorXYPK8SendPropPKvS3_P8DVariantii proc near

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_C]
		mov	ecx, [edx]
		mov	[eax], ecx
		mov	edx, [edx+4]
		mov	[eax+4], edx
		pop	ebp
		retn
_Z28SendProxy_VectorXYToVectorXYPK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_StringToString(SendProp  const*, void  const*, void	 const*, DVariant *, int, int)
_Z24SendProxy_StringToStringPK8SendPropPKvS3_P8DVariantii proc near

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_C]
		mov	edx, [ebp+arg_8]
		mov	[eax], edx
		pop	ebp
		retn
_Z24SendProxy_StringToStringPK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl AssignRangeMultiplier(int, double)
_Z21AssignRangeMultiplierid proc near	; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+CDp
					; SendPropVector(char  const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void  const*,DVariant *,int,int))+8Cp	...

var_40		= qword	ptr -40h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= qword	ptr -30h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch

		push	ebp
		mov	eax, 0FFFFFFFEh
		mov	ebp, esp
		push	ebx
		sub	esp, 3Ch
		mov	ecx, [ebp+arg_0]
		fld	[ebp+arg_4]
		fld	ds:dbl_1ED120
		cmp	ecx, 20h
		jz	short loc_991E5
		fstp	st
		mov	eax, 1
		shl	eax, cl
		sub	eax, 1
		movd	xmm0, eax
		movq	[ebp+var_30], xmm0
		fild	[ebp+var_30]

loc_991E5:				; CODE XREF: AssignRangeMultiplier(int,double)+1Bj
		fnstcw	[ebp+var_32]
		fld	st
		movd	xmm0, eax
		fdiv	st, st(2)
		movq	[ebp+var_30], xmm0
		movzx	edx, [ebp+var_32]
		mov	dh, 0Ch
		mov	[ebp+var_34], dx
		fld	st(2)
		fabs
		fild	[ebp+var_30]
		fld	ds:flt_1EBD88
		fcomip	st, st(2)
		fstp	st(1)
		fcmovb	st, st(1)
		fld	st(3)
		fmul	st, st(1)
		fld	st
		fldcw	[ebp+var_34]
		fistp	[ebp+var_40]
		fldcw	[ebp+var_32]
		mov	edx, dword ptr [ebp+var_40]
		cmp	eax, edx
		jb	short loc_99230
		fcomip	st, st(3)
		jbe	short loc_992A0
		fstp	st
		jmp	short loc_99234
; ---------------------------------------------------------------------------

loc_99230:				; CODE XREF: AssignRangeMultiplier(int,double)+76j
		fstp	st
		fstp	st

loc_99234:				; CODE XREF: AssignRangeMultiplier(int,double)+7Ej
		mov	[ebp+var_1C], 3F7FF972h
		xor	edx, edx
		mov	[ebp+var_18], 3F7D70A4h
		mov	[ebp+var_14], 3F666666h
		mov	[ebp+var_10], 3F4CCCCDh
		mov	[ebp+var_C], 3F333333h
		lea	esi, [esi+0]

loc_99260:				; CODE XREF: AssignRangeMultiplier(int,double)+E2j
		fld	[ebp+edx*4+var_1C]
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(1)
		fld	st
		fldcw	[ebp+var_34]
		fistp	[ebp+var_40]
		fldcw	[ebp+var_32]
		mov	ecx, dword ptr [ebp+var_40]
		cmp	eax, ecx
		jb	short loc_99288
		fcomip	st, st(3)
		jbe	short loc_992B0
		fstp	st
		jmp	short loc_9928C
; ---------------------------------------------------------------------------
		align 8

loc_99288:				; CODE XREF: AssignRangeMultiplier(int,double)+CAj
		fstp	st
		fstp	st

loc_9928C:				; CODE XREF: AssignRangeMultiplier(int,double)+D2j
		add	edx, 1
		cmp	edx, 5
		jnz	short loc_99260
		fstp	st
		fstp	st
		fstp	st
		fldz
		jmp	short loc_992C0
; ---------------------------------------------------------------------------
		align 10h

loc_992A0:				; CODE XREF: AssignRangeMultiplier(int,double)+7Aj
		fstp	st(2)
		fstp	st
		fstp	st(1)
		jmp	short loc_992C0
; ---------------------------------------------------------------------------
		align 10h

loc_992B0:				; CODE XREF: AssignRangeMultiplier(int,double)+CEj
		fstp	st(2)
		fstp	st
		fstp	st(1)
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_992C0:				; CODE XREF: AssignRangeMultiplier(int,double)+ECj
					; AssignRangeMultiplier(int,double)+F6j
		add	esp, 3Ch
		pop	ebx
		pop	ebp
		retn
_Z21AssignRangeMultiplierid endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropFloat(char  const*, int, int,	int, int, float, float,	void (*)(SendProp  const*, void	 const*, void  const*, DVariant	*, int,	int))
_Z13SendPropFloatPKciiiiffPFvPK8SendPropPKvS5_P8DVariantiiE proc near

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 18h
		mov	ecx, [ebp+arg_10]
		mov	ebx, [ebp+arg_0]
		fld	[ebp+arg_18]
		mov	esi, [ebp+arg_14]
		cmp	ecx, 20h
		fld	[ebp+arg_1C]
		mov	dword ptr [ebx], (offset _ZTV8SendProp+8)
		mov	dword ptr [ebx+30h], 0
		mov	dword ptr [ebx+48h], 0
		mov	dword ptr [ebx+44h], 0
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+38h], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 1
		mov	dword ptr [ebx+24h], 0FFFFFFFFh
		jz	short loc_99368
		test	ecx, ecx
		jg	short loc_993C8
		fstp	st
		fstp	st
		jmp	short loc_9936C
; ---------------------------------------------------------------------------
		align 4

loc_99368:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+89j
		fstp	st
		fstp	st

loc_9936C:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+93j
		fldz
		or	esi, 4
		fld	st
		fld	st(1)

loc_99375:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+136j
					; SendPropFloat(char  const*,int,int,int,int,float,float,void (*)(SendProp  const*,void	 const*,void  const*,DVariant *,int,int))+165j
		mov	eax, [ebp+arg_4]
		fstp	dword ptr [ebx+10h]
		fxch	st(1)
		fstp	dword ptr [ebx+14h]
		mov	[ebx+38h], esi
		mov	dword ptr [ebx+8], 1
		mov	[ebx+30h], eax
		mov	eax, [ebp+arg_8]
		mov	[ebx+0Ch], ecx
		mov	[ebx+48h], eax
		fstp	qword ptr [esp+4] ; double
		mov	[esp], ecx	; int
		call	_Z21AssignRangeMultiplierid ; AssignRangeMultiplier(int,double)
		mov	eax, [ebp+arg_20]
		and	esi, 0E026h
		fstp	dword ptr [ebx+34h]
		mov	[ebx+3Ch], eax
		jz	short loc_993BA
		mov	dword ptr [ebx+0Ch], 0

loc_993BA:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+E1j
		add	esp, 18h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 4

loc_993C8:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+8Dj
		fld	ds:flt_1ED118
		fcomip	st, st(1)
		jnz	short loc_993E1
		fstp	st
		mov	eax, 1
		shl	eax, cl
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]

loc_993E1:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+100j
		test	esi, 8
		jz	short loc_99410
		fld	st(1)
		mov	eax, 1
		fsub	st, st(1)
		shl	eax, cl
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fdivp	st(1), st
		faddp	st(1), st
		fld	st
		fsub	st, st(2)
		fxch	st(1)
		fxch	st(2)
		jmp	loc_99375
; ---------------------------------------------------------------------------
		align 10h

loc_99410:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+117j
		fld	st
		test	esi, 10h
		fsub	st, st(2)
		jz	short loc_99431
		mov	eax, 1
		shl	eax, cl
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fdivp	st(1), st
		faddp	st(2), st
		fld	st
		fsub	st, st(2)

loc_99431:				; CODE XREF: SendPropFloat(char	 const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void	 const*,DVariant *,int,int))+14Aj
		fxch	st(1)
		fxch	st(2)
		jmp	loc_99375
_Z13SendPropFloatPKciiiiffPFvPK8SendPropPKvS5_P8DVariantiiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropVector(char  const*, int, int, int, int, float, float, void (*)(SendProp  const*, void  const*, void	const*,	DVariant *, int, int))
_Z14SendPropVectorPKciiiiffPFvPK8SendPropPKvS5_P8DVariantiiE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_14]
		mov	eax, [ebp+arg_10]
		mov	ebx, [ebp+arg_0]
		fld	[ebp+arg_18]
		mov	edx, esi
		fld	[ebp+arg_1C]
		fxch	st(1)
		or	edx, 4
		cmp	eax, 20h
		cmovz	esi, edx
		mov	edx, [ebp+arg_4]
		fst	dword ptr [ebx+10h]
		fxch	st(1)
		fst	dword ptr [ebx+14h]
		fsubrp	st(1), st
		mov	[ebx+0Ch], eax
		mov	[ebx+38h], esi
		mov	[ebx+30h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [ebx], (offset _ZTV8SendProp+8)
		mov	dword ptr [ebx+44h], 0
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 1
		mov	dword ptr [ebx+24h], 0FFFFFFFFh
		mov	dword ptr [ebx+8], 2
		mov	[ebx+48h], edx
		fstp	qword ptr [esp+4] ; double
		mov	[esp], eax	; int
		call	_Z21AssignRangeMultiplierid ; AssignRangeMultiplier(int,double)
		mov	eax, [ebp+arg_20]
		and	esi, 0E026h
		fstp	dword ptr [ebx+34h]
		mov	[ebx+3Ch], eax
		jz	short loc_994E9
		mov	dword ptr [ebx+0Ch], 0

loc_994E9:				; CODE XREF: SendPropVector(char  const*,int,int,int,int,float,float,void (*)(SendProp	const*,void  const*,void  const*,DVariant *,int,int))+A0j
		add	esp, 10h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn	4
_Z14SendPropVectorPKciiiiffPFvPK8SendPropPKvS5_P8DVariantiiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropVectorXY(char	 const*, int, int, int,	int, float, float, void	(*)(SendProp  const*, void  const*, void  const*, DVariant *, int, int))
_Z16SendPropVectorXYPKciiiiffPFvPK8SendPropPKvS5_P8DVariantiiE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_14]
		mov	eax, [ebp+arg_10]
		mov	ebx, [ebp+arg_0]
		fld	[ebp+arg_18]
		mov	edx, esi
		fld	[ebp+arg_1C]
		fxch	st(1)
		or	edx, 4
		cmp	eax, 20h
		cmovz	esi, edx
		mov	edx, [ebp+arg_4]
		fst	dword ptr [ebx+10h]
		fxch	st(1)
		fst	dword ptr [ebx+14h]
		fsubrp	st(1), st
		mov	[ebx+0Ch], eax
		mov	[ebx+38h], esi
		mov	[ebx+30h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [ebx], (offset _ZTV8SendProp+8)
		mov	dword ptr [ebx+44h], 0
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 1
		mov	dword ptr [ebx+24h], 0FFFFFFFFh
		mov	dword ptr [ebx+8], 3
		mov	[ebx+48h], edx
		fstp	qword ptr [esp+4] ; double
		mov	[esp], eax	; int
		call	_Z21AssignRangeMultiplierid ; AssignRangeMultiplier(int,double)
		mov	eax, [ebp+arg_20]
		and	esi, 0E026h
		fstp	dword ptr [ebx+34h]
		mov	[ebx+3Ch], eax
		jz	short loc_995A9
		mov	dword ptr [ebx+0Ch], 0

loc_995A9:				; CODE XREF: SendPropVectorXY(char  const*,int,int,int,int,float,float,void (*)(SendProp  const*,void  const*,void  const*,DVariant *,int,int))+A0j
		add	esp, 10h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn	4
_Z16SendPropVectorXYPKciiiiffPFvPK8SendPropPKvS5_P8DVariantiiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropAngle(char  const*, int, int,	int, int, void (*)(SendProp  const*, void  const*, void	 const*, DVariant *, int, int))
_Z13SendPropAnglePKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_14]
		mov	edx, [ebp+arg_10]
		mov	ebx, [ebp+arg_0]
		fld	ds:flt_1ED11C
		mov	ecx, eax
		or	ecx, 4
		cmp	edx, 20h
		cmovz	eax, ecx
		mov	ecx, [ebp+arg_4]
		fst	dword ptr [ebx+14h]
		mov	dword ptr [ebx], (offset _ZTV8SendProp+8)
		mov	[ebx+38h], eax
		mov	dword ptr [ebx+44h], 0
		mov	[ebx+30h], ecx
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 1
		mov	dword ptr [ebx+24h], 0FFFFFFFFh
		mov	dword ptr [ebx+8], 1
		mov	[ebx+48h], ecx
		mov	[ebx+0Ch], edx
		fstp	qword ptr [esp+4] ; double
		mov	[esp], edx	; int
		call	_Z21AssignRangeMultiplierid ; AssignRangeMultiplier(int,double)
		mov	eax, [ebp+arg_18]
		fstp	dword ptr [ebx+34h]
		mov	[ebx+3Ch], eax
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn	4
_Z13SendPropAnglePKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE endp

; ---------------------------------------------------------------------------
		jmp	short _Z15SendPropQAnglesPKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE ; SendPropQAngles(char  const*,int,int,int,int,void (*)(SendProp  const*,void	 const*,void  const*,DVariant *,int,int))
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropQAngles(char	const*,	int, int, int, int, void (*)(SendProp  const*, void  const*, void  const*, DVariant *, int, int))
_Z15SendPropQAnglesPKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE proc near
					; CODE XREF: .text:00099661j

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_14]
		mov	edx, [ebp+arg_10]
		mov	ebx, [ebp+arg_0]
		fld	ds:flt_1ED11C
		mov	ecx, eax
		or	ecx, 4
		cmp	edx, 20h
		cmovz	eax, ecx
		mov	ecx, [ebp+arg_4]
		fst	dword ptr [ebx+14h]
		mov	dword ptr [ebx], (offset _ZTV8SendProp+8)
		mov	[ebx+38h], eax
		mov	dword ptr [ebx+44h], 0
		mov	[ebx+30h], ecx
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 1
		mov	dword ptr [ebx+24h], 0FFFFFFFFh
		mov	dword ptr [ebx+8], 2
		mov	[ebx+48h], ecx
		mov	[ebx+0Ch], edx
		fstp	qword ptr [esp+4] ; double
		mov	[esp], edx	; int
		call	_Z21AssignRangeMultiplierid ; AssignRangeMultiplier(int,double)
		mov	eax, [ebp+arg_18]
		fstp	dword ptr [ebx+34h]
		mov	[ebx+3Ch], eax
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn	4
_Z15SendPropQAnglesPKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE endp

; ---------------------------------------------------------------------------
		jmp	short _Z11SendPropIntPKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE ;	SendPropInt(char  const*,int,int,int,int,void (*)(SendProp  const*,void	 const*,void  const*,DVariant *,int,int))
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropInt(char  const*, int, int, int, int,	void (*)(SendProp  const*, void	 const*, void  const*, DVariant	*, int,	int))
_Z11SendPropIntPKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE	proc near
					; CODE XREF: .text:00099711j
					; SendPropUtlVector(char *,int,int,void	(*)(void *,int,int),int,SendProp,void *	(*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients *,int))+1A7p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_18]
		push	esi
		mov	eax, [ebp+arg_0]
		push	ebx
		mov	esi, [ebp+arg_C]
		mov	ecx, [ebp+arg_10]
		test	edx, edx
		mov	ebx, [ebp+arg_14]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	dword ptr [eax+30h], 0
		mov	dword ptr [eax+48h], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		jz	short loc_99810

loc_997A8:				; CODE XREF: SendPropInt(char  const*,int,int,int,int,void (*)(SendProp	 const*,void  const*,void  const*,DVariant *,int,int))+F8j
					; SendPropInt(char  const*,int,int,int,int,void	(*)(SendProp  const*,void  const*,void	const*,DVariant	*,int,int))+102j ...
		shl	esi, 3
		test	ecx, ecx
		mov	[eax+38h], ebx
		cmovle	ecx, esi
		mov	esi, [ebp+arg_4]
		and	ebx, 1
		mov	[eax+3Ch], edx
		mov	[eax+0Ch], ecx
		mov	[eax+30h], esi
		mov	esi, [ebp+arg_8]
		mov	[eax+48h], esi
		jz	short loc_997E2
		cmp	edx, offset _Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int8ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		jz	short loc_99840
		cmp	edx, offset _Z22SendProxy_Int16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int16ToInt32(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		jz	short loc_99800
		cmp	edx, offset _Z22SendProxy_Int32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int32ToInt32(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		jz	short loc_997F0

loc_997E2:				; CODE XREF: SendPropInt(char  const*,int,int,int,int,void (*)(SendProp	 const*,void  const*,void  const*,DVariant *,int,int))+A8j
					; SendPropInt(char  const*,int,int,int,int,void	(*)(SendProp  const*,void  const*,void	const*,DVariant	*,int,int))+E7j ...
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

loc_997F0:				; CODE XREF: SendPropInt(char  const*,int,int,int,int,void (*)(SendProp	 const*,void  const*,void  const*,DVariant *,int,int))+C0j
		mov	dword ptr [eax+3Ch], offset _Z23SendProxy_UInt32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt32ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

loc_99800:				; CODE XREF: SendPropInt(char  const*,int,int,int,int,void (*)(SendProp	 const*,void  const*,void  const*,DVariant *,int,int))+B8j
		mov	dword ptr [eax+3Ch], offset _Z23SendProxy_UInt16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt16ToInt32(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)
		jmp	short loc_997E2
; ---------------------------------------------------------------------------
		align 10h

loc_99810:				; CODE XREF: SendPropInt(char  const*,int,int,int,int,void (*)(SendProp	 const*,void  const*,void  const*,DVariant *,int,int))+86j
		cmp	esi, 1
		mov	edx, offset _Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int8ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		jz	short loc_997A8
		cmp	esi, 2
		mov	edx, offset _Z22SendProxy_Int16ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int16ToInt32(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		jz	short loc_997A8
		mov	edx, offset _Z22SendProxy_Int32ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int32ToInt32(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		cmp	esi, 4
		mov	edi, offset _Z21SendProxy_Int8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_Int8ToInt32(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		cmovnz	edx, edi
		jmp	loc_997A8
; ---------------------------------------------------------------------------
		align 10h

loc_99840:				; CODE XREF: SendPropInt(char  const*,int,int,int,int,void (*)(SendProp	 const*,void  const*,void  const*,DVariant *,int,int))+B0j
		mov	dword ptr [eax+3Ch], offset _Z22SendProxy_UInt8ToInt32PK8SendPropPKvS3_P8DVariantii ; SendProxy_UInt8ToInt32(SendProp  const*,void  const*,void	 const*,DVariant *,int,int)
		jmp	short loc_997E2
_Z11SendPropIntPKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropString(char  const*, int, int, int, void (*)(SendProp	 const*, void  const*, void  const*, DVariant *, int, int))
_Z14SendPropStringPKciiiPFvPK8SendPropPKvS5_P8DVariantiiE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax+10h], edx
		mov	[eax+14h], edx
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+28h], 0
		mov	[eax+30h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+18h], 0
		mov	[eax+48h], edx
		mov	edx, [ebp+arg_10]
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		mov	[eax+38h], edx
		mov	edx, [ebp+arg_14]
		mov	dword ptr [eax+8], 4
		mov	[eax+3Ch], edx
		pop	ebp
		retn	4
_Z14SendPropStringPKciiiPFvPK8SendPropPKvS5_P8DVariantiiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropArray3(char  const*, int, int, int, SendProp,	void * (*)(SendProp const*, void  const*, void	const*,	CSendProxyRecipients *,	int))
_Z14SendPropArray3PKciii8SendPropPFPvPKS1_PKvS6_P20CSendProxyRecipientsiE proc near

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	edi, [ebp+arg_18]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	ebx, [ebp+arg_14]
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		mov	dword ptr [eax+8], 6
		mov	[eax+30h], esi
		mov	eax, [ebp+arg_8]
		mov	[edx+40h], edi
		mov	[edx+48h], eax
		mov	dword ptr [esp], 50h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax+8], 0
		cmp	edi, offset _Z30SendProxy_DataTableToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi	; SendProxy_DataTableToDataTable(SendProp  const*,void	const*,void  const*,CSendProxyRecipients *,int)
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	dword ptr [eax+30h], 0
		mov	dword ptr [eax+48h], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		mov	edx, [ebx+4]
		mov	[eax+4], edx
		mov	edx, [ebx+8]
		mov	[eax+8], edx
		mov	edx, [ebx+0Ch]
		mov	[eax+0Ch], edx
		mov	edx, [ebx+10h]
		mov	[eax+10h], edx
		mov	edx, [ebx+14h]
		mov	[eax+14h], edx
		mov	edx, [ebx+18h]
		mov	[eax+18h], edx
		mov	edx, [ebx+1Ch]
		mov	[eax+1Ch], edx
		mov	edx, [ebx+20h]
		mov	[eax+20h], edx
		mov	edx, [ebx+24h]
		mov	[eax+24h], edx
		mov	edx, [ebx+28h]
		mov	[eax+28h], edx
		mov	edx, [ebx+2Ch]
		mov	[eax+2Ch], edx
		mov	edx, [ebx+30h]
		mov	[eax+30h], edx
		mov	edx, [ebx+34h]
		mov	[eax+34h], edx
		mov	edx, [ebx+38h]
		mov	[eax+38h], edx
		mov	edx, [ebx+3Ch]
		mov	[eax+3Ch], edx
		mov	edx, [ebx+40h]
		mov	[eax+40h], edx
		mov	edx, [ebx+44h]
		mov	[eax+44h], edx
		mov	edx, [ebx+48h]
		mov	[eax+48h], edx
		mov	edx, [ebx+4Ch]
		mov	[eax+4Ch], edx
		mov	edx, [ebp+arg_0]
		mov	[edx+18h], eax
		jz	loc_99BDA
		cmp	edi, offset _Z33SendProxy_DataTablePtrToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ; SendProxy_DataTablePtrToDataTable(SendProp	 const*,void  const*,void  const*,CSendProxyRecipients *,int)
		jz	loc_99BDA

loc_99A50:				; CODE XREF: SendPropArray3(char  const*,int,int,int,SendProp,void * (*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients	*,int))+324j
		mov	edx, [ebp+arg_10]
		lea	eax, [edx+edx*4]
		shl	eax, 4
		add	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	ecx, eax
		mov	eax, [ebp+arg_10]
		lea	edx, [ecx+4]
		mov	[ebp+var_1C], edx
		test	eax, eax
		mov	[ecx], eax
		jz	loc_99AF9
		mov	edi, [ebp+arg_10]
		mov	eax, edx
		xor	edx, edx

loc_99A80:				; CODE XREF: SendPropArray3(char  const*,int,int,int,SendProp,void * (*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients	*,int))+237j
		add	edx, 1
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	dword ptr [eax+30h], 0
		mov	dword ptr [eax+48h], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		add	eax, 50h
		cmp	edi, edx
		jnz	short loc_99A80

loc_99AF9:				; CODE XREF: SendPropArray3(char  const*,int,int,int,SendProp,void * (*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients	*,int))+1B3j
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jle	loc_99BA3
		lea	eax, [ecx+24h]
		xor	edx, edx
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_99B10:				; CODE XREF: SendPropArray3(char  const*,int,int,int,SendProp,void * (*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients	*,int))+2DDj
		mov	edi, [ebx+4]
		mov	[eax-1Ch], edi
		mov	edi, [ebx+8]
		mov	[eax-18h], edi
		mov	edi, [ebx+0Ch]
		mov	[eax-14h], edi
		mov	edi, [ebx+10h]
		mov	[eax-10h], edi
		mov	edi, [ebx+14h]
		mov	[eax-0Ch], edi
		mov	edi, [ebx+18h]
		mov	[eax-8], edi
		mov	edi, [ebx+1Ch]
		mov	[eax-4], edi
		mov	edi, [ebx+20h]
		mov	[eax], edi
		mov	edi, [ebx+24h]
		mov	[eax+4], edi
		mov	edi, [ebx+28h]
		mov	[eax+8], edi
		mov	edi, [ebx+2Ch]
		mov	[eax+0Ch], edi
		mov	edi, [ebx+30h]
		mov	[eax+10h], edi
		mov	edi, [ebx+34h]
		mov	[eax+14h], edi
		mov	edi, [ebx+38h]
		mov	[eax+18h], edi
		mov	edi, [ebx+3Ch]
		mov	[eax+1Ch], edi
		mov	edi, [ebx+40h]
		mov	[eax+20h], edi
		mov	edi, [ebx+44h]
		mov	[eax+24h], edi
		mov	edi, [ebx+48h]
		mov	[eax+28h], edi
		mov	edi, [ebx+4Ch]
		mov	[eax+28h], ecx
		add	ecx, [ebp+arg_C]
		mov	[eax+2Ch], edi
		mov	edi, s_ElementNames[edx*4]
		add	edx, 1
		mov	[eax+0Ch], esi
		mov	[eax+10h], edi
		add	eax, 50h
		cmp	edx, [ebp+arg_10]
		jnz	loc_99B10

loc_99BA3:				; CODE XREF: SendPropArray3(char  const*,int,int,int,SendProp,void * (*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients	*,int))+23Ej
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	[eax+8], esi
		mov	dword ptr [eax+0Ch], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_10]
		and	byte ptr [eax+10h], 0F8h
		mov	[eax+4], edx
		mov	edx, [ebp+arg_0]
		mov	[edx+44h], eax
		add	esp, 2Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------

loc_99BDA:				; CODE XREF: SendPropArray3(char  const*,int,int,int,SendProp,void * (*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients	*,int))+17Ej
					; SendPropArray3(char  const*,int,int,int,SendProp,void	* (*)(SendProp const*,void  const*,void	 const*,CSendProxyRecipients *,int))+18Aj
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+38h], 200h
		jmp	loc_99A50
_Z14SendPropArray3PKciii8SendPropPFPvPKS1_PKvS6_P20CSendProxyRecipientsiE endp

; ---------------------------------------------------------------------------
		mov	edx, [ebp+8]
		mov	dword ptr [edx], (offset _ZTV8SendProp+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropDataTable(char  const*, int, SendTable *, void * (*)(SendProp	 const*, void  const*, void  const*, CSendProxyRecipients *, int))
_Z17SendPropDataTablePKciP9SendTablePFPvPK8SendPropPKvS8_P20CSendProxyRecipientsiE proc	near
					; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+2E5p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	[eax+30h], ebx
		mov	ebx, [ebp+arg_C]
		cmp	ecx, offset _Z30SendProxy_DataTableToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi	; SendProxy_DataTableToDataTable(SendProp  const*,void	const*,void  const*,CSendProxyRecipients *,int)
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		mov	dword ptr [eax+8], 6
		mov	[eax+48h], edx
		mov	[eax+44h], ebx
		mov	[eax+40h], ecx
		jz	short loc_99CA0
		xor	edx, edx
		cmp	ecx, offset _Z33SendProxy_DataTablePtrToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ; SendProxy_DataTablePtrToDataTable(SendProp	 const*,void  const*,void  const*,CSendProxyRecipients *,int)
		mov	ecx, 200h
		cmovz	edx, ecx
		mov	[eax+38h], edx
		pop	ebx
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

loc_99CA0:				; CODE XREF: SendPropDataTable(char  const*,int,SendTable *,void * (*)(SendProp	 const*,void  const*,void  const*,CSendProxyRecipients *,int))+7Fj
		test	edx, edx
		mov	dword ptr [eax+38h], 200h
		setz	dl
		cmp	dl, 1
		sbb	edx, edx
		and	edx, 0FFFFF200h
		add	edx, 1000h
		mov	[eax+38h], edx
		pop	ebx
		pop	ebp
		retn	4
_Z17SendPropDataTablePKciP9SendTablePFPvPK8SendPropPKvS8_P20CSendProxyRecipientsiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InternalSendPropArray(int, int, char	const*,	int (*)(void  const*, int))
_Z21InternalSendPropArrayiiPKcPFiPKviE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax+10h], edx
		mov	[eax+14h], edx
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	dword ptr [eax+48h], 0
		mov	dword ptr [eax+44h], 0
		mov	[eax+20h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+38h], 0
		mov	[eax+24h], edx
		mov	edx, [ebp+arg_C]
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+8], 5
		mov	[eax+30h], edx
		mov	edx, [ebp+arg_10]
		mov	dword ptr [eax+3Ch], offset _ZL15SendProxy_EmptyPK8SendPropPKvS3_P8DVariantii ;	SendProxy_Empty(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	[eax+1Ch], edx
		pop	ebp
		retn	4
_Z21InternalSendPropArrayiiPKcPFiPKviE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropExclude(char	const*,	char  const*)
_Z15SendPropExcludePKcS0_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax+10h], edx
		mov	[eax+14h], edx
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	dword ptr [eax+48h], 0
		mov	dword ptr [eax+44h], 0
		mov	[eax+28h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		mov	dword ptr [eax+38h], 40h
		mov	[eax+30h], edx
		pop	ebp
		retn	4
_Z15SendPropExcludePKcS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProp::SendProp(void)
_ZN8SendPropC2Ev proc near		; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+18p
					; SendPropUtlVector(char *,int,int,void	(*)(void *,int,int),int,SendProp,void *	(*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients *,int))+103p ...

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV8SendProp+8)
		mov	dword ptr [eax+30h], 0
		mov	dword ptr [eax+48h], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+0Ch], 0
		mov	[eax+10h], edx
		mov	[eax+14h], edx
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 1
		mov	dword ptr [eax+24h], 0FFFFFFFFh
		pop	ebp
		retn
_ZN8SendPropC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProp::GetNumArrayLengthBits(void)const
_ZNK8SendProp21GetNumArrayLengthBitsEv proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+18p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+18p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+20h]
		mov	[esp], eax
		call	_Z6Q_log2i	; Q_log2(int)
		leave
		add	eax, 1
		retn
_ZNK8SendProp21GetNumArrayLengthBitsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable::SendTable(void)
_ZN9SendTableC2Ev proc near		; CODE XREF: CClientSendTable::CClientSendTable(void)+Dp
					; RecvTable_ReadInfos(bf_read *,int)+1Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		and	byte ptr [eax+10h], 0F8h
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		pop	ebp
		retn
_ZN9SendTableC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable::SendTable(SendProp	*, int,	char  const*)
_ZN9SendTableC2EP8SendPropiPKc proc near
					; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+2B8p
					; SendPropUtlVector(char *,int,int,void	(*)(void *,int,int),int,SendProp,void *	(*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients *,int))+4FDp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+0Ch], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	[eax+4], edx
		mov	edx, [ebp+arg_C]
		and	byte ptr [eax+10h], 0F8h
		mov	[eax+8], edx
		pop	ebp
		retn
_ZN9SendTableC2EP8SendPropiPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable::~SendTable()
_ZN9SendTableD2Ev proc near		; CODE XREF: CClientSendTable::~CClientSendTable()+107j
					; .text:000F7CA4p ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9SendTableD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable::Construct(SendProp	*, int,	char  const*)
_ZN9SendTable9ConstructEP8SendPropiPKc proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+0Ch], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	[eax+4], edx
		mov	edx, [ebp+arg_C]
		and	byte ptr [eax+10h], 0F8h
		mov	[eax+8], edx
		pop	ebp
		retn
_ZN9SendTable9ConstructEP8SendPropiPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl AllocateStringHelper2(char *format, __gnuc_va_list arg)
_Z21AllocateStringHelper2PKcPc proc near
					; CODE XREF: AllocateStringHelper(char	const*,...)+13p
					; AllocateUniqueDataTableName(bool,char	 const*,...)+13p

src		= byte ptr -218h
var_19		= byte ptr -19h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
format		= dword	ptr  8
arg		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 228h
		mov	eax, [ebp+arg]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+src]
		mov	[ebp+var_4], edi
		mov	edi, ebx
		mov	[ebp+var_8], esi
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; format
		call	vsnprintf
		mov	[ebp+var_19], 0

loc_99F3C:				; CODE XREF: AllocateStringHelper2(char	 const*,char *)+50j
		mov	edx, [edi]
		add	edi, 4
		lea	eax, [edx-1010101h]
		not	edx
		and	eax, edx
		and	eax, 80808080h
		jz	short loc_99F3C
		mov	edx, eax
		shr	edx, 10h
		test	eax, 8080h
		cmovz	eax, edx
		lea	edx, [edi+2]
		cmovz	edi, edx
		add	al, al
		sbb	edi, 3
		sub	edi, ebx
		add	edi, 1
		mov	[esp], edi
		call	_Znaj		; operator new[](uint)
		mov	[esp+8], edi	; n
		mov	esi, eax
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	memcpy
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z21AllocateStringHelper2PKcPc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl AllocateStringHelper(char	*format, char arg)
_Z20AllocateStringHelperPKcz proc near	; CODE XREF: RecvPropArray3(char  const*,int,int,int,RecvProp,void (*)(RecvProp	const*,void **,void *,int))+EFp
					; RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void	*,int,int),int,RecvProp)+E1p ...

format		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+arg]
		mov	[esp+4], eax	; arg
		mov	eax, [ebp+format]
		mov	[esp], eax	; format
		call	_Z21AllocateStringHelper2PKcPc ; AllocateStringHelper2(char  const*,char *)
		leave
		retn
_Z20AllocateStringHelperPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl AllocateUniqueDataTableName(int, char *format, char arg)
_Z27AllocateUniqueDataTableNamebPKcz proc near
					; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+194p
					; RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void	*,int,int),int,RecvProp)+38Bp ...

format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+arg]
		mov	[esp+4], eax	; arg
		mov	eax, [ebp+format]
		mov	[esp], eax	; format
		call	_Z21AllocateStringHelper2PKcPc ; AllocateStringHelper2(char  const*,char *)
		leave
		retn
_Z27AllocateUniqueDataTableNamebPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_UtlVectorLength(CRecvProxyData  const*, void *, void *)
_Z25RecvProxy_UtlVectorLengthPK14CRecvProxyDataPvS2_ proc near
					; DATA XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+E6o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [edx]
		mov	edx, [edx+4]
		mov	eax, [eax+14h]
		mov	[ebp+arg_8], edx
		mov	edx, [eax+14h]
		mov	[ebp+arg_0], ecx
		mov	[ebp+arg_4], edx
		pop	ebp
		mov	eax, [eax+8]
		jmp	eax
_Z25RecvProxy_UtlVectorLengthPK14CRecvProxyDataPvS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_UtlVectorElement(CRecvProxyData  const*, void *, void *)
_Z26RecvProxy_UtlVectorElementPK14CRecvProxyDataPvS2_ proc near
					; DATA XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+2D3o

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_8]
		mov	eax, [ecx]
		mov	edx, [eax+14h]
		mov	eax, [eax+30h]
		mov	esi, [edx+14h]
		imul	eax, [edx+10h]
		add	eax, [edi+esi]
		mov	[ebp+arg_4], ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_8], eax
		mov	eax, [edx+4]
		mov	esp, ebp
		pop	ebp
		jmp	eax
_Z26RecvProxy_UtlVectorElementPK14CRecvProxyDataPvS2_ endp

; ---------------------------------------------------------------------------
		jmp	short _Z36RecvProxy_UtlVectorElement_DataTablePK8RecvPropPPvS2_i ; RecvProxy_UtlVectorElement_DataTable(RecvProp  const*,void **,void *,int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvProxy_UtlVectorElement_DataTable(RecvProp	 const*, void **, void *, int)
_Z36RecvProxy_UtlVectorElement_DataTablePK8RecvPropPPvS2_i proc	near
					; CODE XREF: .text:0009A051j
					; DATA XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+35Bo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	[ebp+var_8], ebx
		mov	esi, [ebp+arg_8]
		mov	edx, [ecx+14h]
		mov	eax, [ecx+30h]
		mov	ebx, [edx+14h]
		imul	eax, [edx+10h]
		add	eax, [esi+ebx]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_8], eax
		mov	eax, [edx]
		mov	esp, ebp
		pop	ebp
		jmp	eax
_Z36RecvProxy_UtlVectorElement_DataTablePK8RecvPropPPvS2_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTableRecvProxy_LengthProxy(RecvProp  const*, void	**, void *, int)
_Z30DataTableRecvProxy_LengthProxyPK8RecvPropPPvS2_i proc near
					; DATA XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+1CEo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	eax, [eax+14h]
		mov	edx, [eax+18h]
		mov	[esp+8], edx
		mov	edx, [eax+14h]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_4]
		mov	[eax], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z30DataTableRecvProxy_LengthProxyPK8RecvPropPPvS2_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvPropUtlVector(char  const*, int, int, void (*)(void *, int, int),	void (*)(void *, int, int), int, RecvProp)
_Z17RecvPropUtlVectorPKciiPFvPviiES3_i8RecvProp	proc near

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg		= byte ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_34		= dword	ptr  3Ch
arg_38		= dword	ptr  40h
arg_3C		= dword	ptr  44h
arg_40		= dword	ptr  48h
arg_44		= dword	ptr  4Ch
arg_4C		= dword	ptr  54h
arg_50		= dword	ptr  58h
arg_54		= dword	ptr  5Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ACh
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_20]
		mov	[esp], eax
		call	_ZN8RecvPropC2Ev ; RecvProp::RecvProp(void)
		mov	ecx, dword ptr [ebp+arg]
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		add	ecx, 1
		mov	dword ptr [eax+4], 6
		mov	[eax], edx
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+24h], offset _Z34DataTableRecvProxy_StaticDataTablePK8RecvPropPPvS2_i ; DataTableRecvProxy_StaticDataTable(RecvProp  const*,void	**,void	*,int)
		imul	eax, ecx, 3Ch
		mov	[ebp+var_8C], ecx
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	edx, [ebp+var_8C]
		mov	[ebp+var_88], eax
		test	edx, edx
		jz	short loc_9A14B
		mov	edi, dword ptr [ebp+arg]
		mov	esi, eax
		nop
		lea	esi, [esi+0]

loc_9A138:				; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+79j
		mov	[esp], esi
		call	_ZN8RecvPropC2Ev ; RecvProp::RecvProp(void)
		sub	edi, 1
		add	esi, 3Ch
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_9A138

loc_9A14B:				; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+5Cj
		mov	dword ptr [esp], 1Ch
		call	_Znwj		; operator new(uint)
		mov	edx, dword ptr [ebp+arg]
		cmp	ebx, 6
		mov	[ebp+var_5C], eax
		mov	ecx, [ebp+var_5C]
		mov	[eax+18h], edx
		mov	eax, [ebp+arg_C]
		mov	[ecx+10h], eax
		mov	eax, [ebp+arg_10]
		mov	[ecx+8], eax
		mov	eax, [ebp+arg_14]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_8]
		mov	[ecx+14h], eax
		jz	loc_9A4A0
		mov	eax, [ebp+arg_3C]
		mov	edx, [ebp+var_5C]
		mov	[edx+4], eax

loc_9A18D:				; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+3D5j
		mov	dword ptr [esp], 3Ch
		call	_Znwj		; operator new(uint)
		mov	esi, eax
		mov	[esp], eax
		call	_ZN8RecvPropC2Ev ; RecvProp::RecvProp(void)
		mov	ecx, dword ptr [ebp+arg]
		mov	dword ptr [esp], offset	aLengthpropD ; "lengthprop%d"
		mov	[esp+4], ecx	; arg
		call	_Z20AllocateStringHelperPKcz ; AllocateStringHelper(char  const*,...)
		mov	dword ptr [esp+14h], offset _Z25RecvProxy_UtlVectorLengthPK14CRecvProxyDataPvS2_ ; RecvProxy_UtlVectorLength(CRecvProxyData  const*,void *,void	*)
		mov	[esp+4], eax
		lea	eax, [ebp+var_58]
		mov	[esp], eax
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		call	_Z11RecvPropIntPKciiiPFvPK14CRecvProxyDataPvS4_E ; RecvPropInt(char  const*,int,int,int,void (*)(CRecvProxyData	 const*,void *,void *))
		mov	eax, [ebp+var_58]
		mov	edx, dword ptr [ebp+arg]
		sub	esp, 4
		mov	[esi], eax
		mov	eax, [ebp+var_54]
		mov	[esi+4], eax
		mov	eax, [ebp+var_50]
		mov	[esi+8], eax
		mov	eax, [ebp+var_4C]
		mov	[esi+0Ch], eax
		mov	eax, [ebp+var_48]
		mov	[esi+10h], eax
		mov	eax, [ebp+var_44]
		mov	[esi+14h], eax
		mov	eax, [ebp+var_40]
		mov	[esi+18h], eax
		mov	eax, [ebp+var_3C]
		mov	[esi+1Ch], eax
		mov	eax, [ebp+var_38]
		mov	[esi+20h], eax
		mov	eax, [ebp+var_34]
		mov	[esi+24h], eax
		mov	eax, [ebp+var_30]
		mov	[esi+28h], eax
		mov	eax, [ebp+var_2C]
		mov	[esi+2Ch], eax
		mov	eax, [ebp+var_28]
		mov	[esi+30h], eax
		mov	eax, [ebp+var_24]
		mov	[esi+34h], eax
		mov	eax, [ebp+var_20]
		mov	[esi+38h], eax
		mov	eax, [ebp+var_5C]
		mov	[esi+14h], eax
		mov	[esp+0Ch], edx
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [esp+4], offset a_lpt_S_D ; "_LPT_%s_%d"
		mov	dword ptr [esp], 0 ; int
		mov	[esp+8], ecx	; arg
		call	_Z27AllocateUniqueDataTableNamebPKcz ; AllocateUniqueDataTableName(bool,char  const*,...)
		mov	dword ptr [esp], 14h
		mov	[ebp+var_90], eax
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_90]
		mov	[esp+4], esi
		mov	edi, eax
		mov	dword ptr [esp+8], 1
		mov	[esp], eax
		mov	[esp+0Ch], edx
		call	_ZN9RecvTableC2EP8RecvPropiPKc ; RecvTable::RecvTable(RecvProp *,int,char  const*)
		lea	eax, [ebp+var_58]
		mov	dword ptr [esp+14h], offset _Z30DataTableRecvProxy_LengthProxyPK8RecvPropPPvS2_i ; DataTableRecvProxy_LengthProxy(RecvProp  const*,void	**,void	*,int)
		mov	[esp], eax
		mov	[esp+10h], edi
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aLengthproxy ; "lengthproxy"
		call	_Z17RecvPropDataTablePKciiP9RecvTablePFvPK8RecvPropPPvS6_iE ; RecvPropDataTable(char  const*,int,int,RecvTable *,void (*)(RecvProp  const*,void	**,void	*,int))
		mov	eax, [ebp+var_58]
		mov	edx, [ebp+var_88]
		sub	esp, 4
		mov	[edx], eax
		mov	eax, [ebp+var_54]
		mov	[edx+4], eax
		mov	eax, [ebp+var_50]
		mov	[edx+8], eax
		mov	eax, [ebp+var_4C]
		mov	[edx+0Ch], eax
		mov	eax, [ebp+var_48]
		mov	[edx+10h], eax
		mov	eax, [ebp+var_44]
		mov	[edx+14h], eax
		mov	eax, [ebp+var_40]
		mov	[edx+18h], eax
		mov	eax, [ebp+var_3C]
		mov	[edx+1Ch], eax
		mov	eax, [ebp+var_38]
		mov	[edx+20h], eax
		mov	eax, [ebp+var_34]
		mov	[edx+24h], eax
		mov	eax, [ebp+var_30]
		mov	[edx+28h], eax
		mov	eax, [ebp+var_2C]
		mov	[edx+2Ch], eax
		mov	eax, [ebp+var_28]
		mov	[edx+30h], eax
		mov	eax, [ebp+var_24]
		mov	[edx+34h], eax
		mov	eax, [ebp+var_20]
		mov	[edx+38h], eax
		mov	eax, [ebp+var_5C]
		mov	[edx+14h], eax
		mov	eax, dword ptr [ebp+arg]
		test	eax, eax
		jle	loc_9A43E
		mov	eax, [ebp+arg_2C]
		add	edx, 3Ch
		mov	ecx, [ebp+arg_28]
		mov	[ebp+var_94], edx
		xor	edx, edx
		mov	edi, [ebp+arg_1C]
		mov	esi, [ebp+arg_24]
		mov	[ebp+var_6C], eax
		mov	eax, [ebp+arg_30]
		mov	[ebp+var_70], eax
		mov	eax, [ebp+arg_34]
		mov	[ebp+var_74], eax
		mov	eax, [ebp+arg_38]
		mov	[ebp+var_78], eax
		mov	eax, [ebp+arg_3C]
		mov	[ebp+var_7C], eax
		mov	eax, [ebp+arg_40]
		mov	[ebp+var_80], eax
		mov	eax, [ebp+arg_44]
		mov	[ebp+var_84], eax
		mov	eax, [ebp+arg_4C]
		mov	[ebp+var_60], eax
		mov	eax, [ebp+arg_50]
		mov	[ebp+var_64], eax
		mov	eax, [ebp+arg_54]
		mov	[ebp+var_68], eax
		mov	eax, [ebp+var_94]
		mov	[ebp+var_94], ecx
		jmp	short loc_9A3B6
; ---------------------------------------------------------------------------
		align 10h

loc_9A3A0:				; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+352j
		add	edx, 1
		mov	dword ptr [eax+20h], offset _Z26RecvProxy_UtlVectorElementPK14CRecvProxyDataPvS2_ ; RecvProxy_UtlVectorElement(CRecvProxyData  const*,void *,void *)
		add	eax, 3Ch
		cmp	edx, dword ptr [ebp+arg]
		jz	loc_9A43E

loc_9A3B6:				; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+2CCj
					; RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void	*,int,int),int,RecvProp)+368j
		mov	ecx, [ebp+var_94]
		mov	[eax], edi
		cmp	ebx, 6
		mov	[eax+8], esi
		mov	[eax+4], ebx
		mov	dword ptr [eax+2Ch], 0
		mov	[eax+0Ch], ecx
		mov	ecx, [ebp+var_6C]
		mov	[eax+10h], ecx
		mov	ecx, [ebp+var_70]
		mov	[eax+14h], ecx
		mov	ecx, [ebp+var_74]
		mov	[eax+18h], ecx
		mov	ecx, [ebp+var_78]
		mov	[eax+1Ch], ecx
		mov	ecx, [ebp+var_7C]
		mov	[eax+20h], ecx
		mov	ecx, [ebp+var_80]
		mov	[eax+24h], ecx
		mov	ecx, [ebp+var_84]
		mov	[eax+28h], ecx
		mov	ecx, [ebp+var_60]
		mov	[eax+30h], ecx
		mov	ecx, [ebp+var_64]
		mov	[eax+34h], ecx
		mov	ecx, [ebp+var_68]
		mov	[eax+38h], ecx
		mov	ecx, s_ClientElementNames[edx*4]
		mov	[eax+30h], edx
		mov	[eax], ecx
		mov	ecx, [ebp+var_5C]
		mov	[eax+14h], ecx
		jnz	loc_9A3A0
		add	edx, 1
		mov	dword ptr [eax+24h], offset _Z36RecvProxy_UtlVectorElement_DataTablePK8RecvPropPPvS2_i ; RecvProxy_UtlVectorElement_DataTable(RecvProp	const*,void **,void *,int)
		add	eax, 3Ch
		cmp	edx, dword ptr [ebp+arg]
		jnz	loc_9A3B6

loc_9A43E:				; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+267j
					; RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void	*,int,int),int,RecvProp)+2E0j
		mov	edx, [ebp+arg_4]
		mov	dword ptr [esp+4], offset a_st_S_D ; "_ST_%s_%d"
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp], 0 ; int
		mov	[esp+8], edx	; arg
		mov	[esp+0Ch], eax
		call	_Z27AllocateUniqueDataTableNamebPKcz ; AllocateUniqueDataTableName(bool,char  const*,...)
		mov	dword ptr [esp], 14h
		mov	esi, eax
		call	_Znwj		; operator new(uint)
		mov	ecx, [ebp+var_8C]
		mov	[esp+0Ch], esi
		mov	ebx, eax
		mov	eax, [ebp+var_88]
		mov	[esp], ebx
		mov	[esp+8], ecx
		mov	[esp+4], eax
		call	_ZN9RecvTableC2EP8RecvPropiPKc ; RecvTable::RecvTable(RecvProp *,int,char  const*)
		mov	eax, [ebp+arg_0]
		mov	[eax+28h], ebx
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------

loc_9A4A0:				; CODE XREF: RecvPropUtlVector(char  const*,int,int,void (*)(void *,int,int),void (*)(void *,int,int),int,RecvProp)+AEj
		mov	eax, [ebp+arg_40]
		mov	[ecx], eax
		jmp	loc_9A18D
_Z17RecvPropUtlVectorPKciiPFvPviiES3_i8RecvProp	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-88h]
		mov	[esp], eax
		call	_ZdaPv		; operator delete[](void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_UtlVectorElement_DataTable(SendProp	 const*, void  const*, void  const*, CSendProxyRecipients *, int)
_Z36SendProxy_UtlVectorElement_DataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi proc near
					; DATA XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+48Eo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_8]
		mov	edx, [ecx+4Ch]
		mov	eax, [edx+0Ch]
		mov	esi, [edx+10h]
		imul	eax, [ecx+24h]
		add	eax, [edi+esi]
		mov	[ebp+arg_4], ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_8], eax
		mov	eax, [edx]
		mov	esp, ebp
		pop	ebp
		jmp	eax
_Z36SendProxy_UtlVectorElement_DataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_UtlVectorLength(SendProp  const*, void  const*, void  const*, DVariant *, int, int)
_Z25SendProxy_UtlVectorLengthPK8SendPropPKvS3_P8DVariantii proc	near
					; DATA XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+180o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_C]
		mov	edx, [eax+4Ch]
		mov	eax, [edx+10h]
		mov	eax, [ebx+eax+0Ch]
		mov	[ecx], eax
		mov	edx, [edx+14h]
		cmp	eax, edx
		jle	short loc_9A562
		mov	[ecx], edx

loc_9A562:				; CODE XREF: SendProxy_UtlVectorLength(SendProp	 const*,void  const*,void  const*,DVariant *,int,int)+1Ej
		pop	ebx
		pop	ebp
		retn
_Z25SendProxy_UtlVectorLengthPK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_LengthTable(SendProp  const*, void	const*,	void  const*, CSendProxyRecipients *, int)
_Z21SendProxy_LengthTablePK8SendPropPKvS3_P20CSendProxyRecipientsi proc	near
					; DATA XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+2C6o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4Ch]
		mov	edx, [eax+14h]
		mov	[esp+8], edx
		mov	edx, [eax+10h]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_4]
		mov	[esp], edx
		call	dword ptr [eax+8]
		mov	eax, [ebp+arg_8]
		leave
		retn
_Z21SendProxy_LengthTablePK8SendPropPKvS3_P20CSendProxyRecipientsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendProxy_UtlVectorElement(SendProp  const*, void  const*, void  const*, DVariant *, int, int)
_Z26SendProxy_UtlVectorElementPK8SendPropPKvS3_P8DVariantii proc near
					; DATA XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+3A6o

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], esi
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_C]
		mov	esi, [edx+24h]
		mov	[ebp+var_1C], ecx
		mov	ecx, [edx+4Ch]
		mov	edi, [ebp+arg_14]
		add	eax, [ecx+10h]
		cmp	esi, [eax+0Ch]
		jge	short loc_9A600
		mov	[ebp+arg_14], edi
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_C], ebx
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_10], 0
		imul	esi, [ecx+0Ch]
		add	esi, [eax]
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+var_1C]
		mov	[ebp+arg_8], esi
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_4], eax
		mov	eax, [ecx+4]
		mov	esp, ebp
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_9A600:				; CODE XREF: SendProxy_UtlVectorElement(SendProp  const*,void  const*,void  const*,DVariant *,int,int)+2Dj
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z26SendProxy_UtlVectorElementPK8SendPropPKvS3_P8DVariantii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendPropUtlVector(char *, int, int, void (*)(void *, int, int), int, SendProp, void *	(*)(SendProp const*, void  const*, void	 const*, CSendProxyRecipients *, int))
_Z17SendPropUtlVectorPciiPFvPviiEi8SendPropPFS0_PKS3_PKvS7_P20CSendProxyRecipientsiE proc near

var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg		= byte ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ECh
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_1C]
		mov	ebx, [ebp+arg_18]
		mov	[esp], eax
		call	_ZN8SendPropC2Ev ; SendProp::SendProp(void)
		mov	eax, [ebp+arg_0]
		cmp	esi, offset _Z30SendProxy_DataTableToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi	; SendProxy_DataTableToDataTable(SendProp  const*,void	const*,void  const*,CSendProxyRecipients *,int)
		mov	edi, [ebp+arg_4]
		mov	dword ptr [eax+8], 6
		mov	[eax+30h], edi
		mov	dword ptr [eax+48h], 0
		mov	[eax+40h], esi
		jz	loc_9AB42
		cmp	esi, offset _Z33SendProxy_DataTablePtrToDataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ; SendProxy_DataTablePtrToDataTable(SendProp	 const*,void  const*,void  const*,CSendProxyRecipients *,int)
		jz	loc_9AB42

loc_9A67F:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+51Cj
		mov	dword ptr [esp], 18h
		call	_Znwj		; operator new(uint)
		mov	edi, dword ptr [ebp+arg]
		mov	[ebp+var_BC], eax
		mov	dword ptr [eax], 0
		mov	edx, [ebp+var_BC]
		mov	dword ptr [eax+4], 0
		mov	[eax+14h], edi
		mov	eax, [ebp+arg_C]
		mov	[edx+0Ch], eax
		mov	eax, [ebp+arg_10]
		mov	[edx+8], eax
		mov	eax, [ebp+arg_8]
		mov	[edx+10h], eax
		cmp	dword ptr [ebx+8], 6
		jz	loc_9AB51
		mov	eax, [ebx+3Ch]
		mov	edi, [ebp+var_BC]
		mov	[edi+4], eax

loc_9A6D2:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+526j
		mov	edi, dword ptr [ebp+arg]
		add	edi, 1
		lea	eax, [edi+edi*4]
		mov	[ebp+var_C4], edi
		shl	eax, 4
		add	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[eax], edi
		lea	edi, [eax+4]
		mov	esi, eax
		mov	[ebp+var_CC], edi
		mov	edi, [ebp+var_C4]
		sub	edi, 1
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C0], edi
		jz	short loc_9A74B
		mov	edi, dword ptr [ebp+arg]
		mov	esi, ebx
		mov	[ebp+var_D0], eax
		mov	[ebp+var_C8], edi
		mov	edi, [ebp+var_CC]
		mov	ebx, [ebp+var_C8]
		lea	esi, [esi+0]

loc_9A730:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+111j
		mov	[esp], edi
		call	_ZN8SendPropC2Ev ; SendProp::SendProp(void)
		sub	ebx, 1
		add	edi, 50h
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_9A730
		mov	ebx, esi
		mov	esi, [ebp+var_D0]

loc_9A74B:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+DEj
		mov	dword ptr [esp], 50h
		call	_Znwj		; operator new(uint)
		mov	edi, eax
		mov	[esp], eax
		call	_ZN8SendPropC2Ev ; SendProp::SendProp(void)
		mov	[ebp+var_C0], 0
		mov	ecx, dword ptr [ebp+arg]
		test	ecx, ecx
		jle	short loc_9A78D
		mov	eax, dword ptr [ebp+arg]
		xor	edx, edx
		mov	esi, esi
		lea	edi, [edi+0]

loc_9A780:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+155j
		add	edx, 1
		sar	eax, 1
		jnz	short loc_9A780
		mov	[ebp+var_C0], edx

loc_9A78D:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+140j
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp], offset	aLengthpropD ; "lengthprop%d"
		mov	[esp+4], eax	; arg
		call	_Z20AllocateStringHelperPKcz ; AllocateStringHelper(char  const*,...)
		mov	edx, [ebp+var_C0]
		mov	[esp+4], eax
		lea	eax, [ebp+var_B8]
		mov	dword ptr [esp+18h], offset _Z25SendProxy_UtlVectorLengthPK8SendPropPKvS3_P8DVariantii ; SendProxy_UtlVectorLength(SendProp  const*,void  const*,void  const*,DVariant *,int,int)
		mov	dword ptr [esp+14h], 1
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+10h], edx
		mov	dword ptr [esp+8], 0
		mov	[esp], eax
		call	_Z11SendPropIntPKciiiiPFvPK8SendPropPKvS5_P8DVariantiiE	; SendPropInt(char  const*,int,int,int,int,void	(*)(SendProp  const*,void  const*,void	const*,DVariant	*,int,int))
		mov	eax, [ebp+var_B4]
		lea	edx, [ebp+var_B8]
		sub	esp, 4
		mov	[edi+4], eax
		mov	eax, [ebp+var_B0]
		mov	[edi+8], eax
		mov	eax, [ebp+var_AC]
		mov	[edi+0Ch], eax
		mov	eax, [ebp+var_A8]
		mov	[edi+10h], eax
		mov	eax, [ebp+var_A4]
		mov	[edi+14h], eax
		mov	eax, [ebp+var_A0]
		mov	[edi+18h], eax
		mov	eax, [ebp+var_9C]
		mov	[edi+1Ch], eax
		mov	eax, [ebp+var_98]
		mov	[edi+20h], eax
		mov	eax, [ebp+var_94]
		mov	[edi+24h], eax
		mov	eax, [ebp+var_90]
		mov	[edi+28h], eax
		mov	eax, [ebp+var_8C]
		mov	[edi+2Ch], eax
		mov	eax, [ebp+var_88]
		mov	[edi+30h], eax
		mov	eax, [ebp+var_84]
		mov	[edi+34h], eax
		mov	eax, [ebp+var_80]
		mov	[edi+38h], eax
		mov	eax, [ebp+var_7C]
		mov	[edi+3Ch], eax
		mov	eax, [ebp+var_78]
		mov	[edi+40h], eax
		mov	eax, [ebp+var_74]
		mov	[edi+44h], eax
		mov	eax, [ebp+var_70]
		mov	[edi+48h], eax
		mov	eax, [ebp+var_6C]
		mov	[edi+4Ch], eax
		mov	[esp], edx
		call	_ZN8SendPropD2Ev ; SendProp::~SendProp()
		mov	eax, [ebp+var_BC]
		mov	edx, dword ptr [ebp+arg]
		mov	[edi+4Ch], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+0Ch], edx
		mov	dword ptr [esp+4], offset a_lpt_S_D ; "_LPT_%s_%d"
		mov	dword ptr [esp], 1 ; int
		mov	[esp+8], eax	; arg
		call	_Z27AllocateUniqueDataTableNamebPKcz ; AllocateUniqueDataTableName(bool,char  const*,...)
		mov	[ebp+var_C8], eax
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	[ebp+var_C0], eax
		mov	eax, [ebp+var_C8]
		mov	dword ptr [esp+8], 1
		mov	[esp+4], edi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_C0]
		mov	[esp], eax
		call	_ZN9SendTableC2EP8SendPropiPKc ; SendTable::SendTable(SendProp *,int,char  const*)
		mov	eax, [ebp+var_C0]
		lea	edi, [ebp+var_68]
		mov	dword ptr [esp+10h], offset _Z21SendProxy_LengthTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ; SendProxy_LengthTable(SendProp	 const*,void  const*,void  const*,CSendProxyRecipients *,int)
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aLengthproxy ; "lengthproxy"
		mov	[esp], edi
		mov	[esp+0Ch], eax
		call	_Z17SendPropDataTablePKciP9SendTablePFPvPK8SendPropPKvS8_P20CSendProxyRecipientsiE ; SendPropDataTable(char  const*,int,SendTable *,void * (*)(SendProp	 const*,void  const*,void  const*,CSendProxyRecipients *,int))
		mov	eax, [ebp+var_64]
		sub	esp, 4
		mov	[esi+8], eax
		mov	eax, [ebp+var_60]
		mov	[esi+0Ch], eax
		mov	eax, [ebp+var_5C]
		mov	[esi+10h], eax
		mov	eax, [ebp+var_58]
		mov	[esi+14h], eax
		mov	eax, [ebp+var_54]
		mov	[esi+18h], eax
		mov	eax, [ebp+var_50]
		mov	[esi+1Ch], eax
		mov	eax, [ebp+var_4C]
		mov	[esi+20h], eax
		mov	eax, [ebp+var_48]
		mov	[esi+24h], eax
		mov	eax, [ebp+var_44]
		mov	[esi+28h], eax
		mov	eax, [ebp+var_40]
		mov	[esi+2Ch], eax
		mov	eax, [ebp+var_3C]
		mov	[esi+30h], eax
		mov	eax, [ebp+var_38]
		mov	[esi+34h], eax
		mov	eax, [ebp+var_34]
		mov	[esi+38h], eax
		mov	eax, [ebp+var_30]
		mov	[esi+3Ch], eax
		mov	eax, [ebp+var_2C]
		mov	[esi+40h], eax
		mov	eax, [ebp+var_28]
		mov	[esi+44h], eax
		mov	eax, [ebp+var_24]
		mov	[esi+48h], eax
		mov	eax, [ebp+var_20]
		mov	[esi+4Ch], eax
		mov	eax, [ebp+var_1C]
		mov	[esi+50h], eax
		mov	[esp], edi
		call	_ZN8SendPropD2Ev ; SendProp::~SendProp()
		mov	eax, [ebp+var_BC]
		mov	edi, [ebp+arg_4]
		mov	[esi+50h], eax
		mov	[esp+4], edi	; arg
		mov	dword ptr [esp], (offset aDFS+9) ; format
		call	_Z20AllocateStringHelperPKcz ; AllocateStringHelper(char  const*,...)
		mov	edx, dword ptr [ebp+arg]
		mov	[ebp+var_C0], eax
		test	edx, edx
		jle	loc_9AAE0
		mov	eax, esi
		xor	edx, edx
		xor	ecx, ecx
		jmp	short loc_9A9ED
; ---------------------------------------------------------------------------
		align 10h

loc_9A9D0:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+482j
		add	ecx, 1
		add	eax, 50h
		mov	dword ptr [esi+edx+90h], offset	_Z26SendProxy_UtlVectorElementPK8SendPropPKvS3_P8DVariantii ; SendProxy_UtlVectorElement(SendProp  const*,void	const*,void  const*,DVariant *,int,int)
		add	edx, 50h
		cmp	ecx, dword ptr [ebp+arg]
		jz	loc_9AAE0

loc_9A9ED:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+39Aj
					; SendPropUtlVector(char *,int,int,void	(*)(void *,int,int),int,SendProp,void *	(*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients *,int))+4AAj
		mov	edi, [ebx+4]
		mov	[eax+58h], edi
		mov	edi, [ebx+8]
		mov	[eax+5Ch], edi
		mov	edi, [ebx+0Ch]
		mov	[eax+60h], edi
		mov	edi, [ebx+10h]
		mov	[eax+64h], edi
		mov	edi, [ebx+14h]
		mov	[eax+68h], edi
		mov	edi, [ebx+18h]
		mov	[eax+6Ch], edi
		mov	edi, [ebx+1Ch]
		mov	[eax+70h], edi
		mov	edi, [ebx+20h]
		mov	[eax+74h], edi
		mov	edi, [ebx+24h]
		mov	[eax+78h], edi
		mov	edi, [ebx+28h]
		mov	[eax+7Ch], edi
		mov	edi, [ebx+2Ch]
		mov	[eax+80h], edi
		mov	edi, [ebx+30h]
		mov	[eax+84h], edi
		mov	edi, [ebx+34h]
		mov	[eax+88h], edi
		mov	edi, [ebx+38h]
		mov	[eax+8Ch], edi
		mov	edi, [ebx+3Ch]
		mov	[eax+90h], edi
		mov	edi, [ebx+40h]
		mov	[eax+94h], edi
		mov	edi, [ebx+44h]
		mov	[eax+98h], edi
		mov	edi, [ebx+48h]
		mov	[eax+9Ch], edi
		mov	edi, [ebx+4Ch]
		mov	[eax+0A0h], edi
		mov	dword ptr [esi+edx+9Ch], 0
		mov	edi, s_ElementNames[ecx*4]
		mov	[eax+84h], edi
		mov	edi, [ebp+var_C0]
		mov	[eax+80h], edi
		mov	edi, [ebp+var_BC]
		mov	[esi+edx+0A0h],	edi
		mov	[eax+78h], ecx
		cmp	dword ptr [ebx+8], 6
		jnz	loc_9A9D0
		add	ecx, 1
		add	eax, 50h
		mov	dword ptr [esi+edx+94h], offset	_Z36SendProxy_UtlVectorElement_DataTablePK8SendPropPKvS3_P20CSendProxyRecipientsi ; SendProxy_UtlVectorElement_DataTable(SendProp  const*,void	const*,void  const*,CSendProxyRecipients *,int)
		mov	dword ptr [esi+edx+8Ch], 200h
		add	edx, 50h
		cmp	ecx, dword ptr [ebp+arg]
		jnz	loc_9A9ED

loc_9AAE0:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+38Ej
					; SendPropUtlVector(char *,int,int,void	(*)(void *,int,int),int,SendProp,void *	(*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients *,int))+3B7j
		mov	edi, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], offset a_st_S_D ; "_ST_%s_%d"
		mov	dword ptr [esp], 1 ; int
		mov	[esp+0Ch], edi
		mov	edi, [ebp+arg_4]
		mov	[esp+8], edi	; arg
		call	_Z27AllocateUniqueDataTableNamebPKcz ; AllocateUniqueDataTableName(bool,char  const*,...)
		mov	esi, eax
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	edi, [ebp+var_C4]
		mov	ebx, eax
		mov	[esp+0Ch], esi
		mov	[esp], eax
		mov	[esp+8], edi
		mov	edi, [ebp+var_CC]
		mov	[esp+4], edi
		call	_ZN9SendTableC2EP8SendPropiPKc ; SendTable::SendTable(SendProp *,int,char  const*)
		mov	eax, [ebp+arg_0]
		mov	[eax+44h], ebx
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------

loc_9AB42:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+3Dj
					; SendPropUtlVector(char *,int,int,void	(*)(void *,int,int),int,SendProp,void *	(*)(SendProp const*,void  const*,void  const*,CSendProxyRecipients *,int))+49j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+38h], 200h
		jmp	loc_9A67F
; ---------------------------------------------------------------------------

loc_9AB51:				; CODE XREF: SendPropUtlVector(char *,int,int,void (*)(void *,int,int),int,SendProp,void * (*)(SendProp	const*,void  const*,void  const*,CSendProxyRecipients *,int))+90j
		mov	eax, [ebx+40h]
		mov	[edx], eax
		jmp	loc_9A6D2
_Z17SendPropUtlVectorPciiPFvPviiEi8SendPropPFS0_PKS3_PKvS7_P20CSendProxyRecipientsiE endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_9AB5D:				; CODE XREF: .text:0009AB7Cj
					; .text:0009AB8Ej ...
		mov	eax, [ebp+8]
		mov	[esp], eax
		call	_ZN8SendPropD2Ev ; SendProp::~SendProp()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	ebx, esi
		jmp	short loc_9AB5D
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-0C0h]
		mov	[esp], eax
		call	_ZdlPv		; operator delete(void *)
		jmp	short loc_9AB5D
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZdlPv		; operator delete(void *)
		jmp	short loc_9AB5D
; ---------------------------------------------------------------------------
		mov	[ebp-0BCh], eax
		mov	eax, [ebp-0CCh]
		mov	esi, [ebp-0D0h]
		mov	[ebp-0C8h], ebx
		test	eax, eax
		jz	short loc_9ABFD
		mov	eax, [ebp-0C0h]
		sub	eax, ebx
		lea	edi, [eax+eax*4]
		shl	edi, 4
		add	edi, [ebp-0CCh]
		cmp	[ebp-0CCh], edi
		jz	short loc_9ABFD
		lea	edx, [edi-50h]
		mov	ebx, edi

loc_9ABD9:				; CODE XREF: .text:0009ABFBj
		sub	ebx, 50h
		mov	eax, ebx
		sub	eax, edi
		mov	eax, [edx+eax+50h]
		mov	[ebp-0D4h], edx
		mov	[esp], ebx
		call	dword ptr [eax]
		cmp	[ebp-0CCh], ebx
		mov	edx, [ebp-0D4h]
		jnz	short loc_9ABD9

loc_9ABFD:				; CODE XREF: .text:0009ABB6j
					; .text:0009ABD2j
		mov	[esp], esi
		call	_ZdaPv		; operator delete[](void *)
		mov	ebx, [ebp-0BCh]
		jmp	loc_9AB5D

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_BeginSession(char arg, int)
_Z19Editor_BeginSessionPKcib proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 828h
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], offset aSession_beginS ; "session_begin %s %d"
		mov	dword ptr [esp+4], 800h	; maxlen
		mov	[esp+10h], eax
		mov	eax, dword ptr [ebp+arg]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z19Editor_BeginSessionPKcib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_CheckVersion(char arg, int)
_Z19Editor_CheckVersionPKcib proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 828h
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], offset aMap_check_vers ; "map_check_version %s %d"
		mov	dword ptr [esp+4], 800h	; maxlen
		mov	[esp+10h], eax
		mov	eax, dword ptr [ebp+arg]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z19Editor_CheckVersionPKcib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_CreateEntity(char arg, float, float, float)
_Z19Editor_CreateEntityPKcfffb proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 838h
		fld	[ebp+arg_C]
		mov	dword ptr [esp+8], offset aEntity_createS ; "entity_create %s %g %g %g"
		fstp	qword ptr [esp+20h]
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], 800h	; maxlen
		fld	[ebp+arg_8]
		fstp	qword ptr [esp+18h]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		fld	[ebp+arg_4]
		mov	[esp], eax	; s
		fstp	qword ptr [esp+10h]
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z19Editor_CreateEntityPKcfffb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_CreateNode(char arg, int, float, float, float)
_Z17Editor_CreateNodePKcifffb proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 838h
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], offset aNode_createSDG ; "node_create %s %d %g %g %g"
		fld	[ebp+arg_10]
		mov	dword ptr [esp+4], 800h	; maxlen
		fstp	qword ptr [esp+24h]
		mov	[esp+10h], eax
		mov	eax, dword ptr [ebp+arg]
		fld	[ebp+arg_C]
		fstp	qword ptr [esp+1Ch]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		fld	[ebp+arg_8]
		mov	[esp], eax	; s
		fstp	qword ptr [esp+14h]
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z17Editor_CreateNodePKcifffb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_CreateNodeLink(char arg, int)
_Z21Editor_CreateNodeLinkiib proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 828h
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], offset aNodelink_creat ; "nodelink_create %d	%d"
		mov	dword ptr [esp+4], 800h	; maxlen
		mov	[esp+10h], eax
		mov	eax, dword ptr [ebp+arg]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z21Editor_CreateNodeLinkiib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_DeleteEntity(char arg, float, float, float)
_Z19Editor_DeleteEntityPKcfffb proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 838h
		fld	[ebp+arg_C]
		mov	dword ptr [esp+8], offset aEntity_deleteS ; "entity_delete %s %g %g %g"
		fstp	qword ptr [esp+20h]
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], 800h	; maxlen
		fld	[ebp+arg_8]
		fstp	qword ptr [esp+18h]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		fld	[ebp+arg_4]
		mov	[esp], eax	; s
		fstp	qword ptr [esp+10h]
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z19Editor_DeleteEntityPKcfffb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_SetKeyValue(char arg, float, float, float,	int, int)
_Z18Editor_SetKeyValuePKcfffS0_S0_b proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 838h
		mov	eax, [ebp+arg_14]
		mov	dword ptr [esp+8], offset aEntity_set_key ; "entity_set_keyvalue %s %f %f %f \"%s\" \"%"...
		fld	[ebp+arg_C]
		mov	dword ptr [esp+4], 800h	; maxlen
		fstp	qword ptr [esp+20h]
		mov	[esp+2Ch], eax
		mov	eax, [ebp+arg_10]
		fld	[ebp+arg_8]
		fstp	qword ptr [esp+18h]
		mov	[esp+28h], eax
		mov	eax, dword ptr [ebp+arg]
		fld	[ebp+arg_4]
		fstp	qword ptr [esp+10h]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z18Editor_SetKeyValuePKcfffS0_S0_b endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_RotateEntity(char arg, float, float, float, int)
_Z19Editor_RotateEntityPKcfffRK6QAngleb	proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 848h
		mov	eax, [ebp+arg_10]
		fld	dword ptr [eax+8]
		fstp	qword ptr [esp+38h]
		fld	dword ptr [eax+4]
		fstp	qword ptr [esp+30h]
		fld	dword ptr [eax]
		mov	dword ptr [esp+8], offset aEntity_rotate_ ; "entity_rotate_incremental %s %f %f	%f %"...
		fstp	qword ptr [esp+28h]
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], 800h	; maxlen
		fld	[ebp+arg_C]
		fstp	qword ptr [esp+20h]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		fld	[ebp+arg_8]
		mov	[esp], eax	; s
		fstp	qword ptr [esp+18h]
		fld	[ebp+arg_4]
		fstp	qword ptr [esp+10h]
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z19Editor_RotateEntityPKcfffRK6QAngleb	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_DeleteNode(char arg)
_Z17Editor_DeleteNodeib	proc near

s		= byte ptr -808h
arg		= byte ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 818h
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp+8], offset aNode_deleteD	; "node_delete %d"
		mov	dword ptr [esp+4], 800h	; maxlen
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z17Editor_DeleteNodeib	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Editor_DeleteNodeLink(char arg, int)
_Z21Editor_DeleteNodeLinkiib proc near

s		= byte ptr -808h
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 828h
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], offset aNodelink_delet ; "nodelink_delete %d	%d"
		mov	dword ptr [esp+4], 800h	; maxlen
		mov	[esp+10h], eax
		mov	eax, dword ptr [ebp+arg]
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		xor	eax, eax
		leave
		retn
_Z21Editor_DeleteNodeLinkiib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Editor_EndSession(bool)
_Z17Editor_EndSessionb proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z17Editor_EndSessionb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Editor_SendCommand(char  const*, bool)
_Z18Editor_SendCommandPKcb proc	near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z18Editor_SendCommandPKcb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ParseFile(char  const*, char *, bool *, characterset_t *, unsigned int)
_Z9ParseFilePKcPcPbP14characterset_tj proc near
					; CODE XREF: ParseFile(char *,char *,bool *)+2Ap

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_8]
		mov	edi, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		test	ebx, ebx
		mov	byte ptr [edi],	0
		jz	short loc_9AF3F
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx],	0

loc_9AF3F:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+17j
		test	eax, eax
		jz	loc_9AFF2
		cmp	ds:_ZZL23InitializeCharacterSetsvE25s_CharacterSetInitialized, 0 ; InitializeCharacterSets(void)::s_CharacterSetInitialized
		jz	loc_9B0F4

loc_9AF54:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+209j
		mov	ecx, [ebp+arg_C]
		mov	edx, offset _ZL25g_BreakSetIncludingColons ; g_BreakSetIncludingColons
		test	ecx, ecx
		movzx	ecx, byte ptr [eax]
		cmovnz	edx, [ebp+arg_C]
		mov	[ebp+arg_C], edx
		movsx	edx, cl
		nop
		lea	esi, [esi+0]

loc_9AF70:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+F2j
					; ParseFile(char  const*,char *,bool *,characterset_t *,uint)+149j ...
		cmp	edx, 20h
		mov	[ebp+var_1C], edx
		jle	loc_9B000
		cmp	edx, 2Fh
		jz	loc_9B020
		mov	ebx, [ebp+var_1C]
		cmp	ebx, 22h
		jnz	loc_9B168
		mov	edx, [ebp+arg_8]
		test	edx, edx
		jz	short loc_9AF9E
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx],	1

loc_9AF9E:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+76j
		movzx	ecx, byte ptr [eax+1]
		add	eax, 2
		movsx	edx, cl
		cmp	edx, 22h
		jz	loc_9B173
		mov	esi, [ebp+arg_10]
		test	edx, edx
		setz	bl
		xor	edx, edx
		sub	esi, 1
		test	bl, bl
		jz	short loc_9AFD5
		jmp	loc_9B173
; ---------------------------------------------------------------------------
		align 10h

loc_9AFD0:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+CCj
		cmp	ebx, 22h
		jz	short loc_9AFEE

loc_9AFD5:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+A0j
		mov	[edi+edx], cl
		xor	ecx, ecx
		cmp	edx, esi
		setb	cl
		add	edx, ecx
		movzx	ecx, byte ptr [eax]
		add	eax, 1
		movsx	ebx, cl
		test	ebx, ebx
		jnz	short loc_9AFD0

loc_9AFEE:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+B3j
					; ParseFile(char  const*,char *,bool *,characterset_t *,uint)+22Ej ...
		mov	byte ptr [edi+edx], 0

loc_9AFF2:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+21j
					; ParseFile(char  const*,char *,bool *,characterset_t *,uint)+23Dj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9B000:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+56j
		test	edx, edx
		jz	loc_9B0AA
		movzx	ecx, byte ptr [eax+1]
		add	eax, 1
		movsx	edx, cl
		jmp	loc_9AF70
; ---------------------------------------------------------------------------
		align 10h

loc_9B020:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+5Fj
		movzx	esi, byte ptr [eax+1]
		mov	ebx, esi
		cmp	bl, 2Fh
		jz	short loc_9B079
		cmp	bl, 2Ah
		jnz	loc_9B0B4
		movzx	edx, byte ptr [eax+2]
		lea	ecx, [eax+2]
		mov	eax, ecx
		test	dl, dl
		jnz	short loc_9B04F
		jmp	short loc_9B070
; ---------------------------------------------------------------------------
		align 8

loc_9B048:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+136j
					; ParseFile(char  const*,char *,bool *,characterset_t *,uint)+13Bj
		add	eax, 1
		test	dl, dl
		jz	short loc_9B070

loc_9B04F:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+11Fj
		cmp	dl, 2Ah
		movzx	edx, byte ptr [eax+1]
		jnz	short loc_9B048
		cmp	dl, 2Fh
		jnz	short loc_9B048
		mov	edx, eax
		add	eax, 2
		movzx	ecx, byte ptr [edx+2]

loc_9B066:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+17Aj
					; ParseFile(char  const*,char *,bool *,characterset_t *,uint)+188j
		movsx	edx, cl
		jmp	loc_9AF70
; ---------------------------------------------------------------------------
		align 10h

loc_9B070:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+121j
					; ParseFile(char  const*,char *,bool *,characterset_t *,uint)+12Dj
		xor	ecx, ecx
		xor	edx, edx
		jmp	loc_9AF70
; ---------------------------------------------------------------------------

loc_9B079:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+109j
		cmp	cl, 0Ah
		jz	loc_9AF70
		test	cl, cl
		jz	loc_9AF70
		mov	ecx, 2Fh
		jmp	short loc_9B0A0
; ---------------------------------------------------------------------------
		align 8

loc_9B098:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+186j
		test	cl, cl
		jz	short loc_9B066
		movzx	ecx, byte ptr [eax+1]

loc_9B0A0:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+16Fj
		add	eax, 1
		cmp	cl, 0Ah
		jnz	short loc_9B098
		jmp	short loc_9B066
; ---------------------------------------------------------------------------

loc_9B0AA:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+E2j
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_9B0B4:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+10Ej
		mov	ebx, [ebp+var_1C]
		mov	[ebp+var_24], 2Fh

loc_9B0BE:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+24Ej
		mov	esi, [ebp+arg_10]
		mov	[ebp+var_28], 0
		mov	edx, [ebp+var_24]
		sub	esi, 1
		mov	[ebp+var_1C], esi
		mov	esi, [ebp+arg_C]
		cmp	byte ptr [esi+edx], 0
		jz	short loc_9B12E
		xor	edx, edx
		cmp	[ebp+arg_10], 1
		mov	[edi], cl
		setnz	dl
		add	eax, 1
		mov	byte ptr [edi+edx], 0
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_9B0F4:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+2Ej
		mov	[ebp+var_20], eax
		mov	dword ptr [esp+4], offset asc_1ED267 ; "{}()'"
		mov	dword ptr [esp], offset	_ZL10g_BreakSet	; g_BreakSet
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		mov	dword ptr [esp+4], offset asc_1ED26D ; "{}()':"
		mov	dword ptr [esp], offset	_ZL25g_BreakSetIncludingColons ; g_BreakSetIncludingColons
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		mov	ds:_ZZL23InitializeCharacterSetsvE25s_CharacterSetInitialized, 1 ; InitializeCharacterSets(void)::s_CharacterSetInitialized
		mov	eax, [ebp+var_20]
		jmp	loc_9AF54
; ---------------------------------------------------------------------------

loc_9B12E:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+1B8j
		mov	edx, [ebp+var_28]
		mov	esi, [ebp+arg_C]

loc_9B134:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+237j
		mov	[edi+edx], bl
		add	eax, 1
		xor	ecx, ecx
		cmp	edx, [ebp+var_1C]
		movsx	ebx, byte ptr [eax]
		setb	cl
		add	edx, ecx
		movzx	ecx, bl
		cmp	byte ptr [esi+ecx], 0
		jnz	loc_9AFEE
		cmp	ebx, 20h
		jg	short loc_9B134
		mov	byte ptr [edi+edx], 0
		jmp	loc_9AFF2
; ---------------------------------------------------------------------------
		align 8

loc_9B168:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+6Bj
		movzx	esi, bl
		mov	[ebp+var_24], esi
		jmp	loc_9B0BE
; ---------------------------------------------------------------------------

loc_9B173:				; CODE XREF: ParseFile(char  const*,char *,bool	*,characterset_t *,uint)+8Bj
					; ParseFile(char  const*,char *,bool *,characterset_t *,uint)+A2j
		xor	edx, edx
		jmp	loc_9AFEE
_Z9ParseFilePKcPcPbP14characterset_tj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ParseFile(char *, char *, bool *)
_Z9ParseFilePcS_Pb proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_8]
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z9ParseFilePKcPcPbP14characterset_tj ;	ParseFile(char	const*,char *,bool *,characterset_t *,uint)
		leave
		retn
_Z9ParseFilePcS_Pb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_Z27FileSystem_GetExecutableDirPci_part_5 proc near
					; CODE XREF: FileSystem_GetExecutableDir(char *,int)+6Dj

dest		= byte ptr -10Ch
var_10B		= byte ptr -10Bh

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, edx
		push	ebx
		mov	ebx, eax
		sub	esp, 120h
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		xor	edx, edx
		test	eax, eax
		jz	loc_9B2AB
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+8], eax	; src
		mov	[esp+4], esi	; n
		mov	[esp], ebx	; s
		call	_Z18V_MakeAbsolutePathPciPKcS1_	; V_MakeAbsolutePath(char *,int,char  const*,char  const*)
		mov	[esp], ebx	; s
		call	_Z15V_StripFilenamePc ;	V_StripFilename(char *)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], ebx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		lea	eax, [ebp+dest]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+0Ch], 104h ; int
		mov	[esp+8], eax	; dest
		mov	dword ptr [esp+4], 4 ; int
		call	_Z10V_StrRightPKciPci ;	V_StrRight(char	 const*,int,char *,int)
		cmp	[ebp+dest], 2Fh
		jz	short loc_9B2C0

loc_9B25E:				; CODE XREF: _Z27FileSystem_GetExecutableDirPci_part_5+11Fj
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	[esp+8], esi	; int
		mov	dword ptr [esp+4], (offset needle+2) ; int
		mov	[esp], ebx	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	[esp+8], esi	; int
		mov	dword ptr [esp+4], (offset aSC__Cbin+8)	; int
		mov	[esp], ebx	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], ebx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	edx, 1

loc_9B2AB:				; CODE XREF: _Z27FileSystem_GetExecutableDirPci_part_5+28j
					; _Z27FileSystem_GetExecutableDirPci_part_5+11Dj
		add	esp, 120h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9B2C0:				; CODE XREF: _Z27FileSystem_GetExecutableDirPci_part_5+9Cj
		lea	eax, [ebp+var_10B]
		mov	dword ptr [esp+4], (offset aSC__Cbin+8)
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		mov	edx, 1
		test	eax, eax
		jz	short loc_9B2AB
		jmp	loc_9B25E
_Z27FileSystem_GetExecutableDirPci_part_5 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_UseVProjectBinDir(bool)
_Z28FileSystem_UseVProjectBinDirb proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	ds:_ZL20s_bUseVProjectBinDir, al ; s_bUseVProjectBinDir
		retn
_Z28FileSystem_UseVProjectBinDirb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Q_getwd(char *s, size_t size)
_Z7Q_getwdPci	proc near		; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+1FDp
					; FileSystem_MountContent(CFSMountContentInfo &)+66p

s		= dword	ptr  8
size		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+s]
		mov	eax, [ebp+size]
		mov	[esp], ebx	; buf
		mov	[esp+4], eax	; size
		call	getcwd
		mov	[esp], ebx	; s
		call	strlen
		mov	word ptr [ebx+eax], 2Fh
		mov	[ebp+s], ebx
		mov	[ebp+size], 2Fh
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
_Z7Q_getwdPci	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFSSearchPathsInit::CFSSearchPathsInit(void)
_ZN18CFSSearchPathsInitC2Ev proc near	; CODE XREF: COM_InitFilesystem(char  const*)+17p
					; CSteamAppSystemGroup::SetupSearchPaths(char  const*,bool,bool)+CEp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	byte ptr [eax+0Ch], 0
		pop	ebp
		retn
_ZN18CFSSearchPathsInitC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFSSteamSetupInfo::CFSSteamSetupInfo(void)
_ZN17CFSSteamSetupInfoC2Ev proc	near	; CODE XREF: CSteamAppSystemGroup::SetupSearchPaths(char  const*,bool,bool)+2Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	byte ptr [eax+4], 0
		mov	byte ptr [eax+7], 0
		mov	byte ptr [eax+5], 1
		mov	byte ptr [eax+8], 0
		pop	ebp
		retn
_ZN17CFSSteamSetupInfoC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFSLoadModuleInfo::CFSLoadModuleInfo(void)
_ZN17CFSLoadModuleInfoC2Ev proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	byte ptr [eax+4], 0
		mov	byte ptr [eax+7], 0
		mov	byte ptr [eax+5], 1
		mov	byte ptr [eax+8], 0
		mov	dword ptr [eax+20Ch], 0
		mov	dword ptr [eax+214h], 0
		mov	dword ptr [eax+218h], 0
		pop	ebp
		retn
_ZN17CFSLoadModuleInfoC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFSMountContentInfo::CFSMountContentInfo(void)
_ZN19CFSMountContentInfoC2Ev proc near	; CODE XREF: CSteamAppSystemGroup::SetupSearchPaths(char  const*,bool,bool)+94p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	1
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		pop	ebp
		retn
_ZN19CFSMountContentInfoC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_GetLastErrorString(void)
_Z29FileSystem_GetLastErrorStringv proc	near
		push	ebp
		mov	eax, offset _ZL17g_FileSystemError ; g_FileSystemError
		mov	ebp, esp
		pop	ebp
		retn
_Z29FileSystem_GetLastErrorStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; AddLanguageGameDir(IFileSystem *, char  const*, char	const*)
_Z18AddLanguageGameDirP11IFileSystemPKcS2_ proc	near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z18AddLanguageGameDirP11IFileSystemPKcS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl AddGameBinDir(int, char arg)
_Z13AddGameBinDirP11IFileSystemPKc proc	near
					; CODE XREF: _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+ACp

s		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 138h
		mov	eax, dword ptr [ebp+arg]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebp+s]
		mov	[esp], esi	; s
		mov	dword ptr [esp+10h], 2Fh
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSCbin ; "%s%cbin"
		mov	dword ptr [esp+4], 104h	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aGamebin ; "GAMEBIN"
		call	dword ptr [eax+1Ch]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z13AddGameBinDirP11IFileSystemPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FileSystem_AddLoadedSearchPath(int, char *src)
_ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14 proc near
					; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+D0p
					; FileSystem_LoadSearchPaths(CFSSearchPathsInit	&)+1BDp

var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
arg		= byte ptr -220h
s		= byte ptr -11Ch
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+arg]
		mov	esi, edx
		push	ebx
		mov	ebx, eax
		sub	esp, 23Ch
		mov	[ebp+var_22C], ecx
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+4], 104h	; n
		mov	[esp], edi	; s
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+src]
		mov	[esp+8], eax	; src
		call	_Z18V_MakeAbsolutePathPciPKcS1_	; V_MakeAbsolutePath(char *,int,char  const*,char  const*)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], edi
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], edi
		call	_Z18V_RemoveDotSlashesPccb ; V_RemoveDotSlashes(char *,char,bool)
		test	al, al
		jz	short loc_9B550

loc_9B4D6:				; CODE XREF: _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+F0j
		mov	dword ptr [esp+4], offset aGame	; "game"
		mov	[esp], esi
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_9B521
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aTempcontent ; "-tempcontent"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jnz	loc_9B5B0
		mov	eax, [ebp+var_22C]
		cmp	byte ptr [eax],	0
		jnz	short loc_9B568

loc_9B512:				; CODE XREF: _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+131j
					; _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+192j
		mov	eax, [ebx+8]
		mov	[esp+4], edi	; arg
		mov	[esp], eax	; int
		call	_Z13AddGameBinDirP11IFileSystemPKc ; AddGameBinDir(IFileSystem *,char  const*)

loc_9B521:				; CODE XREF: _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+78j
		mov	eax, [ebx+8]
		mov	edx, [eax]
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	dword ptr [esp+0Ch], 1
		mov	[esp], eax
		call	dword ptr [edx+1Ch]
		add	esp, 23Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9B550:				; CODE XREF: _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+64j
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aFilesystem_add	; "FileSystem_AddLoadedSearchPath - Can't "...
		call	Error
		jmp	loc_9B4D6
; ---------------------------------------------------------------------------
		align 4

loc_9B568:				; CODE XREF: _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+A0j
					; _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+198j
		mov	byte ptr [eax],	0
		mov	eax, [ebx+8]
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aMod_0 ; "MOD"
		mov	[esp+4], edi
		call	dword ptr [edx+1Ch]
		lea	eax, [ebx+0Ch]
		mov	dword ptr [esp+8], 200h	; n
		mov	[esp+4], edi	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_9B512
; ---------------------------------------------------------------------------
		align 10h

loc_9B5B0:				; CODE XREF: _ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14+91j
		lea	ecx, [ebp+s]
		mov	[esp+0Ch], edi	; arg
		mov	[esp], ecx	; s
		mov	[ebp+var_230], ecx
		mov	dword ptr [esp+8], offset aS_tempcontent ; "%s_tempcontent"
		mov	dword ptr [esp+4], 104h	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, [ebx+8]
		mov	ecx, [ebp+var_230]
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+0Ch], 1
		mov	[esp+8], esi
		mov	[esp+4], ecx
		call	dword ptr [edx+1Ch]
		mov	eax, [ebp+var_22C]
		cmp	byte ptr [eax],	0
		jz	loc_9B512
		jmp	loc_9B568
_ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; LaunchVConfig(void)
_Z13LaunchVConfigv proc	near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z13LaunchVConfigv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetVProjectCmdLineValue(void)
_Z23GetVProjectCmdLineValuev proc near	; CODE XREF: FileSystem_GetExecutableDir(char *,int)+1Ep
					; SetupFileSystemError(bool,FSReturnCode_t,char	 const*,...):loc_9B7E0p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		call	CommandLine_Tier0
		mov	ebx, eax
		mov	eax, [eax]
		mov	esi, [eax+18h]
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aGame_0 ; "-game"
		mov	[esp], eax
		call	dword ptr [edx+18h]
		mov	[esp], ebx
		mov	[esp+8], eax
		mov	dword ptr [esp+4], offset aVproject ; "-vproject"
		call	esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z23GetVProjectCmdLineValuev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FileSystem_GetExecutableDir(char *s, size_t maxlen)
_Z27FileSystem_GetExecutableDirPci proc	near
					; CODE XREF: _ZL21FileSystem_GetBaseDirPci_constprop_15+14p
					; GetSteamCfgPath(char *,int)+26p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
s		= dword	ptr  8
maxlen		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		cmp	ds:_ZL20s_bUseVProjectBinDir, 0	; s_bUseVProjectBinDir
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+s]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+maxlen]
		mov	byte ptr [ebx],	0
		jz	short loc_9B6D0
		call	_Z23GetVProjectCmdLineValuev ; GetVProjectCmdLineValue(void)
		test	eax, eax
		jz	short loc_9B6E8

loc_9B697:				; CODE XREF: FileSystem_GetExecutableDir(char *,int)+86j
		mov	dword ptr [esp+14h], 2Fh
		mov	dword ptr [esp+10h], 2Fh
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSC__Cbin ; "%s%c..%cbin"
		mov	[esp+4], esi	; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, 1

loc_9B6C4:				; CODE XREF: FileSystem_GetExecutableDir(char *,int)+8Aj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9B6D0:				; CODE XREF: FileSystem_GetExecutableDir(char *,int)+1Cj
		mov	edx, esi
		mov	eax, ebx
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_Z27FileSystem_GetExecutableDirPci_part_5
; ---------------------------------------------------------------------------
		align 8

loc_9B6E8:				; CODE XREF: FileSystem_GetExecutableDir(char *,int)+25j
		mov	dword ptr [esp], offset	name ; "VProject"
		call	getenv
		test	eax, eax
		jnz	short loc_9B697
		xor	eax, eax
		jmp	short loc_9B6C4
_Z27FileSystem_GetExecutableDirPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL21FileSystem_GetBaseDirPci_constprop_15 proc	near
					; CODE XREF: FileSystem_IsHldsUpdateToolDedicatedServer(void)+19p
					; FileSystem_MountContent(CFSMountContentInfo &)+4Cp ...
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		sub	esp, 14h
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], eax	; s
		call	_Z27FileSystem_GetExecutableDirPci ; FileSystem_GetExecutableDir(char *,int)
		xor	edx, edx
		test	al, al
		jz	short loc_9B72C
		mov	[esp], ebx	; s
		call	_Z15V_StripFilenamePc ;	V_StripFilename(char *)
		mov	edx, 1

loc_9B72C:				; CODE XREF: _ZL21FileSystem_GetBaseDirPci_constprop_15+1Dj
		add	esp, 14h
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
_ZL21FileSystem_GetBaseDirPci_constprop_15 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl SetupFileSystemError(char, int, char *format, char arg)
_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz proc near
					; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+8Dp
					; LocateGameInfoFile(CFSSteamSetupInfo	const&,char *,int)+FCp	...

arg_0		= byte ptr  8
arg_4		= dword	ptr  0Ch
format		= dword	ptr  10h
arg		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 14h
		movzx	ebx, [ebp+arg_0]
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	dword ptr [esp], offset	_ZL17g_FileSystemError ; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	dword ptr [esp+4], offset _ZL17g_FileSystemError ; g_FileSystemError
		mov	dword ptr [esp], offset	off_20DC96
		call	Warning
		test	bl, bl
		mov	eax, _ZL21g_FileSystemErrorMode	; g_FileSystemErrorMode
		jz	short loc_9B78F
		cmp	eax, 1
		jz	short loc_9B7A0

loc_9B78F:				; CODE XREF: SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)+48j
					; SetupFileSystemError(bool,FSReturnCode_t,char	 const*,...)+7Ej
		cmp	eax, 1
		jbe	short loc_9B7C0
		mov	eax, [ebp+arg_4]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9B7A0:				; CODE XREF: SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)+4Dj
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aNovconfig ; "-NoVConfig"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jz	short loc_9B7E0

loc_9B7B9:				; CODE XREF: SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)+A5j
		mov	eax, _ZL21g_FileSystemErrorMode	; g_FileSystemErrorMode
		jmp	short loc_9B78F
; ---------------------------------------------------------------------------

loc_9B7C0:				; CODE XREF: SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)+52j
		mov	dword ptr [esp+4], offset _ZL17g_FileSystemError ; g_FileSystemError
		mov	dword ptr [esp], offset	off_20DC96
		call	Error
		mov	eax, [ebp+arg_4]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9B7E0:				; CODE XREF: SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)+77j
		call	_Z23GetVProjectCmdLineValuev ; GetVProjectCmdLineValue(void)
		jmp	short loc_9B7B9
_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsLowViolenceBuild(void)
_Z18IsLowViolenceBuildv	proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z18IsLowViolenceBuildv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_IsHldsUpdateToolDedicatedServer(void)
_Z42FileSystem_IsHldsUpdateToolDedicatedServerv	proc near
					; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+1C2p

s		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 128h
		mov	[ebp+var_8], ebx
		lea	ebx, [ebp+s]
		mov	eax, ebx
		mov	[ebp+var_4], esi
		xor	esi, esi
		call	_ZL21FileSystem_GetBaseDirPci_constprop_15
		test	al, al
		jnz	short loc_9B830

loc_9B822:				; CODE XREF: FileSystem_IsHldsUpdateToolDedicatedServer(void)+54j
					; FileSystem_IsHldsUpdateToolDedicatedServer(void)+6Dj	...
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9B830:				; CODE XREF: FileSystem_IsHldsUpdateToolDedicatedServer(void)+20j
		mov	[esp], ebx
		mov	dword ptr [esp+4], 2Fh
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	[esp], ebx	; s
		call	_Z20V_StripTrailingSlashPc ; V_StripTrailingSlash(char *)
		mov	[esp], ebx	; s
		call	_Z21V_UnqualifiedFileNamePKc ; V_UnqualifiedFileName(char  const*)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_9B822
		mov	dword ptr [esp+4], offset aOrangebox ; "orangebox"
		mov	esi, 1
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_9B822
		mov	dword ptr [esp+4], offset aCss ; "css"
		mov	[esp], ebx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		setz	al
		mov	esi, eax
		jmp	short loc_9B822
_Z42FileSystem_IsHldsUpdateToolDedicatedServerv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl DoesFileExistIn(char *src, int)
_Z15DoesFileExistInPKcS0_ proc near	; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+6Bp
					; TryLocateGameInfoFile(char *,int,bool)+E4p ...

s		= byte ptr -10Ch
src		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	ebx, [ebp+s]
		sub	esp, 124h
		mov	eax, [ebp+src]
		mov	[esp], ebx	; dest
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 104h	; int
		call	_Z13V_AppendSlashPci ; V_AppendSlash(char *,int)
		mov	eax, [ebp+arg_4]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 104h	; int
		mov	[esp+4], eax	; int
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	[esp], ebx
		mov	dword ptr [esp+4], 2Fh
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 0 ; type
		call	__wrap_access
		test	eax, eax
		setz	al
		add	esp, 124h
		pop	ebx
		pop	ebp
		retn
_Z15DoesFileExistInPKcS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TryLocateGameInfoFile(char *,	int, bool)
_ZL21TryLocateGameInfoFilePcib proc near
					; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+155p
					; LocateGameInfoFile(CFSSteamSetupInfo	const&,char *,int)+19Cp ...

var_19		= byte ptr -19h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, edx
		push	ebx
		mov	ebx, eax
		sub	esp, 2Ch
		mov	[ebp+var_19], cl
		mov	[esp], edx
		call	_Znaj		; operator new[](uint)
		mov	[esp+8], esi	; n
		mov	edi, eax
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		lea	edx, [edi+esi]
		mov	byte ptr [edi+esi-1], 0
		cmp	edi, edx
		jnb	short loc_9B980
		mov	eax, edi
		jmp	short loc_9B967
; ---------------------------------------------------------------------------
		align 10h

loc_9B960:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+4Aj
		add	eax, 1
		cmp	eax, edx
		jz	short loc_9B980

loc_9B967:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+38j
					; TryLocateGameInfoFile(char *,int,bool)+54j
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_9B960
		mov	byte ptr [eax],	2Fh
		add	eax, 1
		cmp	eax, edx
		jnz	short loc_9B967
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_9B980:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+34j
					; TryLocateGameInfoFile(char *,int,bool)+45j ...
		mov	dword ptr [esp+4], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp], ebx	; src
		call	_Z15DoesFileExistInPKcS0_ ; DoesFileExistIn(char  const*,char  const*)
		test	al, al
		jnz	loc_9BA78
		cmp	[ebp+var_19], 0
		jnz	loc_9BA40

loc_9B9A2:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+134j
		mov	[esp+8], esi	; n
		mov	[esp+4], edi	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	byte ptr [ebx+esi-1], 0
		mov	dword ptr [esp+4], offset aContent ; "/content/"
		mov	[esp], ebx
		call	_Z9V_stristrPcPKc ; V_stristr(char *,char  const*)
		test	eax, eax
		jz	short loc_9BA13
		mov	edx, ebx
		mov	dword ptr [eax], 6D61672Fh
		sub	edx, eax
		mov	word ptr [eax+4], 2F65h
		lea	edx, [esi+edx-9]
		mov	byte ptr [eax+6], 0
		mov	[esp+8], edx	; n
		lea	edx, [eax+9]
		add	eax, 6
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove

loc_9B9F9:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+14Ej
		mov	dword ptr [esp+4], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp], ebx	; src
		call	_Z15DoesFileExistInPKcS0_ ; DoesFileExistIn(char  const*,char  const*)
		test	al, al
		jnz	short loc_9BA78
		cmp	[ebp+var_19], 0
		jnz	short loc_9BA60

loc_9BA13:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+A9j
					; TryLocateGameInfoFile(char *,int,bool)+150j
		mov	ebx, 1

loc_9BA18:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+15Aj
		test	edi, edi
		jz	short loc_9BA24
		mov	[esp], edi	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_9BA24:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+FAj
		mov	dword ptr [esp], 0 ; void *
		call	_ZdlPv		; operator delete(void *)
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9BA40:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+7Cj
		mov	[esp+4], esi	; maxlen
		mov	[esp], ebx	; s
		call	_Z14V_StripLastDirPci ;	V_StripLastDir(char *,int)
		test	al, al
		jnz	loc_9B980
		jmp	loc_9B9A2
; ---------------------------------------------------------------------------
		align 10h

loc_9BA60:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+F1j
		mov	[esp+4], esi	; maxlen
		mov	[esp], ebx	; s
		call	_Z14V_StripLastDirPci ;	V_StripLastDir(char *,int)
		test	al, al
		jnz	short loc_9B9F9
		jmp	short loc_9BA13
; ---------------------------------------------------------------------------
		align 8

loc_9BA78:				; CODE XREF: TryLocateGameInfoFile(char	*,int,bool)+72j
					; TryLocateGameInfoFile(char *,int,bool)+EBj
		xor	ebx, ebx
		jmp	short loc_9BA18
_ZL21TryLocateGameInfoFilePcib endp

; ---------------------------------------------------------------------------
		test	edi, edi
		mov	ebx, eax
		jz	short loc_9BA8A
		mov	[esp], edi
		call	_ZdaPv		; operator delete[](void *)

loc_9BA8A:				; CODE XREF: .text:0009BA80j
		mov	dword ptr [esp], 0
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetSuggestGameInfoDirFn(bool (*)(CFSSteamSetupInfo  const*, char *, int, bool	*))
_Z23SetSuggestGameInfoDirFnPFbPK17CFSSteamSetupInfoPciPbE proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, ds:_ZZN12_GLOBAL__N_123GetSuggestGameInfoDirFnEvE23s_pfnSuggestGameInfoDir	; `anonymous namespace'::GetSuggestGameInfoDirFn(void)::s_pfnSuggestGameInfoDir
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		pop	ebp
		mov	ds:_ZZN12_GLOBAL__N_123GetSuggestGameInfoDirFnEvE23s_pfnSuggestGameInfoDir, edx	; `anonymous namespace'::GetSuggestGameInfoDirFn(void)::s_pfnSuggestGameInfoDir
		retn
_Z23SetSuggestGameInfoDirFnPFbPK17CFSSteamSetupInfoPciPbE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl LocateGameInfoFile(int, char *s, size_t n)
_Z18LocateGameInfoFileRK17CFSSteamSetupInfoPci proc near
					; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+21p

var_19		= byte ptr -19h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
n		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+n]
		mov	[ebp+var_8], esi
		cmp	byte ptr [ebx+4], 0
		jz	loc_9BB68
		mov	eax, [ebx]
		test	eax, eax
		jz	loc_9BCE0
		mov	dword ptr [esp+4], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp], eax	; src
		call	_Z15DoesFileExistInPKcS0_ ; DoesFileExistIn(char  const*,char  const*)
		test	al, al
		jz	short loc_9BB28
		mov	[esp+8], edi	; n
		xor	esi, esi
		mov	eax, [ebx]
		mov	[esp+4], eax	; src
		mov	eax, [ebp+s]
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_9BB14:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+15Cj
					; LocateGameInfoFile(CFSSteamSetupInfo	const&,char *,int)+1A3j ...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9BB28:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+3Bj
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameinfo_txt ; "gameinfo.txt"
		mov	dword ptr [esp+8], offset aSetupFileSDoes ; "Setup file	'%s' doesn't exist in subdir"...
		mov	dword ptr [esp+4], 1 ; int
		mov	dword ptr [esp], 1 ; char
		mov	[esp+10h], eax
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	esi, eax
		mov	edi, [ebp+var_4]
		mov	eax, esi
		mov	esi, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9BB68:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+19j
		call	_Z23GetVProjectCmdLineValuev ; GetVProjectCmdLineValue(void)
		test	eax, eax
		mov	esi, eax
		jz	short loc_9BBD8
		mov	dword ptr [esp+4], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp], eax	; src
		call	_Z15DoesFileExistInPKcS0_ ; DoesFileExistIn(char  const*,char  const*)
		test	al, al
		jnz	loc_9BD30
		cmp	byte ptr [ebx+8], 0
		jnz	loc_9BD08

loc_9BB95:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+213j
		mov	dword ptr [esp+10h], offset aGameinfo_txt ; "gameinfo.txt"
		mov	dword ptr [esp+0Ch], offset aGameinfo_txt ; "gameinfo.txt"
		mov	dword ptr [esp+8], offset aUnableToFindS_ ; "Unable to find %s.	Solutions:\n\n1. Read "...
		mov	dword ptr [esp+4], 1 ; int
		mov	dword ptr [esp], 1 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	esi, eax
		mov	edi, [ebp+var_4]
		mov	eax, esi
		mov	esi, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9BBD8:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+B1j
		cmp	byte ptr [ebx+8], 0
		jnz	loc_9BD08
		mov	eax, ds:_ZZN12_GLOBAL__N_123GetSuggestGameInfoDirFnEvE23s_pfnSuggestGameInfoDir	; `anonymous namespace'::GetSuggestGameInfoDirFn(void)::s_pfnSuggestGameInfoDir
		mov	[ebp+var_19], 1
		test	eax, eax
		jz	short loc_9BC28
		lea	edx, [ebp+var_19]
		mov	[esp+8], edi
		mov	[esp+0Ch], edx
		mov	edx, [ebp+s]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	eax ; `anonymous namespace'::GetSuggestGameInfoDirFn(void)::s_pfnSuggestGameInfoDir
		test	al, al
		jz	short loc_9BC28
		movzx	ecx, [ebp+var_19]
		mov	edx, edi
		xor	esi, esi
		mov	eax, [ebp+s]
		call	_ZL21TryLocateGameInfoFilePcib ; TryLocateGameInfoFile(char *,int,bool)
		test	eax, eax
		jz	loc_9BB14
		lea	esi, [esi+0]

loc_9BC28:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+12Dj
					; LocateGameInfoFile(CFSSteamSetupInfo	const&,char *,int)+148j
		mov	dword ptr [esp], offset	name ; "VProject"
		call	getenv
		test	eax, eax
		jz	short loc_9BC69
		mov	[esp+8], eax	; src
		mov	eax, [ebp+s]
		xor	esi, esi
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+4], edi	; n
		mov	[esp], eax	; s
		call	_Z18V_MakeAbsolutePathPciPKcS1_	; V_MakeAbsolutePath(char *,int,char  const*,char  const*)
		mov	eax, [ebp+s]
		xor	ecx, ecx
		mov	edx, edi
		call	_ZL21TryLocateGameInfoFilePcib ; TryLocateGameInfoFile(char *,int,bool)
		test	eax, eax
		jz	loc_9BB14

loc_9BC69:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+176j
		mov	dword ptr [esp], offset	aWarningFalling	; "Warning: falling back to auto detection"...
		call	Warning
		mov	eax, [ebx]
		test	eax, eax
		jz	loc_9BD52
		mov	[esp+8], eax	; src
		mov	eax, [ebp+s]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+4], edi	; n
		mov	[esp], eax	; s
		call	_Z18V_MakeAbsolutePathPciPKcS1_	; V_MakeAbsolutePath(char *,int,char  const*,char  const*)

loc_9BC9A:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+2B1j
		mov	eax, [ebp+s]
		mov	ecx, 1
		mov	edx, edi
		xor	esi, esi
		call	_ZL21TryLocateGameInfoFilePcib ; TryLocateGameInfoFile(char *,int,bool)
		test	eax, eax
		jz	loc_9BB14
		mov	eax, [ebp+s]
		mov	[esp+4], edi	; size
		mov	[esp], eax	; s
		call	_Z7Q_getwdPci	; Q_getwd(char *,int)
		mov	eax, [ebp+s]
		mov	ecx, 1
		mov	edx, edi
		call	_ZL21TryLocateGameInfoFilePcib ; TryLocateGameInfoFile(char *,int,bool)
		test	eax, eax
		jnz	loc_9BB95
		jmp	loc_9BB14
; ---------------------------------------------------------------------------
		align 10h

loc_9BCE0:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+23j
		mov	dword ptr [esp+8], offset aBonlyusedirect ; "bOnlyUseDirectoryName=1 and pDirectoryN"...
		mov	dword ptr [esp+4], 1 ; int
		mov	dword ptr [esp], 0 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	esi, eax
		jmp	loc_9BB14
; ---------------------------------------------------------------------------
		align 8

loc_9BD08:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+CFj
					; LocateGameInfoFile(CFSSteamSetupInfo	const&,char *,int)+11Cj
		mov	eax, [ebp+s]
		mov	[esp+8], edi	; n
		xor	esi, esi
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_9BB14
; ---------------------------------------------------------------------------
		align 10h

loc_9BD30:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+C5j
		mov	eax, [ebp+s]
		mov	[esp+8], esi	; src
		xor	esi, esi
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+4], edi	; n
		mov	[esp], eax	; s
		call	_Z18V_MakeAbsolutePathPciPKcS1_	; V_MakeAbsolutePath(char *,int,char  const*,char  const*)
		jmp	loc_9BB14
; ---------------------------------------------------------------------------

loc_9BD52:				; CODE XREF: LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)+1B9j
		mov	eax, [ebp+s]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], (offset aGameSkillLevel+16h)	; src
		mov	[esp+4], edi	; n
		mov	[esp], eax	; s
		call	_Z18V_MakeAbsolutePathPciPKcS1_	; V_MakeAbsolutePath(char *,int,char  const*,char  const*)
		jmp	loc_9BC9A
_Z18LocateGameInfoFileRK17CFSSteamSetupInfoPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl DoesPathExistAlready(char	*src, int)
_Z20DoesPathExistAlreadyPKcS0_ proc near

dest		= byte ptr -210Ch
var_10C		= byte ptr -10Ch
src		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+dest]
		lea	ebx, [ebp+var_10C]
		sub	esp, 2120h
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 2000h ; n
		mov	[esp], esi	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], esi
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp], ebx	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], ebx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		cmp	[ebp+var_10C], 0
		jz	short loc_9BE33
		mov	eax, ebx

loc_9BDF0:				; CODE XREF: DoesPathExistAlready(char	const*,char  const*)+85j
		mov	ecx, [eax]
		add	eax, 4
		lea	edx, [ecx-1010101h]
		not	ecx
		and	edx, ecx
		and	edx, 80808080h
		jz	short loc_9BDF0
		mov	ecx, edx
		shr	ecx, 10h
		test	edx, 8080h
		cmovz	edx, ecx
		lea	ecx, [eax+2]
		cmovz	eax, ecx
		add	dl, dl
		sbb	eax, 3
		sub	eax, ebx
		sub	eax, 1
		cmp	[ebp+eax+var_10C], 2Fh
		jz	loc_9BEBC

loc_9BE33:				; CODE XREF: DoesPathExistAlready(char	const*,char  const*)+6Cj
					; DoesPathExistAlready(char  const*,char  const*)+144j
		mov	eax, esi
		lea	esi, [esi+0]

loc_9BE38:				; CODE XREF: DoesPathExistAlready(char	const*,char  const*)+10Fj
					; DoesPathExistAlready(char  const*,char  const*)+115j
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		test	eax, eax
		jz	short loc_9BEB0
		mov	ecx, ebx

loc_9BE4A:				; CODE XREF: DoesPathExistAlready(char	const*,char  const*)+DFj
		mov	esi, [ecx]
		add	ecx, 4
		lea	edx, [esi-1010101h]
		not	esi
		and	edx, esi
		and	edx, 80808080h
		jz	short loc_9BE4A
		mov	esi, edx
		shr	esi, 10h
		test	edx, 8080h
		cmovz	edx, esi
		lea	esi, [ecx+2]
		cmovz	ecx, esi
		add	dl, dl
		sbb	ecx, 3
		sub	ecx, ebx
		add	ecx, eax
		movzx	edx, byte ptr [ecx]
		cmp	dl, 3Bh
		jz	short loc_9BE97
		test	dl, dl
		jz	short loc_9BE97
		cmp	dl, 2Fh
		mov	eax, ecx
		jnz	short loc_9BE38
		cmp	byte ptr [ecx+1], 3Bh
		jnz	short loc_9BE38

loc_9BE97:				; CODE XREF: DoesPathExistAlready(char	const*,char  const*)+104j
					; DoesPathExistAlready(char  const*,char  const*)+108j
		add	esp, 2120h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9BEB0:				; CODE XREF: DoesPathExistAlready(char	const*,char  const*)+C6j
		add	esp, 2120h
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_9BEBC:				; CODE XREF: DoesPathExistAlready(char	const*,char  const*)+ADj
		mov	[ebp+eax+var_10C], 0
		jmp	loc_9BE33
_Z20DoesPathExistAlreadyPKcS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetSteamInstallPath(char *, int, CSteamEnvVars &, bool)
_Z19SetSteamInstallPathPciR13CSteamEnvVarsb proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z19SetSteamInstallPathPciR13CSteamEnvVarsb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl GetSteamCfgPath(char *s, size_t maxlen)
_Z15GetSteamCfgPathPci proc near

src		= byte ptr -11Ch
s		= dword	ptr  8
maxlen		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+src]
		push	ebx
		sub	esp, 12Ch
		mov	ebx, [ebp+s]
		mov	esi, [ebp+maxlen]
		mov	byte ptr [ebx],	0
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], edi	; s
		call	_Z27FileSystem_GetExecutableDirPci ; FileSystem_GetExecutableDir(char *,int)
		test	al, al
		jz	short loc_9BF58
		mov	[esp+8], esi	; n
		mov	[esp+4], edi	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		nop

loc_9BF20:				; CODE XREF: GetSteamCfgPath(char *,int)+62j
		mov	dword ptr [esp+4], offset aSteam_cfg ; "steam.cfg"
		mov	[esp], ebx	; src
		call	_Z15DoesFileExistInPKcS0_ ; DoesFileExistIn(char  const*,char  const*)
		mov	[esp+4], esi	; int
		test	al, al
		mov	[esp], ebx	; s
		jnz	short loc_9BF80
		call	_Z14V_StripLastDirPci ;	V_StripLastDir(char *,int)
		test	al, al
		jnz	short loc_9BF20
		add	esp, 12Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9BF58:				; CODE XREF: GetSteamCfgPath(char *,int)+2Dj
		mov	dword ptr [esp+8], offset aFilesystem_get ; "FileSystem_GetExecutableDir failed."
		mov	dword ptr [esp+4], 3 ; int
		mov	dword ptr [esp], 0 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		add	esp, 12Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9BF80:				; CODE XREF: GetSteamCfgPath(char *,int)+59j
		call	_Z13V_AppendSlashPci ; V_AppendSlash(char *,int)
		mov	[esp+8], esi	; int
		mov	[esp], ebx	; s
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+4], offset aSteam_cfg ; "steam.cfg"
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		add	esp, 12Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z15GetSteamCfgPathPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetSteamUserPassphrase(KeyValues *, CSteamEnvVars &)
_Z22SetSteamUserPassphraseP9KeyValuesR13CSteamEnvVars proc near
					; CODE XREF: SetupSteamStartupEnvironment(KeyValues *,char  const*,CSteamEnvVars &)+89p

dest		= byte ptr -11Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 138h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+24h]
		mov	[esp], eax	; name
		call	getenv
		test	eax, eax
		jz	short loc_9C038
		lea	edi, [ebp+dest]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	[esp], edi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	edx, edi

loc_9BFF3:				; CODE XREF: SetSteamUserPassphrase(KeyValues *,CSteamEnvVars &)+57j
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_9BFF3
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		sbb	edx, 3
		cmp	edx, edi
		jz	short loc_9C03F

loc_9C025:				; CODE XREF: SetSteamUserPassphrase(KeyValues *,CSteamEnvVars &)+91j
					; SetSteamUserPassphrase(KeyValues *,CSteamEnvVars &)+ADj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9C038:				; CODE XREF: SetSteamUserPassphrase(KeyValues *,CSteamEnvVars &)+25j
		mov	[ebp+dest], 0

loc_9C03F:				; CODE XREF: SetSteamUserPassphrase(KeyValues *,CSteamEnvVars &)+73j
		test	esi, esi
		jz	short loc_9C025
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], offset aSteamuserpassp ; "SteamUserPassphrase"
		mov	[esp], esi	; int
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		test	eax, eax
		jz	short loc_9C025
		add	ebx, 20h
		mov	[esp+8], eax	; arg
		mov	[esp], ebx	; int
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z22SetSteamUserPassphraseP9KeyValuesR13CSteamEnvVars endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetSteamAppId(KeyValues *, char  const*, CSteamEnvVars &)
_Z13SetSteamAppIdP9KeyValuesPKcR13CSteamEnvVars	proc near
					; CODE XREF: SetupSteamStartupEnvironment(KeyValues *,char  const*,CSteamEnvVars &)+9Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_4]
		mov	dword ptr [esp+8], 0FFFFFFFFh ;	int
		mov	dword ptr [esp+4], offset aSteamappid ;	"SteamAppId"
		mov	[esp], eax	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_9C0E0

loc_9C0C2:				; CODE XREF: SetSteamAppId(KeyValues *,char  const*,CSteamEnvVars &)+6Ej
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_8], eax
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_4], (offset aD_1+1)
		mov	esp, ebp
		pop	ebp
		jmp	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)
; ---------------------------------------------------------------------------
		align 10h

loc_9C0E0:				; CODE XREF: SetSteamAppId(KeyValues *,char  const*,CSteamEnvVars &)+30j
		mov	[ebp+var_C], eax
		mov	dword ptr [esp+8], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aMissingSteamap	; "Missing SteamAppId in %s\\%s."
		call	Error
		mov	eax, [ebp+var_C]
		jmp	short loc_9C0C2
_Z13SetSteamAppIdP9KeyValuesPKcR13CSteamEnvVars	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_SetBasePaths(IFileSystem *)
_Z23FileSystem_SetBasePathsP11IFileSystem proc near
					; CODE XREF: FileSystem_MountContent(CFSMountContentInfo &)+9Fp

s		= byte ptr -10Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+s]
		sub	esp, 120h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	dword ptr [esp+4], offset aExecutable_pat ; "EXECUTABLE_PATH"
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], esi	; s
		call	_Z27FileSystem_GetExecutableDirPci ; FileSystem_GetExecutableDir(char *,int)
		test	al, al
		jz	short loc_9C160
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aExecutable_pat ; "EXECUTABLE_PATH"
		call	dword ptr [eax+1Ch]
		add	esp, 120h
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_9C160:				; CODE XREF: FileSystem_SetBasePaths(IFileSystem *)+36j
		mov	dword ptr [esp+8], offset aFilesystem_get ; "FileSystem_GetExecutableDir failed."
		mov	dword ptr [esp+4], 3 ; int
		mov	dword ptr [esp], 0 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		add	esp, 120h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z23FileSystem_SetBasePathsP11IFileSystem endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FileSystem_GetFileSystemDLLName(char *s, size_t maxlen, int)
_Z31FileSystem_GetFileSystemDLLNamePciRb proc near

arg		= byte ptr -174h
stat_buf	= byte ptr -70h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
s		= dword	ptr  8
maxlen		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 198h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+arg]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+s]
		mov	byte ptr [esi],	0
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], ebx	; s
		call	_Z27FileSystem_GetExecutableDirPci ; FileSystem_GetExecutableDir(char *,int)
		test	al, al
		jz	short loc_9C240
		mov	eax, [ebp+maxlen]
		mov	dword ptr [esp+10h], 2Fh
		mov	[esp+0Ch], ebx	; arg
		mov	dword ptr [esp+8], offset aSCfilesystem_s ; "%s%cfilesystem_stdio_srv.so"
		mov	[esp], edi	; s
		mov	[esp+4], eax	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aSteam ; "-steam"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jz	short loc_9C270

loc_9C201:				; CODE XREF: FileSystem_GetFileSystemDLLName(char *,int,bool &)+F7j
					; FileSystem_GetFileSystemDLLName(char *,int,bool &)+11Cj
		mov	eax, [ebp+maxlen]
		mov	[esp+0Ch], ebx	; arg
		mov	[esp], edi	; s
		mov	dword ptr [esp+10h], 2Fh
		mov	dword ptr [esp+8], offset aSCfilesystem_0 ; "%s%cfilesystem_steam_srv.so"
		mov	[esp+4], eax	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	byte ptr [esi],	1
		xor	eax, eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9C240:				; CODE XREF: FileSystem_GetFileSystemDLLName(char *,int,bool &)+33j
		mov	dword ptr [esp+8], offset aFilesystem_get ; "FileSystem_GetExecutableDir failed."
		mov	dword ptr [esp+4], 3 ; int
		mov	dword ptr [esp], 0 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)

loc_9C25C:				; CODE XREF: FileSystem_GetFileSystemDLLName(char *,int,bool &)+11Aj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9C270:				; CODE XREF: FileSystem_GetFileSystemDLLName(char *,int,bool &)+6Fj
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aSteamlocal ;	"-steamlocal"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jnz	loc_9C201
		lea	eax, [ebp+stat_buf]
		mov	[esp+4], edi	; s
		mov	[esp+8], eax	; stat_buf
		mov	dword ptr [esp], 3 ; ver
		call	__wrap___xstat
		mov	edx, eax
		xor	eax, eax
		test	edx, edx
		jz	short loc_9C25C
		jmp	loc_9C201
_Z31FileSystem_GetFileSystemDLLNamePciRb endp

; ---------------------------------------------------------------------------
		jmp	short _Z23FileSystem_SetErrorMode13FSErrorMode_t ; FileSystem_SetErrorMode(FSErrorMode_t)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_SetErrorMode(FSErrorMode_t)
_Z23FileSystem_SetErrorMode13FSErrorMode_t proc	near ; CODE XREF: .text:0009C2B1j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	_ZL21g_FileSystemErrorMode, eax	; g_FileSystemErrorMode
		retn
_Z23FileSystem_SetErrorMode13FSErrorMode_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FileSystem_AddSearchPath_Platform(int, char *src)
_Z33FileSystem_AddSearchPath_PlatformP11IFileSystemPKc proc near
					; CODE XREF: CSteamAppSystemGroup::SetupSearchPaths(char  const*,bool,bool)+10Ap

dest		= byte ptr -10Ch
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 120h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp+8], 104h	; n
		test	al, al
		jnz	short loc_9C358
		mov	eax, [ebp+src]
		lea	esi, [ebp+dest]
		mov	[esp], esi	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp], esi	; s
		call	_Z20V_StripTrailingSlashPc ; V_StripTrailingSlash(char *)
		mov	dword ptr [esp+0Ch], 104h ; int
		mov	dword ptr [esp+8], 104h	; int
		mov	dword ptr [esp+4], offset a__Platform ;	"/../platform"
		mov	[esp], esi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)

loc_9C32F:				; CODE XREF: FileSystem_AddSearchPath_Platform(IFileSystem *,char  const*)+9Ej
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aPlatform ; "PLATFORM"
		call	dword ptr [eax+1Ch]
		add	esp, 120h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_9C358:				; CODE XREF: FileSystem_AddSearchPath_Platform(IFileSystem *,char  const*)+20j
		lea	esi, [ebp+dest]
		mov	dword ptr [esp+4], (offset a__Platform+4) ; src
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	short loc_9C32F
_Z33FileSystem_AddSearchPath_PlatformP11IFileSystemPKc endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ReadKeyValuesFile(char *s)
_Z17ReadKeyValuesFilePKc proc near	; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+140p
					; SetupSteamStartupEnvironment(KeyValues *,char	 const*,CSteamEnvVars &)+65p ...

ptr		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	edi, [ebp+src]
		mov	dword ptr [esp+4], offset modes	; "rb"
		mov	[esp], edi	; s
		call	__wrap_fopen
		test	eax, eax
		mov	ebx, eax
		jz	loc_9C4B0
		mov	[ebp+ptr], 0
		lea	esi, [ebp+ptr]
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	dword ptr [esp+8], 2 ; whence
		mov	dword ptr [esp+4], 0 ; off
		mov	[esp], eax	; stream
		call	fseek
		mov	[esp], ebx	; stream
		call	ftell
		add	eax, 1
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	dword ptr [esp+8], 0 ; whence
		mov	dword ptr [esp+4], 0 ; off
		mov	[esp], ebx	; stream
		call	fseek
		mov	eax, [ebp+var_20]
		mov	[esp+0Ch], ebx	; stream
		mov	dword ptr [esp+4], 1 ; size
		sub	eax, 1
		mov	[esp+8], eax	; n
		mov	eax, [ebp+ptr]
		mov	[esp], eax	; ptr
		call	fread
		mov	[esp], ebx	; stream
		call	fclose
		mov	eax, [ebp+var_20]
		mov	edx, [ebp+ptr]
		mov	byte ptr [edx+eax-1], 0
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	ebx, eax
		mov	dword ptr [esp+4], (offset asc_20E578+4)
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	eax, [ebp+ptr]
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+4], edi	; src
		mov	[esp], ebx	; int
		mov	[esp+8], eax	; s
		call	_ZN9KeyValues14LoadFromBufferEPKcS1_P15IBaseFileSystemS1_ ; KeyValues::LoadFromBuffer(char  const*,char	 const*,IBaseFileSystem	*,char	const*)
		test	al, al
		jnz	short loc_9C486
		mov	[esp], ebx	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		xor	ebx, ebx

loc_9C486:				; CODE XREF: ReadKeyValuesFile(char  const*)+10Aj
		mov	[ebp+var_20], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+ptr]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)

loc_9C4A3:				; CODE XREF: ReadKeyValuesFile(char  const*)+142j
		add	esp, 4Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9C4B0:				; CODE XREF: ReadKeyValuesFile(char  const*)+20j
		xor	ebx, ebx
		jmp	short loc_9C4A3
_Z17ReadKeyValuesFilePKc endp

; ---------------------------------------------------------------------------
		mov	edi, eax
		mov	[esp], ebx
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	ebx, edi

loc_9C4C0:				; CODE XREF: .text:0009C4D2j
		mov	[esp], esi
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_9C4C0
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl SetSteamAppUser(int, char	*src, int)
_Z15SetSteamAppUserP9KeyValuesPKcR13CSteamEnvVars proc near
					; CODE XREF: SetupSteamStartupEnvironment(KeyValues *,char  const*,CSteamEnvVars &)+7Dp

dest		= byte ptr -220h
s		= byte ptr -11Ch
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 22Ch
		mov	esi, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, [esi+44h]
		mov	[esp], eax	; name
		call	getenv
		test	eax, eax
		jz	short loc_9C560
		lea	ebx, [ebp+dest]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	edx, ebx

loc_9C51D:				; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+51j
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_9C51D
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		sbb	edx, 3
		cmp	edx, ebx
		jz	short loc_9C56D
		add	esp, 22Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9C560:				; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+1Fj
		mov	[ebp+dest], 0
		lea	ebx, [ebp+dest]

loc_9C56D:				; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+6Dj
		test	edi, edi
		jz	short loc_9C5D0
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], offset aSteamappuser	; "SteamAppUser"
		mov	[esp], edi	; int
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		test	eax, eax
		jz	short loc_9C5D0
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_9C5A1:				; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+183j
		add	esi, 40h
		mov	[esp], ebx
		call	_Z10V_strlowerPc ; V_strlower(char *)
		mov	[esp+8], ebx	; arg
		mov	[esp], esi	; int
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)
		add	esp, 22Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9C5D0:				; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+8Fj
					; SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+ABj
		mov	eax, [ebp+src]
		lea	edi, [ebp+s]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp], edi	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp], edi	; s
		mov	dword ptr [esp+4], 104h	; int
		call	_Z13V_AppendSlashPci ; V_AppendSlash(char *,int)
		mov	[esp], edi	; s
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 104h	; int
		mov	dword ptr [esp+4], offset aConfigSteamapp ; "config\\SteamAppData.vdf"
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	[esp], edi	; s
		call	_Z17ReadKeyValuesFilePKc ; ReadKeyValuesFile(char  const*)
		test	eax, eax
		mov	edi, eax
		jz	short loc_9C670
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], offset aAutologinuser ; "AutoLoginUser"
		mov	[esp], edi	; int
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		test	eax, eax
		jz	short loc_9C670

loc_9C647:				; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+19Ej
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp], edi	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		jmp	loc_9C5A1
; ---------------------------------------------------------------------------
		align 10h

loc_9C670:				; CODE XREF: SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+149j
					; SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)+165j
		mov	dword ptr [esp], offset	aCanTFindSteamA	; "Can't find steam app user info."
		call	Error
		xor	eax, eax
		jmp	short loc_9C647
_Z15SetSteamAppUserP9KeyValuesPKcR13CSteamEnvVars endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl SetupSteamStartupEnvironment(int,	char *src, int)
_Z28SetupSteamStartupEnvironmentP9KeyValuesPKcR13CSteamEnvVars proc near
					; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+51Cp

s		= byte ptr -220h
var_11C		= byte ptr -11Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+src]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; dest
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], edi	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 104h	; int
		call	_Z13V_AppendSlashPci ; V_AppendSlash(char *,int)
		mov	[esp], ebx	; s
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 104h	; int
		mov	dword ptr [esp+4], offset aSteaminfo_txt ; "steaminfo.txt"
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	[esp], ebx	; s
		call	_Z17ReadKeyValuesFilePKc ; ReadKeyValuesFile(char  const*)
		mov	[esp+8], esi	; int
		mov	ebx, eax
		lea	eax, [ebp+var_11C]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_Z15SetSteamAppUserP9KeyValuesPKcR13CSteamEnvVars ; SetSteamAppUser(KeyValues *,char  const*,CSteamEnvVars &)
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z22SetSteamUserPassphraseP9KeyValuesR13CSteamEnvVars ;	SetSteamUserPassphrase(KeyValues *,CSteamEnvVars &)
		mov	eax, [ebp+arg_0]
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	[esp], eax
		call	_Z13SetSteamAppIdP9KeyValuesPKcR13CSteamEnvVars	; SetSteamAppId(KeyValues *,char  const*,CSteamEnvVars &)
		test	ebx, ebx
		jz	short loc_9C72D
		mov	[esp], ebx	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_9C72D:				; CODE XREF: SetupSteamStartupEnvironment(KeyValues *,char  const*,CSteamEnvVars &)+A3j
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z28SetupSteamStartupEnvironmentP9KeyValuesPKcR13CSteamEnvVars endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl LoadGameInfoFile(char *src, int, int, int)
_Z16LoadGameInfoFilePKcRP9KeyValuesS3_S3_ proc near
					; CODE XREF: GetSteamExtraAppId(char  const*,int *)+22p
					; FileSystem_LoadSearchPaths(CFSSearchPathsInit	&)+3Cp	...

arg		= byte ptr -10Ch
src		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	ebx, [ebp+arg]
		sub	esp, 120h
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 104h	; n
		mov	esi, [ebp+arg_4]
		mov	[esp], ebx	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], 104h	; int
		mov	[esp], ebx	; s
		call	_Z13V_AppendSlashPci ; V_AppendSlash(char *,int)
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 104h	; int
		mov	dword ptr [esp+4], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp], ebx	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], ebx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	[esp], ebx	; s
		call	_Z17ReadKeyValuesFilePKc ; ReadKeyValuesFile(char  const*)
		test	eax, eax
		mov	[esi], eax
		jz	loc_9C848
		mov	dword ptr [esp+8], 0 ; char
		mov	dword ptr [esp+4], offset aFilesystem ;	"FileSystem"
		mov	[esp], eax	; int
		call	_ZN9KeyValues7FindKeyEPKcb ; KeyValues::FindKey(char  const*,bool)
		mov	edx, [ebp+arg_8]
		test	eax, eax
		mov	[edx], eax
		jz	short loc_9C810
		mov	dword ptr [esp+8], 0 ; char
		mov	dword ptr [esp+4], offset aSearchpaths ; "SearchPaths"
		mov	[esp], eax	; int
		call	_ZN9KeyValues7FindKeyEPKcb ; KeyValues::FindKey(char  const*,bool)
		mov	edx, eax
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		xor	eax, eax
		test	edx, edx
		jz	short loc_9C810
		add	esp, 120h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9C810:				; CODE XREF: LoadGameInfoFile(char  const*,KeyValues *&,KeyValues *&,KeyValues *&)+9Cj
					; LoadGameInfoFile(char	 const*,KeyValues *&,KeyValues *&,KeyValues *&)+C1j
		mov	eax, [esi]
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		mov	[esp+0Ch], ebx	; arg
		mov	dword ptr [esp+8], offset aSIsNotAValidFo ; "%s	is not a valid format."
		mov	dword ptr [esp+4], 2 ; int
		mov	dword ptr [esp], 1 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		add	esp, 120h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9C848:				; CODE XREF: LoadGameInfoFile(char  const*,KeyValues *&,KeyValues *&,KeyValues *&)+77j
		mov	[esp+0Ch], ebx	; arg
		mov	dword ptr [esp+8], offset aSIsMissing_ ; "%s is	missing."
		mov	dword ptr [esp+4], 1 ; int
		mov	dword ptr [esp], 1 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		add	esp, 120h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z16LoadGameInfoFilePKcRP9KeyValuesS3_S3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl GetSteamExtraAppId(char *src, int)
_Z18GetSteamExtraAppIdPKcPi proc near	; CODE XREF: FileSystem_MountContent(CFSMountContentInfo &)+3Dp

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
src		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+var_C]
		sub	esp, 24h
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_10]
		mov	[esp+8], eax	; int
		lea	eax, [ebp+var_14]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+src]
		mov	[esp], eax	; src
		call	_Z16LoadGameInfoFilePKcRP9KeyValuesS3_S3_ ; LoadGameInfoFile(char  const*,KeyValues *&,KeyValues *&,KeyValues *&)
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_9C8D8
		mov	eax, [ebp+var_10]
		mov	dword ptr [esp+8], 0FFFFFFFFh ;	int
		mov	dword ptr [esp+4], offset aToolsappid ;	"ToolsAppId"
		mov	[esp], eax	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		mov	edx, [ebp+arg_4]
		mov	[edx], eax
		mov	eax, [ebp+var_14]
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_9C8D8:				; CODE XREF: GetSteamExtraAppId(char  const*,int *)+2Bj
		add	esp, 24h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_Z18GetSteamExtraAppIdPKcPi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_MountContent(CFSMountContentInfo &)
_Z23FileSystem_MountContentR19CFSMountContentInfo proc near
					; CODE XREF: CSteamAppSystemGroup::SetupSearchPaths(char  const*,bool,bool)+B6p

path		= byte ptr -224h
s		= byte ptr -120h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	eax, [ebx+8]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+14h]
		test	al, al
		jz	short loc_9C979
		cmp	byte ptr [ebx],	0
		mov	[ebp+var_1C], 0FFFFFFFFh
		jz	short loc_9C926
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax	; int
		mov	eax, [ebx+4]
		mov	[esp], eax	; src
		call	_Z18GetSteamExtraAppIdPKcPi ; GetSteamExtraAppId(char  const*,int *)
		test	eax, eax
		jnz	short loc_9C984

loc_9C926:				; CODE XREF: FileSystem_MountContent(CFSMountContentInfo &)+2Ej
		lea	eax, [ebp+path]
		call	_ZL21FileSystem_GetBaseDirPci_constprop_15
		test	al, al
		jz	short loc_9C998
		lea	esi, [ebp+s]
		mov	dword ptr [esp+4], 104h	; size
		mov	[esp], esi	; s
		call	_Z7Q_getwdPci	; Q_getwd(char *,int)
		lea	eax, [ebp+path]
		mov	[esp], eax	; path
		call	chdir
		mov	eax, [ebx+8]
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+18h]
		mov	[esp], esi	; path
		mov	edi, eax
		call	chdir
		test	edi, edi
		jnz	short loc_9C9C8

loc_9C979:				; CODE XREF: FileSystem_MountContent(CFSMountContentInfo &)+22j
		mov	eax, [ebx+8]
		mov	[esp], eax
		call	_Z23FileSystem_SetBasePathsP11IFileSystem ; FileSystem_SetBasePaths(IFileSystem	*)

loc_9C984:				; CODE XREF: FileSystem_MountContent(CFSMountContentInfo &)+44j
					; FileSystem_MountContent(CFSMountContentInfo &)+104j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9C998:				; CODE XREF: FileSystem_MountContent(CFSMountContentInfo &)+53j
		mov	dword ptr [esp+8], offset aFilesystem_g_0 ; "FileSystem_GetBaseDir failed."
		mov	dword ptr [esp+4], 3 ; int
		mov	dword ptr [esp], 0 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_9C9C8:				; CODE XREF: FileSystem_MountContent(CFSMountContentInfo &)+97j
		mov	dword ptr [esp+8], offset aUnableToMountS ; "Unable to mount Steam content in the fi"...
		mov	dword ptr [esp+4], 4 ; int
		mov	dword ptr [esp], 1 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		jmp	short loc_9C984
_Z23FileSystem_MountContentR19CFSMountContentInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_LoadSearchPaths(CFSSearchPathsInit	&)
_Z26FileSystem_LoadSearchPathsR18CFSSearchPathsInit proc near
					; CODE XREF: COM_InitFilesystem(char  const*)+38p
					; CSteamAppSystemGroup::SetupSearchPaths(char  const*,bool,bool)+EBp

src		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_230		= dword	ptr -230h
s		= byte ptr -12Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
arg		= byte ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 25Ch
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+8]
		test	edx, edx
		jz	loc_9CB30
		mov	eax, [esi]
		test	eax, eax
		jz	loc_9CB30
		lea	edx, [ebp+arg]
		mov	[esp], eax	; src
		mov	[esp+0Ch], edx	; arg
		lea	edx, [ebp+var_24]
		mov	[esp+8], edx	; int
		lea	edx, [ebp+var_28]
		mov	[esp+4], edx	; int
		call	_Z16LoadGameInfoFilePKcRP9KeyValuesS3_S3_ ; LoadGameInfoFile(char  const*,KeyValues *&,KeyValues *&,KeyValues *&)
		test	eax, eax
		mov	[ebp+var_23C], eax
		jz	short loc_9CA50

loc_9CA3B:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+162j
					; FileSystem_LoadSearchPaths(CFSSearchPathsInit	&)+192j ...
		mov	eax, [ebp+var_23C]
		add	esp, 25Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9CA50:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+49j
		lea	eax, [ebp+var_230]
		call	_ZL21FileSystem_GetBaseDirPci_constprop_15
		test	al, al
		jz	loc_9CB60
		mov	eax, dword ptr [ebp+arg]
		mov	byte ptr [esi+0Ch], 0
		mov	[ebp+var_19], 1
		mov	[esp], eax
		call	_ZN9KeyValues13GetFirstValueEv ; KeyValues::GetFirstValue(void)
		test	eax, eax
		mov	ebx, eax
		jz	loc_9CC0A
		mov	edi, esi
		jmp	short loc_9CAD7
; ---------------------------------------------------------------------------
		align 8

loc_9CA88:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+127j
		mov	[esp], edx
		mov	[ebp+src], edx
		mov	dword ptr [esp+4], offset aAll_source_eng ; "|all_source_engine_paths|"
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		mov	edx, [ebp+src]
		cmp	edx, eax
		jz	loc_9CB90
		mov	[esp+4], edx	; src
		lea	eax, [ebp+var_230]

loc_9CAB6:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+136j
					; FileSystem_LoadSearchPaths(CFSSearchPathsInit	&)+20Fj
		mov	[esp], eax	; int
		lea	ecx, [ebp+var_19]
		mov	edx, esi
		mov	eax, edi
		call	_ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14

loc_9CAC5:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+1C9j
		mov	[esp], ebx
		call	_ZN9KeyValues12GetNextValueEv ;	KeyValues::GetNextValue(void)
		test	eax, eax
		mov	ebx, eax
		jz	loc_9CC08

loc_9CAD7:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+92j
		mov	[esp], ebx
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	dword ptr [esp+8], (offset asc_20E578+4) ; int
		mov	esi, eax
		mov	dword ptr [esp+4], 0 ; src
		mov	[esp], ebx	; int
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		mov	dword ptr [esp+4], offset aGameinfo_path ; "|gameinfo_path|"
		mov	[esp], eax
		mov	[ebp+src], eax
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		mov	edx, [ebp+src]
		cmp	edx, eax
		jnz	loc_9CA88
		add	edx, 0Fh
		mov	[esp+4], edx
		mov	eax, [edi]
		jmp	short loc_9CAB6
; ---------------------------------------------------------------------------
		align 10h

loc_9CB30:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+14j
					; FileSystem_LoadSearchPaths(CFSSearchPathsInit	&)+1Ej
		mov	dword ptr [esp+8], offset aFilesystem_loa ; "FileSystem_LoadSearchPaths: Invalid par"...
		mov	dword ptr [esp+4], 3 ; int
		mov	dword ptr [esp], 0 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	[ebp+var_23C], eax
		jmp	loc_9CA3B
; ---------------------------------------------------------------------------
		align 10h

loc_9CB60:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+6Dj
		mov	dword ptr [esp+8], offset aFilesystem_g_0 ; "FileSystem_GetBaseDir failed."
		mov	dword ptr [esp+4], 3 ; int
		mov	dword ptr [esp], 0 ; char
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	[ebp+var_23C], eax
		jmp	loc_9CA3B
; ---------------------------------------------------------------------------
		align 10h

loc_9CB90:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+B6j
		lea	eax, [ebp+var_230]
		add	edx, 19h
		mov	[ebp+var_240], edx
		lea	ecx, [ebp+var_19]
		mov	[esp+4], edx	; src
		mov	edx, esi
		mov	[esp], eax	; int
		mov	eax, edi
		call	_ZL30FileSystem_AddLoadedSearchPathR18CFSSearchPathsInitPKcPbS2_S2_b_constprop_14
		call	_Z42FileSystem_IsHldsUpdateToolDedicatedServerv	; FileSystem_IsHldsUpdateToolDedicatedServer(void)
		test	al, al
		jz	loc_9CAC5
		mov	eax, [ebp+var_240]
		mov	dword ptr [esp+0Ch], 2Fh ; arg
		mov	dword ptr [esp+8], offset a__CS	; "..%c%s"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp+10h], eax
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		lea	eax, [ebp+s]
		mov	[esp+4], eax
		lea	eax, [ebp+var_230]
		jmp	loc_9CAB6
; ---------------------------------------------------------------------------
		align 8

loc_9CC08:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+E1j
		mov	esi, edi

loc_9CC0A:				; CODE XREF: FileSystem_LoadSearchPaths(CFSSearchPathsInit &)+8Aj
		mov	eax, [ebp+var_28]
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		mov	eax, [esi+8]
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset word_1ED48A
		call	dword ptr [edx+2Ch]
		mov	eax, [esi+8]
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aGamebin_0 ; "gamebin"
		call	dword ptr [edx+2Ch]
		mov	eax, [esi+8]
		mov	edx, [eax]
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aMod ; "mod"
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		cmp	byte ptr [esi+0Ch], 0
		jz	loc_9CA3B
		mov	eax, [esi+8]
		add	esi, 0Ch
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aDefault_write_ ; "DEFAULT_WRITE_PATH"
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+1Ch]
		jmp	loc_9CA3B
_Z26FileSystem_LoadSearchPathsR18CFSSearchPathsInit endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_ClearSteamEnvVars(void)
_Z28FileSystem_ClearSteamEnvVarsv proc near

var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
dest		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
n		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
arg		= byte ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ACh
		mov	[ebp+n], 0
		mov	[ebp+dest], 0
		mov	[ebp+var_88], 0
		mov	[ebp+var_84], 0
		mov	[ebp+var_7C], 0
		mov	byte ptr [ebp+var_98], 1
		mov	[ebp+var_94], offset aSteamappid ; "SteamAppId"
		mov	dword ptr [esp], offset	aSteamappid ; "SteamAppId"
		call	getenv
		test	eax, eax
		mov	ebx, eax
		jz	loc_9D0A0
		mov	[esp], eax	; s
		mov	[ebp+var_90], 1
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+dest]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+n]
		mov	[esp+4], ebx	; src
		mov	[esp+8], eax	; n
		mov	eax, [ebp+dest]
		mov	[esp], eax	; dest
		call	memcpy

loc_9CD3C:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+407j
		mov	[ebp+var_6C], 0
		mov	[ebp+var_68], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_5C], 0
		mov	byte ptr [ebp+var_78], 1
		mov	[ebp+var_74], offset aSteamuserpassp ; "SteamUserPassphrase"
		mov	dword ptr [esp], offset	aSteamuserpassp	; "SteamUserPassphrase"
		call	getenv
		test	eax, eax
		mov	ebx, eax
		jz	loc_9D090
		mov	[esp], eax	; s
		mov	[ebp+var_70], 1
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+var_6C]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_60]
		mov	[esp+4], ebx	; src
		mov	[esp+8], eax	; n
		mov	eax, [ebp+var_6C]
		mov	[esp], eax	; dest
		call	memcpy

loc_9CDB4:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+3F4j
		mov	[ebp+var_4C], 0
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	byte ptr [ebp+var_58], 1
		mov	[ebp+var_54], offset aSteamappuser ; "SteamAppUser"
		mov	dword ptr [esp], offset	aSteamappuser ;	"SteamAppUser"
		call	getenv
		test	eax, eax
		mov	ebx, eax
		jz	loc_9D080
		mov	[esp], eax	; s
		mov	[ebp+var_50], 1
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+var_4C]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_40]
		mov	[esp+4], ebx	; src
		mov	[esp+8], eax	; n
		mov	eax, [ebp+var_4C]
		mov	[esp], eax	; dest
		call	memcpy

loc_9CE2C:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+3E4j
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	dword ptr [ebp+arg], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_38], 1
		mov	[ebp+var_34], offset aPath ; "path"
		mov	dword ptr [esp], offset	aPath ;	"path"
		call	getenv
		test	eax, eax
		mov	ebx, eax
		jz	loc_9D070
		mov	[esp], eax	; s
		mov	[ebp+var_30], 1
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+var_2C]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, dword ptr [ebp+arg]
		mov	[esp+4], ebx	; src
		mov	[esp+8], eax	; arg
		mov	eax, [ebp+var_2C]
		mov	[esp], eax	; dest
		call	memcpy

loc_9CEA4:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+3D4j
		lea	ebx, [ebp+var_98]
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; format
		mov	[esp], ebx	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)
		lea	esi, [ebp+var_78]
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; format
		mov	[esp], esi	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)
		lea	edi, [ebp+var_58]
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; format
		mov	[esp], edi	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)
		lea	eax, [ebp+var_2C]
		mov	byte ptr [ebp+var_98], 0
		mov	[esp], eax
		mov	[ebp+var_9C], eax
		mov	byte ptr [ebp+var_78], 0
		mov	byte ptr [ebp+var_58], 0
		mov	[ebp+var_38], 0
		mov	dword ptr [ebp+arg], 0
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	edx, [ebp+var_2C]
		mov	eax, [ebp+var_9C]
		mov	[ebp+var_1C], edx
		mov	[esp], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_58], 0
		jz	short loc_9CF46
		cmp	[ebp+var_50], 0
		jz	loc_9D050
		mov	eax, [ebx+4Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp], edi	; int
		mov	[esp+8], eax	; arg
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9CF46:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+283j
					; FileSystem_ClearSteamEnvVars(void)+3CBj
		lea	edi, [ebp+var_4C]
		mov	[ebp+var_40], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+var_4C]
		mov	[esp], edi
		mov	[ebp+var_3C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_78], 0
		jz	short loc_9CF8D
		cmp	[ebp+var_70], 0
		jz	loc_9D030
		mov	eax, [ebx+2Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp], esi	; int
		mov	[esp+8], eax	; arg
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9CF8D:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+2CAj
					; FileSystem_ClearSteamEnvVars(void)+3ABj
		lea	esi, [ebp+var_6C]
		mov	[ebp+var_60], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+var_6C]
		mov	[esp], esi
		mov	[ebp+var_5C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_98], 0
		jz	short loc_9CFD6
		cmp	[ebp+var_90], 0
		jz	short loc_9D010
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp], ebx	; int
		mov	[esp+8], eax	; arg
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9CFD6:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+314j
					; FileSystem_ClearSteamEnvVars(void)+38Bj
		lea	ebx, [ebp+dest]
		mov	[ebp+n], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+dest]
		mov	[esp], ebx
		mov	[ebp+var_7C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9D010:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+31Dj
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+4]
		mov	[esp], eax	; name
		call	setenv
		jmp	short loc_9CFD6
; ---------------------------------------------------------------------------
		align 10h

loc_9D030:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+2D0j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+24h]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9CF8D
; ---------------------------------------------------------------------------

loc_9D050:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+289j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+44h]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9CF46
; ---------------------------------------------------------------------------

loc_9D070:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+1CAj
		mov	[ebp+var_30], 0
		jmp	loc_9CEA4
; ---------------------------------------------------------------------------
		align 10h

loc_9D080:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+152j
		mov	[ebp+var_50], 0
		jmp	loc_9CE2C
; ---------------------------------------------------------------------------
		align 10h

loc_9D090:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+DAj
		mov	[ebp+var_70], 0
		jmp	loc_9CDB4
; ---------------------------------------------------------------------------
		align 10h

loc_9D0A0:				; CODE XREF: FileSystem_ClearSteamEnvVars(void)+59j
		mov	[ebp+var_90], 0
		jmp	loc_9CD3C
_Z28FileSystem_ClearSteamEnvVarsv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-8Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-6Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()

loc_9D0D1:				; CODE XREF: .text:0009D0F8j
		mov	[esp], ebx
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	edi, eax
		lea	eax, [ebp-4Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	[esp], esi
		mov	esi, edi
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		jmp	short loc_9D0D1
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN13CSteamEnvVarsD2Ev ; CSteamEnvVars::~CSteamEnvVars()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_SetupSteamInstallPath(void)
_Z32FileSystem_SetupSteamInstallPathv proc near

var_98		= dword	ptr -98h
name		= dword	ptr -94h
var_90		= byte ptr -90h
dest		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
n		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
arg		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		mov	[ebp+n], 0
		mov	[ebp+dest], 0
		mov	[ebp+var_88], 0
		mov	[ebp+var_84], 0
		mov	[ebp+var_7C], 0
		mov	byte ptr [ebp+var_98], 1
		mov	[ebp+name], offset aSteamappid ; "SteamAppId"
		mov	dword ptr [esp], offset	aSteamappid ; "SteamAppId"
		call	getenv
		test	eax, eax
		mov	ebx, eax
		jz	loc_9D4C0
		mov	[esp], eax	; s
		mov	[ebp+var_90], 1
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+dest]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+n]
		mov	[esp+4], ebx	; src
		mov	[esp+8], eax	; n
		mov	eax, [ebp+dest]
		mov	[esp], eax	; dest
		call	memcpy

loc_9D1AC:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+3B7j
		mov	[ebp+var_6C], 0
		mov	[ebp+var_68], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_5C], 0
		mov	byte ptr [ebp+var_78], 1
		mov	[ebp+var_74], offset aSteamuserpassp ; "SteamUserPassphrase"
		mov	dword ptr [esp], offset	aSteamuserpassp	; "SteamUserPassphrase"
		call	getenv
		test	eax, eax
		mov	ebx, eax
		jz	loc_9D4B0
		mov	[esp], eax	; s
		mov	[ebp+var_70], 1
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+var_6C]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_60]
		mov	[esp+4], ebx	; src
		mov	[esp+8], eax	; n
		mov	eax, [ebp+var_6C]
		mov	[esp], eax	; dest
		call	memcpy

loc_9D224:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+3A4j
		mov	dword ptr [ebp+arg], 0
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	byte ptr [ebp+var_58], 1
		mov	[ebp+var_54], offset aSteamappuser ; "SteamAppUser"
		mov	dword ptr [esp], offset	aSteamappuser ;	"SteamAppUser"
		call	getenv
		test	eax, eax
		mov	esi, eax
		jz	loc_9D4A0
		mov	[esp], eax	; s
		lea	ebx, [ebp+arg]
		mov	[ebp+var_50], 1
		call	strlen
		mov	[esp], ebx
		add	eax, 1
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_40]
		mov	[esp+4], esi	; src
		mov	[esp+8], eax	; n
		mov	eax, dword ptr [ebp+arg]
		mov	[esp], eax	; dest
		call	memcpy

loc_9D29C:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+397j
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_38], 1
		mov	[ebp+var_34], offset aPath ; "path"
		mov	dword ptr [esp], offset	aPath ;	"path"
		call	getenv
		test	eax, eax
		mov	edi, eax
		jz	loc_9D490
		mov	[esp], eax	; s
		lea	esi, [ebp+var_2C]
		mov	[ebp+var_30], 1
		call	strlen
		mov	[esp], esi
		add	eax, 1
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_20]
		mov	[esp+4], edi	; src
		mov	[esp+8], eax	; n
		mov	eax, [ebp+var_2C]
		mov	[esp], eax	; dest
		call	memcpy

loc_9D314:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+387j
		mov	[ebp+var_38], 0
		mov	[ebp+var_20], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_58], 0
		jz	short loc_9D35F
		cmp	[ebp+var_50], 0
		jz	loc_9D470
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_58]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9D35F:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+229j
					; FileSystem_SetupSteamInstallPath(void)+37Bj
		mov	[ebp+var_40], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, dword ptr [ebp+arg]
		mov	[esp], ebx
		mov	[ebp+var_3C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_78], 0
		jz	short loc_9D3A6
		cmp	[ebp+var_70], 0
		jz	loc_9D450
		mov	eax, [ebp+var_6C]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_78]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9D3A6:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+270j
					; FileSystem_SetupSteamInstallPath(void)+35Bj
		lea	ebx, [ebp+var_6C]
		mov	[ebp+var_60], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+var_6C]
		mov	[esp], ebx
		mov	[ebp+var_5C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_98], 0
		jz	short loc_9D3F8
		cmp	[ebp+var_90], 0
		jz	short loc_9D430
		mov	eax, [ebp+dest]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_98]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9D3F8:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+2BDj
					; FileSystem_SetupSteamInstallPath(void)+33Ej
		lea	ebx, [ebp+dest]
		mov	[ebp+n], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+dest]
		mov	[esp], ebx
		mov	[ebp+var_7C], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		add	esp, 9Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9D430:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+2C6j
		mov	eax, [ebp+name]
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	[esp], eax	; name
		call	setenv
		jmp	short loc_9D3F8
; ---------------------------------------------------------------------------

loc_9D450:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+276j
		mov	eax, [ebp+var_74]
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9D3A6
; ---------------------------------------------------------------------------

loc_9D470:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+22Fj
		mov	eax, [ebp+var_54]
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9D35F
; ---------------------------------------------------------------------------

loc_9D490:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+1CAj
		mov	[ebp+var_30], 0
		lea	esi, [ebp+var_2C]
		jmp	loc_9D314
; ---------------------------------------------------------------------------
		align 10h

loc_9D4A0:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+152j
		mov	[ebp+var_50], 0
		lea	ebx, [ebp+arg]
		jmp	loc_9D29C
; ---------------------------------------------------------------------------
		align 10h

loc_9D4B0:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+DAj
		mov	[ebp+var_70], 0
		jmp	loc_9D224
; ---------------------------------------------------------------------------
		align 10h

loc_9D4C0:				; CODE XREF: FileSystem_SetupSteamInstallPath(void)+59j
		mov	[ebp+var_90], 0
		jmp	loc_9D1AC
_Z32FileSystem_SetupSteamInstallPathv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-8Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-6Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()

loc_9D4F1:				; CODE XREF: .text:0009D51Ej
		lea	eax, [ebp-98h]
		mov	[esp], eax
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		lea	eax, [ebp-78h]
		mov	ebx, esi
		mov	[esp], eax
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		jmp	short loc_9D4F1

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)
_Z32FileSystem_SetupSteamEnvironmentR17CFSSteamSetupInfo proc near
					; CODE XREF: FileSystem_LoadFileSystemModule(CFSLoadModuleInfo &)+12p
					; CSteamAppSystemGroup::SetupSearchPaths(char  const*,bool,bool)+69p

src		= dword	ptr -0ACh
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= byte ptr -9Ch
dest		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
n		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
name		= dword	ptr -40h
var_3C		= byte ptr -3Ch
arg		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0BCh
		mov	edi, [ebp+arg_0]
		mov	dword ptr [esp+8], 200h	; n
		lea	esi, [edi+9]
		mov	[esp], edi	; int
		mov	[esp+4], esi	; s
		call	_Z18LocateGameInfoFileRK17CFSSteamSetupInfoPci ; LocateGameInfoFile(CFSSteamSetupInfo  const&,char *,int)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_9D560
		add	esp, 0BCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9D560:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+2Aj
		mov	dword ptr [esp+8], 1 ; replace
		mov	[esp+4], esi	; value
		mov	dword ptr [esp], offset	name ; "VProject"
		call	setenv
		mov	byte ptr [ebp+var_A4], 1
		mov	[ebp+dest], 0
		mov	[ebp+var_94], 0
		mov	[ebp+var_90], 0
		mov	[ebp+n], 0
		mov	[ebp+var_88], 0
		mov	[ebp+var_A0], offset aSteamappid ; "SteamAppId"
		mov	dword ptr [esp], offset	aSteamappid ; "SteamAppId"
		call	getenv
		test	eax, eax
		jz	loc_9DA18
		mov	[esp], eax	; s
		mov	[ebp+var_9C], 1
		mov	[ebp+src], eax
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+dest]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+n]
		mov	edx, [ebp+src]
		mov	[esp+8], eax	; n
		mov	eax, [ebp+dest]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memcpy

loc_9D61B:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+4FFj
		mov	[ebp+var_78], 0
		mov	[ebp+var_74], 0
		mov	[ebp+var_70], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_68], 0
		mov	byte ptr [ebp+var_84], 1
		mov	[ebp+var_80], offset aSteamuserpassp ; "SteamUserPassphrase"
		mov	dword ptr [esp], offset	aSteamuserpassp	; "SteamUserPassphrase"
		call	getenv
		test	eax, eax
		jz	loc_9DA08
		mov	[esp], eax	; s
		mov	[ebp+var_7C], 1
		mov	[ebp+src], eax
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+var_78]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_6C]
		mov	edx, [ebp+src]
		mov	[esp+8], eax	; n
		mov	eax, [ebp+var_78]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memcpy

loc_9D6A0:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+4ECj
		mov	[ebp+var_58], 0
		mov	[ebp+var_54], 0
		mov	[ebp+var_50], 0
		mov	[ebp+var_4C], 0
		mov	[ebp+var_48], 0
		mov	byte ptr [ebp+var_64], 1
		mov	[ebp+var_60], offset aSteamappuser ; "SteamAppUser"
		mov	dword ptr [esp], offset	aSteamappuser ;	"SteamAppUser"
		call	getenv
		test	eax, eax
		jz	loc_9D9F8
		mov	[esp], eax	; s
		mov	[ebp+var_5C], 1
		mov	[ebp+src], eax
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+var_58]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_4C]
		mov	edx, [ebp+src]
		mov	[esp+8], eax	; n
		mov	eax, [ebp+var_58]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memcpy

loc_9D722:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+4DCj
		mov	dword ptr [ebp+arg], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	byte ptr [ebp+var_44], 1
		mov	[ebp+name], offset aPath ; "path"
		mov	dword ptr [esp], offset	aPath ;	"path"
		call	getenv
		test	eax, eax
		jz	loc_9D9E8
		mov	[esp], eax	; s
		mov	[ebp+var_3C], 1
		mov	[ebp+src], eax
		call	strlen
		add	eax, 1
		mov	[esp+4], eax
		lea	eax, [ebp+arg]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi ;	CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)
		mov	eax, [ebp+var_2C]
		mov	edx, [ebp+src]
		mov	[esp+8], eax	; n
		mov	eax, dword ptr [ebp+arg]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memcpy

loc_9D7A4:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+4CCj
		cmp	byte ptr [edi+7], 0
		jz	loc_9D8F0
		cmp	byte ptr [edi+5], 0
		jnz	loc_9D9B0
		cmp	byte ptr [edi+6], 0
		jz	loc_9D8F0
		mov	byte ptr [ebp+var_44], 0
		lea	edi, [ebp+var_A4]

loc_9D7CC:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+3DCj
					; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)+406j ...
		lea	esi, [ebp+arg]
		mov	[ebp+var_2C], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, dword ptr [ebp+arg]
		mov	[esp], esi
		mov	[ebp+var_28], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_64], 0
		jz	short loc_9D816
		cmp	[ebp+var_5C], 0
		jz	loc_9D970
		mov	eax, [edi+4Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_64]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9D816:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+2D0j
					; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)+46Bj
		lea	esi, [ebp+var_58]
		mov	[ebp+var_4C], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+var_58]
		mov	[esp], esi
		mov	[ebp+var_48], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_84], 0
		jz	short loc_9D866
		cmp	[ebp+var_7C], 0
		jz	loc_9D950
		mov	eax, [edi+2Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_84]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9D866:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+31Dj
					; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)+44Bj
		lea	esi, [ebp+var_78]
		mov	[ebp+var_6C], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+var_78]
		mov	[esp], esi
		mov	[ebp+var_68], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebp+var_A4], 0
		jz	short loc_9D8B3
		cmp	[ebp+var_9C], 0
		jz	loc_9D930
		mov	eax, [edi+0Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp], edi	; int
		mov	[esp+8], eax	; arg
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9D8B3:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+36Dj
					; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)+42Bj
		mov	[ebp+n], 0
		lea	esi, [ebp+dest]
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebp+dest]
		mov	[esp], esi
		mov	[ebp+var_88], eax
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		add	esp, 0BCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9D8F0:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+288j
					; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)+29Cj
		movzx	eax, byte ptr [ebp+var_44]
		lea	edi, [ebp+var_A4]

loc_9D8FA:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+4BDj
		test	al, al
		jz	loc_9D7CC
		cmp	[ebp+var_3C], 0
		jz	loc_9D990
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_44]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)
		jmp	loc_9D7CC
; ---------------------------------------------------------------------------
		align 10h

loc_9D930:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+376j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [edi+4]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9D8B3
; ---------------------------------------------------------------------------

loc_9D950:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+323j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [edi+24h]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9D866
; ---------------------------------------------------------------------------

loc_9D970:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+2D6j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [edi+44h]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9D816
; ---------------------------------------------------------------------------

loc_9D990:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+3E6j
		mov	eax, [ebp+name]
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9D7CC
; ---------------------------------------------------------------------------

loc_9D9B0:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+292j
		lea	eax, [ebp+var_1C]
		mov	[esp], esi	; src
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_20]
		mov	[esp+8], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+4], eax	; int
		lea	edi, [ebp+var_A4]
		call	_Z16LoadGameInfoFilePKcRP9KeyValuesS3_S3_ ; LoadGameInfoFile(char  const*,KeyValues *&,KeyValues *&,KeyValues *&)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_9DA28

loc_9D9D9:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+525j
					; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)+539j
		movzx	eax, byte ptr [ebp+var_44]
		jmp	loc_9D8FA
; ---------------------------------------------------------------------------
		align 8

loc_9D9E8:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+23Ej
		mov	[ebp+var_3C], 0
		jmp	loc_9D7A4
; ---------------------------------------------------------------------------
		align 8

loc_9D9F8:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+1BCj
		mov	[ebp+var_5C], 0
		jmp	loc_9D722
; ---------------------------------------------------------------------------
		align 8

loc_9DA08:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+13Aj
		mov	[ebp+var_7C], 0
		jmp	loc_9D6A0
; ---------------------------------------------------------------------------
		align 8

loc_9DA18:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+A9j
		mov	[ebp+var_9C], 0
		jmp	loc_9D61B
; ---------------------------------------------------------------------------
		align 8

loc_9DA28:				; CODE XREF: FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo	&)+4B7j
		mov	eax, [ebp+var_20]
		lea	edi, [ebp+var_A4]
		mov	[esp+4], esi	; src
		mov	[esp+8], edi	; int
		mov	[esp], eax	; int
		call	_Z28SetupSteamStartupEnvironmentP9KeyValuesPKcR13CSteamEnvVars ; SetupSteamStartupEnvironment(KeyValues	*,char	const*,CSteamEnvVars &)
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_9D9D9
		mov	eax, [ebp+var_24]
		mov	byte ptr [ebp+var_A4], 0
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		jmp	loc_9D9D9
_Z32FileSystem_SetupSteamEnvironmentR17CFSSteamSetupInfo endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN13CSteamEnvVarsD2Ev ; CSteamEnvVars::~CSteamEnvVars()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-38h]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		lea	eax, [ebp-64h]
		mov	[esp], eax
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()

loc_9DA88:				; CODE XREF: .text:0009DAB3j
		lea	eax, [ebp-84h]
		mov	[esp], eax
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()

loc_9DA96:				; CODE XREF: .text:0009DAC2j
		mov	[esp], edi
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-58h]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		jmp	short loc_9DA88
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-78h]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		jmp	short loc_9DA96
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-98h]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_LoadFileSystemModule(CFSLoadModuleInfo &)
_Z31FileSystem_LoadFileSystemModuleR17CFSLoadModuleInfo	proc near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	[esp], ebx
		call	_Z32FileSystem_SetupSteamEnvironmentR17CFSSteamSetupInfo ; FileSystem_SetupSteamEnvironment(CFSSteamSetupInfo &)
		test	eax, eax
		mov	esi, eax
		jz	short loc_9DB10

loc_9DAFD:				; CODE XREF: FileSystem_LoadFileSystemModule(CFSLoadModuleInfo &)+8Ej
					; FileSystem_LoadFileSystemModule(CFSLoadModuleInfo &)+B8j ...
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9DB10:				; CODE XREF: FileSystem_LoadFileSystemModule(CFSLoadModuleInfo &)+1Bj
		lea	eax, [ebx+214h]
		mov	dword ptr [esp+4], offset aVfilesystem019 ; "VFileSystem019"
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebx+218h]
		mov	[esp+8], eax	; int
		mov	eax, [ebx+20Ch]
		mov	[esp], eax	; src
		call	_Z17Sys_LoadInterfacePKcS0_PP10CSysModulePPv ; Sys_LoadInterface(char  const*,char  const*,CSysModule **,void **)
		test	al, al
		jz	loc_9DBD0
		mov	eax, [ebx+214h]
		mov	ecx, [ebx+210h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx]
		test	al, al
		jz	short loc_9DBA0
		mov	eax, [ebx+214h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		cmp	eax, 1
		jz	short loc_9DAFD
		mov	eax, [ebx+20Ch]
		mov	dword ptr [esp+8], offset aSIfilesystemIn ; "%s	IFileSystem::Init failed."
		mov	dword ptr [esp+4], 4 ; int
		mov	dword ptr [esp], 0 ; char
		mov	[esp+0Ch], eax	; arg
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	esi, eax
		jmp	loc_9DAFD
; ---------------------------------------------------------------------------
		align 10h

loc_9DBA0:				; CODE XREF: FileSystem_LoadFileSystemModule(CFSLoadModuleInfo &)+7Bj
		mov	eax, [ebx+20Ch]
		mov	dword ptr [esp+8], offset aSIfilesystemCo ; "%s	IFileSystem::Connect failed."
		mov	dword ptr [esp+4], 4 ; int
		mov	dword ptr [esp], 0 ; char
		mov	[esp+0Ch], eax	; arg
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	esi, eax
		jmp	loc_9DAFD
; ---------------------------------------------------------------------------
		align 10h

loc_9DBD0:				; CODE XREF: FileSystem_LoadFileSystemModule(CFSLoadModuleInfo &)+5Cj
		mov	eax, [ebx+20Ch]
		mov	dword ptr [esp+8], offset aCanTLoadS_ ;	"Can't load %s."
		mov	dword ptr [esp+4], 4 ; int
		mov	dword ptr [esp], 0 ; char
		mov	[esp+0Ch], eax	; arg
		call	_Z20SetupFileSystemErrorb14FSReturnCode_tPKcz ;	SetupFileSystemError(bool,FSReturnCode_t,char  const*,...)
		mov	ebx, [ebp+var_8]
		mov	esi, eax
		mov	eax, esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z31FileSystem_LoadFileSystemModuleR17CFSLoadModuleInfo	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CTempEnvVar__SetValue(int, char *format, char arg)
_ZN11CTempEnvVar8SetValueEPKcz proc near
					; CODE XREF: SetSteamUserPassphrase(KeyValues *,CSteamEnvVars &)+C1p
					; SetSteamAppId(KeyValues *,char  const*,CSteamEnvVars &)+48j ...

s		= byte ptr -1008h
arg_0		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 1014h
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	eax, [ebp+arg_0]
		mov	[esp+4], ebx	; value
		mov	dword ptr [esp+8], 1 ; replace
		mov	eax, [eax+4]
		mov	[esp], eax	; name
		call	setenv
		add	esp, 1014h
		pop	ebx
		pop	ebp
		retn
_ZN11CTempEnvVar8SetValueEPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<char, int>::Purge(void)
_ZN10CUtlMemoryIciE5PurgeEv proc near	; CODE XREF: ReadKeyValuesFile(char  const*)+120p
					; ReadKeyValuesFile(char  const*)+12Ep	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_9DC9C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_9DC95
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_9DC95:				; CODE XREF: CUtlMemory<char,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_9DC9C:				; CODE XREF: CUtlMemory<char,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIciE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<char, CUtlMemory<char, int>>::~CUtlVector()
_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev proc near ; CODE	XREF: .text:0009C4C3p
					; .text:0009D0B7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CTempEnvVar::~CTempEnvVar()
_ZN11CTempEnvVarD2Ev proc near		; CODE XREF: .text:0009D0D4p
					; .text:0009D0F3p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		cmp	byte ptr [ebx],	0
		jz	short loc_9DD11
		cmp	byte ptr [ebx+8], 0
		jz	short loc_9DD40
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp], ebx	; int
		mov	[esp+8], eax	; arg
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9DD11:				; CODE XREF: CTempEnvVar::~CTempEnvVar()+12j
					; CTempEnvVar::~CTempEnvVar()+7Bj
		lea	esi, [ebx+0Ch]
		mov	dword ptr [ebx+18h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebx+0Ch]
		mov	[ebx+1Ch], eax
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_0], esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
; ---------------------------------------------------------------------------
		align 10h

loc_9DD40:				; CODE XREF: CTempEnvVar::~CTempEnvVar()+18j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+4]
		mov	[esp], eax	; name
		call	setenv
		jmp	short loc_9DD11
_ZN11CTempEnvVarD2Ev endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		add	ebx, 0Ch
		mov	[esp], ebx
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSteamEnvVars::~CSteamEnvVars()
_ZN13CSteamEnvVarsD2Ev proc near	; CODE XREF: .text:0009D0FFp
					; .text:0009DA63p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	ebx, [ebp+arg_0]
		cmp	byte ptr [ebx+60h], 0
		jz	short loc_9DDB5
		cmp	byte ptr [ebx+68h], 0
		jz	loc_9DF20
		mov	eax, [ebx+6Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebx+60h]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9DDB5:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+Fj
					; CSteamEnvVars::~CSteamEnvVars()+1BBj
		mov	dword ptr [ebx+78h], 0
		lea	esi, [ebx+6Ch]
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebx+6Ch]
		mov	[ebx+7Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebx+40h], 0
		jz	short loc_9DDFF
		cmp	byte ptr [ebx+48h], 0
		jz	loc_9DF00
		mov	eax, [ebx+4Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebx+40h]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9DDFF:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+59j
					; CSteamEnvVars::~CSteamEnvVars()+19Bj
		mov	dword ptr [ebx+58h], 0
		lea	esi, [ebx+4Ch]
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebx+4Ch]
		mov	[ebx+5Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebx+20h], 0
		jz	short loc_9DE49
		cmp	byte ptr [ebx+28h], 0
		jz	loc_9DED8
		mov	eax, [ebx+2Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp+8], eax	; arg
		lea	eax, [ebx+20h]
		mov	[esp], eax	; int
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9DE49:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+A3j
					; CSteamEnvVars::~CSteamEnvVars()+173j
		mov	dword ptr [ebx+38h], 0
		lea	esi, [ebx+2Ch]
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebx+2Ch]
		mov	[ebx+3Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		cmp	byte ptr [ebx],	0
		jz	short loc_9DE8B
		cmp	byte ptr [ebx+8], 0
		jz	short loc_9DEB8
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	[esp], ebx	; int
		mov	[esp+8], eax	; arg
		call	_ZN11CTempEnvVar8SetValueEPKcz ; CTempEnvVar::SetValue(char  const*,...)

loc_9DE8B:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+ECj
					; CSteamEnvVars::~CSteamEnvVars()+153j
		lea	esi, [ebx+0Ch]
		mov	dword ptr [ebx+18h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, [ebx+0Ch]
		mov	[ebx+1Ch], eax
		mov	[ebp+arg_0], esi
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		jmp	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
; ---------------------------------------------------------------------------
		align 8

loc_9DEB8:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+F2j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+4]
		mov	[esp], eax	; name
		call	setenv
		jmp	short loc_9DE8B
; ---------------------------------------------------------------------------
		align 4

loc_9DED8:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+A9j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+24h]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9DE49
; ---------------------------------------------------------------------------
		align 10h

loc_9DF00:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+5Fj
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+44h]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9DDFF
; ---------------------------------------------------------------------------

loc_9DF20:				; CODE XREF: CSteamEnvVars::~CSteamEnvVars()+15j
		mov	dword ptr [esp+8], 1 ; replace
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; value
		mov	eax, [ebx+64h]
		mov	[esp], eax	; name
		call	setenv
		jmp	loc_9DDB5
_ZN13CSteamEnvVarsD2Ev endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		add	ebx, 0Ch
		mov	[esp], ebx
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebx+2Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()

loc_9DF62:				; CODE XREF: .text:0009DF8Aj
		mov	[esp], ebx
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebx+4Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEED2Ev ; CUtlVector<char,CUtlMemory<char,int>>::~CUtlVector()

loc_9DF7F:				; CODE XREF: .text:0009DFBFj
		lea	eax, [ebx+20h]
		mov	[esp], eax
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		jmp	short loc_9DF62
; ---------------------------------------------------------------------------
		mov	dword ptr [ebx+78h], 0
		lea	esi, [ebx+6Ch]
		mov	[ebp-0Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	edx, [ebx+6Ch]
		mov	[ebx+7Ch], edx
		mov	[esp], esi
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		lea	edx, [ebx+40h]
		mov	[esp], edx
		call	_ZN11CTempEnvVarD2Ev ; CTempEnvVar::~CTempEnvVar()
		mov	eax, [ebp-0Ch]
		mov	esi, eax
		jmp	short loc_9DF7F
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<char, int>::Grow(int)
_ZN10CUtlMemoryIciE4GrowEi proc	near	; CODE XREF: CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)+4Bp
					; CUtlVector<char,CUtlMemory<char,int>>::EnsureCount(int)+86p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_9E02E
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_9E038
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_9E017
		lea	esi, [esi+0]

loc_9E008:				; CODE XREF: CUtlMemory<char,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_9E008

loc_9E017:				; CODE XREF: CUtlMemory<char,int>::Grow(int)+30j
					; CUtlMemory<char,int>::Grow(int)+74j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jz	short loc_9E05F

loc_9E020:				; CODE XREF: CUtlMemory<char,int>::Grow(int)+8Dj
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_9E02E:				; CODE XREF: CUtlMemory<char,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_9E038:				; CODE XREF: CUtlMemory<char,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 20h
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_9E017
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_9E050:				; CODE XREF: CUtlMemory<char,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_9E050
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jnz	short loc_9E020

loc_9E05F:				; CODE XREF: CUtlMemory<char,int>::Grow(int)+4Ej
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIciE4GrowEi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<char, CUtlMemory<char, int>>::SetCount(int)
_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi proc near
					; CODE XREF: ReadKeyValuesFile(char  const*)+76p
					; FileSystem_ClearSteamEnvVars(void)+7Ep ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_9E09F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_9E0B0
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_9E09F:				; CODE XREF: CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)+1Ej
					; CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_9E0B0:				; CODE XREF: CUtlVector<char,CUtlMemory<char,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIciE4GrowEi ; CUtlMemory<char,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_9E09F
		test	cl, cl
		jz	short loc_9E09F
		add	esi, eax
		mov	[esp+8], edx	; n
		mov	[esp], esi	; dest
		mov	[esp+4], eax	; src
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIc10CUtlMemoryIciEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl GenerateLumpFileName(char	*src, char *s, size_t maxlen, int)
_Z20GenerateLumpFileNamePKcPcii	proc near
					; CODE XREF: _ZN14CMapLoadHelper4InitEP7model_tPKc_part_28+263p
					; CMapLoadHelper::CMapLoadHelper(int)+A9p

dest		= byte ptr -10Ch
src		= dword	ptr  8
s		= dword	ptr  0Ch
maxlen		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	ebx, [ebp+dest]
		sub	esp, 134h
		mov	eax, [ebp+src]
		mov	[esp+4], ebx	; dest
		mov	dword ptr [esp+8], 104h	; int
		mov	[esp], eax	; src
		call	_Z16V_StripExtensionPKcPci ; V_StripExtension(char  const*,char	*,int)
		mov	eax, [ebp+arg_C]
		mov	[esp+0Ch], ebx	; arg
		mov	dword ptr [esp+8], offset aS_l_D_lmp ; "%s_l_%d.lmp"
		mov	[esp+10h], eax
		mov	eax, [ebp+maxlen]
		mov	[esp+4], eax	; maxlen
		mov	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 134h
		pop	ebx
		pop	ebp
		retn
_Z20GenerateLumpFileNamePKcPcii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::~CRegistry()
_ZN9CRegistryD2Ev proc near		; DATA XREF: _GLOBAL__sub_I__Z16InstanceRegistryPKc+1Do
					; .rodata:`vtable for'CRegistryo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV9IRegistry+8)
		pop	ebp
		retn
_ZN9CRegistryD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::ReadInt(char  const*, int)
_ZN9CRegistry7ReadIntEPKci proc	near	; DATA XREF: .rodata:`vtable for'CRegistryo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CRegistry7ReadIntEPKci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::WriteInt(char  const*, int)
_ZN9CRegistry8WriteIntEPKci proc near	; DATA XREF: .rodata:`vtable for'CRegistryo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CRegistry8WriteIntEPKci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::ReadString(char  const*, char  const*)
_ZN9CRegistry10ReadStringEPKcS1_ proc near ; DATA XREF:	.rodata:`vtable	for'CRegistryo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CRegistry10ReadStringEPKcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::WriteString(char  const*, char  const*)
_ZN9CRegistry11WriteStringEPKcS1_ proc near ; DATA XREF: .rodata:`vtable for'CRegistryo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CRegistry11WriteStringEPKcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::DirectInit(char  const*)
_ZN9CRegistry10DirectInitEPKc proc near	; CODE XREF: InstanceRegistry(char  const*)+29p
					; DATA XREF: .rodata:`vtable for'CRegistryo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CRegistry10DirectInitEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::Shutdown(void)
_ZN9CRegistry8ShutdownEv proc near	; DATA XREF: .rodata:`vtable for'CRegistryo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+4], 0
		jz	short loc_9E1E0
		mov	byte ptr [eax+4], 0

loc_9E1E0:				; CODE XREF: CRegistry::Shutdown(void)+Aj
		pop	ebp
		retn
_ZN9CRegistry8ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::Init(char	const*)
_ZN9CRegistry4InitEPKc proc near	; DATA XREF: .rodata:`vtable for'CRegistryo

s		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 218h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebp+s]
		mov	[esp], esi	; s
		mov	dword ptr [esp+8], offset aSSettings ; "%s\\Settings"
		mov	[esp+0Ch], eax
		mov	dword ptr [esp+4], 200h	; maxlen
		call	snprintf
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [eax+30h]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CRegistry4InitEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::~CRegistry()
_ZN9CRegistryD0Ev proc near		; DATA XREF: .rodata:`vtable for'CRegistryo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV9IRegistry+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN9CRegistryD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CRegistry__WriteString(int, char *arg, int, int)
_ZN9CRegistry11WriteStringEPKcS1_S1_ proc near ; DATA XREF: .rodata:`vtable for'CRegistryo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[esp], edi	; s
		call	strlen
		mov	ebx, eax
		mov	eax, [ebp+arg_8]
		mov	[esp], eax	; s
		call	strlen
		add	ebx, eax
		mov	eax, [ebp+arg_8]
		lea	edx, [ebx+2]
		add	ebx, 20h
		and	ebx, 0FFFFFFF0h
		sub	esp, ebx
		lea	ebx, [esp+23h]
		mov	[esp+0Ch], edi	; arg
		and	ebx, 0FFFFFFF0h
		mov	[esp+4], edx	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+10h], eax
		mov	dword ptr [esp+8], offset aSS_2	; "%s\\%s"
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+arg_C]
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+8], edx
		call	dword ptr [eax+1Ch]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CRegistry11WriteStringEPKcS1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CRegistry__ReadString(int, char *arg, int, int)
_ZN9CRegistry10ReadStringEPKcS1_S1_ proc near ;	DATA XREF: .rodata:`vtable for'CRegistryo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[esp], edi	; s
		call	strlen
		mov	ebx, eax
		mov	eax, [ebp+arg_8]
		mov	[esp], eax	; s
		call	strlen
		add	ebx, eax
		mov	eax, [ebp+arg_8]
		lea	edx, [ebx+2]
		add	ebx, 20h
		and	ebx, 0FFFFFFF0h
		sub	esp, ebx
		lea	ebx, [esp+23h]
		mov	[esp+0Ch], edi	; arg
		and	ebx, 0FFFFFFF0h
		mov	[esp+4], edx	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+10h], eax
		mov	dword ptr [esp+8], offset aSS_2	; "%s\\%s"
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+arg_C]
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+8], edx
		call	dword ptr [eax+18h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CRegistry10ReadStringEPKcS1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CRegistry__WriteInt(int, char *arg, int, int)
_ZN9CRegistry8WriteIntEPKcS1_i proc near ; DATA	XREF: .rodata:`vtable for'CRegistryo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[esp], edi	; s
		call	strlen
		mov	ebx, eax
		mov	eax, [ebp+arg_8]
		mov	[esp], eax	; s
		call	strlen
		add	ebx, eax
		mov	eax, [ebp+arg_8]
		lea	edx, [ebx+2]
		add	ebx, 20h
		and	ebx, 0FFFFFFF0h
		sub	esp, ebx
		lea	ebx, [esp+23h]
		mov	[esp+0Ch], edi	; arg
		and	ebx, 0FFFFFFF0h
		mov	[esp+4], edx	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+10h], eax
		mov	dword ptr [esp+8], offset aSS_2	; "%s\\%s"
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+arg_C]
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+8], edx
		call	dword ptr [eax+14h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CRegistry8WriteIntEPKcS1_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CRegistry__ReadInt(int, char *arg, int, int)
_ZN9CRegistry7ReadIntEPKcS1_i proc near	; DATA XREF: .rodata:`vtable for'CRegistryo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[esp], edi	; s
		call	strlen
		mov	ebx, eax
		mov	eax, [ebp+arg_8]
		mov	[esp], eax	; s
		call	strlen
		add	ebx, eax
		mov	eax, [ebp+arg_8]
		lea	edx, [ebx+2]
		add	ebx, 20h
		and	ebx, 0FFFFFFF0h
		sub	esp, ebx
		lea	ebx, [esp+23h]
		mov	[esp+0Ch], edi	; arg
		and	ebx, 0FFFFFFF0h
		mov	[esp+4], edx	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+10h], eax
		mov	dword ptr [esp+8], offset aSS_2	; "%s\\%s"
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+arg_C]
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+8], edx
		call	dword ptr [eax+10h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CRegistry7ReadIntEPKcS1_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InstanceRegistry(char	 const*)
_Z16InstanceRegistryPKc	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	dword ptr [esp], 8
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	dword ptr [eax], (offset _ZTV9CRegistry+8)
		mov	byte ptr [eax+4], 0
		mov	eax, [ebp+arg_0]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN9CRegistry10DirectInitEPKc ;	CRegistry::DirectInit(char  const*)
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_Z16InstanceRegistryPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ReleaseInstancedRegistry(IRegistry *)
_Z24ReleaseInstancedRegistryP9IRegistry	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_9E4C8
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebx]
		mov	[ebp+arg_0], ebx
		mov	eax, [eax+4]
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 4

loc_9E4C8:				; CODE XREF: ReleaseInstancedRegistry(IRegistry	*)+Cj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z24ReleaseInstancedRegistryP9IRegistry	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRegistry::CRegistry(void)
_ZN9CRegistryC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV9CRegistry+8)
		mov	byte ptr [eax+4], 0
		pop	ebp
		retn
_ZN9CRegistryC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IRegistry::~IRegistry()
_ZN9IRegistryD2Ev proc near		; DATA XREF: .rodata:`vtable for'IRegistryo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV9IRegistry+8)
		pop	ebp
		retn
_ZN9IRegistryD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IRegistry::~IRegistry()
_ZN9IRegistryD0Ev proc near		; DATA XREF: .rodata:`vtable for'IRegistryo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV9IRegistry+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN9IRegistryD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEmphasisSample::SetSelected(bool)
_ZN15CEmphasisSample11SetSelectedEb proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+8], dl
		pop	ebp
		retn
_ZN15CEmphasisSample11SetSelectedEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::SetSelected(bool)
_ZN11CPhonemeTag11SetSelectedEb	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ah], dl
		pop	ebp
		retn
_ZN11CPhonemeTag11SetSelectedEb	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::GetSelected(void)const
_ZNK11CPhonemeTag11GetSelectedEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+0Ah]
		retn
_ZNK11CPhonemeTag11GetSelectedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::SetStartAndEndBytes(unsigned int, unsigned int)
_ZN11CPhonemeTag19SetStartAndEndBytesEjj proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	[eax+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[eax+10h], edx
		pop	ebp
		retn
_ZN11CPhonemeTag19SetStartAndEndBytesEjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::GetStartByte(void)const
_ZNK11CPhonemeTag12GetStartByteEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+0Ch]
		retn
_ZNK11CPhonemeTag12GetStartByteEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::GetEndByte(void)const
_ZNK11CPhonemeTag10GetEndByteEv	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+10h]
		retn
_ZNK11CPhonemeTag10GetEndByteEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::SetSelected(bool)
_ZN8CWordTag11SetSelectedEb proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+1Ch], dl
		pop	ebp
		retn
_ZN8CWordTag11SetSelectedEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::GetSelected(void)const
_ZNK8CWordTag11GetSelectedEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+1Ch]
		retn
_ZNK8CWordTag11GetSelectedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::SetStartAndEndBytes(unsigned int, unsigned int)
_ZN8CWordTag19SetStartAndEndBytesEjj proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	[eax+20h], edx
		mov	edx, [ebp+arg_8]
		mov	[eax+24h], edx
		pop	ebp
		retn
_ZN8CWordTag19SetStartAndEndBytesEjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::GetStartByte(void)const
_ZNK8CWordTag12GetStartByteEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+20h]
		retn
_ZNK8CWordTag12GetStartByteEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::GetEndByte(void)const
_ZNK8CWordTag10GetEndByteEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+24h]
		retn
_ZNK8CWordTag10GetEndByteEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::CWordTag(void)
_ZN8CWordTagC2Ev proc near		; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+EFp
					; CSentence::CreateEventWordDistribution(char  const*,float)+169p

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	[eax], edx
		mov	[eax+4], edx
		mov	byte ptr [eax+1Ch], 0
		pop	ebp
		retn
_ZN8CWordTagC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::IndexOfPhoneme(CPhonemeTag *)
_ZN8CWordTag14IndexOfPhonemeEP11CPhonemeTag proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, 0FFFFFFFFh
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebx+14h]
		test	edx, edx
		jle	short loc_9E679
		mov	ebx, [ebx+8]
		xor	eax, eax
		cmp	[ebx], ecx
		jnz	short loc_9E66D
		jmp	short loc_9E679
; ---------------------------------------------------------------------------
		align 8

loc_9E668:				; CODE XREF: CWordTag::IndexOfPhoneme(CPhonemeTag *)+32j
		cmp	[ebx+eax*4], ecx
		jz	short loc_9E679

loc_9E66D:				; CODE XREF: CWordTag::IndexOfPhoneme(CPhonemeTag *)+1Dj
		add	eax, 1
		cmp	eax, edx
		jnz	short loc_9E668
		mov	eax, 0FFFFFFFFh

loc_9E679:				; CODE XREF: CWordTag::IndexOfPhoneme(CPhonemeTag *)+14j
					; CWordTag::IndexOfPhoneme(CPhonemeTag *)+1Fj ...
		pop	ebx
		pop	ebp
		retn
_ZN8CWordTag14IndexOfPhonemeEP11CPhonemeTag endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CWordTag__SetWord(int, char *src)
_ZN8CWordTag7SetWordEPKc proc near	; CODE XREF: CWordTag::CWordTag(char  const*)+62p
					; CWordTag::CWordTag(CWordTag const&)+4Cp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		mov	[ebp+var_4], edi
		mov	eax, [esi+28h]
		test	eax, eax
		jz	short loc_9E6A4
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_9E6A4:				; CODE XREF: CWordTag::SetWord(char  const*)+1Aj
		test	ebx, ebx
		mov	dword ptr [esi+28h], 0
		jz	short loc_9E6DA
		cmp	byte ptr [ebx],	0
		jz	short loc_9E6DA
		mov	[esp], ebx	; s
		call	strlen
		lea	edi, [eax+1]
		mov	[esp], edi
		call	_Znaj		; operator new[](uint)
		mov	[esi+28h], eax
		mov	[esp+8], edi	; n
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_9E6DA:				; CODE XREF: CWordTag::SetWord(char  const*)+2Dj
					; CWordTag::SetWord(char  const*)+32j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN8CWordTag7SetWordEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::GetWord(void)const
_ZNK8CWordTag7GetWordEv	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, (offset asc_20E578+4)
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+28h]
		test	eax, eax
		cmovz	eax, edx
		retn
_ZNK8CWordTag7GetWordEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBasePhonemeTag::CBasePhonemeTag(void)
_ZN15CBasePhonemeTagC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	[eax+4], edx
		mov	word ptr [eax+8], 0
		pop	ebp
		retn
_ZN15CBasePhonemeTagC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBasePhonemeTag::CBasePhonemeTag(CBasePhonemeTag const&)
_ZN15CBasePhonemeTagC2ERKS_ proc near	; CODE XREF: CPhonemeTag::CPhonemeTag(CPhonemeTag const&)+19p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx]
		mov	[eax], ecx
		mov	ecx, [edx+4]
		mov	[eax+4], ecx
		mov	edx, [edx+8]
		mov	[eax+8], edx
		pop	ebp
		retn
_ZN15CBasePhonemeTagC2ERKS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::CPhonemeTag(void)
_ZN11CPhonemeTagC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	[eax+4], edx
		mov	word ptr [eax+8], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	byte ptr [eax+0Ah], 0
		pop	ebp
		retn
_ZN11CPhonemeTagC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::~CPhonemeTag()
_ZN11CPhonemeTagD2Ev proc near		; CODE XREF: CWordTag::~CWordTag()+34p
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+74Dp	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+14h]
		test	eax, eax
		jz	short loc_9E7A0
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZdaPv		; operator delete[](void *)
; ---------------------------------------------------------------------------
		align 10h

loc_9E7A0:				; CODE XREF: CPhonemeTag::~CPhonemeTag()+Bj
		pop	ebp
		retn
_ZN11CPhonemeTagD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CPhonemeTag__SetTag(int, char *src)
_ZN11CPhonemeTag6SetTagEPKc proc near	; CODE XREF: CPhonemeTag::CPhonemeTag(char  const*)+2Dj
					; CPhonemeTag::CPhonemeTag(CPhonemeTag const&)+54j ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		mov	[ebp+var_4], edi
		mov	eax, [esi+14h]
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		test	ebx, ebx
		mov	dword ptr [esi+14h], 0
		jz	short loc_9E806
		cmp	byte ptr [ebx],	0
		jz	short loc_9E806
		mov	[esp], ebx	; s
		call	strlen
		lea	edi, [eax+1]
		mov	[esp], edi
		call	_Znaj		; operator new[](uint)
		mov	[esi+14h], eax
		mov	[esp+8], edi	; n
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_9E806:				; CODE XREF: CPhonemeTag::SetTag(char  const*)+29j
					; CPhonemeTag::SetTag(char  const*)+2Ej
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CPhonemeTag6SetTagEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::CPhonemeTag(char	 const*)
_ZN11CPhonemeTagC2EPKc proc near

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	[eax+4], edx
		mov	word ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	byte ptr [eax+0Ah], 0
		mov	dword ptr [eax+14h], 0
		pop	ebp
		jmp	_ZN11CPhonemeTag6SetTagEPKc ; CPhonemeTag::SetTag(char	const*)
_ZN11CPhonemeTagC2EPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::CPhonemeTag(CPhonemeTag const&)
_ZN11CPhonemeTagC2ERKS_	proc near	; CODE XREF: CWordTag::CWordTag(CWordTag const&)+A1p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+src]
		mov	[esp], ebx	; int
		mov	[esp+4], esi	; src
		call	_ZN15CBasePhonemeTagC2ERKS_ ; CBasePhonemeTag::CBasePhonemeTag(CBasePhonemeTag const&)
		mov	eax, [esi+10h]
		mov	edx, [esi+0Ch]
		mov	[ebx+10h], eax
		mov	[ebx+0Ch], edx
		mov	edx, (offset asc_20E578+4)
		movzx	eax, byte ptr [esi+0Ah]
		mov	dword ptr [ebx+14h], 0
		mov	[ebx+0Ah], al
		mov	eax, [esi+14h]
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		test	eax, eax
		cmovz	eax, edx
		mov	[ebp+src], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN11CPhonemeTag6SetTagEPKc ; CPhonemeTag::SetTag(char	const*)
_ZN11CPhonemeTagC2ERKS_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::GetTag(void)const
_ZNK11CPhonemeTag6GetTagEv proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, (offset asc_20E578+4)
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+14h]
		test	eax, eax
		cmovz	eax, edx
		retn
_ZNK11CPhonemeTag6GetTagEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPhonemeTag::ComputeDataCheckSum(void)
_ZN11CPhonemeTag19ComputeDataCheckSumEv	proc near
					; CODE XREF: CWordTag::ComputeDataCheckSum(void)+54p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+var_28]
		mov	[ebp+var_4], edi
		mov	[esp], ebx
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		mov	edi, [esi+14h]
		mov	[esp], edi	; s
		call	strlen
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	[esp], ebx
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		movzx	eax, word ptr [esi+8]
		mov	[esp], ebx
		mov	dword ptr [esp+8], 4
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_24]
		mov	[esp+4], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	eax, [esi]
		mov	[ebp+var_20], eax
		mov	eax, [esi+4]
		mov	[esp], ebx
		mov	dword ptr [esp+8], 4
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		lea	eax, [ebp+var_1C]
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	dword ptr [esp+8], 4
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	[esp], ebx
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		mov	eax, [ebp+var_28]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CPhonemeTag19ComputeDataCheckSumEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::ComputeDataCheckSum(void)
_ZN8CWordTag19ComputeDataCheckSumEv proc near
					; CODE XREF: CSentence::ComputeDataCheckSum(void)+54p

var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_20]
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_0]
		mov	[esp], esi
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		mov	ebx, [edi+28h]
		test	ebx, ebx
		jz	short loc_9E9C6
		mov	[esp], ebx	; s
		call	strlen
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	[esp], esi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)

loc_9E9C6:				; CODE XREF: CWordTag::ComputeDataCheckSum(void)+1Cj
		mov	eax, [edi+14h]
		test	eax, eax
		mov	[ebp+var_2C], eax
		jle	short loc_9EA08
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_9E9D8:				; CODE XREF: CWordTag::ComputeDataCheckSum(void)+76j
		mov	eax, [edi+8]
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp], eax
		call	_ZN11CPhonemeTag19ComputeDataCheckSumEv	; CPhonemeTag::ComputeDataCheckSum(void)
		mov	dword ptr [esp+8], 4
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		mov	[esp], esi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		cmp	ebx, [ebp+var_2C]
		jnz	short loc_9E9D8

loc_9EA08:				; CODE XREF: CWordTag::ComputeDataCheckSum(void)+3Ej
		mov	[esp+4], edi
		add	edi, 4
		mov	[esp], esi
		mov	dword ptr [esp+8], 4
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 4
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	[esp], esi
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		mov	eax, [ebp+var_20]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN8CWordTag19ComputeDataCheckSumEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ColorForLanguage(int, unsigned char &, unsigned char &, unsigned char &)
_ZN9CSentence16ColorForLanguageEiRhS0_S0_ proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	edi, [ebp+arg_C]
		cmp	eax, 0Bh
		mov	byte ptr [edi],	0
		mov	byte ptr [ecx],	0
		mov	byte ptr [ebx],	0
		ja	short loc_9EA97
		lea	esi, [eax+eax*4]
		lea	eax, _ZL18g_CCLanguageLookup[eax+esi*2]	; g_CCLanguageLookup
		movzx	esi, byte ptr [eax+8]
		mov	edx, esi
		mov	[ebx], dl
		movzx	ebx, byte ptr [eax+9]
		mov	[ecx], bl
		movzx	eax, byte ptr [eax+0Ah]
		mov	[edi], al

loc_9EA97:				; CODE XREF: CSentence::ColorForLanguage(int,uchar &,uchar &,uchar &)+27j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CSentence16ColorForLanguageEiRhS0_S0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::NameForLanguage(int)
_ZN9CSentence15NameForLanguageEi proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, offset aUnknown_langua ; "unknown_language"
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		cmp	edx, 0Bh
		ja	short loc_9EACA
		lea	eax, [edx+edx*4]
		mov	eax, (_ZL18g_CCLanguageLookup+4)[edx+eax*2]

loc_9EACA:				; CODE XREF: CSentence::NameForLanguage(int)+Ej
		pop	ebp
		retn
_ZN9CSentence15NameForLanguageEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::LanguageForName(char  const*)
_ZN9CSentence15LanguageForNameEPKc proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		lea	esi, [esi+0]

loc_9EAE0:				; CODE XREF: CSentence::LanguageForName(char  const*)+30j
		lea	eax, [ebx+ebx*4]
		mov	[esp+4], esi	; s2
		mov	eax, (_ZL18g_CCLanguageLookup+4)[ebx+eax*2]
		mov	[esp], eax	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_9EB07
		add	ebx, 1
		cmp	ebx, 0Ch
		jnz	short loc_9EAE0
		mov	ebx, 0FFFFFFFFh

loc_9EB07:				; CODE XREF: CSentence::LanguageForName(char  const*)+28j
		add	esp, 10h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN9CSentence15LanguageForNameEPKc endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::CSentence(void)
_ZN9CSentenceC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+30h], 0
		mov	dword ptr [eax+34h], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	dword ptr [eax+40h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+44h], 0
		mov	byte ptr [eax+4Ah], 0
		mov	byte ptr [eax+49h], 0
		mov	byte ptr [eax+48h], 0
		mov	byte ptr [eax+4Bh], 0
		pop	ebp
		retn
_ZN9CSentenceC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ParseCloseCaption(CUtlBuffer &)
_ZN9CSentence17ParseCloseCaptionER10CUtlBuffer proc near
					; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+152p

var_2050	= dword	ptr -2050h
var_204C	= dword	ptr -204Ch
var_2039	= byte ptr -2039h
var_1039	= byte ptr -1039h
var_1038	= byte ptr -1038h
dest		= byte ptr -39h
var_19		= byte ptr -19h
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_1039]
		push	ebx
		lea	esi, [ebp+var_2039]
		sub	esp, 205Ch
		mov	[ebp+var_204C],	eax
		and	eax, 1
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_2050],	eax
		lea	esi, [esi+0]

loc_9EBE0:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+17Cj
					; CSentence::ParseCloseCaption(CUtlBuffer &)+194j
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], offset s2 ; "}"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jz	loc_9EE76
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], (offset aLoadfrombuffer+18h)	; s2
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_9EE76
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		jmp	loc_9ED1A
; ---------------------------------------------------------------------------
		align 8

loc_9EC58:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+23Aj
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_9EE30
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	edx, eax
		add	eax, 1
		sub	edx, [ebx+20h]
		movzx	edx, byte ptr [ecx+edx]
		mov	[ebx+0Ch], eax
		mov	[ebp+var_19], dl

loc_9EC87:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+25Bj
					; CSentence::ParseCloseCaption(CUtlBuffer &)+284j
		lea	eax, [ebp+var_1039]
		mov	[esp+8], edi	; n
		mov	[esp+4], eax	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer3GetEPvi	; CUtlBuffer::Get(void *,int)
		test	byte ptr [ebx+15h], 1
		mov	[ebp+edi+var_1039], 0
		jnz	loc_9EE10
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_9EE40
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	edx, eax
		add	eax, 1
		sub	edx, [ebx+20h]
		movzx	edx, byte ptr [ecx+edx]
		mov	[ebx+0Ch], eax
		mov	[ebp+var_19], dl

loc_9ECDE:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+27Bj
					; CSentence::ParseCloseCaption(CUtlBuffer &)+294j
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)

loc_9ED1A:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+9Cj
		mov	dword ptr [esp+4], offset s2 ; "}"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jz	loc_9EBE0
		mov	dword ptr [esp+4], offset aPhrase ; "PHRASE"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_9EBE0
		mov	eax, [ebp+var_2050]
		lea	edi, [ebp+var_1039]
		mov	edx, 1000h
		test	eax, eax
		jnz	loc_9EE60

loc_9ED63:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+2C1j
		test	edi, 2
		jnz	loc_9EE50

loc_9ED6F:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+2ABj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_9ED85
		mov	word ptr [edi],	0
		add	edi, 2

loc_9ED85:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+1CBj
		and	edx, 1
		jz	short loc_9ED8D
		mov	byte ptr [edi],	0

loc_9ED8D:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+1D8j
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		lea	eax, [ebp+dest]
		mov	dword ptr [esp+8], 20h ; n
		mov	[esp], eax	; dest
		mov	[esp+4], esi	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], esi	; dest
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+8], 0Ah ; base
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], esi	; nptr
		call	strtol
		test	byte ptr [ebx+15h], 1
		mov	edi, eax
		jz	loc_9EC58
		lea	eax, [ebp+var_19]
		mov	[ebp+var_19], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset a_C+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		jmp	loc_9EC87
; ---------------------------------------------------------------------------

loc_9EE10:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+F9j
		lea	eax, [ebp+var_19]
		mov	[ebp+var_19], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset a_C+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		jmp	loc_9ECDE
; ---------------------------------------------------------------------------

loc_9EE30:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+BAj
		mov	[ebp+var_19], 0
		jmp	loc_9EC87
; ---------------------------------------------------------------------------
		align 10h

loc_9EE40:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+111j
		mov	[ebp+var_19], 0
		jmp	loc_9ECDE
; ---------------------------------------------------------------------------
		align 10h

loc_9EE50:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+1B9j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_9ED6F
; ---------------------------------------------------------------------------

loc_9EE60:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+1ADj
		mov	[ebp+var_1039],	0
		lea	edi, [ebp+var_1038]
		mov	dx, 0FFFh
		jmp	loc_9ED63
; ---------------------------------------------------------------------------

loc_9EE76:				; CODE XREF: CSentence::ParseCloseCaption(CUtlBuffer &)+56j
					; CSentence::ParseCloseCaption(CUtlBuffer &)+82j
		add	esp, 205Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence17ParseCloseCaptionER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ParseOptions(CUtlBuffer &)
_ZN9CSentence12ParseOptionsER10CUtlBuffer proc near
					; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+EFp

src		= byte ptr -1218h
var_218		= byte ptr -218h
dest		= byte ptr -118h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_218]
		push	ebx
		lea	ebx, [ebp+src]
		sub	esp, 121Ch
		mov	edi, [ebp+arg_4]
		nop
		lea	esi, [esi+0]

loc_9EEB0:				; CODE XREF: CSentence::ParseOptions(CUtlBuffer	&)+ECj
					; CSentence::ParseOptions(CUtlBuffer &)+11Aj ...
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], offset s2 ; "}"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	loc_9EFE0
		mov	edx, ebx

loc_9EEDE:				; CODE XREF: CSentence::ParseOptions(CUtlBuffer	&)+62j
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_9EEDE
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		sbb	edx, 3
		cmp	edx, ebx
		jz	loc_9EFE0
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], ebx	; src
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		lea	eax, [ebp+dest]
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		mov	dword ptr [esp+8], 100h	; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], offset aVoice_duck ;	"voice_duck"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_9EFB0
		mov	dword ptr [esp+4], offset aChecksum ; "checksum"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_9EEB0
		lea	eax, [ebp+dest]
		mov	dword ptr [esp+8], 0Ah ; base
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], eax	; nptr
		call	strtol
		mov	edx, [ebp+arg_0]
		mov	byte ptr [edx+49h], 1
		mov	[edx+44h], eax
		jmp	loc_9EEB0
; ---------------------------------------------------------------------------
		align 10h

loc_9EFB0:				; CODE XREF: CSentence::ParseOptions(CUtlBuffer	&)+D8j
		lea	edx, [ebp+dest]
		mov	dword ptr [esp+8], 0Ah ; base
		mov	[esp], edx	; nptr
		mov	dword ptr [esp+4], 0 ; endptr
		call	strtol
		mov	edx, [ebp+arg_0]
		test	eax, eax
		setnz	byte ptr [edx+4Ah]
		jmp	loc_9EEB0
; ---------------------------------------------------------------------------
		align 10h

loc_9EFE0:				; CODE XREF: CSentence::ParseOptions(CUtlBuffer	&)+46j
					; CSentence::ParseOptions(CUtlBuffer &)+7Ej
		add	esp, 121Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence12ParseOptionsER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::CacheSaveToBuffer(CUtlBuffer &, int)
_ZN9CSentence17CacheSaveToBufferER10CUtlBufferi	proc near

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
arg		= byte ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		cmp	ecx, 4
		mov	dword ptr [ebp+arg], ecx
		mov	[ebp+var_30], edx
		movzx	edi, word ptr [edx+24h]
		movzx	eax, byte ptr [ebx+15h]
		jz	loc_9F678
		test	al, 1
		jnz	loc_9F3C0

loc_9F021:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+3D5j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+3E7j ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jnz	loc_9F430
		test	byte ptr [ebx+15h], 1
		jz	loc_9F370

loc_9F043:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+45Fj
		movsx	eax, di
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp+8], eax	; arg
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)

loc_9F05A:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+396j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+3C3j
		movzx	edi, di
		xor	esi, esi
		test	edi, edi
		mov	dword ptr [ebp+arg], edi
		jnz	loc_9F172
		jmp	loc_9F1E9
; ---------------------------------------------------------------------------
		align 10h

loc_9F070:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+195j
		mov	word ptr [ebp+var_20], dx
		mov	[ebp+var_34], edx
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		mov	edx, [ebp+var_34]
		test	al, al
		jz	short loc_9F0B5
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9F4E0
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		mov	[ecx+eax], dx
		mov	eax, [ebx+10h]

loc_9F0A7:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+4F7j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+515j
		add	eax, 2
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_9F0B5:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+9Cj
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi]
		jnz	loc_9F1AC

loc_9F0C1:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+1B6j
		fst	[ebp+var_20]
		fstp	[ebp+var_48]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		fld	[ebp+var_48]
		jz	short loc_9F110
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9F460
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		fstp	dword ptr [edx+eax]
		mov	eax, [ebx+10h]

loc_9F0F6:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+479j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+4A3j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_9F112
; ---------------------------------------------------------------------------
		align 10h

loc_9F110:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+ECj
		fstp	st

loc_9F112:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+114j
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi+4]
		jnz	loc_9F1CD

loc_9F11F:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+1D7j
		fst	[ebp+var_1C]
		fstp	[ebp+var_48]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		fld	[ebp+var_48]
		jz	short loc_9F168
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9F4A0
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		fstp	dword ptr [edx+eax]
		mov	eax, [ebx+10h]

loc_9F154:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+4B9j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+4E3j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_9F16A
; ---------------------------------------------------------------------------
		align 8

loc_9F168:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+14Aj
		fstp	st

loc_9F16A:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+172j
		add	esi, 1
		cmp	esi, dword ptr [ebp+arg]
		jge	short loc_9F1E9

loc_9F172:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+74j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+1F7j
		mov	ecx, [ebp+var_30]
		test	byte ptr [ebx+15h], 1
		mov	eax, [ecx+18h]
		mov	edi, [eax+esi*4]
		movzx	edx, word ptr [edi+8]
		mov	eax, edx
		jz	loc_9F070
		cwde
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp+8], eax	; arg
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi]
		jz	loc_9F0C1

loc_9F1AC:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+CBj
		fstp	qword ptr [esp+8] ; arg
		mov	dword ptr [esp+4], (offset aMin_F+6) ; format
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi+4]
		jz	loc_9F11F

loc_9F1CD:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+129j
		add	esi, 1
		mov	dword ptr [esp+4], (offset aMin_F+6) ; format
		fstp	qword ptr [esp+8] ; arg
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		cmp	esi, dword ptr [ebp+arg]
		jl	short loc_9F172

loc_9F1E9:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+7Aj
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+180j
		mov	edx, [ebp+var_30]
		test	byte ptr [ebx+15h], 1
		mov	edx, [edx+3Ch]
		mov	dword ptr [ebp+arg], edx
		mov	eax, edx
		jnz	loc_9F630
		movzx	eax, word ptr [ebp+arg]
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		mov	word ptr [ebp+var_1C], ax
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9F245
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FD10
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		movzx	ecx, word ptr [ebp+arg]
		mov	[edx+eax], cx
		mov	eax, [ebx+10h]

loc_9F237:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+D27j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+D45j
		add	eax, 2
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_9F245:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+228j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+655j
		mov	edx, dword ptr [ebp+arg]
		xor	esi, esi
		xor	edi, edi
		test	edx, edx
		jg	loc_9F33A
		jmp	loc_9F536
; ---------------------------------------------------------------------------
		align 10h

loc_9F260:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+358j
		fst	[ebp+var_20]
		mov	[ebp+var_34], edx
		fstp	[ebp+var_48]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		mov	edx, [ebp+var_34]
		test	al, al
		fld	[ebp+var_48]
		jz	short loc_9F2B8
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9F5F0
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		fstp	dword ptr [ecx+eax]
		mov	eax, [ebx+10h]

loc_9F29B:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+609j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+633j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[ebp+var_34], edx
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		mov	edx, [ebp+var_34]
		jmp	short loc_9F2C0
; ---------------------------------------------------------------------------
		align 8

loc_9F2B8:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+291j
		fstp	st
		lea	esi, [esi+0]

loc_9F2C0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+2BFj
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+378j
		fld	ds:flt_1ED97C
		mov	eax, 0
		fmul	dword ptr [edx+4]
		fstp	[ebp+var_4C]
		cvttss2si edx, [ebp+var_4C]
		test	dx, dx
		cmovs	edx, eax
		test	byte ptr [ebx+15h], 1
		jnz	loc_9F510
		mov	word ptr [ebp+var_20], dx
		mov	[ebp+var_34], edx
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		mov	edx, [ebp+var_34]
		test	al, al
		jz	short loc_9F32B
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9F5C0
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		mov	[ecx+eax], dx
		mov	eax, [ebx+10h]

loc_9F31D:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+5D7j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+5F5j
		add	eax, 2
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_9F32B:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+312j
		add	edi, 1
		add	esi, 0Ch
		cmp	edi, dword ptr [ebp+arg]
		jz	loc_9F536

loc_9F33A:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+25Ej
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+540j
		mov	ecx, [ebp+var_30]
		mov	edx, esi
		add	edx, [ecx+30h]
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edx]
		jz	loc_9F260
		mov	[ebp+var_34], edx
		fstp	qword ptr [esp+8] ; arg
		mov	dword ptr [esp+4], (offset aMin_F+6) ; format
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	edx, [ebp+var_34]
		jmp	loc_9F2C0
; ---------------------------------------------------------------------------
		align 10h

loc_9F370:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+4Dj
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+465j
		mov	word ptr [ebp+var_1C], di
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	loc_9F05A
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FD40
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		mov	[edx+eax], di
		mov	eax, [ebx+10h]

loc_9F3A5:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+D57j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+D75j
		add	eax, 2
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	loc_9F05A
; ---------------------------------------------------------------------------
		align 10h

loc_9F3C0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+2Bj
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	loc_9F021
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebx+20h]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	loc_9F021
		xor	esi, esi
		test	al, 10h
		jnz	short loc_9F3F0
		mov	esi, [ebx+18h]
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_9F3F0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+3F1j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+41Bj ...
		sub	esi, 1
		js	loc_9F021
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9F3F0
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 9
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_9F3F0
; ---------------------------------------------------------------------------
		align 10h

loc_9F430:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+43j
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		movzx	ecx, [ebp+arg]
		sub	eax, [ebx+20h]
		mov	[edx+eax], cl
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		test	byte ptr [ebx+15h], 1
		jnz	loc_9F043
		jmp	loc_9F370
; ---------------------------------------------------------------------------
		align 10h

loc_9F460:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+F5j
		fstp	st
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F0F6
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9F0F6
; ---------------------------------------------------------------------------
		align 10h

loc_9F4A0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+153j
		fstp	st
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F154
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9F154
; ---------------------------------------------------------------------------
		align 10h

loc_9F4E0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A5j
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F0A7
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, word ptr [ebp+var_1C]
		mov	[edx], ax
		mov	eax, [ebx+10h]
		jmp	loc_9F0A7
; ---------------------------------------------------------------------------
		align 10h

loc_9F510:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+2F0j
		movsx	edx, dx
		add	edi, 1
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp+8], edx	; arg
		add	esi, 0Ch
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		cmp	edi, dword ptr [ebp+arg]
		jnz	loc_9F33A

loc_9F536:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+264j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+344j
		movzx	eax, byte ptr [ebx+15h]
		mov	edx, [ebp+var_30]
		test	al, 1
		movzx	edi, byte ptr [edx+4Ah]
		jz	short loc_9F5A0
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	short loc_9F5A0
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebx+20h]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	short loc_9F5A0
		xor	esi, esi
		test	al, 10h
		jnz	short loc_9F568
		mov	esi, [ebx+18h]
		nop
		lea	esi, [esi+0]

loc_9F568:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+56Ej
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+58Fj
		sub	esi, 1
		js	short loc_9F5A0

loc_9F56D:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+5ACj
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9F568
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 9
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		sub	esi, 1
		jns	short loc_9F56D
		db	66h
		nop

loc_9F5A0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+553j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+55Aj ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jnz	loc_9F650

loc_9F5B8:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+BE4j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_9F5C0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+31Bj
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F31D
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, word ptr [ebp+var_1C]
		mov	[edx], ax
		mov	eax, [ebx+10h]
		jmp	loc_9F31D
; ---------------------------------------------------------------------------
		align 10h

loc_9F5F0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+29Aj
		fstp	st
		mov	ecx, eax
		sub	ecx, [ebx+20h]
		add	ecx, [ebx]
		jz	loc_9F29B
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9F29B
; ---------------------------------------------------------------------------
		align 10h

loc_9F630:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+208j
		cwde
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp+8], eax	; arg
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		jmp	loc_9F245
; ---------------------------------------------------------------------------
		align 10h

loc_9F650:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+5C2j
		mov	eax, [ebx+10h]
		mov	ecx, edi
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		test	cl, cl
		setnz	byte ptr [edx+eax]
		add	dword ptr [ebx+10h], 1

loc_9F664:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+C08j
		mov	[ebp+arg_0], ebx
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
; ---------------------------------------------------------------------------
		align 8

loc_9F678:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+23j
		test	al, 1
		jz	short loc_9F6E0
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	short loc_9F6E0
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebx+20h]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	short loc_9F6E0
		xor	esi, esi
		test	al, 10h
		jnz	short loc_9F6A0
		mov	esi, [ebx+18h]
		lea	esi, [esi+0]

loc_9F6A0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+6A5j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+6C7j
		sub	esi, 1
		js	short loc_9F6E0

loc_9F6A5:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+6E4j
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9F6A0
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 9
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		sub	esi, 1
		jns	short loc_9F6A5
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_9F6E0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+68Aj
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+691j ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jnz	loc_9FC80
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	short loc_9F760

loc_9F700:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+CB4j
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	short loc_9F760
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebx+20h]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	short loc_9F760
		xor	esi, esi
		test	al, 10h
		jnz	short loc_9F720
		mov	esi, [ebx+18h]
		db	66h
		nop

loc_9F720:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+729j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+747j
		sub	esi, 1
		js	short loc_9F760

loc_9F725:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+764j
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9F720
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 9
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		sub	esi, 1
		jns	short loc_9F725
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_9F760:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+70Ej
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+715j ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jnz	loc_9FC50
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	short loc_9F7E0

loc_9F780:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+C84j
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	short loc_9F7E0
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebx+20h]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	short loc_9F7E0
		xor	esi, esi
		test	al, 10h
		jnz	short loc_9F7A0
		mov	esi, [ebx+18h]
		db	66h
		nop

loc_9F7A0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+7A9j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+7C7j
		sub	esi, 1
		js	short loc_9F7E0

loc_9F7A5:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+7E4j
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9F7A0
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 9
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		sub	esi, 1
		jns	short loc_9F7A5
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_9F7E0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+78Ej
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+795j ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jnz	loc_9FCE0
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	short loc_9F860

loc_9F800:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+D14j
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	short loc_9F860
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebx+20h]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	short loc_9F860
		xor	esi, esi
		test	al, 10h
		jnz	short loc_9F820
		mov	esi, [ebx+18h]
		db	66h
		nop

loc_9F820:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+829j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+847j
		sub	esi, 1
		js	short loc_9F860

loc_9F825:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+864j
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9F820
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 9
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		sub	esi, 1
		jns	short loc_9F825
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_9F860:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+80Ej
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+815j ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jnz	loc_9FCB0
		test	byte ptr [ebx+15h], 1
		movzx	edi, di
		mov	dword ptr [ebp+arg], edi
		jz	loc_9FC00

loc_9F888:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+CE2j
		mov	edx, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp], ebx	; int
		mov	[esp+8], edx	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)

loc_9F89F:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+C25j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+C54j
		mov	esi, dword ptr [ebp+arg]
		test	esi, esi
		jz	loc_9FA26
		xor	esi, esi
		jmp	loc_9F9B2
; ---------------------------------------------------------------------------
		align 8

loc_9F8B8:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+9D3j
		mov	[ebp+var_1C], edx
		mov	[ebp+var_34], edx
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		mov	edx, [ebp+var_34]
		test	al, al
		jz	short loc_9F8FB
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FDF0
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		mov	[ecx+eax], edx
		mov	eax, [ebx+10h]

loc_9F8ED:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+E07j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+E31j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_9F8FB:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+8E3j
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi]
		jnz	loc_9F9E9

loc_9F907:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+9F3j
		fst	[ebp+var_20]
		fstp	[ebp+var_48]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		fld	[ebp+var_48]
		jz	short loc_9F950
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FDB0
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		fstp	dword ptr [edx+eax]
		mov	eax, [ebx+10h]

loc_9F93C:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+DC9j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+DF3j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_9F952
; ---------------------------------------------------------------------------
		align 10h

loc_9F950:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+932j
		fstp	st

loc_9F952:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+95Aj
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi+4]
		jnz	loc_9FA0A

loc_9F95F:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A14j
		fst	[ebp+var_1C]
		fstp	[ebp+var_48]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		fld	[ebp+var_48]
		jz	short loc_9F9A8
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FD70
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		fstp	dword ptr [edx+eax]
		mov	eax, [ebx+10h]

loc_9F994:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+D89j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+DB3j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_9F9AA
; ---------------------------------------------------------------------------
		align 8

loc_9F9A8:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+98Aj
		fstp	st

loc_9F9AA:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+9B2j
		add	esi, 1
		cmp	dword ptr [ebp+arg], esi
		jle	short loc_9FA26

loc_9F9B2:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+8BCj
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A34j
		mov	edx, [ebp+var_30]
		test	byte ptr [ebx+15h], 1
		mov	eax, [edx+18h]
		mov	edi, [eax+esi*4]
		movzx	edx, word ptr [edi+8]
		jz	loc_9F8B8
		mov	[esp+8], edx	; arg
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi]
		jz	loc_9F907

loc_9F9E9:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+911j
		fstp	qword ptr [esp+8] ; arg
		mov	dword ptr [esp+4], (offset aMin_F+6) ; format
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edi+4]
		jz	loc_9F95F

loc_9FA0A:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+969j
		add	esi, 1
		mov	dword ptr [esp+4], (offset aMin_F+6) ; format
		fstp	qword ptr [esp+8] ; arg
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		cmp	dword ptr [ebp+arg], esi
		jg	short loc_9F9B2

loc_9FA26:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+8B4j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+9C0j
		mov	edx, [ebp+var_30]
		test	byte ptr [ebx+15h], 1
		mov	edx, [edx+3Ch]
		mov	dword ptr [ebp+arg], edx
		jnz	loc_9FEB0
		mov	[ebp+var_20], edx
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_9FA79
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FF1F
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		mov	ecx, dword ptr [ebp+arg]
		mov	[edx+eax], ecx
		mov	eax, [ebx+10h]

loc_9FA6B:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+F36j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+F60j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_9FA79:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A5Ej
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+ED7j
		mov	ecx, dword ptr [ebp+arg]
		xor	esi, esi
		xor	edi, edi
		test	ecx, ecx
		jg	loc_9FB4D
		jmp	loc_9FBA7
; ---------------------------------------------------------------------------
		align 10h

loc_9FA90:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+B6Bj
		fst	[ebp+var_1C]
		mov	[ebp+var_34], edx
		fstp	[ebp+var_48]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		mov	edx, [ebp+var_34]
		test	al, al
		fld	[ebp+var_48]
		jz	short loc_9FAE8
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FE70
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		fstp	dword ptr [ecx+eax]
		mov	eax, [ebx+10h]

loc_9FACB:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+E89j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+EB3j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[ebp+var_34], edx
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		mov	edx, [ebp+var_34]
		jmp	short loc_9FAEA
; ---------------------------------------------------------------------------
		align 8

loc_9FAE8:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+AC1j
		fstp	st

loc_9FAEA:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+AEFj
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edx+4]
		jnz	loc_9FB88

loc_9FAF7:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+B92j
		fst	[ebp+var_20]
		fstp	[ebp+var_48]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		fld	[ebp+var_48]
		jz	short loc_9FB40
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FE30
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		fstp	dword ptr [edx+eax]
		mov	eax, [ebx+10h]

loc_9FB2C:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+E49j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+E73j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_9FB42
; ---------------------------------------------------------------------------
		align 10h

loc_9FB40:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+B22j
		fstp	st

loc_9FB42:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+B4Aj
		add	edi, 1
		add	esi, 0Ch
		cmp	edi, dword ptr [ebp+arg]
		jz	short loc_9FBA7

loc_9FB4D:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A92j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+BB5j
		mov	ecx, [ebp+var_30]
		mov	edx, esi
		add	edx, [ecx+30h]
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edx]
		jz	loc_9FA90
		fstp	qword ptr [esp+8] ; arg
		mov	[ebp+var_34], edx
		mov	dword ptr [esp+4], (offset aMin_F+6) ; format
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	edx, [ebp+var_34]
		test	byte ptr [ebx+15h], 1
		fld	dword ptr [edx+4]
		jz	loc_9FAF7

loc_9FB88:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+B01j
		add	edi, 1
		mov	dword ptr [esp+4], (offset aMin_F+6) ; format
		add	esi, 0Ch
		fstp	qword ptr [esp+8] ; arg
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		cmp	edi, dword ptr [ebp+arg]
		jnz	short loc_9FB4D

loc_9FBA7:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A98j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+B5Bj
		mov	edx, [ebp+var_30]
		xor	ecx, ecx
		cmp	byte ptr [edx+4Ah], 0
		setnz	cl
		test	byte ptr [ebx+15h], 1
		mov	esi, ecx
		jnz	loc_9FED0
		mov	[ebp+var_1C], esi
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	loc_9F5B8
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FEE9
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		mov	[edx+eax], esi
		mov	eax, [ebx+10h]

loc_9FBF2:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+F00j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+F2Aj
		add	eax, 4
		mov	[ebx+10h], eax
		jmp	loc_9F664
; ---------------------------------------------------------------------------
		align 10h

loc_9FC00:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+892j
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+CE8j
		mov	[ebp+var_20], edi
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	loc_9F89F
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jnz	loc_9FF55
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		mov	ecx, dword ptr [ebp+arg]
		mov	[edx+eax], ecx
		mov	eax, [ebx+10h]

loc_9FC36:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+F6Cj
					; CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+F96j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	loc_9F89F
; ---------------------------------------------------------------------------
		align 10h

loc_9FC50:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+782j
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 0
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	loc_9F7E0
		jmp	loc_9F780
; ---------------------------------------------------------------------------
		align 10h

loc_9FC80:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+702j
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 4
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	loc_9F760
		jmp	loc_9F700
; ---------------------------------------------------------------------------
		align 10h

loc_9FCB0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+882j
		mov	eax, [ebx+10h]
		movzx	edi, di
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 0
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		test	byte ptr [ebx+15h], 1
		mov	dword ptr [ebp+arg], edi
		jnz	loc_9F888
		jmp	loc_9FC00
; ---------------------------------------------------------------------------
		align 10h

loc_9FCE0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+802j
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	byte ptr [edx+eax], 0
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	loc_9F860
		jmp	loc_9F800
; ---------------------------------------------------------------------------
		align 10h

loc_9FD10:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+231j
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F237
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, word ptr [ebp+var_20]
		mov	[edx], ax
		mov	eax, [ebx+10h]
		jmp	loc_9F237
; ---------------------------------------------------------------------------
		align 10h

loc_9FD40:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+3A3j
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F3A5
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, word ptr [ebp+var_20]
		mov	[edx], ax
		mov	eax, [ebx+10h]
		jmp	loc_9F3A5
; ---------------------------------------------------------------------------
		align 10h

loc_9FD70:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+993j
		fstp	st
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F994
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9F994
; ---------------------------------------------------------------------------
		align 10h

loc_9FDB0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+93Bj
		fstp	st
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F93C
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9F93C
; ---------------------------------------------------------------------------
		align 10h

loc_9FDF0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+8ECj
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9F8ED
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9F8ED
; ---------------------------------------------------------------------------
		align 10h

loc_9FE30:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+B2Bj
		fstp	st
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9FB2C
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9FB2C
; ---------------------------------------------------------------------------
		align 10h

loc_9FE70:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+ACAj
		fstp	st
		mov	ecx, eax
		sub	ecx, [ebx+20h]
		add	ecx, [ebx]
		jz	loc_9FACB
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9FACB
; ---------------------------------------------------------------------------
		align 10h

loc_9FEB0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A43j
		mov	edx, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp], ebx	; int
		mov	[esp+8], edx	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		jmp	loc_9FA79
; ---------------------------------------------------------------------------
		align 10h

loc_9FED0:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+BC9j
		mov	[ebp+arg_8], esi
		mov	[ebp+arg_0], ebx
		mov	[ebp+arg_4], (offset aD_1+1)
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
; ---------------------------------------------------------------------------

loc_9FEE9:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+BF1j
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9FBF2
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9FBF2
; ---------------------------------------------------------------------------

loc_9FF1F:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+A67j
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9FA6B
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9FA6B
; ---------------------------------------------------------------------------

loc_9FF55:				; CODE XREF: CSentence::CacheSaveToBuffer(CUtlBuffer &,int)+C32j
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	loc_9FC36
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]
		jmp	loc_9FC36
_ZN9CSentence17CacheSaveToBufferER10CUtlBufferi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetRuntimePhonemeCount(void)const
_ZNK9CSentence22GetRuntimePhonemeCountEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+24h]
		retn
_ZNK9CSentence22GetRuntimePhonemeCountEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetRuntimePhoneme(int)const
_ZNK9CSentence17GetRuntimePhonemeEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		pop	ebp
		mov	eax, [eax+18h]
		mov	eax, [eax+edx*4]
		retn
_ZNK9CSentence17GetRuntimePhonemeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ClearRuntimePhonemes(void)
_ZN9CSentence20ClearRuntimePhonemesEv proc near	; CODE XREF: CSentence::Reset(void)+61j
					; CSentence::ResetToBase(void)+5Fj

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+24h]
		test	eax, eax
		jle	short loc_A0023
		lea	esi, [esi+0]

loc_9FFD8:				; CODE XREF: CSentence::ClearRuntimePhonemes(void)+53j
		mov	eax, [ebx+18h]
		mov	eax, [eax]
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [ebx+24h]
		sub	eax, 1
		test	eax, eax
		jle	short loc_A0020
		mov	edx, [ebx+18h]
		shl	eax, 2
		mov	[esp+8], eax	; n
		lea	eax, [edx+4]
		mov	[esp], edx	; dest
		mov	[esp+4], eax	; src
		call	memmove
		mov	eax, [ebx+24h]
		sub	eax, 1
		test	eax, eax
		mov	[ebx+24h], eax
		jg	short loc_9FFD8
		jmp	short loc_A0023
; ---------------------------------------------------------------------------
		align 10h

loc_A0020:				; CODE XREF: CSentence::ClearRuntimePhonemes(void)+2Dj
		mov	[ebx+24h], eax

loc_A0023:				; CODE XREF: CSentence::ClearRuntimePhonemes(void)+Fj
					; CSentence::ClearRuntimePhonemes(void)+55j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN9CSentence20ClearRuntimePhonemesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::SaveToBuffer(CUtlBuffer &)
_ZN9CSentence12SaveToBufferER10CUtlBuffer proc near

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_4]
		mov	dword ptr [esp+4], offset aVersion1_0 ;	"VERSION 1.0\n"
		mov	eax, [ebp+arg_0]
		mov	[esp], edi	; int
		mov	[ebp+var_20], eax
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset aPlaintext ; "PLAINTEXT\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset asc_1ED8D1 ; "{\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	edx, [ebp+var_20]
		mov	eax, [edx]
		mov	edx, (offset asc_20E578+4)
		mov	dword ptr [esp+4], offset off_20DC96 ; format
		mov	[esp], edi	; int
		test	eax, eax
		cmovz	eax, edx
		mov	[esp+8], eax	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset asc_1ED8D4 ; "}\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset aWords ; "WORDS\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset asc_1ED8D1 ; "{\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	ecx, [ebp+var_20]
		mov	eax, [ecx+10h]
		test	eax, eax
		jle	loc_A019F
		mov	[ebp+var_1C], 0
		lea	esi, [esi+0]

loc_A00E0:				; CODE XREF: CSentence::SaveToBuffer(CUtlBuffer	&)+169j
		mov	edx, [ebp+var_20]
		mov	ecx, [ebp+var_1C]
		mov	eax, [edx+4]
		mov	edx, (offset asc_20E578+4)
		mov	esi, [eax+ecx*4]
		mov	eax, [esi+28h]
		fld	dword ptr [esi]
		fld	dword ptr [esi+4]
		mov	dword ptr [esp+4], offset aWordS_3f_3f ; "WORD %s %.3f %.3f\n"
		fstp	qword ptr [esp+14h]
		test	eax, eax
		cmovz	eax, edx
		mov	[esp], edi	; int
		fstp	qword ptr [esp+0Ch]
		mov	[esp+8], eax	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset asc_1ED8D1 ; "{\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_A017C
		xor	ebx, ebx
		nop
		lea	esi, [esi+0]

loc_A0138:				; CODE XREF: CSentence::SaveToBuffer(CUtlBuffer	&)+14Aj
		mov	eax, [esi+8]
		mov	ecx, (offset asc_20E578+4)
		mov	eax, [eax+ebx*4]
		mov	edx, [eax+14h]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fstp	qword ptr [esp+18h]
		test	edx, edx
		cmovz	edx, ecx
		add	ebx, 1
		fstp	qword ptr [esp+10h]
		mov	[esp+0Ch], edx
		movzx	eax, word ptr [eax+8]
		mov	dword ptr [esp+4], offset aIS_3f_3f1 ; "%i %s %.3f %.3f	1\n"
		mov	[esp], edi	; int
		mov	[esp+8], eax	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		cmp	[esi+14h], ebx
		jg	short loc_A0138

loc_A017C:				; CODE XREF: CSentence::SaveToBuffer(CUtlBuffer	&)+FFj
		mov	dword ptr [esp+4], offset asc_1ED8D4 ; "}\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	eax, [ebp+var_20]
		add	[ebp+var_1C], 1
		mov	edx, [ebp+var_1C]
		cmp	[eax+10h], edx
		jg	loc_A00E0

loc_A019F:				; CODE XREF: CSentence::SaveToBuffer(CUtlBuffer	&)+9Dj
		mov	dword ptr [esp+4], offset asc_1ED8D4 ; "}\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset aEmphasis ; "EMPHASIS\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset asc_1ED8D1 ; "{\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	ecx, [ebp+var_20]
		mov	eax, [ecx+3Ch]
		test	eax, eax
		jle	short loc_A021D
		mov	[ebp+var_1C], edi
		xor	esi, esi
		xor	ebx, ebx
		mov	edi, eax
		lea	esi, [esi+0]

loc_A01E8:				; CODE XREF: CSentence::SaveToBuffer(CUtlBuffer	&)+1E8j
		mov	edx, [ebp+var_20]
		mov	eax, esi
		add	ebx, 1
		add	esi, 0Ch
		add	eax, [edx+30h]
		fld	dword ptr [eax+4]
		fstp	qword ptr [esp+10h]
		fld	dword ptr [eax]
		mov	dword ptr [esp+4], offset aFF ;	"%f %f\n"
		fstp	qword ptr [esp+8] ; arg
		mov	eax, [ebp+var_1C]
		mov	[esp], eax	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		cmp	ebx, edi
		jnz	short loc_A01E8
		mov	edi, [ebp+var_1C]

loc_A021D:				; CODE XREF: CSentence::SaveToBuffer(CUtlBuffer	&)+1A7j
		mov	dword ptr [esp+4], offset asc_1ED8D4 ; "}\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset aOptions ; "OPTIONS\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	dword ptr [esp+4], offset asc_1ED8D1 ; "{\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	edx, [ebp+var_20]
		xor	eax, eax
		cmp	byte ptr [edx+4Ah], 0
		mov	dword ptr [esp+4], offset aVoice_duckD ; "voice_duck %d\n"
		mov	[esp], edi	; int
		setnz	al
		mov	[esp+8], eax	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	ecx, [ebp+var_20]
		cmp	byte ptr [ecx+49h], 0
		jz	short loc_A028D
		mov	eax, [ecx+44h]
		mov	dword ptr [esp+4], offset aChecksumD ; "checksum %d\n"
		mov	[esp], edi	; int
		mov	[esp+8], eax	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)

loc_A028D:				; CODE XREF: CSentence::SaveToBuffer(CUtlBuffer	&)+244j
		mov	[ebp+arg_0], edi
		mov	[ebp+arg_4], offset asc_1ED8D4 ; "}\n"
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
_ZN9CSentence12SaveToBufferER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetWordBase(void)
_ZN9CSentence11GetWordBaseEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+2Ch]
		retn
_ZN9CSentence11GetWordBaseEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::MarkNewPhraseBase(void)
_ZN9CSentence17MarkNewPhraseBaseEv proc	near

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		test	ecx, ecx
		cmovns	edx, [eax+10h]
		mov	[eax+2Ch], edx
		pop	ebp
		retn
_ZN9CSentence17MarkNewPhraseBaseEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::CountPhonemes(void)
_ZN9CSentence13CountPhonemesEv proc near

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	esi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ebx, [edx+10h]
		test	ebx, ebx
		jle	short loc_A030D
		mov	esi, [edx+4]
		xor	edx, edx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_A0300:				; CODE XREF: CSentence::CountPhonemes(void)+2Bj
		mov	ecx, [esi+edx*4]
		add	edx, 1
		add	eax, [ecx+14h]
		cmp	edx, ebx
		jnz	short loc_A0300

loc_A030D:				; CODE XREF: CSentence::CountPhonemes(void)+Fj
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN9CSentence13CountPhonemesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSentence__EstimateBestWord(int, float)
_ZN9CSentence16EstimateBestWordEf proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	esi
		mov	edx, [ebp+arg_0]
		push	ebx
		fld	[ebp+arg_4]
		mov	ebx, [edx+10h]
		test	ebx, ebx
		jle	short loc_A036D
		mov	esi, [edx+4]
		xor	ecx, ecx
		xor	edx, edx
		jmp	short loc_A034F
; ---------------------------------------------------------------------------
		align 10h

loc_A0340:				; CODE XREF: CSentence::EstimateBestWord(float)+41j
		mov	ecx, eax

loc_A0342:				; CODE XREF: CSentence::EstimateBestWord(float)+45j
		test	ecx, ecx
		jnz	short loc_A0390
		fstp	st

loc_A0348:				; CODE XREF: CSentence::EstimateBestWord(float)+34j
					; CSentence::EstimateBestWord(float)+76j
		add	edx, 1
		cmp	edx, ebx
		jz	short loc_A0378

loc_A034F:				; CODE XREF: CSentence::EstimateBestWord(float)+1Bj
		mov	eax, [esi+edx*4]
		test	eax, eax
		jz	short loc_A0348
		fld	dword ptr [eax]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		fld	dword ptr [eax+4]
		jb	short loc_A0340
		fcomi	st, st(1)
		jb	short loc_A0342
		fstp	st
		fstp	st
		jmp	short loc_A0370
; ---------------------------------------------------------------------------

loc_A036D:				; CODE XREF: CSentence::EstimateBestWord(float)+12j
		fstp	st
		nop

loc_A0370:				; CODE XREF: CSentence::EstimateBestWord(float)+4Bj
					; CSentence::EstimateBestWord(float)+5Ej ...
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A0378:				; CODE XREF: CSentence::EstimateBestWord(float)+2Dj
		fstp	st
		test	ecx, ecx
		mov	eax, ecx
		jnz	short loc_A0370
		mov	eax, [esi+edx*4-4]
		jmp	short loc_A0370
; ---------------------------------------------------------------------------
		align 10h

loc_A0390:				; CODE XREF: CSentence::EstimateBestWord(float)+24j
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_A0348
		fstp	st
		pop	ebx
		mov	eax, ecx
		pop	esi
		pop	ebp
		retn
_ZN9CSentence16EstimateBestWordEf endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetWordForPhoneme(CPhonemeTag *)
_ZN9CSentence17GetWordForPhonemeEP11CPhonemeTag	proc near

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8
		mov	edx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	eax, [edx+10h]
		mov	[ebp+var_10], eax
		xor	eax, eax
		mov	ebx, [ebp+var_10]
		test	ebx, ebx
		jle	short loc_A0400
		mov	edx, [edx+4]
		xor	edi, edi
		mov	[ebp+var_14], edx

loc_A03C6:				; CODE XREF: CSentence::GetWordForPhoneme(CPhonemeTag *)+5Aj
		mov	edx, [ebp+var_14]
		mov	eax, [edx+edi*4]
		test	eax, eax
		jz	short loc_A03F4
		mov	ecx, [eax+14h]
		test	ecx, ecx
		jle	short loc_A03F4
		mov	ebx, [eax+8]
		cmp	[ebx], esi
		jz	short loc_A0400
		xor	edx, edx
		jmp	short loc_A03ED
; ---------------------------------------------------------------------------
		align 8

loc_A03E8:				; CODE XREF: CSentence::GetWordForPhoneme(CPhonemeTag *)+52j
		cmp	[ebx+edx*4], esi
		jz	short loc_A0400

loc_A03ED:				; CODE XREF: CSentence::GetWordForPhoneme(CPhonemeTag *)+40j
		add	edx, 1
		cmp	edx, ecx
		jnz	short loc_A03E8

loc_A03F4:				; CODE XREF: CSentence::GetWordForPhoneme(CPhonemeTag *)+2Ej
					; CSentence::GetWordForPhoneme(CPhonemeTag *)+35j
		add	edi, 1
		cmp	edi, [ebp+var_10]
		jnz	short loc_A03C6
		xor	eax, eax
		db	66h
		nop

loc_A0400:				; CODE XREF: CSentence::GetWordForPhoneme(CPhonemeTag *)+1Cj
					; CSentence::GetWordForPhoneme(CPhonemeTag *)+3Cj ...
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence17GetWordForPhonemeEP11CPhonemeTag	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSentence__SetText(int, char *src)
_ZN9CSentence7SetTextEPKc proc near	; CODE XREF: CSentence::ParsePlaintext(CUtlBuffer &)+96p
					; CSentence::SetTextFromWords(void)+8Fp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		mov	[ebp+var_4], edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_A0433
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_A0433:				; CODE XREF: CSentence::SetText(char  const*)+19j
		test	ebx, ebx
		mov	dword ptr [esi], 0
		jz	short loc_A0467
		cmp	byte ptr [ebx],	0
		jz	short loc_A0467
		mov	[esp], ebx	; s
		call	strlen
		lea	edi, [eax+1]
		mov	[esp], edi
		call	_Znaj		; operator new[](uint)
		mov	[esi], eax
		mov	[esp+8], edi	; n
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_A0467:				; CODE XREF: CSentence::SetText(char  const*)+2Bj
					; CSentence::SetText(char  const*)+30j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CSentence7SetTextEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ParsePlaintext(CUtlBuffer &)
_ZN9CSentence14ParsePlaintextER10CUtlBuffer proc near
					; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+10Ap

dest		= byte ptr -2018h
src		= byte ptr -1018h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+src]
		push	ebx
		lea	ebx, [ebp+dest]
		sub	esp, 201Ch
		mov	[ebp+src], 0
		mov	edi, [ebp+arg_4]
		jmp	short loc_A04E4
; ---------------------------------------------------------------------------
		align 8

loc_A04A8:				; CODE XREF: CSentence::ParsePlaintext(CUtlBuffer &)+8Aj
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 1000h ; int
		mov	[esp+4], ebx	; int
		mov	[esp], esi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 1000h ; int
		mov	dword ptr [esp+4], (offset asc_1F03F9+3) ; int
		mov	[esp], esi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)

loc_A04E4:				; CODE XREF: CSentence::ParsePlaintext(CUtlBuffer &)+22j
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], offset s2 ; "}"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jnz	short loc_A04A8
		mov	eax, [ebp+arg_0]
		mov	[esp+4], esi	; src
		mov	[esp], eax	; int
		call	_ZN9CSentence7SetTextEPKc ; CSentence::SetText(char  const*)
		add	esp, 201Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence14ParsePlaintextER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetText(void)const
_ZNK9CSentence7GetTextEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, (offset asc_20E578+4)
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax]
		test	eax, eax
		cmovz	eax, edx
		retn
_ZNK9CSentence7GetTextEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::SetTextFromWords(void)
_ZN9CSentence16SetTextFromWordsEv proc near

src		= byte ptr -418h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+src]
		push	ebx
		sub	esp, 41Ch
		mov	[ebp+src], 0
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+10h]
		test	eax, eax
		jle	short loc_A05D8
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_A0578:				; CODE XREF: CSentence::SetTextFromWords(void)+86j
		mov	eax, [esi+4]
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+ebx*4]
		mov	eax, [eax+28h]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 400h	; int
		mov	[esp], edi	; s
		test	eax, eax
		cmovz	eax, edx
		mov	[esp+4], eax	; int
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	eax, [esi+10h]
		cmp	ebx, eax
		jz	short loc_A05D1
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 400h	; int
		mov	dword ptr [esp+4], (offset asc_1F03F9+3) ; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	eax, [esi+10h]

loc_A05D1:				; CODE XREF: CSentence::SetTextFromWords(void)+5Cj
		add	ebx, 1
		cmp	ebx, eax
		jl	short loc_A0578

loc_A05D8:				; CODE XREF: CSentence::SetTextFromWords(void)+21j
		mov	[esp+4], edi	; src
		mov	[esp], esi	; int
		call	_ZN9CSentence7SetTextEPKc ; CSentence::SetText(char  const*)
		add	esp, 41Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence16SetTextFromWordsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::Resort(void)
_ZN9CSentence6ResortEv proc near

var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 44h
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+3Ch]
		test	eax, eax
		mov	[ebp+var_40], eax
		jle	loc_A06EF
		mov	edx, [ebp+var_40]
		xor	eax, eax
		mov	[ebp+var_4C], 0Ch
		add	eax, 1
		mov	[ebp+var_48], eax
		cmp	eax, edx
		jz	loc_A06EF
		lea	esi, [esi+0]

loc_A0628:				; CODE XREF: CSentence::Resort(void)+F9j
		mov	ebx, [ebp+var_4C]
		mov	[ebp+var_30], eax
		mov	ecx, [ebp+var_4C]
		sub	ebx, 0Ch
		mov	[ebp+var_44], ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_A0640:				; CODE XREF: CSentence::Resort(void)+E1j
		mov	eax, [edi+30h]
		add	eax, [ebp+var_44]
		mov	edx, [eax+4]
		mov	esi, [eax+8]
		mov	ebx, [eax]
		fld	dword ptr [eax]
		mov	[ebp+var_34], edx
		mov	edx, [edi+30h]
		mov	[ebp+var_50], esi
		mov	[ebp+var_24], ebx
		mov	ebx, [eax+4]
		mov	[ebp+var_1C], esi
		add	edx, ecx
		mov	esi, [edx]
		mov	[ebp+var_20], ebx
		movzx	ebx, byte ptr [eax+8]
		fld	dword ptr [edx]
		fxch	st(1)
		fcomi	st, st(1)
		mov	[ebp+var_18], esi
		mov	esi, [edx+4]
		mov	[ebp+var_35], bl
		mov	ebx, [edx+4]
		mov	[ebp+var_14], esi
		mov	esi, [edx+8]
		mov	[ebp+var_3C], ebx
		movzx	edx, byte ptr [edx+8]
		mov	[ebp+var_10], esi
		jbe	short loc_A06C0
		fxch	st(1)
		mov	[eax+8], esi
		mov	[eax+4], ebx
		mov	ebx, [ebp+var_34]
		mov	[eax+8], dl
		mov	edx, [ebp+var_50]
		fstp	dword ptr [eax]
		mov	eax, [edi+30h]
		add	eax, ecx
		mov	[eax+8], edx
		movzx	edx, [ebp+var_35]
		fstp	dword ptr [eax]
		mov	[eax+4], ebx
		mov	[eax+8], dl
		jmp	short loc_A06C4
; ---------------------------------------------------------------------------
		align 10h

loc_A06C0:				; CODE XREF: CSentence::Resort(void)+9Fj
		fstp	st
		fstp	st

loc_A06C4:				; CODE XREF: CSentence::Resort(void)+C8j
		add	[ebp+var_30], 1
		add	ecx, 0Ch
		mov	ebx, [ebp+var_40]
		cmp	[ebp+var_30], ebx
		jnz	loc_A0640
		mov	eax, [ebp+var_48]
		mov	edx, [ebp+var_40]
		add	[ebp+var_4C], 0Ch
		add	eax, 1
		cmp	eax, edx
		mov	[ebp+var_48], eax
		jnz	loc_A0628

loc_A06EF:				; CODE XREF: CSentence::Resort(void)+14j
					; CSentence::Resort(void)+2Ej
		add	esp, 44h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence6ResortEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetBoundedSample(int, float)
_ZN9CSentence16GetBoundedSampleEif proc	near
					; CODE XREF: CSentence::GetIntensity(float,float)+51p
					; CSentence::GetIntensity(float,float)+67p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	dword ptr ds:_ZZN9CSentence16GetBoundedSampleEifE9nullstart, 0 ; CSentence::GetBoundedSample(int,float)::nullstart
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	dword ptr ds:_ZZN9CSentence16GetBoundedSampleEifE9nullstart+4, 3F000000h
		mov	dword ptr ds:_ZZN9CSentence16GetBoundedSampleEifE7nullend+4, 3F000000h
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		test	edx, edx
		mov	dword ptr ds:_ZZN9CSentence16GetBoundedSampleEifE7nullend, eax ; CSentence::GetBoundedSample(int,float)::nullend
		mov	eax, offset _ZZN9CSentence16GetBoundedSampleEifE9nullstart ; CSentence::GetBoundedSample(int,float)::nullstart
		js	short loc_A0746
		cmp	edx, [ecx+3Ch]
		jge	short loc_A0750
		lea	eax, [edx+edx*2]
		mov	edx, [ecx+30h]
		lea	eax, [edx+eax*4]

loc_A0746:				; CODE XREF: CSentence::GetBoundedSample(int,float)+36j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A0750:				; CODE XREF: CSentence::GetBoundedSample(int,float)+3Bj
		mov	eax, offset _ZZN9CSentence16GetBoundedSampleEifE7nullend ; CSentence::GetBoundedSample(int,float)::nullend
		pop	ebp
		retn
_ZN9CSentence16GetBoundedSampleEif endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSentence__GetIntensity(int, float, int)
_ZN9CSentence12GetIntensityEff proc near

var_9C		= dword	ptr -9Ch
var_98		= xmmword ptr -98h
var_88		= xmmword ptr -88h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, 0FFFFFFFFh
		push	ebx
		sub	esp, 0BCh
		mov	edi, [ebp+arg_0]
		fld	ds:flt_1EBAA4
		mov	edx, [edi+3Ch]
		test	edx, edx
		mov	[ebp+var_64], edx
		jg	short loc_A0798
		jmp	loc_A0984
; ---------------------------------------------------------------------------
		align 10h

loc_A0790:				; CODE XREF: CSentence::GetIntensity(float,float)+9Dj
		mov	esi, ebx
		jmp	short loc_A07A0
; ---------------------------------------------------------------------------
		align 8

loc_A0798:				; CODE XREF: CSentence::GetIntensity(float,float)+22j
		fstp	st
		lea	esi, [esi+0]

loc_A07A0:				; CODE XREF: CSentence::GetIntensity(float,float)+32j
		mov	ecx, [ebp+arg_8]
		mov	[esp+4], esi
		lea	ebx, [esi+1]
		mov	[esp], edi
		mov	[esp+8], ecx
		call	_ZN9CSentence16GetBoundedSampleEif ; CSentence::GetBoundedSample(int,float)
		mov	edx, [ebp+arg_8]
		mov	[esp+4], ebx
		mov	[ebp+var_60], eax
		mov	[esp], edi
		mov	[esp+8], edx
		call	_ZN9CSentence16GetBoundedSampleEif ; CSentence::GetBoundedSample(int,float)
		test	eax, eax
		jz	short loc_A07FA
		mov	ecx, [ebp+var_60]
		test	ecx, ecx
		jz	short loc_A07FA
		mov	ecx, [ebp+var_60]
		fld	dword ptr [ecx]
		fld	[ebp+arg_4]
		fcomi	st, st(1)
		fstp	st(1)
		jb	short loc_A07F8
		fld	dword ptr [eax]
		fcomip	st, st(1)
		fstp	st
		jb	short loc_A07FA
		jmp	loc_A0990
; ---------------------------------------------------------------------------
		align 8

loc_A07F8:				; CODE XREF: CSentence::GetIntensity(float,float)+83j
		fstp	st

loc_A07FA:				; CODE XREF: CSentence::GetIntensity(float,float)+6Ej
					; CSentence::GetIntensity(float,float)+75j ...
		cmp	ebx, [ebp+var_64]
		jnz	short loc_A0790
		lea	edx, [ebx+1]

loc_A0802:				; CODE XREF: CSentence::GetIntensity(float,float)+234j
		mov	eax, [edi+3Ch]
		lea	ecx, [ebx+2]
		mov	esi, 0FFFFFFFFh
		mov	[esp], edi
		cmp	edx, eax
		cmovg	edx, eax
		cmp	ecx, eax
		cmovg	ecx, eax
		mov	eax, ebx
		mov	[ebp+var_60], edx
		mov	edx, [ebp+arg_8]
		sub	eax, 1
		cmovs	eax, esi
		mov	[ebp+var_68], ecx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	_ZN9CSentence16GetBoundedSampleEif ; CSentence::GetBoundedSample(int,float)
		test	ebx, ebx
		mov	[esp], edi
		cmovs	ebx, esi
		mov	edx, eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_6C], edx
		mov	[esp+4], ebx
		mov	[esp+8], eax
		call	_ZN9CSentence16GetBoundedSampleEif ; CSentence::GetBoundedSample(int,float)
		mov	[esp], edi
		mov	ebx, eax
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax
		mov	eax, [ebp+var_60]
		mov	[esp+4], eax
		call	_ZN9CSentence16GetBoundedSampleEif ; CSentence::GetBoundedSample(int,float)
		mov	ecx, [ebp+var_68]
		mov	[esp], edi
		mov	esi, eax
		mov	eax, [ebp+arg_8]
		mov	[esp+4], ecx
		mov	[esp+8], eax
		call	_ZN9CSentence16GetBoundedSampleEif ; CSentence::GetBoundedSample(int,float)
		mov	edx, [ebp+var_6C]
		movss	xmm1, ds:dword_1EBDA0
		fld	dword ptr [esi]
		xorps	xmm2, xmm2
		fsub	dword ptr [ebx]
		fstp	[ebp+var_9C]
		mov	ecx, [ebp+var_9C]
		fld	[ebp+arg_4]
		movd	xmm0, ecx
		mov	ecx, [edx+4]
		mov	edx, [edx]
		mov	[ebp+var_4C], 0
		maxss	xmm0, ds:dword_1ED990
		mov	[ebp+var_50], ecx
		mov	[ebp+var_54], edx
		mov	edx, [ebx+4]
		minss	xmm0, xmm1
		mov	ecx, [ebx]
		mov	[ebp+var_40], 0
		movss	[ebp+var_5C], xmm0
		mov	[ebp+var_44], edx
		mov	[ebp+var_48], ecx
		mov	edx, [esi+4]
		mov	ecx, [esi]
		mov	[ebp+var_34], 0
		mov	[ebp+var_38], edx
		mov	[ebp+var_3C], ecx
		mov	edx, [eax+4]
		mov	eax, [eax]
		mov	[ebp+var_28], 0
		mov	[ebp+var_2C], edx
		mov	[ebp+var_30], eax
		fsub	dword ptr [ebx]
		fdiv	[ebp+var_5C]
		fstp	[ebp+var_9C]
		mov	eax, [ebp+var_9C]
		movd	xmm0, eax
		maxss	xmm0, xmm2
		lea	eax, [ebp+var_24]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_30]
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_3C]
		minss	xmm0, xmm1
		mov	[esp+8], eax	; int
		lea	eax, [ebp+var_48]
		mov	[esp+4], eax	; int
		lea	eax, [ebp+var_54]
		movaps	[ebp+var_88], xmm1
		movss	dword ptr [esp+10h], xmm0
		movaps	[ebp+var_98], xmm2
		mov	[esp], eax	; int
		call	_Z18Catmull_Rom_SplineRK6VectorS1_S1_S1_fRS_ ; Catmull_Rom_Spline(Vector  const&,Vector	 const&,Vector	const&,Vector  const&,float,Vector&)
		movaps	xmm2, [ebp+var_98]
		movss	xmm0, [ebp+var_20]
		movaps	xmm1, [ebp+var_88]
		maxss	xmm0, xmm2
		minss	xmm0, xmm1
		movss	[ebp+var_9C], xmm0
		fld	[ebp+var_9C]

loc_A0984:				; CODE XREF: CSentence::GetIntensity(float,float)+24j
		add	esp, 0BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A0990:				; CODE XREF: CSentence::GetIntensity(float,float)+8Dj
		mov	edx, ebx
		mov	ebx, esi
		jmp	loc_A0802
_ZN9CSentence12GetIntensityEff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetNumSamples(void)
_ZN9CSentence13GetNumSamplesEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+3Ch]
		retn
_ZN9CSentence13GetNumSamplesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetSample(int)
_ZN9CSentence9GetSampleEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		test	edx, edx
		js	short loc_A09C4
		cmp	edx, [ecx+3Ch]
		jl	short loc_A09D0

loc_A09C4:				; CODE XREF: CSentence::GetSample(int)+Dj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A09D0:				; CODE XREF: CSentence::GetSample(int)+12j
		lea	eax, [edx+edx*2]
		mov	edx, [ecx+30h]
		pop	ebp
		lea	eax, [edx+eax*4]
		retn
_ZN9CSentence9GetSampleEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetEstimatedTimes(float &,	float &)
_ZN9CSentence17GetEstimatedTimesERfS0_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	eax, [ebp+arg_0]
		push	esi
		push	ebx
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	ecx, [eax+10h]
		cmp	ecx, 0
		jz	short loc_A0A70
		jle	short loc_A0A4E
		fld	ds:flt_1ED980
		mov	ebx, [eax+4]
		xor	eax, eax
		fld	ds:flt_1EB82C
		lea	esi, [esi+0]

loc_A0A10:				; CODE XREF: CSentence::GetEstimatedTimes(float	&,float	&)+4Bj
		mov	edx, [ebx+eax*4]
		fld	dword ptr [edx]
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fld	dword ptr [edx+4]
		fxch	st(2)
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		add	eax, 1
		cmp	eax, ecx
		jnz	short loc_A0A10
		fld	ds:flt_1EB82C
		fcomip	st, st(1)
		jz	short loc_A0A60

loc_A0A37:				; CODE XREF: CSentence::GetEstimatedTimes(float	&,float	&)+84j
		fld	ds:flt_1ED980
		fcomip	st, st(2)
		fld1
		fcmovne	st, st(2)
		fstp	st(2)
		fstp	dword ptr [edi]
		fstp	dword ptr [esi]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A0A4E:				; CODE XREF: CSentence::GetEstimatedTimes(float	&,float	&)+17j
		fld	ds:flt_1ED980
		jmp	short loc_A0A62
; ---------------------------------------------------------------------------
		align 10h

loc_A0A60:				; CODE XREF: CSentence::GetEstimatedTimes(float	&,float	&)+55j
		fstp	st

loc_A0A62:				; CODE XREF: CSentence::GetEstimatedTimes(float	&,float	&)+74j
		fldz
		jmp	short loc_A0A37
; ---------------------------------------------------------------------------
		align 10h

loc_A0A70:				; CODE XREF: CSentence::GetEstimatedTimes(float	&,float	&)+15j
		mov	dword ptr [esi], 0
		mov	dword ptr [edi], 0
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence17GetEstimatedTimesERfS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::SetDataCheckSum(unsigned int)
_ZN9CSentence15SetDataCheckSumEj proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	byte ptr [eax+49h], 1
		mov	[eax+44h], edx
		pop	ebp
		retn
_ZN9CSentence15SetDataCheckSumEj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ComputeDataCheckSum(void)
_ZN9CSentence19ComputeDataCheckSumEv proc near

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_20]
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_0]
		mov	[esp], edi
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		mov	ebx, [esi]
		test	ebx, ebx
		jz	loc_A0BA0
		mov	[esp], ebx	; s
		call	strlen

loc_A0AD9:				; CODE XREF: CSentence::ComputeDataCheckSum(void)+F7j
		mov	[esp+8], eax
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	eax, [esi+10h]
		test	eax, eax
		mov	[ebp+var_2C], eax
		jle	short loc_A0B28
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_A0AF8:				; CODE XREF: CSentence::ComputeDataCheckSum(void)+76j
		mov	eax, [esi+4]
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp], eax
		call	_ZN8CWordTag19ComputeDataCheckSumEv ; CWordTag::ComputeDataCheckSum(void)
		mov	dword ptr [esp+8], 4
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		mov	[esp], edi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		cmp	ebx, [ebp+var_2C]
		jnz	short loc_A0AF8

loc_A0B28:				; CODE XREF: CSentence::ComputeDataCheckSum(void)+41j
		mov	eax, [esi+3Ch]
		test	eax, eax
		mov	[ebp+var_2C], eax
		jle	short loc_A0B86
		xor	ebx, ebx
		xor	eax, eax
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_A0B40:				; CODE XREF: CSentence::ComputeDataCheckSum(void)+D4j
		mov	dword ptr [esp+8], 4
		mov	edx, [esi+30h]
		mov	[ebp+var_30], eax
		mov	[esp], edi
		add	edx, ebx
		mov	[esp+4], edx
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	dword ptr [esp+8], 4
		mov	edx, [esi+30h]
		mov	[esp], edi
		add	edx, ebx
		add	ebx, 0Ch
		add	edx, 4
		mov	[esp+4], edx
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	eax, [ebp+var_30]
		add	eax, 1
		cmp	eax, [ebp+var_2C]
		jnz	short loc_A0B40

loc_A0B86:				; CODE XREF: CSentence::ComputeDataCheckSum(void)+80j
		mov	[esp], edi
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		mov	eax, [ebp+var_20]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A0BA0:				; CODE XREF: CSentence::ComputeDataCheckSum(void)+1Bj
		xor	eax, eax
		mov	ebx, (offset asc_20E578+4)
		jmp	loc_A0AD9
_ZN9CSentence19ComputeDataCheckSumEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::GetDataCheckSum(void)const
_ZNK9CSentence15GetDataCheckSumEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+44h]
		retn
_ZNK9CSentence15GetDataCheckSumEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::CountWords(char  const*)
_ZN9CSentence10CountWordsEPKc proc near	; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+1Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		push	ebx
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_A0C18
		movzx	ecx, byte ptr [ebx]
		test	cl, cl
		jz	short loc_A0C18
		mov	eax, ecx
		mov	si, 1
		nop
		lea	esi, [esi+0]

loc_A0BE0:				; CODE XREF: CSentence::CountWords(char	 const*)+4Fj
		cmp	al, 20h
		mov	edx, ebx
		ja	short loc_A0BFE
		lea	eax, [ecx-1]
		add	esi, 1
		cmp	al, 1Fh
		ja	short loc_A0BFE

loc_A0BF0:				; CODE XREF: CSentence::CountWords(char	 const*)+3Cj
		add	edx, 1
		movzx	ecx, byte ptr [edx]
		lea	ebx, [ecx-1]
		cmp	bl, 1Fh
		jbe	short loc_A0BF0

loc_A0BFE:				; CODE XREF: CSentence::CountWords(char	 const*)+24j
					; CSentence::CountWords(char  const*)+2Ej
		test	cl, cl
		jz	short loc_A0C18
		movzx	ecx, byte ptr [edx+1]
		lea	ebx, [edx+1]
		test	cl, cl
		jz	short loc_A0C18
		mov	eax, ecx
		jmp	short loc_A0BE0
; ---------------------------------------------------------------------------
		align 8

loc_A0C18:				; CODE XREF: CSentence::CountWords(char	 const*)+Cj
					; CSentence::CountWords(char  const*)+13j ...
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
_ZN9CSentence10CountWordsEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ShouldSplitWord(char)
_ZN9CSentence15ShouldSplitWordEc proc near
					; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+7Fp
					; CSentence::CreateEventWordDistribution(char  const*,float)+C6p

arg_0		= byte ptr  8

		push	ebp
		mov	edx, 1
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		movzx	ebx, [ebp+arg_0]
		cmp	bl, 20h
		jle	short loc_A0C4C
		movsx	eax, bl
		mov	[esp], eax	; int
		call	ispunct
		xor	edx, edx
		test	eax, eax
		jz	short loc_A0C4C
		cmp	bl, 27h
		setnz	dl

loc_A0C4C:				; CODE XREF: CSentence::ShouldSplitWord(char)+13j
					; CSentence::ShouldSplitWord(char)+24j
		add	esp, 14h
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
_ZN9CSentence15ShouldSplitWordEc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CWordTag__CWordTag(int, char *src)
_ZN8CWordTagC2EPKc proc	near		; CODE XREF: CSentence::ParseWords(CUtlBuffer &)+F9p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+src]
		mov	[ebp+var_4], esi
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+20h], 0
		mov	dword ptr [ebx+24h], 0
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+28h], 0
		mov	byte ptr [ebx+1Ch], 0
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; int
		call	_ZN8CWordTag7SetWordEPKc ; CWordTag::SetWord(char  const*)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN8CWordTagC2EPKc endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx+14h], 0
		lea	esi, [ebx+8]
		mov	[ebp-0Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv ; CUtlMemory<CPhonemeTag *,int>::Purge(void)
		mov	edx, [ebx+8]
		mov	[ebx+18h], edx
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv ; CUtlMemory<CPhonemeTag *,int>::Purge(void)
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::~CWordTag()
_ZN8CWordTagD2Ev proc near		; CODE XREF: CSentence::Reset(void)+2Cp
					; CSentence::ResetToBase(void)+2Ep ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+28h]
		test	eax, eax
		jz	short loc_A0D1A
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_A0D1A:				; CODE XREF: CWordTag::~CWordTag()+10j
		mov	esi, [ebx+14h]
		test	esi, esi
		jle	short loc_A0D7B
		lea	esi, [esi+0]

loc_A0D28:				; CODE XREF: CWordTag::~CWordTag()+6Fj
		mov	eax, [ebx+8]
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_A0D41
		mov	[esp], esi
		call	_ZN11CPhonemeTagD2Ev ; CPhonemeTag::~CPhonemeTag()
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)

loc_A0D41:				; CODE XREF: CWordTag::~CWordTag()+2Fj
		mov	eax, [ebx+14h]
		sub	eax, 1
		test	eax, eax
		jle	short loc_A0D78
		mov	edx, [ebx+8]
		shl	eax, 2
		mov	[esp+8], eax	; n
		lea	eax, [edx+4]
		mov	[esp], edx	; dest
		mov	[esp+4], eax	; src
		call	memmove
		mov	eax, [ebx+14h]
		sub	eax, 1
		test	eax, eax
		mov	[ebx+14h], eax
		jg	short loc_A0D28
		jmp	short loc_A0D7B
; ---------------------------------------------------------------------------
		align 8

loc_A0D78:				; CODE XREF: CWordTag::~CWordTag()+49j
		mov	[ebx+14h], eax

loc_A0D7B:				; CODE XREF: CWordTag::~CWordTag()+1Fj
					; CWordTag::~CWordTag()+71j
		lea	esi, [ebx+8]
		mov	dword ptr [ebx+14h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv ; CUtlMemory<CPhonemeTag *,int>::Purge(void)
		mov	eax, [ebx+8]
		mov	[ebx+18h], eax
		mov	[ebp+arg_0], esi
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		jmp	_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv ; CUtlMemory<CPhonemeTag *,int>::Purge(void)
_ZN8CWordTagD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::Reset(void)
_ZN9CSentence5ResetEv proc near		; CODE XREF: CSentence::~CSentence()+Ep
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+12p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+10h]
		mov	dword ptr [esi+2Ch], 0
		test	eax, eax
		jle	short loc_A0E00
		lea	edi, [esi+4]
		lea	esi, [esi+0]

loc_A0DD0:				; CODE XREF: CSentence::Reset(void)+4Ej
		mov	eax, [esi+4]
		mov	ebx, [eax]
		test	ebx, ebx
		jz	short loc_A0DE9
		mov	[esp], ebx
		call	_ZN8CWordTagD2Ev ; CWordTag::~CWordTag()
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)

loc_A0DE9:				; CODE XREF: CSentence::Reset(void)+27j
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE6RemoveEi ; CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::Remove(int)
		mov	eax, [esi+10h]
		test	eax, eax
		jg	short loc_A0DD0

loc_A0E00:				; CODE XREF: CSentence::Reset(void)+18j
		mov	dword ptr [esi+3Ch], 0
		mov	[ebp+arg_0], esi
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN9CSentence20ClearRuntimePhonemesEv ;	CSentence::ClearRuntimePhonemes(void)
_ZN9CSentence5ResetEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ResetToBase(void)
_ZN9CSentence11ResetToBaseEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+10h]
		cmp	[ebx+2Ch], eax
		jge	short loc_A0E75
		lea	edi, [ebx+4]
		mov	esi, esi
		lea	edi, [edi+0]

loc_A0E40:				; CODE XREF: CSentence::ResetToBase(void)+53j
		mov	edx, [ebx+4]
		mov	esi, [edx+eax*4-4]
		test	esi, esi
		jz	short loc_A0E5E
		mov	[esp], esi
		call	_ZN8CWordTagD2Ev ; CWordTag::~CWordTag()
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [ebx+10h]

loc_A0E5E:				; CODE XREF: CSentence::ResetToBase(void)+29j
		sub	eax, 1
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE6RemoveEi ; CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::Remove(int)
		mov	eax, [ebx+10h]
		cmp	eax, [ebx+2Ch]
		jg	short loc_A0E40

loc_A0E75:				; CODE XREF: CSentence::ResetToBase(void)+12j
		mov	[ebp+arg_0], ebx
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN9CSentence20ClearRuntimePhonemesEv ;	CSentence::ClearRuntimePhonemes(void)
_ZN9CSentence11ResetToBaseEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::~CSentence()
_ZN9CSentenceD2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN9CSentence5ResetEv ;	CSentence::Reset(void)
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A0EB1
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_A0EB1:				; CODE XREF: CSentence::~CSentence()+17j
		lea	esi, [ebx+30h]
		mov	dword ptr [ebx+3Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI15CEmphasisSampleiE5PurgeEv ; CUtlMemory<CEmphasisSample,int>::Purge(void)
		mov	eax, [ebx+30h]
		mov	[ebx+40h], eax
		mov	[esp], esi
		lea	esi, [ebx+18h]
		call	_ZN10CUtlMemoryI15CEmphasisSampleiE5PurgeEv ; CUtlMemory<CEmphasisSample,int>::Purge(void)
		mov	dword ptr [ebx+24h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP15CBasePhonemeTagiE5PurgeEv ; CUtlMemory<CBasePhonemeTag *,int>::Purge(void)
		mov	eax, [ebx+18h]
		mov	[ebx+28h], eax
		mov	[esp], esi
		lea	esi, [ebx+4]
		call	_ZN10CUtlMemoryIP15CBasePhonemeTagiE5PurgeEv ; CUtlMemory<CBasePhonemeTag *,int>::Purge(void)
		mov	dword ptr [ebx+10h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP8CWordTagiE5PurgeEv ; CUtlMemory<CWordTag *,int>::Purge(void)
		mov	eax, [ebx+4]
		mov	[ebx+14h], eax
		mov	[ebp+arg_0], esi
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		jmp	_ZN10CUtlMemoryIP8CWordTagiE5PurgeEv ; CUtlMemory<CWordTag *,int>::Purge(void)
_ZN9CSentenceD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::AddPhonemeTag(CWordTag *, CPhonemeTag *)
_ZN9CSentence13AddPhonemeTagEP8CWordTagP11CPhonemeTag proc near
					; CODE XREF: CSentence::ParseWords(CUtlBuffer &)+2B5p

arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		lea	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [eax+14h]
		add	eax, 8
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN10CUtlVectorIP11CPhonemeTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<CPhonemeTag	*,CUtlMemory<CPhonemeTag *,int>>::InsertBefore(int,CPhonemeTag * const&)
		leave
		retn
_ZN9CSentence13AddPhonemeTagEP8CWordTagP11CPhonemeTag endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CWordTag::CWordTag(CWordTag const&)
_ZN8CWordTagC2ERKS_ proc near		; CODE XREF: CSentence::Append(float,CSentence const&)+47p
					; CSentence::operator=(CSentence const&)+41p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		lea	ecx, [edx+8]
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+28h], 0
		mov	eax, [esi+28h]
		mov	[ebp+var_30], ecx
		mov	[esp], edx	; int
		mov	[esp+4], eax	; src
		call	_ZN8CWordTag7SetWordEPKc ; CWordTag::SetWord(char  const*)
		mov	eax, [esi+24h]
		mov	edx, [esi+20h]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+20h], edx
		mov	[ecx+24h], eax
		mov	eax, [esi]
		mov	[ecx], eax
		mov	eax, [esi+4]
		mov	[ecx+4], eax
		movzx	eax, byte ptr [esi+1Ch]
		mov	[ecx+1Ch], al
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_A101D
		lea	eax, [ecx+8]
		xor	ebx, ebx
		mov	[ebp+var_30], eax

loc_A0FD0:				; CODE XREF: CWordTag::CWordTag(CWordTag const&)+CBj
		mov	eax, [esi+8]
		mov	eax, [eax+ebx*4]
		mov	dword ptr [esp], 18h
		mov	[ebp+var_2C], eax
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_2C]
		mov	edi, eax
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN11CPhonemeTagC2ERKS_	; CPhonemeTag::CPhonemeTag(CPhonemeTag const&)
		mov	edx, [ebp+arg_0]
		lea	ecx, [ebp+var_1C]
		add	ebx, 1
		mov	[esp+8], ecx
		mov	ecx, [ebp+var_30]
		mov	[ebp+var_1C], edi
		mov	eax, [edx+14h]
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP11CPhonemeTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<CPhonemeTag	*,CUtlMemory<CPhonemeTag *,int>>::InsertBefore(int,CPhonemeTag * const&)
		cmp	[esi+14h], ebx
		jg	short loc_A0FD0

loc_A101D:				; CODE XREF: CWordTag::CWordTag(CWordTag const&)+76j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN8CWordTagC2ERKS_ endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_A1027:				; CODE XREF: .text:000A1062j
		mov	eax, [ebp+8]
		mov	edx, [ebp-30h]
		mov	dword ptr [eax+14h], 0
		mov	[esp], edx
		call	_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv ; CUtlMemory<CPhonemeTag *,int>::Purge(void)
		mov	ecx, [ebp+8]
		mov	eax, [ecx+8]
		mov	[ecx+18h], eax
		mov	eax, [ebp-30h]
		mov	[esp], eax
		call	_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv ; CUtlMemory<CPhonemeTag *,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZdlPv		; operator delete(void *)
		jmp	short loc_A1027
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ParseEmphasis(CUtlBuffer &)
_ZN9CSentence13ParseEmphasisER10CUtlBuffer proc	near
					; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+13Ap

src		= byte ptr -1224h
dest		= byte ptr -224h
var_124		= byte ptr -124h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+dest]
		push	ebx
		lea	ebx, [ebp+src]
		sub	esp, 122Ch
		mov	esi, [ebp+arg_4]
		jmp	loc_A1120
; ---------------------------------------------------------------------------

loc_A1090:				; CODE XREF: CSentence::ParseEmphasis(CUtlBuffer &)+D6j
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], ebx	; src
		mov	[esp], edi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		lea	eax, [ebp+var_124]
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		mov	dword ptr [esp+8], 100h	; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[ebp+var_1C], 0
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], edi	; nptr
		call	strtod
		lea	edx, [ebp+var_124]
		mov	dword ptr [esp+4], 0 ; endptr
		fstp	[ebp+var_24]
		mov	[esp], edx	; nptr
		call	strtod
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+var_24]
		mov	[esp+8], eax
		fstp	[ebp+var_20]
		mov	eax, [edx+3Ch]
		mov	[esp+4], eax
		mov	eax, edx
		add	eax, 30h
		mov	[esp], eax
		call	_ZN10CUtlVectorI15CEmphasisSample10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)

loc_A1120:				; CODE XREF: CSentence::ParseEmphasis(CUtlBuffer &)+1Bj
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], offset s2 ; "}"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_A1090
		add	esp, 122Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence13ParseEmphasisER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::AddRuntimePhoneme(CPhonemeTag  const*)
_ZN9CSentence17AddRuntimePhonemeEPK11CPhonemeTag proc near
					; CODE XREF: CSentence::MakeRuntimeOnly(void)+6Bp
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+378p	...

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [esp], 0Ch
		mov	esi, [ebp+arg_0]
		call	_Znwj		; operator new(uint)
		xor	edx, edx
		mov	[eax], edx
		mov	[eax+4], edx
		mov	word ptr [eax+8], 0
		mov	edx, [ebx]
		mov	[ebp+var_C], eax
		mov	[eax], edx
		mov	edx, [ebx+4]
		mov	[eax+4], edx
		mov	edx, [ebx+8]
		mov	[eax+8], edx
		lea	eax, [ebp+var_C]
		mov	[esp+8], eax
		mov	eax, [esi+24h]
		add	esi, 18h
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP15CBasePhonemeTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<CBasePhonemeTag	*,CUtlMemory<CBasePhonemeTag *,int>>::InsertBefore(int,CBasePhonemeTag * const&)
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN9CSentence17AddRuntimePhonemeEPK11CPhonemeTag endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::MakeRuntimeOnly(void)
_ZN9CSentence15MakeRuntimeOnlyEv proc near

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	eax, [esi]
		mov	byte ptr [esi+4Bh], 1
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [esi+10h]
		mov	dword ptr [esi], 0
		test	eax, eax
		mov	[ebp+var_24], eax
		jle	loc_A1280
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], esi
		nop
		lea	esi, [esi+0]

loc_A1200:				; CODE XREF: CSentence::MakeRuntimeOnly(void)+7Ej
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+4]
		mov	edx, [ebp+var_20]
		mov	edi, [eax+edx*4]
		mov	esi, [edi+14h]
		test	esi, esi
		jle	short loc_A1234
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_A1218:				; CODE XREF: CSentence::MakeRuntimeOnly(void)+72j
		mov	eax, [edi+8]
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp+4], eax
		mov	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_ZN9CSentence17AddRuntimePhonemeEPK11CPhonemeTag ; CSentence::AddRuntimePhoneme(CPhonemeTag  const*)
		cmp	ebx, esi
		jnz	short loc_A1218

loc_A1234:				; CODE XREF: CSentence::MakeRuntimeOnly(void)+51j
		add	[ebp+var_20], 1
		mov	edx, [ebp+var_24]
		cmp	[ebp+var_20], edx
		jnz	short loc_A1200
		mov	esi, [ebp+var_1C]
		mov	ecx, [esi+10h]
		test	ecx, ecx
		jle	short loc_A1280
		lea	edi, [esi+4]
		lea	esi, [esi+0]

loc_A1250:				; CODE XREF: CSentence::MakeRuntimeOnly(void)+BEj
		mov	eax, [esi+4]
		mov	ebx, [eax]
		test	ebx, ebx
		jz	short loc_A1269
		mov	[esp], ebx
		call	_ZN8CWordTagD2Ev ; CWordTag::~CWordTag()
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)

loc_A1269:				; CODE XREF: CSentence::MakeRuntimeOnly(void)+97j
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE6RemoveEi ; CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::Remove(int)
		mov	edx, [esi+10h]
		test	edx, edx
		jg	short loc_A1250

loc_A1280:				; CODE XREF: CSentence::MakeRuntimeOnly(void)+28j
					; CSentence::MakeRuntimeOnly(void)+88j
		mov	byte ptr [esi+48h], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence15MakeRuntimeOnlyEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)
_ZN9CSentence22CacheRestoreFromBufferER10CUtlBuffer proc near

var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4A		= word ptr -4Ah
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= word ptr -3Ch
var_3A		= byte ptr -3Ah
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	[esp], esi
		call	_ZN9CSentence5ResetEv ;	CSentence::Reset(void)
		mov	byte ptr [esi+4Bh], 1
		test	byte ptr [ebx+15h], 1
		jnz	short loc_A12D8
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jnz	loc_A1360

loc_A12C9:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+F2j
		mov	byte ptr [esi+48h], 0
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_A12D8:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+1Fj
		lea	eax, [ebp+var_1C]
		mov	byte ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset a_C+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		movzx	eax, byte ptr [ebp+var_1C]
		movsx	eax, al
		cmp	eax, 4
		jnz	loc_A137F

loc_A1303:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+EDj
		cmp	eax, 4
		jz	loc_A1391

loc_A130C:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+FBj
		test	byte ptr [ebx+15h], 1
		jnz	loc_A14B0
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A16A7
		mov	edx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, edx
		jnz	loc_A2062
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		movzx	eax, word ptr [ecx+eax]

loc_A1346:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+DF6j
		add	edx, 2
		mov	word ptr [ebp+var_1C], ax
		movzx	eax, ax
		mov	[ebx+0Ch], edx
		mov	[ebp+var_60], eax
		jmp	loc_A14D4
; ---------------------------------------------------------------------------
		align 10h

loc_A1360:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+33j
		mov	edx, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	eax, edx
		add	edx, 1
		sub	eax, [ebx+20h]
		movzx	eax, byte ptr [ecx+eax]
		mov	[ebx+0Ch], edx
		mov	byte ptr [ebp+var_1C], al
		movsx	eax, al
		cmp	eax, 4
		jz	short loc_A1303

loc_A137F:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+6Dj
		cmp	eax, 1
		jnz	loc_A12C9
		cmp	eax, 4
		jnz	loc_A130C

loc_A1391:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+76j
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1FEE
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A208B
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	edx, eax
		add	eax, 1
		sub	edx, [ebx+20h]
		movzx	edx, byte ptr [ecx+edx]
		mov	[ebx+0Ch], eax
		mov	byte ptr [ebp+var_1C], dl

loc_A13CA:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+D79j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+DFFj
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1FCE
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A209D
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	edx, eax
		add	eax, 1
		sub	edx, [ebx+20h]
		movzx	edx, byte ptr [ecx+edx]
		mov	[ebx+0Ch], eax
		mov	byte ptr [ebp+var_1C], dl

loc_A1403:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+D59j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+E11j
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1D7B
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A2094
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	edx, eax
		add	eax, 1
		sub	edx, [ebx+20h]
		movzx	edx, byte ptr [ecx+edx]
		mov	[ebx+0Ch], eax
		mov	byte ptr [ebp+var_1C], dl

loc_A143C:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+B06j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+E08j
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1A4C
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A20CD
		mov	edx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, edx
		jz	loc_A20C1
		sub	eax, [ebx+20h]
		lea	ecx, [ebp+var_20]
		add	eax, [ebx]
		cmovz	eax, ecx
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_1C], ecx
		movzx	ecx, byte ptr [eax+3]
		mov	byte ptr [ebp+var_1C], cl
		movzx	ecx, byte ptr [eax+2]
		mov	byte ptr [ebp+var_1C+1], cl
		movzx	ecx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_1C+2], cl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]

loc_A149C:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+E38j
		add	edx, 4
		mov	[ebp+var_20], eax
		movzx	eax, ax
		mov	[ebx+0Ch], edx
		mov	[ebp+var_60], eax
		jmp	loc_A1A71
; ---------------------------------------------------------------------------

loc_A14B0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+80j
		lea	eax, [ebp+var_1C]
		mov	word ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		movzx	eax, word ptr [ebp+var_1C]
		mov	[ebp+var_60], eax

loc_A14D4:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+C6j
		mov	eax, [ebp+var_60]
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_30], 0
		test	eax, eax
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_3A], 0
		jz	loc_A211A
		lea	eax, [ebp+var_44]
		mov	[ebp+var_54], 0
		lea	edx, [ebp+var_20]
		mov	[ebp+var_5C], eax
		mov	[ebp+var_50], edx
		jmp	loc_A161D
; ---------------------------------------------------------------------------
		align 8

loc_A1528:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+391j
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1860
		mov	eax, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	edx, eax
		jnz	loc_A1898
		sub	edx, [ebx+20h]
		mov	ecx, [ebx]
		movzx	edx, word ptr [ecx+edx]

loc_A1558:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+62Aj
		add	eax, 2
		mov	word ptr [ebp+var_20], dx
		mov	[ebx+0Ch], eax
		mov	word ptr [ebp+var_58], dx

loc_A1566:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+5DCj
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1656

loc_A1570:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+3C0j
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1888
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx]
		mov	eax, ecx
		sub	eax, [ebx+20h]
		mov	edi, [edx+eax]
		mov	[ebp+var_20], edi
		test	byte ptr [ebx+34h], 1
		jnz	loc_A1910

loc_A15A2:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+69Fj
		add	ecx, 4
		mov	[ebp+var_20], edi
		mov	[ebx+0Ch], ecx

loc_A15AB:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+5FDj
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1681

loc_A15B5:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+3EBj
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1878
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx]
		mov	eax, ecx
		sub	eax, [ebx+20h]
		mov	eax, [edx+eax]
		mov	[ebp+var_1C], eax
		test	byte ptr [ebx+34h], 1
		jnz	loc_A1938

loc_A15E7:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+6C7j
		add	ecx, 4
		mov	[ebp+var_1C], eax
		mov	[ebx+0Ch], ecx

loc_A15F0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+412j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+5EDj
		movzx	edx, word ptr [ebp+var_58]
		mov	[ebp+var_40], eax
		mov	eax, [ebp+var_5C]
		mov	[ebp+var_44], edi
		mov	[esp], esi
		mov	[ebp+var_3C], dx
		mov	[esp+4], eax
		call	_ZN9CSentence17AddRuntimePhonemeEPK11CPhonemeTag ; CSentence::AddRuntimePhoneme(CPhonemeTag  const*)
		add	[ebp+var_54], 1
		mov	edx, [ebp+var_60]
		cmp	[ebp+var_54], edx
		jz	loc_A16E0

loc_A161D:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+28Fj
		test	byte ptr [ebx+15h], 1
		jz	loc_A1528
		lea	eax, [ebp+var_20]
		mov	word ptr [ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		movzx	edx, word ptr [ebp+var_20]
		test	byte ptr [ebx+15h], 1
		mov	word ptr [ebp+var_58], dx
		jz	loc_A1570

loc_A1656:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+2DAj
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aMin_F+6)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		test	byte ptr [ebx+15h], 1
		mov	edi, [ebp+var_20]
		jz	loc_A15B5

loc_A1681:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+31Fj
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aMin_F+6)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	eax, [ebp+var_1C]
		jmp	loc_A15F0
; ---------------------------------------------------------------------------

loc_A16A7:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+98j
		lea	edx, [ebp+var_44]
		mov	word ptr [ebp+var_1C], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_3A], 0
		mov	[ebp+var_5C], edx

loc_A16E0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+387j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+E90j
		test	byte ptr [ebx+15h], 1
		jnz	loc_A19F0
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1984
		mov	edx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, edx
		jnz	loc_A2039
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		movzx	eax, word ptr [ecx+eax]

loc_A171A:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+DCDj
		add	edx, 2
		mov	word ptr [ebp+var_1C], ax
		mov	[ebx+0Ch], edx

loc_A1724:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+781j
		cwde
		test	eax, eax
		mov	[ebp+var_54], eax
		jle	loc_A1990
		lea	eax, [ebp+var_20]
		xor	edi, edi
		mov	[ebp+var_50], eax
		jmp	loc_A17F7
; ---------------------------------------------------------------------------
		align 10h

loc_A1740:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+56Fj
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A18D0
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx]
		mov	eax, ecx
		sub	eax, [ebx+20h]
		mov	eax, [edx+eax]
		mov	[ebp+var_20], eax
		test	byte ptr [ebx+34h], 1
		jnz	loc_A1960

loc_A1772:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+6EFj
		add	ecx, 4
		mov	[ebp+var_20], eax
		mov	[ebx+0Ch], ecx

loc_A177B:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+645j
		test	byte ptr [ebx+15h], 1
		mov	[ebp+var_2C], eax
		jnz	loc_A1833

loc_A1788:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+59Dj
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A18C0
		mov	ecx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, ecx
		jnz	loc_A18E0
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		movzx	eax, word ptr [edx+eax]

loc_A17B8:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+672j
		add	ecx, 2
		mov	word ptr [ebp+var_20], ax
		mov	[ebx+0Ch], ecx
		mov	[ebp+var_4A], ax
		fild	[ebp+var_4A]
		fmul	ds:flt_1ED984

loc_A17CF:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+5C9j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+638j
		lea	edx, [ebp+var_2C]
		add	edi, 1
		fstp	[ebp+var_28]
		mov	[esp+8], edx
		mov	eax, [esi+3Ch]
		mov	[esp+4], eax
		lea	eax, [esi+30h]
		mov	[esp], eax
		call	_ZN10CUtlVectorI15CEmphasisSample10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)
		cmp	[ebp+var_54], edi
		jle	loc_A1990

loc_A17F7:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+4A8j
		test	byte ptr [ebx+15h], 1
		mov	[ebp+var_24], 0
		jz	loc_A1740
		lea	edx, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], edx
		mov	dword ptr [esp+4], (offset aMin_F+6)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	eax, [ebp+var_20]
		test	byte ptr [ebx+15h], 1
		mov	[ebp+var_2C], eax
		jz	loc_A1788

loc_A1833:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+4F2j
		lea	eax, [ebp+var_20]
		mov	word ptr [ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		fild	word ptr [ebp+var_20]
		fmul	ds:flt_1ED984
		jmp	loc_A17CF
; ---------------------------------------------------------------------------
		align 10h

loc_A1860:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+2AAj
		mov	word ptr [ebp+var_20], 0
		mov	word ptr [ebp+var_58], 0
		jmp	loc_A1566
; ---------------------------------------------------------------------------
		align 8

loc_A1878:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+337j
		xor	eax, eax
		mov	[ebp+var_1C], eax
		jmp	loc_A15F0
; ---------------------------------------------------------------------------
		align 8

loc_A1888:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+2F2j
		xor	edi, edi
		mov	[ebp+var_20], edi
		jmp	loc_A15AB
; ---------------------------------------------------------------------------
		align 8

loc_A1898:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+2B9j
		sub	edx, [ebx+20h]
		movzx	ecx, word ptr [ebp+var_20]
		add	edx, [ebx]
		mov	word ptr [ebp+var_1C], cx
		cmovz	edx, [ebp+var_50]
		movzx	ecx, byte ptr [edx+1]
		mov	byte ptr [ebp+var_1C], cl
		movzx	edx, byte ptr [edx]
		mov	byte ptr [ebp+var_1C+1], dl
		movzx	edx, word ptr [ebp+var_1C]
		jmp	loc_A1558
; ---------------------------------------------------------------------------
		align 10h

loc_A18C0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+50Aj
		mov	word ptr [ebp+var_20], 0
		fldz
		jmp	loc_A17CF
; ---------------------------------------------------------------------------
		align 10h

loc_A18D0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+4C2j
		xor	eax, eax
		mov	[ebp+var_20], eax
		jmp	loc_A177B
; ---------------------------------------------------------------------------
		align 10h

loc_A18E0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+519j
		sub	eax, [ebx+20h]
		movzx	edx, word ptr [ebp+var_20]
		add	eax, [ebx]
		mov	word ptr [ebp+var_1C], dx
		cmovz	eax, [ebp+var_50]
		movzx	edx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_1C], dl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, word ptr [ebp+var_1C]
		jmp	loc_A17B8
; ---------------------------------------------------------------------------
		align 10h

loc_A1910:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+30Cj
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	edi, [ebp+var_1C]
		jmp	loc_A15A2
; ---------------------------------------------------------------------------
		align 8

loc_A1938:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+351j
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		jmp	loc_A15E7
; ---------------------------------------------------------------------------
		align 10h

loc_A1960:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+4DCj
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		jmp	loc_A1772
; ---------------------------------------------------------------------------

loc_A1984:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+46Cj
		mov	word ptr [ebp+var_1C], 0
		lea	esi, [esi+0]

loc_A1990:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+49Aj
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+561j
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1A20
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1A44
		mov	edx, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	eax, edx
		add	edx, 1
		sub	eax, [ebx+20h]
		movzx	eax, byte ptr [ecx+eax]
		mov	[ebx+0Ch], edx
		test	al, al
		mov	byte ptr [ebp+var_1C], al
		setnz	al
		db	66h
		nop

loc_A19D0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+7B2j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+7BAj	...
		mov	[esi+4Ah], al
		mov	eax, [ebp+var_5C]
		mov	byte ptr [esi+48h], 1
		mov	[esp], eax
		call	_ZN11CPhonemeTagD2Ev ; CPhonemeTag::~CPhonemeTag()
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A19F0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+454j
		lea	eax, [ebp+var_1C]
		mov	word ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		movzx	eax, word ptr [ebp+var_1C]
		jmp	loc_A1724
; ---------------------------------------------------------------------------
		align 10h

loc_A1A20:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+704j
		lea	eax, [ebp+var_1C]
		mov	byte ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset a_C+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		cmp	byte ptr [ebp+var_1C], 0
		setnz	al
		jmp	short loc_A19D0
; ---------------------------------------------------------------------------

loc_A1A44:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+71Cj
		mov	byte ptr [ebp+var_1C], 0
		xor	eax, eax
		jmp	short loc_A19D0
; ---------------------------------------------------------------------------

loc_A1A4C:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+1B0j
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		movzx	edx, word ptr [ebp+var_20]
		mov	[ebp+var_60], edx

loc_A1A71:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+21Bj
		mov	eax, [ebp+var_60]
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_30], 0
		test	eax, eax
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_3A], 0
		jz	loc_A1D04
		lea	eax, [ebp+var_44]
		mov	[ebp+var_54], 0
		lea	edx, [ebp+var_1C]
		mov	[ebp+var_5C], eax
		mov	[ebp+var_50], edx
		jmp	loc_A1BBC
; ---------------------------------------------------------------------------
		align 8

loc_A1AC8:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+930j
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1C58
		mov	eax, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	edx, eax
		jnz	loc_A1C80
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		mov	edx, [edx]
		mov	[ebp+var_58], edx

loc_A1AF9:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+A20j
		add	eax, 4
		mov	[ebx+0Ch], eax
		mov	eax, [ebp+var_58]
		mov	[ebp+var_1C], eax

loc_A1B05:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+9D6j
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1BF4

loc_A1B0F:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+95Ej
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1C48
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx]
		mov	eax, ecx
		sub	eax, [ebx+20h]
		mov	edi, [edx+eax]
		mov	[ebp+var_20], edi
		test	byte ptr [ebx+34h], 1
		jnz	loc_A1CE0

loc_A1B41:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+A6Fj
		add	ecx, 4
		mov	[ebp+var_20], edi
		mov	[ebx+0Ch], ecx

loc_A1B4A:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+9BDj
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1C1F

loc_A1B54:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+989j
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1C70
		mov	ecx, [ebx+0Ch]
		mov	edx, [ebx]
		mov	eax, ecx
		sub	eax, [ebx+20h]
		mov	eax, [edx+eax]
		mov	[ebp+var_1C], eax
		test	byte ptr [ebx+34h], 1
		jnz	loc_A1CB8

loc_A1B86:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+A47j
		add	ecx, 4
		mov	[ebp+var_1C], eax
		mov	[ebx+0Ch], ecx

loc_A1B8F:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+9B0j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+9E5j
		movzx	edx, word ptr [ebp+var_58]
		mov	[ebp+var_40], eax
		mov	eax, [ebp+var_5C]
		mov	[ebp+var_44], edi
		mov	[esp], esi
		mov	[ebp+var_3C], dx
		mov	[esp+4], eax
		call	_ZN9CSentence17AddRuntimePhonemeEPK11CPhonemeTag ; CSentence::AddRuntimePhoneme(CPhonemeTag  const*)
		add	[ebp+var_54], 1
		mov	edx, [ebp+var_60]
		cmp	[ebp+var_54], edx
		jz	loc_A1D0A

loc_A1BBC:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+82Cj
		test	byte ptr [ebx+15h], 1
		jz	loc_A1AC8
		lea	edx, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		mov	[esp+8], edx
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	eax, [ebp+var_1C]
		test	byte ptr [ebx+15h], 1
		mov	[ebp+var_58], eax
		jz	loc_A1B0F

loc_A1BF4:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+879j
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aMin_F+6)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		test	byte ptr [ebx+15h], 1
		mov	edi, [ebp+var_20]
		jz	loc_A1B54

loc_A1C1F:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+8BEj
		lea	edx, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		mov	[esp+8], edx
		mov	dword ptr [esp+4], (offset aMin_F+6)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	eax, [ebp+var_1C]
		jmp	loc_A1B8F
; ---------------------------------------------------------------------------
		align 4

loc_A1C48:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+891j
		xor	edi, edi
		mov	[ebp+var_20], edi
		jmp	loc_A1B4A
; ---------------------------------------------------------------------------
		align 8

loc_A1C58:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+84Aj
		mov	[ebp+var_1C], 0
		mov	[ebp+var_58], 0
		jmp	loc_A1B05
; ---------------------------------------------------------------------------
		align 10h

loc_A1C70:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+8D6j
		xor	eax, eax
		mov	[ebp+var_1C], eax
		jmp	loc_A1B8F
; ---------------------------------------------------------------------------
		align 10h

loc_A1C80:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+859j
		sub	edx, [ebx+20h]
		mov	ecx, [ebp+var_1C]
		add	edx, [ebx]
		mov	[ebp+var_20], ecx
		cmovz	edx, [ebp+var_50]
		movzx	ecx, byte ptr [edx+3]
		mov	byte ptr [ebp+var_20], cl
		movzx	ecx, byte ptr [edx+2]
		mov	byte ptr [ebp+var_20+1], cl
		movzx	ecx, byte ptr [edx+1]
		mov	byte ptr [ebp+var_20+2], cl
		movzx	edx, byte ptr [edx]
		mov	byte ptr [ebp+var_20+3], dl
		mov	edx, [ebp+var_20]
		mov	[ebp+var_58], edx
		jmp	loc_A1AF9
; ---------------------------------------------------------------------------
		align 4

loc_A1CB8:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+8F0j
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		jmp	loc_A1B86
; ---------------------------------------------------------------------------
		align 10h

loc_A1CE0:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+8ABj
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	edi, [ebp+var_1C]
		jmp	loc_A1B41
; ---------------------------------------------------------------------------

loc_A1D04:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+813j
		lea	eax, [ebp+var_44]
		mov	[ebp+var_5C], eax

loc_A1D0A:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+926j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+E77j
		test	byte ptr [ebx+15h], 1
		jnz	loc_A1D9B
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1F54
		mov	edx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, edx
		jz	loc_A20B2
		sub	eax, [ebx+20h]
		lea	ecx, [ebp+var_20]
		add	eax, [ebx]
		cmovz	eax, ecx
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_1C], ecx
		movzx	ecx, byte ptr [eax+3]
		mov	byte ptr [ebp+var_1C], cl
		movzx	ecx, byte ptr [eax+2]
		mov	byte ptr [ebp+var_1C+1], cl
		movzx	ecx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_1C+2], cl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_54], eax

loc_A1D6D:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+E2Cj
		mov	eax, [ebp+var_54]
		add	edx, 4
		mov	[ebx+0Ch], edx
		mov	[ebp+var_20], eax
		jmp	short loc_A1DBF
; ---------------------------------------------------------------------------

loc_A1D7B:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+177j
		lea	eax, [ebp+var_1C]
		mov	byte ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset a_C+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		jmp	loc_A143C
; ---------------------------------------------------------------------------

loc_A1D9B:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+A7Ej
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	edx, [ebp+var_20]
		mov	[ebp+var_54], edx

loc_A1DBF:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+AE9j
		mov	edi, [ebp+var_54]
		test	edi, edi
		jle	loc_A1F5B
		xor	edi, edi
		jmp	loc_A1E83
; ---------------------------------------------------------------------------
		align 8

loc_A1DD8:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+BFBj
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1EF8
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	edx, eax
		sub	edx, [ebx+20h]
		mov	edx, [ecx+edx]
		mov	[ebp+var_1C], edx
		test	byte ptr [ebx+34h], 1
		jnz	loc_A1F08

loc_A1E0A:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+C97j
		add	eax, 4
		mov	[ebp+var_1C], edx
		mov	[ebx+0Ch], eax

loc_A1E13:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+C6Dj
		test	byte ptr [ebx+15h], 1
		mov	[ebp+var_2C], edx
		jnz	loc_A1EBF

loc_A1E20:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+C29j
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A1EE8
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	edx, eax
		sub	edx, [ebx+20h]
		mov	edx, [ecx+edx]
		mov	[ebp+var_20], edx
		test	byte ptr [ebx+34h], 1
		jnz	loc_A1F30

loc_A1E52:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+CBFj
		add	eax, 4
		mov	[ebp+var_20], edx
		mov	[ebx+0Ch], eax

loc_A1E5B:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+C50j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+C5Dj
		mov	[ebp+var_28], edx
		lea	edx, [ebp+var_2C]
		add	edi, 1
		mov	[esp+8], edx
		mov	eax, [esi+3Ch]
		mov	[esp+4], eax
		lea	eax, [esi+30h]
		mov	[esp], eax
		call	_ZN10CUtlVectorI15CEmphasisSample10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)
		cmp	edi, [ebp+var_54]
		jz	loc_A1F5B

loc_A1E83:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+B3Cj
		test	byte ptr [ebx+15h], 1
		mov	[ebp+var_24], 0
		jz	loc_A1DD8
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aMin_F+6)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	edx, [ebp+var_1C]
		test	byte ptr [ebx+15h], 1
		mov	[ebp+var_2C], edx
		jz	loc_A1E20

loc_A1EBF:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+B8Aj
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aMin_F+6)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	edx, [ebp+var_20]
		jmp	loc_A1E5B
; ---------------------------------------------------------------------------
		align 4

loc_A1EE8:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+BA2j
		xor	edx, edx
		mov	[ebp+var_20], edx
		jmp	loc_A1E5B
; ---------------------------------------------------------------------------
		align 8

loc_A1EF8:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+B5Aj
		xor	edx, edx
		mov	[ebp+var_1C], edx
		jmp	loc_A1E13
; ---------------------------------------------------------------------------
		align 8

loc_A1F08:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+B74j
		movzx	edx, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], dl
		movzx	edx, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], dl
		movzx	edx, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], dl
		movzx	edx, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], dl
		mov	edx, [ebp+var_20]
		jmp	loc_A1E0A
; ---------------------------------------------------------------------------
		align 10h

loc_A1F30:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+BBCj
		movzx	edx, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], dl
		movzx	edx, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], dl
		movzx	edx, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], dl
		movzx	edx, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], dl
		mov	edx, [ebp+var_1C]
		jmp	loc_A1E52
; ---------------------------------------------------------------------------

loc_A1F54:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+A96j
		mov	[ebp+var_20], 0

loc_A1F5B:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+B34j
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+BEDj
		test	byte ptr [ebx+15h], 1
		jnz	loc_A200E
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_A210C
		mov	edx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, edx
		jz	loc_A20A6
		sub	eax, [ebx+20h]
		lea	ecx, [ebp+var_1C]
		add	eax, [ebx]
		cmovz	eax, ecx
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_20], ecx
		movzx	ecx, byte ptr [eax+3]
		mov	byte ptr [ebp+var_20], cl
		movzx	ecx, byte ptr [eax+2]
		mov	byte ptr [ebp+var_20+1], cl
		movzx	ecx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_20+2], cl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]

loc_A1FBB:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+E1Dj
		add	edx, 4
		test	eax, eax
		mov	[ebp+var_1C], eax
		mov	[ebx+0Ch], edx
		setnz	al
		jmp	loc_A19D0
; ---------------------------------------------------------------------------

loc_A1FCE:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+13Ej
		lea	eax, [ebp+var_1C]
		mov	byte ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset a_C+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		jmp	loc_A1403
; ---------------------------------------------------------------------------

loc_A1FEE:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+105j
		lea	eax, [ebp+var_1C]
		mov	byte ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset a_C+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		jmp	loc_A13CA
; ---------------------------------------------------------------------------

loc_A200E:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+CCFj
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	ebx, [ebp+var_1C]
		test	ebx, ebx
		setnz	al
		jmp	loc_A19D0
; ---------------------------------------------------------------------------

loc_A2039:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+47Bj
		sub	eax, [ebx+20h]
		lea	ecx, [ebp+var_1C]
		add	eax, [ebx]
		cmovz	eax, ecx
		movzx	ecx, word ptr [ebp+var_1C]
		mov	word ptr [ebp+var_20], cx
		movzx	ecx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_20], cl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, word ptr [ebp+var_20]
		jmp	loc_A171A
; ---------------------------------------------------------------------------

loc_A2062:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+A7j
		sub	eax, [ebx+20h]
		lea	ecx, [ebp+var_1C]
		add	eax, [ebx]
		cmovz	eax, ecx
		movzx	ecx, word ptr [ebp+var_1C]
		mov	word ptr [ebp+var_20], cx
		movzx	ecx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_20], cl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, word ptr [ebp+var_20]
		jmp	loc_A1346
; ---------------------------------------------------------------------------

loc_A208B:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+11Dj
		mov	byte ptr [ebp+var_1C], 0
		jmp	loc_A13CA
; ---------------------------------------------------------------------------

loc_A2094:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+18Fj
		mov	byte ptr [ebp+var_1C], 0
		jmp	loc_A143C
; ---------------------------------------------------------------------------

loc_A209D:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+156j
		mov	byte ptr [ebp+var_1C], 0
		jmp	loc_A1403
; ---------------------------------------------------------------------------

loc_A20A6:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+CF6j
		sub	eax, [ebx+20h]
		add	eax, [ebx]
		mov	eax, [eax]
		jmp	loc_A1FBB
; ---------------------------------------------------------------------------

loc_A20B2:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+AA5j
		sub	eax, [ebx+20h]
		add	eax, [ebx]
		mov	eax, [eax]
		mov	[ebp+var_54], eax
		jmp	loc_A1D6D
; ---------------------------------------------------------------------------

loc_A20C1:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+1D7j
		sub	eax, [ebx+20h]
		add	eax, [ebx]
		mov	eax, [eax]
		jmp	loc_A149C
; ---------------------------------------------------------------------------

loc_A20CD:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+1C8j
		lea	eax, [ebp+var_44]
		mov	[ebp+var_20], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_3A], 0
		mov	[ebp+var_5C], eax
		jmp	loc_A1D0A
; ---------------------------------------------------------------------------

loc_A210C:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+CE7j
		mov	[ebp+var_1C], 0
		xor	eax, eax
		jmp	loc_A19D0
; ---------------------------------------------------------------------------

loc_A211A:				; CODE XREF: CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+276j
		lea	edx, [ebp+var_44]
		mov	[ebp+var_5C], edx
		jmp	loc_A16E0
_ZN9CSentence22CacheRestoreFromBufferER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		mov	edx, [ebp-5Ch]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN11CPhonemeTagD2Ev ; CPhonemeTag::~CPhonemeTag()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::AddWordTag(CWordTag *)
_ZN9CSentence10AddWordTagEP8CWordTag proc near
					; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+127p
					; CSentence::CreateEventWordDistribution(char  const*,float)+19Bp ...

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		lea	edx, [ebp+arg_4]
		mov	[esp+8], edx
		mov	edx, [eax+10h]
		add	eax, 4
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::InsertBefore(int,CWordTag * const&)
		leave
		retn
_ZN9CSentence10AddWordTagEP8CWordTag endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSentence__CreateEventWordDistribution(int, int, float)
_ZN9CSentence27CreateEventWordDistributionEPKcf	proc near

var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
src		= byte ptr -118h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 12Ch
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		jz	loc_A2221
		mov	[esp], ebx
		call	_ZN9CSentence10CountWordsEPKc ;	CSentence::CountWords(char  const*)
		test	eax, eax
		jle	loc_A2221
		fld	ds:dbl_1ED9A0
		mov	[ebp+var_11C], eax
		fsubr	[ebp+arg_8]
		mov	eax, [ebp+arg_0]
		fild	[ebp+var_11C]
		mov	[esp], eax
		fdivp	st(1), st
		fstp	[ebp+var_124]
		call	_ZN9CSentence5ResetEv ;	CSentence::Reset(void)
		lea	edx, [ebp+src]
		fld	ds:flt_1EC10C
		fstp	[ebp+var_120]
		lea	esi, [esi+0]

loc_A21D8:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+DCj
					; CSentence::CreateEventWordDistribution(char  const*,float)+132j
		movzx	edi, byte ptr [ebx]
		mov	eax, edi
		test	al, al
		jz	short loc_A2211

loc_A21E1:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+9Fj
		mov	eax, edi
		mov	[ebp+var_128], edx
		movsx	esi, al
		mov	[esp], esi
		call	_ZN9CSentence15ShouldSplitWordEc ; CSentence::ShouldSplitWord(char)
		mov	edx, [ebp+var_128]
		test	al, al
		jnz	short loc_A2230
		add	ebx, 1
		mov	eax, edi
		movzx	edi, byte ptr [ebx]
		mov	[edx], al
		add	edx, 1
		mov	eax, edi
		test	al, al
		jnz	short loc_A21E1

loc_A2211:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+6Fj
		mov	byte ptr [edx],	0
		cmp	[ebp+src], 0
		jnz	loc_A22C8

loc_A2221:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+11j
					; CSentence::CreateEventWordDistribution(char  const*,float)+21j
		add	esp, 12Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A2230:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+8Cj
		mov	byte ptr [edx],	0

loc_A2233:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+14Dj
		mov	[esp], esi
		call	_ZN9CSentence15ShouldSplitWordEc ; CSentence::ShouldSplitWord(char)
		test	al, al
		jnz	short loc_A22B0

loc_A223F:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+148j
		cmp	[ebp+src], 0
		lea	edx, [ebp+src]
		jz	short loc_A21D8
		mov	dword ptr [esp], 2Ch
		call	_Znwj		; operator new(uint)
		mov	esi, eax
		mov	[esp], eax
		call	_ZN8CWordTagC2Ev ; CWordTag::CWordTag(void)
		lea	eax, [ebp+src]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; src
		call	_ZN8CWordTag7SetWordEPKc ; CWordTag::SetWord(char  const*)
		mov	eax, [ebp+arg_0]
		fld	[ebp+var_120]
		fst	dword ptr [esi]
		fadd	[ebp+var_124]
		fst	[ebp+var_120]
		fstp	dword ptr [esi+4]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZN9CSentence10AddWordTagEP8CWordTag ; CSentence::AddWordTag(CWordTag *)
		lea	edx, [ebp+src]
		jmp	loc_A21D8
; ---------------------------------------------------------------------------
		align 10h

loc_A22B0:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+CDj
		add	ebx, 1
		movzx	eax, byte ptr [ebx]
		test	al, al
		jz	short loc_A223F
		movsx	esi, al
		jmp	loc_A2233
; ---------------------------------------------------------------------------
		align 8

loc_A22C8:				; CODE XREF: CSentence::CreateEventWordDistribution(char  const*,float)+ABj
		mov	dword ptr [esp], 2Ch
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN8CWordTagC2Ev ; CWordTag::CWordTag(void)
		lea	eax, [ebp+src]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN8CWordTag7SetWordEPKc ; CWordTag::SetWord(char  const*)
		mov	eax, [ebp+arg_0]
		fld	[ebp+var_120]
		fst	dword ptr [ebx]
		fadd	[ebp+var_124]
		fstp	dword ptr [ebx+4]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN9CSentence10AddWordTagEP8CWordTag ; CSentence::AddWordTag(CWordTag *)
		add	esp, 12Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence27CreateEventWordDistributionEPKcf	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSentence__Append(int, float, int)
_ZN9CSentence6AppendEfRKS_ proc	near

var_1028	= dword	ptr -1028h
var_1024	= dword	ptr -1024h
var_1020	= dword	ptr -1020h
src		= dword	ptr -101Ch
s		= byte ptr -1018h
var_1014	= dword	ptr -1014h
var_1010	= dword	ptr -1010h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 103Ch
		mov	esi, [ebp+arg_8]
		mov	eax, [esi+10h]
		test	eax, eax
		jle	loc_A23BC
		xor	edi, edi
		lea	esi, [esi+0]

loc_A2340:				; CODE XREF: CSentence::Append(float,CSentence const&)+9Aj
		mov	eax, [esi+4]
		mov	edx, [eax+edi*4]
		mov	dword ptr [esp], 2Ch
		mov	[ebp+var_1028],	edx
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1028]
		mov	ebx, eax
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN8CWordTagC2ERKS_ ; CWordTag::CWordTag(CWordTag const&)
		fld	[ebp+arg_4]
		fadd	dword ptr [ebx]
		mov	ecx, [ebx+14h]
		fstp	dword ptr [ebx]
		test	ecx, ecx
		fld	[ebp+arg_4]
		fadd	dword ptr [ebx+4]
		fstp	dword ptr [ebx+4]
		jle	short loc_A23A5
		xor	edx, edx
		lea	esi, [esi+0]

loc_A2388:				; CODE XREF: CSentence::Append(float,CSentence const&)+83j
		mov	eax, [ebx+8]
		fld	[ebp+arg_4]
		mov	eax, [eax+edx*4]
		add	edx, 1
		cmp	edx, ecx
		fadd	dword ptr [eax]
		fstp	dword ptr [eax]
		fld	[ebp+arg_4]
		fadd	dword ptr [eax+4]
		fstp	dword ptr [eax+4]
		jnz	short loc_A2388

loc_A23A5:				; CODE XREF: CSentence::Append(float,CSentence const&)+61j
		mov	[esp+4], ebx
		mov	ebx, [ebp+arg_0]
		add	edi, 1
		mov	[esp], ebx
		call	_ZN9CSentence10AddWordTagEP8CWordTag ; CSentence::AddWordTag(CWordTag *)
		cmp	[esi+10h], edi
		jg	short loc_A2340

loc_A23BC:				; CODE XREF: CSentence::Append(float,CSentence const&)+14j
		mov	eax, [esi]
		mov	edx, (offset asc_20E578+4)
		mov	ecx, edx
		test	eax, eax
		cmovnz	ecx, eax
		cmp	byte ptr [ecx],	0
		jz	short loc_A241E
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx]
		mov	ebx, edx
		test	ecx, ecx
		cmovnz	ebx, ecx
		test	eax, eax
		cmovz	eax, edx
		cmp	byte ptr [ebx],	0
		jnz	loc_A24D3
		lea	ebx, [ebp+s]
		mov	dword ptr [esp+8], 1000h ; n
		mov	[esp+4], eax	; src
		mov	[ebp+src], ebx
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_A2409:				; CODE XREF: CSentence::Append(float,CSentence const&)+1DFj
		mov	edx, [ebp+src]
		mov	ebx, [ebp+arg_0]
		mov	[esp+4], edx	; src
		mov	[esp], ebx	; int
		call	_ZN9CSentence7SetTextEPKc ; CSentence::SetText(char  const*)

loc_A241E:				; CODE XREF: CSentence::Append(float,CSentence const&)+ADj
		mov	edx, [esi+3Ch]
		test	edx, edx
		mov	[ebp+var_1020],	edx
		jle	loc_A24BA
		mov	eax, [ebp+arg_0]
		lea	edx, [ebp+s]
		xor	ebx, ebx
		mov	[ebp+src], edx
		mov	edx, esi
		mov	esi, [ebp+arg_0]
		xor	edi, edi
		add	eax, 30h
		mov	[ebp+var_1024],	eax

loc_A2450:				; CODE XREF: CSentence::Append(float,CSentence const&)+196j
		mov	eax, [edx+30h]
		add	edi, 1
		fld	[ebp+arg_4]
		mov	ecx, [eax+ebx]
		mov	dword ptr [ebp+s], ecx
		mov	ecx, [eax+ebx+4]
		fadd	dword ptr [ebp+s]
		mov	[ebp+var_1014],	ecx
		mov	eax, [eax+ebx+8]
		add	ebx, 0Ch
		fstp	dword ptr [ebp+s]
		mov	[ebp+var_1010],	eax
		mov	eax, [ebp+src]
		mov	[esp+8], eax
		mov	eax, [esi+3Ch]
		mov	[ebp+var_1028],	edx
		mov	[esp+4], eax
		mov	eax, [ebp+var_1024]
		mov	[esp], eax
		call	_ZN10CUtlVectorI15CEmphasisSample10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)
		cmp	edi, [ebp+var_1020]
		mov	edx, [ebp+var_1028]
		jnz	short loc_A2450
		mov	esi, edx

loc_A24BA:				; CODE XREF: CSentence::Append(float,CSentence const&)+109j
		mov	ebx, [ebp+arg_0]
		movzx	eax, byte ptr [esi+4Ah]
		or	al, [ebx+4Ah]
		setnz	byte ptr [ebx+4Ah]
		add	esp, 103Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A24D3:				; CODE XREF: CSentence::Append(float,CSentence const&)+C3j
		lea	edx, [ebp+s]
		mov	[esp+10h], eax
		mov	[esp+0Ch], ebx	; arg
		mov	dword ptr [esp+8], offset aSS_3	; "%s %s"
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[ebp+src], edx
		mov	[esp], edx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_A2409
_ZN9CSentence6AppendEfRKS_ endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::operator=(CSentence const&)
_ZN9CSentenceaSERKS_ proc near

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	[esp], eax
		call	_ZN9CSentence5ResetEv ;	CSentence::Reset(void)
		mov	eax, [ebx+10h]
		test	eax, eax
		jle	short loc_A257D
		xor	esi, esi

loc_A2540:				; CODE XREF: CSentence::operator=(CSentence const&)+5Bj
		mov	eax, [ebx+4]
		mov	edx, [eax+esi*4]
		mov	dword ptr [esp], 2Ch
		mov	[ebp+var_48], edx
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_48]
		mov	edi, eax
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN8CWordTagC2ERKS_ ; CWordTag::CWordTag(CWordTag const&)
		mov	eax, [ebp+arg_0]
		add	esi, 1
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9CSentence10AddWordTagEP8CWordTag ; CSentence::AddWordTag(CWordTag *)
		cmp	[ebx+10h], esi
		jg	short loc_A2540

loc_A257D:				; CODE XREF: CSentence::operator=(CSentence const&)+1Cj
		mov	eax, [ebx]
		mov	edx, (offset asc_20E578+4)
		test	eax, eax
		cmovz	eax, edx
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_ZN9CSentence7SetTextEPKc ; CSentence::SetText(char  const*)
		mov	edx, [ebp+arg_0]
		mov	eax, [ebx+2Ch]
		mov	[edx+2Ch], eax
		mov	edx, [ebx+3Ch]
		test	edx, edx
		mov	[ebp+var_3C], edx
		jle	short loc_A260B
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		xor	edi, edi
		lea	esi, [ebp+var_30]
		mov	[ebp+var_44], esi
		mov	esi, edx
		mov	edx, ebx
		mov	ebx, [ebp+arg_0]
		add	eax, 30h
		mov	[ebp+var_40], eax
		lea	esi, [esi+0]

loc_A25C8:				; CODE XREF: CSentence::operator=(CSentence const&)+E7j
		mov	eax, [edx+30h]
		add	esi, 1
		mov	ecx, [eax+edi]
		mov	[ebp+var_30], ecx
		mov	ecx, [eax+edi+4]
		mov	[ebp+var_2C], ecx
		mov	eax, [eax+edi+8]
		add	edi, 0Ch
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_44]
		mov	[esp+8], eax
		mov	eax, [ebx+3Ch]
		mov	[ebp+var_48], edx
		mov	[esp+4], eax
		mov	eax, [ebp+var_40]
		mov	[esp], eax
		call	_ZN10CUtlVectorI15CEmphasisSample10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)
		cmp	esi, [ebp+var_3C]
		mov	edx, [ebp+var_48]
		jnz	short loc_A25C8
		mov	ebx, edx

loc_A260B:				; CODE XREF: CSentence::operator=(CSentence const&)+89j
		movzx	eax, byte ptr [ebx+4Bh]
		mov	edx, [ebp+arg_0]
		mov	[edx+4Bh], al
		mov	eax, [ebx+24h]
		test	eax, eax
		mov	[ebp+var_3C], eax
		jle	short loc_A268A
		lea	esi, [ebp+var_30]
		xor	edi, edi
		lea	esi, [esi+0]

loc_A2628:				; CODE XREF: CSentence::operator=(CSentence const&)+168j
		mov	eax, [ebx+18h]
		mov	eax, [eax+edi*4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	word ptr [ebp+var_28], 0
		mov	byte ptr [ebp+var_28+2], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	edx, [eax]
		mov	[esi], edx
		mov	edx, [eax+4]
		mov	[esi+4], edx
		mov	eax, [eax+8]
		mov	[esi+8], eax
		mov	eax, [ebp+arg_0]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZN9CSentence17AddRuntimePhonemeEPK11CPhonemeTag ; CSentence::AddRuntimePhoneme(CPhonemeTag  const*)
		add	edi, 1
		mov	[esp], esi
		call	_ZN11CPhonemeTagD2Ev ; CPhonemeTag::~CPhonemeTag()
		cmp	edi, [ebp+var_3C]
		jnz	short loc_A2628

loc_A268A:				; CODE XREF: CSentence::operator=(CSentence const&)+FDj
		movzx	eax, byte ptr [ebx+4Ah]
		mov	edx, [ebp+arg_0]
		mov	[edx+4Ah], al
		movzx	eax, byte ptr [ebx+49h]
		mov	[edx+49h], al
		mov	eax, [ebx+44h]
		mov	[edx+44h], eax
		movzx	eax, byte ptr [ebx+48h]
		mov	[edx+48h], al
		add	esp, 4Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentenceaSERKS_ endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN11CPhonemeTagD2Ev ; CPhonemeTag::~CPhonemeTag()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ParseWords(CUtlBuffer &)
_ZN9CSentence10ParseWordsER10CUtlBuffer	proc near
					; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+122p

var_1248	= qword	ptr -1248h
var_1238	= qword	ptr -1238h
var_122C	= dword	ptr -122Ch
var_1228	= qword	ptr -1228h
var_1220	= qword	ptr -1220h
src		= byte ptr -1218h
dest		= byte ptr -218h
var_118		= byte ptr -118h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		lea	ebx, [ebp+src]
		sub	esp, 124Ch
		mov	esi, [ebp+arg_4]
		lea	esi, [esi+0]

loc_A26F8:				; CODE XREF: CSentence::ParseWords(CUtlBuffer &)+170j
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], offset s2 ; "}"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	loc_A29A0
		mov	dword ptr [esp+4], offset aWord	; "WORD"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_A29A0
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		lea	eax, [ebp+dest]
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		mov	dword ptr [esp+8], 100h	; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], ebx	; nptr
		call	strtod
		mov	dword ptr [esp+8], 0 ; int
		fstp	[ebp+var_1220]
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], ebx	; nptr
		call	strtod
		mov	dword ptr [esp], 2Ch
		fstp	[ebp+var_1228]
		call	_Znwj		; operator new(uint)
		lea	edx, [ebp+dest]
		mov	edi, eax
		mov	[esp+4], edx	; src
		mov	[esp], eax	; int
		call	_ZN8CWordTagC2EPKc ; CWordTag::CWordTag(char  const*)
		mov	eax, [ebp+arg_0]
		fld	[ebp+var_1220]
		fstp	dword ptr [edi]
		fld	[ebp+var_1228]
		fstp	dword ptr [edi+4]
		mov	[esp], eax
		mov	[esp+4], edi
		call	_ZN9CSentence10AddWordTagEP8CWordTag ; CSentence::AddWordTag(CWordTag *)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], (offset aLoadfrombuffer+18h)	; s2
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_A29A0

loc_A282A:				; CODE XREF: CSentence::ParseWords(CUtlBuffer &)+2BAj
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], offset s2 ; "}"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	loc_A26F8
		mov	dword ptr [esp+8], 0Ah ; base
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], ebx	; nptr
		call	strtol
		mov	dword ptr [esp+8], 0 ; int
		mov	[ebp+var_122C],	eax
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		lea	eax, [ebp+var_118]
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		mov	dword ptr [esp+8], 100h	; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], ebx	; nptr
		call	strtod
		mov	dword ptr [esp+8], 0 ; int
		fstp	[ebp+var_1238]
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], ebx	; nptr
		call	strtod
		mov	dword ptr [esp+8], 0 ; int
		fstp	[ebp+var_1248]
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], ebx	; nptr
		call	strtod
		fstp	st
		mov	dword ptr [esp], 18h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	byte ptr [eax+0Ah], 0
		mov	edx, [ebp+var_122C]
		mov	[eax+8], dx
		lea	edx, [ebp+var_118]
		mov	[esp], eax	; int
		mov	[ebp+var_122C],	eax
		mov	[esp+4], edx	; src
		call	_ZN11CPhonemeTag6SetTagEPKc ; CPhonemeTag::SetTag(char	const*)
		mov	eax, [ebp+var_122C]
		fld	[ebp+var_1238]
		fstp	dword ptr [eax]
		fld	[ebp+var_1248]
		fstp	dword ptr [eax+4]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9CSentence13AddPhonemeTagEP8CWordTagP11CPhonemeTag ;	CSentence::AddPhonemeTag(CWordTag *,CPhonemeTag	*)
		jmp	loc_A282A
; ---------------------------------------------------------------------------
		align 10h

loc_A29A0:				; CODE XREF: CSentence::ParseWords(CUtlBuffer &)+3Ej
					; CSentence::ParseWords(CUtlBuffer &)+56j ...
		add	esp, 124Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence10ParseWordsER10CUtlBuffer	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::ParseDataVersionOnePointZero(CUtlBuffer &)
_ZN9CSentence28ParseDataVersionOnePointZeroER10CUtlBuffer proc near
					; CODE XREF: CSentence::InitFromBuffer(CUtlBuffer &)+93p

dest		= byte ptr -1118h
var_118		= byte ptr -118h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_118]
		push	ebx
		lea	ebx, [ebp+dest]
		sub	esp, 111Ch
		mov	edi, [ebp+arg_4]
		nop
		lea	esi, [esi+0]

loc_A29E0:				; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+DFj
					; CSentence::ParseDataVersionOnePointZero(CUtlBuffer &)+F4j ...
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		cmp	byte ptr [ebx],	0
		jz	loc_A2B20
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], ebx	; src
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], (offset aLoadfrombuffer+18h)	; s2
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_A2B20
		mov	dword ptr [esp+4], offset aPlaintext_0 ; "PLAINTEXT"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_A2AC0
		mov	dword ptr [esp+4], offset aWords_0 ; "WORDS"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_A2AD8
		mov	dword ptr [esp+4], offset aEmphasis_0 ;	"EMPHASIS"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_A2AF0
		mov	dword ptr [esp+4], offset aClosecaption_0 ; "CLOSECAPTION"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_A2B08
		mov	dword ptr [esp+4], offset aOptions_0 ; "OPTIONS"
		mov	[esp], esi	; s1
		call	strcasecmp
		test	eax, eax
		jnz	loc_A29E0
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9CSentence12ParseOptionsER10CUtlBuffer ; CSentence::ParseOptions(CUtlBuffer &)
		jmp	loc_A29E0
; ---------------------------------------------------------------------------
		align 10h

loc_A2AC0:				; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+8Fj
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9CSentence14ParsePlaintextER10CUtlBuffer ; CSentence::ParsePlaintext(CUtlBuffer &)
		jmp	loc_A29E0
; ---------------------------------------------------------------------------
		align 8

loc_A2AD8:				; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+A3j
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9CSentence10ParseWordsER10CUtlBuffer	; CSentence::ParseWords(CUtlBuffer &)
		jmp	loc_A29E0
; ---------------------------------------------------------------------------
		align 10h

loc_A2AF0:				; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+B7j
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9CSentence13ParseEmphasisER10CUtlBuffer ; CSentence::ParseEmphasis(CUtlBuffer &)
		jmp	loc_A29E0
; ---------------------------------------------------------------------------
		align 8

loc_A2B08:				; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+CBj
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9CSentence17ParseCloseCaptionER10CUtlBuffer ; CSentence::ParseCloseCaption(CUtlBuffer &)
		jmp	loc_A29E0
; ---------------------------------------------------------------------------
		align 10h

loc_A2B20:				; CODE XREF: CSentence::ParseDataVersionOnePointZero(CUtlBuffer	&)+37j
					; CSentence::ParseDataVersionOnePointZero(CUtlBuffer &)+77j
		add	esp, 111Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CSentence28ParseDataVersionOnePointZeroER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSentence::InitFromBuffer(CUtlBuffer &)
_ZN9CSentence14InitFromBufferER10CUtlBuffer proc near
					; CODE XREF: CSentence::InitFromDataChunk(void *,int)+6Bp

dest		= byte ptr -1018h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1028h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+dest]
		mov	[esp], edi
		call	_ZN9CSentence5ResetEv ;	CSentence::Reset(void)
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], offset aVersion_0 ; "VERSION"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_A2B90

loc_A2B7E:				; CODE XREF: CSentence::InitFromBuffer(CUtlBuffer &)+8Aj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A2B90:				; CODE XREF: CSentence::InitFromBuffer(CUtlBuffer &)+4Cj
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], ebx	; dest
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer9GetStringEPci ;	CUtlBuffer::GetString(char *,int)
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], ebx	; nptr
		call	strtod
		fld1
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_A2B7E
		mov	[esp+4], esi
		mov	[esp], edi
		call	_ZN9CSentence28ParseDataVersionOnePointZeroER10CUtlBuffer ; CSentence::ParseDataVersionOnePointZero(CUtlBuffer &)
		mov	byte ptr [edi+48h], 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CSentence14InitFromBufferER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSentence__InitFromDataChunk(int,	void *src, size_t n)
_ZN9CSentence17InitFromDataChunkEPvi proc near

ptr		= dword	ptr -40h
var_38		= dword	ptr -38h
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
n		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	ebx, [ebp+ptr]
		sub	esp, 50h
		mov	esi, [ebp+n]
		mov	dword ptr [esp+0Ch], 1 ; int
		mov	dword ptr [esp+8], 0 ; size
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], ebx	; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlBuffer14EnsureCapacityEi ; CUtlBuffer::EnsureCapacity(int)
		mov	eax, [ebp+src]
		mov	[esp+8], esi	; n
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN10CUtlBuffer3PutEPKvi ; CUtlBuffer::Put(void	 const*,int)
		mov	[esp+8], esi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN10CUtlBuffer7SeekPutENS_10SeekType_tEi ; CUtlBuffer::SeekPut(CUtlBuffer::SeekType_t,int)
		mov	eax, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN9CSentence14InitFromBufferER10CUtlBuffer ; CSentence::InitFromBuffer(CUtlBuffer &)
		mov	eax, [ebp+var_38]
		test	eax, eax
		js	short loc_A2C66
		mov	eax, [ebp+ptr]
		test	eax, eax
		jz	short loc_A2C66
		mov	[esp], eax	; ptr
		call	free

loc_A2C66:				; CODE XREF: CSentence::InitFromDataChunk(void *,int)+75j
					; CSentence::InitFromDataChunk(void *,int)+7Cj
		add	esp, 50h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN9CSentence17InitFromDataChunkEPvi endp

; ---------------------------------------------------------------------------
		cmp	dword ptr [ebp-38h], 0
		mov	ebx, eax
		js	short loc_A2C84
		mov	edx, [ebp-40h]
		test	edx, edx
		jz	short loc_A2C84
		mov	[esp], edx
		call	free

loc_A2C84:				; CODE XREF: .text:000A2C73j
					; .text:000A2C7Aj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CWordTag *, CUtlMemory<CWordTag *,	int>>::Remove(int)
_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE6RemoveEi proc near
					; CODE XREF: CSentence::Reset(void)+44p
					; CSentence::ResetToBase(void)+48p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		sub	ecx, 1
		test	ecx, ecx
		jle	short loc_A2CCA
		mov	eax, [ebx]
		shl	ecx, 2
		mov	[esp+8], ecx	; n
		lea	ecx, [eax+edx*4+4]
		lea	eax, [eax+edx*4]
		mov	[esp+4], ecx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx+0Ch]

loc_A2CCA:				; CODE XREF: CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::Remove(int)+19j
		sub	eax, 1
		mov	[ebx+0Ch], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE6RemoveEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CPhonemeTag *, int>::Purge(void)
_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv proc near ; CODE XREF:	.text:000A0CE1p
					; .text:000A0CEFp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+8]
		test	ecx, ecx
		js	short loc_A2D0C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A2D05
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A2D05:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A2D0C:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP11CPhonemeTagiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CWordTag *, int>::Purge(void)
_ZN10CUtlMemoryIP8CWordTagiE5PurgeEv proc near ; CODE XREF: CSentence::~CSentence()+6Ep
					; CSentence::~CSentence()+82j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_A2D4C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A2D45
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A2D45:				; CODE XREF: CUtlMemory<CWordTag *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A2D4C:				; CODE XREF: CUtlMemory<CWordTag *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP8CWordTagiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CBasePhonemeTag *,	int>::Purge(void)
_ZN10CUtlMemoryIP15CBasePhonemeTagiE5PurgeEv proc near
					; CODE XREF: CSentence::~CSentence()+4Ep
					; CSentence::~CSentence()+5Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_A2D8C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A2D85
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A2D85:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A2D8C:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP15CBasePhonemeTagiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CEmphasisSample, int>::Purge(void)
_ZN10CUtlMemoryI15CEmphasisSampleiE5PurgeEv proc near
					; CODE XREF: CSentence::~CSentence()+2Ep
					; CSentence::~CSentence()+3Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_A2DCC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A2DC5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A2DC5:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A2DCC:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15CEmphasisSampleiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CPhonemeTag *, int>::Grow(int)
_ZN10CUtlMemoryIP11CPhonemeTagiE4GrowEi	proc near
					; CODE XREF: CUtlVector<CPhonemeTag *,CUtlMemory<CPhonemeTag *,int>>::InsertBefore(int,CPhonemeTag * const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A2E30
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A2E40
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A2E16
		lea	esi, [esi+0]

loc_A2E10:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A2E10

loc_A2E16:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Grow(int)+2Aj
					; CUtlMemory<CPhonemeTag *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_A2E73

loc_A2E22:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A2E30:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A2E40:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A2E16
		lea	esi, [esi+0]

loc_A2E58:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A2E58
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_A2E22

loc_A2E73:				; CODE XREF: CUtlMemory<CPhonemeTag *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP11CPhonemeTagiE4GrowEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CPhonemeTag *, CUtlMemory<CPhonemeTag *, int>>::InsertBefore(int, CPhonemeTag * const&)
_ZN10CUtlVectorIP11CPhonemeTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: CSentence::AddPhonemeTag(CWordTag *,CPhonemeTag *)+1Dp
					; CWordTag::CWordTag(CWordTag const&)+C3p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_A2F00

loc_A2EAF:				; CODE XREF: CUtlVector<CPhonemeTag *,CUtlMemory<CPhonemeTag *,int>>::InsertBefore(int,CPhonemeTag * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_A2EE6
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_A2EE6:				; CODE XREF: CUtlVector<CPhonemeTag *,CUtlMemory<CPhonemeTag *,int>>::InsertBefore(int,CPhonemeTag * const&)+38j
		add	edi, eax
		jz	short loc_A2EF1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_A2EF1:				; CODE XREF: CUtlVector<CPhonemeTag *,CUtlMemory<CPhonemeTag *,int>>::InsertBefore(int,CPhonemeTag * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A2F00:				; CODE XREF: CUtlVector<CPhonemeTag *,CUtlMemory<CPhonemeTag *,int>>::InsertBefore(int,CPhonemeTag * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP11CPhonemeTagiE4GrowEi	; CUtlMemory<CPhonemeTag *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_A2EAF
_ZN10CUtlVectorIP11CPhonemeTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CEmphasisSample, int>::Grow(int)
_ZN10CUtlMemoryI15CEmphasisSampleiE4GrowEi proc	near
					; CODE XREF: CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)+9Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A2F73
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A2F80
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A2F56
		lea	esi, [esi+0]

loc_A2F50:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A2F50

loc_A2F56:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Grow(int)+2Aj
					; CUtlMemory<CEmphasisSample,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_A2FB6

loc_A2F65:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Grow(int)+94j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A2F73:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A2F80:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A2F56
		lea	esi, [esi+0]

loc_A2F98:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A2F98
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jnz	short loc_A2F65

loc_A2FB6:				; CODE XREF: CUtlMemory<CEmphasisSample,int>::Grow(int)+43j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15CEmphasisSampleiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CEmphasisSample, CUtlMemory<CEmphasisSample, int>>::InsertBefore(int, CEmphasisSample const&)
_ZN10CUtlVectorI15CEmphasisSample10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: CSentence::ParseEmphasis(CUtlBuffer &)+ABp
					; CSentence::CacheRestoreFromBuffer(CUtlBuffer &)+559p	...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_A3060

loc_A2FF2:				; CODE XREF: CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)+A4j
		lea	ecx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], ecx
		lea	edx, [esi+esi*2]
		sub	ecx, esi
		sub	ecx, 1
		shl	edx, 2
		test	ecx, ecx
		mov	[ebx+10h], eax
		jle	short loc_A3034
		lea	ecx, [ecx+ecx*2]
		mov	[ebp+var_1C], edx
		shl	ecx, 2
		mov	[esp+8], ecx	; n
		lea	ecx, [eax+edx]
		mov	[esp+4], ecx	; src
		lea	ecx, [esi+esi*2+3]
		lea	eax, [eax+ecx*4]
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]
		mov	edx, [ebp+var_1C]

loc_A3034:				; CODE XREF: CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)+3Aj
		add	edx, eax
		jz	short loc_A3048
		mov	eax, [edi]
		mov	[edx], eax
		mov	eax, [edi+4]
		mov	[edx+4], eax
		mov	eax, [edi+8]
		mov	[edx+8], eax

loc_A3048:				; CODE XREF: CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)+66j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3060:				; CODE XREF: CUtlVector<CEmphasisSample,CUtlMemory<CEmphasisSample,int>>::InsertBefore(int,CEmphasisSample const&)+20j
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI15CEmphasisSampleiE4GrowEi ; CUtlMemory<CEmphasisSample,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	loc_A2FF2
_ZN10CUtlVectorI15CEmphasisSample10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CBasePhonemeTag *,	int>::Grow(int)
_ZN10CUtlMemoryIP15CBasePhonemeTagiE4GrowEi proc near
					; CODE XREF: CUtlVector<CBasePhonemeTag	*,CUtlMemory<CBasePhonemeTag *,int>>::InsertBefore(int,CBasePhonemeTag * const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A30D0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A30E0
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A30B6
		lea	esi, [esi+0]

loc_A30B0:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A30B0

loc_A30B6:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Grow(int)+2Aj
					; CUtlMemory<CBasePhonemeTag *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_A3113

loc_A30C2:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A30D0:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A30E0:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A30B6
		lea	esi, [esi+0]

loc_A30F8:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A30F8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_A30C2

loc_A3113:				; CODE XREF: CUtlMemory<CBasePhonemeTag	*,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP15CBasePhonemeTagiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CBasePhonemeTag *,	CUtlMemory<CBasePhonemeTag *, int>>::InsertBefore(int, CBasePhonemeTag * const&)
_ZN10CUtlVectorIP15CBasePhonemeTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc	near
					; CODE XREF: CSentence::AddRuntimePhoneme(CPhonemeTag  const*)+4Ep

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_A31A0

loc_A314F:				; CODE XREF: CUtlVector<CBasePhonemeTag	*,CUtlMemory<CBasePhonemeTag *,int>>::InsertBefore(int,CBasePhonemeTag * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_A3186
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_A3186:				; CODE XREF: CUtlVector<CBasePhonemeTag	*,CUtlMemory<CBasePhonemeTag *,int>>::InsertBefore(int,CBasePhonemeTag * const&)+38j
		add	edi, eax
		jz	short loc_A3191
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_A3191:				; CODE XREF: CUtlVector<CBasePhonemeTag	*,CUtlMemory<CBasePhonemeTag *,int>>::InsertBefore(int,CBasePhonemeTag * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A31A0:				; CODE XREF: CUtlVector<CBasePhonemeTag	*,CUtlMemory<CBasePhonemeTag *,int>>::InsertBefore(int,CBasePhonemeTag * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP15CBasePhonemeTagiE4GrowEi ; CUtlMemory<CBasePhonemeTag *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_A314F
_ZN10CUtlVectorIP15CBasePhonemeTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CWordTag *, int>::Grow(int)
_ZN10CUtlMemoryIP8CWordTagiE4GrowEi proc near
					; CODE XREF: CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::InsertBefore(int,CWordTag * const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A3210
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A3220
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A31F6
		lea	esi, [esi+0]

loc_A31F0:				; CODE XREF: CUtlMemory<CWordTag *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A31F0

loc_A31F6:				; CODE XREF: CUtlMemory<CWordTag *,int>::Grow(int)+2Aj
					; CUtlMemory<CWordTag *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_A3253

loc_A3202:				; CODE XREF: CUtlMemory<CWordTag *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A3210:				; CODE XREF: CUtlMemory<CWordTag *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3220:				; CODE XREF: CUtlMemory<CWordTag *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A31F6
		lea	esi, [esi+0]

loc_A3238:				; CODE XREF: CUtlMemory<CWordTag *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A3238
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_A3202

loc_A3253:				; CODE XREF: CUtlMemory<CWordTag *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP8CWordTagiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CWordTag *, CUtlMemory<CWordTag *,	int>>::InsertBefore(int, CWordTag * const&)
_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc	near
					; CODE XREF: CSentence::AddWordTag(CWordTag *)+1Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_A32E0

loc_A328F:				; CODE XREF: CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::InsertBefore(int,CWordTag * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_A32C6
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_A32C6:				; CODE XREF: CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::InsertBefore(int,CWordTag * const&)+38j
		add	edi, eax
		jz	short loc_A32D1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_A32D1:				; CODE XREF: CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::InsertBefore(int,CWordTag * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A32E0:				; CODE XREF: CUtlVector<CWordTag *,CUtlMemory<CWordTag *,int>>::InsertBefore(int,CWordTag * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP8CWordTagiE4GrowEi ; CUtlMemory<CWordTag *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_A328F
_ZN10CUtlVectorIP8CWordTag10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::pAnimdesc(int)const
_ZNK11studiohdr_t9pAnimdescEi proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [eax+150h]
		test	edx, edx
		jnz	short loc_A3350
		xor	edx, edx
		test	ebx, ebx
		js	short loc_A3331
		imul	ecx, ebx, 64h
		cmp	ebx, [eax+0B4h]
		cmovl	edx, ecx

loc_A3331:				; CODE XREF: studiohdr_t::pAnimdesc(int)+23j
					; studiohdr_t::pAnimdesc(int)+83j ...
		add	edx, [eax+0B8h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		add	eax, edx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3350:				; CODE XREF: studiohdr_t::pAnimdesc(int)+1Dj
		mov	[esp], eax
		lea	edi, ds:0[ebx*8]
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	esi, eax
		mov	eax, [eax+1Ch]
		mov	eax, [eax+ebx*8]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [esi+58h]
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	edx, [esi+1Ch]
		mov	ecx, [edx+edi+4]
		xor	edx, edx
		test	ecx, ecx
		js	short loc_A3331
		imul	ebx, ecx, 64h
		cmp	ecx, [eax+0B4h]
		cmovl	edx, ebx
		jmp	short loc_A3331
_ZNK11studiohdr_t9pAnimdescEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; mstudioanimdesc_t::pAnimBlock(int, int)const
_ZNK17mstudioanimdesc_t10pAnimBlockEii proc near
					; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+6Fp
					; mstudioanimdesc_t::pAnim(int *,float &)+151p	...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], ebx
		xor	ebx, ebx
		mov	[ebp+var_4], esi
		mov	edx, [ebp+arg_0]
		mov	esi, [ebp+arg_8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_A33C3
		test	eax, eax
		jnz	short loc_A33D0
		lea	ebx, [edx+esi]

loc_A33C3:				; CODE XREF: mstudioanimdesc_t::pAnimBlock(int,int)+1Aj
					; mstudioanimdesc_t::pAnimBlock(int,int)+40j
		mov	eax, ebx
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A33D0:				; CODE XREF: mstudioanimdesc_t::pAnimBlock(int,int)+1Ej
		mov	[esp+4], eax
		add	edx, [edx]
		mov	[esp], edx
		call	_ZNK11studiohdr_t12GetAnimBlockEi ; studiohdr_t::GetAnimBlock(int)
		test	eax, eax
		jz	short loc_A33C3
		lea	ebx, [eax+esi]
		mov	esi, [ebp+var_4]
		mov	eax, ebx
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK17mstudioanimdesc_t10pAnimBlockEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; mstudioanimdesc_t::pAnim(int *, float	&)const
_ZNK17mstudioanimdesc_t5pAnimEPiRf proc	near
					; CODE XREF: mstudioanimdesc_t::pAnim(int *)+1Ap

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_1C], 0
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+54h]
		mov	esi, [ebx+34h]
		mov	eax, [ebx+38h]
		test	ecx, ecx
		jz	short loc_A3454
		mov	eax, [ebx+10h]
		mov	edi, [ebp+arg_4]
		cmp	ecx, eax
		mov	esi, [edi]
		jl	loc_A3510

loc_A3430:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+115j
		mov	edx, esi
		mov	eax, esi
		sar	edx, 1Fh
		idiv	ecx
		imul	ecx, eax
		mov	[ebp+var_1C], eax
		sub	esi, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi

loc_A3446:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+132j
		mov	edi, [ebp+var_1C]
		lea	eax, [ebx+edi*8]
		add	eax, [ebx+50h]
		mov	esi, [eax]
		mov	eax, [eax+4]

loc_A3454:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+1Ej
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_20], 0
		jz	loc_A3500
		mov	[esp+8], eax
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZNK17mstudioanimdesc_t10pAnimBlockEii ; mstudioanimdesc_t::pAnimBlock(int,int)
		mov	ecx, [ebx+54h]
		mov	[ebp+var_20], eax
		test	ecx, ecx
		jz	short loc_A34DD
		mov	eax, [ebx+10h]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	ecx
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_1C]
		mov	edx, [ebp+var_28]
		add	eax, 1
		add	edx, 2
		cmp	edx, eax
		jle	short loc_A34DD
		mov	edx, [ebx+50h]
		lea	edi, [edx+eax*8]
		mov	[ebp+var_24], edx
		add	edi, ebx
		mov	ecx, [edi]
		cmp	esi, ecx
		jnz	loc_A3543
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_24], ebx
		mov	edx, [ebp+var_1C]
		lea	eax, [ecx+edx*8+10h]
		add	eax, ebx
		mov	ebx, [ebp+var_28]
		jmp	short loc_A34D6
; ---------------------------------------------------------------------------
		align 8

loc_A34C8:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+D8j
		mov	ecx, [eax]
		mov	edi, eax
		add	edx, 1
		add	eax, 8
		cmp	esi, ecx
		jnz	short loc_A3540

loc_A34D6:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+C2j
		cmp	edx, ebx
		jnz	short loc_A34C8
		mov	ebx, [ebp+var_24]

loc_A34DD:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+7Cj
					; mstudioanimdesc_t::pAnim(int *,float &)+99j
		mov	eax, [ebp+var_20]
		test	eax, eax
		jz	short loc_A355D

loc_A34E4:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+15Bj
					; mstudioanimdesc_t::pAnim(int *,float &)+2A9j
		mov	edi, [ebp+arg_8]
		fldz
		fst	dword ptr [edi]
		fld	dword ptr [ebx+60h]
		fcomip	st, st(1)
		jnz	loc_A35A0
		fstp	st
		jmp	short loc_A3500
; ---------------------------------------------------------------------------

loc_A34FA:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+2BBj
		fstp	st
		lea	esi, [esi+0]

loc_A3500:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+5Ej
					; mstudioanimdesc_t::pAnim(int *,float &)+F8j ...
		mov	eax, [ebp+var_20]
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3510:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+2Aj
		sub	eax, 1
		cmp	esi, eax
		jnz	loc_A3430
		mov	dword ptr [edi], 0
		mov	eax, [ebx+10h]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	dword ptr [ebx+54h]
		add	eax, 1
		mov	[ebp+var_1C], eax
		jmp	loc_A3446
; ---------------------------------------------------------------------------
		align 10h

loc_A3540:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+D4j
		mov	ebx, [ebp+var_24]

loc_A3543:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+AAj
		mov	eax, [edi+4]
		mov	[esp+4], ecx
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_ZNK17mstudioanimdesc_t10pAnimBlockEii ; mstudioanimdesc_t::pAnimBlock(int,int)
		mov	eax, [ebp+var_20]
		test	eax, eax
		jnz	short loc_A34E4

loc_A355D:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+E2j
		mov	edi, [ebp+var_1C]
		test	edi, edi
		jle	loc_A3645
		mov	eax, dword ptr ds:_ZL18mod_load_showstall+1Ch
		mov	ecx, [eax+30h]
		test	ecx, ecx
		jle	loc_A3645
		mov	edx, [ebx]
		mov	edi, [ebx+4]
		add	edx, ebx
		mov	eax, [edx+190h]
		add	edi, ebx
		test	eax, eax
		jz	loc_A3614
		add	eax, edx
		mov	ecx, [eax+14h]
		test	ecx, ecx
		jz	short loc_A3614
		add	ecx, eax
		mov	[ebp+var_28], ecx
		jmp	short loc_A361A
; ---------------------------------------------------------------------------
		align 10h

loc_A35A0:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+F0j
		fstp	[ebp+var_38]
		call	Plat_FloatTime
		fsub	dword ptr [ebx+60h]
		fld	[ebp+var_38]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jb	loc_A371D
		fsubr	ds:flt_1EDB28
		xorps	xmm1, xmm1
		mov	ecx, [ebp+arg_8]
		fmul	ds:flt_1EDB2C
		fstp	[ebp+var_3C]
		mov	eax, [ebp+var_3C]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+var_3C], xmm0
		fld	[ebp+var_3C]
		fld	st
		fmul	st, st(1)
		fld	ds:flt_1EDB30
		fmul	st, st(1)
		fxch	st(2)
		fmulp	st(1), st
		fadd	st, st
		fsubp	st(1), st
		fst	dword ptr [ecx]

loc_A3600:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+324j
		fldz
		fcomi	st, st(1)
		jnz	loc_A36B0
		fstp	st(1)
		fstp	dword ptr [ebx+60h]
		jmp	loc_A3500
; ---------------------------------------------------------------------------

loc_A3614:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+189j
					; mstudioanimdesc_t::pAnim(int *,float &)+196j
		add	edx, 0Ch
		mov	[ebp+var_28], edx

loc_A361A:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+19Dj
		call	Plat_FloatTime
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp], offset	a8_3fHitchOnSSD	; "[%8.3f] hitch on %s:%s:%d:%d\n"
		mov	edx, [ebp+var_28]
		mov	[esp+18h], esi
		mov	[esp+10h], edi
		fstp	qword ptr [esp+4]
		mov	[esp+14h], eax
		mov	[esp+0Ch], edx
		call	Msg

loc_A3645:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+162j
					; mstudioanimdesc_t::pAnim(int *,float &)+172j
		mov	edi, [ebp+var_1C]
		mov	eax, ebx
		sub	edi, 1
		lea	edx, ds:0[edi*8]
		mov	ebx, edx
		mov	edx, esi
		mov	esi, eax
		jmp	short loc_A3663
; ---------------------------------------------------------------------------
		align 10h

loc_A3660:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+295j
		sub	edi, 1

loc_A3663:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+25Aj
		test	edi, edi
		mov	[ebp+var_1C], edi
		js	loc_A3729
		mov	eax, [esi+50h]
		add	eax, ebx
		sub	ebx, 8
		add	eax, esi
		mov	edx, [eax]
		mov	eax, [eax+4]
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[ebp+var_2C], edx
		mov	[esp+8], eax
		call	_ZNK17mstudioanimdesc_t10pAnimBlockEii ; mstudioanimdesc_t::pAnimBlock(int,int)
		mov	edx, [ebp+var_2C]
		test	eax, eax
		jz	short loc_A3660
		mov	ebx, esi
		mov	esi, edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebx+54h]
		mov	[ebp+var_20], eax
		sub	edx, 1
		mov	[ecx], edx
		jmp	loc_A34E4
; ---------------------------------------------------------------------------
		align 10h

loc_A36B0:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+204j
		fstp	st
		mov	eax, dword ptr ds:_ZL18mod_load_showstall+1Ch
		cmp	dword ptr [eax+30h], 1
		jle	loc_A34FA
		mov	edi, [ebx+4]
		add	edi, ebx
		add	ebx, [ebx]
		mov	eax, [ebx+190h]
		test	eax, eax
		jz	loc_A37B5
		add	eax, ebx
		mov	edx, [eax+14h]
		test	edx, edx
		jz	loc_A37B5
		lea	ebx, [eax+edx]

loc_A36E6:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+3B8j
		fstp	[ebp+var_38]
		call	Plat_FloatTime
		mov	eax, [ebp+var_1C]
		mov	[esp+20h], esi
		fld	[ebp+var_38]
		mov	[esp+18h], edi
		fstp	qword ptr [esp+0Ch]
		mov	[esp+1Ch], eax
		mov	[esp+14h], ebx
		fstp	qword ptr [esp+4]
		mov	dword ptr [esp], offset	a8_3fStallBlend	; "[%8.3f] stall blend %.2f on %s:%s:%d:%d"...
		call	Msg
		jmp	loc_A3500
; ---------------------------------------------------------------------------

loc_A371D:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+1B4j
		fstp	st
		mov	edi, [ebp+arg_8]
		fld	dword ptr [edi]
		jmp	loc_A3600
; ---------------------------------------------------------------------------

loc_A3729:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+268j
		mov	ecx, [ebp+arg_8]
		mov	ebx, esi
		mov	esi, edx
		mov	dword ptr [ecx], 0
		call	Plat_FloatTime
		mov	ecx, [ebp+arg_8]
		fstp	dword ptr [ebx+60h]
		mov	dword ptr [ecx], 3F800000h
		mov	eax, dword ptr ds:_ZL18mod_load_showstall+1Ch
		cmp	dword ptr [eax+30h], 1
		jle	loc_A3500
		mov	edx, [ebx+4]
		add	edx, ebx
		add	ebx, [ebx]
		mov	[ebp+var_1C], edx
		mov	edx, [ebx+190h]
		test	edx, edx
		jz	short loc_A37B0
		add	edx, ebx
		mov	eax, [edx+14h]
		test	eax, eax
		jz	short loc_A37B0
		lea	ebx, [edx+eax]

loc_A3776:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+3B3j
		call	Plat_FloatTime
		mov	ecx, [ebp+var_1C]
		mov	[esp+18h], esi
		mov	[esp+14h], edi
		mov	[esp+0Ch], ebx
		fstp	qword ptr [esp+4]
		mov	[esp+10h], ecx
		mov	dword ptr [esp], offset	a8_3fStallOnSSD	; "[%8.3f] stall on %s:%s:%d:%d\n"
		call	Msg
		mov	eax, [ebp+var_20]
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A37B0:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+368j
					; mstudioanimdesc_t::pAnim(int *,float &)+371j
		add	ebx, 0Ch
		jmp	short loc_A3776
; ---------------------------------------------------------------------------

loc_A37B5:				; CODE XREF: mstudioanimdesc_t::pAnim(int *,float &)+2D0j
					; mstudioanimdesc_t::pAnim(int *,float &)+2DDj
		add	ebx, 0Ch
		jmp	loc_A36E6
_ZNK17mstudioanimdesc_t5pAnimEPiRf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; mstudioanimdesc_t::pAnim(int *)const
_ZNK17mstudioanimdesc_t5pAnimEPi proc near

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		lea	eax, [ebp+var_C]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZNK17mstudioanimdesc_t5pAnimEPiRf ; mstudioanimdesc_t::pAnim(int *,float &)
		leave
		retn
_ZNK17mstudioanimdesc_t5pAnimEPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; mstudioanimdesc_t::pIKRule(int)const
_ZNK17mstudioanimdesc_t7pIKRuleEi proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	eax, [ebx+40h]
		test	eax, eax
		jnz	short loc_A381C
		mov	eax, [ebx+44h]
		xor	esi, esi
		test	eax, eax
		jz	short loc_A3826
		mov	edx, [ebx+34h]
		test	edx, edx
		jnz	short loc_A3838

loc_A381C:				; CODE XREF: mstudioanimdesc_t::pIKRule(int)+1Aj
		imul	esi, edi, 98h
		add	esi, eax
		add	esi, ebx

loc_A3826:				; CODE XREF: mstudioanimdesc_t::pIKRule(int)+23j
					; mstudioanimdesc_t::pIKRule(int)+5Aj
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_A3838:				; CODE XREF: mstudioanimdesc_t::pIKRule(int)+2Aj
		mov	[esp+4], edx
		mov	eax, [ebx]
		add	eax, ebx
		mov	[esp], eax
		call	_ZNK11studiohdr_t12GetAnimBlockEi ; studiohdr_t::GetAnimBlock(int)
		test	eax, eax
		jz	short loc_A3826
		imul	esi, edi, 98h
		mov	edi, [ebp+var_4]
		add	esi, [ebx+44h]
		mov	ebx, [ebp+var_C]
		add	esi, eax
		mov	eax, esi
		mov	esi, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK17mstudioanimdesc_t7pIKRuleEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; mstudioanimdesc_t::pHierarchy(int)const
_ZNK17mstudioanimdesc_t10pHierarchyEi proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		xor	esi, esi
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx+4Ch]
		test	eax, eax
		jz	short loc_A389F
		mov	edx, [ebx+34h]
		test	edx, edx
		jnz	short loc_A38B0
		lea	esi, [edi+edi*2]
		shl	esi, 4
		add	esi, eax
		add	esi, ebx

loc_A389F:				; CODE XREF: mstudioanimdesc_t::pHierarchy(int)+1Cj
					; mstudioanimdesc_t::pHierarchy(int)+52j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A38B0:				; CODE XREF: mstudioanimdesc_t::pHierarchy(int)+23j
		mov	[esp+4], edx
		mov	eax, [ebx]
		add	eax, ebx
		mov	[esp], eax
		call	_ZNK11studiohdr_t12GetAnimBlockEi ; studiohdr_t::GetAnimBlock(int)
		test	eax, eax
		jz	short loc_A389F
		lea	esi, [edi+edi*2]
		mov	edi, [ebp+var_4]
		shl	esi, 4
		add	esi, [ebx+4Ch]
		mov	ebx, [ebp+var_C]
		add	esi, eax
		mov	eax, esi
		mov	esi, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK17mstudioanimdesc_t10pHierarchyEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::SequencesAvailable(void)const
_ZNK11studiohdr_t18SequencesAvailableEv	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+150h]
		test	ecx, ecx
		jnz	short loc_A3900
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3900:				; CODE XREF: studiohdr_t::SequencesAvailable(void)+16j
		mov	[esp], edx
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		leave
		test	eax, eax
		setnz	al
		retn
_ZNK11studiohdr_t18SequencesAvailableEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetNumSeq(void)const
_ZNK11studiohdr_t9GetNumSeqEv proc near	; CODE XREF: studiohdr_t::CountAutoplaySequences(void)+36p
					; studiohdr_t::CopyAutoplaySequences(ushort *,int)+13p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+150h]
		test	edx, edx
		jnz	short loc_A3930
		mov	eax, [eax+0BCh]
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3930:				; CODE XREF: studiohdr_t::GetNumSeq(void)+11j
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	eax, [eax+14h]
		leave
		retn
_ZNK11studiohdr_t9GetNumSeqEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::pSeqdesc(int)const
_ZNK11studiohdr_t8pSeqdescEi proc near	; CODE XREF: studiohdr_t::EntryNode(int)+1Cp
					; studiohdr_t::ExitNode(int)+1Cp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	ecx, [ebx+150h]
		test	ecx, ecx
		jnz	short loc_A3990

loc_A395F:				; CODE XREF: studiohdr_t::pSeqdesc(int)+5Cj
		xor	eax, eax
		test	esi, esi
		js	short loc_A3974
		imul	edx, esi, 0D4h
		cmp	esi, [ebx+0BCh]
		cmovl	eax, edx

loc_A3974:				; CODE XREF: studiohdr_t::pSeqdesc(int)+23j
		add	eax, [ebx+0C0h]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	eax, ebx
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3990:				; CODE XREF: studiohdr_t::pSeqdesc(int)+1Dj
		mov	[esp], ebx
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		test	eax, eax
		mov	edi, eax
		jz	short loc_A395F
		mov	eax, [eax+8]
		shl	esi, 4
		xor	ebx, ebx
		mov	eax, [eax+esi+8]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [edi+58h]
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	edx, [edi+8]
		mov	edx, [edx+esi+0Ch]
		test	edx, edx
		js	short loc_A39D5
		imul	ecx, edx, 0D4h
		cmp	edx, [eax+0BCh]
		cmovl	ebx, ecx

loc_A39D5:				; CODE XREF: studiohdr_t::pSeqdesc(int)+84j
		add	ebx, [eax+0C0h]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	eax, ebx
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK11studiohdr_t8pSeqdescEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::iRelativeAnim(int, int)const
_ZNK11studiohdr_t13iRelativeAnimEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	edx, [eax+150h]
		test	edx, edx
		jz	short loc_A3A2C
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [eax+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	eax, [edx+40h]
		lea	ebx, [eax+ebx*4]
		mov	ebx, [ebx]

loc_A3A2C:				; CODE XREF: studiohdr_t::iRelativeAnim(int,int)+15j
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZNK11studiohdr_t13iRelativeAnimEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::iRelativeSeq(int, int)const
_ZNK11studiohdr_t12iRelativeSeqEii proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	edx, [eax+150h]
		test	edx, edx
		jz	short loc_A3A7C
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [eax+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	ecx, [edx+2Ch]
		lea	ebx, [ecx+ebx*4]
		mov	ebx, [ebx]

loc_A3A7C:				; CODE XREF: studiohdr_t::iRelativeSeq(int,int)+15j
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZNK11studiohdr_t12iRelativeSeqEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetNumPoseParameters(void)const
_ZNK11studiohdr_t20GetNumPoseParametersEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+150h]
		test	ecx, ecx
		jnz	short loc_A3AB0
		mov	eax, [eax+12Ch]
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3AB0:				; CODE XREF: studiohdr_t::GetNumPoseParameters(void)+11j
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	eax, [eax+50h]
		leave
		retn
_ZNK11studiohdr_t20GetNumPoseParametersEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::pPoseParameter(int)
_ZN11studiohdr_t14pPoseParameterEi proc	near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebx+150h]
		test	edi, edi
		jnz	short loc_A3B00
		lea	eax, [esi+esi*4]
		mov	edi, [ebp+var_4]
		lea	eax, [ebx+eax*4]
		mov	esi, [ebp+var_8]
		add	eax, [ebx+130h]
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3B00:				; CODE XREF: studiohdr_t::pPoseParameter(int)+1Dj
		mov	[esp], ebx
		shl	esi, 3
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	edx, [eax+44h]
		mov	edi, eax
		add	edx, esi
		mov	eax, [edx]
		test	eax, eax
		jnz	short loc_A3B38
		mov	eax, [edx+4]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		lea	eax, [eax+eax*4]
		lea	eax, [ebx+eax*4]
		add	eax, [ebx+130h]
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A3B38:				; CODE XREF: studiohdr_t::pPoseParameter(int)+56j
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [edi+58h]
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	ebx, [ebp+var_C]
		mov	edx, eax
		mov	eax, [edi+44h]
		mov	edi, [ebp+var_4]
		mov	eax, [eax+esi+4]
		mov	esi, [ebp+var_8]
		lea	eax, [eax+eax*4]
		lea	eax, [edx+eax*4]
		add	eax, [edx+130h]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11studiohdr_t14pPoseParameterEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetSharedPoseParameter(int, int)const
_ZNK11studiohdr_t22GetSharedPoseParameterEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	edx, [eax+150h]
		test	edx, edx
		jz	short loc_A3BB1
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_A3BB1
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [eax+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	eax, [edx+68h]
		lea	ebx, [eax+ebx*4]
		mov	ebx, [ebx]

loc_A3BB1:				; CODE XREF: studiohdr_t::GetSharedPoseParameter(int,int)+15j
					; studiohdr_t::GetSharedPoseParameter(int,int)+1Aj
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZNK11studiohdr_t22GetSharedPoseParameterEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::EntryNode(int)
_ZN11studiohdr_t9EntryNodeEi proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	[esp], ebx
		mov	[esp+4], edi
		call	_ZNK11studiohdr_t8pSeqdescEi ; studiohdr_t::pSeqdesc(int)
		mov	esi, eax
		mov	eax, [ebx+150h]
		test	eax, eax
		jz	short loc_A3C40
		mov	ecx, [esi+70h]
		xor	eax, eax
		test	ecx, ecx
		jnz	short loc_A3C08
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A3C08:				; CODE XREF: studiohdr_t::EntryNode(int)+34j
		mov	[esp], ebx
		shl	edi, 4
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	ecx, [esi+70h]
		add	edi, [eax+8]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edx, [edi+8]
		mov	edi, [ebp+var_4]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	eax, [edx+7Ch]
		mov	eax, [eax+ecx*4-4]
		mov	esp, ebp
		pop	ebp
		add	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3C40:				; CODE XREF: studiohdr_t::EntryNode(int)+2Bj
		mov	eax, [esi+70h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11studiohdr_t9EntryNodeEi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::ExitNode(int)
_ZN11studiohdr_t8ExitNodeEi proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	[esp], ebx
		mov	[esp+4], edi
		call	_ZNK11studiohdr_t8pSeqdescEi ; studiohdr_t::pSeqdesc(int)
		mov	esi, eax
		mov	eax, [ebx+150h]
		test	eax, eax
		jz	short loc_A3CD0
		mov	eax, [esi+74h]
		test	eax, eax
		jnz	short loc_A3C98
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A3C98:				; CODE XREF: studiohdr_t::ExitNode(int)+32j
		mov	[esp], ebx
		shl	edi, 4
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	ecx, [esi+74h]
		add	edi, [eax+8]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edx, [edi+8]
		mov	edi, [ebp+var_4]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	eax, [edx+7Ch]
		mov	eax, [eax+ecx*4-4]
		mov	esp, ebp
		pop	ebp
		add	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3CD0:				; CODE XREF: studiohdr_t::ExitNode(int)+2Bj
		mov	eax, [esi+74h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11studiohdr_t8ExitNodeEi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetNumAttachments(void)const
_ZNK11studiohdr_t17GetNumAttachmentsEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+150h]
		test	edx, edx
		jnz	short loc_A3D00
		mov	eax, [eax+0F0h]
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3D00:				; CODE XREF: studiohdr_t::GetNumAttachments(void)+11j
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	eax, [eax+3Ch]
		leave
		retn
_ZNK11studiohdr_t17GetNumAttachmentsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::pAttachment(int)const
_ZNK11studiohdr_t11pAttachmentEi proc near
					; CODE XREF: studiohdr_t::GetAttachmentBone(int)+1Cp
					; studiohdr_t::SetAttachmentBone(int,int)+1Fp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	ecx, [eax+150h]
		test	ecx, ecx
		jnz	short loc_A3D50
		imul	ebx, 5Ch
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	ebx, [eax+0F4h]
		add	eax, ebx
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3D50:				; CODE XREF: studiohdr_t::pAttachment(int)+1Dj
		mov	[esp], eax
		lea	edi, ds:0[ebx*8]
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	esi, eax
		mov	eax, [eax+30h]
		mov	eax, [eax+ebx*8]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [esi+58h]
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	edx, [esi+30h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		imul	edx, [edx+edi+4], 5Ch
		mov	edi, [ebp+var_4]
		add	edx, [eax+0F4h]
		mov	esp, ebp
		pop	ebp
		add	eax, edx
		retn
_ZNK11studiohdr_t11pAttachmentEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetAttachmentBone(int)
_ZN11studiohdr_t17GetAttachmentBoneEi proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZNK11studiohdr_t11pAttachmentEi ; studiohdr_t::pAttachment(int)
		mov	[esp], ebx
		mov	edi, eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		test	eax, eax
		jz	short loc_A3E00
		mov	edx, [eax+30h]
		mov	ecx, [edi+8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	edx, [edx+esi*8]
		mov	esi, [ebp+var_8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	eax, [edx+18h]
		mov	edx, 0
		mov	eax, [eax+ecx*4]
		cmp	eax, 0FFFFFFFFh
		cmovz	eax, edx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3E00:				; CODE XREF: studiohdr_t::GetAttachmentBone(int)+2Dj
		mov	eax, [edi+8]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11studiohdr_t17GetAttachmentBoneEi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::SetAttachmentBone(int, int)
_ZN11studiohdr_t17SetAttachmentBoneEii proc near

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[esp], esi
		mov	[esp+4], edi
		call	_ZNK11studiohdr_t11pAttachmentEi ; studiohdr_t::pAttachment(int)
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_A3E5D
		mov	ecx, [eax+30h]
		mov	ecx, [ecx+edi*8]
		lea	ecx, [ecx+ecx*8]
		shl	ecx, 4
		add	ecx, [eax+58h]
		mov	esi, [ecx+4]
		lea	ebx, [esi+ebx*4]
		mov	ebx, [ebx]

loc_A3E5D:				; CODE XREF: studiohdr_t::SetAttachmentBone(int,int)+34j
		mov	[edx+8], ebx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11studiohdr_t17SetAttachmentBoneEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::pszNodeName(int)
_ZN11studiohdr_t11pszNodeNameEi	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edx, [eax+150h]
		test	edx, edx
		jnz	short loc_A3EA0

loc_A3E87:				; CODE XREF: studiohdr_t::pszNodeName(int)+64j
		lea	edx, [eax+ebx*4]
		add	edx, [eax+100h]
		add	eax, [edx]

loc_A3E92:				; CODE XREF: studiohdr_t::pszNodeName(int)+42j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3EA0:				; CODE XREF: studiohdr_t::pszNodeName(int)+15j
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	edx, eax
		mov	eax, offset aInvalidNode ; "Invalid node"
		cmp	ebx, [edx+78h]
		jg	short loc_A3E92
		lea	eax, ds:0FFFFFFF8h[ebx*8]
		add	eax, [edx+6Ch]
		mov	ebx, [eax+4]
		mov	eax, [eax]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [edx+58h]
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		jmp	short loc_A3E87
_ZN11studiohdr_t11pszNodeNameEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetTransition(int, int)const
_ZNK11studiohdr_t13GetTransitionEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+150h]
		test	ecx, ecx
		jnz	short loc_A3F0E
		mov	ecx, [ebp+arg_4]
		add	eax, edx
		sub	ecx, 1
		imul	ecx, [edx+0F8h]
		add	eax, ecx
		add	eax, [edx+0FCh]
		movzx	eax, byte ptr [eax-1]

loc_A3F0E:				; CODE XREF: studiohdr_t::GetTransition(int,int)+11j
		pop	ebp
		retn
_ZNK11studiohdr_t13GetTransitionEii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetActivityListVersion(void)
_ZN11studiohdr_t22GetActivityListVersionEv proc	near

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+150h]
		test	esi, esi
		jnz	short loc_A3F40
		mov	ebx, [ebx+0C4h]

loc_A3F2C:				; CODE XREF: studiohdr_t::GetActivityListVersion(void)+44j
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3F40:				; CODE XREF: studiohdr_t::GetActivityListVersion(void)+14j
		mov	[esp], ebx
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	ebx, [ebx+0C4h]
		cmp	dword ptr [eax+64h], 1
		mov	edx, eax
		jle	short loc_A3F2C
		mov	edi, 90h
		mov	esi, 1

loc_A3F60:				; CODE XREF: studiohdr_t::GetActivityListVersion(void)+7Aj
		mov	eax, [edx+58h]
		mov	[ebp+var_1C], edx
		add	eax, edi
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	edx, [ebp+var_1C]
		mov	eax, [eax+0C4h]
		cmp	ebx, eax
		cmovg	ebx, eax
		add	esi, 1
		add	edi, 90h
		cmp	[edx+64h], esi
		jg	short loc_A3F60
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11studiohdr_t22GetActivityListVersionEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::SetActivityListVersion(int)const
_ZNK11studiohdr_t22SetActivityListVersionEi proc near
					; CODE XREF: studiohdr_t::SetActivityListVersion(int)+70p
					; CStudioHdr::SetActivityListVersion(int)+46p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	edi, [eax+150h]
		mov	[eax+0C4h], edx
		test	edi, edi
		jnz	short loc_A3FD0

loc_A3FBF:				; CODE XREF: studiohdr_t::SetActivityListVersion(int)+3Ej
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A3FD0:				; CODE XREF: studiohdr_t::SetActivityListVersion(int)+1Dj
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		cmp	dword ptr [eax+64h], 1
		mov	edi, eax
		jle	short loc_A3FBF
		mov	esi, 90h
		mov	ebx, 1
		lea	esi, [esi+0]

loc_A3FF0:				; CODE XREF: studiohdr_t::SetActivityListVersion(int)+78j
		mov	eax, [edi+58h]
		add	ebx, 1
		add	eax, esi
		add	esi, 90h
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	edx, [ebp+arg_4]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZNK11studiohdr_t22SetActivityListVersionEi ; studiohdr_t::SetActivityListVersion(int)
		cmp	[edi+64h], ebx
		jg	short loc_A3FF0
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZNK11studiohdr_t22SetActivityListVersionEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::GetNumIKAutoplayLocks(void)const
_ZNK11studiohdr_t21GetNumIKAutoplayLocksEv proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+150h]
		test	edx, edx
		jnz	short loc_A4050
		mov	eax, [eax+140h]
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4050:				; CODE XREF: studiohdr_t::GetNumIKAutoplayLocks(void)+11j
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	eax, [eax+8Ch]
		leave
		retn
_ZNK11studiohdr_t21GetNumIKAutoplayLocksEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::pIKAutoplayLock(int)
_ZN11studiohdr_t15pIKAutoplayLockEi proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	ecx, [eax+150h]
		test	ecx, ecx
		jnz	short loc_A40A0
		shl	ebx, 5
		mov	esi, [ebp+var_8]
		add	ebx, [eax+144h]
		mov	edi, [ebp+var_4]
		add	eax, ebx
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A40A0:				; CODE XREF: studiohdr_t::pIKAutoplayLock(int)+1Dj
		mov	[esp], eax
		lea	edi, ds:0[ebx*8]
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	esi, eax
		mov	eax, [eax+80h]
		mov	eax, [eax+ebx*8]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [esi+58h]
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	edx, [esi+80h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edx, [edx+edi+4]
		mov	edi, [ebp+var_4]
		shl	edx, 5
		add	edx, [eax+144h]
		mov	esp, ebp
		pop	ebp
		add	eax, edx
		retn
_ZN11studiohdr_t15pIKAutoplayLockEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::CountAutoplaySequences(void)const
_ZNK11studiohdr_t22CountAutoplaySequencesEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		jmp	short loc_A4123
; ---------------------------------------------------------------------------
		align 8

loc_A4108:				; CODE XREF: studiohdr_t::CountAutoplaySequences(void)+3Dj
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZNK11studiohdr_t8pSeqdescEi ; studiohdr_t::pSeqdesc(int)
		mov	eax, [eax+0Ch]
		and	eax, 8
		cmp	eax, 1
		sbb	esi, 0FFFFFFFFh
		add	ebx, 1

loc_A4123:				; CODE XREF: studiohdr_t::CountAutoplaySequences(void)+10j
		mov	[esp], edi
		call	_ZNK11studiohdr_t9GetNumSeqEv ;	studiohdr_t::GetNumSeq(void)
		cmp	ebx, eax
		jl	short loc_A4108
		add	esp, 1Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZNK11studiohdr_t22CountAutoplaySequencesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::CopyAutoplaySequences(unsigned short *, int)const
_ZNK11studiohdr_t21CopyAutoplaySequencesEPti proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]

loc_A4150:				; CODE XREF: studiohdr_t::CopyAutoplaySequences(ushort *,int)+54j
		mov	[esp], edi
		call	_ZNK11studiohdr_t9GetNumSeqEv ;	studiohdr_t::GetNumSeq(void)
		cmp	ebx, eax
		jl	short loc_A4170

loc_A415C:				; CODE XREF: studiohdr_t::CopyAutoplaySequences(ushort *,int)+33j
		add	esp, 1Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4170:				; CODE XREF: studiohdr_t::CopyAutoplaySequences(ushort *,int)+1Aj
		cmp	esi, [ebp+arg_8]
		jge	short loc_A415C
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZNK11studiohdr_t8pSeqdescEi ; studiohdr_t::pSeqdesc(int)
		test	byte ptr [eax+0Ch], 8
		jz	short loc_A4191
		mov	eax, [ebp+arg_4]
		mov	[eax+esi*2], bx
		add	esi, 1

loc_A4191:				; CODE XREF: studiohdr_t::CopyAutoplaySequences(ushort *,int)+45j
		add	ebx, 1
		jmp	short loc_A4150
_ZNK11studiohdr_t21CopyAutoplaySequencesEPti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::RemapSeqBone(int, int)const
_ZNK11studiohdr_t12RemapSeqBoneEii proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		test	eax, eax
		jz	short loc_A41D6
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [eax+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	eax, [edx+18h]
		lea	ebx, [eax+ebx*4]
		mov	ebx, [ebx]

loc_A41D6:				; CODE XREF: studiohdr_t::RemapSeqBone(int,int)+17j
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZNK11studiohdr_t12RemapSeqBoneEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; studiohdr_t::RemapAnimBone(int, int)const
_ZNK11studiohdr_t13RemapAnimBoneEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	[esp], eax
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		test	eax, eax
		jz	short loc_A4213
		mov	edx, [eax+1Ch]
		mov	ecx, [ebp+arg_4]
		mov	edx, [edx+ecx*8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [eax+58h]
		mov	eax, [edx+18h]
		lea	ebx, [eax+ebx*4]
		mov	ebx, [ebx]

loc_A4213:				; CODE XREF: studiohdr_t::RemapAnimBone(int,int)+17j
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZNK11studiohdr_t13RemapAnimBoneEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::Term(void)
_ZN10CStudioHdr4TermEv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN10CStudioHdr4TermEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GroupStudioHdr(int)
_ZN10CStudioHdr14GroupStudioHdrEi proc near ; CODE XREF: CStudioHdr::pSeqStudioHdr(int)+20j
					; CStudioHdr::pAnimStudioHdr(int)+1Dj ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		test	ebx, ebx
		jz	loc_A43E0

loc_A424D:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+1B7j
					; CStudioHdr::GroupStudioHdr(int)+1D0j
		mov	eax, [ebx+20h]
		mov	edx, [eax]
		cmp	[ebx+1Ch], edx
		jz	short loc_A42D6
		call	ThreadGetCurrentId
		mov	edi, eax
		mov	eax, [ebx+24h]
		cmp	edi, eax
		jz	short loc_A428A
		lea	edx, [ebx+24h]
		mov	dword ptr [esp+8], 0
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		mov	[esp+4], edi
		call	ThreadInterlockedAssignIf
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_A43C0

loc_A428A:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+33j
		mov	eax, [ebx+28h]
		add	eax, 1
		mov	[ebx+28h], eax

loc_A4293:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+1A6j
		mov	eax, [ebx+20h]
		mov	edx, [ebx+1Ch]
		cmp	[eax], edx
		jz	short loc_A42C2
		mov	edx, [ebx+14h]
		mov	eax, [ebx+8]
		mov	dword ptr [esp+4], 0 ; c
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; s
		call	memset
		mov	eax, [ebx+20h]
		mov	eax, [eax]
		mov	[ebx+1Ch], eax

loc_A42C2:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+6Bj
		mov	eax, [ebx+28h]
		sub	eax, 1
		mov	[ebx+28h], eax
		mov	eax, [ebx+28h]
		test	eax, eax
		jz	loc_A43A0

loc_A42D6:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+25j
					; CStudioHdr::GroupStudioHdr(int)+183j
		test	esi, esi
		js	short loc_A4300
		cmp	esi, [ebx+14h]
		jge	short loc_A4300
		mov	eax, [ebx+8]
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	loc_A4418

loc_A42ED:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+202j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4300:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+A8j
					; CStudioHdr::GroupStudioHdr(int)+ADj
		mov	eax, [ebx]
		test	eax, eax
		jz	loc_A4408
		mov	edx, [eax+190h]
		test	edx, edx
		jnz	short loc_A4340

loc_A4314:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+117j
		add	eax, 0Ch

loc_A4317:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+1DDj
		cmp	ds:_ZZN10CStudioHdr14GroupStudioHdrEiE14__executeCount_0, 4 ; CStudioHdr::GroupStudioHdr(int)::__executeCount
		jle	short loc_A4355

loc_A4320:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+123j
		mov	dword ptr [esp], 0
		call	Plat_IsInDebugSession
		test	al, al
		jnz	short loc_A4387

loc_A4330:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+155j
		mov	eax, [ebx]

loc_A4332:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+165j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4340:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+E2j
		add	edx, eax
		mov	ecx, [edx+14h]
		test	ecx, ecx
		jz	short loc_A4314
		cmp	ds:_ZZN10CStudioHdr14GroupStudioHdrEiE14__executeCount_0, 4 ; CStudioHdr::GroupStudioHdr(int)::__executeCount
		lea	eax, [edx+ecx]
		jg	short loc_A4320

loc_A4355:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+EEj
		mov	edx, [ebx+14h]
		mov	[esp+4], eax
		mov	[esp+8], esi
		mov	dword ptr [esp], offset	aInvalidIndexPa	; "Invalid index passed	to CStudioHdr(%s):"...
		mov	[esp+0Ch], edx
		call	Warning
		mov	dword ptr [esp], 0
		add	ds:_ZZN10CStudioHdr14GroupStudioHdrEiE14__executeCount_0, 1 ; CStudioHdr::GroupStudioHdr(int)::__executeCount
		call	Plat_IsInDebugSession
		test	al, al
		jz	short loc_A4330

loc_A4387:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+FEj
		mov	dword ptr [esp], 5 ; sig
		call	raise
		mov	eax, [ebx]
		jmp	short loc_A4332
; ---------------------------------------------------------------------------
		align 10h

loc_A43A0:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+A0j
		lea	eax, [ebx+24h]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	ThreadInterlockedExchange
		jmp	loc_A42D6
; ---------------------------------------------------------------------------
		align 10h

loc_A43C0:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+54j
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	[esp], edx
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)
		jmp	loc_A4293
; ---------------------------------------------------------------------------
		align 10h

loc_A43E0:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+17j
		cmp	ds:_ZZN10CStudioHdr14GroupStudioHdrEiE14__executeCount,	4 ; CStudioHdr::GroupStudioHdr(int)::__executeCount
		jg	loc_A424D
		mov	dword ptr [esp], offset	aCallToNullCstu	; "Call	to NULL	CStudioHdr::GroupStudioHdr"...
		call	Warning
		add	ds:_ZZN10CStudioHdr14GroupStudioHdrEiE14__executeCount,	1 ; CStudioHdr::GroupStudioHdr(int)::__executeCount
		jmp	loc_A424D
; ---------------------------------------------------------------------------
		align 4

loc_A4408:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+D4j
		mov	eax, offset aNull_0 ; "<<null>>"
		jmp	loc_A4317
; ---------------------------------------------------------------------------
		align 8

loc_A4418:				; CODE XREF: CStudioHdr::GroupStudioHdr(int)+B7j
		mov	edx, [ebx+4]
		lea	eax, [esi+esi*8]
		shl	eax, 4
		add	eax, [edx+58h]
		mov	[esp], eax
		call	_ZNK14virtualgroup_t12GetStudioHdrEv ; virtualgroup_t::GetStudioHdr(void)
		mov	edx, [ebx+8]
		mov	[edx+esi*4], eax
		jmp	loc_A42ED
_ZN10CStudioHdr14GroupStudioHdrEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pSeqStudioHdr(int)
_ZN10CStudioHdr13pSeqStudioHdrEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_A4468
		shl	eax, 4
		add	eax, [ecx+8]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], edx
		mov	[ebp+arg_4], eax
		pop	ebp
		jmp	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
; ---------------------------------------------------------------------------
		align 4

loc_A4468:				; CODE XREF: CStudioHdr::pSeqStudioHdr(int)+Ej
		mov	eax, [edx]
		pop	ebp
		retn
_ZN10CStudioHdr13pSeqStudioHdrEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pAnimStudioHdr(int)
_ZN10CStudioHdr14pAnimStudioHdrEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [eax+4]
		test	edx, edx
		jz	short loc_A4498
		mov	edx, [edx+1Ch]
		mov	edx, [edx+ecx*8]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		pop	ebp
		jmp	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
; ---------------------------------------------------------------------------
		align 8

loc_A4498:				; CODE XREF: CStudioHdr::pAnimStudioHdr(int)+Ej
		mov	eax, [eax]
		pop	ebp
		retn
_ZN10CStudioHdr14pAnimStudioHdrEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pAnimdesc(int)
_ZN10CStudioHdr9pAnimdescEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_A4500
		mov	eax, [eax+1Ch]
		lea	esi, ds:0[edx*8]
		mov	eax, [eax+edx*8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	edx, [ebx+4]
		mov	edx, [edx+1Ch]
		mov	ecx, [edx+esi+4]
		xor	edx, edx
		test	ecx, ecx
		js	short loc_A44EA
		imul	ebx, ecx, 64h
		cmp	ecx, [eax+0B4h]
		cmovl	edx, ebx

loc_A44EA:				; CODE XREF: CStudioHdr::pAnimdesc(int)+3Cj
		add	edx, [eax+0B8h]
		add	esp, 10h
		pop	ebx
		add	eax, edx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4500:				; CODE XREF: CStudioHdr::pAnimdesc(int)+13j
		test	edx, edx
		mov	ecx, [ebx]
		js	short loc_A4512
		imul	ebx, edx, 64h
		cmp	edx, [ecx+0B4h]
		cmovl	eax, ebx

loc_A4512:				; CODE XREF: CStudioHdr::pAnimdesc(int)+64j
		add	eax, [ecx+0B8h]
		add	esp, 10h
		pop	ebx
		add	eax, ecx
		pop	esi
		pop	ebp
		retn
_ZN10CStudioHdr9pAnimdescEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetNumSeq(void)const
_ZNK10CStudioHdr9GetNumSeqEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		test	eax, eax
		jz	short loc_A4548
		mov	eax, [eax+14h]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A4548:				; CODE XREF: CStudioHdr::GetNumSeq(void)+Bj
		mov	eax, [edx]
		pop	ebp
		mov	eax, [eax+0BCh]
		retn
_ZNK10CStudioHdr9GetNumSeqEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pSeqdesc(int)
_ZN10CStudioHdr8pSeqdescEi proc	near	; CODE XREF: CStudioHdr::EntryNode(int)+19p
					; CStudioHdr::ExitNode(int)+19p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		test	esi, esi
		mov	eax, [ebx+4]
		js	loc_A4608
		test	eax, eax
		jz	loc_A4610
		mov	edx, [eax+14h]

loc_A4584:				; CODE XREF: CStudioHdr::pSeqdesc(int)+B8j
		cmp	esi, edx
		mov	edx, 0
		cmovge	esi, edx

loc_A458E:				; CODE XREF: CStudioHdr::pSeqdesc(int)+AAj
		test	eax, eax
		jz	short loc_A45E0
		mov	eax, [eax+8]
		shl	esi, 4
		mov	eax, [eax+esi+8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	edx, [ebx+4]
		mov	edx, [edx+8]
		mov	ecx, [edx+esi+0Ch]
		xor	edx, edx
		test	ecx, ecx
		js	short loc_A45C7
		imul	ebx, ecx, 0D4h
		cmp	ecx, [eax+0BCh]
		cmovl	edx, ebx

loc_A45C7:				; CODE XREF: CStudioHdr::pSeqdesc(int)+56j
		add	edx, [eax+0C0h]
		add	esp, 10h
		pop	ebx
		add	eax, edx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A45E0:				; CODE XREF: CStudioHdr::pSeqdesc(int)+30j
		test	esi, esi
		mov	ecx, [ebx]
		js	short loc_A45F5
		imul	edx, esi, 0D4h
		cmp	esi, [ecx+0BCh]
		cmovl	eax, edx

loc_A45F5:				; CODE XREF: CStudioHdr::pSeqdesc(int)+84j
		add	eax, [ecx+0C0h]
		add	esp, 10h
		pop	ebx
		add	eax, ecx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A4608:				; CODE XREF: CStudioHdr::pSeqdesc(int)+13j
		xor	esi, esi
		jmp	short loc_A458E
; ---------------------------------------------------------------------------
		align 10h

loc_A4610:				; CODE XREF: CStudioHdr::pSeqdesc(int)+1Bj
		mov	edx, [ebx]
		mov	edx, [edx+0BCh]
		jmp	loc_A4584
_ZN10CStudioHdr8pSeqdescEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::iRelativeAnim(int, int)const
_ZNK10CStudioHdr13iRelativeAnimEii proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_A464D
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [ecx+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ecx+58h]
		mov	ecx, [edx+40h]
		lea	eax, [ecx+eax*4]
		mov	eax, [eax]

loc_A464D:				; CODE XREF: CStudioHdr::iRelativeAnim(int,int)+Ej
		pop	ebp
		retn
_ZNK10CStudioHdr13iRelativeAnimEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::iRelativeSeq(int,	int)const
_ZNK10CStudioHdr12iRelativeSeqEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_A467D
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [ecx+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ecx+58h]
		mov	ecx, [edx+2Ch]
		lea	eax, [ecx+eax*4]
		mov	eax, [eax]

loc_A467D:				; CODE XREF: CStudioHdr::iRelativeSeq(int,int)+Ej
		pop	ebp
		retn
_ZNK10CStudioHdr12iRelativeSeqEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetNumPoseParameters(void)const
_ZNK10CStudioHdr20GetNumPoseParametersEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		test	eax, eax
		jz	short loc_A4698
		mov	eax, [eax+50h]

loc_A4690:				; CODE XREF: CStudioHdr::GetNumPoseParameters(void)+1Cj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A4698:				; CODE XREF: CStudioHdr::GetNumPoseParameters(void)+Bj
		mov	edx, [edx]
		test	edx, edx
		jz	short loc_A4690
		mov	eax, [edx+12Ch]
		pop	ebp
		retn
_ZNK10CStudioHdr20GetNumPoseParametersEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pPoseParameter(int)
_ZN10CStudioHdr14pPoseParameterEi proc near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_A4730
		mov	eax, [eax+44h]
		shl	esi, 3
		add	eax, esi
		mov	edx, [eax]
		test	edx, edx
		jnz	short loc_A46F8
		mov	eax, [eax+4]
		mov	edx, [ebx]
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		lea	eax, [eax+eax*4]
		lea	eax, [edx+eax*4]
		add	eax, [edx+130h]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A46F8:				; CODE XREF: CStudioHdr::pPoseParameter(int)+25j
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	edx, eax
		mov	eax, [ebx+4]
		mov	ebx, [ebp+var_8]
		mov	eax, [eax+44h]
		mov	eax, [eax+esi+4]
		mov	esi, [ebp+var_4]
		lea	eax, [eax+eax*4]
		lea	eax, [edx+eax*4]
		add	eax, [edx+130h]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4730:				; CODE XREF: CStudioHdr::pPoseParameter(int)+17j
		mov	edx, [ebx]
		lea	eax, [esi+esi*4]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		lea	eax, [edx+eax*4]
		add	eax, [edx+130h]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CStudioHdr14pPoseParameterEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetSharedPoseParameter(int, int)const
_ZNK10CStudioHdr22GetSharedPoseParameterEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_A4782
		cmp	eax, 0FFFFFFFFh
		jz	short loc_A4782
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [ecx+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ecx+58h]
		mov	ecx, [edx+68h]
		lea	eax, [ecx+eax*4]
		mov	eax, [eax]

loc_A4782:				; CODE XREF: CStudioHdr::GetSharedPoseParameter(int,int)+Ej
					; CStudioHdr::GetSharedPoseParameter(int,int)+13j
		pop	ebp
		retn
_ZNK10CStudioHdr22GetSharedPoseParameterEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::EntryNode(int)
_ZN10CStudioHdr9EntryNodeEi proc near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZN10CStudioHdr8pSeqdescEi ; CStudioHdr::pSeqdesc(int)
		mov	edx, [ebx+4]
		test	edx, edx
		jz	short loc_A47E8
		mov	ecx, [eax+70h]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_A47DA
		shl	esi, 4
		add	esi, [edx+8]
		mov	eax, [esi+8]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [edx+58h]
		mov	eax, [eax+7Ch]
		mov	eax, [eax+ecx*4-4]
		add	eax, 1

loc_A47DA:				; CODE XREF: CStudioHdr::EntryNode(int)+2Cj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A47E8:				; CODE XREF: CStudioHdr::EntryNode(int)+23j
		mov	eax, [eax+70h]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CStudioHdr9EntryNodeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::ExitNode(int)
_ZN10CStudioHdr8ExitNodeEi proc	near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZN10CStudioHdr8pSeqdescEi ; CStudioHdr::pSeqdesc(int)
		mov	edx, [ebx+4]
		test	edx, edx
		jz	short loc_A4858
		mov	ecx, [eax+74h]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_A484A
		shl	esi, 4
		add	esi, [edx+8]
		mov	eax, [esi+8]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [edx+58h]
		mov	eax, [eax+7Ch]
		mov	eax, [eax+ecx*4-4]
		add	eax, 1

loc_A484A:				; CODE XREF: CStudioHdr::ExitNode(int)+2Cj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A4858:				; CODE XREF: CStudioHdr::ExitNode(int)+23j
		mov	eax, [eax+74h]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CStudioHdr8ExitNodeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetNumAttachments(void)const
_ZNK10CStudioHdr17GetNumAttachmentsEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		test	eax, eax
		jz	short loc_A4888
		mov	eax, [eax+3Ch]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A4888:				; CODE XREF: CStudioHdr::GetNumAttachments(void)+Bj
		mov	eax, [edx]
		pop	ebp
		mov	eax, [eax+0F0h]
		retn
_ZNK10CStudioHdr17GetNumAttachmentsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pAttachment(int)
_ZN10CStudioHdr11pAttachmentEi proc near ; CODE	XREF: CStudioHdr::GetAttachmentBone(int)+2Ap

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_A48F0
		mov	eax, [eax+30h]
		lea	esi, ds:0[ecx*8]
		mov	eax, [eax+ecx*8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	edx, [ebx+4]
		mov	ebx, [ebp+var_8]
		mov	edx, [edx+30h]
		imul	edx, [edx+esi+4], 5Ch
		mov	esi, [ebp+var_4]
		add	edx, [eax+0F4h]
		mov	esp, ebp
		pop	ebp
		add	eax, edx
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A48F0:				; CODE XREF: CStudioHdr::pAttachment(int)+17j
		mov	eax, [ebx]
		imul	ecx, 5Ch
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		add	ecx, [eax+0F4h]
		mov	esp, ebp
		pop	ebp
		add	eax, ecx
		retn
_ZN10CStudioHdr11pAttachmentEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetAttachmentBone(int)
_ZN10CStudioHdr17GetAttachmentBoneEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [edx+4]
		test	eax, eax
		jz	short loc_A4960
		mov	ebx, [eax+30h]
		mov	ebx, [ebx+ecx*8]
		lea	ebx, [ebx+ebx*8]
		shl	ebx, 4
		add	ebx, [eax+58h]
		mov	[esp], edx
		mov	[esp+4], ecx
		call	_ZN10CStudioHdr11pAttachmentEi ; CStudioHdr::pAttachment(int)
		mov	edx, [eax+8]
		mov	eax, [ebx+18h]
		mov	eax, [eax+edx*4]
		mov	edx, 0
		cmp	eax, 0FFFFFFFFh
		cmovz	eax, edx
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4960:				; CODE XREF: CStudioHdr::GetAttachmentBone(int)+12j
		mov	eax, [edx]
		imul	ecx, 5Ch
		add	ecx, [eax+0F4h]
		mov	eax, [eax+ecx+8]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CStudioHdr17GetAttachmentBoneEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::SetAttachmentBone(int, int)
_ZN10CStudioHdr17SetAttachmentBoneEii proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[esp+4], edi
		mov	eax, [esi]
		mov	[esp], eax
		call	_ZNK11studiohdr_t11pAttachmentEi ; studiohdr_t::pAttachment(int)
		mov	ecx, [esi+4]
		test	ecx, ecx
		jz	short loc_A49C4
		mov	edx, [ecx+30h]
		mov	edx, [edx+edi*8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ecx+58h]
		mov	esi, [edx+4]
		lea	ebx, [esi+ebx*4]
		mov	ebx, [ebx]

loc_A49C4:				; CODE XREF: CStudioHdr::SetAttachmentBone(int,int)+2Bj
		mov	[eax+8], ebx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CStudioHdr17SetAttachmentBoneEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pszNodeName(int)
_ZN10CStudioHdr11pszNodeNameEi proc near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebx+4]
		test	edx, edx
		jz	short loc_A4A40
		cmp	ecx, [edx+78h]
		mov	eax, offset aInvalidNode ; "Invalid node"
		jg	short loc_A4A34
		mov	eax, [edx+6Ch]
		sub	ecx, 1
		lea	esi, ds:0[ecx*8]
		mov	eax, [eax+ecx*8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	edx, [ebx+4]
		mov	edx, [edx+6Ch]
		mov	edx, [edx+esi+4]
		lea	edx, [eax+edx*4]
		add	edx, [eax+100h]
		add	eax, [edx]

loc_A4A34:				; CODE XREF: CStudioHdr::pszNodeName(int)+21j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4A40:				; CODE XREF: CStudioHdr::pszNodeName(int)+17j
		mov	eax, [ebx]
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		lea	edx, [eax+ecx*4]
		add	edx, [eax+100h]
		add	eax, [edx]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CStudioHdr11pszNodeNameEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetTransition(int, int)const
_ZNK10CStudioHdr13GetTransitionEii proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_A4A78
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A4A78:				; CODE XREF: CStudioHdr::GetTransition(int,int)+Ej
		mov	ecx, [ebp+arg_4]
		mov	edx, [edx]
		pop	ebp
		sub	ecx, 1
		imul	ecx, [edx+0F8h]
		add	eax, edx
		add	eax, ecx
		add	eax, [edx+0FCh]
		movzx	eax, byte ptr [eax-1]
		retn
_ZNK10CStudioHdr13GetTransitionEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetActivityListVersion(void)
_ZN10CStudioHdr22GetActivityListVersionEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_A4B00
		mov	edx, [edi]
		cmp	dword ptr [eax+64h], 1
		mov	esi, [edx+0C4h]
		jle	short loc_A4AF2
		mov	ebx, 1
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_A4AD0:				; CODE XREF: CStudioHdr::GetActivityListVersion(void)+50j
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	eax, [eax+0C4h]
		cmp	esi, eax
		cmovg	esi, eax
		mov	eax, [edi+4]
		add	ebx, 1
		cmp	[eax+64h], ebx
		jg	short loc_A4AD0

loc_A4AF2:				; CODE XREF: CStudioHdr::GetActivityListVersion(void)+1Fj
		add	esp, 1Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4B00:				; CODE XREF: CStudioHdr::GetActivityListVersion(void)+11j
		mov	eax, [edi]
		mov	esi, [eax+0C4h]
		add	esp, 1Ch
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CStudioHdr22GetActivityListVersionEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::SetActivityListVersion(int)
_ZN10CStudioHdr22SetActivityListVersionEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	eax, [esi]
		mov	[eax+0C4h], edi
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_A4B73
		cmp	dword ptr [eax+64h], 1
		jle	short loc_A4B73
		mov	ebx, 1
		lea	esi, [esi+0]

loc_A4B50:				; CODE XREF: CStudioHdr::SetActivityListVersion(int)+51j
		mov	[esp+4], ebx
		add	ebx, 1
		mov	[esp], esi
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZNK11studiohdr_t22SetActivityListVersionEi ; studiohdr_t::SetActivityListVersion(int)
		mov	eax, [esi+4]
		cmp	[eax+64h], ebx
		jg	short loc_A4B50

loc_A4B73:				; CODE XREF: CStudioHdr::SetActivityListVersion(int)+1Cj
					; CStudioHdr::SetActivityListVersion(int)+22j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CStudioHdr22SetActivityListVersionEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetEventListVersion(void)
_ZN10CStudioHdr19GetEventListVersionEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_A4BE0
		mov	edx, [edi]
		cmp	dword ptr [eax+64h], 1
		mov	esi, [edx+0C8h]
		jle	short loc_A4BD2
		mov	ebx, 1
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_A4BB0:				; CODE XREF: CStudioHdr::GetEventListVersion(void)+50j
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	eax, [eax+0C8h]
		cmp	esi, eax
		cmovg	esi, eax
		mov	eax, [edi+4]
		add	ebx, 1
		cmp	[eax+64h], ebx
		jg	short loc_A4BB0

loc_A4BD2:				; CODE XREF: CStudioHdr::GetEventListVersion(void)+1Fj
		add	esp, 1Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4BE0:				; CODE XREF: CStudioHdr::GetEventListVersion(void)+11j
		mov	eax, [edi]
		mov	esi, [eax+0C8h]
		add	esp, 1Ch
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CStudioHdr19GetEventListVersionEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::SetEventListVersion(int)
_ZN10CStudioHdr19SetEventListVersionEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	eax, [esi]
		mov	[eax+0C8h], edi
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_A4C4D
		cmp	dword ptr [eax+64h], 1
		jle	short loc_A4C4D
		mov	ebx, 1
		lea	esi, [esi+0]

loc_A4C30:				; CODE XREF: CStudioHdr::SetEventListVersion(int)+4Bj
		mov	[esp+4], ebx
		add	ebx, 1
		mov	[esp], esi
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	[eax+0C8h], edi
		mov	eax, [esi+4]
		cmp	[eax+64h], ebx
		jg	short loc_A4C30

loc_A4C4D:				; CODE XREF: CStudioHdr::SetEventListVersion(int)+1Cj
					; CStudioHdr::SetEventListVersion(int)+22j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CStudioHdr19SetEventListVersionEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::GetNumIKAutoplayLocks(void)const
_ZNK10CStudioHdr21GetNumIKAutoplayLocksEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		test	eax, eax
		jz	short loc_A4C78
		mov	eax, [eax+8Ch]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_A4C78:				; CODE XREF: CStudioHdr::GetNumIKAutoplayLocks(void)+Bj
		mov	eax, [edx]
		pop	ebp
		mov	eax, [eax+140h]
		retn
_ZNK10CStudioHdr21GetNumIKAutoplayLocksEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::pIKAutoplayLock(int)
_ZN10CStudioHdr15pIKAutoplayLockEi proc	near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_A4CF0
		mov	eax, [eax+80h]
		lea	esi, ds:0[ecx*8]
		mov	eax, [eax+ecx*8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CStudioHdr14GroupStudioHdrEi ; CStudioHdr::GroupStudioHdr(int)
		mov	edx, [ebx+4]
		mov	ebx, [ebp+var_8]
		mov	edx, [edx+80h]
		mov	edx, [edx+esi+4]
		mov	esi, [ebp+var_4]
		shl	edx, 5
		add	edx, [eax+144h]
		mov	esp, ebp
		pop	ebp
		add	eax, edx
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4CF0:				; CODE XREF: CStudioHdr::pIKAutoplayLock(int)+17j
		mov	eax, [ebx]
		shl	ecx, 5
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		add	ecx, [eax+144h]
		mov	esp, ebp
		pop	ebp
		add	eax, ecx
		retn
_ZN10CStudioHdr15pIKAutoplayLockEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::RemapSeqBone(int,	int)const
_ZNK10CStudioHdr12RemapSeqBoneEii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_A4D3D
		mov	edx, [ebp+arg_4]
		shl	edx, 4
		add	edx, [ecx+8]
		mov	edx, [edx+8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ecx+58h]
		mov	ecx, [edx+18h]
		lea	eax, [ecx+eax*4]
		mov	eax, [eax]

loc_A4D3D:				; CODE XREF: CStudioHdr::RemapSeqBone(int,int)+Ej
		pop	ebp
		retn
_ZNK10CStudioHdr12RemapSeqBoneEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::RemapAnimBone(int, int)const
_ZNK10CStudioHdr13RemapAnimBoneEii proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_A4D6B
		mov	ebx, [ebp+arg_4]
		mov	edx, [ecx+1Ch]
		mov	edx, [edx+ebx*8]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	edx, [ecx+58h]
		mov	ebx, [edx+18h]
		lea	eax, [ebx+eax*4]
		mov	eax, [eax]

loc_A4D6B:				; CODE XREF: CStudioHdr::RemapAnimBone(int,int)+Fj
		pop	ebx
		pop	ebp
		retn
_ZNK10CStudioHdr13RemapAnimBoneEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::RunFlexRules(float  const*, float	*)
_ZN10CStudioHdr12RunFlexRulesEPKfPf proc near

var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0BCh
		mov	edx, [ebp+arg_0]
		mov	edx, [edx]
		mov	edi, [edx+104h]
		mov	[ebp+var_A0], edx
		test	edi, edi
		jle	short loc_A4DBA
		mov	ecx, [ebp+arg_0]
		xor	eax, eax
		mov	ebx, [ebp+arg_8]
		lea	esi, [esi+0]

loc_A4DA0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+42j
		mov	dword ptr [ebx+eax*4], 0
		add	eax, 1
		mov	edx, [ecx]
		cmp	eax, [edx+104h]
		jl	short loc_A4DA0
		mov	[ebp+var_A0], edx

loc_A4DBA:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+1Fj
		mov	esi, [ebp+var_A0]
		mov	esi, [esi+114h]
		test	esi, esi
		jle	loc_A4FDF
		lea	eax, [ebp+var_98]
		xorps	xmm1, xmm1
		movss	xmm5, ds:dword_1EBDA0
		mov	[ebp+var_B0], 0
		movaps	xmm4, xmm5
		mov	[ebp+var_B4], 0
		mov	[ebp+var_9C], eax
		lea	esi, [esi+0]

loc_A4E00:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+269j
		mov	edi, [ebp+var_9C]
		xor	eax, eax
		mov	ecx, 20h
		mov	edx, [ebp+var_A0]
		rep stosd
		mov	eax, [ebp+var_B0]
		add	eax, [edx+118h]
		add	eax, edx
		mov	edi, [eax+4]
		mov	[ebp+var_A8], eax
		mov	edx, [eax+8]
		xor	eax, eax
		test	edi, edi
		jle	loc_A4FA6
		add	edx, [ebp+var_A8]
		movss	xmm2, ds:dword_1EBDA0
		xor	ebx, ebx
		movaps	xmm3, xmm2
		lea	esi, [esi+0]

loc_A4E50:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+228j
					; CStudioHdr::RunFlexRules(float  const*,float *)+3CAj	...
		cmp	dword ptr [edx], 15h
		ja	loc_A4F90
		mov	eax, [edx]
		jmp	ds:off_1EDAD0[eax*4]
; ---------------------------------------------------------------------------
		align 8

loc_A4E68:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB24o
		mov	esi, [ebp+var_A0]
		mov	eax, [edx+4]
		mov	esi, [esi+110h]
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		mov	[ebp+var_AC], esi
		mov	esi, [ebp+arg_4]
		add	eax, [ebp+var_A0]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		mov	eax, [eax+8]
		fld	dword ptr [esi+eax*4]
		fxch	st(2)
		fcomi	st, st(1)
		jnz	loc_A5630
		fstp	st(1)
		fxch	st(1)
		xor	eax, eax
		fcomip	st, st(1)
		fstp	st
		mov	[ebp+var_A4], eax
		fld	[ebp+var_A4]
		fld1
		fcmovb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_A4]

loc_A4EC4:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+8EAj
		cvttss2si eax, [ebp+ecx*4+var_9C]
		mov	esi, [ebp+var_AC]
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		mov	esi, [ebp+arg_4]
		add	eax, [ebp+var_A0]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		mov	eax, [eax+8]
		fld	dword ptr [esi+eax*4]
		fxch	st(2)
		fcomi	st, st(1)
		jnz	loc_A55E8
		fstp	st(1)
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		fldz
		fld	[ebp+var_A4]
		fcmovb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_A4]

loc_A4F12:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+8B4j
		lea	eax, [ecx-3]
		mov	[ebp+var_C4], eax
		cvttss2si eax, [ebp+eax*4+var_98]
		test	eax, eax
		js	loc_A55B4
		mov	esi, [ebp+var_AC]
		lea	eax, [eax+eax*4]
		lea	esi, [esi+eax*4]
		mov	eax, [ebp+var_A0]
		add	eax, esi
		mov	esi, [ebp+arg_4]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		mov	eax, [eax+8]
		fld	dword ptr [esi+eax*4]
		fxch	st(2)
		fcomi	st, st(1)
		jnz	loc_A5570
		fstp	st(1)
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jnb	loc_A55B4
		fld1
		fchs

loc_A4F6B:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+83Cj
		fadd	ds:flt_1EBCFC
		mov	esi, [ebp+var_C4]
		fmul	[ebp+var_A4]
		fstp	[ebp+esi*4+var_98]
		lea	esi, [esi+0]

loc_A4F88:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+36Dj
					; CStudioHdr::RunFlexRules(float  const*,float *)+857j	...
		sub	ecx, 2
		nop
		lea	esi, [esi+0]

loc_A4F90:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+E3j
					; CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: ...
		add	ebx, 1
		add	edx, 8
		cmp	ebx, edi
		jnz	loc_A4E50
		db	66h
		nop

loc_A4FA0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+3D0j
					; CStudioHdr::RunFlexRules(float  const*,float *)+42Ej	...
		mov	eax, [ebp+var_98]

loc_A4FA6:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+C3j
		mov	ecx, [ebp+var_A8]
		mov	esi, [ebp+arg_8]
		add	[ebp+var_B4], 1
		add	[ebp+var_B0], 0Ch
		mov	edx, [ecx]
		mov	[esi+edx*4], eax
		mov	edx, [ebp+arg_0]
		mov	esi, [ebp+var_B4]
		mov	edx, [edx]
		cmp	esi, [edx+114h]
		mov	[ebp+var_A0], edx
		jl	loc_A4E00

loc_A4FDF:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+58j
		add	esp, 0BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A4FF0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB20o
		mov	esi, [ebp+var_A0]
		mov	eax, [edx+4]
		mov	esi, [esi+110h]
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		mov	[ebp+var_A4], esi
		mov	esi, [ebp+arg_4]
		add	eax, [ebp+var_A0]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		mov	eax, [eax+8]
		fld	dword ptr [esi+eax*4]
		fxch	st(2)
		fcomi	st, st(1)
		jnz	loc_A56A0
		fstp	st(1)
		fld1
		fxch	st(2)
		fcomip	st, st(1)
		fstp	st
		fldz
		fcmovb	st, st(1)
		fstp	st(1)

loc_A503A:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+96Aj
		cvttss2si eax, [ebp+ecx*4+var_9C]
		mov	esi, [ebp+var_A4]
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		mov	esi, [ebp+arg_4]
		add	eax, [ebp+var_A0]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		mov	eax, [eax+8]
		fld	dword ptr [esi+eax*4]
		fxch	st(2)
		fcomi	st, st(1)
		jnz	loc_A5660
		fstp	st(1)
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		fldz
		fcmovnb	st, st(1)
		fstp	st(1)

loc_A507C:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+924j
		lea	esi, [ecx-3]
		cvttss2si eax, [ebp+esi*4+var_98]
		mov	[ebp+var_B8], esi
		test	eax, eax
		js	short loc_A50D0
		mov	esi, [ebp+var_A4]
		lea	eax, [eax+eax*4]
		lea	esi, [esi+eax*4]
		mov	eax, [ebp+var_A0]
		add	eax, esi
		mov	esi, [ebp+arg_4]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		mov	eax, [eax+8]
		fld	dword ptr [esi+eax*4]
		fxch	st(2)
		fcomi	st, st(1)
		jnz	loc_A56E0
		fstp	st(1)
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_A50D0
		jmp	loc_A5740
; ---------------------------------------------------------------------------

loc_A50CE:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+9B0j
		fstp	st

loc_A50D0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+320j
					; CStudioHdr::RunFlexRules(float  const*,float *)+357j
		mov	eax, [ebp+var_B8]
		fstp	[ebp+eax*4+var_98]
		jmp	loc_A4F88
; ---------------------------------------------------------------------------
		align 8

loc_A50E8:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB1Co
		mov	esi, ecx
		sub	esi, [edx+4]
		lea	eax, [esi+1]
		fld	[ebp+esi*4+var_98]
		cmp	eax, ecx
		jge	short loc_A5119
		lea	eax, [ebp+eax*4+var_98]
		lea	ecx, [ebp+ecx*4+var_98]
		lea	esi, [esi+0]

loc_A5110:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+3A7j
		fmul	dword ptr [eax]
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_A5110

loc_A5119:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+389j
		fsubr	ds:flt_1EBCFC
		lea	eax, [esi-1]
		add	ebx, 1
		add	edx, 8
		cmp	ebx, edi
		mov	ecx, esi
		fmul	[ebp+eax*4+var_98]
		fstp	[ebp+eax*4+var_98]
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 4

loc_A5148:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB18o
		mov	esi, ecx
		sub	esi, [edx+4]
		lea	eax, [esi+1]
		cmp	eax, ecx
		mov	[ebp+var_A4], eax
		jge	short loc_A518A
		lea	eax, [ebp+eax*4+var_98]
		fld	[ebp+esi*4+var_98]
		mov	[ebp+var_AC], eax
		lea	ecx, [ebp+ecx*4+var_98]
		lea	esi, [esi+0]

loc_A5178:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+416j
		fmul	dword ptr [eax]
		add	eax, 4
		cmp	eax, ecx
		fst	[ebp+esi*4+var_98]
		jnz	short loc_A5178
		fstp	st

loc_A518A:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+3E8j
		add	ebx, 1
		add	edx, 8
		mov	ecx, [ebp+var_A4]
		cmp	ebx, edi
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 8

loc_A51A8:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB14o
		mov	esi, [ebp+var_A0]
		cvttss2si eax, [ebp+ecx*4+var_9C]
		mov	esi, [esi+110h]
		lea	eax, [eax+eax*4]
		mov	[ebp+var_C0], esi
		lea	eax, [esi+eax*4]
		mov	esi, [ebp+var_A0]
		mov	eax, [esi+eax+8]
		mov	esi, [ebp+arg_4]
		fld	dword ptr [esi+eax*4]
		mov	eax, [edx+4]
		mov	esi, [ebp+var_C0]
		fld	[ebp+ecx*4+var_A0]
		fld	[ebp+ecx*4+var_A4]
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		mov	esi, [ebp+var_A0]
		mov	eax, [esi+eax+8]
		mov	[ebp+var_AC], eax
		lea	eax, [ecx-4]
		sub	ecx, 5
		fld	[ebp+eax*4+var_98]
		mov	[ebp+var_B8], eax
		fld	[ebp+ecx*4+var_98]
		fldz
		fxch	st(1)
		fcomi	st, st(5)
		jnb	short loc_A5250
		fxch	st(5)
		fcomi	st, st(4)
		jnb	short loc_A525C
		fxch	st(2)
		fcomi	st, st(2)
		jbe	loc_A5744
		fstp	st(4)
		fstp	st(2)
		fxch	st(2)
		fcomi	st, st(3)
		jnz	loc_A579F
		fstp	st
		fstp	st(1)
		fstp	st(1)
		jmp	short loc_A5280
; ---------------------------------------------------------------------------
		align 10h

loc_A5250:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+4B6j
		fstp	st
		fstp	st(3)
		fstp	st
		fstp	st
		fstp	st(1)
		jmp	short loc_A5280
; ---------------------------------------------------------------------------

loc_A525C:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+4BCj
		fstp	st
		fstp	st(3)
		fstp	st
		fstp	st
		fstp	st(1)
		jmp	short loc_A5280
; ---------------------------------------------------------------------------

loc_A5268:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+9E4j
		fstp	st
		fstp	st(1)
		fstp	st(1)
		jmp	short loc_A5280
; ---------------------------------------------------------------------------

loc_A5270:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+9EEj
		fstp	st
		fstp	st(1)
		fstp	st(1)
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_A5280:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+4DCj
					; CStudioHdr::RunFlexRules(float  const*,float *)+4EAj	...
		mov	esi, [ebp+var_AC]
		add	ebx, 1
		add	edx, 8
		mov	eax, [ebp+arg_4]
		cmp	ebx, edi
		fmul	dword ptr [eax+esi*4]
		fstp	[ebp+ecx*4+var_98]
		mov	ecx, [ebp+var_B8]
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A52B0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDAF0o
		lea	eax, [ecx-1]
		add	ebx, 1
		add	edx, 8
		fld	[ebp+eax*4+var_98]
		cmp	ebx, edi
		fchs
		fstp	[ebp+eax*4+var_98]
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A52E0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDAECo
		lea	eax, [ecx-1]
		fld	[ebp+eax*4+var_98]
		fld	st
		fld	ds:dbl_1EDB38
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_A55D0
		sub	ecx, 2
		fdivr	[ebp+ecx*4+var_98]
		fstp	[ebp+ecx*4+var_98]
		mov	ecx, eax

loc_A5311:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+69Dj
					; CStudioHdr::RunFlexRules(float  const*,float *)+86Fj
		add	ebx, 1
		add	edx, 8
		cmp	ebx, edi
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 8

loc_A5328:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB10o
		mov	eax, [edx+4]
		add	ebx, 1
		add	edx, 8
		mov	esi, [ebp+var_A0]
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		add	eax, [esi+110h]
		mov	esi, [ebp+arg_4]
		mov	eax, [eax+8]
		movss	xmm0, dword ptr	[esi+eax*4]
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+ecx*4+var_98], xmm0
		add	ecx, 1
		cmp	ebx, edi
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 8

loc_A5378:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB0Co
		mov	eax, [edx+4]
		fld1
		add	ebx, 1
		mov	esi, [ebp+var_A0]
		fchs
		add	edx, 8
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		add	eax, [esi+110h]
		mov	esi, [ebp+arg_4]
		mov	eax, [eax+8]
		fsubr	dword ptr [esi+eax*4]
		fstp	[ebp+var_A4]
		movss	xmm0, [ebp+var_A4]
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+var_A4], xmm0
		fld	[ebp+var_A4]
		fsubr	ds:flt_1EBCFC
		fstp	[ebp+ecx*4+var_98]
		add	ecx, 1
		cmp	ebx, edi
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 4

loc_A53E8:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB08o
		lea	esi, [ecx-2]
		fld	[ebp+esi*4+var_98]
		lea	eax, [ecx-1]
		fld	[ebp+eax*4+var_98]
		fxch	st(1)
		mov	ecx, eax
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+esi*4+var_98]
		jmp	loc_A5311
; ---------------------------------------------------------------------------
		align 8

loc_A5418:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDB04o
		lea	eax, [ecx-2]
		sub	ecx, 1
		fld	[ebp+eax*4+var_98]
		fld	[ebp+ecx*4+var_98]
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		add	ebx, 1
		add	edx, 8
		cmp	ebx, edi
		fstp	[ebp+eax*4+var_98]
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A5450:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDAE0o
		lea	eax, [ecx-2]
		sub	ecx, 1
		add	ebx, 1
		fld	[ebp+eax*4+var_98]
		add	edx, 8
		cmp	ebx, edi
		fadd	[ebp+ecx*4+var_98]
		fstp	[ebp+eax*4+var_98]
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A5480:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDADCo
		mov	eax, [edx+4]
		add	ebx, 1
		add	edx, 8
		mov	esi, [ebp+arg_8]
		mov	eax, [esi+eax*4]
		mov	[ebp+ecx*4+var_98], eax
		add	ecx, 1
		cmp	ebx, edi
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A54B0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDAD8o
		mov	eax, [edx+4]
		add	ebx, 1
		add	edx, 8
		mov	esi, [ebp+var_A0]
		lea	eax, [eax+eax*4]
		lea	eax, [esi+eax*4]
		add	eax, [esi+110h]
		mov	esi, [ebp+arg_4]
		mov	eax, [eax+8]
		mov	eax, [esi+eax*4]
		mov	[ebp+ecx*4+var_98], eax
		add	ecx, 1
		cmp	ebx, edi
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A54F0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDAD4o
		mov	eax, [edx+4]
		add	ebx, 1
		add	edx, 8
		mov	[ebp+ecx*4+var_98], eax
		add	ecx, 1
		cmp	ebx, edi
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------

loc_A5510:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDAE8o
		lea	eax, [ecx-2]
		sub	ecx, 1
		add	ebx, 1
		fld	[ebp+eax*4+var_98]
		add	edx, 8
		cmp	ebx, edi
		fmul	[ebp+ecx*4+var_98]
		fstp	[ebp+eax*4+var_98]
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A5540:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+EBj
					; DATA XREF: .rodata:001EDAE4o
		lea	eax, [ecx-2]
		sub	ecx, 1
		add	ebx, 1
		fld	[ebp+eax*4+var_98]
		add	edx, 8
		cmp	ebx, edi
		fsub	[ebp+ecx*4+var_98]
		fstp	[ebp+eax*4+var_98]
		jnz	loc_A4E50
		jmp	loc_A4FA0
; ---------------------------------------------------------------------------
		align 10h

loc_A5570:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+1E3j
		fxch	st(2)
		fsub	st, st(1)
		fxch	st(1)
		fsubp	st(2), st
		fdivrp	st(1), st
		fstp	[ebp+var_BC]
		mov	eax, [ebp+var_BC]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, xmm5
		movss	[ebp+var_BC], xmm0
		fld	[ebp+var_BC]
		fadd	st, st
		fsub	ds:flt_1EBCFC
		fldz
		fcomip	st, st(1)
		ja	loc_A4F6B
		fstp	st

loc_A55B4:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+1B6j
					; CStudioHdr::RunFlexRules(float  const*,float *)+1F1j
		mov	esi, [ebp+var_A4]
		mov	eax, [ebp+var_C4]
		mov	[ebp+eax*4+var_98], esi
		jmp	loc_A4F88
; ---------------------------------------------------------------------------
		align 10h

loc_A55D0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+588j
		fstp	st
		mov	[ebp+ecx*4+var_A0], 0
		mov	ecx, eax
		jmp	loc_A5311
; ---------------------------------------------------------------------------
		align 8

loc_A55E8:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+182j
		fxch	st(2)
		fsub	st, st(1)
		fxch	st(1)
		fsubp	st(2), st
		fdivrp	st(1), st
		fstp	[ebp+var_BC]
		mov	eax, [ebp+var_BC]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, xmm4
		movss	[ebp+var_B8], xmm0
		fld	[ebp+var_B8]
		fmul	[ebp+var_A4]
		fstp	[ebp+var_A4]
		jmp	loc_A4F12
; ---------------------------------------------------------------------------
		align 10h

loc_A5630:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+12Cj
		fxch	st(2)
		fsub	st, st(1)
		fxch	st(1)
		fsubp	st(2), st
		fdivrp	st(1), st
		fstp	[ebp+var_BC]
		mov	eax, [ebp+var_BC]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, xmm2
		movss	[ebp+var_A4], xmm0
		jmp	loc_A4EC4
; ---------------------------------------------------------------------------
		align 10h

loc_A5660:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+2F8j
		fxch	st(2)
		fsub	st, st(1)
		fxch	st(1)
		fsubp	st(2), st
		fdivrp	st(1), st
		fstp	[ebp+var_BC]
		mov	eax, [ebp+var_BC]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+var_AC], xmm0
		fmul	[ebp+var_AC]
		jmp	loc_A507C
; ---------------------------------------------------------------------------
		align 10h

loc_A56A0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+2B4j
		fxch	st(2)
		fsub	st, st(1)
		fxch	st(1)
		fsubp	st(2), st
		fdivrp	st(1), st
		fstp	[ebp+var_BC]
		mov	eax, [ebp+var_BC]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+var_AC], xmm0
		fld	[ebp+var_AC]
		fsubr	ds:flt_1EBCFC
		jmp	loc_A503A
; ---------------------------------------------------------------------------
		align 10h

loc_A56E0:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+349j
		fxch	st(2)
		fsub	st, st(1)
		fxch	st(1)
		fsubp	st(2), st
		fdivrp	st(1), st
		fstp	[ebp+var_BC]
		mov	eax, [ebp+var_BC]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, xmm3
		movss	[ebp+var_BC], xmm0
		fld	[ebp+var_BC]
		fadd	st, st
		fsub	ds:flt_1EBCFC
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	loc_A50CE

loc_A5726:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+9D2j
		fsubr	ds:flt_1EBCFC
		mov	esi, [ebp+var_B8]
		fmulp	st(1), st
		fstp	[ebp+esi*4+var_98]
		jmp	loc_A4F88
; ---------------------------------------------------------------------------

loc_A5740:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+359j
		fld1
		jmp	short loc_A5726
; ---------------------------------------------------------------------------

loc_A5744:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+4C2j
		fstp	st
		fstp	st
		fstp	st(3)
		fxch	st(1)
		fxch	st(2)
		fld1
		fxch	st(1)
		fcomi	st, st(2)
		jbe	loc_A5268
		fxch	st(3)
		fcomi	st, st(2)
		jz	loc_A5270
		fxch	st(3)
		fsub	st, st(2)
		fxch	st(3)
		fsubrp	st(2), st
		fxch	st(2)
		fdivrp	st(1), st
		fstp	[ebp+var_BC]
		mov	eax, [ebp+var_BC]
		movd	xmm0, eax
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+var_A4], xmm0
		fsub	[ebp+var_A4]
		jmp	loc_A5280
; ---------------------------------------------------------------------------

loc_A579F:				; CODE XREF: CStudioHdr::RunFlexRules(float  const*,float *)+4D0j
		fstp	st(1)
		fxch	st(1)
		fsub	st, st(2)
		fxch	st(2)
		fsubp	st(1), st
		fdivp	st(1), st
		fstp	[ebp+var_BC]
		mov	esi, [ebp+var_BC]
		movd	xmm0, esi
		maxss	xmm0, xmm1
		minss	xmm0, ds:dword_1EBDA0
		movss	[ebp+var_BC], xmm0
		fld	[ebp+var_BC]
		jmp	loc_A5280
_ZN10CStudioHdr12RunFlexRulesEPKfPf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CActivityToSequenceMapping::GetSequences(int, int	*, int *)
_ZN10CStudioHdr26CActivityToSequenceMapping12GetSequencesEiPiS1_ proc near

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_4]
		mov	[esp], ebx
		call	_Z7HashInti	; HashInt(int)
		mov	ecx, [ebp+arg_0]
		cmp	byte ptr [ecx+22h], 0
		jz	loc_A58C0
		mov	edx, [ecx+24h]
		mov	ecx, [ecx+18h]
		and	edx, eax
		mov	[ebp+var_1C], ecx

loc_A580C:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+EDj
		mov	ecx, [ebp+arg_0]
		lea	eax, [edx+edx*4]
		mov	ecx, [ecx+0Ch]
		lea	eax, [ecx+eax*4]
		mov	[ebp+var_20], ecx
		mov	esi, [eax+0Ch]
		cmp	esi, 0
		jle	short loc_A585F
		mov	edi, [eax]
		xor	eax, eax
		cmp	ebx, [edi]
		jnz	short loc_A583A
		jmp	short loc_A5868
; ---------------------------------------------------------------------------
		align 10h

loc_A5830:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+5Fj
		mov	ecx, eax
		shl	ecx, 4
		cmp	ebx, [edi+ecx]
		jz	short loc_A5868

loc_A583A:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+49j
		add	eax, 1
		cmp	eax, esi
		jnz	short loc_A5830

loc_A5841:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*):loc_A585Fj
		mov	ebx, 0FFFFh
		xor	eax, eax
		mov	edx, 0FFFFh
		cmp	[ebp+var_1C], ebx
		mov	ecx, 0FFFFh
		jg	short loc_A5881

loc_A5857:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+9Fj
					; CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int *)+ADj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A585F:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+41j
		jz	short loc_A5841
		xor	eax, eax
		nop
		lea	esi, [esi+0]

loc_A5868:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+4Bj
					; CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int *)+58j
		shl	edx, 10h
		or	edx, eax
		xor	eax, eax
		mov	ecx, edx
		and	edx, 0FFFFh
		shr	ecx, 10h
		mov	ebx, ecx
		cmp	[ebp+var_1C], ebx
		jle	short loc_A5857

loc_A5881:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+75j
		mov	ebx, [ebp+var_20]
		lea	ecx, [ecx+ecx*4]
		lea	ecx, [ebx+ecx*4]
		cmp	[ecx+0Ch], edx
		jle	short loc_A5857
		shl	edx, 4
		add	edx, [ecx]
		mov	ecx, [ebp+arg_0]
		mov	eax, [edx+4]
		mov	ebx, [edx+8]
		shl	eax, 2
		add	eax, [ecx]
		mov	ecx, [ebp+arg_8]
		mov	[ecx], ebx
		mov	ecx, [edx+0Ch]
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A58C0:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::GetSequences(int,int *,int	*)+1Bj
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, [ecx+18h]
		div	ecx
		mov	[ebp+var_1C], ecx
		jmp	loc_A580C
_ZN10CStudioHdr26CActivityToSequenceMapping12GetSequencesEiPiS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)
_ZN10CStudioHdr26CActivityToSequenceMapping23NumSequencesForActivityEi proc near

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edx, [esi]
		test	edx, edx
		jz	short loc_A5970
		mov	[esp], ebx
		call	_Z7HashInti	; HashInt(int)
		cmp	byte ptr [esi+22h], 0
		jnz	short loc_A5980
		mov	ecx, [esi+18h]
		xor	edx, edx
		div	ecx
		mov	[ebp+var_1C], ecx

loc_A590F:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+ABj
		mov	esi, [esi+0Ch]
		lea	eax, [edx+edx*4]
		lea	eax, [esi+eax*4]
		mov	[ebp+var_20], esi
		mov	esi, [eax+0Ch]
		cmp	esi, 0
		jle	short loc_A598D
		mov	edi, [eax]
		xor	eax, eax
		cmp	ebx, [edi]
		jnz	short loc_A593A
		jmp	short loc_A5998
; ---------------------------------------------------------------------------
		align 10h

loc_A5930:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+5Fj
		mov	ecx, eax
		shl	ecx, 4
		cmp	ebx, [edi+ecx]
		jz	short loc_A5998

loc_A593A:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+49j
		add	eax, 1
		cmp	eax, esi
		jnz	short loc_A5930

loc_A5941:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int):loc_A598Dj
		mov	edx, 0FFFFh
		mov	ebx, 0FFFFh
		mov	ecx, 0FFFFh

loc_A5950:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+CAj
		xor	eax, eax
		cmp	[ebp+var_1C], ebx
		jle	short loc_A5970
		mov	ebx, [ebp+var_20]
		lea	ecx, [ecx+ecx*4]
		lea	ecx, [ebx+ecx*4]
		cmp	[ecx+0Ch], edx
		jle	short loc_A5970
		shl	edx, 4
		add	edx, [ecx]
		mov	eax, [edx+8]
		lea	esi, [esi+0]

loc_A5970:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+15j
					; CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+75j ...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A5980:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+23j
		mov	edx, [esi+24h]
		mov	ecx, [esi+18h]
		and	edx, eax
		mov	[ebp+var_1C], ecx
		jmp	short loc_A590F
; ---------------------------------------------------------------------------

loc_A598D:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+41j
		jz	short loc_A5941
		xor	eax, eax
		lea	esi, [esi+0]

loc_A5998:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+4Bj
					; CStudioHdr::CActivityToSequenceMapping::NumSequencesForActivity(int)+58j
		shl	edx, 10h
		or	edx, eax
		mov	ecx, edx
		and	edx, 0FFFFh
		shr	ecx, 10h
		mov	ebx, ecx
		jmp	short loc_A5950
_ZN10CStudioHdr26CActivityToSequenceMapping23NumSequencesForActivityEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CActivityToSequenceMapping::ValidateAgainst(CStudioHdr const*)
_ZN10CStudioHdr26CActivityToSequenceMapping15ValidateAgainstEPKS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		cmp	byte ptr [edx+8], 0
		jz	short loc_A59CE
		mov	ebx, [ecx]
		xor	eax, eax
		cmp	[edx+28h], ebx
		jz	short loc_A59D8

loc_A59CE:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::ValidateAgainst(CStudioHdr	const*)+13j
					; CStudioHdr::CActivityToSequenceMapping::ValidateAgainst(CStudioHdr const*)+31j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A59D8:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::ValidateAgainst(CStudioHdr	const*)+1Cj
		mov	eax, [ecx+4]
		cmp	[edx+2Ch], eax
		setz	al
		jmp	short loc_A59CE
_ZN10CStudioHdr26CActivityToSequenceMapping15ValidateAgainstEPKS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CActivityToSequenceMapping::SetValidationPair(CStudioHdr const*)
_ZN10CStudioHdr26CActivityToSequenceMapping17SetValidationPairEPKS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx]
		mov	edx, [edx+4]
		mov	[eax+28h], ecx
		mov	[eax+2Ch], edx
		pop	ebp
		retn
_ZN10CStudioHdr26CActivityToSequenceMapping17SetValidationPairEPKS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55 proc near
					; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+E4p
					; CStudioHdr::Init(studiohdr_t	const*,IMDLCache *)+FDp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, edx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		mov	ebx, [eax+0Ch]
		sub	esi, ebx
		jz	short loc_A5A45
		mov	ecx, [eax+4]
		mov	edi, ebx
		cmp	edx, ecx
		jg	short loc_A5A88

loc_A5A31:				; CODE XREF: _ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55+97j
		mov	ecx, [eax]
		add	edi, esi
		mov	[eax+0Ch], edi
		mov	[eax+10h], ecx
		mov	eax, edi
		sub	eax, ebx
		sub	eax, esi
		test	eax, eax
		jg	short loc_A5A58

loc_A5A45:				; CODE XREF: _ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55+16j
					; _ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55+4Aj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A5A58:				; CODE XREF: _ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55+33j
		test	esi, esi
		jle	short loc_A5A45
		shl	eax, 2
		mov	[esp+8], eax	; n
		lea	eax, [ecx+ebx*4]
		mov	[esp+4], eax	; src
		lea	eax, [ecx+edx*4]
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A5A88:				; CODE XREF: _ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55+1Fj
		mov	edi, edx
		mov	[esp], eax
		sub	edi, ecx
		mov	[ebp+var_1C], eax
		mov	[esp+4], edi
		mov	[ebp+var_20], edx
		call	_ZN10CUtlMemoryIiiE4GrowEi ; CUtlMemory<int,int>::Grow(int)
		mov	eax, [ebp+var_1C]
		mov	edx, [ebp+var_20]
		mov	edi, [eax+0Ch]
		jmp	short loc_A5A31
_ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::ResetVModel(virtualmodel_t  const*)const
_ZNK10CStudioHdr11ResetVModelEPK14virtualmodel_t proc near
					; CODE XREF: CStudioHdr::SequencesAvailable(void)+3Fp
					; CStudioHdr::Init(studiohdr_t	const*,IMDLCache *)+CFp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		test	esi, esi
		jz	short loc_A5AFB
		mov	[ebx+4], esi
		mov	eax, [esi+64h]
		mov	[esp+4], eax
		lea	eax, [ebx+8]
		mov	[esp], eax
		call	_ZN10CUtlVectorIPK11studiohdr_t10CUtlMemoryIS2_iEE8SetCountEi ;	CUtlVector<studiohdr_t	const*,CUtlMemory<studiohdr_t  const*,int>>::SetCount(int)
		mov	eax, [ebx+14h]
		test	eax, eax
		jle	short loc_A5AF2
		xor	edx, edx

loc_A5AE0:				; CODE XREF: CStudioHdr::ResetVModel(virtualmodel_t  const*)+40j
		mov	ecx, [ebx+8]
		mov	dword ptr [ecx+edx*4], 0
		add	edx, 1
		cmp	[ebx+14h], edx
		jg	short loc_A5AE0

loc_A5AF2:				; CODE XREF: CStudioHdr::ResetVModel(virtualmodel_t  const*)+2Cj
					; CStudioHdr::ResetVModel(virtualmodel_t  const*)+52j
		add	esp, 10h
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A5AFB:				; CODE XREF: CStudioHdr::ResetVModel(virtualmodel_t  const*)+10j
		mov	dword ptr [ebx+4], 0
		jmp	short loc_A5AF2
_ZNK10CStudioHdr11ResetVModelEPK14virtualmodel_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::SequencesAvailable(void)const
_ZNK10CStudioHdr18SequencesAvailableEv proc near
					; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+31p

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx]
		mov	ecx, [edx+150h]
		test	ecx, ecx
		jz	short loc_A5B32
		mov	ecx, [ebx+4]
		test	ecx, ecx
		jz	short loc_A5B40

loc_A5B32:				; CODE XREF: CStudioHdr::SequencesAvailable(void)+19j
					; CStudioHdr::SequencesAvailable(void)+49j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A5B40:				; CODE XREF: CStudioHdr::SequencesAvailable(void)+20j
		mov	[esp], edx
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZNK10CStudioHdr11ResetVModelEPK14virtualmodel_t ; CStudioHdr::ResetVModel(virtualmodel_t  const*)
		test	eax, eax
		setnz	al
		jmp	short loc_A5B32
_ZNK10CStudioHdr18SequencesAvailableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::Init(studiohdr_t	const*,	IMDLCache *)
_ZN10CStudioHdr4InitEPK11studiohdr_tP9IMDLCache	proc near
					; CODE XREF: CStudioHdr::CStudioHdr(void)+F2p
					; CStudioHdr::CStudioHdr(studiohdr_t  const*,IMDLCache *)+F0p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		test	ecx, ecx
		mov	[ebx], ecx
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+14h], 0
		jz	loc_A5C14
		test	eax, eax
		jz	short loc_A5BAD
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+9Ch]
		mov	ecx, [ebx]
		mov	[ebx+20h], eax
		mov	eax, [eax]
		sub	eax, 1
		mov	[ebx+1Ch], eax

loc_A5BAD:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+2Bj
		mov	esi, [ecx+150h]
		test	esi, esi
		jnz	short loc_A5C20
		mov	edx, [ecx+9Ch]
		cmp	edx, [ebx+38h]
		jg	short loc_A5C41

loc_A5BC2:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+DFj
		cmp	[ebx+4Ch], edx
		jl	loc_A5C5A

loc_A5BCB:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+F4j
					; CStudioHdr::Init(studiohdr_t	const*,IMDLCache *)+10Aj
		test	edx, edx
		jle	short loc_A5C14
		xor	edx, edx
		xor	eax, eax
		nop
		lea	esi, [esi+0]

loc_A5BD8:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+B2j
		lea	esi, [ecx+edx]
		add	esi, [ecx+0A0h]
		mov	ecx, [ebx+2Ch]
		mov	esi, [esi+0A0h]
		mov	[ecx+eax*4], esi
		mov	esi, [ebx]
		lea	ecx, [esi+edx]
		add	edx, 0D8h
		add	ecx, [esi+0A0h]
		mov	esi, [ecx+4]
		mov	ecx, [ebx+40h]
		mov	[ecx+eax*4], esi
		add	eax, 1
		mov	ecx, [ebx]
		cmp	eax, [ecx+9Ch]
		jl	short loc_A5BD8

loc_A5C14:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+23j
					; CStudioHdr::Init(studiohdr_t	const*,IMDLCache *)+6Dj
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A5C20:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+55j
		mov	[esp], ecx
		call	_ZNK11studiohdr_t15GetVirtualModelEv ; studiohdr_t::GetVirtualModel(void)
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZNK10CStudioHdr11ResetVModelEPK14virtualmodel_t ; CStudioHdr::ResetVModel(virtualmodel_t  const*)
		mov	ecx, [ebx]
		mov	edx, [ecx+9Ch]
		cmp	edx, [ebx+38h]
		jle	short loc_A5BC2

loc_A5C41:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+60j
		lea	eax, [ebx+2Ch]
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55
		mov	ecx, [ebx]
		mov	edx, [ecx+9Ch]
		cmp	[ebx+4Ch], edx
		jge	loc_A5BCB

loc_A5C5A:				; CODE XREF: CStudioHdr::Init(studiohdr_t  const*,IMDLCache *)+65j
		lea	eax, [ebx+40h]
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55
		mov	ecx, [ebx]
		mov	edx, [ecx+9Ch]
		jmp	loc_A5BCB
_ZN10CStudioHdr4InitEPK11studiohdr_tP9IMDLCache	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)
_ZN10CStudioHdr26CActivityToSequenceMapping10InitializeEPS_ proc near
					; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Reinitialize(CStudioHdr*)+5Bj

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A5C90

loc_A5C82:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+38j
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+57j ...
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A5C90:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+10j
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx]
		mov	[ebx+28h], eax
		mov	eax, [ecx+4]
		mov	[ebx+2Ch], eax
		mov	[esp], ecx
		call	_ZNK10CStudioHdr18SequencesAvailableEv ; CStudioHdr::SequencesAvailable(void)
		test	al, al
		jz	short loc_A5C82
		mov	edi, [ebp+arg_4]
		mov	byte ptr [ebx+8], 1
		mov	eax, [edi+4]
		test	eax, eax
		jz	loc_A6165
		mov	eax, [eax+14h]
		mov	[ebp+var_30], eax

loc_A5CC2:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+500j
		mov	eax, [ebp+var_30]
		test	eax, eax
		jle	short loc_A5C82
		xor	esi, esi
		mov	byte ptr [ebp+var_24], 0
		mov	[ebp+var_20], ebx
		lea	esi, [esi+0]

loc_A5CD8:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+146j
		mov	ecx, [ebp+arg_4]
		mov	[esp+4], esi
		mov	[esp], ecx
		call	_ZN10CStudioHdr8pSeqdescEi ; CStudioHdr::pSeqdesc(int)
		mov	ebx, [eax+10h]
		mov	[ebp+var_1C], eax
		test	ebx, ebx
		js	loc_A5DB0
		mov	edi, [eax+14h]
		mov	[esp], ebx
		mov	[ebp+var_34], edi
		call	_Z7HashInti	; HashInt(int)
		mov	ecx, [ebp+var_20]
		cmp	byte ptr [ecx+22h], 0
		jz	loc_A6060
		and	eax, [ecx+24h]
		mov	edi, [ecx+18h]
		mov	[ebp+var_24], eax
		mov	[ebp+var_28], edi

loc_A5D1C:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+400j
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_24]
		mov	ecx, [ecx+0Ch]
		lea	eax, [edx+edx*4]
		lea	eax, [ecx+eax*4]
		mov	[ebp+var_2C], ecx
		mov	ecx, [eax+0Ch]
		cmp	ecx, 0
		jle	loc_A5F72
		mov	edi, [eax]
		xor	eax, eax
		cmp	ebx, [edi]
		jnz	short loc_A5D5E
		jmp	loc_A5F80
; ---------------------------------------------------------------------------
		align 10h

loc_A5D50:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+F3j
		mov	edx, eax
		shl	edx, 4
		cmp	ebx, [edi+edx]
		jz	loc_A5F80

loc_A5D5E:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+D0j
		add	eax, 1
		cmp	eax, ecx
		jnz	short loc_A5D50

loc_A5D65:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*):loc_A5F72j
		mov	ecx, 0FFFFh
		mov	edx, 0FFFFh
		mov	eax, 0FFFFh
		cmp	[ebp+var_28], ecx
		jle	loc_A5F9E

loc_A5D7D:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+328j
		mov	ecx, [ebp+var_2C]
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*4]
		cmp	[eax+0Ch], edx
		jle	loc_A5F9E
		shl	edx, 4
		mov	ebx, [ebp+var_1C]
		mov	byte ptr [ebp+var_24], 1
		add	edx, [eax]
		add	dword ptr [edx+8], 1
		mov	eax, [ebx+14h]
		mov	ecx, [ebx+14h]
		sar	eax, 1Fh
		xor	ecx, eax
		sub	ecx, eax
		add	[edx+0Ch], ecx
		nop

loc_A5DB0:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+7Fj
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+374j	...
		add	esi, 1
		cmp	esi, [ebp+var_30]
		jnz	loc_A5CD8
		cmp	byte ptr [ebp+var_24], 0
		mov	ebx, [ebp+var_20]
		jz	loc_A5C82
		mov	esi, [ebx+18h]
		mov	edx, 0FFFFFFFFh
		test	esi, esi
		jle	short loc_A5E0B
		mov	ecx, [ebx+0Ch]
		xor	edx, edx
		mov	eax, [ecx+0Ch]
		test	eax, eax
		jg	short loc_A5E0B
		mov	eax, 14h
		jmp	short loc_A5DFF
; ---------------------------------------------------------------------------
		align 10h

loc_A5DF0:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+194j
		mov	edi, [ecx+eax+0Ch]
		add	eax, 14h
		test	edi, edi
		jg	loc_A615D

loc_A5DFF:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+176j
		add	edx, 1
		cmp	edx, esi
		jnz	short loc_A5DF0
		mov	edx, 0FFFFFFFFh

loc_A5E0B:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+163j
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+16Fj	...
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		lea	esi, [esi+0]

loc_A5E20:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+44Ej
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+48Bj	...
		mov	eax, edx
		shr	eax, 10h
		cmp	eax, esi
		jl	loc_A6078

loc_A5E2D:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+417j
		mov	eax, [ebp+var_1C]
		shl	eax, 2
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	[ebx], eax
		mov	[ebp+var_2C], eax
		lea	eax, ds:13h[ecx*4]
		and	eax, 0FFFFFFF0h
		mov	[ebx+4], edx
		lea	edx, [eax+10h]
		sub	esp, edx
		lea	edi, [esp+1Bh]
		mov	[esp+8], eax	; n
		and	edi, 0FFFFFFF0h
		mov	dword ptr [esp+4], 0 ; c
		mov	[ebp+var_24], edi
		mov	[esp], edi	; s
		call	memset
		mov	[ebp+var_1C], 0
		mov	[ebp+var_28], ebx

loc_A5E80:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+2F7j
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[esp], ebx
		mov	[esp+4], ecx
		call	_ZN10CStudioHdr8pSeqdescEi ; CStudioHdr::pSeqdesc(int)
		mov	ebx, [eax+10h]
		mov	esi, eax
		test	ebx, ebx
		js	loc_A5F5D
		mov	[esp], ebx
		call	_Z7HashInti	; HashInt(int)
		mov	edi, [ebp+var_28]
		cmp	byte ptr [edi+22h], 0
		jz	loc_A6140
		and	eax, [edi+24h]
		mov	[ebp+var_20], eax

loc_A5EBA:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+4DBj
		mov	edi, [ebp+var_28]
		mov	edx, [ebp+var_20]
		mov	edi, [edi+0Ch]
		lea	eax, [edx+edx*4]
		lea	eax, [edi+eax*4]
		mov	[ebp+var_34], edi
		mov	ecx, [eax+0Ch]
		cmp	ecx, 0
		jle	loc_A610A
		mov	edi, [eax]
		xor	eax, eax
		cmp	ebx, [edi]
		jnz	short loc_A5EF6
		jmp	loc_A6118
; ---------------------------------------------------------------------------
		align 4

loc_A5EE8:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+28Bj
		mov	edx, eax
		shl	edx, 4
		cmp	ebx, [edi+edx]
		jz	loc_A6118

loc_A5EF6:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+26Ej
		add	eax, 1
		cmp	eax, ecx
		jnz	short loc_A5EE8

loc_A5EFD:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*):loc_A610Aj
		mov	edx, (offset loc_FFFED+3)
		mov	eax, (offset loc_13FFEA+2)

loc_A5F07:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+4C4j
		mov	ecx, [ebp+var_34]
		mov	ebx, [ebp+var_24]
		mov	edi, [ebp+var_2C]
		add	edx, [ecx+eax]
		mov	eax, [esi+10h]
		mov	ecx, [ebx+eax*4]
		mov	eax, [edx+4]
		movzx	ebx, word ptr [ebp+var_1C]
		add	eax, ecx
		mov	[edi+eax*4], bx
		mov	eax, [esi+14h]
		mov	ebx, [esi+14h]
		mov	edi, [edx+4]
		sar	eax, 1Fh
		xor	ebx, eax
		sub	ebx, eax
		mov	eax, [ebp+var_2C]
		add	edi, ecx
		mov	[eax+edi*4+2], bx
		add	ecx, [edx+4]
		lea	eax, [eax+ecx*4]
		cmp	word ptr [eax+2], 0
		jnz	short loc_A5F53
		mov	word ptr [eax+2], 1

loc_A5F53:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+2DBj
		mov	eax, [esi+10h]
		mov	ecx, [ebp+var_24]
		add	dword ptr [ecx+eax*4], 1

loc_A5F5D:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+229j
		add	[ebp+var_1C], 1
		mov	ebx, [ebp+var_30]
		cmp	[ebp+var_1C], ebx
		jnz	loc_A5E80
		jmp	loc_A5C82
; ---------------------------------------------------------------------------

loc_A5F72:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+C4j
		jz	loc_A5D65
		xor	eax, eax
		lea	esi, [esi+0]

loc_A5F80:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+D2j
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+E8j
		mov	edx, [ebp+var_24]
		shl	edx, 10h
		or	edx, eax
		mov	eax, edx
		and	edx, 0FFFFh
		shr	eax, 10h
		mov	ecx, eax
		cmp	[ebp+var_28], ecx
		jg	loc_A5D7D

loc_A5F9E:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+107j
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+119j
		mov	[esp], ebx
		call	_Z7HashInti	; HashInt(int)
		mov	edi, [ebp+var_20]
		cmp	byte ptr [edi+22h], 0
		jz	loc_A6150
		mov	edi, [ebp+var_20]
		mov	edx, eax
		and	edx, [edi+24h]

loc_A5FBB:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+4E8j
		mov	edi, [ebp+var_20]
		lea	eax, [edx+edx*4]
		shl	eax, 2
		mov	edi, [edi+0Ch]
		add	eax, edi
		mov	edi, [eax+0Ch]
		mov	[ebp+var_1C], eax
		cmp	edi, 0
		jle	loc_A6175
		mov	ecx, [eax]
		xor	eax, eax
		mov	byte ptr [ebp+var_24], 1
		cmp	ebx, [ecx]
		jnz	short loc_A5FFA
		jmp	loc_A5DB0
; ---------------------------------------------------------------------------
		align 10h

loc_A5FF0:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+38Fj
		mov	edx, eax
		shl	edx, 4
		cmp	ebx, [ecx+edx]
		jz	short loc_A6056

loc_A5FFA:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+372j
		add	eax, 1
		cmp	eax, edi
		jnz	short loc_A5FF0

loc_A6001:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+50Bj
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE10GrowVectorEi ; CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::GrowVector(int)
		mov	edx, [ebp+var_1C]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		shl	edi, 4
		mov	[esp], edx
		call	_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE18ShiftElementsRightEii ; CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::ShiftElementsRight(int,int)
		mov	ecx, [ebp+var_1C]
		add	edi, [ecx]
		jz	short loc_A6056
		mov	eax, [ebp+var_34]
		mov	[edi], ebx
		mov	edx, [ebp+var_34]
		mov	dword ptr [edi+4], 0
		mov	dword ptr [edi+8], 1
		sar	eax, 1Fh
		xor	edx, eax
		mov	[edi+0Ch], edx
		sub	[edi+0Ch], eax

loc_A6056:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+388j
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+3C3j	...
		mov	byte ptr [ebp+var_24], 1
		jmp	loc_A5DB0
; ---------------------------------------------------------------------------
		align 10h

loc_A6060:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+9Aj
		mov	ecx, [ebp+var_20]
		xor	edx, edx
		mov	ecx, [ecx+18h]
		div	ecx
		mov	[ebp+var_28], ecx
		mov	[ebp+var_24], edx
		jmp	loc_A5D1C
; ---------------------------------------------------------------------------
		align 4

loc_A6078:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+1B7j
		mov	edi, [ebx+0Ch]
		lea	eax, [eax+eax*4]
		movzx	ecx, dx
		lea	eax, [edi+eax*4]
		cmp	ecx, [eax+0Ch]
		jge	loc_A5E2D
		shl	ecx, 4
		mov	edi, [ebp+var_1C]
		add	ecx, [eax]
		mov	eax, [ecx+8]
		mov	[ecx+4], edi
		mov	esi, [ebx+18h]
		add	edi, eax
		mov	eax, [ecx]
		lea	ecx, [edx+1]
		mov	[ebp+var_1C], edi
		mov	edx, 0FFFFFFFFh
		cmp	[ebp+var_20], eax
		cmovge	eax, [ebp+var_20]
		mov	[ebp+var_20], eax
		mov	eax, ecx
		shr	eax, 10h
		cmp	eax, esi
		jge	loc_A5E20
		mov	edi, [ebx+0Ch]
		movzx	edx, cx
		lea	ecx, [eax+eax*4]
		cmp	edx, [edi+ecx*4+0Ch]
		jl	loc_A6180
		lea	edx, [eax+eax*4+5]
		shl	edx, 2
		db	66h
		nop

loc_A60E0:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+480j
		add	eax, 1
		cmp	eax, esi
		jz	short loc_A6100
		mov	ecx, [edi+edx+0Ch]
		add	edx, 14h
		test	ecx, ecx
		jle	short loc_A60E0
		xor	ecx, ecx

loc_A60F4:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+512j
		mov	edx, eax
		shl	edx, 10h
		or	edx, ecx
		jmp	loc_A5E20
; ---------------------------------------------------------------------------

loc_A6100:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+475j
		mov	edx, 0FFFFFFFFh
		jmp	loc_A5E20
; ---------------------------------------------------------------------------

loc_A610A:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+262j
		jz	loc_A5EFD
		xor	eax, eax
		lea	esi, [esi+0]

loc_A6118:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+270j
					; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+280j
		mov	edx, [ebp+var_20]
		shl	edx, 10h
		or	edx, eax
		mov	eax, edx
		and	edx, 0FFFFh
		shr	eax, 10h
		shl	edx, 4
		lea	eax, [eax+eax*4]
		shl	eax, 2
		jmp	loc_A5F07
; ---------------------------------------------------------------------------
		align 10h

loc_A6140:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+23Ej
		mov	ecx, [ebp+var_28]
		xor	edx, edx
		div	dword ptr [ecx+18h]
		mov	[ebp+var_20], edx
		jmp	loc_A5EBA
; ---------------------------------------------------------------------------

loc_A6150:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+33Dj
		mov	ecx, [ebp+var_20]
		xor	edx, edx
		div	dword ptr [ecx+18h]
		jmp	loc_A5FBB
; ---------------------------------------------------------------------------

loc_A615D:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+189j
		shl	edx, 10h
		jmp	loc_A5E0B
; ---------------------------------------------------------------------------

loc_A6165:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+46j
		mov	eax, [edi]
		mov	eax, [eax+0BCh]
		mov	[ebp+var_30], eax
		jmp	loc_A5CC2
; ---------------------------------------------------------------------------

loc_A6175:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+362j
		jnz	loc_A6056
		jmp	loc_A6001
; ---------------------------------------------------------------------------

loc_A6180:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+461j
		mov	ecx, edx
		jmp	loc_A60F4
_ZN10CStudioHdr26CActivityToSequenceMapping10InitializeEPS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CActivityToSequenceMapping::Reinitialize(CStudioHdr*)
_ZN10CStudioHdr26CActivityToSequenceMapping12ReinitializeEPS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx]
		mov	byte ptr [ebx+8], 0
		test	eax, eax
		jz	short loc_A61B7
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	dword ptr [ebx], 0

loc_A61B7:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Reinitialize(CStudioHdr*)+17j
		mov	esi, [ebx+18h]
		test	esi, esi
		jle	short loc_A61DE
		xor	edx, edx
		xor	eax, eax
		lea	esi, [esi+0]

loc_A61C8:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Reinitialize(CStudioHdr*)+4Cj
		mov	ecx, [ebx+0Ch]
		add	eax, 1
		add	ecx, edx
		add	edx, 14h
		cmp	eax, esi
		mov	dword ptr [ecx+0Ch], 0
		jnz	short loc_A61C8

loc_A61DE:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Reinitialize(CStudioHdr*)+2Cj
		mov	[ebp+arg_4], edi
		mov	[ebp+arg_0], ebx
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN10CStudioHdr26CActivityToSequenceMapping10InitializeEPS_ ; CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)
_ZN10CStudioHdr26CActivityToSequenceMapping12ReinitializeEPS_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CStudioHdr(void)
_ZN10CStudioHdrC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 30h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+8], 0
		lea	eax, [ebx+60h]
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+24h], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+30h], 0
		mov	dword ptr [ebx+34h], 0
		mov	dword ptr [ebx+38h], 0
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+40h], 0
		mov	dword ptr [ebx+44h], 0
		mov	dword ptr [ebx+48h], 0
		mov	dword ptr [ebx+4Ch], 0
		mov	dword ptr [ebx+50h], 0
		mov	dword ptr [ebx+54h], 0
		mov	dword ptr [ebx+58h], 0
		mov	byte ptr [ebx+5Ch], 0
		mov	[esp], eax
		mov	byte ptr [esp+14h], 0
		mov	byte ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 8
		call	_ZN8CUtlHashIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeENS2_9HashFuncsES3_EC2EiiiS3_S3_ ;	CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)
		lea	eax, [ebx+1Ch]
		mov	dword ptr [ebx+7Ch], 0
		mov	dword ptr [ebx+80h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	[ebx+20h], eax
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN10CStudioHdr4InitEPK11studiohdr_tP9IMDLCache	; CStudioHdr::Init(studiohdr_t	const*,IMDLCache *)
		add	esp, 30h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CStudioHdrC2Ev endp

; ---------------------------------------------------------------------------
		lea	edx, [ebx+54h]
		mov	[ebp-0Ch], eax
		mov	[esp], edx
		lea	esi, [ebx+8]
		call	_ZN10CStudioHdr26CActivityToSequenceMappingD2Ev	; CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()
		lea	edx, [ebx+40h]
		mov	[esp], edx
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		lea	edx, [ebx+2Ch]
		mov	[esp], edx
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		mov	dword ptr [ebx+14h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK11studiohdr_tiE5PurgeEv ; CUtlMemory<studiohdr_t  const*,int>::Purge(void)
		mov	edx, [ebx+8]
		mov	[ebx+18h], edx
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK11studiohdr_tiE5PurgeEv ; CUtlMemory<studiohdr_t  const*,int>::Purge(void)
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CStudioHdr(studiohdr_t  const*, IMDLCache	*)
_ZN10CStudioHdrC2EPK11studiohdr_tP9IMDLCache proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 30h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+8], 0
		lea	eax, [ebx+60h]
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+24h], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+30h], 0
		mov	dword ptr [ebx+34h], 0
		mov	dword ptr [ebx+38h], 0
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+40h], 0
		mov	dword ptr [ebx+44h], 0
		mov	dword ptr [ebx+48h], 0
		mov	dword ptr [ebx+4Ch], 0
		mov	dword ptr [ebx+50h], 0
		mov	dword ptr [ebx+54h], 0
		mov	dword ptr [ebx+58h], 0
		mov	byte ptr [ebx+5Ch], 0
		mov	[esp], eax
		mov	byte ptr [esp+14h], 0
		mov	byte ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 8
		call	_ZN8CUtlHashIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeENS2_9HashFuncsES3_EC2EiiiS3_S3_ ;	CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)
		lea	eax, [ebx+1Ch]
		mov	dword ptr [ebx+7Ch], 0
		mov	[ebx+20h], eax
		mov	eax, [ebp+arg_8]
		mov	dword ptr [ebx+80h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	[esp], ebx
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		call	_ZN10CStudioHdr4InitEPK11studiohdr_tP9IMDLCache	; CStudioHdr::Init(studiohdr_t	const*,IMDLCache *)
		add	esp, 30h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CStudioHdrC2EPK11studiohdr_tP9IMDLCache endp

; ---------------------------------------------------------------------------
		lea	edx, [ebx+54h]
		mov	[ebp-0Ch], eax
		mov	[esp], edx
		lea	esi, [ebx+8]
		call	_ZN10CStudioHdr26CActivityToSequenceMappingD2Ev	; CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()
		lea	edx, [ebx+40h]
		mov	[esp], edx
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		lea	edx, [ebx+2Ch]
		mov	[esp], edx
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev ; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()
		mov	dword ptr [ebx+14h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK11studiohdr_tiE5PurgeEv ; CUtlMemory<studiohdr_t  const*,int>::Purge(void)
		mov	edx, [ebx+8]
		mov	[ebx+18h], edx
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK11studiohdr_tiE5PurgeEv ; CUtlMemory<studiohdr_t  const*,int>::Purge(void)
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<int, int>::Purge(void)
_ZN10CUtlMemoryIiiE5PurgeEv proc near	; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()+14p
					; CUtlVector<int,CUtlMemory<int,int>>::~CUtlVector()+26j ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+8]
		test	ecx, ecx
		js	short loc_A64BC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A64B5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A64B5:				; CODE XREF: CUtlMemory<int,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A64BC:				; CODE XREF: CUtlMemory<int,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIiiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<int, CUtlMemory<int, int>>::~CUtlVector()
_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev proc near ; CODE	XREF: .text:000A6305p
					; .text:000A6310p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
_ZN10CUtlVectorIi10CUtlMemoryIiiEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<studiohdr_t  const*, int>::Purge(void)
_ZN10CUtlMemoryIPK11studiohdr_tiE5PurgeEv proc near ; CODE XREF: .text:000A631Fp
					; .text:000A632Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_A652C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A6525
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A6525:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A652C:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIPK11studiohdr_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType, CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>>,	int>::Purge(void)
_ZN10CUtlMemoryI10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeES_IS3_iEEiE5PurgeEv proc near
					; CODE XREF: CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()+68p
					; CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()+80j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_A656C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A6565
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A6565:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A656C:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeES_IS3_iEEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>::Purge(void)
_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE5PurgeEv proc near
					; CODE XREF: CUtlVector<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>>::RemoveAll(void)+37p
					; CUtlVector<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>>::RemoveAll(void)+44p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_A65AC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_A65A5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_A65A5:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_A65AC:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType, CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>>,	CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType, CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>>, int>>::RemoveAll(void)
_ZN10CUtlVectorIS_IN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEES3_IS5_iEE9RemoveAllEv proc near
					; CODE XREF: CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()+60p
					; CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+34p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+0Ch]
		sub	esi, 1
		js	short loc_A660E
		lea	edi, [esi+esi*4]
		shl	edi, 2
		lea	esi, [esi+0]

loc_A65E0:				; CODE XREF: CUtlVector<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>>::RemoveAll(void)+4Cj
		mov	eax, [ebp+arg_0]
		mov	ebx, edi
		sub	esi, 1
		sub	edi, 14h
		add	ebx, [eax]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE5PurgeEv ; CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE5PurgeEv ; CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Purge(void)
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_A65E0

loc_A660E:				; CODE XREF: CUtlVector<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>>::RemoveAll(void)+12j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 0
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CUtlVectorIS_IN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEES3_IS5_iEE9RemoveAllEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()
_ZN10CStudioHdr26CActivityToSequenceMappingD2Ev	proc near ; CODE XREF: .text:000A62FAp
					; .text:000A6448p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_1C], eax
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_A663D
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_A663D:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()+13j
		mov	eax, [ebp+var_1C]
		mov	eax, [eax+18h]
		test	eax, eax
		mov	[ebp+var_20], eax
		jle	short loc_A6677
		xor	edi, edi
		xor	esi, esi
		db	66h
		nop

loc_A6650:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()+55j
		mov	edx, [ebp+var_1C]
		mov	ebx, edi
		add	esi, 1
		add	edi, 14h
		add	ebx, [edx+0Ch]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE5PurgeEv ; CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Purge(void)
		mov	eax, [ebx]
		cmp	esi, [ebp+var_20]
		mov	[ebx+10h], eax
		jnz	short loc_A6650

loc_A6677:				; CODE XREF: CStudioHdr::CActivityToSequenceMapping::~CActivityToSequenceMapping()+28j
		mov	ebx, [ebp+var_1C]
		add	ebx, 0Ch
		mov	[esp], ebx
		call	_ZN10CUtlVectorIS_IN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEES3_IS5_iEE9RemoveAllEv ;	CUtlVector<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>>::RemoveAll(void)
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeES_IS3_iEEiE5PurgeEv ; CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Purge(void)
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+0Ch]
		mov	[edx+1Ch], eax
		mov	[ebp+arg_0], ebx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN10CUtlMemoryI10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeES_IS3_iEEiE5PurgeEv ; CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Purge(void)
_ZN10CStudioHdr26CActivityToSequenceMappingD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType, CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>>::ShiftElementsRight(int, int)
_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE18ShiftElementsRightEii proc near
					; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+3B9p
					; CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+125p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	eax, [ebx+0Ch]
		sub	eax, ecx
		sub	eax, edx
		test	eax, eax
		jg	short loc_A66D0

loc_A66C8:				; CODE XREF: CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::ShiftElementsRight(int,int)+22j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A66D0:				; CODE XREF: CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::ShiftElementsRight(int,int)+16j
		test	edx, edx
		jle	short loc_A66C8
		mov	ebx, [ebx]
		shl	eax, 4
		add	edx, ecx
		mov	[ebp+arg_8], eax
		mov	eax, ecx
		shl	edx, 4
		shl	eax, 4
		add	eax, ebx
		add	edx, ebx
		pop	ebx
		mov	[ebp+arg_4], eax
		mov	[ebp+arg_0], edx
		pop	ebp
		jmp	memmove
_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE18ShiftElementsRightEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<int, int>::Grow(int)
_ZN10CUtlMemoryIiiE4GrowEi proc	near	; CODE XREF: _ZN10CUtlVectorIi10CUtlMemoryIiiEE11EnsureCountEi_part_55+89p
					; CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)+4Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A6750
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A6760
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A6736
		lea	esi, [esi+0]

loc_A6730:				; CODE XREF: CUtlMemory<int,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A6730

loc_A6736:				; CODE XREF: CUtlMemory<int,int>::Grow(int)+2Aj
					; CUtlMemory<int,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_A6793

loc_A6742:				; CODE XREF: CUtlMemory<int,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A6750:				; CODE XREF: CUtlMemory<int,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A6760:				; CODE XREF: CUtlMemory<int,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A6736
		lea	esi, [esi+0]

loc_A6778:				; CODE XREF: CUtlMemory<int,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A6778
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_A6742

loc_A6793:				; CODE XREF: CUtlMemory<int,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIiiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<studiohdr_t  const*, int>::Grow(int)
_ZN10CUtlMemoryIPK11studiohdr_tiE4GrowEi proc near
					; CODE XREF: CUtlVector<studiohdr_t  const*,CUtlMemory<studiohdr_t  const*,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A6800
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A6810
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A67E6
		lea	esi, [esi+0]

loc_A67E0:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A67E0

loc_A67E6:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Grow(int)+2Aj
					; CUtlMemory<studiohdr_t  const*,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_A6843

loc_A67F2:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A6800:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A6810:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A67E6
		lea	esi, [esi+0]

loc_A6828:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A6828
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_A67F2

loc_A6843:				; CODE XREF: CUtlMemory<studiohdr_t  const*,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIPK11studiohdr_tiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<studiohdr_t  const*, CUtlMemory<studiohdr_t  const*, int>>::SetCount(int)
_ZN10CUtlVectorIPK11studiohdr_t10CUtlMemoryIS2_iEE8SetCountEi proc near
					; CODE XREF: CStudioHdr::ResetVModel(virtualmodel_t  const*)+22p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_A688F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_A68A0
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_A688F:				; CODE XREF: CUtlVector<studiohdr_t  const*,CUtlMemory<studiohdr_t  const*,int>>::SetCount(int)+1Ej
					; CUtlVector<studiohdr_t  const*,CUtlMemory<studiohdr_t	 const*,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A68A0:				; CODE XREF: CUtlVector<studiohdr_t  const*,CUtlMemory<studiohdr_t  const*,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIPK11studiohdr_tiE4GrowEi ; CUtlMemory<studiohdr_t  const*,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_A688F
		test	cl, cl
		jz	short loc_A688F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIPK11studiohdr_t10CUtlMemoryIS2_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>::Grow(int)
_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE4GrowEi proc	near
					; CODE XREF: CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::GrowVector(int)+27p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A6950
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A6960
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A6936
		lea	esi, [esi+0]

loc_A6930:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A6930

loc_A6936:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+2Aj
					; CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jz	short loc_A6993

loc_A6942:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A6950:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A6960:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A6936
		lea	esi, [esi+0]

loc_A6978:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A6978
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jnz	short loc_A6942

loc_A6993:				; CODE XREF: CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType, CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>>::GrowVector(int)
_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE10GrowVectorEi proc	near
					; CODE XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*)+39Fp
					; CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+111p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		add	eax, esi
		cmp	eax, edx
		jle	short loc_A69E1
		sub	eax, edx
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeEiE4GrowEi ; CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		add	eax, esi

loc_A69E1:				; CODE XREF: CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::GrowVector(int)+1Cj
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE10GrowVectorEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType, CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType, int>>,	int>::Grow(int)
_ZN10CUtlMemoryI10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeES_IS3_iEEiE4GrowEi proc near
					; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+19Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_A6A53
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_A6A60
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_A6A36
		lea	esi, [esi+0]

loc_A6A30:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_A6A30

loc_A6A36:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+2Aj
					; CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*4]
		shl	eax, 2
		test	edx, edx
		jz	short loc_A6A96

loc_A6A45:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+94j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_A6A53:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A6A60:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_A6A36
		lea	esi, [esi+0]

loc_A6A78:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_A6A78
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*4]
		shl	eax, 2
		test	edx, edx
		jnz	short loc_A6A45

loc_A6A96:				; CODE XREF: CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)+43j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeES_IS3_iEEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType, CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs, CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int, int, int, CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs, CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)
_ZN8CUtlHashIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeENS2_9HashFuncsES3_EC2EiiiS3_S3_ proc near
					; CODE XREF: CStudioHdr::CStudioHdr(void)+BCp
					; CStudioHdr::CStudioHdr(studiohdr_t  const*,IMDLCache *)+BCp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_C]
		mov	dword ptr [esi], 0
		mov	dword ptr [esi+4], 0
		mov	dword ptr [esi+8], 0
		mov	dword ptr [esi+0Ch], 0
		mov	dword ptr [esi+10h], 0
		mov	[esp], esi
		call	_ZN10CUtlVectorIS_IN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEES3_IS5_iEE9RemoveAllEv ;	CUtlVector<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>>::RemoveAll(void)
		mov	eax, [ebp+arg_4]
		mov	edi, [esi+0Ch]
		test	eax, eax
		jz	loc_A6C22
		mov	edx, [ebp+arg_4]
		mov	ecx, [esi+4]
		add	edx, edi
		cmp	edx, ecx
		mov	eax, edx
		jg	loc_A6C43

loc_A6B09:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+1ADj
		mov	[esi+0Ch], eax
		sub	eax, edi
		mov	ecx, [esi]
		sub	eax, [ebp+arg_4]
		cmp	[ebp+arg_4], 0
		mov	[esi+10h], ecx
		setnle	byte ptr [ebp+var_1C]
		test	eax, eax
		jg	loc_A6C62
		cmp	byte ptr [ebp+var_1C], 0
		jz	loc_A6C22

loc_A6B30:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+1DAj
		lea	edx, [edi+edi*4]
		mov	edi, [ebp+arg_4]
		xor	ecx, ecx
		shl	edx, 2
		nop
		lea	esi, [esi+0]

loc_A6B40:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+C0j
		mov	eax, [esi]
		add	eax, edx
		jz	short loc_A6B68
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0

loc_A6B68:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+94j
		add	ecx, 1
		add	edx, 14h
		cmp	edi, ecx
		jg	short loc_A6B40
		cmp	byte ptr [ebp+var_1C], 0
		jz	loc_A6C22
		xor	ecx, ecx
		mov	eax, esi
		mov	[ebp+var_1C], 0
		mov	esi, ecx
		mov	ecx, eax
		jmp	short loc_A6BA8
; ---------------------------------------------------------------------------
		align 10h

loc_A6B90:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+105j
					; CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+12Fj ...
		mov	edx, [ebp+arg_8]
		mov	eax, [ecx]
		add	[ebp+var_1C], 1
		mov	[eax+esi+8], edx
		mov	edx, [ebp+arg_4]
		add	esi, 14h
		cmp	[ebp+var_1C], edx
		jz	short loc_A6C20

loc_A6BA8:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+DBj
		mov	edi, [ecx]
		add	edi, esi
		test	ebx, ebx
		mov	dword ptr [edi+0Ch], 0
		jz	short loc_A6B90
		mov	[ebp+var_20], ecx
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE10GrowVectorEi ; CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::GrowVector(int)
		mov	[esp+8], ebx
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeE10CUtlMemoryIS2_iEE18ShiftElementsRightEii ; CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>::ShiftElementsRight(int,int)
		test	ebx, ebx
		mov	ecx, [ebp+var_20]
		jle	short loc_A6B90
		xor	edx, edx
		nop
		lea	esi, [esi+0]

loc_A6BE8:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+161j
		mov	eax, edx
		shl	eax, 4
		add	eax, [edi]
		jz	short loc_A6C0C
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	dword ptr [eax+8], 0FFFFFFFFh
		mov	dword ptr [eax+0Ch], 0FFFFFFFFh

loc_A6C0C:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+13Fj
		add	edx, 1
		cmp	edx, ebx
		jnz	short loc_A6BE8
		jmp	loc_A6B90
; ---------------------------------------------------------------------------
		align 10h

loc_A6C20:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+F6j
		mov	esi, ecx

loc_A6C22:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+41j
					; CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+7Aj ...
		mov	edx, [ebp+arg_4]
		sub	edx, 1
		test	[ebp+arg_4], edx
		setz	cl
		xor	eax, eax
		test	cl, cl
		mov	[esi+16h], cl
		cmovnz	eax, edx
		mov	[esi+18h], eax
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A6C43:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+53j
		sub	eax, ecx
		mov	[ebp+var_20], edx
		mov	[esp+4], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI10CUtlVectorIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeES_IS3_iEEiE4GrowEi ; CUtlMemory<CUtlVector<CStudioHdr::CActivityToSequenceMapping::HashValueType,CUtlMemory<CStudioHdr::CActivityToSequenceMapping::HashValueType,int>>,int>::Grow(int)
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+var_20]
		add	eax, [esi+0Ch]
		jmp	loc_A6B09
; ---------------------------------------------------------------------------

loc_A6C62:				; CODE XREF: CUtlHash<CStudioHdr::CActivityToSequenceMapping::HashValueType,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs>::CUtlHash(int,int,int,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs,CStudioHdr::CActivityToSequenceMapping::HashValueType::HashFuncs)+70j
		cmp	byte ptr [ebp+var_1C], 0
		jz	short loc_A6C22
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	[esp+8], eax	; n
		lea	eax, [edi+edi*4]
		lea	eax, [ecx+eax*4]
		mov	[esp+4], eax	; src
		lea	eax, [edx+edx*4]
		lea	eax, [ecx+eax*4]
		mov	[esp], eax	; dest
		call	memmove
		jmp	loc_A6B30
_ZN8CUtlHashIN10CStudioHdr26CActivityToSequenceMapping13HashValueTypeENS2_9HashFuncsES3_EC2EiiiS3_S3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VStdAllocator::Free(void *)
_ZN13VStdAllocator4FreeEPv proc	near	; DATA XREF: .rodata:`vtable for'VStdAllocatoro

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	free
_ZN13VStdAllocator4FreeEPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VStdAllocator::Alloc(unsigned	long)
_ZN13VStdAllocator5AllocEm proc	near	; DATA XREF: .rodata:`vtable for'VStdAllocatoro

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_A6CB8
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	malloc
; ---------------------------------------------------------------------------
		align 8

loc_A6CB8:				; CODE XREF: VStdAllocator::Alloc(ulong)+8j
		xor	eax, eax
		pop	ebp
		retn
_ZN13VStdAllocator5AllocEm endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; adler32(unsigned long, unsigned char	const*,	unsigned int)
_Z7adler32mPKhj	proc near		; DATA XREF: inflateInit2(z_stream_s *)+5Bo

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		test	ecx, ecx
		jz	loc_A6E18
		mov	edx, [ebp+arg_8]
		movzx	ecx, bx
		shr	ebx, 10h
		test	edx, edx
		jz	loc_A6E11
		lea	esi, [esi+0]

loc_A6CF0:				; CODE XREF: adler32(ulong,uchar  const*,uint)+14Bj
		cmp	[ebp+arg_8], 15B0h
		mov	edi, 15B0h
		cmovbe	edi, [ebp+arg_8]
		sub	[ebp+arg_8], edi
		cmp	edi, 0Fh
		jle	loc_A6DC5
		sub	edi, 10h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_10], edi
		shr	edi, 4
		mov	eax, edi
		shl	eax, 4
		lea	edx, [esi+eax+10h]
		mov	eax, esi
		nop
		lea	esi, [esi+0]

loc_A6D28:				; CODE XREF: adler32(ulong,uchar  const*,uint)+ECj
		movzx	esi, byte ptr [eax]
		add	ecx, esi
		movzx	esi, byte ptr [eax+1]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+2]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+3]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+4]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+5]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+6]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+7]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+8]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+9]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+0Ah]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+0Bh]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+0Ch]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+0Dh]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+0Eh]
		add	ebx, ecx
		add	ecx, esi
		movzx	esi, byte ptr [eax+0Fh]
		add	eax, 10h
		add	ebx, ecx
		add	ecx, esi
		add	ebx, ecx
		cmp	eax, edx
		jnz	loc_A6D28
		lea	eax, [edi+1]
		shl	edi, 4
		shl	eax, 4
		add	[ebp+arg_4], eax
		mov	eax, [ebp+var_10]
		sub	eax, edi
		mov	edi, eax

loc_A6DC5:				; CODE XREF: adler32(ulong,uchar  const*,uint)+46j
		test	edi, edi
		jz	short loc_A6DE2
		mov	eax, [ebp+arg_4]
		mov	edx, edi
		db	66h
		nop

loc_A6DD0:				; CODE XREF: adler32(ulong,uchar  const*,uint)+11Dj
		movzx	esi, byte ptr [eax]
		add	eax, 1
		add	ecx, esi
		add	ebx, ecx
		sub	edx, 1
		jnz	short loc_A6DD0
		add	[ebp+arg_4], edi

loc_A6DE2:				; CODE XREF: adler32(ulong,uchar  const*,uint)+107j
		mov	eax, 80078071h
		mul	ecx
		mov	eax, 80078071h
		shr	edx, 0Fh
		imul	edx, 0FFF1h
		sub	ecx, edx
		mul	ebx
		mov	eax, [ebp+arg_8]
		shr	edx, 0Fh
		imul	edx, 0FFF1h
		sub	ebx, edx
		test	eax, eax
		jnz	loc_A6CF0

loc_A6E11:				; CODE XREF: adler32(ulong,uchar  const*,uint)+27j
		mov	eax, ebx
		shl	eax, 10h
		or	eax, ecx

loc_A6E18:				; CODE XREF: adler32(ulong,uchar  const*,uint)+16j
		add	esp, 4
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z7adler32mPKhj	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; zcfree(void *, void *)
_Z6zcfreePvS_	proc near		; DATA XREF: inflateInit2(z_stream_s *):loc_A9A80o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	free
_Z6zcfreePvS_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; zcalloc(void *, unsigned int,	unsigned int)
_Z7zcallocPvjj	proc near		; DATA XREF: inflateInit2(z_stream_s *)+C3o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		pop	ebp
		jmp	calloc
_Z7zcallocPvjj	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_Z15EnsureDirectoryPKcS0__part_3 proc near
					; CODE XREF: EnsureDirectory(char  const*,char	const*)+19j

s		= byte ptr -1008h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+s]
		mov	ebx, edx
		sub	esp, 1010h
		mov	[esp+4], eax	; src
		mov	[esp], esi	; dest
		call	strcpy
		mov	[esp+4], ebx	; src
		mov	[esp], esi	; dest
		call	strcat
		mov	eax, esi

loc_A6E7D:				; CODE XREF: _Z15EnsureDirectoryPKcS0__part_3+42j
		mov	ecx, [eax]
		add	eax, 4
		lea	edx, [ecx-1010101h]
		not	ecx
		and	edx, ecx
		and	edx, 80808080h
		jz	short loc_A6E7D
		mov	ecx, edx
		shr	ecx, 10h
		test	edx, 8080h
		cmovz	edx, ecx
		lea	ecx, [eax+2]
		cmovz	eax, ecx
		add	dl, dl
		sbb	eax, 3
		xor	ebx, ebx
		sub	eax, esi
		jmp	short loc_A6EC0
; ---------------------------------------------------------------------------
		align 8

loc_A6EB8:				; CODE XREF: _Z15EnsureDirectoryPKcS0__part_3+7Bj
		cmp	dl, 2Fh
		jz	short loc_A6ECD

loc_A6EBD:				; CODE XREF: _Z15EnsureDirectoryPKcS0__part_3+C9j
		add	ebx, 1

loc_A6EC0:				; CODE XREF: _Z15EnsureDirectoryPKcS0__part_3+61j
		cmp	ebx, eax
		jnb	short loc_A6F1B
		movzx	edx, byte ptr [esi+ebx]
		cmp	dl, 5Ch
		jnz	short loc_A6EB8

loc_A6ECD:				; CODE XREF: _Z15EnsureDirectoryPKcS0__part_3+6Bj
		mov	byte ptr [esi+ebx], 0
		mov	dword ptr [esp+4], 1FFh	; mode
		mov	[esp], esi	; s
		call	__wrap_mkdir
		mov	byte ptr [esi+ebx], 5Ch
		mov	eax, esi

loc_A6EE7:				; CODE XREF: _Z15EnsureDirectoryPKcS0__part_3+ACj
		mov	ecx, [eax]
		add	eax, 4
		lea	edx, [ecx-1010101h]
		not	ecx
		and	edx, ecx
		and	edx, 80808080h
		jz	short loc_A6EE7
		mov	ecx, edx
		shr	ecx, 10h
		test	edx, 8080h
		cmovz	edx, ecx
		lea	ecx, [eax+2]
		cmovz	eax, ecx
		add	dl, dl
		sbb	eax, 3
		sub	eax, esi
		jmp	short loc_A6EBD
; ---------------------------------------------------------------------------

loc_A6F1B:				; CODE XREF: _Z15EnsureDirectoryPKcS0__part_3+72j
		mov	[esp], esi	; s
		mov	dword ptr [esp+4], 1FFh	; mode
		call	__wrap_mkdir
		add	esp, 1010h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z15EnsureDirectoryPKcS0__part_3 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ReadFile(int fd, void *buf, size_t nbytes, int)
_Z8ReadFilePvS_jPjS_ proc near

fd		= dword	ptr  8
buf		= dword	ptr  0Ch
nbytes		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+buf]
		mov	ebx, [ebp+nbytes]
		mov	[esp+4], eax	; buf
		mov	eax, [ebp+fd]
		mov	[esp+8], ebx	; nbytes
		mov	[esp], eax	; fd
		call	read
		mov	edx, [ebp+arg_C]
		cmp	ebx, eax
		mov	[edx], eax
		setz	al
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z8ReadFilePvS_jPjS_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl WriteFile(int fd,	void *buf, size_t n, int)
_Z9WriteFilePvS_jPjS_ proc near

fd		= dword	ptr  8
buf		= dword	ptr  0Ch
n		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+buf]
		mov	ebx, [ebp+n]
		mov	[esp+4], eax	; buf
		mov	eax, [ebp+fd]
		mov	[esp+8], ebx	; n
		mov	[esp], eax	; fd
		call	write
		mov	edx, [ebp+arg_C]
		cmp	ebx, eax
		mov	[edx], eax
		setz	al
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z9WriteFilePvS_jPjS_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_flush(inflate_blocks_state *,	z_stream_s *, int)
_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si proc near
					; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+A3j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+30Bp ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebx+30h]
		mov	edx, [ebx+34h]
		mov	ecx, [esi+0Ch]
		cmp	edi, edx
		jbe	short loc_A6FBF
		mov	edx, [ebx+2Ch]

loc_A6FBF:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+1Aj
		mov	eax, [esi+10h]
		sub	edx, edi
		cmp	edx, eax
		mov	[ebp+var_28], eax
		cmova	edx, eax
		test	edx, edx
		setnz	byte ptr [ebp+var_1C]
		jz	short loc_A6FE4
		cmp	[ebp+arg_8], 0FFFFFFFBh
		mov	eax, 0
		cmovnz	eax, [ebp+arg_8]
		mov	[ebp+arg_8], eax

loc_A6FE4:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+32j
		mov	eax, [ebp+var_28]
		add	[esi+14h], edx
		sub	eax, edx
		mov	[esi+10h], eax
		mov	eax, [ebx+38h]
		test	eax, eax
		mov	[ebp+var_28], eax
		jz	short loc_A701C
		mov	[esp+8], edx
		mov	[esp+4], edi
		mov	eax, [ebx+3Ch]
		mov	[ebp+var_24], edx
		mov	[ebp+var_20], ecx
		mov	[esp], eax
		call	[ebp+var_28]
		mov	[ebx+3Ch], eax
		mov	[esi+30h], eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_24]

loc_A701C:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+57j
		cmp	byte ptr [ebp+var_1C], 0
		jnz	short loc_A7040
		cmp	[ebx+2Ch], edi
		jz	short loc_A7065

loc_A7027:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+C3j
					; inflate_flush(inflate_blocks_state *,z_stream_s *,int)+157j
		mov	[esi+0Ch], ecx
		mov	eax, [ebp+arg_8]
		mov	[ebx+30h], edi
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A7040:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+80j
		mov	[esp+8], edx	; n
		mov	[esp+4], edi	; src
		mov	[esp], ecx	; dest
		mov	[ebp+var_24], edx
		mov	[ebp+var_20], ecx
		call	memcpy
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_20]
		add	edi, edx
		add	ecx, edx
		cmp	[ebx+2Ch], edi
		jnz	short loc_A7027

loc_A7065:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+85j
		mov	eax, [ebx+34h]
		mov	edx, [ebx+28h]
		cmp	edi, eax
		mov	[ebp+var_1C], eax
		jz	loc_A7100
		mov	edi, [ebp+var_1C]
		mov	eax, [esi+10h]
		sub	edi, edx
		cmp	edi, eax
		mov	[ebp+var_28], eax
		cmova	edi, eax
		test	edi, edi
		setnz	al
		cmp	[ebp+arg_8], 0FFFFFFFBh
		jnz	short loc_A709F
		test	al, al
		mov	eax, 0
		cmovz	eax, [ebp+arg_8]
		mov	[ebp+arg_8], eax

loc_A709F:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+EFj
					; inflate_flush(inflate_blocks_state *,z_stream_s *,int)+16Bj
		mov	eax, [ebp+var_28]
		add	[esi+14h], edi
		sub	eax, edi
		mov	[esi+10h], eax
		mov	eax, [ebx+38h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	short loc_A70D7
		mov	[esp+4], edx
		mov	[esp+8], edi
		mov	eax, [ebx+3Ch]
		mov	[ebp+var_24], edx
		mov	[ebp+var_20], ecx
		mov	[esp], eax
		call	[ebp+var_1C]
		mov	[ebx+3Ch], eax
		mov	[esi+30h], eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_24]

loc_A70D7:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+112j
		mov	[esp+8], edi	; n
		mov	[esp+4], edx	; src
		mov	[esp], ecx	; dest
		mov	[ebp+var_24], edx
		mov	[ebp+var_20], ecx
		call	memcpy
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_24]
		add	ecx, edi
		add	edi, edx
		jmp	loc_A7027
; ---------------------------------------------------------------------------
		align 10h

loc_A7100:				; CODE XREF: inflate_flush(inflate_blocks_state	*,z_stream_s *,int)+D0j
		mov	[ebx+34h], edx
		xor	edi, edi
		mov	eax, [esi+10h]
		mov	[ebp+var_28], eax
		jmp	short loc_A709F
_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_codes_new(unsigned int, unsigned int,	inflate_huft_s	const*,	inflate_huft_s	const*,	z_stream_s *)
_Z17inflate_codes_newjjPK14inflate_huft_sS1_P10z_stream_s proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_10]
		mov	dword ptr [esp+8], 1Ch
		mov	dword ptr [esp+4], 1
		mov	edx, [eax+28h]
		mov	[esp], edx
		call	dword ptr [eax+20h]
		test	eax, eax
		jz	short locret_A7154
		mov	edx, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	[eax+10h], dl
		mov	edx, [ebp+arg_4]
		mov	[eax+11h], dl
		mov	edx, [ebp+arg_8]
		mov	[eax+14h], edx
		mov	edx, [ebp+arg_C]
		mov	[eax+18h], edx

locret_A7154:				; CODE XREF: inflate_codes_new(uint,uint,inflate_huft_s	 const*,inflate_huft_s	const*,z_stream_s *)+24j
		leave
		retn
_Z17inflate_codes_newjjPK14inflate_huft_sS1_P10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_codes_free(inflate_codes_state *, z_stream_s *)
_Z18inflate_codes_freeP19inflate_codes_stateP10z_stream_s proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_4], edx
		mov	edx, [eax+28h]
		mov	[ebp+arg_0], edx
		pop	ebp
		mov	eax, [eax+24h]
		jmp	eax
_Z18inflate_codes_freeP19inflate_codes_stateP10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_blocks_reset(inflate_blocks_state *, z_stream_s *, unsigned long *)
_Z20inflate_blocks_resetP20inflate_blocks_stateP10z_stream_sPm proc near
					; CODE XREF: inflate_blocks_new(z_stream_s *,ulong (*)(ulong,uchar  const*,uint),uint)+90p
					; inflate_blocks_free(inflate_blocks_state *,z_stream_s	*)+1Dp	...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		test	eax, eax
		jz	short loc_A719A
		mov	edx, [ebx+3Ch]
		mov	[eax], edx

loc_A719A:				; CODE XREF: inflate_blocks_reset(inflate_blocks_state *,z_stream_s *,ulong *)+13j
		mov	eax, [ebx]
		lea	edx, [eax-4]
		cmp	edx, 1
		jbe	short loc_A7210

loc_A71A4:				; CODE XREF: inflate_blocks_reset(inflate_blocks_state *,z_stream_s *,ulong *)+A2j
		cmp	eax, 6
		jz	short loc_A71F8

loc_A71A9:				; CODE XREF: inflate_blocks_reset(inflate_blocks_state *,z_stream_s *,ulong *)+88j
		mov	eax, [ebx+28h]
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 0
		mov	[ebx+34h], eax
		mov	[ebx+30h], eax
		mov	eax, [ebx+38h]
		test	eax, eax
		jz	short loc_A71EC
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], 0
		call	eax
		mov	[ebx+3Ch], eax
		mov	[esi+30h], eax

loc_A71EC:				; CODE XREF: inflate_blocks_reset(inflate_blocks_state *,z_stream_s *,ulong *)+4Bj
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A71F8:				; CODE XREF: inflate_blocks_reset(inflate_blocks_state *,z_stream_s *,ulong *)+27j
		mov	eax, [ebx+4]
		mov	[esp+4], eax
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	dword ptr [esi+24h]
		jmp	short loc_A71A9
; ---------------------------------------------------------------------------
		align 10h

loc_A7210:				; CODE XREF: inflate_blocks_reset(inflate_blocks_state *,z_stream_s *,ulong *)+22j
		mov	eax, [ebx+0Ch]
		mov	[esp+4], eax
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	dword ptr [esi+24h]
		mov	eax, [ebx]
		jmp	short loc_A71A4
_Z20inflate_blocks_resetP20inflate_blocks_stateP10z_stream_sPm endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_blocks_new(z_stream_s	*, unsigned long (*)(unsigned long, unsigned char  const*, unsigned int), unsigned int)
_Z18inflate_blocks_newP10z_stream_sPFmmPKhjEj proc near
					; CODE XREF: inflateInit2(z_stream_s *)+9Ap

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	dword ptr [esp+8], 40h
		mov	dword ptr [esp+4], 1
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	dword ptr [esi+20h]
		test	eax, eax
		mov	ebx, eax
		jz	short loc_A72C5
		mov	dword ptr [esp+8], 5A0h
		mov	dword ptr [esp+4], 8
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	dword ptr [esi+20h]
		test	eax, eax
		mov	[ebx+24h], eax
		jz	short loc_A72E8
		mov	[esp+8], edi
		mov	dword ptr [esp+4], 1
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	dword ptr [esi+20h]
		test	eax, eax
		mov	[ebx+28h], eax
		jz	short loc_A72D8
		add	edi, eax
		mov	eax, [ebp+arg_4]
		mov	dword ptr [ebx], 0
		mov	[ebx+2Ch], edi
		mov	[ebx+38h], eax
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z20inflate_blocks_resetP20inflate_blocks_stateP10z_stream_sPm ; inflate_blocks_reset(inflate_blocks_state *,z_stream_s	*,ulong	*)

loc_A72C5:				; CODE XREF: inflate_blocks_new(z_stream_s *,ulong (*)(ulong,uchar  const*,uint),uint)+32j
					; inflate_blocks_new(z_stream_s	*,ulong	(*)(ulong,uchar	 const*,uint),uint)+C7j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A72D8:				; CODE XREF: inflate_blocks_new(z_stream_s *,ulong (*)(ulong,uchar  const*,uint),uint)+6Ej
		mov	eax, [ebx+24h]
		mov	[esp+4], eax
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	dword ptr [esi+24h]

loc_A72E8:				; CODE XREF: inflate_blocks_new(z_stream_s *,ulong (*)(ulong,uchar  const*,uint),uint)+52j
		mov	[esp+4], ebx
		xor	ebx, ebx
		mov	eax, [esi+28h]
		mov	[esp], eax
		call	dword ptr [esi+24h]
		jmp	short loc_A72C5
_Z18inflate_blocks_newP10z_stream_sPFmmPKhjEj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_blocks_free(inflate_blocks_state *, z_stream_s *)
_Z19inflate_blocks_freeP20inflate_blocks_stateP10z_stream_s proc near
					; CODE XREF: inflateEnd(z_stream_s *)+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [esp+8], 0
		mov	esi, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z20inflate_blocks_resetP20inflate_blocks_stateP10z_stream_sPm ; inflate_blocks_reset(inflate_blocks_state *,z_stream_s	*,ulong	*)
		mov	eax, [esi+28h]

loc_A7325:				; DATA XREF: .rodata:off_20DC96o
		mov	[esp+4], eax
		mov	eax, [ebx+28h]
		mov	[esp], eax
		call	dword ptr [ebx+24h]
		mov	eax, [esi+24h]
		mov	[esp+4], eax
		mov	eax, [ebx+28h]
		mov	[esp], eax
		call	dword ptr [ebx+24h]
		mov	[esp+4], esi
		mov	eax, [ebx+28h]
		mov	[esp], eax
		call	dword ptr [ebx+24h]
		add	esp, 10h
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z19inflate_blocks_freeP20inflate_blocks_stateP10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; huft_build(unsigned int *, unsigned int, unsigned int, unsigned int  const*, unsigned	int  const*, inflate_huft_s **,	unsigned int *,	inflate_huft_s *, unsigned int *, unsigned int *)
_Z10huft_buildPjjjPKjS1_PP14inflate_huft_sS_S3_S_S_ proc near
					; CODE XREF: inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+82p
					; inflate_trees_dynamic(uint,uint,uint *,uint *,uint *,inflate_huft_s **,inflate_huft_s	**,inflate_huft_s *,z_stream_s *)+7Ep ...

var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_48		= dword	ptr -48h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 11Ch
		mov	[ebp+var_C8], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C4], 0
		mov	[ebp+var_C0], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_BC], 0
		mov	ebx, [ebp+arg_18]
		mov	[ebp+var_B8], 0
		mov	[ebp+var_B4], 0
		mov	edx, esi
		mov	[ebp+var_B0], 0
		mov	eax, edi
		mov	[ebp+var_AC], 0
		mov	[ebp+var_A8], 0
		mov	[ebp+var_A4], 0
		mov	[ebp+var_A0], 0
		mov	[ebp+var_9C], 0
		mov	[ebp+var_98], 0
		mov	[ebp+var_94], 0
		mov	[ebp+var_90], 0
		mov	[ebp+var_8C], 0
		mov	[ebp+var_EC], esi
		nop

loc_A7420:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+D0j
		mov	ecx, [eax]
		add	eax, 4
		add	[ebp+ecx*4+var_C8], 1
		sub	edx, 1
		jnz	short loc_A7420
		cmp	[ebp+var_C8], esi
		mov	[ebp+var_EC], edx
		jz	loc_A7A1B
		mov	eax, [ebx]
		mov	ecx, 1
		nop
		lea	esi, [esi+0]

loc_A7450:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+105j
		mov	edx, [ebp+ecx*4+var_C8]
		test	edx, edx
		jnz	loc_A7A00
		add	ecx, 1
		cmp	ecx, 10h
		jnz	short loc_A7450
		mov	[ebp+var_D0], 10000h
		mov	[ebp+var_E8], 10h

loc_A747B:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+6B6j
		cmp	eax, ecx
		mov	edx, [ebp+var_D0]
		cmovb	eax, [ebp+var_E8]
		mov	[ebp+var_E4], eax
		mov	eax, 0Fh
		lea	esi, [esi+0]

loc_A7498:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+149j
		cmp	[ebp+eax*4+var_C8], 0
		jnz	loc_A79E8
		sub	eax, 1
		jnz	short loc_A7498
		mov	[ebp+var_D0], edx
		mov	[ebp+var_110], 0

loc_A74BB:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+694j
		mov	edx, [ebp+var_E4]
		cmp	edx, eax
		mov	[ebp+var_F4], edx
		jbe	short loc_A74DD
		mov	edx, [ebp+var_110]
		mov	[ebp+var_F4], edx
		mov	[ebp+var_E4], edx

loc_A74DD:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+169j
		mov	edx, [ebp+var_F4]
		cmp	ecx, eax
		mov	[ebx], edx
		jnb	short loc_A7524
		mov	edx, [ebp+var_D0]
		mov	ebx, 0FFFFFFFDh
		sub	edx, [ebp+ecx*4+var_C8]
		jns	short loc_A7515
		jmp	loc_A79BD
; ---------------------------------------------------------------------------
		align 8

loc_A7508:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+1BCj
		sub	edx, [ebp+ecx*4+var_C8]
		js	loc_A79B8

loc_A7515:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+19Bj
		add	ecx, 1
		add	edx, edx
		cmp	ecx, eax
		jb	short loc_A7508
		mov	[ebp+var_D0], edx

loc_A7524:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+187j
					; DATA XREF: .rodata:off_1FC9B5o
		mov	ebx, [ebp+var_D0]
		sub	ebx, [ebp+eax*4+var_C8]
		mov	[ebp+var_124], ebx
		js	loc_A79B8
		mov	[ebp+var_84], 0
		mov	edx, [ebp+var_D0]
		mov	[ebp+eax*4+var_C8], edx
		sub	eax, 1
		jz	short loc_A7573
		xor	edx, edx
		xor	ecx, ecx
		lea	esi, [esi+0]

loc_A7560:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+211j
		add	ecx, [ebp+edx+var_C4]
		mov	[ebp+edx+var_80], ecx
		add	edx, 4
		sub	eax, 1
		jnz	short loc_A7560

loc_A7573:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+1F7j
		mov	ebx, [ebp+arg_24]
		xor	eax, eax
		nop
		lea	esi, [esi+0]

loc_A7580:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+240j
		mov	edx, [edi+eax*4]
		test	edx, edx
		jz	short loc_A759B
		mov	ecx, [ebp+edx*4+var_88]
		mov	[ebx+ecx*4], eax
		add	ecx, 1
		mov	[ebp+edx*4+var_88], ecx

loc_A759B:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+225j
		add	eax, 1
		cmp	esi, eax
		ja	short loc_A7580
		mov	ebx, [ebp+var_110]
		mov	[ebp+var_48], 0
		cmp	[ebp+var_E8], ebx
		mov	eax, [ebp+ebx*4+var_88]
		mov	[ebp+var_88], 0
		jg	loc_A7A8A
		mov	edi, [ebp+arg_24]
		mov	[ebp+var_DC], 0FFFFFFFFh
		mov	esi, [ebp+var_E4]
		mov	edx, [ebp+var_E4]
		sub	ebx, [ebp+var_E8]
		mov	[ebp+var_104], edi
		lea	eax, [edi+eax*4]
		neg	esi
		xor	edi, edi
		mov	[ebp+var_11C], eax
		mov	eax, [ebp+var_E8]
		shl	edx, 2
		mov	[ebp+var_F8], esi
		mov	[ebp+var_D8], esi
		xor	esi, esi
		mov	[ebp+var_100], ebx
		lea	eax, [ebp+eax*4+var_C8]
		mov	[ebp+var_FC], edx
		mov	[ebp+var_10C], eax

loc_A762E:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+724j
		mov	ebx, [ebp+var_10C]
		mov	eax, 1
		mov	ecx, [ebp+var_E8]
		mov	edx, [ebp+var_E8]
		mov	ebx, [ebx]
		sub	ecx, 1
		lea	edx, [ebp+edx*4+var_C8]
		shl	eax, cl
		mov	[ebp+var_118], eax
		mov	[ebp+var_F0], ebx
		neg	ebx
		mov	[ebp+var_108], ebx
		mov	[ebp+var_114], edx

loc_A766D:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+632j
		mov	eax, [ebp+var_F0]
		test	eax, eax
		jz	loc_A7A63
		mov	eax, [ebp+var_E4]
		mov	[ebp+var_120], esi
		mov	edx, [ebp+var_E8]
		add	eax, [ebp+var_D8]
		mov	[ebp+var_D0], eax
		sub	edx, eax
		mov	ebx, [ebp+var_D0]
		mov	eax, edx
		neg	eax
		shl	eax, 2
		mov	[ebp+var_E0], eax
		cmp	[ebp+var_E8], ebx
		jle	loc_A781B
		lea	esi, [esi+0]

loc_A76C0:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+4B5j
		mov	ebx, 1
		mov	ecx, edx
		mov	eax, edx
		shl	ebx, cl
		cmp	ebx, [ebp+var_F0]
		jbe	short loc_A7738
		mov	esi, [ebp+var_100]
		add	esi, edx
		cmp	[ebp+var_F4], esi
		cmovbe	esi, [ebp+var_F4]
		cmp	esi, edx
		jbe	short loc_A7738
		lea	eax, [edx+1]
		cmp	esi, eax
		jbe	short loc_A7738
		mov	ecx, [ebp+var_108]
		mov	edi, [ebp+var_10C]
		add	ecx, ebx
		mov	ebx, [edi+4]
		add	ecx, ecx
		cmp	ecx, ebx
		jbe	short loc_A7738
		mov	edi, [ebp+var_114]
		add	edi, [ebp+var_E0]
		jmp	short loc_A772B
; ---------------------------------------------------------------------------
		align 10h

loc_A7720:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+3D0j
		sub	ecx, ebx
		mov	ebx, [edi+eax*4]
		add	ecx, ecx
		cmp	ecx, ebx
		jbe	short loc_A7738

loc_A772B:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+3B6j
		add	eax, 1
		cmp	esi, eax
		ja	short loc_A7720
		lea	esi, [esi+0]

loc_A7738:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+371j
					; huft_build(uint *,uint,uint,uint  const*,uint	 const*,inflate_huft_s **,uint *,inflate_huft_s	*,uint *,uint *)+38Aj ...
		mov	esi, [ebp+arg_20]
		mov	ecx, eax
		mov	ebx, 1
		shl	ebx, cl
		mov	[ebp+var_120], ebx
		mov	ecx, [esi]
		add	ebx, ecx
		cmp	ebx, 5A0h
		ja	loc_A79D0
		mov	esi, [ebp+arg_1C]
		mov	ebx, [ebp+var_DC]
		lea	edi, [esi+ecx*8]
		mov	ecx, [ebp+var_120]
		mov	esi, [ebp+arg_20]
		add	ebx, 1
		mov	[ebp+ebx*4+var_48], edi
		add	[esi], ecx
		test	ebx, ebx
		jz	loc_A79A0
		movzx	ecx, byte ptr [ebp+var_D8]
		mov	esi, [ebp+var_EC]
		mov	[ebp+ebx*4+var_88], esi
		shr	esi, cl
		mov	[ebp+var_D8], esi
		mov	esi, [ebp+var_DC]
		mov	[ebp+var_DC], ebx
		mov	ecx, [ebp+esi*4+var_48]
		mov	esi, edi
		sub	esi, ecx
		sar	esi, 3
		mov	[ebp+var_D4], esi
		mov	esi, [ebp+var_D8]
		sub	[ebp+var_D4], esi
		lea	ecx, [ecx+esi*8]
		mov	[ecx], al
		movzx	eax, byte ptr [ebp+var_E4]
		mov	esi, [ebp+var_D4]
		mov	[ecx+1], al
		mov	[ecx+4], esi

loc_A77DD:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+64Fj
		mov	esi, [ebp+var_D0]
		mov	eax, [ebp+var_E4]
		mov	ebx, [ebp+var_FC]
		add	edx, [ebp+var_F8]
		mov	[ebp+var_D8], esi
		add	eax, esi
		add	[ebp+var_E0], ebx
		mov	[ebp+var_D0], eax
		mov	ebx, [ebp+var_D0]
		cmp	[ebp+var_E8], ebx
		jg	loc_A76C0

loc_A781B:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+354j
		movzx	eax, byte ptr [ebp+var_E8]
		mov	ebx, 0FFFFFFC0h
		mov	edx, [ebp+var_11C]
		mov	esi, [ebp+var_120]
		sub	al, byte ptr [ebp+var_D8]
		cmp	[ebp+var_104], edx
		mov	byte ptr [ebp+var_E0], al
		jnb	short loc_A7874
		mov	ebx, [ebp+var_104]
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebx]
		cmp	ebx, eax
		mov	[ebp+var_D4], ebx
		jnb	loc_A7A39
		cmp	ebx, 100h
		sbb	ebx, ebx
		add	[ebp+var_104], 4
		not	ebx
		and	ebx, 60h

loc_A7874:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+4E5j
					; huft_build(uint *,uint,uint,uint  const*,uint	 const*,inflate_huft_s **,uint *,inflate_huft_s	*,uint *,uint *)+6FEj
		mov	ecx, [ebp+var_E8]
		mov	eax, 1
		mov	edx, [ebp+var_EC]
		sub	ecx, [ebp+var_D8]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_D8]
		mov	[ebp+var_D0], eax
		shr	edx, cl
		cmp	edx, esi
		jnb	short loc_A78E4
		mov	ecx, eax
		mov	[ebp+var_120], edi
		lea	eax, [edi+edx*8]
		shl	ecx, 3
		mov	[ebp+var_128], ecx
		movzx	ecx, byte ptr [ebp+var_E0]
		nop
		lea	esi, [esi+0]

loc_A78C0:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+57Cj
		mov	edi, [ebp+var_D4]
		mov	[eax], bl
		add	edx, [ebp+var_D0]
		mov	[eax+1], cl
		mov	[eax+4], edi
		add	eax, [ebp+var_128]
		cmp	edx, esi
		jb	short loc_A78C0
		mov	edi, [ebp+var_120]

loc_A78E4:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+53Ej
		mov	eax, [ebp+var_118]
		test	[ebp+var_EC], eax
		jz	short loc_A790E
		mov	edx, [ebp+var_EC]
		nop
		lea	esi, [esi+0]

loc_A7900:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+5A6j
		xor	edx, eax
		shr	eax, 1
		test	eax, edx
		jnz	short loc_A7900
		mov	[ebp+var_EC], edx

loc_A790E:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+590j
		movzx	ecx, byte ptr [ebp+var_D8]
		xor	[ebp+var_EC], eax
		mov	eax, 1
		mov	ebx, [ebp+var_DC]
		shl	eax, cl
		sub	eax, 1
		and	eax, [ebp+var_EC]
		cmp	eax, [ebp+ebx*4+var_88]
		jz	short loc_A7984
		mov	eax, ebx
		mov	edx, [ebp+var_EC]
		mov	[ebp+var_D0], edi
		mov	ecx, [ebp+var_D8]
		mov	ebx, [ebp+var_F8]
		lea	esi, [esi+0]

loc_A7958:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+610j
		add	ecx, ebx
		mov	edi, 1
		sub	eax, 1
		shl	edi, cl
		sub	edi, 1
		and	edi, edx
		cmp	edi, [ebp+eax*4+var_88]
		jnz	short loc_A7958
		mov	edi, [ebp+var_D0]
		mov	[ebp+var_DC], eax
		mov	[ebp+var_D8], ecx

loc_A7984:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+5D8j
		sub	[ebp+var_F0], 1
		add	[ebp+var_108], 1
		jmp	loc_A766D
; ---------------------------------------------------------------------------
		align 10h

loc_A79A0:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+41Aj
		mov	[ebp+var_DC], 0
		mov	eax, [ebp+arg_14]
		mov	[eax], edi
		jmp	loc_A77DD
; ---------------------------------------------------------------------------
		align 8

loc_A79B8:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+1AFj
					; huft_build(uint *,uint,uint,uint  const*,uint	 const*,inflate_huft_s **,uint *,inflate_huft_s	*,uint *,uint *)+1D7j
		mov	ebx, 0FFFFFFFDh

loc_A79BD:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+19Dj
					; huft_build(uint *,uint,uint,uint  const*,uint	 const*,inflate_huft_s **,uint *,inflate_huft_s	*,uint *,uint *)+740j ...
		add	esp, 11Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A79D0:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+3F4j
		add	esp, 11Ch
		mov	ebx, 0FFFFFFFCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A79E8:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+140j
		mov	[ebp+var_D0], edx
		mov	[ebp+var_110], eax
		jmp	loc_A74BB
; ---------------------------------------------------------------------------
		align 10h

loc_A7A00:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+F9j
		mov	[ebp+var_D0], 1
		shl	[ebp+var_D0], cl
		mov	[ebp+var_E8], ecx
		jmp	loc_A747B
; ---------------------------------------------------------------------------

loc_A7A1B:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+DEj
		mov	eax, [ebp+arg_14]
		mov	dword ptr [eax], 0
		mov	dword ptr [ebx], 0
		add	esp, 11Ch
		xor	ebx, ebx
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A7A39:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+4FAj
		mov	eax, [ebp+var_D4]
		mov	edx, [ebp+arg_10]
		add	[ebp+var_104], 4
		sub	eax, [ebp+arg_8]
		mov	ebx, [edx+eax*4]
		mov	edx, [ebp+arg_C]
		add	ebx, 50h
		mov	eax, [edx+eax*4]
		mov	[ebp+var_D4], eax
		jmp	loc_A7874
; ---------------------------------------------------------------------------

loc_A7A63:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+315j
		add	[ebp+var_E8], 1
		mov	edx, [ebp+var_110]
		add	[ebp+var_10C], 4
		sub	[ebp+var_100], 1
		cmp	[ebp+var_E8], edx
		jle	loc_A762E

loc_A7A8A:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+266j
		mov	ebx, [ebp+var_124]
		test	ebx, ebx
		jz	short loc_A7AA6
		cmp	[ebp+var_110], 1
		mov	ebx, 0FFFFFFFBh
		jnz	loc_A79BD

loc_A7AA6:				; CODE XREF: huft_build(uint *,uint,uint,uint  const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)+732j
		xor	ebx, ebx
		jmp	loc_A79BD
_Z10huft_buildPjjjPKjS1_PP14inflate_huft_sS_S3_S_S_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_trees_bits(unsigned int *, unsigned int *, inflate_huft_s **,	inflate_huft_s *, z_stream_s *)
_Z18inflate_trees_bitsPjS_PP14inflate_huft_sS1_P10z_stream_s proc near
					; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+700p

var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_10]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	dword ptr [esp+8], 4
		mov	dword ptr [esp+4], 13h
		mov	eax, [ebx+28h]
		mov	[ebp+var_1C], 0
		mov	[esp], eax
		call	dword ptr [ebx+20h]
		test	eax, eax
		mov	esi, eax
		jz	loc_A7B90
		mov	[esp+24h], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+20h], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+18h], edi
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+1Ch], eax
		mov	eax, [ebp+arg_8]
		mov	dword ptr [esp+8], 13h
		mov	dword ptr [esp+4], 13h
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z10huft_buildPjjjPKjS1_PP14inflate_huft_sS_S3_S_S_ ; huft_build(uint *,uint,uint,uint	const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)
		cmp	eax, 0FFFFFFFDh
		jz	short loc_A7B80
		cmp	eax, 0FFFFFFFBh
		jz	short loc_A7B70
		mov	ecx, [edi]
		test	ecx, ecx
		jz	short loc_A7B70

loc_A7B47:				; CODE XREF: inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+CCj
					; inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+D7j
		mov	[esp+4], esi
		mov	edx, [ebx+28h]
		mov	[ebp+var_2C], eax
		mov	[esp], edx
		call	dword ptr [ebx+24h]
		mov	eax, [ebp+var_2C]

loc_A7B5A:				; CODE XREF: inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+E5j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A7B70:				; CODE XREF: inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+8Fj
					; inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+95j
		mov	dword ptr [ebx+18h], offset aIncompleteDyna ; "incomplete dynamic bit lengths tree"
		mov	eax, 0FFFFFFFDh
		jmp	short loc_A7B47
; ---------------------------------------------------------------------------
		align 10h

loc_A7B80:				; CODE XREF: inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+8Aj
		mov	dword ptr [ebx+18h], offset aOversubscribed ; "oversubscribed dynamic bit lengths tree"...
		jmp	short loc_A7B47
; ---------------------------------------------------------------------------
		align 10h

loc_A7B90:				; CODE XREF: inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+39j
		mov	eax, 0FFFFFFFCh
		jmp	short loc_A7B5A
_Z18inflate_trees_bitsPjS_PP14inflate_huft_sS1_P10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_trees_dynamic(unsigned int, unsigned int, unsigned int *, unsigned int *, unsigned int *, inflate_huft_s **, inflate_huft_s **, inflate_huft_s *, z_stream_s *)
_Z21inflate_trees_dynamicjjPjS_S_PP14inflate_huft_sS2_S1_P10z_stream_s proc near
					; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+F6p

var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_1C], 0
		mov	ebx, [ebp+arg_20]
		mov	dword ptr [esp+8], 4
		mov	dword ptr [esp+4], 120h
		mov	edi, [ebp+arg_C]
		mov	eax, [ebx+28h]
		mov	[esp], eax
		call	dword ptr [ebx+20h]
		test	eax, eax
		mov	esi, eax
		jz	loc_A7D30
		mov	ecx, [ebp+arg_1C]
		mov	[esp+24h], eax
		lea	edx, [ebp+var_1C]
		mov	eax, [ebp+arg_14]
		mov	[esp+20h], edx
		mov	[ebp+var_2C], edx
		mov	[esp+18h], edi
		mov	[esp+1Ch], ecx
		mov	ecx, [ebp+arg_0]
		mov	[esp+14h], eax
		mov	dword ptr [esp+10h], offset _ZL6cplext ; cplext
		mov	dword ptr [esp+0Ch], offset _ZL6cplens ; cplens
		mov	[esp+4], ecx
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [esp+8], 101h
		mov	[esp], ecx
		call	_Z10huft_buildPjjjPKjS1_PP14inflate_huft_sS_S3_S_S_ ; huft_build(uint *,uint,uint,uint	const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)
		mov	edx, [ebp+var_2C]
		test	eax, eax
		jz	short loc_A7C58
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_A7C70
		mov	dword ptr [ebx+18h], offset aOversubscrib_0 ; "oversubscribed literal/length tree"

loc_A7C36:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+CAj
					; inflate_trees_dynamic(uint,uint,uint *,uint *,uint *,inflate_huft_s **,inflate_huft_s	**,inflate_huft_s *,z_stream_s *)+D5j ...
		mov	[esp+4], esi
		mov	edx, [ebx+28h]
		mov	[ebp+var_2C], eax
		mov	[esp], edx
		call	dword ptr [ebx+24h]
		mov	eax, [ebp+var_2C]

loc_A7C49:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+195j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A7C58:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+88j
		mov	eax, [edi]
		test	eax, eax
		jnz	short loc_A7C80

loc_A7C5E:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+D3j
		mov	dword ptr [ebx+18h], offset aIncompleteLite ; "incomplete literal/length tree"
		mov	eax, 0FFFFFFFDh
		jmp	short loc_A7C36
; ---------------------------------------------------------------------------
		align 10h

loc_A7C70:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+8Dj
		cmp	eax, 0FFFFFFFCh
		jnz	short loc_A7C5E
		jmp	short loc_A7C36
; ---------------------------------------------------------------------------
		align 10h

loc_A7C80:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+BCj
		mov	ecx, [ebp+arg_10]
		mov	[esp+20h], edx
		mov	eax, [ebp+arg_18]
		mov	[esp+24h], esi
		mov	edx, [ebp+arg_1C]
		mov	dword ptr [esp+10h], offset _ZL6cpdext ; cpdext
		mov	dword ptr [esp+0Ch], offset _ZL6cpdist ; cpdist
		mov	[esp+18h], ecx
		mov	ecx, [ebp+arg_8]
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+1Ch], edx
		mov	edx, [ebp+arg_0]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], eax
		lea	eax, [ecx+edx*4]
		mov	[esp], eax
		call	_Z10huft_buildPjjjPKjS1_PP14inflate_huft_sS_S3_S_S_ ; huft_build(uint *,uint,uint,uint	const*,uint  const*,inflate_huft_s **,uint *,inflate_huft_s *,uint *,uint *)
		test	eax, eax
		jnz	short loc_A7D00
		mov	edx, [ebp+arg_10]
		mov	edi, [edx]
		test	edi, edi
		jnz	loc_A7C36
		cmp	[ebp+arg_0], 101h
		jbe	loc_A7C36

loc_A7CEB:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+1A9j
		mov	dword ptr [ebx+18h], offset aEmptyDistanceT ; "empty distance tree with	lengths"
		mov	eax, 0FFFFFFFDh
		jmp	loc_A7C36
; ---------------------------------------------------------------------------
		align 10h

loc_A7D00:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+12Fj
		cmp	eax, 0FFFFFFFDh
		jz	short loc_A7D20
		cmp	eax, 0FFFFFFFBh
		jnz	short loc_A7D40
		mov	dword ptr [ebx+18h], offset aIncompleteDist ; "incomplete distance tree"
		mov	al, 0FDh
		jmp	loc_A7C36
; ---------------------------------------------------------------------------
		align 10h

loc_A7D20:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+163j
		mov	dword ptr [ebx+18h], offset aOversubscrib_1 ; "oversubscribed distance tree"
		jmp	loc_A7C36
; ---------------------------------------------------------------------------
		align 10h

loc_A7D30:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+33j
		mov	eax, 0FFFFFFFCh
		jmp	loc_A7C49
; ---------------------------------------------------------------------------
		align 10h

loc_A7D40:				; CODE XREF: inflate_trees_dynamic(uint,uint,uint *,uint *,uint	*,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)+168j
		cmp	eax, 0FFFFFFFCh
		jz	loc_A7C36
		jmp	short loc_A7CEB
_Z21inflate_trees_dynamicjjPjS_S_PP14inflate_huft_sS2_S1_P10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_trees_fixed(unsigned int *, unsigned int *, inflate_huft_s  const**, inflate_huft_s  const**,	z_stream_s *)
_Z19inflate_trees_fixedPjS_PPK14inflate_huft_sS3_P10z_stream_s proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 9
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 5
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax], offset	_ZL8fixed_tl ; fixed_tl
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], offset	_ZL8fixed_td ; fixed_td
		xor	eax, eax
		pop	ebp
		retn
_Z19inflate_trees_fixedPjS_PPK14inflate_huft_sS3_P10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_fast(unsigned	int, unsigned int, inflate_huft_s  const*, inflate_huft_s  const*, inflate_blocks_state	*, z_stream_s *)
_Z12inflate_fastjjPK14inflate_huft_sS1_P20inflate_blocks_stateP10z_stream_s proc near
					; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+7DFp

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_14]
		mov	esi, [ebp+arg_10]
		mov	edx, [ebp+arg_14]
		mov	eax, [eax]
		mov	ebx, [esi+20h]
		mov	edx, [edx+4]
		mov	edi, [esi+1Ch]
		mov	[ebp+var_14], eax
		mov	eax, [esi+34h]
		mov	[ebp+var_10], edx
		mov	[ebp+var_18], eax
		mov	eax, [esi+30h]
		cmp	[ebp+var_18], eax
		jnb	loc_A80D0
		sub	eax, [ebp+var_18]
		sub	eax, 1
		mov	[ebp+var_1C], eax

loc_A7DBE:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+35Ej
		mov	eax, [ebp+arg_0]
		mov	eax, dword ptr ds:_ZL12inflate_mask[eax*4] ; inflate_mask
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		mov	eax, dword ptr ds:_ZL12inflate_mask[eax*4] ; inflate_mask
		mov	[ebp+var_2C], eax
		nop
		lea	esi, [esi+0]

loc_A7DE0:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+A9j
					; inflate_fast(uint,uint,inflate_huft_s	 const*,inflate_huft_s	const*,inflate_blocks_state *,z_stream_s *)+2E9j
		cmp	edi, 13h
		jbe	loc_A8050
		mov	eax, [ebp+var_20]
		mov	esi, [ebp+arg_8]
		and	eax, ebx
		lea	eax, [esi+eax*8]
		movzx	edx, byte ptr [eax]
		test	edx, edx
		jnz	loc_A7EA6

loc_A7DFF:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+120j
		movzx	ecx, byte ptr [eax+1]
		mov	eax, [eax+4]
		sub	[ebp+var_1C], 1
		movzx	edx, cl
		shr	ebx, cl
		sub	edi, edx
		mov	edx, [ebp+var_18]
		mov	[edx], al
		add	edx, 1
		mov	[ebp+var_18], edx

loc_A7E1C:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+2C4j
		cmp	[ebp+var_10], 9
		jbe	short loc_A7E2B
		cmp	[ebp+var_1C], 101h
		ja	short loc_A7DE0

loc_A7E2B:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+A0j
		mov	edx, [ebp+arg_14]
		mov	esi, [ebp+arg_10]
		mov	eax, [edx+4]
		mov	edx, edi
		shr	edx, 3
		mov	[esi+20h], ebx
		sub	eax, [ebp+var_10]
		cmp	edx, eax
		cmovbe	eax, edx
		mov	edx, [ebp+var_14]
		lea	ecx, ds:0[eax*8]
		sub	edi, ecx
		mov	[esi+1Ch], edi
		sub	edx, eax
		mov	edi, [ebp+arg_14]
		add	eax, [ebp+var_10]
		mov	[edi+4], eax
		mov	eax, edx
		sub	eax, [edi]
		mov	[edi], edx
		add	[edi+8], eax
		mov	eax, [ebp+var_18]
		mov	[esi+34h], eax
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A7E80:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+134j
		test	dl, 40h
		jnz	loc_A8070
		mov	ecx, [eax+4]
		mov	edx, dword ptr ds:_ZL12inflate_mask[edx*4] ; inflate_mask
		lea	eax, [eax+ecx*8]
		and	edx, ebx
		lea	eax, [eax+edx*8]
		movzx	edx, byte ptr [eax]
		test	edx, edx
		jz	loc_A7DFF

loc_A7EA6:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+79j
		movzx	ecx, byte ptr [eax+1]
		movzx	esi, cl
		shr	ebx, cl
		sub	edi, esi
		test	dl, 10h
		jz	short loc_A7E80
		mov	ecx, edx
		mov	eax, [eax+4]
		and	ecx, 0Fh
		mov	esi, dword ptr ds:_ZL12inflate_mask[ecx*4] ; inflate_mask
		sub	edi, ecx
		mov	[ebp+var_24], edi
		mov	[ebp+var_30], eax
		mov	[ebp+var_34], esi
		mov	esi, ebx
		shr	esi, cl
		cmp	edi, 0Eh
		ja	short loc_A7F18
		mov	edx, [ebp+var_14]
		mov	ecx, edi
		db	66h
		nop

loc_A7EE0:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+170j
		movzx	eax, byte ptr [edx]
		add	edx, 1
		shl	eax, cl
		add	ecx, 8
		or	esi, eax
		cmp	ecx, 0Eh
		jbe	short loc_A7EE0
		mov	eax, 0Eh
		mov	edi, [ebp+var_14]
		sub	eax, [ebp+var_24]
		sub	[ebp+var_10], 1
		mov	edx, [ebp+var_24]
		shr	eax, 3
		sub	[ebp+var_10], eax
		lea	edi, [edi+eax+1]
		mov	[ebp+var_14], edi
		lea	edx, [edx+eax*8+8]
		mov	[ebp+var_24], edx

loc_A7F18:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+157j
		mov	eax, [ebp+var_2C]
		mov	edi, [ebp+arg_C]
		and	eax, esi
		lea	eax, [edi+eax*8]
		movzx	ecx, byte ptr [eax+1]
		movzx	edx, byte ptr [eax]
		movzx	edi, cl
		mov	[ebp+var_28], edi
		mov	edi, esi
		shr	edi, cl
		mov	ecx, [ebp+var_24]
		sub	ecx, [ebp+var_28]
		test	dl, 10h
		mov	[ebp+var_24], ecx
		jnz	short loc_A7F8C
		test	dl, 40h
		jnz	loc_A80EB
		mov	[ebp+var_28], ebx
		mov	esi, [ebp+var_24]
		jmp	short loc_A7F61
; ---------------------------------------------------------------------------
		align 8

loc_A7F58:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+204j
		test	dl, 40h
		jnz	loc_A80E8

loc_A7F61:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+1D1j
		mov	ecx, [eax+4]
		mov	edx, dword ptr ds:_ZL12inflate_mask[edx*4] ; inflate_mask
		lea	eax, [eax+ecx*8]
		and	edx, edi
		lea	eax, [eax+edx*8]
		movzx	ecx, byte ptr [eax+1]
		movzx	edx, byte ptr [eax]
		movzx	ebx, cl
		shr	edi, cl
		sub	esi, ebx
		test	dl, 10h
		jz	short loc_A7F58
		mov	ebx, [ebp+var_28]
		mov	[ebp+var_24], esi

loc_A7F8C:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+1C0j
		mov	esi, edx
		and	esi, 0Fh
		cmp	esi, [ebp+var_24]
		jbe	short loc_A7FCB
		mov	[ebp+var_28], ebx
		mov	edx, [ebp+var_14]
		mov	ebx, [ebp+var_10]
		mov	[ebp+var_38], eax
		mov	ecx, [ebp+var_24]
		lea	esi, [esi+0]

loc_A7FA8:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+23Aj
		movzx	eax, byte ptr [edx]
		sub	ebx, 1
		add	edx, 1
		shl	eax, cl
		add	ecx, 8
		or	edi, eax
		cmp	esi, ecx
		ja	short loc_A7FA8
		mov	[ebp+var_10], ebx
		mov	eax, [ebp+var_38]
		mov	ebx, [ebp+var_28]
		mov	[ebp+var_14], edx
		mov	[ebp+var_24], ecx

loc_A7FCB:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+214j
		mov	ecx, dword ptr ds:_ZL12inflate_mask[esi*4] ; inflate_mask
		mov	edx, [ebp+var_34]
		and	ecx, edi
		and	edx, ebx
		mov	[ebp+var_28], ecx
		mov	ebx, edi
		mov	ecx, [eax+4]
		mov	edi, [ebp+var_24]
		mov	eax, [ebp+arg_10]
		add	edx, [ebp+var_30]
		add	[ebp+var_28], ecx
		mov	ecx, esi
		sub	edi, esi
		shr	ebx, cl
		mov	esi, [eax+28h]
		mov	eax, [ebp+var_18]
		sub	[ebp+var_1C], edx
		sub	eax, esi
		cmp	[ebp+var_28], eax
		ja	loc_A8145
		mov	eax, [ebp+var_18]
		sub	edx, 2
		mov	esi, [ebp+var_18]
		sub	eax, [ebp+var_28]
		movzx	ecx, byte ptr [eax]
		mov	[esi], cl
		movzx	ecx, byte ptr [eax+1]
		add	eax, 2
		mov	[esi+1], cl
		add	esi, 2
		mov	[ebp+var_18], esi

loc_A8028:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+3D5j
					; inflate_fast(uint,uint,inflate_huft_s	 const*,inflate_huft_s	const*,inflate_blocks_state *,z_stream_s *)+40Dj
		mov	esi, [ebp+var_18]
		xor	ecx, ecx
		mov	[ebp+var_24], ebx

loc_A8030:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+2BCj
		movzx	ebx, byte ptr [eax+ecx]
		mov	[esi+ecx], bl
		add	ecx, 1
		cmp	edx, ecx
		jnz	short loc_A8030
		mov	ebx, [ebp+var_24]
		add	[ebp+var_18], edx
		jmp	loc_A7E1C
; ---------------------------------------------------------------------------
		align 10h

loc_A8050:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+63j
		mov	edx, [ebp+var_14]
		mov	ecx, edi
		add	edi, 8
		sub	[ebp+var_10], 1
		movzx	eax, byte ptr [edx]
		add	edx, 1
		mov	[ebp+var_14], edx
		shl	eax, cl
		or	ebx, eax
		jmp	loc_A7DE0
; ---------------------------------------------------------------------------
		align 10h

loc_A8070:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+103j
		and	edx, 20h
		jz	loc_A8192
		mov	esi, [ebp+arg_14]
		mov	edx, edi
		shr	edx, 3
		mov	eax, [esi+4]
		mov	esi, [ebp+arg_10]
		sub	eax, [ebp+var_10]
		mov	[esi+20h], ebx
		cmp	edx, eax
		cmovbe	eax, edx
		mov	edx, [ebp+var_14]
		lea	ecx, ds:0[eax*8]
		sub	edi, ecx
		mov	[esi+1Ch], edi
		sub	edx, eax
		mov	edi, [ebp+arg_14]
		add	eax, [ebp+var_10]
		mov	[edi+4], eax
		mov	eax, edx
		sub	eax, [edi]
		mov	[edi], edx
		add	[edi+8], eax
		mov	eax, [ebp+var_18]
		mov	[esi+34h], eax
		add	esp, 2Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A80D0:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+2Fj
		mov	edx, [ebp+arg_10]
		mov	esi, [ebp+var_18]
		mov	edx, [edx+2Ch]
		sub	edx, esi
		mov	[ebp+var_1C], edx
		jmp	loc_A7DBE
; ---------------------------------------------------------------------------
		align 8

loc_A80E8:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+1DBj
		mov	[ebp+var_24], esi

loc_A80EB:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+1C5j
		mov	eax, [ebp+arg_14]
		mov	edx, [ebp+var_24]
		mov	esi, [ebp+arg_10]
		mov	dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance	code"
		mov	eax, [eax+4]
		shr	edx, 3
		mov	[esi+20h], edi
		mov	edi, [ebp+var_24]
		sub	eax, [ebp+var_10]
		cmp	edx, eax
		cmovbe	eax, edx
		mov	edx, [ebp+var_14]
		lea	ecx, ds:0[eax*8]
		sub	edx, eax

loc_A811B:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+43Ej
		sub	edi, ecx
		add	eax, [ebp+var_10]
		mov	[esi+1Ch], edi
		mov	edi, [ebp+arg_14]
		mov	[edi+4], eax
		mov	eax, edx
		sub	eax, [edi]
		mov	[edi], edx
		add	[edi+8], eax
		mov	eax, [ebp+var_18]
		mov	[esi+34h], eax
		add	esp, 2Ch
		mov	eax, 0FFFFFFFDh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A8145:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+281j
		sub	esi, [ebp+var_18]
		mov	ecx, [ebp+arg_10]
		add	esi, [ebp+var_28]
		mov	eax, [ecx+2Ch]
		sub	eax, esi
		cmp	edx, esi
		jbe	loc_A8028
		mov	[ebp+var_28], edi
		mov	edi, [ebp+var_18]
		sub	edx, esi
		xor	ecx, ecx
		mov	[ebp+var_24], ebx
		nop
		lea	esi, [esi+0]

loc_A8170:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+3FCj
		movzx	ebx, byte ptr [eax+ecx]
		mov	[edi+ecx], bl
		add	ecx, 1
		cmp	ecx, esi
		jnz	short loc_A8170
		mov	esi, [ebp+arg_10]
		mov	ebx, [ebp+var_24]
		mov	edi, [ebp+var_28]
		add	[ebp+var_18], ecx
		mov	eax, [esi+28h]
		jmp	loc_A8028
; ---------------------------------------------------------------------------

loc_A8192:				; CODE XREF: inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state *,z_stream_s *)+2F3j
		mov	edx, [ebp+arg_14]
		mov	esi, [ebp+arg_10]
		mov	eax, [edx+4]
		mov	dword ptr [edx+18h], offset aInvalidLiteral ; "invalid literal/length code"
		mov	edx, edi
		shr	edx, 3
		mov	[esi+20h], ebx
		sub	eax, [ebp+var_10]
		cmp	edx, eax
		cmovbe	eax, edx
		mov	edx, [ebp+var_14]
		lea	ecx, ds:0[eax*8]
		sub	edx, eax
		jmp	loc_A811B
_Z12inflate_fastjjPK14inflate_huft_sS1_P20inflate_blocks_stateP10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_codes(inflate_blocks_state *,	z_stream_s *, int)
_Z13inflate_codesP20inflate_blocks_stateP10z_stream_si proc near
					; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+1BFp

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_34], eax
		mov	[ebp+var_20], edx
		mov	edx, [ebp+var_1C]
		mov	edx, [edx+4]
		mov	[ebp+var_28], edx
		mov	edx, [ebp+var_20]
		mov	esi, [edx]
		mov	edi, [edx+4]
		mov	edx, [ebp+var_1C]
		mov	edx, [edx+20h]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+34h]
		mov	ebx, [edx+1Ch]
		mov	[ebp+var_24], eax
		mov	eax, [edx+30h]
		cmp	[ebp+var_24], eax
		jnb	loc_A8320
		sub	eax, [ebp+var_24]
		sub	eax, 1
		mov	[ebp+var_30], eax

loc_A8226:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+15Ej
		mov	edx, [ebp+var_28]
		mov	eax, [edx]

loc_A822B:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+731j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+832j
		cmp	eax, 9		; switch 10 cases
		jbe	loc_A8310
		mov	edx, [ebp+var_1C] ; jumptable 000A8310 default case
		mov	eax, esi
		mov	ecx, [ebp+var_2C]
		mov	[edx+1Ch], ebx
		mov	[edx+20h], ecx
		mov	edx, [ebp+var_20]
		sub	eax, [edx]
		mov	[edx+4], edi
		mov	[edx], esi
		add	[edx+8], eax
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	[ebp+arg_8], 0FFFFFFFEh
		nop

loc_A8260:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+19Cj
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+1E3j ...
		mov	edx, [ebp+var_20]
		mov	[ebp+arg_4], edx
		mov	edx, [ebp+var_1C]
		mov	[ebp+arg_0], edx
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
; ---------------------------------------------------------------------------
		align 10h

loc_A8280:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		mov	ecx, [ebp+var_28] ; jumptable 000A8310 case 3
		mov	edx, [ecx+0Ch]

loc_A8286:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+4B9j
		cmp	ebx, edx
		jnb	short loc_A82CA
		test	edi, edi
		jz	loc_A87BC
		mov	ecx, ebx
		mov	ebx, edx
		mov	edx, [ebp+var_2C]
		jmp	short loc_A82A8
; ---------------------------------------------------------------------------
		align 10h

loc_A82A0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+EAj
		test	edi, edi
		jz	loc_A87B0

loc_A82A8:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+C9j
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ecx, ebx
		jb	short loc_A82A0
		mov	[ebp+var_2C], edx
		mov	edx, ebx
		mov	ebx, ecx
		mov	[ebp+var_34], 0

loc_A82CA:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+B8j
		mov	edx, dword ptr ds:_ZL12inflate_mask[edx*4] ; inflate_mask
		mov	ecx, [ebp+var_28]
		and	edx, [ebp+var_2C]
		shl	edx, 3
		add	edx, [ecx+8]
		movzx	ecx, byte ptr [edx+1]
		shr	[ebp+var_2C], cl
		movzx	eax, cl
		sub	ebx, eax
		movzx	eax, byte ptr [edx]
		test	al, 10h
		jz	loc_A88E8
		mov	ecx, [ebp+var_28]
		and	eax, 0Fh
		mov	[ecx+8], eax
		mov	eax, [edx+4]
		mov	dword ptr [ecx], 4
		mov	[ecx+0Ch], eax
		mov	eax, 4
		db	66h
		nop

loc_A8310:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+5Ej
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+278j ...
		jmp	ds:off_1EE120[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_A8320:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+47j
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_24]
		mov	edx, [edx+2Ch]
		sub	edx, eax
		mov	[ebp+var_30], edx
		jmp	loc_A8226
; ---------------------------------------------------------------------------
		align 8

loc_A8338:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+407j
		mov	edx, [ebp+var_28]
		mov	dword ptr [edx], 8

loc_A8341:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		mov	edx, [ebp+var_1C] ; jumptable 000A8310 case 8
		mov	eax, esi
		mov	ecx, [ebp+var_2C]
		mov	[edx+1Ch], ebx
		mov	[edx+20h], ecx
		mov	edx, [ebp+var_20]
		sub	eax, [edx]
		mov	[edx+4], edi
		mov	[edx], esi
		add	[edx+8], eax
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	[ebp+arg_8], 1
		jmp	loc_A8260
; ---------------------------------------------------------------------------

loc_A8371:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+6FDj
		mov	dword ptr [edx], 9
		mov	edx, [ebp+var_20]
		mov	dword ptr [edx+18h], offset aInvalidLiteral ; "invalid literal/length code"
		lea	esi, [esi+0]

loc_A8388:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+8CBj
					; DATA XREF: ...
		mov	edx, [ebp+var_1C] ; jumptable 000A8310 case 9
		mov	eax, esi
		mov	ecx, [ebp+var_2C]
		mov	[edx+1Ch], ebx
		mov	[edx+20h], ecx
		mov	edx, [ebp+var_20]
		sub	eax, [edx]
		mov	[edx+4], edi
		mov	[edx], esi
		add	[edx+8], eax
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	[ebp+arg_8], 0FFFFFFFDh
		jmp	loc_A8260
; ---------------------------------------------------------------------------
		align 10h

loc_A83C0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		mov	eax, [ebp+var_28] ; jumptable 000A8310 case 1
		mov	edx, [eax+0Ch]

loc_A83C6:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+3BFj
		cmp	ebx, edx
		jnb	short loc_A840A
		test	edi, edi
		jz	loc_A87BC
		mov	ecx, ebx
		mov	ebx, edx
		mov	edx, [ebp+var_2C]
		jmp	short loc_A83E8
; ---------------------------------------------------------------------------
		align 10h

loc_A83E0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+22Aj
		test	edi, edi
		jz	loc_A87B0

loc_A83E8:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+209j
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ecx, ebx
		jb	short loc_A83E0
		mov	[ebp+var_2C], edx
		mov	edx, ebx
		mov	ebx, ecx
		mov	[ebp+var_34], 0

loc_A840A:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+1F8j
		mov	edx, dword ptr ds:_ZL12inflate_mask[edx*4] ; inflate_mask
		mov	ecx, [ebp+var_28]
		and	edx, [ebp+var_2C]
		shl	edx, 3
		add	edx, [ecx+8]
		movzx	ecx, byte ptr [edx+1]
		shr	[ebp+var_2C], cl
		movzx	eax, cl
		sub	ebx, eax
		movzx	eax, byte ptr [edx]
		test	eax, eax
		jnz	loc_A88C0
		mov	eax, [edx+4]
		mov	edx, [ebp+var_28]
		mov	[edx+8], eax
		mov	eax, 6
		mov	dword ptr [edx], 6
		jmp	loc_A8310
; ---------------------------------------------------------------------------
		align 10h

loc_A8450:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		mov	edx, [ebp+var_28] ; jumptable 000A8310 case 5
		mov	eax, [edx+0Ch]

loc_A8456:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+52Dj
		mov	edx, [ebp+var_1C]
		mov	ecx, [edx+28h]
		mov	edx, [ebp+var_24]
		sub	edx, ecx
		mov	[ebp+var_38], edx
		mov	edx, [ebp+var_24]
		sub	edx, eax
		cmp	[ebp+var_38], eax
		jnb	short loc_A847B
		sub	ecx, [ebp+var_24]
		add	ecx, eax
		mov	eax, [ebp+var_1C]
		mov	edx, [eax+2Ch]
		sub	edx, ecx

loc_A847B:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+29Cj
		mov	ecx, [ebp+var_28]
		mov	eax, [ecx+4]
		test	eax, eax
		jz	loc_A855E
		mov	[ebp+var_38], ebx
		mov	eax, [ebp+var_24]
		mov	ebx, edx
		mov	[ebp+var_3C], esi
		mov	edx, [ebp+var_30]
		mov	[ebp+var_40], edi
		mov	esi, [ebp+var_1C]
		mov	edi, [ebp+var_28]
		mov	ecx, [ebp+var_34]
		jmp	short loc_A84BB
; ---------------------------------------------------------------------------
		align 4

loc_A84A8:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+359j
		mov	ecx, [edi+4]
		sub	ecx, 1
		test	ecx, ecx
		mov	[edi+4], ecx
		jz	loc_A8548

loc_A84B9:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+36Dj
		xor	ecx, ecx

loc_A84BB:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+2D3j
		test	edx, edx
		jnz	short loc_A8518
		mov	edx, [esi+2Ch]
		cmp	edx, eax
		jz	loc_A87F0

loc_A84CA:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+649j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+772j
		mov	edx, [ebp+var_20]
		mov	[esi+34h], eax
		mov	[esp+8], ecx
		mov	[esp], esi
		mov	[esp+4], edx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		mov	ecx, [esi+30h]
		mov	[ebp+var_30], eax
		mov	eax, [esi+34h]
		mov	[ebp+var_34], ecx
		cmp	eax, ecx
		jnb	loc_A8820
		mov	edx, ecx
		mov	ecx, [esi+2Ch]
		sub	edx, eax
		sub	edx, 1
		mov	[ebp+var_24], ecx

loc_A8501:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+658j
		cmp	eax, [ebp+var_24]
		jz	loc_A8890

loc_A850A:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+6C9j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+6D8j ...
		test	edx, edx
		jz	loc_A8A07
		lea	esi, [esi+0]

loc_A8518:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+2EDj
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+643j
		movzx	ecx, byte ptr [ebx]
		add	ebx, 1
		sub	edx, 1
		mov	[eax], cl
		add	eax, 1
		cmp	[esi+2Ch], ebx
		jnz	loc_A84A8
		mov	ecx, [edi+4]
		mov	ebx, [esi+28h]
		sub	ecx, 1
		test	ecx, ecx
		mov	[edi+4], ecx
		jnz	loc_A84B9
		nop
		lea	esi, [esi+0]

loc_A8548:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+2E3j
		mov	ebx, [ebp+var_38]
		mov	[ebp+var_24], eax
		mov	esi, [ebp+var_3C]
		mov	[ebp+var_30], edx
		mov	edi, [ebp+var_40]
		mov	[ebp+var_34], 0

loc_A855E:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+2B3j
		mov	edx, [ebp+var_28]
		xor	eax, eax
		mov	dword ptr [edx], 0
		jmp	loc_A8310
; ---------------------------------------------------------------------------
		align 10h

loc_A8570:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		cmp	edi, 9		; jumptable 000A8310 case 0
		ja	loc_A8950

loc_A8579:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+787j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+81Aj
		mov	ecx, [ebp+var_28]
		movzx	edx, byte ptr [ecx+10h]
		mov	dword ptr [ecx], 1
		mov	eax, [ecx+14h]
		mov	[ecx+0Ch], edx
		mov	[ecx+8], eax
		jmp	loc_A83C6
; ---------------------------------------------------------------------------
		align 8

loc_A8598:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		cmp	ebx, 7		; jumptable 000A8310 case 7
		jbe	short loc_A85A6
		sub	ebx, 8
		add	edi, 1
		sub	esi, 1

loc_A85A6:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+3CBj
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_34]
		mov	[esp+4], edx
		mov	edx, [ebp+var_1C]
		mov	[esp+8], eax
		mov	[esp], edx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		mov	edx, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		mov	edx, [edx+34h]
		cmp	edx, [ecx+30h]
		mov	[ebp+var_24], edx
		jz	loc_A8338
		mov	edx, [ebp+var_2C]
		mov	[ecx+1Ch], ebx
		mov	[ecx+20h], edx
		mov	edx, [ebp+var_20]
		mov	ecx, [ebp+var_20]
		mov	[edx+4], edi
		mov	edx, esi
		sub	edx, [ecx]
		mov	[ecx], esi
		add	[ecx+8], edx
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], ecx
		mov	[ebp+arg_8], eax
		jmp	loc_A8260
; ---------------------------------------------------------------------------
		align 10h

loc_A8610:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		mov	ecx, [ebp+var_28] ; jumptable 000A8310 case 2
		mov	edx, [ecx+8]
		cmp	ebx, edx
		jnb	short loc_A865A
		test	edi, edi
		jz	loc_A87BC
		mov	ecx, ebx
		mov	ebx, edx
		mov	edx, [ebp+var_2C]
		jmp	short loc_A8638
; ---------------------------------------------------------------------------
		align 10h

loc_A8630:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+47Aj
		test	edi, edi
		jz	loc_A87B0

loc_A8638:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+459j
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ebx, ecx
		ja	short loc_A8630
		mov	[ebp+var_2C], edx
		mov	edx, ebx
		mov	ebx, ecx
		mov	[ebp+var_34], 0

loc_A865A:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+448j
		mov	eax, [ebp+var_2C]
		sub	ebx, edx
		mov	ecx, [ebp+var_28]
		and	eax, dword ptr ds:_ZL12inflate_mask[edx*4] ; inflate_mask
		add	[ecx+4], eax
		mov	ecx, edx
		mov	eax, [ebp+var_28]
		shr	[ebp+var_2C], cl
		movzx	edx, byte ptr [eax+11h]
		mov	ecx, eax
		mov	[eax+0Ch], edx
		mov	eax, [eax+18h]
		mov	dword ptr [ecx], 3
		mov	[ecx+8], eax
		jmp	loc_A8286
; ---------------------------------------------------------------------------
		align 10h

loc_A8690:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		mov	ecx, [ebp+var_28] ; jumptable 000A8310 case 4
		mov	edx, [ecx+8]
		cmp	ebx, edx
		jnb	short loc_A86DA
		test	edi, edi
		jz	loc_A87BC
		mov	ecx, ebx
		mov	ebx, edx
		mov	edx, [ebp+var_2C]
		jmp	short loc_A86B8
; ---------------------------------------------------------------------------
		align 10h

loc_A86B0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+4FAj
		test	edi, edi
		jz	loc_A87B0

loc_A86B8:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+4D9j
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ebx, ecx
		ja	short loc_A86B0
		mov	[ebp+var_2C], edx
		mov	edx, ebx
		mov	ebx, ecx
		mov	[ebp+var_34], 0

loc_A86DA:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+4C8j
		mov	eax, [ebp+var_2C]
		sub	ebx, edx
		mov	ecx, [ebp+var_28]
		and	eax, dword ptr ds:_ZL12inflate_mask[edx*4] ; inflate_mask
		add	eax, [ecx+0Ch]
		mov	[ecx+0Ch], eax
		mov	ecx, edx
		mov	edx, [ebp+var_28]
		shr	[ebp+var_2C], cl
		mov	dword ptr [edx], 5
		jmp	loc_A8456
; ---------------------------------------------------------------------------
		align 8

loc_A8708:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int):loc_A8310j
					; DATA XREF: .rodata:off_1EE120o
		mov	eax, [ebp+var_30] ; jumptable 000A8310 case 6
		test	eax, eax
		jnz	loc_A8860
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+2Ch]
		cmp	eax, [ebp+var_24]
		jz	loc_A882D

loc_A8722:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+686j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+8B3j
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_34]
		mov	[esp+4], edx
		mov	edx, [ebp+var_1C]
		mov	[esp+8], eax
		mov	[esp], edx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_34], eax
		mov	edx, [edx+34h]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+30h]
		cmp	[ebp+var_24], eax
		jb	loc_A8925
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+2Ch]
		mov	ecx, edx
		sub	ecx, [ebp+var_24]
		mov	[ebp+var_30], ecx

loc_A876D:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+766j
		cmp	[ebp+var_24], edx
		jz	loc_A8A52

loc_A8776:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+88Aj
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+89Dj ...
		mov	eax, [ebp+var_30]
		test	eax, eax
		jnz	loc_A8860
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_34]
		mov	[edx+1Ch], ebx
		mov	[edx+20h], eax
		mov	edx, [ebp+var_20]
		mov	eax, esi
		sub	eax, [edx]
		mov	[edx+4], edi
		mov	[edx], esi
		add	[edx+8], eax
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	[ebp+arg_8], ecx
		jmp	loc_A8260
; ---------------------------------------------------------------------------

loc_A87B0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+D2j
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+212j ...
		mov	[ebp+var_2C], edx
		mov	ebx, ecx
		mov	[ebp+var_34], 0

loc_A87BC:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+BCj
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+1FCj ...
		mov	edx, [ebp+var_1C]
		mov	eax, esi
		mov	ecx, [ebp+var_2C]
		mov	[edx+1Ch], ebx
		mov	[edx+20h], ecx
		mov	edx, [ebp+var_20]
		sub	eax, [edx]
		mov	dword ptr [edx+4], 0
		mov	[edx], esi
		add	[edx+8], eax
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	eax, [ebp+var_34]
		mov	[ebp+arg_8], eax
		jmp	loc_A8260
; ---------------------------------------------------------------------------
		align 10h

loc_A87F0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+2F4j
		mov	eax, [esi+30h]
		mov	[ebp+var_24], eax
		mov	eax, [esi+28h]
		cmp	[ebp+var_24], eax
		jz	loc_A8940
		sub	edx, eax
		cmp	[ebp+var_24], eax
		jbe	short loc_A8811
		mov	edx, [ebp+var_24]
		sub	edx, eax
		sub	edx, 1

loc_A8811:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+637j
		test	edx, edx
		jnz	loc_A8518
		jmp	loc_A84CA
; ---------------------------------------------------------------------------
		align 10h

loc_A8820:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+31Ej
		mov	edx, [esi+2Ch]
		mov	[ebp+var_24], edx
		sub	edx, eax
		jmp	loc_A8501
; ---------------------------------------------------------------------------

loc_A882D:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+54Cj
		mov	ecx, edx
		mov	edx, [edx+30h]
		mov	ecx, [ecx+28h]
		cmp	edx, ecx
		mov	[ebp+var_24], ecx
		jz	loc_A8A80
		sub	eax, ecx
		cmp	edx, ecx
		mov	[ebp+var_30], eax
		jbe	short loc_A8851
		sub	edx, ecx
		sub	edx, 1
		mov	[ebp+var_30], edx

loc_A8851:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+677j
		mov	eax, [ebp+var_30]
		test	eax, eax
		jz	loc_A8722
		lea	esi, [esi+0]

loc_A8860:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+53Dj
					; inflate_codes(inflate_blocks_state *,z_stream_s *,int)+5ABj
		mov	edx, [ebp+var_28]
		mov	[ebp+var_34], 0
		sub	[ebp+var_30], 1
		mov	eax, [edx+8]
		mov	edx, [ebp+var_24]
		mov	[edx], al
		add	edx, 1
		xor	eax, eax
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_28]
		mov	dword ptr [edx], 0
		jmp	loc_A8310
; ---------------------------------------------------------------------------
		align 10h

loc_A8890:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+334j
		mov	ecx, [esi+28h]
		cmp	[ebp+var_34], ecx
		mov	[ebp+var_24], ecx
		jz	loc_A850A
		mov	edx, eax
		mov	eax, ecx
		sub	edx, ecx
		cmp	[ebp+var_34], ecx
		jbe	loc_A850A
		mov	ecx, [ebp+var_34]
		sub	ecx, eax
		lea	edx, [ecx-1]
		jmp	loc_A850A
; ---------------------------------------------------------------------------
		align 10h

loc_A88C0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+25Ej
		test	al, 10h
		jnz	short loc_A8906
		test	al, 40h
		jz	short loc_A88F0
		test	al, 20h
		mov	edx, [ebp+var_28]
		jz	loc_A8371
		mov	dword ptr [edx], 7
		mov	eax, 7
		jmp	loc_A8310
; ---------------------------------------------------------------------------
		align 8

loc_A88E8:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+11Ej
		test	al, 40h
		jnz	loc_A8A88

loc_A88F0:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+6F6j
		mov	ecx, [ebp+var_28]
		mov	[ecx+0Ch], eax
		mov	eax, [edx+4]
		lea	eax, [edx+eax*8]
		mov	[ecx+8], eax
		mov	eax, [ecx]
		jmp	loc_A822B
; ---------------------------------------------------------------------------

loc_A8906:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+6F2j
		mov	ecx, [ebp+var_28]
		and	eax, 0Fh
		mov	[ecx+8], eax
		mov	eax, [edx+4]
		mov	dword ptr [ecx], 2
		mov	[ecx+4], eax
		mov	eax, 2
		jmp	loc_A8310
; ---------------------------------------------------------------------------

loc_A8925:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+589j
		mov	edx, eax
		mov	ecx, [ebp+var_1C]
		sub	edx, [ebp+var_24]
		sub	edx, 1
		mov	[ebp+var_30], edx
		mov	edx, [ecx+2Ch]
		jmp	loc_A876D
; ---------------------------------------------------------------------------
		align 10h

loc_A8940:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+62Cj
		mov	eax, edx
		jmp	loc_A84CA
; ---------------------------------------------------------------------------
		align 10h

loc_A8950:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+3A3j
		cmp	[ebp+var_30], 101h
		jbe	loc_A8579
		mov	edx, [ebp+var_1C]
		mov	eax, esi
		mov	ecx, [ebp+var_2C]
		mov	[edx+1Ch], ebx
		mov	[edx+20h], ecx
		mov	edx, [ebp+var_20]
		sub	eax, [edx]
		mov	[edx+4], edi
		mov	[edx], esi
		add	[edx+8], eax
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	edx, [ebp+var_20]
		mov	[esp+14h], edx
		mov	edx, [ebp+var_1C]
		mov	[esp+10h], edx
		mov	edx, [ebp+var_28]
		mov	eax, [edx+18h]
		mov	[esp+0Ch], eax
		mov	eax, [edx+14h]
		mov	[esp+8], eax
		movzx	eax, byte ptr [edx+11h]
		mov	[esp+4], eax
		movzx	eax, byte ptr [edx+10h]
		mov	[esp], eax
		call	_Z12inflate_fastjjPK14inflate_huft_sS1_P20inflate_blocks_stateP10z_stream_s ; inflate_fast(uint,uint,inflate_huft_s  const*,inflate_huft_s  const*,inflate_blocks_state	*,z_stream_s *)
		mov	edx, [ebp+var_20]
		mov	[ebp+var_34], eax
		mov	esi, [edx]
		mov	edi, [edx+4]
		mov	edx, [ebp+var_1C]
		mov	edx, [edx+20h]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+34h]
		mov	ebx, [edx+1Ch]
		mov	[ebp+var_24], eax
		mov	eax, [edx+30h]
		cmp	[ebp+var_24], eax
		jnb	short loc_A8A42
		sub	eax, [ebp+var_24]
		sub	eax, 1
		mov	[ebp+var_30], eax

loc_A89E5:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+880j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jz	loc_A8579
		xor	eax, eax
		cmp	[ebp+var_34], 1
		mov	edx, [ebp+var_28]
		setnz	al
		lea	eax, [eax+eax+7]
		mov	[edx], eax
		jmp	loc_A822B
; ---------------------------------------------------------------------------

loc_A8A07:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+33Cj
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	ebx, [ebp+var_38]
		mov	ecx, [ebp+var_2C]
		mov	esi, [ebp+var_3C]
		mov	edi, [ebp+var_40]
		mov	[edx+1Ch], ebx
		mov	[edx+20h], ecx
		mov	edx, [ebp+var_20]
		mov	eax, esi
		sub	eax, [edx]
		mov	[edx+4], edi
		mov	[edx], esi
		add	[edx+8], eax
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_1C]
		mov	[edx+34h], eax
		mov	eax, [ebp+var_30]
		mov	[ebp+arg_8], eax
		jmp	loc_A8260
; ---------------------------------------------------------------------------

loc_A8A42:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+80Aj
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_24]
		mov	edx, [edx+2Ch]
		sub	edx, eax
		mov	[ebp+var_30], edx
		jmp	short loc_A89E5
; ---------------------------------------------------------------------------

loc_A8A52:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+5A0j
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+28h]
		cmp	eax, edx
		jz	loc_A8776
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_24], edx
		sub	ecx, edx
		cmp	eax, edx
		mov	[ebp+var_30], ecx
		jbe	loc_A8776
		sub	eax, edx
		sub	eax, 1
		mov	[ebp+var_30], eax
		jmp	loc_A8776
; ---------------------------------------------------------------------------

loc_A8A80:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+66Aj
		mov	[ebp+var_24], eax
		jmp	loc_A8722
; ---------------------------------------------------------------------------

loc_A8A88:				; CODE XREF: inflate_codes(inflate_blocks_state	*,z_stream_s *,int)+71Aj
		mov	edx, [ebp+var_28]
		mov	dword ptr [edx], 9
		mov	edx, [ebp+var_20]
		mov	dword ptr [edx+18h], offset aInvalidDistanc ; "invalid distance	code"
		jmp	loc_A8388	; jumptable 000A8310 case 9
_Z13inflate_codesP20inflate_blocks_stateP10z_stream_si endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate_blocks(inflate_blocks_state *, z_stream_s *, int)
_Z14inflate_blocksP20inflate_blocks_stateP10z_stream_si	proc near
					; CODE XREF: inflate(z_stream_s	*,int)+309p

var_60		= dword	ptr -60h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
n		= dword	ptr -34h
dest		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	edx, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	esi, [edx]
		mov	ebx, [ebx+20h]
		mov	edi, [edx+4]
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_2C], ebx
		mov	ebx, [edx+1Ch]
		mov	edx, [edx+34h]
		mov	[ebp+dest], edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		cmp	[ebp+dest], eax
		jnb	loc_A8CE0
		sub	eax, [ebp+dest]
		sub	eax, 1
		mov	[ebp+n], eax

loc_A8AE1:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+24Ej
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]

loc_A8AE6:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+4BDj
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+8C8j	...
		cmp	eax, 9		; switch 10 cases
		jbe	loc_A8CD8
		mov	ecx, [ebp+arg_0] ; jumptable 000A8CD8 default case
		mov	eax, esi
		mov	edx, [ebp+var_2C]
		mov	[ecx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ecx+20h], edx
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], eax
		mov	[ecx+34h], esi
		mov	dword ptr [esp+8], 0FFFFFFFEh
		mov	[esp+4], ebx
		mov	[esp], ecx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)

loc_A8B24:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+375j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+7E8j	...
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A8B2F:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+570j
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+arg_0]
		mov	ecx, esi
		add	ecx, 101h
		add	eax, 1
		mov	esi, [ebp+var_60]
		mov	[ebp+var_28], 9
		mov	[ebp+var_24], 6
		mov	dword ptr [edx+14h], 0
		mov	edx, [ebp+arg_4]
		mov	[esp+20h], edx
		mov	edx, [ebp+arg_0]
		mov	edx, [edx+24h]
		mov	[esp+1Ch], edx
		lea	edx, [ebp+var_1C]
		mov	[esp+18h], edx
		lea	edx, [ebp+var_20]
		mov	[esp+14h], edx
		lea	edx, [ebp+var_24]
		mov	[esp+10h], edx
		lea	edx, [ebp+var_28]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_0]
		mov	edx, [edx+0Ch]
		mov	[esp], ecx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	_Z21inflate_trees_dynamicjjPjS_S_PP14inflate_huft_sS2_S1_P10z_stream_s ; inflate_trees_dynamic(uint,uint,uint *,uint *,uint *,inflate_huft_s **,inflate_huft_s **,inflate_huft_s *,z_stream_s *)
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		mov	edx, [ebp+arg_4]
		mov	[esp+4], ecx
		mov	ecx, [edx+28h]
		mov	[ebp+var_48], eax
		mov	[esp], ecx
		call	dword ptr [edx+24h]
		mov	eax, [ebp+var_48]
		test	eax, eax
		jnz	loc_A973D
		mov	edx, [ebp+var_1C]
		mov	dword ptr [esp+8], 1Ch
		mov	ecx, [ebp+var_20]
		mov	dword ptr [esp+4], 1
		mov	eax, [ebp+arg_4]
		mov	[ebp+n], edx
		mov	edx, [ebp+var_24]
		mov	[ebp+var_38], ecx
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_3C], edx
		mov	edx, [eax+28h]
		mov	[ebp+var_48], ecx
		mov	[esp], edx
		call	dword ptr [eax+20h]
		mov	ecx, [ebp+var_48]
		test	eax, eax
		jz	loc_A96D7
		mov	[eax+10h], cl
		mov	edx, [ebp+var_38]
		movzx	ecx, byte ptr [ebp+var_3C]
		mov	dword ptr [eax], 0
		mov	[eax+14h], edx
		mov	edx, [ebp+arg_0]
		mov	[eax+11h], cl
		mov	ecx, [ebp+n]
		mov	[eax+18h], ecx
		mov	[edx+4], eax
		mov	dword ptr [edx], 6
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_A8C30:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		mov	ecx, [ebp+arg_0] ; jumptable 000A8CD8 case 6
		mov	eax, esi
		mov	edx, [ebp+var_2C]
		mov	[ecx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ecx+20h], edx
		mov	edx, [ebp+arg_8]
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], eax
		mov	[ecx+34h], esi
		mov	[esp+8], edx
		mov	[esp+4], ebx
		mov	[esp], ecx
		call	_Z13inflate_codesP20inflate_blocks_stateP10z_stream_si ; inflate_codes(inflate_blocks_state *,z_stream_s *,int)
		cmp	eax, 1
		jnz	loc_A9663
		mov	esi, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [esi+4]
		mov	[esp+4], eax
		mov	eax, [edx+28h]
		mov	[esp], eax
		call	dword ptr [edx+24h]
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edx, [edx+20h]
		mov	esi, [ebx]
		mov	edi, [ebx+4]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+arg_0]
		mov	ebx, [edx+1Ch]
		mov	edx, [edx+34h]
		mov	[ebp+dest], edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		cmp	[ebp+dest], eax
		jnb	loc_A9370
		sub	eax, [ebp+dest]
		sub	eax, 1
		mov	[ebp+n], eax

loc_A8CB8:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+8DEj
		mov	edx, [ebp+arg_0]
		mov	ecx, [edx+18h]
		test	ecx, ecx
		jnz	loc_A8D98
		mov	dword ptr [edx], 0
		xor	eax, eax
		mov	[ebp+arg_8], 0
		lea	esi, [esi+0]

loc_A8CD8:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+49j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+53Aj	...
		jmp	ds:off_1EE148[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_A8CE0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+32j
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+dest]
		mov	edx, [edx+2Ch]
		sub	edx, ecx
		mov	[ebp+n], edx
		jmp	loc_A8AE1
; ---------------------------------------------------------------------------
		align 8

loc_A8CF8:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+341j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 8

loc_A8D01:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		mov	ecx, [ebp+arg_0] ; jumptable 000A8CD8 case 8
		mov	eax, esi
		mov	edx, [ebp+var_2C]
		mov	[ecx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ecx+20h], edx
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], eax
		mov	[ecx+34h], esi
		mov	[esp+4], ebx
		mov	dword ptr [esp+8], 1
		mov	[esp], ecx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A8D41:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+48Fj
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 9
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+18h], offset aInvalidStoredB ; "invalid stored block lengths"
		lea	esi, [esi+0]

loc_A8D58:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+BEEj	...
		mov	ecx, [ebp+arg_0] ; jumptable 000A8CD8 case 9
		mov	eax, esi
		mov	edx, [ebp+var_2C]
		mov	[ecx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ecx+20h], edx
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], eax
		mov	[ecx+34h], esi
		mov	[esp+4], ebx
		mov	dword ptr [esp+8], 0FFFFFFFDh
		mov	[esp], ecx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A8D98:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+220j
		mov	edx, [ebp+arg_0]
		mov	[ebp+arg_8], 0
		mov	dword ptr [edx], 7
		nop
		lea	esi, [esi+0]

loc_A8DB0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		mov	ecx, [ebp+dest]	; jumptable 000A8CD8 case 7
		mov	edx, [ebp+arg_0]
		mov	[edx+34h], ecx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [edx+34h]
		cmp	edx, [ecx+30h]
		mov	[ebp+dest], edx
		jz	loc_A8CF8
		mov	edx, [ebp+var_2C]

loc_A8DEA:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+C98j
		mov	[ecx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ecx+20h], edx
		mov	edx, esi
		sub	edx, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], edx
		mov	[ecx+34h], esi
		mov	[esp+8], eax
		mov	[esp+4], ebx
		mov	[esp], ecx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		jmp	loc_A8B24
; ---------------------------------------------------------------------------
		align 10h

loc_A8E20:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		cmp	ebx, 0Dh	; jumptable 000A8CD8 case 3
		ja	short loc_A8E61
		test	edi, edi
		jz	loc_A929C
		mov	edx, [ebp+var_2C]
		mov	ecx, ebx
		jmp	short loc_A8E40
; ---------------------------------------------------------------------------
		align 8

loc_A8E38:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+3B3j
		test	edi, edi
		jz	loc_A9290

loc_A8E40:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+392j
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ecx, 0Dh
		jbe	short loc_A8E38
		mov	[ebp+var_2C], edx
		mov	ebx, ecx
		mov	[ebp+arg_8], 0

loc_A8E61:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+383j
		mov	ecx, [ebp+var_2C]
		mov	eax, [ebp+var_2C]
		mov	edx, [ebp+arg_0]
		and	ecx, 1Fh
		and	eax, 3FFFh
		cmp	ecx, 1Dh
		mov	[edx+4], eax
		ja	loc_A967B
		shr	eax, 5
		and	eax, 1Fh
		cmp	eax, 1Dh
		ja	loc_A967B
		mov	edx, [ebp+arg_4]
		lea	eax, [ecx+eax+102h]
		mov	dword ptr [esp+8], 4
		mov	[esp+4], eax
		mov	eax, [edx+28h]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		mov	edx, [ebp+arg_0]
		test	eax, eax
		mov	[edx+0Ch], eax
		jz	loc_A95FE
		mov	edx, [ebp+arg_0]
		sub	ebx, 0Eh
		mov	[ebp+n], 0
		shr	[ebp+var_2C], 0Eh
		mov	dword ptr [edx+8], 0
		mov	dword ptr [edx], 4
		jmp	loc_A90B9
; ---------------------------------------------------------------------------
		align 10h

loc_A8EE0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		cmp	ebx, 1Fh	; jumptable 000A8CD8 case 1
		ja	short loc_A8F21
		test	edi, edi
		jz	loc_A929C
		mov	edx, [ebp+var_2C]
		mov	ecx, ebx
		jmp	short loc_A8F00
; ---------------------------------------------------------------------------
		align 8

loc_A8EF8:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+473j
		test	edi, edi
		jz	loc_A9290

loc_A8F00:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+452j
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ecx, 1Fh
		jbe	short loc_A8EF8
		mov	[ebp+var_2C], edx
		mov	ebx, ecx
		mov	[ebp+arg_8], 0

loc_A8F21:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+443j
		mov	edx, [ebp+var_2C]
		movzx	eax, word ptr [ebp+var_2C]
		not	edx
		shr	edx, 10h
		cmp	edx, eax
		jnz	loc_A8D41
		mov	ebx, [ebp+arg_0]
		test	edx, edx
		mov	eax, 2
		mov	[ebx+4], edx
		jnz	short loc_A8F4F
		cmp	dword ptr [ebx+18h], 1
		sbb	eax, eax
		not	eax
		and	eax, 7

loc_A8F4F:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+4A2j
		mov	edx, [ebp+arg_0]
		xor	ebx, ebx
		mov	[ebp+var_2C], 0
		mov	[edx], eax
		jmp	loc_A8AE6
; ---------------------------------------------------------------------------
		align 8

loc_A8F68:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		cmp	ebx, 2		; jumptable 000A8CD8 case 0
		ja	short loc_A8F8F
		test	edi, edi
		jz	loc_A929C
		movzx	eax, byte ptr [esi]
		mov	ecx, ebx
		sub	edi, 1
		add	esi, 1
		add	ebx, 8
		mov	[ebp+arg_8], 0
		shl	eax, cl
		or	[ebp+var_2C], eax

loc_A8F8F:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+4CBj
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+arg_0]
		and	eax, 7
		shr	eax, 1
		and	ecx, 1
		cmp	eax, 2
		mov	[edx+18h], ecx
		jz	loc_A94AE
		cmp	eax, 3
		jz	loc_A9581
		cmp	eax, 1
		jz	loc_A9524
		shr	[ebp+var_2C], 3
		sub	ebx, 3
		mov	dword ptr [edx], 1
		mov	ecx, ebx
		mov	eax, 1
		and	ecx, 7
		sub	ebx, ecx
		shr	[ebp+var_2C], cl
		jmp	loc_A8CD8
; ---------------------------------------------------------------------------
		align 10h

loc_A8FE0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		mov	edx, [ebp+arg_0] ; jumptable 000A8CD8 case 5
		mov	[ebp+var_60], esi
		mov	edx, [edx+8]
		mov	[ebp+n], edx
		mov	edx, [ebp+var_2C]

loc_A8FEF:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+604j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+72Aj	...
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+4]
		mov	esi, eax
		shr	eax, 5
		and	esi, 1Fh
		and	eax, 1Fh
		lea	ecx, [esi+eax+102h]
		mov	[ebp+var_38], ecx
		mov	ecx, [ebp+n]
		cmp	[ebp+var_38], ecx
		jbe	loc_A8B2F
		mov	esi, [ebp+arg_0]
		mov	esi, [esi+10h]
		cmp	ebx, esi
		mov	[ebp+var_2C], esi
		jnb	short loc_A9060
		test	edi, edi
		jz	loc_A95D4
		mov	ecx, ebx
		mov	esi, [ebp+var_60]
		mov	ebx, [ebp+var_2C]
		jmp	short loc_A9040
; ---------------------------------------------------------------------------
		align 4

loc_A9038:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+5B2j
		test	edi, edi
		jz	loc_A9290

loc_A9040:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+593j
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ebx, ecx
		ja	short loc_A9038
		mov	[ebp+var_60], esi
		mov	ebx, ecx
		mov	[ebp+arg_8], 0

loc_A9060:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+581j
		mov	esi, [ebp+var_2C]
		mov	eax, edx
		and	eax, dword ptr ds:_ZL12inflate_mask[esi*4] ; inflate_mask
		mov	esi, [ebp+arg_0]
		shl	eax, 3
		add	eax, [esi+14h]
		movzx	ecx, byte ptr [eax+1]
		mov	eax, [eax+4]
		mov	[ebp+var_3C], ecx
		cmp	eax, 0Fh
		mov	[ebp+var_2C], eax
		ja	loc_A93A0
		mov	esi, [esi+0Ch]
		shr	edx, cl
		sub	ebx, ecx
		mov	ecx, [ebp+n]
		mov	[esi+ecx*4], eax
		mov	esi, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+n], ecx
		mov	[esi+8], ecx
		jmp	loc_A8FEF
; ---------------------------------------------------------------------------
		align 10h

loc_A90B0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		mov	edx, [ebp+arg_0] ; jumptable 000A8CD8 case 4
		mov	edx, [edx+8]
		mov	[ebp+n], edx

loc_A90B9:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+438j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		shr	eax, 0Ah
		add	eax, 4
		cmp	[ebp+n], eax
		jnb	short loc_A913C
		mov	edx, [ebp+var_2C]
		mov	[ebp+var_38], esi
		mov	ecx, ebx

loc_A90D2:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+692j
		cmp	ecx, 2
		ja	short loc_A90FC
		test	edi, edi
		jz	loc_A94DE
		mov	ebx, [ebp+var_38]
		sub	edi, 1
		mov	[ebp+arg_8], 0
		movzx	eax, byte ptr [ebx]
		add	ebx, 1
		mov	[ebp+var_38], ebx
		shl	eax, cl
		add	ecx, 8
		or	edx, eax

loc_A90FC:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+635j
		mov	eax, [ebp+n]
		mov	esi, edx
		sub	ecx, 3
		mov	ebx, [ebp+arg_0]
		and	esi, 7
		shr	edx, 3
		add	[ebp+n], 1
		mov	eax, dword ptr ds:_ZL6border[eax*4] ; border
		mov	ebx, [ebx+0Ch]
		mov	[ebx+eax*4], esi
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+n]
		mov	eax, [ebx+4]
		mov	[ebx+8], esi
		shr	eax, 0Ah
		add	eax, 4
		cmp	eax, esi
		ja	short loc_A90D2
		mov	esi, [ebp+var_38]
		mov	[ebp+var_2C], edx
		mov	ebx, ecx

loc_A913C:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+628j
		cmp	[ebp+n], 12h
		ja	short loc_A916F
		mov	eax, [ebp+n]
		mov	[ebp+var_38], edi
		mov	edx, [ebp+arg_0]
		nop
		lea	esi, [esi+0]

loc_A9150:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+6CAj
		mov	edi, dword ptr ds:_ZL6border[eax*4] ; border
		add	eax, 1
		mov	ecx, [edx+0Ch]
		cmp	eax, 13h
		mov	dword ptr [ecx+edi*4], 0
		mov	[edx+8], eax
		jnz	short loc_A9150
		mov	edi, [ebp+var_38]

loc_A916F:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+6A0j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+10h], 7
		mov	edx, [ebp+arg_4]
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+24h]
		mov	[esp+0Ch], eax
		mov	eax, edx
		add	eax, 14h
		mov	[esp+8], eax
		sub	eax, 4
		mov	[esp+4], eax
		mov	eax, [edx+0Ch]
		mov	[esp], eax
		call	_Z18inflate_trees_bitsPjS_PP14inflate_huft_sS1_P10z_stream_s ; inflate_trees_bits(uint *,uint *,inflate_huft_s **,inflate_huft_s *,z_stream_s *)
		test	eax, eax
		jnz	loc_A9711
		mov	edx, [ebp+arg_0]
		mov	[ebp+n], 0
		mov	[ebp+var_60], esi
		mov	dword ptr [edx+8], 0
		mov	dword ptr [edx], 5
		mov	edx, [ebp+var_2C]
		jmp	loc_A8FEF
; ---------------------------------------------------------------------------
		align 10h

loc_A91D0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int):loc_A8CD8j
					; DATA XREF: .rodata:off_1EE148o
		test	edi, edi	; jumptable 000A8CD8 case 2
		jz	loc_A929C
		mov	eax, [ebp+n]
		test	eax, eax
		jnz	loc_A9310
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		cmp	eax, [ebp+dest]
		jz	loc_A92DF

loc_A91F2:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+868j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+BF6j
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+dest]
		mov	[edx+34h], ecx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_38], eax
		mov	edx, [edx+34h]
		mov	[ebp+dest], edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		cmp	[ebp+dest], eax
		jb	loc_A94C8
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		mov	ecx, edx
		sub	ecx, [ebp+dest]
		mov	[ebp+n], ecx

loc_A923D:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+A39j
		cmp	[ebp+dest], edx
		jz	loc_A9635

loc_A9246:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+B9Dj
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+BB0j	...
		mov	eax, [ebp+n]
		test	eax, eax
		jnz	loc_A9310
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+var_2C]
		mov	ecx, [ebp+var_38]
		mov	[eax+1Ch], ebx
		mov	ebx, [ebp+arg_0]
		mov	[eax+20h], edx
		mov	edx, [ebp+arg_4]
		mov	eax, esi
		sub	eax, [edx]
		mov	[edx], esi
		mov	esi, [ebp+dest]
		mov	[edx+4], edi
		add	[edx+8], eax
		mov	[ebx+34h], esi
		mov	[esp+8], ecx
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		jmp	loc_A8B24
; ---------------------------------------------------------------------------
		align 10h

loc_A9290:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+39Aj
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+45Aj	...
		mov	[ebp+var_2C], edx
		mov	ebx, ecx
		mov	[ebp+arg_8], 0

loc_A929C:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+387j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+447j	...
		mov	ecx, [ebp+arg_0]
		mov	eax, esi
		mov	edx, [ebp+var_2C]
		mov	[ecx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ecx+20h], edx
		mov	edx, [ebp+arg_8]
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	dword ptr [ebx+4], 0
		add	[ebx+8], eax
		mov	[ecx+34h], esi
		mov	[esp+4], ebx
		mov	[esp+8], edx
		mov	[esp], ecx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A92DF:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+74Cj
		mov	ecx, edx
		mov	edx, [edx+30h]
		mov	ecx, [ecx+28h]
		cmp	edx, ecx
		mov	[ebp+dest], ecx
		jz	loc_A9693
		sub	eax, ecx
		cmp	edx, ecx
		mov	[ebp+n], eax
		jbe	short loc_A9303
		sub	edx, ecx
		sub	edx, 1
		mov	[ebp+n], edx

loc_A9303:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+859j
		mov	eax, [ebp+n]
		test	eax, eax
		jz	loc_A91F2
		db	66h
		nop

loc_A9310:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+73Dj
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+7ABj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+dest]
		mov	edx, [eax+4]
		mov	[esp+4], esi	; src
		mov	[esp], ecx	; dest
		cmp	edi, edx
		cmovbe	edx, edi
		cmp	edx, [ebp+n]
		cmova	edx, [ebp+n]
		mov	[esp+8], edx	; n
		mov	[ebp+var_48], edx
		call	memcpy
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_48]
		mov	eax, [ecx+4]
		add	[ebp+dest], edx
		add	esi, edx
		sub	edi, edx
		sub	[ebp+n], edx
		sub	eax, edx
		test	eax, eax
		mov	[ecx+4], eax
		jnz	short loc_A9388
		cmp	dword ptr [ecx+18h], 1
		mov	[ebp+arg_8], 0
		sbb	eax, eax
		not	eax
		and	eax, 7
		mov	[ecx], eax
		jmp	loc_A8AE6
; ---------------------------------------------------------------------------
		align 10h

loc_A9370:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+209j
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+dest]
		mov	edx, [edx+2Ch]
		sub	edx, ecx
		mov	[ebp+n], edx
		jmp	loc_A8CB8
; ---------------------------------------------------------------------------
		align 8

loc_A9388:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+8B2j
		mov	edx, [ebp+arg_0]
		mov	[ebp+arg_8], 0
		mov	eax, [edx]
		jmp	loc_A8AE6
; ---------------------------------------------------------------------------
		align 10h

loc_A93A0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+5E5j
		cmp	[ebp+var_2C], 12h
		mov	[ebp+var_40], 7
		mov	[ebp+var_44], 0Bh
		jz	short loc_A93C4
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_44], 3
		sub	eax, 0Eh
		mov	[ebp+var_40], eax

loc_A93C4:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+912j
		mov	eax, [ebp+var_40]
		add	eax, [ebp+var_3C]
		cmp	ebx, eax
		jnb	short loc_A9408
		test	edi, edi
		jz	loc_A95D4
		mov	ecx, ebx
		mov	esi, [ebp+var_60]
		mov	ebx, eax
		jmp	short loc_A93E8
; ---------------------------------------------------------------------------
		align 10h

loc_A93E0:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+95Aj
		test	edi, edi
		jz	loc_A9290

loc_A93E8:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+93Dj
		movzx	eax, byte ptr [esi]
		sub	edi, 1
		add	esi, 1
		shl	eax, cl
		add	ecx, 8
		or	edx, eax
		cmp	ecx, ebx
		jb	short loc_A93E0
		mov	[ebp+var_60], esi
		mov	ebx, ecx
		mov	[ebp+arg_8], 0

loc_A9408:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+92Cj
		movzx	ecx, byte ptr [ebp+var_3C]
		mov	esi, [ebp+var_44]
		sub	ebx, [ebp+var_3C]
		shr	edx, cl
		mov	ecx, [ebp+var_40]
		mov	eax, edx
		and	eax, dword ptr ds:_ZL12inflate_mask[ecx*4] ; inflate_mask
		shr	edx, cl
		sub	ebx, ecx
		add	esi, eax
		mov	eax, [ebp+n]
		add	eax, esi
		cmp	[ebp+var_38], eax
		mov	[ebp+var_3C], eax
		jb	loc_A96A3
		cmp	[ebp+var_2C], 10h
		mov	ecx, [ebp+n]
		setz	al
		test	ecx, ecx
		jz	loc_A969B
		test	al, al
		jnz	loc_A95DF

loc_A9451:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+BFDj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	ecx, [eax+0Ch]

loc_A945E:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+B4Fj
		mov	eax, [ebp+n]
		mov	[ebp+var_38], edi
		mov	[ebp+n], edx
		mov	edi, [ebp+var_2C]
		mov	edx, esi
		mov	[ebp+var_2C], ebx
		mov	esi, [ebp+var_60]
		shl	eax, 2
		jmp	short loc_A9486
; ---------------------------------------------------------------------------
		align 10h

loc_A9480:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+9EFj
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+0Ch]

loc_A9486:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+9D5j
		mov	[ecx+eax], edi
		add	eax, 4
		sub	edx, 1
		jnz	short loc_A9480
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_60], esi
		mov	esi, [ebp+arg_0]
		mov	edx, [ebp+n]
		mov	edi, [ebp+var_38]
		mov	ebx, [ebp+var_2C]
		mov	[ebp+n], eax
		mov	[esi+8], eax
		jmp	loc_A8FEF
; ---------------------------------------------------------------------------

loc_A94AE:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+506j
		mov	edx, [ebp+arg_0]
		sub	ebx, 3
		mov	eax, 3
		shr	[ebp+var_2C], 3
		mov	dword ptr [edx], 3
		jmp	loc_A8CD8
; ---------------------------------------------------------------------------

loc_A94C8:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+789j
		mov	edx, eax
		mov	ecx, [ebp+arg_0]
		sub	edx, [ebp+dest]
		sub	edx, 1
		mov	[ebp+n], edx
		mov	edx, [ecx+2Ch]
		jmp	loc_A923D
; ---------------------------------------------------------------------------

loc_A94DE:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+639j
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+var_38]
		mov	ebx, [ebp+arg_0]
		mov	[eax+20h], edx
		mov	edx, [ebp+arg_4]
		mov	[eax+1Ch], ecx
		mov	eax, esi
		sub	eax, [edx]
		mov	[edx], esi
		mov	esi, [ebp+dest]
		mov	dword ptr [edx+4], 0
		add	[edx+8], eax
		mov	[ebx+34h], esi
		mov	edx, [ebp+arg_8]
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	[esp+8], edx
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		jmp	loc_A8B24
; ---------------------------------------------------------------------------

loc_A9524:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+518j
		mov	edx, [ebp+arg_4]
		mov	dword ptr [esp+8], 1Ch
		mov	dword ptr [esp+4], 1
		mov	eax, [edx+28h]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		test	eax, eax
		jz	loc_A95F4
		mov	edx, [ebp+arg_0]
		mov	dword ptr [eax], 0
		sub	ebx, 3
		mov	byte ptr [eax+10h], 9
		mov	byte ptr [eax+11h], 5
		shr	[ebp+var_2C], 3
		mov	dword ptr [eax+14h], offset _ZL8fixed_tl ; fixed_tl
		mov	dword ptr [eax+18h], offset _ZL8fixed_td ; fixed_td
		mov	[edx+4], eax
		mov	eax, 6
		mov	dword ptr [edx], 6
		jmp	loc_A8CD8
; ---------------------------------------------------------------------------

loc_A9581:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+50Fj
		mov	edx, [ebp+arg_0]
		sub	ebx, 3
		mov	eax, [ebp+var_2C]
		mov	dword ptr [edx], 9
		mov	edx, [ebp+arg_4]
		shr	eax, 3
		mov	dword ptr [edx+18h], offset aInvalidBlockTy ; "invalid block type"
		mov	edx, [ebp+arg_0]
		mov	[edx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[edx+20h], eax
		mov	eax, esi
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], eax
		mov	[edx+34h], esi
		mov	dword ptr [esp+8], 0FFFFFFFDh
		mov	[esp+4], ebx
		mov	[esp], edx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		jmp	loc_A8B24
; ---------------------------------------------------------------------------

loc_A95D4:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+585j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+930j
		mov	[ebp+var_2C], edx
		mov	esi, [ebp+var_60]
		jmp	loc_A929C
; ---------------------------------------------------------------------------

loc_A95DF:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+9ABj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		mov	eax, [ebp+n]
		mov	eax, [ecx+eax*4-4]
		mov	[ebp+var_2C], eax
		jmp	loc_A945E
; ---------------------------------------------------------------------------

loc_A95F4:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+AA2j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+4], 0

loc_A95FE:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+414j
		mov	ecx, [ebp+var_2C]
		mov	[edx+1Ch], ebx
		mov	eax, esi
		mov	ebx, [ebp+arg_4]
		mov	[edx+20h], ecx
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], eax
		mov	[edx+34h], esi
		mov	dword ptr [esp+8], 0FFFFFFFCh
		mov	[esp+4], ebx
		mov	[esp], edx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		jmp	loc_A8B24
; ---------------------------------------------------------------------------

loc_A9635:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+7A0j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+28h]
		cmp	eax, edx
		jz	loc_A9246
		mov	ecx, [ebp+dest]
		mov	[ebp+dest], edx
		sub	ecx, edx
		cmp	eax, edx
		mov	[ebp+n], ecx
		jbe	loc_A9246
		sub	eax, edx
		sub	eax, 1
		mov	[ebp+n], eax
		jmp	loc_A9246
; ---------------------------------------------------------------------------

loc_A9663:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+1C7j
		mov	[esp+4], ebx
		mov	ebx, [ebp+arg_0]
		mov	[esp+8], eax
		mov	[esp], ebx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		jmp	loc_A8B24
; ---------------------------------------------------------------------------

loc_A967B:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+3D8j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+3E7j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 9
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+18h], offset aTooManyLengthO ; "too many	length or distance symbols"
		jmp	loc_A8D58	; jumptable 000A8CD8 case 9
; ---------------------------------------------------------------------------

loc_A9693:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+84Cj
		mov	[ebp+dest], eax
		jmp	loc_A91F2
; ---------------------------------------------------------------------------

loc_A969B:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+9A3j
		test	al, al
		jz	loc_A9451

loc_A96A3:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+991j
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+arg_0]
		mov	esi, [ebp+var_60]
		mov	eax, [edx+0Ch]
		mov	edx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [edx+28h]
		mov	[esp], eax
		call	dword ptr [edx+24h]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 9
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+18h], offset aInvalidBitLeng ; "invalid bit length repeat"
		jmp	loc_A8D58	; jumptable 000A8CD8 case 9
; ---------------------------------------------------------------------------

loc_A96D7:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+158j
		mov	ecx, [ebp+arg_0]
		mov	eax, esi
		mov	edx, [ebp+var_2C]
		mov	[ecx+1Ch], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ecx+20h], edx
		sub	eax, [ebx]
		mov	[ebx], esi
		mov	esi, [ebp+dest]
		mov	[ebx+4], edi
		add	[ebx+8], eax
		mov	[ecx+34h], esi

loc_A96F8:				; DATA XREF: .data:g_CCLanguageLookupo
		mov	dword ptr [esp+8], 0FFFFFFFCh
		mov	[esp+4], ebx
		mov	[esp], ecx
		call	_Z13inflate_flushP20inflate_blocks_stateP10z_stream_si ; inflate_flush(inflate_blocks_state *,z_stream_s *,int)
		jmp	loc_A8B24
; ---------------------------------------------------------------------------

loc_A9711:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+707j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		mov	ecx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [ecx+28h]
		mov	[ebp+var_48], eax
		mov	[esp], edx
		call	dword ptr [ecx+24h]
		mov	eax, [ebp+var_48]
		cmp	eax, 0FFFFFFFDh
		jz	short loc_A9742

loc_A9732:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+CA0j
					; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+CABj
		mov	edx, [ebp+var_2C]
		mov	ecx, [ebp+arg_0]
		jmp	loc_A8DEA
; ---------------------------------------------------------------------------

loc_A973D:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+119j
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_A9732

loc_A9742:				; CODE XREF: inflate_blocks(inflate_blocks_state *,z_stream_s *,int)+C90j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 9
		jmp	short loc_A9732
_Z14inflate_blocksP20inflate_blocks_stateP10z_stream_si	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; get_crc_table(void)
_Z13get_crc_tablev proc	near
		push	ebp
		mov	eax, offset _ZL9crc_table_0 ; crc_table
		mov	ebp, esp
		pop	ebp
		retn
_Z13get_crc_tablev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ucrc32(unsigned long,	unsigned char  const*, unsigned	int)
_Z6ucrc32mPKhj	proc near		; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+131p
					; unzReadCurrentFile(unz_s *,void *,uint)+1B0p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_4]
		push	esi
		push	ebx
		mov	edi, [ebp+arg_8]
		test	edx, edx
		jz	loc_A9877
		mov	eax, [ebp+arg_0]
		cmp	edi, 7
		not	eax
		jbe	loc_A9871
		mov	edx, [ebp+arg_4]
		mov	ecx, edi
		lea	esi, [esi+0]

loc_A9790:				; CODE XREF: ucrc32(ulong,uchar	 const*,uint)+F8j
		movzx	ebx, byte ptr [edx]
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+1]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+2]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+3]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+4]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+5]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+6]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+7]
		add	edx, 8
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table_0[esi*4] ; crc_table
		sub	ecx, 8
		cmp	ecx, 7
		ja	loc_A9790
		mov	ecx, [ebp+arg_4]
		lea	edx, [edi-8]
		and	edi, 7
		shr	edx, 3
		lea	ecx, [ecx+edx*8+8]
		mov	[ebp+arg_4], ecx

loc_A9871:				; CODE XREF: ucrc32(ulong,uchar	 const*,uint)+1Ej
		test	edi, edi
		jnz	short loc_A9880

loc_A9875:				; CODE XREF: ucrc32(ulong,uchar	 const*,uint)+140j
		not	eax

loc_A9877:				; CODE XREF: ucrc32(ulong,uchar	 const*,uint)+10j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A9880:				; CODE XREF: ucrc32(ulong,uchar	 const*,uint)+113j
					; ucrc32(ulong,uchar  const*,uint)+13Ej
		mov	ebx, [ebp+arg_4]
		movzx	edx, byte ptr [ebx]
		add	ebx, 1
		mov	[ebp+arg_4], ebx
		xor	edx, eax
		shr	eax, 8
		movzx	edx, dl
		xor	eax, dword ptr ds:_ZL9crc_table_0[edx*4] ; crc_table
		sub	edi, 1
		jnz	short loc_A9880
		jmp	short loc_A9875
_Z6ucrc32mPKhj	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; zlibVersion(void)
_Z11zlibVersionv proc near
		push	ebp
		mov	eax, offset a1_1_3 ; "1.1.3"
		mov	ebp, esp
		pop	ebp
		retn
_Z11zlibVersionv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; zError(int)
_Z6zErrori	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 2
		mov	ebp, esp
		sub	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, ds:_ZL8z_errmsg[eax*4] ; z_errmsg
		retn
_Z6zErrori	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflateReset(z_stream_s *)
_Z12inflateResetP10z_stream_s proc near	; CODE XREF: inflateInit2(z_stream_s *)+A9p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short locret_A9938
		mov	ecx, [eax+1Ch]
		test	ecx, ecx
		jz	short locret_A9938
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+18h], 0
		cmp	dword ptr [ecx+0Ch], 1
		sbb	edx, edx
		not	edx
		and	edx, 7
		mov	[ecx], edx
		mov	dword ptr [esp+8], 0
		mov	[esp+4], eax
		mov	eax, [eax+1Ch]
		mov	eax, [eax+14h]
		mov	[esp], eax
		call	_Z20inflate_blocks_resetP20inflate_blocks_stateP10z_stream_sPm ; inflate_blocks_reset(inflate_blocks_state *,z_stream_s	*,ulong	*)
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

locret_A9938:				; CODE XREF: inflateReset(z_stream_s *)+Bj
					; inflateReset(z_stream_s *)+12j
		leave
		mov	eax, 0FFFFFFFEh
		retn
_Z12inflateResetP10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflateEnd(z_stream_s	*)
_Z10inflateEndP10z_stream_s proc near	; CODE XREF: inflateInit2(z_stream_s *):loc_A9A9Ap
					; unzCloseCurrentFile(unz_s *)+86p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_A9990
		mov	eax, [ebx+1Ch]
		test	eax, eax
		jz	short loc_A9990
		mov	edx, [ebx+24h]
		test	edx, edx
		jz	short loc_A9990
		mov	ecx, [eax+14h]
		test	ecx, ecx
		jz	short loc_A9975
		mov	[esp+4], ebx
		mov	[esp], ecx
		call	_Z19inflate_blocks_freeP20inflate_blocks_stateP10z_stream_s ; inflate_blocks_free(inflate_blocks_state *,z_stream_s *)
		mov	edx, [ebx+24h]
		mov	eax, [ebx+1Ch]

loc_A9975:				; CODE XREF: inflateEnd(z_stream_s *)+21j
		mov	[esp+4], eax
		mov	eax, [ebx+28h]
		mov	[esp], eax
		call	edx
		mov	dword ptr [ebx+1Ch], 0
		xor	eax, eax

loc_A998A:				; CODE XREF: inflateEnd(z_stream_s *)+55j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A9990:				; CODE XREF: inflateEnd(z_stream_s *)+Cj
					; inflateEnd(z_stream_s	*)+13j	...
		mov	eax, 0FFFFFFFEh
		jmp	short loc_A998A
_Z10inflateEndP10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflateInit2(z_stream_s *)
_Z12inflateInit2P10z_stream_s proc near	; CODE XREF: unzOpenCurrentFile(unz_s *)+11Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	loc_A9A8C
		mov	eax, [ebx+20h]
		mov	dword ptr [ebx+18h], 0
		test	eax, eax
		jz	loc_A9A60
		mov	esi, [ebx+24h]
		test	esi, esi
		jz	loc_A9A80

loc_A99D0:				; CODE XREF: inflateInit2(z_stream_s *)+D3j
					; inflateInit2(z_stream_s *)+E7j
		mov	dword ptr [esp+8], 18h
		mov	dword ptr [esp+4], 1
		mov	eax, [ebx+28h]
		mov	[esp], eax
		call	dword ptr [ebx+20h]
		test	eax, eax
		mov	[ebx+1Ch], eax
		jz	loc_A9A93
		mov	dword ptr [eax+14h], 0
		mov	edx, offset _Z7adler32mPKhj ; adler32(ulong,uchar  const*,uint)
		mov	eax, [ebx+1Ch]
		mov	dword ptr [eax+0Ch], 0
		mov	eax, [ebx+1Ch]
		mov	dword ptr [eax+0Ch], 1
		mov	eax, [ebx+1Ch]
		mov	dword ptr [eax+10h], 0Fh
		xor	eax, eax
		mov	esi, [ebx+1Ch]
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esp+8], 8000h
		mov	[esp], ebx
		test	ecx, ecx
		cmovz	eax, edx
		mov	[esp+4], eax
		call	_Z18inflate_blocks_newP10z_stream_sPFmmPKhjEj ;	inflate_blocks_new(z_stream_s *,ulong (*)(ulong,uchar  const*,uint),uint)
		test	eax, eax
		mov	[esi+14h], eax
		mov	[esp], ebx
		jz	short loc_A9A9A
		call	_Z12inflateResetP10z_stream_s ;	inflateReset(z_stream_s	*)
		xor	eax, eax

loc_A9A50:				; CODE XREF: inflateInit2(z_stream_s *)+F1j
					; inflateInit2(z_stream_s *)+F8j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A9A60:				; CODE XREF: inflateInit2(z_stream_s *)+1Fj
		mov	esi, [ebx+24h]
		mov	dword ptr [ebx+20h], offset _Z7zcallocPvjj ; zcalloc(void *,uint,uint)
		mov	dword ptr [ebx+28h], 0
		test	esi, esi
		jnz	loc_A99D0
		lea	esi, [esi+0]

loc_A9A80:				; CODE XREF: inflateInit2(z_stream_s *)+2Aj
		mov	dword ptr [ebx+24h], offset _Z6zcfreePvS_ ; zcfree(void	*,void *)
		jmp	loc_A99D0
; ---------------------------------------------------------------------------

loc_A9A8C:				; CODE XREF: inflateInit2(z_stream_s *)+Dj
		mov	eax, 0FFFFFFFEh
		jmp	short loc_A9A50
; ---------------------------------------------------------------------------

loc_A9A93:				; CODE XREF: inflateInit2(z_stream_s *)+4Ej
		mov	eax, 0FFFFFFFCh
		jmp	short loc_A9A50
; ---------------------------------------------------------------------------

loc_A9A9A:				; CODE XREF: inflateInit2(z_stream_s *)+A7j
		call	_Z10inflateEndP10z_stream_s ; inflateEnd(z_stream_s *)
		mov	eax, 0FFFFFFFCh
		jmp	short loc_A9A50
_Z12inflateInit2P10z_stream_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; inflate(z_stream_s *,	int)
_Z7inflateP10z_stream_si proc near	; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+192p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_A9AE9
		mov	edx, [ebx+1Ch]
		test	edx, edx
		jz	short loc_A9AE9
		mov	ecx, [ebx]
		test	ecx, ecx
		jz	short loc_A9AE9
		xor	ecx, ecx
		cmp	[ebp+arg_4], 4
		mov	eax, 0FFFFFFFBh
		mov	esi, 8421085h
		setnz	cl
		lea	ecx, [ecx+ecx*4-5]

loc_A9AE4:				; CODE XREF: inflate(z_stream_s	*,int)+149j
		cmp	dword ptr [edx], 0Dh
		jbe	short loc_A9B00

loc_A9AE9:				; CODE XREF: inflate(z_stream_s	*,int)+Ej
					; inflate(z_stream_s *,int)+15j ...
		mov	eax, 0FFFFFFFEh

loc_A9AEE:				; CODE XREF: inflate(z_stream_s	*,int)+6Dj
					; inflate(z_stream_s *,int)+9Cj ...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A9B00:				; CODE XREF: inflate(z_stream_s	*,int)+37j
		mov	edi, [edx]
		jmp	ds:off_1EE170[edi*4]
; ---------------------------------------------------------------------------
		align 10h

loc_A9B10:				; CODE XREF: inflate(z_stream_s	*,int)+352j
		mov	dword ptr [eax], 8
		mov	eax, ecx

loc_A9B18:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE190o
		mov	edx, [ebx+4]
		test	edx, edx
		jz	short loc_A9AEE
		sub	edx, 1
		mov	edi, [ebx+1Ch]
		add	dword ptr [ebx+8], 1
		mov	[ebx+4], edx
		mov	edx, [ebx]
		movzx	eax, byte ptr [edx]
		add	edx, 1
		shl	eax, 18h
		mov	[edi+8], eax
		mov	eax, [ebx+1Ch]
		mov	[ebx], edx
		mov	dword ptr [eax], 9
		mov	eax, ecx

loc_A9B47:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE194o
		mov	edx, [ebx+4]
		test	edx, edx
		jz	short loc_A9AEE
		sub	edx, 1
		mov	edi, [ebx+1Ch]
		add	dword ptr [ebx+8], 1
		mov	[ebx+4], edx
		mov	edx, [ebx]
		movzx	eax, byte ptr [edx]
		add	edx, 1
		shl	eax, 10h
		add	[edi+8], eax
		mov	[ebx], edx
		mov	eax, [ebx+1Ch]
		mov	dword ptr [eax], 0Ah
		mov	eax, ecx

loc_A9B76:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE198o
		mov	edx, [ebx+4]
		test	edx, edx
		jz	loc_A9AEE
		sub	edx, 1
		mov	edi, [ebx+1Ch]
		add	dword ptr [ebx+8], 1
		mov	[ebx+4], edx
		mov	edx, [ebx]
		movzx	eax, byte ptr [edx]
		add	edx, 1
		shl	eax, 8
		add	[edi+8], eax
		mov	[ebx], edx
		mov	eax, [ebx+1Ch]
		mov	dword ptr [eax], 0Bh
		mov	eax, ecx

loc_A9BA9:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE19Co
		mov	edx, [ebx+4]
		test	edx, edx
		jz	loc_A9AEE
		add	dword ptr [ebx+8], 1
		sub	edx, 1
		mov	eax, [ebx]
		mov	[ebx+4], edx
		mov	edx, [ebx+1Ch]
		movzx	edi, byte ptr [eax]
		add	eax, 1
		add	[edx+8], edi
		mov	[ebx], eax
		mov	eax, [ebx+1Ch]
		mov	edx, [eax+8]
		cmp	[eax+4], edx
		jz	loc_A9D61
		mov	dword ptr [eax], 0Dh
		mov	eax, [ebx+1Ch]
		mov	dword ptr [ebx+18h], offset aIncorrectDataC ; "incorrect data check"
		mov	dword ptr [eax+4], 5
		mov	eax, ecx

loc_A9BF6:				; CODE XREF: inflate(z_stream_s	*,int)+2ACj
					; inflate(z_stream_s *,int)+360j ...
		mov	edx, [ebx+1Ch]
		jmp	loc_A9AE4
; ---------------------------------------------------------------------------

loc_A9BFE:				; CODE XREF: inflate(z_stream_s	*,int)+3CCj
		mov	edx, [ebp+var_1C]
		mov	eax, ecx
		mov	dword ptr [edx], 2
		lea	esi, [esi+0]

loc_A9C10:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE178o
		mov	edx, [ebx+4]
		test	edx, edx
		jz	loc_A9AEE
		sub	edx, 1
		mov	esi, [ebx+1Ch]
		add	dword ptr [ebx+8], 1
		mov	[ebx+4], edx
		mov	edx, [ebx]
		movzx	eax, byte ptr [edx]
		add	edx, 1
		shl	eax, 18h
		mov	[esi+8], eax
		mov	eax, [ebx+1Ch]
		mov	[ebx], edx
		mov	dword ptr [eax], 3
		mov	eax, ecx

loc_A9C43:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE17Co
		mov	edx, [ebx+4]
		test	edx, edx
		jz	loc_A9AEE
		sub	edx, 1
		mov	esi, [ebx+1Ch]
		add	dword ptr [ebx+8], 1
		mov	[ebx+4], edx
		mov	edx, [ebx]
		movzx	eax, byte ptr [edx]
		add	edx, 1
		shl	eax, 10h
		add	[esi+8], eax
		mov	[ebx], edx
		mov	eax, [ebx+1Ch]
		mov	dword ptr [eax], 4
		mov	eax, ecx

loc_A9C76:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE180o
		mov	edx, [ebx+4]
		test	edx, edx
		jz	loc_A9AEE
		sub	edx, 1
		mov	esi, [ebx+1Ch]
		add	dword ptr [ebx+8], 1
		mov	[ebx+4], edx
		mov	edx, [ebx]
		movzx	eax, byte ptr [edx]
		add	edx, 1
		shl	eax, 8
		add	[esi+8], eax
		mov	[ebx], edx
		mov	eax, [ebx+1Ch]
		mov	dword ptr [eax], 5
		mov	eax, ecx

loc_A9CA9:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE184o
		mov	edx, [ebx+4]
		test	edx, edx
		jz	loc_A9AEE
		add	dword ptr [ebx+8], 1
		sub	edx, 1
		mov	eax, [ebx]
		mov	[ebx+4], edx
		mov	edx, [ebx+1Ch]
		movzx	ecx, byte ptr [eax]
		add	eax, 1
		add	[edx+8], ecx
		mov	[ebx], eax
		mov	eax, [ebx+1Ch]
		mov	edx, [eax+8]
		mov	[ebx+30h], edx
		mov	dword ptr [eax], 6
		add	esp, 2Ch
		mov	eax, 2
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A9CEA:				; CODE XREF: inflate(z_stream_s	*,int)+41Cj
		mov	dword ptr [eax], 1
		mov	eax, ecx

loc_A9CF2:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE174o
		mov	edx, [ebx+4]
		test	edx, edx
		jz	loc_A9AEE
		add	dword ptr [ebx+8], 1
		sub	edx, 1
		mov	eax, [ebx]
		mov	[ebx+4], edx
		movzx	edx, byte ptr [eax]
		add	eax, 1
		mov	[ebx], eax
		mov	eax, [ebx+1Ch]
		mov	[ebp+var_20], edx
		mov	edi, [eax+4]
		mov	[ebp+var_1C], eax
		shl	edi, 8
		add	edi, edx
		mov	eax, edi
		mul	esi
		mov	eax, edi
		sub	eax, edx
		shr	eax, 1
		add	edx, eax
		shr	edx, 4
		mov	eax, edx
		shl	eax, 5
		sub	eax, edx
		cmp	edi, eax
		jz	loc_A9E78
		mov	edx, [ebp+var_1C]
		mov	dword ptr [edx], 0Dh
		mov	eax, [ebx+1Ch]
		mov	dword ptr [ebx+18h], offset aIncorrectHeade ; "incorrect header	check"
		mov	dword ptr [eax+4], 5
		mov	eax, ecx
		jmp	loc_A9BF6
; ---------------------------------------------------------------------------

loc_A9D61:				; CODE XREF: inflate(z_stream_s	*,int)+127j
		mov	dword ptr [eax], 0Ch
		mov	esi, esi
		lea	edi, [edi+0]

loc_A9D70:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE1A0o
		add	esp, 2Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_A9D80:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE188o
		mov	dword ptr [edx], 0Dh
		mov	eax, [ebx+1Ch]
		mov	dword ptr [ebx+18h], offset aNeedDictionary ; "need dictionary"
		mov	dword ptr [eax+4], 0
		add	esp, 2Ch
		mov	eax, 0FFFFFFFEh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_A9DA8:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE18Co
		mov	[esp+8], eax
		mov	[esp+4], ebx
		mov	eax, [edx+14h]
		mov	[ebp+var_24], ecx
		mov	[esp], eax
		call	_Z14inflate_blocksP20inflate_blocks_stateP10z_stream_si	; inflate_blocks(inflate_blocks_state *,z_stream_s *,int)
		mov	ecx, [ebp+var_24]
		cmp	eax, 0FFFFFFFDh
		jz	loc_A9EA0
		test	eax, eax
		jz	loc_A9E98
		cmp	eax, 1
		jnz	loc_A9AEE
		mov	eax, [ebx+1Ch]
		mov	[esp+4], ebx
		lea	edx, [eax+4]
		mov	[esp+8], edx
		mov	eax, [eax+14h]
		mov	[ebp+var_24], ecx
		mov	[esp], eax
		call	_Z20inflate_blocks_resetP20inflate_blocks_stateP10z_stream_sPm ; inflate_blocks_reset(inflate_blocks_state *,z_stream_s	*,ulong	*)
		mov	eax, [ebx+1Ch]
		mov	ecx, [ebp+var_24]
		mov	edx, [eax+0Ch]
		test	edx, edx
		jz	loc_A9B10
		mov	dword ptr [eax], 0Ch
		mov	eax, ecx
		jmp	loc_A9BF6
; ---------------------------------------------------------------------------
		align 4

loc_A9E18:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:off_1EE170o
		mov	edi, [ebx+4]
		test	edi, edi
		jz	loc_A9AEE
		add	dword ptr [ebx+8], 1
		sub	edi, 1
		mov	[ebx+4], edi
		mov	edi, [ebx]
		movzx	eax, byte ptr [edi]
		add	edi, 1
		mov	[edx+4], eax
		and	eax, 0Fh
		cmp	eax, 8
		mov	[ebx], edi
		mov	eax, [ebx+1Ch]
		jz	short loc_A9EC0
		mov	dword ptr [eax], 0Dh
		mov	eax, [ebx+1Ch]
		mov	dword ptr [ebx+18h], offset aUnknownCompres ; "unknown compression method"
		mov	dword ptr [eax+4], 5
		mov	eax, ecx
		jmp	loc_A9BF6
; ---------------------------------------------------------------------------
		align 8

loc_A9E68:				; CODE XREF: inflate(z_stream_s	*,int)+52j
					; DATA XREF: .rodata:001EE1A4o
		add	esp, 2Ch
		mov	eax, 0FFFFFFFDh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_A9E78:				; CODE XREF: inflate(z_stream_s	*,int)+28Aj
		test	byte ptr [ebp+var_20], 20h
		jnz	loc_A9BFE
		mov	eax, [ebp+var_1C]
		mov	dword ptr [eax], 7
		mov	eax, ecx
		jmp	loc_A9BF6
; ---------------------------------------------------------------------------
		align 8

loc_A9E98:				; CODE XREF: inflate(z_stream_s	*,int)+31Cj
		mov	eax, ecx
		jmp	loc_A9AEE
; ---------------------------------------------------------------------------
		align 10h

loc_A9EA0:				; CODE XREF: inflate(z_stream_s	*,int)+314j
		mov	edx, [ebx+1Ch]
		mov	dword ptr [edx], 0Dh
		mov	edx, [ebx+1Ch]
		mov	dword ptr [edx+4], 0
		jmp	loc_A9BF6
; ---------------------------------------------------------------------------
		align 10h

loc_A9EC0:				; CODE XREF: inflate(z_stream_s	*,int)+393j
		mov	edx, [eax+4]
		shr	edx, 4
		add	edx, 8
		cmp	edx, [eax+10h]
		jbe	loc_A9CEA
		mov	dword ptr [eax], 0Dh
		mov	eax, [ebx+1Ch]
		mov	dword ptr [ebx+18h], offset aInvalidWindowS ; "invalid window size"
		mov	dword ptr [eax+4], 5
		mov	eax, ecx
		jmp	loc_A9BF6
_Z7inflateP10z_stream_si endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl lufopen(int s, int, int, int)
_Z7lufopenPvjjPj proc near		; CODE XREF: TUnzip::Open(void *,uint,uint)+41p

var_7C		= byte ptr -7Ch
stat_buf	= byte ptr -70h
var_5F		= byte ptr -5Fh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
s		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_C]
		mov	[ebp+var_C], ebx
		mov	edi, [ebp+s]
		lea	edx, [eax-1]
		cmp	edx, 2
		ja	loc_AA020
		mov	dword ptr [esi], 0
		jnz	short loc_A9F60
		mov	dword ptr [esp], 1Ch
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	byte ptr [eax],	0
		mov	byte ptr [eax+1], 1
		mov	[eax+10h], edi
		mov	eax, [ebp+arg_4]
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	[ebx+14h], eax

loc_A9F4B:				; CODE XREF: lufopen(void *,uint,uint,uint *)+DDj
					; lufopen(void *,uint,uint,uint	*)+FEj
		mov	dword ptr [esi], 0

loc_A9F51:				; CODE XREF: lufopen(void *,uint,uint,uint *)+14Fj
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_A9F60:				; CODE XREF: lufopen(void *,uint,uint,uint *)+2Dj
		cmp	eax, 1
		jz	loc_A9FF8
		mov	[esp], edi	; s
		mov	dword ptr [esp+4], 0 ; oflag
		call	__wrap_open
		cmp	eax, 0FFFFFFFFh
		mov	edi, eax
		jz	loc_AA037

loc_A9F84:				; CODE XREF: lufopen(void *,uint,uint,uint *)+156j
		lea	eax, [ebp+stat_buf]
		mov	[esp+4], edi	; fildes
		mov	[esp+8], eax	; stat_buf
		mov	dword ptr [esp], 3 ; ver
		call	__fxstat
		test	[ebp+var_5F], 80h
		mov	dword ptr [esp], 1Ch
		setnz	dl
		mov	[ebp+var_7C], dl
		call	_Znwj		; operator new(uint)
		mov	byte ptr [eax],	1
		mov	ebx, eax
		movzx	edx, [ebp+var_7C]
		mov	[eax+4], edi
		mov	byte ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		test	dl, dl
		mov	[eax+1], dl
		jz	loc_A9F4B
		mov	dword ptr [esp+8], 1 ; whence
		mov	dword ptr [esp+4], 0 ; offset
		mov	[esp], edi	; fd
		call	lseek
		mov	[ebx+0Ch], eax
		jmp	loc_A9F4B
; ---------------------------------------------------------------------------
		align 8

loc_A9FF8:				; CODE XREF: lufopen(void *,uint,uint,uint *)+73j
		mov	[esp], edi	; fd
		call	dup
		mov	edx, offset dup
		test	edx, edx
		jns	short loc_AA044
		mov	dword ptr [esi], 100h
		xor	ebx, ebx
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AA020:				; CODE XREF: lufopen(void *,uint,uint,uint *)+21j
		mov	dword ptr [esi], 10000h
		xor	ebx, ebx
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AA037:				; CODE XREF: lufopen(void *,uint,uint,uint *)+8Ej
		mov	dword ptr [esi], 200h
		xor	ebx, ebx
		jmp	loc_A9F51
; ---------------------------------------------------------------------------

loc_AA044:				; CODE XREF: lufopen(void *,uint,uint,uint *)+117j
		mov	edi, eax
		jmp	loc_A9F84
_Z7lufopenPvjjPj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl lufclose(void *)
_Z8lufcloseP6LUFILE proc near		; CODE XREF: unzOpenInternal(LUFILE *)+13Ep
					; unzClose(unz_s *)+22p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_AA085
		cmp	byte ptr [ebx],	0
		jnz	short loc_AA078

loc_AA063:				; CODE XREF: lufclose(LUFILE *)+33j
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		xor	eax, eax

loc_AA06D:				; CODE XREF: lufclose(LUFILE *)+3Aj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AA078:				; CODE XREF: lufclose(LUFILE *)+11j
		mov	eax, [ebx+4]
		mov	[esp], eax	; fd
		call	close
		jmp	short loc_AA063
; ---------------------------------------------------------------------------

loc_AA085:				; CODE XREF: lufclose(LUFILE *)+Cj
		mov	eax, 0FFFFFFFFh
		jmp	short loc_AA06D
_Z8lufcloseP6LUFILE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; luferror(LUFILE *)
_Z8luferrorP6LUFILE proc near

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx],	0
		jz	short loc_AA0A1
		movzx	eax, byte ptr [edx+8]

loc_AA0A1:				; CODE XREF: luferror(LUFILE *)+Bj
		pop	ebp
		retn
_Z8luferrorP6LUFILE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; luftell(LUFILE *)
_Z7luftellP6LUFILE proc	near		; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+43p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		cmp	byte ptr [ebx],	0
		jz	short loc_AA0D0
		xor	eax, eax
		cmp	byte ptr [ebx+1], 0
		jnz	short loc_AA0E0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA0D0:				; CODE XREF: luftell(LUFILE *)+Dj
		mov	eax, [ebx+18h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA0E0:				; CODE XREF: luftell(LUFILE *)+15j
		mov	dword ptr [esp+8], 1 ; whence
		mov	dword ptr [esp+4], 0 ; offset
		mov	eax, [ebx+4]
		mov	[esp], eax	; fd
		call	lseek
		sub	eax, [ebx+0Ch]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z7luftellP6LUFILE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl lufseek(int, __off_t offset, int)
_Z7lufseekP6LUFILEli proc near		; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+21p
					; unzlocal_SearchCentralDir(LUFILE *)+9Dp ...

arg_0		= dword	ptr  8
offset		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+offset]
		mov	ecx, [ebp+arg_8]
		cmp	byte ptr [edx],	0
		jnz	short loc_AA150
		test	ecx, ecx
		jz	short loc_AA180
		cmp	ecx, 1
		jz	loc_AA1C0
		xor	eax, eax
		cmp	ecx, 2
		jz	short loc_AA1B0
		lea	esi, [esi+0]

loc_AA140:				; CODE XREF: lufseek(LUFILE *,long,int)+49j
					; lufseek(LUFILE *,long,int)+5Cj ...
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA150:				; CODE XREF: lufseek(LUFILE *,long,int)+13j
		cmp	byte ptr [edx+1], 0
		mov	eax, 1Dh
		jz	short loc_AA140
		test	ecx, ecx
		jz	short loc_AA190
		cmp	ecx, 1
		jz	short loc_AA1D0
		cmp	ecx, 2
		mov	eax, 13h
		jnz	short loc_AA140
		mov	dword ptr [esp+8], 2
		jmp	short loc_AA19B
; ---------------------------------------------------------------------------
		align 10h

loc_AA180:				; CODE XREF: lufseek(LUFILE *,long,int)+17j
		mov	[edx+18h], ebx
		xor	eax, eax
		jmp	short loc_AA140
; ---------------------------------------------------------------------------
		align 10h

loc_AA190:				; CODE XREF: lufseek(LUFILE *,long,int)+4Dj
		mov	dword ptr [esp+8], 0 ; whence
		add	ebx, [edx+0Ch]

loc_AA19B:				; CODE XREF: lufseek(LUFILE *,long,int)+66j
					; lufseek(LUFILE *,long,int)+C8j
		mov	[esp+4], ebx	; offset
		mov	eax, [edx+4]
		mov	[esp], eax	; fd
		call	lseek
		xor	eax, eax
		jmp	short loc_AA140
; ---------------------------------------------------------------------------
		align 10h

loc_AA1B0:				; CODE XREF: lufseek(LUFILE *,long,int)+27j
		add	ebx, [edx+14h]
		mov	[edx+18h], ebx
		jmp	short loc_AA140
; ---------------------------------------------------------------------------
		align 10h

loc_AA1C0:				; CODE XREF: lufseek(LUFILE *,long,int)+1Cj
		add	[edx+18h], ebx
		xor	eax, eax
		jmp	loc_AA140
; ---------------------------------------------------------------------------
		align 10h

loc_AA1D0:				; CODE XREF: lufseek(LUFILE *,long,int)+52j
		mov	dword ptr [esp+8], 1
		jmp	short loc_AA19B
_Z7lufseekP6LUFILEli endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl lufread(void *buf, int, int, int)
_Z7lufreadPvjjP6LUFILE proc near	; CODE XREF: unzlocal_getByte(LUFILE *,int *)+24p
					; unzlocal_SearchCentralDir(LUFILE *)+D1p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
buf		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_C]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		imul	ebx, edi
		cmp	byte ptr [esi],	0
		jnz	short loc_AA240
		mov	eax, [esi+18h]
		mov	edx, [esi+14h]
		lea	ecx, [ebx+eax]
		sub	edx, eax
		cmp	ecx, [esi+14h]
		cmova	ebx, edx
		add	eax, [esi+10h]
		mov	[esp+8], ebx	; n
		mov	[esp+4], eax	; src
		mov	eax, [ebp+buf]
		mov	[esp], eax	; dest
		call	memcpy
		mov	eax, ebx
		add	[esi+18h], ebx

loc_AA22C:				; CODE XREF: lufread(void *,uint,uint,LUFILE *)+78j
					; lufread(void *,uint,uint,LUFILE *)+7Ej
		xor	edx, edx
		mov	ebx, [ebp+var_C]
		div	edi
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA240:				; CODE XREF: lufread(void *,uint,uint,LUFILE *)+1Ej
		mov	eax, [ebp+buf]
		mov	[esp+8], ebx	; nbytes
		mov	[esp+4], eax	; buf
		mov	eax, [esi+4]
		mov	[esp], eax	; fd
		call	read
		cmp	ebx, eax
		jz	short loc_AA22C
		mov	byte ptr [esi+8], 1
		jmp	short loc_AA22C
_Z7lufreadPvjjP6LUFILE endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzlocal_getByte(LUFILE *, int *)
_Z16unzlocal_getByteP6LUFILEPi proc near
					; CODE XREF: unzlocal_getShort(LUFILE *,ulong *)+1Cp
					; unzlocal_getShort(LUFILE *,ulong *)+47p ...

buf		= byte ptr -9
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+buf]
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+8], 1 ; int
		mov	dword ptr [esp+4], 1 ; int
		mov	[esp], eax	; buf
		mov	[esp+0Ch], ebx	; int
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		cmp	eax, 1
		jz	short loc_AA2A8
		xor	eax, eax
		cmp	byte ptr [ebx],	0
		jz	short loc_AA29D
		cmp	byte ptr [ebx+8], 1
		sbb	eax, eax
		not	eax

loc_AA29D:				; CODE XREF: unzlocal_getByte(LUFILE *,int *)+33j
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AA2A8:				; CODE XREF: unzlocal_getByte(LUFILE *,int *)+2Cj
		mov	eax, [ebp+arg_4]
		movzx	edx, [ebp+buf]
		mov	[eax], edx
		add	esp, 24h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_Z16unzlocal_getByteP6LUFILEPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzlocal_getShort(LUFILE *, unsigned long *)
_Z17unzlocal_getShortP6LUFILEPm	proc near
					; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+74p
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+8Ap	...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		lea	esi, [ebp+var_1C]
		mov	[ebp+var_4], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z16unzlocal_getByteP6LUFILEPi ; unzlocal_getByte(LUFILE *,int *)
		mov	edi, [ebp+var_1C]
		test	eax, eax
		jz	short loc_AA300

loc_AA2E8:				; CODE XREF: unzlocal_getShort(LUFILE *,ulong *)+51j
		xor	edi, edi

loc_AA2EA:				; CODE XREF: unzlocal_getShort(LUFILE *,ulong *)+58j
		mov	edx, [ebp+arg_4]
		mov	[edx], edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA300:				; CODE XREF: unzlocal_getShort(LUFILE *,ulong *)+26j
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z16unzlocal_getByteP6LUFILEPi ; unzlocal_getByte(LUFILE *,int *)
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_AA2E8
		shl	edx, 8
		add	edi, edx
		jmp	short loc_AA2EA
_Z17unzlocal_getShortP6LUFILEPm	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzlocal_getLong(LUFILE *, unsigned long *)
_Z16unzlocal_getLongP6LUFILEPm proc near
					; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+48p
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+CCp	...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		lea	esi, [ebp+var_1C]
		mov	[ebp+var_4], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z16unzlocal_getByteP6LUFILEPi ; unzlocal_getByte(LUFILE *,int *)
		mov	edi, [ebp+var_1C]
		test	eax, eax
		jz	short loc_AA360

loc_AA348:				; CODE XREF: unzlocal_getLong(LUFILE *,ulong *)+54j
					; unzlocal_getLong(LUFILE *,ulong *)+6Aj ...
		xor	edi, edi

loc_AA34A:				; CODE XREF: unzlocal_getLong(LUFILE *,ulong *)+94j
		mov	edx, [ebp+arg_4]
		mov	[edx], edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA360:				; CODE XREF: unzlocal_getLong(LUFILE *,ulong *)+26j
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z16unzlocal_getByteP6LUFILEPi ; unzlocal_getByte(LUFILE *,int *)
		mov	edx, [ebp+var_1C]
		test	eax, eax
		mov	[ebp+var_2C], edx
		jnz	short loc_AA348
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z16unzlocal_getByteP6LUFILEPi ; unzlocal_getByte(LUFILE *,int *)
		mov	edx, [ebp+var_1C]
		test	eax, eax
		mov	[ebp+var_30], edx
		jnz	short loc_AA348
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z16unzlocal_getByteP6LUFILEPi ; unzlocal_getByte(LUFILE *,int *)
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_AA348
		mov	ebx, [ebp+var_2C]
		shl	edx, 18h
		mov	ecx, [ebp+var_30]
		shl	ebx, 8
		shl	ecx, 10h
		add	ecx, ebx
		add	edi, ecx
		add	edi, edx
		jmp	short loc_AA34A
_Z16unzlocal_getLongP6LUFILEPm endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; strcmpcasenosensitive_internal(char  const*, char  const*)
_Z30strcmpcasenosensitive_internalPKcS0_ proc near
					; CODE XREF: unzStringFileNameCompare(char  const*,char	 const*,int)+16j

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	ecx, ecx
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 14h
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_20], edi
		lea	esi, [esi+0]

loc_AA3D8:				; CODE XREF: strcmpcasenosensitive_internal(char  const*,char  const*)+5Cj
		mov	edx, [ebp+var_20]
		mov	ebx, [ebp+arg_4]
		movzx	eax, byte ptr [edx+ecx]
		movzx	edx, byte ptr [ebx+ecx]
		lea	esi, [eax-61h]
		lea	edi, [eax-20h]
		mov	ebx, esi
		lea	esi, [edx-61h]
		cmp	bl, 19h
		mov	ebx, edi
		lea	edi, [edx-20h]
		cmovbe	eax, ebx
		mov	ebx, edi
		mov	[ebp+var_1C], bl
		mov	ebx, esi
		cmp	bl, 19h
		mov	ebx, edi
		cmovbe	edx, ebx
		test	al, al
		jz	short loc_AA430
		test	dl, dl
		jz	short loc_AA41E
		cmp	al, dl
		jl	short loc_AA440
		add	ecx, 1
		cmp	al, dl
		jle	short loc_AA3D8

loc_AA41E:				; CODE XREF: strcmpcasenosensitive_internal(char  const*,char  const*)+51j
		add	esp, 14h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA430:				; CODE XREF: strcmpcasenosensitive_internal(char  const*,char  const*)+4Dj
		cmp	dl, 1
		sbb	eax, eax
		add	esp, 14h
		pop	ebx
		not	eax
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA440:				; CODE XREF: strcmpcasenosensitive_internal(char  const*,char  const*)+55j
		add	esp, 14h
		mov	eax, 0FFFFFFFFh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z30strcmpcasenosensitive_internalPKcS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzStringFileNameCompare(char	 const*, char  const*, int)
_Z24unzStringFileNameComparePKcS0_i proc near
					; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+E6p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 1
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		jz	short loc_AA470
		mov	[ebp+arg_4], edx
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_Z30strcmpcasenosensitive_internalPKcS0_ ; strcmpcasenosensitive_internal(char	const*,char  const*)
; ---------------------------------------------------------------------------
		align 10h

loc_AA470:				; CODE XREF: unzStringFileNameCompare(char  const*,char	 const*,int)+Dj
		pop	ebp
		jmp	strcmp
_Z24unzStringFileNameComparePKcS0_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzlocal_SearchCentralDir(LUFILE *)
_Z25unzlocal_SearchCentralDirP6LUFILE proc near	; CODE XREF: unzOpenInternal(LUFILE *)+21p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
buf		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+8], 2 ; int
		mov	dword ptr [esp+4], 0 ; offset
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		test	eax, eax
		jz	short loc_AA4B8

loc_AA4AA:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+64j
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AA4B8:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+28j
		mov	eax, [ebp+arg_0]
		mov	edi, 0FFFFh
		mov	[esp], eax
		call	_Z7luftellP6LUFILE ; luftell(LUFILE *)
		mov	dword ptr [esp], 404h ;	size
		cmp	eax, 0FFFFh
		mov	[ebp+var_24], eax
		cmovb	edi, eax
		call	malloc
		test	eax, eax
		mov	[ebp+buf], eax
		jz	short loc_AA4AA
		cmp	edi, 4
		mov	ebx, 4
		jbe	loc_AA591
		lea	esi, [esi+0]

loc_AA4F8:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+132j
		add	ebx, 400h
		mov	eax, [ebp+var_24]
		mov	dword ptr [esp+8], 0 ; int
		cmp	ebx, edi
		cmova	ebx, edi
		sub	eax, ebx
		mov	[ebp+var_20], eax
		mov	[esp+4], eax	; offset
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		test	eax, eax
		jnz	loc_AA5B8
		mov	eax, [ebp+arg_0]
		cmp	ebx, 404h
		mov	esi, 404h
		cmovbe	esi, ebx
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+4], esi	; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+buf]
		mov	[esp], eax	; buf
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		cmp	eax, 1
		jnz	short loc_AA5B8
		lea	eax, [esi-3]
		add	esi, [ebp+buf]
		jmp	short loc_AA56B
; ---------------------------------------------------------------------------
		align 8

loc_AA568:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+F6j
					; unzlocal_SearchCentralDir(LUFILE *)+FCj ...
		sub	esi, 1

loc_AA56B:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+E1j
		test	eax, eax
		jle	short loc_AA5B0
		sub	eax, 1
		cmp	byte ptr [esi-4], 50h
		jnz	short loc_AA568
		cmp	byte ptr [esi-3], 4Bh
		jnz	short loc_AA568
		cmp	byte ptr [esi-2], 5
		jnz	short loc_AA568
		cmp	byte ptr [esi-1], 6
		jnz	short loc_AA568
		mov	esi, [ebp+var_20]
		add	esi, eax
		jz	short loc_AA5B0

loc_AA591:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+6Ej
		mov	eax, [ebp+buf]
		mov	[esp], eax	; ptr
		call	free

loc_AA59C:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+145j
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AA5B0:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+EDj
					; unzlocal_SearchCentralDir(LUFILE *)+10Fj
		cmp	edi, ebx
		ja	loc_AA4F8

loc_AA5B8:				; CODE XREF: unzlocal_SearchCentralDir(LUFILE *)+A4j
					; unzlocal_SearchCentralDir(LUFILE *)+D9j
		mov	eax, [ebp+buf]
		xor	esi, esi
		mov	[esp], eax	; ptr
		call	free
		jmp	short loc_AA59C
_Z25unzlocal_SearchCentralDirP6LUFILE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzGetGlobalInfo(unz_s *, unz_global_info_s *)
_Z16unzGetGlobalInfoP5unz_sP17unz_global_info_s	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_AA5EE
		mov	ecx, [eax+4]
		mov	ebx, [eax+8]
		mov	eax, [ebp+arg_4]
		mov	[eax], ecx
		mov	[eax+4], ebx
		xor	eax, eax

loc_AA5EB:				; CODE XREF: unzGetGlobalInfo(unz_s *,unz_global_info_s	*)+23j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AA5EE:				; CODE XREF: unzGetGlobalInfo(unz_s *,unz_global_info_s	*)+9j
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_AA5EB
_Z16unzGetGlobalInfoP5unz_sP17unz_global_info_s	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzlocal_DosDateToTmuDate(unsigned long, tm_unz_s *)
_Z25unzlocal_DosDateToTmuDatemP8tm_unz_s proc near
					; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+E3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	ecx, edx
		shr	ecx, 10h
		mov	ebx, ecx
		and	ebx, 1Fh
		mov	[eax+0Ch], ebx
		mov	ebx, ecx
		shr	ecx, 9
		add	ecx, 7BCh
		and	ebx, 1E0h
		mov	[eax+14h], ecx
		mov	ecx, edx
		shr	ebx, 5
		and	ecx, 0F800h
		sub	ebx, 1
		shr	ecx, 0Bh
		mov	[eax+10h], ebx
		mov	[eax+8], ecx
		mov	ecx, edx
		and	edx, 1Fh
		and	ecx, 7E0h
		add	edx, edx
		shr	ecx, 5
		mov	[eax], edx
		mov	[eax+4], ecx
		pop	ebx
		pop	ebp
		retn
_Z25unzlocal_DosDateToTmuDatemP8tm_unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl unzlocal_GetCurrentFileInfoInternal(int, int, int, void *buf, int, int, int, int,	int)
_Z35unzlocal_GetCurrentFileInfoInternalP5unz_sP15unz_file_info_sP24unz_file_info_internal_sPcmPvmS5_m proc near
					; CODE XREF: unzGetCurrentFileInfo(unz_s *,unz_file_info_s *,char *,ulong,void *,ulong,char *,ulong)+45p
					; unzGoToFirstFile(unz_s *)+5Cp ...

var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
buf		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	loc_AAAA0
		mov	dword ptr [esp+8], 0 ; int
		mov	ebx, 0FFFFFFFFh
		mov	eax, [esi+0Ch]
		add	eax, [esi+14h]
		mov	[esp+4], eax	; offset
		mov	eax, [esi]
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		test	eax, eax
		jnz	short loc_AA6C0
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		jnz	short loc_AA6C0
		cmp	[ebp+var_1C], 2014B50h
		mov	bl, 99h
		cmovz	ebx, eax
		lea	esi, [esi+0]

loc_AA6C0:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+3Aj
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+4Fj
		lea	eax, [ebp+var_70]
		mov	edi, 0FFFFFFFFh
		mov	[esp+4], eax
		mov	[ebp+var_7C], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_6C]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_68]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_64]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_60]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_38]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [ebp+var_60]
		mov	[esp], eax
		call	_Z25unzlocal_DosDateToTmuDatemP8tm_unz_s ; unzlocal_DosDateToTmuDate(ulong,tm_unz_s *)
		lea	eax, [ebp+var_5C]
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_58]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_54]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_50]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_4C]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_48]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_44]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_40]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_3C]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		lea	eax, [ebp+var_20]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		jnz	loc_AA928
		test	ebx, ebx
		mov	eax, [ebp+var_50]
		setz	cl
		test	cl, cl
		mov	edx, ecx
		jz	loc_AAAAA
		mov	edi, [ebp+buf]
		test	edi, edi
		jz	loc_AAAAA
		cmp	eax, [ebp+arg_10]
		jb	loc_AA940
		mov	ecx, [ebp+arg_10]
		mov	edi, eax
		sub	edi, [ebp+arg_10]
		mov	edx, [ebp+arg_10]
		test	ecx, ecx
		jnz	loc_AA956

loc_AA860:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+2F0j
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+2F8j ...
		mov	eax, [ebp+arg_14]
		mov	edx, 1
		test	eax, eax
		setnz	al
		xor	ebx, ebx

loc_AA86F:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+455j
		test	al, al
		jz	loc_AA98B
		mov	ecx, [ebp+var_4C]
		mov	[ebp+var_80], 0
		mov	edx, [ebp+arg_18]
		cmp	[ebp+arg_18], ecx
		cmova	edx, ecx
		xor	ebx, ebx
		test	edi, edi
		mov	[ebp+var_84], edx
		jnz	loc_AAA20

loc_AA89A:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+3E0j
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+438j
		test	ecx, ecx
		jnz	loc_AAA48

loc_AA8A2:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+3EDj
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+41Cj
		mov	eax, [ebp+arg_1C]
		test	ebx, ebx
		setz	dl
		test	eax, eax
		setnz	al
		and	eax, edx

loc_AA8B1:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+42Bj
		mov	edi, [ebp+var_80]
		sub	edi, [ebp+var_84]
		add	edi, ecx

loc_AA8BC:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+2D7j
		test	al, al
		jz	short loc_AA8EA
		mov	eax, [ebp+var_48]
		mov	edx, [ebp+arg_20]
		cmp	eax, edx
		jnb	short loc_AA8D3
		mov	edx, [ebp+arg_1C]
		mov	byte ptr [edx+eax], 0
		mov	edx, eax

loc_AA8D3:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+268j
		xor	ebx, ebx
		test	edi, edi
		jnz	loc_AA9E8

loc_AA8DD:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+3AFj
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+3BAj
		test	eax, eax
		jnz	loc_AA9A0

loc_AA8E5:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+345j
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+36Bj
		test	ebx, ebx
		setz	dl

loc_AA8EA:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+25Ej
		test	dl, dl
		jz	short loc_AA917
		mov	edi, [ebp+arg_4]
		test	edi, edi
		jz	short loc_AA902
		mov	edi, [ebp+arg_4]
		mov	ecx, 14h
		mov	esi, [ebp+var_7C]
		rep movsd

loc_AA902:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+293j
		test	dl, dl
		jz	short loc_AA917
		mov	esi, [ebp+arg_8]
		test	esi, esi
		jz	short loc_AA917
		mov	eax, [ebp+var_20]
		xor	ebx, ebx
		mov	edx, [ebp+arg_8]
		mov	[edx], eax

loc_AA917:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+28Cj
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+2A4j ...
		add	esp, 8Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AA928:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+1C1j
		mov	edi, [ebp+var_50]
		xor	eax, eax
		xor	edx, edx
		mov	ebx, 0FFFFFFFFh

loc_AA934:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+334j
		add	edi, [ebp+var_4C]
		jmp	short loc_AA8BC
; ---------------------------------------------------------------------------
		align 10h

loc_AA940:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+1E7j
		mov	ecx, [ebp+arg_10]
		xor	edi, edi
		mov	edx, [ebp+buf]
		test	ecx, ecx
		mov	byte ptr [edx+eax], 0
		mov	edx, eax
		jz	loc_AA860

loc_AA956:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+1FAj
		test	eax, eax
		jz	loc_AA860
		mov	eax, [esi]
		mov	[esp+4], edx	; int
		mov	ebx, 0FFFFFFFFh
		mov	edx, [ebp+buf]
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+0Ch], eax	; int
		mov	[esp], edx	; buf
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		xor	edx, edx
		cmp	eax, 1
		jz	loc_AA860

loc_AA98B:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+211j
		cmp	[ebp+arg_1C], 0
		setnz	al
		and	eax, edx
		jmp	short loc_AA934
; ---------------------------------------------------------------------------
		align 10h

loc_AA9A0:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+27Fj
		mov	eax, [ebp+arg_20]
		test	eax, eax
		jz	loc_AA8E5
		mov	eax, [esi]
		mov	[esp+4], edx	; int
		mov	edx, [ebp+arg_1C]
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+0Ch], eax	; int
		mov	[esp], edx	; buf
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		cmp	eax, 1
		jz	loc_AA8E5
		add	esp, 8Ch
		mov	ebx, 0FFFFFFFFh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AA9E8:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+277j
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+4], edi	; offset
		mov	eax, [esi]
		mov	[ebp+var_88], edx
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		mov	edx, [ebp+var_88]
		test	eax, eax
		mov	eax, [ebp+var_48]
		jz	loc_AA8DD
		mov	ebx, 0FFFFFFFFh
		jmp	loc_AA8DD
; ---------------------------------------------------------------------------
		align 10h

loc_AAA20:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+234j
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+4], edi	; offset
		mov	eax, [esi]
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		mov	ecx, [ebp+var_4C]
		test	eax, eax
		jnz	short loc_AAA90
		mov	[ebp+var_80], ebx
		jmp	loc_AA89A
; ---------------------------------------------------------------------------
		align 4

loc_AAA48:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+23Cj
		mov	eax, [ebp+arg_18]
		test	eax, eax
		jz	loc_AA8A2
		mov	edx, [ebp+var_84]
		mov	eax, [esi]
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+4], edx	; int
		mov	edx, [ebp+arg_14]
		mov	[esp+0Ch], eax	; int
		mov	[esp], edx	; buf
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		mov	ecx, [ebp+var_4C]
		cmp	eax, 1
		jz	loc_AA8A2
		xor	eax, eax
		xor	edx, edx
		mov	ebx, 0FFFFFFFFh
		jmp	loc_AA8B1
; ---------------------------------------------------------------------------

loc_AAA90:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+3DBj
		mov	[ebp+var_80], edi
		mov	ebx, 0FFFFFFFFh
		jmp	loc_AA89A
; ---------------------------------------------------------------------------
		align 10h

loc_AAAA0:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+11j
		mov	ebx, 0FFFFFF9Ah
		jmp	loc_AA917
; ---------------------------------------------------------------------------

loc_AAAAA:				; CODE XREF: unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void	*,ulong,char *,ulong)+1D3j
					; unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char	*,ulong,void *,ulong,char *,ulong)+1DEj
		cmp	[ebp+arg_14], 0
		mov	edi, eax
		setnz	al
		and	eax, ecx
		jmp	loc_AA86F
_Z35unzlocal_GetCurrentFileInfoInternalP5unz_sP15unz_file_info_sP24unz_file_info_internal_sPcmPvmS5_m endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl unzGetCurrentFileInfo(int, int, void *buf, int, int, int,	int, int)
_Z21unzGetCurrentFileInfoP5unz_sP15unz_file_info_sPcmPvmS3_m proc near
					; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+D3p
					; _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+98p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
buf		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_1C]
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+20h], eax	; int
		mov	eax, [ebp+arg_18]
		mov	[esp+1Ch], eax	; int
		mov	eax, [ebp+arg_14]
		mov	[esp+18h], eax	; int
		mov	eax, [ebp+arg_10]
		mov	[esp+14h], eax	; int
		mov	eax, [ebp+arg_C]
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+buf]
		mov	[esp+0Ch], eax	; buf
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_Z35unzlocal_GetCurrentFileInfoInternalP5unz_sP15unz_file_info_sP24unz_file_info_internal_sPcmPvmS5_m ;	unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void *,ulong,char	*,ulong)
		leave
		retn
_Z21unzGetCurrentFileInfoP5unz_sP15unz_file_info_sPcmPvmS3_m endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzGoToFirstFile(unz_s *)
_Z16unzGoToFirstFileP5unz_s proc near	; CODE XREF: unzOpenInternal(LUFILE *)+1B3p
					; unzLocateFile(unz_s *,char  const*,int)+73p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_AAB88
		mov	eax, [ebx+24h]
		mov	dword ptr [ebx+10h], 0
		mov	[ebx+14h], eax
		lea	eax, [ebx+78h]
		mov	[esp+8], eax	; int
		lea	eax, [ebx+28h]
		mov	dword ptr [esp+20h], 0 ; int
		mov	dword ptr [esp+1Ch], 0 ; int
		mov	dword ptr [esp+18h], 0 ; int
		mov	dword ptr [esp+14h], 0 ; int
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 0 ; buf
		mov	[esp+4], eax	; int
		mov	[esp], ebx	; int
		call	_Z35unzlocal_GetCurrentFileInfoInternalP5unz_sP15unz_file_info_sP24unz_file_info_internal_sPcmPvmS5_m ;	unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void *,ulong,char	*,ulong)
		xor	edx, edx
		test	eax, eax
		setz	dl
		mov	[ebx+18h], edx

loc_AAB7B:				; CODE XREF: unzGoToFirstFile(unz_s *)+7Dj
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AAB88:				; CODE XREF: unzGoToFirstFile(unz_s *)+Cj
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_AAB7B
_Z16unzGoToFirstFileP5unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzOpenInternal(LUFILE *)
_Z15unzOpenInternalP6LUFILE proc near	; CODE XREF: TUnzip::Open(void *,uint,uint)+4Dp

var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_9C		= dword	ptr -9Ch
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 0BCh
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	loc_AACD3
		mov	[esp], esi
		mov	edi, 0FFFFFFFFh
		call	_Z25unzlocal_SearchCentralDirP6LUFILE ;	unzlocal_SearchCentralDir(LUFILE *)
		mov	dword ptr [esp+8], 0 ; int
		cmp	eax, 1
		mov	[esp+4], eax	; offset
		sbb	ebx, ebx
		mov	[esp], esi	; int
		mov	[ebp+var_AC], eax
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		mov	[esp], esi
		test	eax, eax
		lea	eax, [ebp+var_28]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		mov	[esp], esi
		test	eax, eax
		lea	eax, [ebp+var_24]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	[esp], esi
		test	eax, eax
		lea	eax, [ebp+var_20]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	[esp], esi
		test	eax, eax
		lea	eax, [ebp+var_A4]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	[esp], esi
		test	eax, eax
		lea	eax, [ebp+var_1C]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	edx, [ebp+var_AC]
		test	eax, eax
		mov	eax, [ebp+var_1C]
		cmovnz	ebx, edi
		cmp	[ebp+var_A4], eax
		jz	loc_AACE0

loc_AAC56:				; CODE XREF: unzOpenInternal(LUFILE *)+155j
		mov	ebx, 0FFFFFF99h

loc_AAC5B:				; CODE XREF: unzOpenInternal(LUFILE *)+168j
		lea	eax, [ebp+var_88]
		mov	[esp], esi
		mov	edi, 0FFFFFFFFh
		mov	[ebp+var_AC], edx
		mov	[esp+4], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		mov	[esp], esi
		test	eax, eax
		lea	eax, [ebp+var_84]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		mov	[esp], esi
		test	eax, eax
		lea	eax, [ebp+var_A0]
		cmovnz	ebx, edi
		mov	[esp+4], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	edx, [ebp+var_AC]
		test	eax, eax
		jnz	short loc_AACC9
		mov	ecx, [esi+0Ch]
		mov	eax, [ebp+var_88]
		add	ecx, edx
		add	eax, [ebp+var_84]
		test	ebx, ebx
		jnz	short loc_AACFD
		cmp	ecx, eax
		jnb	short loc_AACFD

loc_AACC9:				; CODE XREF: unzOpenInternal(LUFILE *)+11Ej
					; unzOpenInternal(LUFILE *)+16Fj
		mov	[esp], esi	; void *
		xor	ebx, ebx
		call	_Z8lufcloseP6LUFILE ; lufclose(LUFILE *)

loc_AACD3:				; CODE XREF: unzOpenInternal(LUFILE *)+13j
		add	esp, 0BCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AACE0:				; CODE XREF: unzOpenInternal(LUFILE *)+C0j
		mov	eax, [ebp+var_20]
		test	eax, eax
		jnz	loc_AAC56
		mov	eax, [ebp+var_24]
		test	eax, eax
		mov	eax, 0FFFFFF99h
		cmovnz	ebx, eax
		jmp	loc_AAC5B
; ---------------------------------------------------------------------------

loc_AACFD:				; CODE XREF: unzOpenInternal(LUFILE *)+133j
					; unzOpenInternal(LUFILE *)+137j
		test	ebx, ebx
		jnz	short loc_AACC9
		sub	ecx, eax
		mov	dword ptr [esi+0Ch], 0
		mov	[ebp+var_A8], esi
		lea	esi, [ebp+var_A8]
		mov	[ebp+var_9C], ecx
		mov	[ebp+var_8C], edx
		mov	[ebp+var_2C], 0
		mov	dword ptr [esp], 80h ; size
		call	malloc
		mov	ecx, 20h
		mov	edi, eax
		mov	ebx, eax
		rep movsd
		mov	[esp], eax
		call	_Z16unzGoToFirstFileP5unz_s ; unzGoToFirstFile(unz_s *)
		add	esp, 0BCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z15unzOpenInternalP6LUFILE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzGoToNextFile(unz_s	*)
_Z15unzGoToNextFileP5unz_s proc	near	; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+93p
					; _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+4Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	loc_AADF4
		mov	edx, [ebx+18h]
		mov	eax, 0FFFFFF9Ch
		test	edx, edx
		jz	short loc_AADEE
		mov	edx, [ebx+10h]
		add	edx, 1
		cmp	edx, [ebx+4]
		jz	short loc_AADEE
		mov	eax, [ebx+14h]
		mov	[ebx+10h], edx
		add	eax, [ebx+48h]
		add	eax, 2Eh
		add	eax, [ebx+4Ch]
		add	eax, [ebx+50h]
		mov	[ebx+14h], eax
		lea	eax, [ebx+78h]
		mov	[esp+8], eax	; int
		lea	eax, [ebx+28h]
		mov	dword ptr [esp+20h], 0 ; int
		mov	dword ptr [esp+1Ch], 0 ; int
		mov	dword ptr [esp+18h], 0 ; int
		mov	dword ptr [esp+14h], 0 ; int
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 0 ; buf
		mov	[esp+4], eax	; int
		mov	[esp], ebx	; int
		call	_Z35unzlocal_GetCurrentFileInfoInternalP5unz_sP15unz_file_info_sP24unz_file_info_internal_sPcmPvmS5_m ;	unzlocal_GetCurrentFileInfoInternal(unz_s *,unz_file_info_s *,unz_file_info_internal_s *,char *,ulong,void *,ulong,char	*,ulong)
		xor	edx, edx
		test	eax, eax
		setz	dl
		mov	[ebx+18h], edx

loc_AADEE:				; CODE XREF: unzGoToNextFile(unz_s *)+1Cj
					; unzGoToNextFile(unz_s	*)+27j	...
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AADF4:				; CODE XREF: unzGoToNextFile(unz_s *)+Cj
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_AADEE
_Z15unzGoToNextFileP5unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl unzLocateFile(int, char *src, int)
_Z13unzLocateFileP5unz_sPKci proc near	; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+31p

var_1134	= dword	ptr -1134h
var_1130	= dword	ptr -1130h
var_112C	= dword	ptr -112Ch
dest		= byte ptr -1119h
buf		= byte ptr -119h
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 114Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+src]
		test	ebx, ebx
		jz	loc_AAF2A
		mov	[esp], esi	; s
		call	strlen
		mov	[ebp+var_112C],	0FFFFFF9Ah
		cmp	eax, 0FFh
		ja	loc_AAEEF
		lea	edi, [ebp+dest]
		mov	[esp+4], esi	; src
		mov	[esp], edi	; dest
		call	strcpy
		mov	ecx, [ebx+18h]
		mov	[ebp+var_112C],	0FFFFFF9Ch
		test	ecx, ecx
		jz	loc_AAEEF
		mov	edx, [ebx+10h]
		mov	[ebp+var_1130],	edx
		mov	edx, [ebx+14h]
		mov	[esp], ebx
		mov	[ebp+var_1134],	edx
		call	_Z16unzGoToFirstFileP5unz_s ; unzGoToFirstFile(unz_s *)
		test	eax, eax
		mov	[ebp+var_112C],	eax
		jnz	short loc_AAF00
		lea	esi, [ebp+buf]
		jmp	short loc_AAE9C
; ---------------------------------------------------------------------------
		align 10h

loc_AAE90:				; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+EDj
		mov	[esp], ebx
		call	_Z15unzGoToNextFileP5unz_s ; unzGoToNextFile(unz_s *)
		test	eax, eax
		jnz	short loc_AAF10

loc_AAE9C:				; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+88j
		mov	dword ptr [esp+1Ch], 0 ; int
		mov	dword ptr [esp+18h], 0 ; int
		mov	dword ptr [esp+14h], 0 ; int
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 100h ; int
		mov	[esp+8], esi	; buf
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], ebx	; int
		call	_Z21unzGetCurrentFileInfoP5unz_sP15unz_file_info_sPcmPvmS3_m ; unzGetCurrentFileInfo(unz_s *,unz_file_info_s *,char *,ulong,void *,ulong,char *,ulong)
		mov	edx, [ebp+arg_8]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[esp+8], edx
		call	_Z24unzStringFileNameComparePKcS0_i ; unzStringFileNameCompare(char  const*,char  const*,int)
		test	eax, eax
		jnz	short loc_AAE90

loc_AAEEF:				; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+31j
					; unzLocateFile(unz_s *,char  const*,int)+58j ...
		mov	eax, [ebp+var_112C]
		add	esp, 114Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AAF00:				; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+80j
		mov	eax, [ebp+var_112C]
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_AAF10:				; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+9Aj
		mov	edx, [ebp+var_1130]
		mov	[ebp+var_112C],	eax
		mov	[ebx+10h], edx
		mov	edx, [ebp+var_1134]
		mov	[ebx+14h], edx
		jmp	short loc_AAEEF
; ---------------------------------------------------------------------------

loc_AAF2A:				; CODE XREF: unzLocateFile(unz_s *,char	 const*,int)+14j
		mov	[ebp+var_112C],	0FFFFFF9Ah
		jmp	short loc_AAEEF
_Z13unzLocateFileP5unz_sPKci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *, unsigned int *, unsigned long *, unsigned int *)
_Z40unzlocal_CheckCurrentFileCoherencyHeaderP5unz_sPjPmS1_ proc	near
					; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+B7p
					; unzOpenCurrentFile(unz_s *)+4Ap

var_3C		= dword	ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 4Ch
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	dword ptr [edx], 0
		mov	edx, [ebp+arg_8]
		mov	dword ptr [edx], 0
		mov	edx, [ebp+arg_C]
		mov	dword ptr [edx], 0
		mov	dword ptr [esp+8], 0 ; int
		mov	eax, [esi+0Ch]
		add	eax, [esi+78h]
		mov	[esp+4], eax	; offset
		mov	eax, [esi]
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		test	eax, eax
		jnz	loc_AB10C
		lea	eax, [ebp+var_2C]
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		jz	loc_AB140

loc_AAFA9:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+20Cj
		lea	edi, [ebp+var_28]
		mov	[esp+4], edi
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	edx, 0FFFFFFFFh
		test	eax, eax
		lea	eax, [ebp+var_24]
		cmovnz	ebx, edx
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[ebp+var_3C], edx
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	[esp+4], edi
		mov	edx, [ebp+var_3C]
		test	eax, eax
		mov	eax, [esi]
		cmovnz	ebx, edx
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		jz	loc_AB120
		mov	ebx, 0FFFFFFFFh

loc_AAFFB:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+1E2j
					; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint	*,ulong	*,uint *)+1F5j	...
		mov	[esp+4], edi
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		mov	[esp+4], edi
		test	eax, eax
		mov	eax, 0FFFFFFFFh
		cmovnz	ebx, eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		jnz	loc_AB190
		test	ebx, ebx
		jnz	short loc_AB048
		mov	eax, [ebp+var_28]
		cmp	[esi+3Ch], eax
		jz	short loc_AB048
		test	[ebp+var_24], 8
		mov	eax, 0FFFFFF99h
		cmovz	ebx, eax
		lea	esi, [esi+0]

loc_AB048:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+EBj
					; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint	*,ulong	*,uint *)+F3j ...
		mov	[esp+4], edi
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		jnz	loc_AB180
		test	ebx, ebx
		jnz	short loc_AB080
		mov	edx, [ebp+var_28]
		cmp	[esi+40h], edx
		jz	short loc_AB080
		test	[ebp+var_24], 8
		mov	eax, 0FFFFFF99h
		cmovz	ebx, eax
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_AB080:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+120j
					; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint	*,ulong	*,uint *)+128j	...
		mov	[esp+4], edi
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z16unzlocal_getLongP6LUFILEPm ; unzlocal_getLong(LUFILE *,ulong *)
		test	eax, eax
		jnz	loc_AB158
		test	ebx, ebx
		jnz	short loc_AB0B0
		mov	eax, [ebp+var_28]
		cmp	[esi+44h], eax
		jz	short loc_AB0B0
		test	[ebp+var_24], 8
		mov	eax, 0FFFFFF99h
		cmovz	ebx, eax
		db	66h
		nop

loc_AB0B0:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+158j
					; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint	*,ulong	*,uint *)+160j	...
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		test	eax, eax
		mov	eax, [ebp+var_20]
		jz	loc_AB168
		mov	ebx, 0FFFFFFFFh

loc_AB0D1:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+22Aj
					; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint	*,ulong	*,uint *)+23Bj
		mov	edx, [ebp+arg_4]
		add	[edx], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	[esp], eax
		call	_Z17unzlocal_getShortP6LUFILEPm	; unzlocal_getShort(LUFILE *,ulong *)
		mov	edx, [ebp+arg_8]
		test	eax, eax
		mov	eax, 0FFFFFFFFh
		cmovnz	ebx, eax
		mov	eax, [esi+78h]
		add	eax, [ebp+var_20]
		add	eax, 1Eh
		mov	[edx], eax
		mov	eax, [ebp+var_1C]
		mov	edx, [ebp+arg_C]
		mov	[edx], eax
		mov	edx, [ebp+arg_4]
		add	[edx], eax

loc_AB10C:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+4Aj
		add	esp, 4Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AB120:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+B0j
		test	ebx, ebx
		jnz	loc_AAFFB
		mov	eax, [esi+34h]
		cmp	eax, [ebp+var_28]
		jz	short loc_AB1A0
		mov	ebx, 0FFFFFF99h
		jmp	loc_AAFFB
; ---------------------------------------------------------------------------
		align 10h

loc_AB140:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+63j
		cmp	[ebp+var_2C], 4034B50h
		mov	bl, 99h
		cmovz	ebx, eax
		jmp	loc_AAFA9
; ---------------------------------------------------------------------------
		align 8

loc_AB158:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+150j
		mov	ebx, 0FFFFFFFFh
		jmp	loc_AB0B0
; ---------------------------------------------------------------------------
		align 8

loc_AB168:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+186j
		test	ebx, ebx
		jnz	loc_AB0D1
		cmp	[esi+48h], eax
		mov	edx, 0FFFFFF99h
		cmovnz	ebx, edx
		jmp	loc_AB0D1
; ---------------------------------------------------------------------------

loc_AB180:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+118j
		mov	ebx, 0FFFFFFFFh
		jmp	loc_AB080
; ---------------------------------------------------------------------------
		align 10h

loc_AB190:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+E3j
		mov	ebx, 0FFFFFFFFh
		jmp	loc_AB048
; ---------------------------------------------------------------------------
		align 10h

loc_AB1A0:				; CODE XREF: unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)+1EEj
		test	eax, eax
		jz	loc_AAFFB
		cmp	eax, 8
		mov	eax, 0FFFFFF99h
		cmovnz	ebx, eax
		jmp	loc_AAFFB
_Z40unzlocal_CheckCurrentFileCoherencyHeaderP5unz_sPjPmS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZN6TUnzip3GetEiP8ZIPENTRY_part_1 proc near ; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+84j

var_1091	= byte ptr -1091h
var_1090	= dword	ptr -1090h
var_108C	= dword	ptr -108Ch
buf		= dword	ptr -1088h
var_1084	= dword	ptr -1084h
var_1080	= dword	ptr -1080h
var_107C	= dword	ptr -107Ch
src		= byte ptr -1078h
var_78		= dword	ptr -78h
var_68		= dword	ptr -68h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_44		= dword	ptr -44h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
offset		= dword	ptr -20h
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, eax
		sub	esp, 10ACh
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_1080],	edx
		mov	[ebp+var_1084],	ecx
		mov	eax, [eax]
		jz	loc_AB2B0
		mov	edx, [eax+10h]
		cmp	[ebp+var_1080],	edx
		jl	loc_AB298

loc_AB1F4:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+E5j
		cmp	[ebp+var_1080],	edx
		jle	short loc_AB217
		mov	esi, [ebp+var_1080]
		lea	esi, [esi+0]

loc_AB208:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+55j
		mov	[esp], eax
		call	_Z15unzGoToNextFileP5unz_s ; unzGoToNextFile(unz_s *)
		mov	eax, [ebx]
		cmp	esi, [eax+10h]
		jg	short loc_AB208

loc_AB217:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+3Aj
		lea	edx, [ebp+var_78]
		mov	dword ptr [esp+1Ch], 0 ; int
		mov	esi, 700h
		lea	edi, [ebp+src]
		mov	[esp+4], edx	; int
		mov	dword ptr [esp+18h], 0 ; int
		mov	dword ptr [esp+14h], 0 ; int
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 1000h ; int
		mov	[esp+8], edi	; buf
		mov	[esp], eax	; int
		call	_Z21unzGetCurrentFileInfoP5unz_sP15unz_file_info_sPcmPvmS3_m ; unzGetCurrentFileInfo(unz_s *,unz_file_info_s *,char *,ulong,void *,ulong,char *,ulong)
		lea	eax, [ebp+var_28]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+offset]
		mov	[esp+8], eax
		lea	eax, [ebp+var_24]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z40unzlocal_CheckCurrentFileCoherencyHeaderP5unz_sPjPmS1_ ; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)
		test	eax, eax
		jz	loc_AB308

loc_AB284:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+169j
					; _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+1BAj ...
		add	esp, 10ACh
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AB298:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+2Ej
		mov	[esp], eax
		call	_Z16unzGoToFirstFileP5unz_s ; unzGoToFirstFile(unz_s *)
		mov	eax, [ebx]
		mov	edx, [eax+10h]
		jmp	loc_AB1F4
; ---------------------------------------------------------------------------
		align 10h

loc_AB2B0:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+1Fj
		mov	eax, [eax+4]
		mov	byte ptr [ecx+4], 0
		xor	esi, esi
		mov	dword ptr [ecx+1004h], 0
		mov	dword ptr [ecx+1008h], 0
		mov	dword ptr [ecx+100Ch], 0
		mov	[ecx], eax
		mov	eax, esi
		mov	dword ptr [ecx+1010h], 0
		mov	dword ptr [ecx+1014h], 0
		mov	dword ptr [ecx+1018h], 0
		add	esp, 10ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AB308:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+BEj
		mov	eax, [ebp+offset]
		mov	dword ptr [esp+8], 0 ; int
		mov	si, 800h
		mov	[esp+4], eax	; offset
		mov	eax, [ebx]
		mov	eax, [eax]
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		test	eax, eax
		jnz	loc_AB284
		mov	eax, [ebp+var_28]
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[ebp+buf], eax
		mov	eax, [ebx]
		mov	eax, [eax]
		mov	dword ptr [esp+4], 1 ; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+var_28]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+buf]
		mov	[esp], eax	; buf
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		mov	edx, [ebp+var_28]
		cmp	eax, edx
		mov	[ebp+var_108C],	edx
		jz	short loc_AB393
		mov	edi, [ebp+buf]
		test	edi, edi
		jz	loc_AB284
		mov	eax, [ebp+buf]
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)
		jmp	loc_AB284
; ---------------------------------------------------------------------------

loc_AB393:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+1B0j
		mov	eax, [ebx]
		mov	ecx, [ebp+var_1084]
		mov	eax, [eax+10h]
		mov	[ecx], eax
		mov	eax, ecx
		add	eax, 4
		mov	[esp+4], edi	; src
		mov	[esp], eax	; dest
		call	strcpy
		mov	ecx, [ebp+var_1084]
		test	[ebp+var_44], 40000010h
		mov	dword ptr [ecx+1004h], 8000h
		jz	short loc_AB3D4
		mov	dword ptr [ecx+1004h], 0C000h

loc_AB3D4:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+208j
		mov	ecx, [ebp+var_1084]
		mov	eax, [ebp+var_60]
		cmp	[ebp+var_108C],	4
		mov	[ecx+1014h], eax
		mov	eax, [ebp+var_5C]
		mov	[ecx+1018h], eax
		mov	eax, [ebp+var_68]
		mov	[ecx+1008h], eax
		mov	[ecx+100Ch], eax
		mov	[ecx+1010h], eax
		jbe	short loc_AB479
		mov	[ebp+var_1090],	4
		lea	eax, [ebp+var_1B]
		xor	edi, edi
		mov	[ebp+var_107C],	eax
		mov	eax, edi

loc_AB421:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+2B7j
		mov	ecx, [ebp+buf]
		mov	[ebp+var_19], 0
		mov	edi, offset aUt	; "UT"
		mov	esi, [ebp+var_107C]
		movzx	edx, byte ptr [ecx+eax]
		mov	[ebp+var_1B], dl
		movzx	edx, byte ptr [ecx+eax+1]
		mov	[ebp+var_1A], dl
		movzx	edx, byte ptr [ecx+eax+2]
		mov	ecx, 3
		mov	[ebp+var_1091],	dl
		repe cmpsb
		jz	loc_AB4ED
		movsx	edx, [ebp+var_1091]
		lea	eax, [eax+edx+4]
		lea	edx, [eax+4]
		cmp	[ebp+var_108C],	edx
		mov	[ebp+var_1090],	edx
		ja	short loc_AB421

loc_AB479:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+248j
					; _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+388j ...
		mov	esi, [ebp+buf]
		test	esi, esi
		jz	short loc_AB491
		mov	eax, [ebp+buf]
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_AB491:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+2C1j
		lea	edi, [ebx+8]
		mov	esi, [ebp+var_1084]
		mov	eax, 101Ch
		test	edi, 1
		jnz	loc_AB57C

loc_AB4AB:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+3CDj
		test	edi, 2
		jnz	loc_AB568

loc_AB4B7:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+3B7j
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jz	short loc_AB4CF
		movzx	edx, word ptr [esi]
		mov	[edi], dx
		mov	edx, 2

loc_AB4CF:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+302j
		test	al, 1
		jz	short loc_AB4DA
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al

loc_AB4DA:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+311j
		mov	edx, [ebp+var_1080]
		xor	esi, esi
		mov	[ebx+1024h], edx
		jmp	loc_AB284
; ---------------------------------------------------------------------------

loc_AB4ED:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+297j
		mov	edi, eax
		mov	ecx, [ebp+buf]
		mov	eax, [ebp+var_1090]
		movsx	edx, byte ptr [ecx+eax]
		lea	eax, [edi+5]
		mov	ecx, edx
		mov	esi, edx
		and	ecx, 2
		and	esi, 4
		and	edx, 1
		jz	short loc_AB52A
		mov	eax, [ebp+buf]
		mov	edx, [eax+edi+5]
		lea	eax, [edi+9]
		mov	edi, [ebp+var_1084]
		mov	[edi+1010h], edx

loc_AB52A:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+34Fj
		test	ecx, ecx
		jz	short loc_AB546
		mov	ecx, [ebp+buf]
		mov	edx, [ecx+eax]
		add	eax, 4
		mov	ecx, [ebp+var_1084]
		mov	[ecx+1008h], edx

loc_AB546:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+36Cj
		test	esi, esi
		jz	loc_AB479
		mov	edi, [ebp+buf]
		mov	ecx, [ebp+var_1084]
		mov	eax, [edi+eax]
		mov	[ecx+100Ch], eax
		jmp	loc_AB479
; ---------------------------------------------------------------------------

loc_AB568:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+2F1j
		movzx	edx, word ptr [esi]
		sub	eax, 2
		add	esi, 2
		mov	[edi], dx
		add	edi, 2
		jmp	loc_AB4B7
; ---------------------------------------------------------------------------

loc_AB57C:				; CODE XREF: _ZN6TUnzip3GetEiP8ZIPENTRY_part_1+2E5j
		movzx	eax, byte ptr [esi]
		lea	edi, [ebx+9]
		add	esi, 1
		mov	[ebx+8], al
		mov	eax, 101Bh
		jmp	loc_AB4AB
_ZN6TUnzip3GetEiP8ZIPENTRY_part_1 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzReadCurrentFile(unz_s *, void *, unsigned int)
_Z18unzReadCurrentFileP5unz_sPvj proc near
					; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+1E7p
					; TUnzip::Unzip(int,void *,uint,uint)+2E5p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		test	edx, edx
		jz	loc_AB788
		mov	ebx, [edx+7Ch]
		test	ebx, ebx
		jz	loc_AB788
		mov	edx, [ebx]
		test	edx, edx
		jz	loc_AB792
		xor	edi, edi
		test	eax, eax
		jz	loc_AB707
		mov	edx, [ebp+arg_4]
		mov	[ebx+14h], eax
		mov	[ebx+10h], edx
		mov	edx, [ebx+5Ch]
		cmp	eax, edx
		ja	loc_AB76F

loc_AB5EA:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+1D4j
		lea	edx, [ebx+4]
		mov	[ebp+var_1C], 0
		mov	[ebp+var_24], edx
		mov	esi, esi
		lea	edi, [edi+0]

loc_AB600:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+1CAj
		test	eax, eax
		jz	loc_AB704

loc_AB608:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+15Ej
		mov	eax, [ebx+8]
		test	eax, eax
		jnz	short loc_AB67D
		mov	esi, [ebx+58h]
		test	esi, esi
		jz	short loc_AB67D
		cmp	esi, 4000h
		mov	dword ptr [esp+8], 0 ; int
		mov	eax, 4000h
		cmovnb	esi, eax
		mov	eax, [ebx+68h]
		add	eax, [ebx+3Ch]
		mov	[esp+4], eax	; offset
		mov	eax, [ebx+60h]
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		test	eax, eax
		jnz	loc_AB779
		mov	eax, [ebx+60h]
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+4], esi	; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebx]
		mov	[esp], eax	; buf
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		cmp	eax, 1
		jnz	loc_AB779
		mov	eax, [ebx]
		mov	[ebx+8], esi
		add	[ebx+3Ch], esi
		sub	[ebx+58h], esi
		mov	[ebx+4], eax

loc_AB67D:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+6Dj
					; unzReadCurrentFile(unz_s *,void *,uint)+74j
		mov	eax, [ebx+64h]
		test	eax, eax
		jnz	loc_AB718
		mov	edi, [ebx+14h]
		mov	edx, [ebx+8]
		mov	esi, edi
		cmp	edx, edi
		cmovbe	esi, edx
		test	esi, esi
		jz	short loc_AB6BA
		xor	eax, eax
		nop
		lea	esi, [esi+0]

loc_AB6A0:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+112j
		mov	edx, [ebx+4]
		movzx	ecx, byte ptr [edx+eax]
		mov	edx, [ebx+10h]
		mov	[edx+eax], cl
		add	eax, 1
		cmp	eax, esi
		jnz	short loc_AB6A0
		mov	edx, [ebx+8]
		mov	edi, [ebx+14h]

loc_AB6BA:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+F7j
		mov	ecx, [ebx+10h]
		mov	[esp+8], esi
		mov	[esp+4], ecx
		mov	eax, [ebx+50h]
		mov	[ebp+var_28], edx
		mov	[ebp+var_2C], ecx
		mov	[esp], eax
		call	_Z6ucrc32mPKhj	; ucrc32(ulong,uchar  const*,uint)
		sub	[ebx+5Ch], esi
		mov	[ebx+50h], eax
		mov	eax, edi
		add	[ebp+var_1C], esi
		sub	eax, esi
		mov	edx, [ebp+var_28]
		mov	[ebx+14h], eax
		sub	edx, esi
		mov	[ebx+8], edx
		mov	ecx, [ebp+var_2C]
		add	[ebx+4], esi
		add	[ebx+18h], esi
		add	ecx, esi
		test	eax, eax
		mov	[ebx+10h], ecx
		jnz	loc_AB608

loc_AB704:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+62j
					; unzReadCurrentFile(unz_s *,void *,uint)+1C1j
		mov	edi, [ebp+var_1C]

loc_AB707:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+30j
					; unzReadCurrentFile(unz_s *,void *,uint)+1C5j	...
		add	esp, 3Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AB718:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+E2j
		mov	edx, [ebx+18h]
		mov	eax, [ebp+var_24]
		mov	[ebp+var_20], edx
		mov	edx, [ebx+10h]
		mov	dword ptr [esp+4], 2
		mov	[esp], eax
		mov	[ebp+var_28], edx
		call	_Z7inflateP10z_stream_si ; inflate(z_stream_s *,int)
		mov	esi, [ebx+18h]
		mov	edx, [ebp+var_28]
		mov	edi, eax
		sub	esi, [ebp+var_20]
		mov	[esp+4], edx
		mov	[esp+8], esi
		mov	eax, [ebx+50h]
		mov	[esp], eax
		call	_Z6ucrc32mPKhj	; ucrc32(ulong,uchar  const*,uint)
		sub	[ebx+5Ch], esi
		mov	[ebx+50h], eax
		add	[ebp+var_1C], esi
		cmp	edi, 1
		jz	short loc_AB704
		test	edi, edi
		jnz	short loc_AB707
		mov	eax, [ebx+14h]
		jmp	loc_AB600
; ---------------------------------------------------------------------------

loc_AB76F:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+44j
		mov	[ebx+14h], edx
		mov	eax, edx
		jmp	loc_AB5EA
; ---------------------------------------------------------------------------

loc_AB779:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+A3j
					; unzReadCurrentFile(unz_s *,void *,uint)+C9j
		add	esp, 3Ch
		mov	edi, 0FFFFFFFFh
		pop	ebx
		mov	eax, edi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AB788:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+11j
					; unzReadCurrentFile(unz_s *,void *,uint)+1Cj
		mov	edi, 0FFFFFF9Ah
		jmp	loc_AB707
; ---------------------------------------------------------------------------

loc_AB792:				; CODE XREF: unzReadCurrentFile(unz_s *,void *,uint)+26j
		mov	edi, 0FFFFFF9Ch
		jmp	loc_AB707
_Z18unzReadCurrentFileP5unz_sPvj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unztell(unz_s	*)
_Z7unztellP5unz_s proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_AB7C0
		mov	eax, [eax+7Ch]
		test	eax, eax
		jz	short loc_AB7C0
		mov	eax, [eax+18h]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AB7C0:				; CODE XREF: unztell(unz_s *)+8j
					; unztell(unz_s	*)+Fj
		mov	eax, 0FFFFFF9Ah
		pop	ebp
		retn
_Z7unztellP5unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzeof(unz_s *)
_Z6unzeofP5unz_s proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_AB7F0
		mov	eax, [eax+7Ch]
		test	eax, eax
		jz	short loc_AB7F0
		mov	ecx, [eax+5Ch]
		xor	eax, eax
		pop	ebp
		test	ecx, ecx
		setz	al
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AB7F0:				; CODE XREF: unzeof(unz_s *)+8j
					; unzeof(unz_s *)+Fj
		mov	eax, 0FFFFFF9Ah
		pop	ebp
		retn
_Z6unzeofP5unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzGetLocalExtrafield(unz_s *, void *, unsigned int)
_Z21unzGetLocalExtrafieldP5unz_sPvj proc near

buf		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [ebp+arg_8]
		test	eax, eax
		jz	loc_AB8C0
		mov	esi, [eax+7Ch]
		test	esi, esi
		jz	loc_AB8C0
		mov	eax, [esi+4Ch]
		mov	ebx, [esi+48h]
		sub	ebx, eax
		test	ecx, ecx
		mov	edi, ebx
		jz	short loc_AB844
		cmp	edx, ebx
		cmova	edx, ebx
		xor	edi, edi
		test	edx, edx
		jnz	short loc_AB858

loc_AB844:				; CODE XREF: unzGetLocalExtrafield(unz_s *,void	*,uint)+37j
					; unzGetLocalExtrafield(unz_s *,void *,uint)+82j ...
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AB858:				; CODE XREF: unzGetLocalExtrafield(unz_s *,void	*,uint)+42j
		mov	dword ptr [esp+8], 0 ; int
		mov	edi, 0FFFFFFFFh
		add	eax, [esi+44h]
		mov	[esp+4], eax	; offset
		mov	eax, [esi+60h]
		mov	[ebp+buf], ecx
		mov	[ebp+var_1C], edx
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		mov	ecx, [ebp+buf]
		test	eax, eax
		jnz	short loc_AB844
		mov	eax, [esi+60h]
		mov	[esp+4], ebx	; int
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp], ecx	; buf
		mov	[esp+0Ch], eax	; int
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		mov	edx, [ebp+var_1C]
		cmp	eax, 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		cmovz	edi, edx
		mov	eax, edi
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AB8C0:				; CODE XREF: unzGetLocalExtrafield(unz_s *,void	*,uint)+1Aj
					; unzGetLocalExtrafield(unz_s *,void *,uint)+25j
		mov	edi, 0FFFFFF9Ah
		jmp	loc_AB844
_Z21unzGetLocalExtrafieldP5unz_sPvj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzCloseCurrentFile(unz_s *)
_Z19unzCloseCurrentFileP5unz_s proc near ; CODE	XREF: unzOpenCurrentFile(unz_s *)+2Dp
					; unzClose(unz_s *)+18p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		test	esi, esi
		jz	short loc_AB960
		mov	ebx, [esi+7Ch]
		test	ebx, ebx
		jz	short loc_AB960
		mov	eax, [ebx+5Ch]
		xor	edi, edi
		test	eax, eax
		jz	short loc_AB940

loc_AB8F6:				; CODE XREF: unzCloseCurrentFile(unz_s *)+7Ej
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_AB904
		mov	[esp], eax	; ptr
		call	free

loc_AB904:				; CODE XREF: unzCloseCurrentFile(unz_s *)+2Aj
		mov	eax, [ebx+40h]
		mov	dword ptr [ebx], 0
		test	eax, eax
		jnz	short loc_AB950

loc_AB911:				; CODE XREF: unzCloseCurrentFile(unz_s *)+8Bj
		mov	dword ptr [ebx+40h], 0
		mov	[esp], ebx	; ptr
		call	free
		mov	dword ptr [esi+7Ch], 0

loc_AB927:				; CODE XREF: unzCloseCurrentFile(unz_s *)+95j
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AB940:				; CODE XREF: unzCloseCurrentFile(unz_s *)+24j
		mov	eax, [ebx+54h]
		cmp	[ebx+50h], eax
		mov	eax, 0FFFFFF97h
		cmovnz	edi, eax
		jmp	short loc_AB8F6
; ---------------------------------------------------------------------------

loc_AB950:				; CODE XREF: unzCloseCurrentFile(unz_s *)+3Fj
		lea	eax, [ebx+4]
		mov	[esp], eax
		call	_Z10inflateEndP10z_stream_s ; inflateEnd(z_stream_s *)
		jmp	short loc_AB911
; ---------------------------------------------------------------------------
		align 10h

loc_AB960:				; CODE XREF: unzCloseCurrentFile(unz_s *)+14j
					; unzCloseCurrentFile(unz_s *)+1Bj
		mov	edi, 0FFFFFF9Ah
		jmp	short loc_AB927
_Z19unzCloseCurrentFileP5unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; unzOpenCurrentFile(unz_s *)
_Z18unzOpenCurrentFileP5unz_s proc near	; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+1BDp
					; TUnzip::Unzip(int,void *,uint,uint)+2CAp

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, 0FFFFFF9Ah
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	loc_ABA5F
		mov	eax, [esi+18h]
		test	eax, eax
		jz	loc_ABA5F
		mov	eax, [esi+7Ch]
		test	eax, eax
		jz	short loc_AB9A2
		mov	[esp], esi
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)

loc_AB9A2:				; CODE XREF: unzOpenCurrentFile(unz_s *)+28j
		lea	eax, [ebp+var_C]
		mov	[esp], esi
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_10]
		mov	[esp+8], eax
		lea	eax, [ebp+var_14]
		mov	[esp+4], eax
		call	_Z40unzlocal_CheckCurrentFileCoherencyHeaderP5unz_sPjPmS1_ ; unzlocal_CheckCurrentFileCoherencyHeader(unz_s *,uint *,ulong *,uint *)
		mov	edx, 0FFFFFF99h
		test	eax, eax
		jnz	loc_ABA5F
		mov	dword ptr [esp], 6Ch ; size
		call	malloc
		test	eax, eax
		mov	ebx, eax
		jz	loc_ABAB0
		mov	dword ptr [esp], 4000h ; size
		call	malloc
		mov	edx, [ebp+var_10]
		mov	dword ptr [ebx+4Ch], 0
		test	eax, eax
		mov	[ebx], eax
		mov	[ebx+44h], edx
		mov	edx, [ebp+var_C]
		mov	[ebx+48h], edx
		jz	loc_ABAA0
		mov	dword ptr [ebx+40h], 0
		mov	eax, [esi+34h]
		mov	edx, [esi+3Ch]
		mov	dword ptr [ebx+50h], 0
		mov	[ebx+64h], eax
		test	eax, eax
		mov	[ebx+54h], edx
		mov	edx, [esi]
		mov	[ebx+60h], edx
		mov	edx, [esi+0Ch]
		mov	dword ptr [ebx+18h], 0
		mov	[ebx+68h], edx
		jnz	short loc_ABA70

loc_ABA3B:				; CODE XREF: unzOpenCurrentFile(unz_s *)+122j
					; unzOpenCurrentFile(unz_s *)+12Bj
		mov	eax, [esi+40h]
		xor	edx, edx
		mov	[ebx+58h], eax
		mov	eax, [esi+44h]
		mov	[ebx+5Ch], eax
		mov	eax, [esi+78h]
		mov	dword ptr [ebx+8], 0
		add	eax, [ebp+var_14]
		add	eax, 1Eh
		mov	[ebx+3Ch], eax
		mov	[esi+7Ch], ebx

loc_ABA5F:				; CODE XREF: unzOpenCurrentFile(unz_s *)+12j
					; unzOpenCurrentFile(unz_s *)+1Dj ...
		add	esp, 20h
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ABA70:				; CODE XREF: unzOpenCurrentFile(unz_s *)+C9j
		lea	eax, [ebx+4]
		mov	dword ptr [ebx+24h], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	[esp], eax
		call	_Z12inflateInit2P10z_stream_s ;	inflateInit2(z_stream_s	*)
		test	eax, eax
		jnz	short loc_ABA3B
		mov	dword ptr [ebx+40h], 1
		jmp	short loc_ABA3B
; ---------------------------------------------------------------------------
		align 10h

loc_ABAA0:				; CODE XREF: unzOpenCurrentFile(unz_s *)+95j
		mov	[esp], ebx	; ptr
		call	free
		mov	edx, 0FFFFFF98h
		jmp	short loc_ABA5F
; ---------------------------------------------------------------------------
		align 10h

loc_ABAB0:				; CODE XREF: unzOpenCurrentFile(unz_s *)+6Cj
		mov	edx, 0FFFFFF98h
		jmp	short loc_ABA5F
_Z18unzOpenCurrentFileP5unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl unzClose(void *ptr)
_Z8unzCloseP5unz_s proc	near		; CODE XREF: TUnzip::Close(void)+2Ap

ptr		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+ptr]
		test	ebx, ebx
		jz	short loc_ABAF7
		mov	eax, [ebx+7Ch]
		test	eax, eax
		jz	short loc_ABADD
		mov	[esp], ebx
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)

loc_ABADD:				; CODE XREF: unzClose(unz_s *)+13j
		mov	eax, [ebx]
		mov	[esp], eax	; void *
		call	_Z8lufcloseP6LUFILE ; lufclose(LUFILE *)
		mov	[esp], ebx	; ptr
		call	free
		xor	eax, eax

loc_ABAF1:				; CODE XREF: unzClose(unz_s *)+3Cj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_ABAF7:				; CODE XREF: unzClose(unz_s *)+Cj
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_ABAF1
_Z8unzCloseP5unz_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl unzGetGlobalComment(int, void *buf, int)
_Z19unzGetGlobalCommentP5unz_sPcm proc near

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
buf		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		test	ebx, ebx
		jz	loc_ABBB0
		mov	edi, [ebx+8]
		mov	dword ptr [esp+8], 0 ; int
		mov	eax, [ebx+1Ch]
		add	eax, 16h
		mov	[esp+4], eax	; offset
		mov	eax, [ebx]
		mov	[esp], eax	; int
		call	_Z7lufseekP6LUFILEli ; lufseek(LUFILE *,long,int)
		mov	edx, 0FFFFFFFFh
		test	eax, eax
		jnz	short loc_ABB5E
		cmp	esi, edi
		cmovbe	edi, esi
		test	edi, edi
		jnz	short loc_ABB80

loc_ABB4E:				; CODE XREF: unzGetGlobalComment(unz_s *,char *,ulong)+ACj
		mov	eax, [ebp+buf]
		test	eax, eax
		jz	short loc_ABB5C
		mov	eax, [ebx+8]
		cmp	esi, eax
		ja	short loc_ABB70

loc_ABB5C:				; CODE XREF: unzGetGlobalComment(unz_s *,char *,ulong)+53j
					; unzGetGlobalComment(unz_s *,char *,ulong)+77j
		mov	edx, edi

loc_ABB5E:				; CODE XREF: unzGetGlobalComment(unz_s *,char *,ulong)+43j
					; unzGetGlobalComment(unz_s *,char *,ulong)+AEj ...
		mov	ebx, [ebp+var_C]
		mov	eax, edx
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ABB70:				; CODE XREF: unzGetGlobalComment(unz_s *,char *,ulong)+5Aj
		mov	edx, [ebp+buf]
		mov	byte ptr [edx+eax], 0
		jmp	short loc_ABB5C
; ---------------------------------------------------------------------------
		align 10h

loc_ABB80:				; CODE XREF: unzGetGlobalComment(unz_s *,char *,ulong)+4Cj
		mov	eax, [ebp+buf]
		mov	byte ptr [eax],	0
		mov	eax, [ebx]
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp+8], 1 ; int
		mov	[esp+4], edi	; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+buf]
		mov	[esp], eax	; buf
		call	_Z7lufreadPvjjP6LUFILE ; lufread(void *,uint,uint,LUFILE *)
		mov	edx, [ebp+var_1C]
		cmp	eax, 1
		jz	short loc_ABB4E
		jmp	short loc_ABB5E
; ---------------------------------------------------------------------------

loc_ABBB0:				; CODE XREF: unzGetGlobalComment(unz_s *,char *,ulong)+17j
		mov	edx, 0FFFFFF9Ah
		jmp	short loc_ABB5E
_Z19unzGetGlobalCommentP5unz_sPcm endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl TUnzip__Open(int,	int s, int, int)
_ZN6TUnzip4OpenEPvjj proc near		; CODE XREF: OpenZipU(void *,uint,uint)+44p

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	eax, 1000000h
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx]
		test	edx, edx
		jz	short loc_ABBE0

loc_ABBD5:				; CODE XREF: TUnzip::Open(void *,uint,uint)+24j
					; TUnzip::Open(void *,uint,uint)+5Ej ...
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ABBE0:				; CODE XREF: TUnzip::Open(void *,uint,uint)+13j
		cmp	dword ptr [ebx+4], 0FFFFFFFFh
		jnz	short loc_ABBD5
		lea	eax, [ebp+var_C]
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_C]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+arg_8]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z7lufopenPvjjPj ; lufopen(void	*,uint,uint,uint *)
		test	eax, eax
		jz	short loc_ABC20
		mov	[esp], eax
		call	_Z15unzOpenInternalP6LUFILE ; unzOpenInternal(LUFILE *)
		cmp	eax, 1
		mov	[ebx], eax
		sbb	eax, eax
		and	eax, 700h
		jmp	short loc_ABBD5
; ---------------------------------------------------------------------------

loc_ABC20:				; CODE XREF: TUnzip::Open(void *,uint,uint)+48j
		mov	eax, [ebp+var_C]
		jmp	short loc_ABBD5
_ZN6TUnzip4OpenEPvjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TUnzip::Get(int, ZIPENTRY *)
_ZN6TUnzip3GetEiP8ZIPENTRY proc	near	; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+D3j
					; TUnzip::Unzip(int,void *,uint,uint)+98p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		cmp	esi, 0FFFFFFFFh
		jl	short loc_ABC70
		mov	edx, [ebx]
		mov	eax, 10000h
		cmp	esi, [edx+4]
		jl	short loc_ABC88

loc_ABC59:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+D5j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ABC70:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+1Bj
		mov	ebx, [ebp+var_C]
		mov	eax, 10000h
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ABC88:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+27j
		cmp	dword ptr [ebx+4], 0FFFFFFFFh
		jz	short loc_ABC96
		mov	[esp], edx
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)

loc_ABC96:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+5Cj
		cmp	esi, 0FFFFFFFFh
		mov	dword ptr [ebx+4], 0FFFFFFFFh
		jnz	short loc_ABCC0

loc_ABCA2:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+96j
		mov	ecx, edi
		mov	edx, esi
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+var_8]
		mov	eax, ebx
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN6TUnzip3GetEiP8ZIPENTRY_part_1
; ---------------------------------------------------------------------------
		align 10h

loc_ABCC0:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+70j
		cmp	[ebx+1024h], esi
		jnz	short loc_ABCA2
		lea	esi, [ebx+8]
		test	edi, 1
		mov	eax, 101Ch
		jnz	short loc_ABD1B

loc_ABCD8:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+FCj
		test	edi, 2
		jnz	short loc_ABD0A

loc_ABCE0:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+E9j
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jz	short loc_ABCF8
		movzx	edx, word ptr [esi]
		mov	[edi], dx
		mov	edx, 2

loc_ABCF8:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+BBj
		test	al, 1
		jz	short loc_ABD03
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al

loc_ABD03:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+CAj
		xor	eax, eax
		jmp	loc_ABC59
; ---------------------------------------------------------------------------

loc_ABD0A:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+AEj
		movzx	edx, word ptr [esi]
		sub	eax, 2
		add	esi, 2
		mov	[edi], dx
		add	edi, 2
		jmp	short loc_ABCE0
; ---------------------------------------------------------------------------

loc_ABD1B:				; CODE XREF: TUnzip::Get(int,ZIPENTRY *)+A6j
		movzx	eax, byte ptr [ebx+8]
		lea	esi, [ebx+9]
		mov	[edi], al
		add	edi, 1
		mov	eax, 101Bh
		jmp	short loc_ABCD8
_ZN6TUnzip3GetEiP8ZIPENTRY endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl TUnzip__Find(int,	char *src, int,	int, int)
_ZN6TUnzip4FindEPKcbPiP8ZIPENTRY proc near
					; CODE XREF: FindZipItemA(HZIP__ *,char	 const*,bool,int *,ZIPENTRY *)+6Ap
					; FindZipItemW(HZIP__ *,char  const*,bool,int *,ZIPENTRYW *)+75p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		cmp	byte ptr [ebp+arg_8], 1
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_10]
		mov	esi, [ebp+arg_C]
		sbb	eax, eax
		add	eax, 2
		mov	[esp+8], eax	; int
		mov	eax, [ebp+src]
		mov	[esp+4], eax	; src
		mov	eax, [edi]
		mov	[esp], eax	; int
		call	_Z13unzLocateFileP5unz_sPKci ; unzLocateFile(unz_s *,char  const*,int)
		test	eax, eax
		jz	short loc_ABDC8
		test	esi, esi
		jz	short loc_ABD74
		mov	dword ptr [esi], 0FFFFFFFFh

loc_ABD74:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+3Cj
		test	ebx, ebx
		mov	eax, 500h
		jz	short loc_ABDB7
		test	bl, 1
		mov	edi, ebx
		mov	edx, 101Ch
		jnz	loc_ABE60

loc_ABD8D:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+138j
		test	edi, 2
		jnz	loc_ABE50

loc_ABD99:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+12Bj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jnz	short loc_ABE20
		and	edx, 1
		jnz	short loc_ABE10

loc_ABDAC:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+FBj
		mov	dword ptr [ebx], 0FFFFFFFFh
		mov	eax, 500h

loc_ABDB7:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+4Bj
					; TUnzip::Find(char  const*,bool,int *,ZIPENTRY	*)+EEj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ABDC8:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+38j
		cmp	dword ptr [edi+4], 0FFFFFFFFh
		jz	short loc_ABDD8
		mov	eax, [edi]
		mov	[esp], eax
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)

loc_ABDD8:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+9Cj
		mov	eax, [edi]
		mov	dword ptr [edi+4], 0FFFFFFFFh
		test	esi, esi
		mov	eax, [eax+10h]
		jz	short loc_ABDEA
		mov	[esi], eax

loc_ABDEA:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+B6j
		test	ebx, ebx
		jz	short loc_ABE38
		mov	[ebp+arg_8], ebx
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_0], edi
		mov	ebx, [ebp+var_C]
		mov	[ebp+src], eax
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN6TUnzip3GetEiP8ZIPENTRY ; TUnzip::Get(int,ZIPENTRY *)
; ---------------------------------------------------------------------------
		align 10h

loc_ABE10:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+7Aj
					; TUnzip::Find(char  const*,bool,int *,ZIPENTRY	*)+101j
		mov	byte ptr [edi],	0
		mov	eax, 500h
		mov	dword ptr [ebx], 0FFFFFFFFh
		jmp	short loc_ABDB7
; ---------------------------------------------------------------------------

loc_ABE20:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+75j
		mov	word ptr [edi],	0
		add	edi, 2
		and	edx, 1
		jz	loc_ABDAC
		jmp	short loc_ABE10
; ---------------------------------------------------------------------------
		align 8

loc_ABE38:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+BCj
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ABE50:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+63j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_ABD99
; ---------------------------------------------------------------------------

loc_ABE60:				; CODE XREF: TUnzip::Find(char	const*,bool,int	*,ZIPENTRY *)+57j
		mov	byte ptr [ebx],	0
		lea	edi, [ebx+1]
		mov	dl, 1Bh
		jmp	loc_ABD8D
_ZN6TUnzip4FindEPKcbPiP8ZIPENTRY endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; EnsureDirectory(char	const*,	char  const*)
_Z15EnsureDirectoryPKcS0_ proc near	; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+344p
					; TUnzip::Unzip(int,void *,uint,uint)+3EDp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		test	edx, edx
		jz	short loc_ABE82
		cmp	byte ptr [edx],	0
		jnz	short loc_ABE88

loc_ABE82:				; CODE XREF: EnsureDirectory(char  const*,char	const*)+Bj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ABE88:				; CODE XREF: EnsureDirectory(char  const*,char	const*)+10j
		pop	ebp
		jmp	_Z15EnsureDirectoryPKcS0__part_3
_Z15EnsureDirectoryPKcS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl TUnzip__Unzip(int, int, char *s, int, int)
_ZN6TUnzip5UnzipEiPvjj proc near	; CODE XREF: UnzipItem(HZIP__ *,int,void *,uint,uint)+62p

var_60A4	= dword	ptr -60A4h
fd		= dword	ptr -60A0h
var_609C	= dword	ptr -609Ch
buf		= byte ptr -608Ch
var_208C	= byte ptr -208Ch
var_2088	= byte ptr -2088h
var_1087	= byte ptr -1087h
var_1084	= dword	ptr -1084h
var_107C	= dword	ptr -107Ch
var_1071	= byte ptr -1071h
tvp		= byte ptr -1070h
var_106C	= dword	ptr -106Ch
var_1068	= dword	ptr -1068h
var_1064	= dword	ptr -1064h
stat_buf	= byte ptr -70h
var_5F		= byte ptr -5Fh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
s		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	eax, 10000h
		mov	ebp, esp
		sub	esp, 60B8h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_10]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		lea	edx, [esi-1]
		cmp	edx, 2
		jbe	short loc_ABEC8

loc_ABEB8:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+62j
					; TUnzip::Unzip(int,void *,uint,uint)+1B2j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_ABEC8:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+26j
		cmp	esi, 3
		jz	loc_AC108
		cmp	dword ptr [ebx+4], 0FFFFFFFFh
		jz	short loc_ABEE1
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)

loc_ABEE1:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+45j
		mov	edx, [ebx]
		mov	dword ptr [ebx+4], 0FFFFFFFFh
		mov	eax, 10000h
		cmp	edi, [edx+4]
		jge	short loc_ABEB8
		mov	eax, [edx+10h]
		cmp	edi, eax
		jl	loc_AC1E8

loc_ABEFF:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+365j
		cmp	edi, eax
		jle	short loc_ABF17
		nop
		lea	esi, [esi+0]

loc_ABF08:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+85j
		mov	[esp], edx
		call	_Z15unzGoToNextFileP5unz_s ; unzGoToNextFile(unz_s *)
		mov	edx, [ebx]
		cmp	edi, [edx+10h]
		jg	short loc_ABF08

loc_ABF17:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+71j
		lea	eax, [ebp+var_208C]
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	[esp], ebx
		call	_ZN6TUnzip3GetEiP8ZIPENTRY ; TUnzip::Get(int,ZIPENTRY *)
		test	[ebp+var_1087],	40h
		jnz	loc_AC1B0
		mov	edx, [ebp+s]
		cmp	esi, 1
		mov	[ebp+fd], edx
		jz	loc_AC036
		movzx	eax, byte ptr [edx]
		mov	edi, edx
		test	al, al
		jnz	short loc_ABF62
		jmp	loc_AC015
; ---------------------------------------------------------------------------
		align 10h

loc_ABF60:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+E8j
		mov	edx, ecx

loc_ABF62:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+C3j
		cmp	al, 5Ch
		jz	short loc_ABF6D
		lea	ecx, [edx+1]
		cmp	al, 2Fh
		jnz	short loc_ABF72

loc_ABF6D:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+D4j
		lea	edi, [edx+1]
		mov	ecx, edi

loc_ABF72:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+DBj
		movzx	eax, byte ptr [edx+1]
		test	al, al
		jnz	short loc_ABF60
		cmp	edi, [ebp+s]
		jz	loc_AC015
		mov	edx, [ebp+s]
		lea	eax, [ebp+tvp]
		mov	[esp], eax	; dest
		mov	[esp+4], edx	; src
		call	strcpy
		sub	edi, [ebp+s]
		mov	[ebp+edi+var_1071], 0
		movzx	eax, [ebp+tvp]
		cmp	al, 5Ch
		jz	loc_AC200
		cmp	al, 2Fh
		jz	loc_AC200
		xor	edx, edx
		cmp	[ebp+tvp+1], 3Ah
		setz	dl
		mov	[ebp+fd], edx

loc_ABFCC:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+37Aj
		lea	eax, [ebp+tvp]
		mov	dword ptr [esp+4], offset needle ; "../"
		mov	[esp], eax	; haystack
		call	strstr
		lea	edx, [ebp+tvp]
		mov	dword ptr [esp+4], offset a___0	; "..\\"
		mov	[esp], edx	; haystack
		mov	edi, eax
		call	strstr
		test	eax, eax
		setnz	al
		test	edi, edi
		setnz	dl
		or	eax, edx
		movzx	eax, al
		or	eax, [ebp+fd]
		jz	loc_AC26A

loc_AC015:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+C5j
					; TUnzip::Unzip(int,void *,uint,uint)+EDj ...
		mov	edx, [ebp+s]
		mov	dword ptr [esp+8], 1FFh	; int
		mov	dword ptr [esp+4], 41h ; oflag
		mov	[esp], edx	; s
		call	__wrap_open
		mov	[ebp+fd], eax

loc_AC036:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+B6j
		cmp	[ebp+fd], 0FFFFFFFFh
		mov	eax, 200h
		jz	loc_ABEB8
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z18unzOpenCurrentFileP5unz_s ;	unzOpenCurrentFile(unz_s *)
		mov	[ebp+var_609C],	esi
		mov	esi, [ebp+fd]
		db	66h
		nop

loc_AC060:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+211j
		lea	eax, [ebp+buf]
		mov	dword ptr [esp+8], 4000h
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z18unzReadCurrentFileP5unz_sPvj ; unzReadCurrentFile(unz_s *,void *,uint)
		cmp	eax, 0
		mov	edi, eax
		jl	short loc_AC0A3
		jz	loc_AC287
		lea	edx, [ebp+buf]
		mov	[esp+8], eax	; n
		mov	[esp+4], edx	; buf
		mov	[esp], esi	; fd
		call	write
		cmp	edi, eax
		jz	short loc_AC060

loc_AC0A3:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+1F1j
		mov	esi, [ebp+var_609C]
		mov	edi, 1

loc_AC0AE:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+3FFj
		lea	eax, [ebp+stat_buf]
		mov	dword ptr [esp], 3 ; ver
		mov	[esp+8], eax	; stat_buf
		mov	eax, [ebp+fd]
		mov	[esp+4], eax	; fildes
		call	__fxstat
		test	[ebp+var_5F], 80h
		jnz	loc_AC221

loc_AC0D5:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+3D5j
		cmp	esi, 1
		jz	short loc_AC0E8
		mov	eax, [ebp+fd]
		mov	[esp], eax	; fd
		call	close

loc_AC0E8:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+248j
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)
		mov	eax, edi
		shl	eax, 1Fh
		sar	eax, 1Fh
		and	eax, 400h
		jmp	loc_ABEB8
; ---------------------------------------------------------------------------
		align 8

loc_AC108:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+3Bj
		mov	eax, [ebx+4]
		cmp	eax, edi
		jz	short loc_AC162
		cmp	eax, 0FFFFFFFFh
		jz	short loc_AC11E
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)

loc_AC11E:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+282j
		mov	edx, [ebx]
		mov	dword ptr [ebx+4], 0FFFFFFFFh
		mov	eax, 10000h
		cmp	edi, [edx+4]
		jge	loc_ABEB8
		mov	eax, [edx+10h]
		cmp	edi, eax
		jl	loc_AC20F

loc_AC140:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+38Cj
		cmp	edi, eax
		jle	short loc_AC157
		lea	esi, [esi+0]

loc_AC148:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+2C5j
		mov	[esp], edx
		call	_Z15unzGoToNextFileP5unz_s ; unzGoToNextFile(unz_s *)
		mov	edx, [ebx]
		cmp	edi, [edx+10h]
		jg	short loc_AC148

loc_AC157:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+2B2j
		mov	[esp], edx
		call	_Z18unzOpenCurrentFileP5unz_s ;	unzOpenCurrentFile(unz_s *)
		mov	[ebx+4], edi

loc_AC162:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+27Dj
		mov	eax, [ebp+arg_C]
		mov	edx, [ebp+s]
		mov	[esp+8], eax
		mov	[esp+4], edx
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z18unzReadCurrentFileP5unz_sPvj ; unzReadCurrentFile(unz_s *,void *,uint)
		mov	esi, eax
		mov	eax, 600h
		test	esi, esi
		jg	loc_ABEB8
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)
		cmp	esi, 1
		mov	dword ptr [ebx+4], 0FFFFFFFFh
		sbb	eax, eax
		not	eax
		and	eax, 5000000h
		jmp	loc_ABEB8
; ---------------------------------------------------------------------------
		align 10h

loc_AC1B0:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+A4j
		xor	eax, eax
		cmp	esi, 1
		jz	loc_ABEB8
		lea	edx, [ebp+var_2088]
		add	ebx, 1028h
		mov	[ebp+var_60A4],	eax
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_Z15EnsureDirectoryPKcS0_ ; EnsureDirectory(char  const*,char  const*)
		mov	eax, [ebp+var_60A4]
		jmp	loc_ABEB8
; ---------------------------------------------------------------------------
		align 8

loc_AC1E8:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+69j
		mov	[esp], edx
		call	_Z16unzGoToFirstFileP5unz_s ; unzGoToFirstFile(unz_s *)
		mov	edx, [ebx]
		mov	eax, [edx+10h]
		jmp	loc_ABEFF
; ---------------------------------------------------------------------------
		align 10h

loc_AC200:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+11Cj
					; TUnzip::Unzip(int,void *,uint,uint)+124j
		mov	[ebp+fd], 1
		jmp	loc_ABFCC
; ---------------------------------------------------------------------------

loc_AC20F:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+2AAj
		mov	[esp], edx
		call	_Z16unzGoToFirstFileP5unz_s ; unzGoToFirstFile(unz_s *)
		mov	edx, [ebx]
		mov	eax, [edx+10h]
		jmp	loc_AC140
; ---------------------------------------------------------------------------

loc_AC221:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+23Fj
		mov	[ebp+var_106C],	0
		mov	eax, [ebp+var_1084]
		mov	[ebp+var_1064],	0
		mov	dword ptr [ebp+tvp], eax
		mov	eax, [ebp+var_107C]
		mov	[ebp+var_1068],	eax
		lea	eax, [ebp+tvp]
		mov	[esp+4], eax	; tvp
		mov	eax, [ebp+fd]
		mov	[esp], eax	; fd
		call	futimes
		jmp	loc_AC0D5
; ---------------------------------------------------------------------------

loc_AC26A:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+17Fj
		lea	eax, [ebp+tvp]
		mov	[esp+4], eax
		lea	eax, [ebx+1028h]
		mov	[esp], eax
		call	_Z15EnsureDirectoryPKcS0_ ; EnsureDirectory(char  const*,char  const*)
		jmp	loc_AC015
; ---------------------------------------------------------------------------

loc_AC287:				; CODE XREF: TUnzip::Unzip(int,void *,uint,uint)+1F3j
		mov	esi, [ebp+var_609C]
		xor	edi, edi
		jmp	loc_AC0AE
_ZN6TUnzip5UnzipEiPvjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TUnzip::Close(void)
_ZN6TUnzip5CloseEv proc	near		; CODE XREF: CloseZipU(HZIP__ *)+5Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [ebx+4], 0FFFFFFFFh
		jz	short loc_AC2BA
		mov	eax, [ebx]
		mov	[esp], eax
		call	_Z19unzCloseCurrentFileP5unz_s ; unzCloseCurrentFile(unz_s *)

loc_AC2BA:				; CODE XREF: TUnzip::Close(void)+Ej
		mov	eax, [ebx]
		mov	dword ptr [ebx+4], 0FFFFFFFFh
		test	eax, eax
		jz	short loc_AC2CF
		mov	[esp], eax	; ptr
		call	_Z8unzCloseP5unz_s ; unzClose(unz_s *)

loc_AC2CF:				; CODE XREF: TUnzip::Close(void)+25j
		mov	dword ptr [ebx], 0
		add	esp, 14h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_ZN6TUnzip5CloseEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FormatZipMessageU(int, void *dest, int)
_Z17FormatZipMessageUjPcj proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	edx, offset aCallerCanOnlyG ; "Caller: can only	get memory of a	memory"...
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, 2Fh
		mov	[ebp+var_8], esi
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+dest]
		cmp	eax, 1
		cmovz	eax, ds:lasterrorU
		cmp	eax, 20000h
		jz	short loc_AC370
		jbe	loc_AC3B0
		cmp	eax, 70000h
		mov	ebx, 34h
		mov	edx, offset aCallerTheFileH ; "Caller: the file	had already been parti"...
		jz	short loc_AC370
		jbe	loc_AC410
		cmp	eax, 2000000h
		mov	ebx, 26h
		mov	edx, offset aZipBugTryingTo ; "Zip-bug:	trying to seek the unseekable"
		jz	short loc_AC370
		jbe	loc_AC4D8
		cmp	eax, 4000000h
		mov	ebx, 2Eh
		mov	edx, offset aZipBugTriedToC ; "Zip-bug:	tried to change	mind, but not "...
		jz	short loc_AC370
		cmp	eax, 5000000h
		mov	bl, 29h
		mov	edx, offset aZipBugAnIntern ; "Zip-bug:	an internal error during flati"...
		jnz	loc_AC400
		lea	esi, [esi+0]

loc_AC370:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+31j
					; FormatZipMessageU(uint,char *,uint)+48j ...
		test	ecx, ecx
		jz	short loc_AC397
		test	esi, esi
		jz	short loc_AC397
		lea	eax, [ebx+1]
		mov	[esp+4], edx	; src
		lea	edi, [ecx-1]
		cmp	ecx, eax
		mov	[esp], esi	; dest
		cmovnb	edi, ebx
		mov	[esp+8], edi	; n
		call	memcpy
		mov	byte ptr [esi+edi], 0

loc_AC397:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+92j
					; FormatZipMessageU(uint,char *,uint)+96j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AC3B0:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+33j
		cmp	eax, 400h
		mov	bl, 15h
		mov	edx, offset aErrorWritingTo ; "Error writing to	file"
		jz	short loc_AC370
		jbe	loc_AC450
		cmp	eax, 700h
		mov	ebx, 23h
		mov	edx, offset aZipfileIsCorru ; "Zipfile is corrupt or not a zipfile"
		jz	short loc_AC370
		ja	loc_AC490
		cmp	eax, 500h
		mov	bl, 1Dh
		mov	edx, offset aFileNotFoundIn ; "File not	found in the zipfile"
		jz	short loc_AC370
		cmp	eax, 600h
		mov	bl, 18h
		mov	edx, offset aStillMoreDataT ; "Still more data to unzip"
		jz	loc_AC370
		nop
		lea	esi, [esi+0]

loc_AC400:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+84j
					; FormatZipMessageU(uint,char *,uint)+169j ...
		mov	ebx, 17h
		mov	edx, offset aUnknownZipResu ; "unknown zip result code"
		jmp	loc_AC370
; ---------------------------------------------------------------------------
		align 10h

loc_AC410:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+4Aj
		cmp	eax, 40000h
		mov	bl, 22h
		mov	edx, offset aCallerThereWas ; "Caller: there was a previous error"
		jz	loc_AC370
		jbe	loc_AC508
		cmp	eax, 50000h
		mov	ebx, 34h
		mov	edx, offset aCallerAddition ; "Caller: additions to the	zip have alrea"...
		jz	loc_AC370
		cmp	eax, 60000h
		mov	bl, 2Eh
		mov	edx, offset aZipBugTheAntic ; "Zip-bug:	the anticipated	size turned ou"...
		jnz	short loc_AC400
		jmp	loc_AC370
; ---------------------------------------------------------------------------

loc_AC450:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+DEj
		cmp	eax, 100h
		mov	bl, 18h
		mov	edx, offset aCuldnTDuplicat ; "Culdn't duplicate handle"
		jz	loc_AC370
		jbe	short loc_AC4C0
		cmp	eax, 200h
		mov	ebx, 19h
		mov	edx, offset aCouldnTCreateO ; "Couldn't create/open file"
		jz	loc_AC370
		cmp	eax, 300h
		mov	edx, offset byte_1EE00F
		jnz	loc_AC400
		jmp	loc_AC370
; ---------------------------------------------------------------------------
		align 10h

loc_AC490:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+F5j
		cmp	eax, 800h
		mov	ebx, 12h
		mov	edx, offset aErrorReadingFi ; "Error reading file"
		jz	loc_AC370
		cmp	eax, 10000h
		mov	bl, 18h
		mov	edx, offset aCallerFaultyAr ; "Caller: faulty arguments"
		jnz	loc_AC400
		jmp	loc_AC370
; ---------------------------------------------------------------------------
		align 10h

loc_AC4C0:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+182j
		test	eax, eax
		mov	bl, 7
		mov	edx, offset aSuccess ; "Success"
		jz	loc_AC370
		nop
		jmp	loc_AC400
; ---------------------------------------------------------------------------
		align 4

loc_AC4D8:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+61j
		cmp	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		mov	bl, 2Ah
		mov	edx, offset aCallerMixingCr ; "Caller: mixing creation and opening of "...
		jz	loc_AC370
		cmp	eax, 1000000h
		mov	bl, 2Eh
		mov	edx, offset aZipBugInternal ; "Zip-bug:	internal initialisation	not co"...
		jnz	loc_AC400
		jmp	loc_AC370
; ---------------------------------------------------------------------------
		align 8

loc_AC508:				; CODE XREF: FormatZipMessageU(uint,char *,uint)+142j
		cmp	eax, 30000h
		mov	bl, 35h
		mov	edx, offset aCallerNotEnoug ; "Caller: not enough space	allocated for "...
		jnz	loc_AC400
		jmp	loc_AC370
_Z17FormatZipMessageUjPcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl OpenZipU(int s, int, int)
_Z8OpenZipUPvjj	proc near		; CODE XREF: SafeUnzipMemory(void  const*,int,void *,int)+1Dp

s		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	dword ptr [esp], 2028h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax], 0
		mov	ebx, eax
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	dword ptr [eax+1024h], 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		mov	[esp], ebx	; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_4]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+s]
		mov	[esp+4], eax	; s
		call	_ZN6TUnzip4OpenEPvjj ; TUnzip::Open(void *,uint,uint)
		test	eax, eax
		mov	ds:lasterrorU, eax
		jnz	short loc_AC590
		mov	dword ptr [esp], 8
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax], 1
		mov	[eax+4], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AC590:				; CODE XREF: OpenZipU(void *,uint,uint)+50j
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		add	esp, 14h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_Z8OpenZipUPvjj	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetZipItemA(HZIP__ *,	int, ZIPENTRY *)
_Z11GetZipItemAP6HZIP__iP8ZIPENTRY proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_AC5C8
		cmp	dword ptr [eax], 1
		jz	short loc_AC5E0
		mov	ds:lasterrorU, offset _ZN18SVC_PacketEntitiesD2Ev ; SVC_PacketEntities::~SVC_PacketEntities()
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AC5C8:				; CODE XREF: GetZipItemA(HZIP__	*,int,ZIPENTRY *)+Bj
		mov	ds:lasterrorU, 10000h
		mov	eax, 10000h
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AC5E0:				; CODE XREF: GetZipItemA(HZIP__	*,int,ZIPENTRY *)+10j
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	eax, [eax+4]
		mov	[esp], eax
		call	_ZN6TUnzip3GetEiP8ZIPENTRY ; TUnzip::Get(int,ZIPENTRY *)
		mov	ds:lasterrorU, eax
		leave
		retn
_Z11GetZipItemAP6HZIP__iP8ZIPENTRY endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetZipItemW(HZIP__ *,	int, ZIPENTRYW *)
_Z11GetZipItemWP6HZIP__iP9ZIPENTRYW proc near

var_1024	= dword	ptr -1024h
src		= byte ptr -1020h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 1034h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		test	eax, eax
		jz	short loc_AC638
		cmp	dword ptr [eax], 1
		jz	short loc_AC650
		mov	ds:lasterrorU, offset _ZN18SVC_PacketEntitiesD2Ev ; SVC_PacketEntities::~SVC_PacketEntities()
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()

loc_AC628:				; CODE XREF: GetZipItemW(HZIP__	*,int,ZIPENTRYW	*)+73j
					; GetZipItemW(HZIP__ *,int,ZIPENTRYW *)+CDj
		add	esp, 1034h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AC638:				; CODE XREF: GetZipItemW(HZIP__	*,int,ZIPENTRYW	*)+12j
		mov	ds:lasterrorU, 10000h
		add	esp, 1034h
		mov	eax, 10000h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AC650:				; CODE XREF: GetZipItemW(HZIP__	*,int,ZIPENTRYW	*)+17j
		lea	edx, [ebp+var_1024]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	eax, [eax+4]
		mov	[esp], eax
		call	_ZN6TUnzip3GetEiP8ZIPENTRY ; TUnzip::Get(int,ZIPENTRY *)
		test	eax, eax
		mov	ds:lasterrorU, eax
		jnz	short loc_AC628
		mov	eax, [ebp+var_1024]
		mov	[ebx], eax
		mov	eax, [ebp+var_20]
		mov	[ebx+1004h], eax
		mov	eax, [ebp+var_1C]
		mov	[ebx+1008h], eax
		mov	eax, [ebp+var_18]
		mov	[ebx+100Ch], eax
		mov	eax, [ebp+var_14]
		mov	[ebx+1010h], eax
		mov	eax, [ebp+var_10]
		mov	[ebx+1014h], eax
		mov	eax, [ebp+var_C]
		mov	[ebx+1018h], eax
		lea	eax, [ebp+src]
		add	ebx, 4
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	strcpy
		mov	eax, ds:lasterrorU
		jmp	loc_AC628
_Z11GetZipItemWP6HZIP__iP9ZIPENTRYW endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FindZipItemA(int,	char *src, char, int, int)
_Z12FindZipItemAP6HZIP__PKcbPiP8ZIPENTRY proc near

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		movzx	edx, [ebp+arg_8]
		test	eax, eax
		jz	short loc_AC710
		cmp	dword ptr [eax], 1
		jz	short loc_AC728
		mov	ds:lasterrorU, offset _ZN18SVC_PacketEntitiesD2Ev ; SVC_PacketEntities::~SVC_PacketEntities()
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AC710:				; CODE XREF: FindZipItemA(HZIP__ *,char	 const*,bool,int *,ZIPENTRY *)+Fj
		mov	ds:lasterrorU, 10000h
		mov	eax, 10000h
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AC728:				; CODE XREF: FindZipItemA(HZIP__ *,char	 const*,bool,int *,ZIPENTRY *)+14j
		mov	ecx, [ebp+arg_10]
		movzx	edx, dl
		mov	[esp+8], edx	; int
		mov	edx, [ebp+src]
		mov	[esp+10h], ecx	; int
		mov	ecx, [ebp+arg_C]
		mov	[esp+4], edx	; src
		mov	[esp+0Ch], ecx	; int
		mov	eax, [eax+4]
		mov	[esp], eax	; int
		call	_ZN6TUnzip4FindEPKcbPiP8ZIPENTRY ; TUnzip::Find(char  const*,bool,int *,ZIPENTRY *)
		mov	ds:lasterrorU, eax
		leave
		retn
_Z12FindZipItemAP6HZIP__PKcbPiP8ZIPENTRY endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FindZipItemW(HZIP__ *, char  const*, bool, int *, ZIPENTRYW *)
_Z12FindZipItemWP6HZIP__PKcbPiP9ZIPENTRYW proc near

var_1024	= dword	ptr -1024h
src		= byte ptr -1020h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 1044h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_10]
		movzx	edx, [ebp+arg_8]
		test	eax, eax
		jz	short loc_AC798
		cmp	dword ptr [eax], 1
		jz	short loc_AC7B0
		mov	ds:lasterrorU, offset _ZN18SVC_PacketEntitiesD2Ev ; SVC_PacketEntities::~SVC_PacketEntities()
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()

loc_AC78C:				; CODE XREF: FindZipItemW(HZIP__ *,char	 const*,bool,int *,ZIPENTRYW *)+81j
					; FindZipItemW(HZIP__ *,char  const*,bool,int *,ZIPENTRYW *)+DBj
		add	esp, 1044h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_AC798:				; CODE XREF: FindZipItemW(HZIP__ *,char	 const*,bool,int *,ZIPENTRYW *)+16j
		mov	ds:lasterrorU, 10000h
		add	esp, 1044h
		mov	eax, 10000h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AC7B0:				; CODE XREF: FindZipItemW(HZIP__ *,char	 const*,bool,int *,ZIPENTRYW *)+1Bj
		lea	ecx, [ebp+var_1024]
		movzx	edx, dl
		mov	[esp+10h], ecx	; int
		mov	ecx, [ebp+arg_C]
		mov	[esp+8], edx	; int
		mov	edx, [ebp+arg_4]
		mov	[esp+0Ch], ecx	; int
		mov	[esp+4], edx	; src
		mov	eax, [eax+4]
		mov	[esp], eax	; int
		call	_ZN6TUnzip4FindEPKcbPiP8ZIPENTRY ; TUnzip::Find(char  const*,bool,int *,ZIPENTRY *)
		test	eax, eax
		mov	ds:lasterrorU, eax
		jnz	short loc_AC78C
		mov	eax, [ebp+var_1024]
		mov	[ebx], eax
		mov	eax, [ebp+var_20]
		mov	[ebx+1004h], eax
		mov	eax, [ebp+var_1C]
		mov	[ebx+1008h], eax
		mov	eax, [ebp+var_18]
		mov	[ebx+100Ch], eax
		mov	eax, [ebp+var_14]
		mov	[ebx+1010h], eax
		mov	eax, [ebp+var_10]
		mov	[ebx+1014h], eax
		mov	eax, [ebp+var_C]
		mov	[ebx+1018h], eax
		lea	eax, [ebp+src]
		add	ebx, 4
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	strcpy
		mov	eax, ds:lasterrorU
		jmp	loc_AC78C
_Z12FindZipItemWP6HZIP__PKcbPiP9ZIPENTRYW endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl UnzipItem(int, int, char *s, int,	int)
_Z9UnzipItemP6HZIP__iPvjj proc near	; CODE XREF: SafeUnzipMemory(void  const*,int,void *,int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
s		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_AC868
		cmp	dword ptr [eax], 1
		jz	short loc_AC880
		mov	ds:lasterrorU, offset _ZN18SVC_PacketEntitiesD2Ev ; SVC_PacketEntities::~SVC_PacketEntities()
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AC868:				; CODE XREF: UnzipItem(HZIP__ *,int,void *,uint,uint)+Bj
		mov	ds:lasterrorU, 10000h
		mov	eax, 10000h
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AC880:				; CODE XREF: UnzipItem(HZIP__ *,int,void *,uint,uint)+10j
		mov	edx, [ebp+arg_10]
		mov	[esp+10h], edx	; int
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx	; int
		mov	edx, [ebp+s]
		mov	[esp+8], edx	; s
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx	; int
		mov	eax, [eax+4]
		mov	[esp], eax	; int
		call	_ZN6TUnzip5UnzipEiPvjj ; TUnzip::Unzip(int,void	*,uint,uint)
		mov	ds:lasterrorU, eax
		leave
		retn
_Z9UnzipItemP6HZIP__iPvjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CloseZipU(void *)
_Z9CloseZipUP6HZIP__ proc near		; CODE XREF: SafeUnzipMemory(void  const*,int,void *,int)+55p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		test	ebx, ebx
		jz	short loc_AC8E8
		cmp	dword ptr [ebx], 1
		jz	short loc_AC908
		mov	ds:lasterrorU, offset _ZN18SVC_PacketEntitiesD2Ev ; SVC_PacketEntities::~SVC_PacketEntities()
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()

loc_AC8D7:				; CODE XREF: CloseZipU(HZIP__ *)+7Dj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AC8E8:				; CODE XREF: CloseZipU(HZIP__ *)+11j
		mov	ebx, [ebp+var_8]
		mov	eax, 10000h
		mov	ds:lasterrorU, 10000h
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AC908:				; CODE XREF: CloseZipU(HZIP__ *)+16j
		mov	esi, [ebx+4]
		mov	[esp], esi
		call	_ZN6TUnzip5CloseEv ; TUnzip::Close(void)
		mov	[esp], esi	; void *
		mov	ds:lasterrorU, eax
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, ds:lasterrorU
		jmp	short loc_AC8D7
_Z9CloseZipUP6HZIP__ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsZipHandleU(HZIP__ *)
_Z12IsZipHandleUP6HZIP__ proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jz	short loc_AC945
		cmp	dword ptr [edx], 1
		setz	al

loc_AC945:				; CODE XREF: IsZipHandleU(HZIP__ *)+Dj
		pop	ebp
		retn
_Z12IsZipHandleUP6HZIP__ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl SafeUnzipMemory(int s, int, int, int)
_Z15SafeUnzipMemoryPKviPvi proc	near

s		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], 3 ; int
		mov	[esp+4], eax	; int
		mov	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z8OpenZipUPvjj	; OpenZipU(void	*,uint,uint)
		mov	ebx, eax
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_AC9BD
		mov	eax, [ebp+arg_C]
		mov	dword ptr [esp+10h], 3 ; int
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], ebx	; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax	; s
		call	_Z9UnzipItemP6HZIP__iPvjj ; UnzipItem(HZIP__ *,int,void	*,uint,uint)
		mov	esi, eax

loc_AC9A2:				; CODE XREF: .text:000AC9D6j
		mov	[esp], ebx	; void *
		call	_Z9CloseZipUP6HZIP__ ; CloseZipU(HZIP__	*)
		cmp	esi, 600h
		setnz	al
		test	esi, esi
		setnz	dl
		and	eax, edx
		xor	eax, 1

loc_AC9BD:				; CODE XREF: SafeUnzipMemory(void  const*,int,void *,int)+28j
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z15SafeUnzipMemoryPKviPvi endp

; ---------------------------------------------------------------------------
		mov	[esp], eax
		mov	esi, 700h
		call	__cxa_begin_catch
		call	__cxa_end_catch
		jmp	short loc_AC9A2
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TTreeState::TTreeState(void)
_ZN10TTreeStateC2Ev proc near		; CODE XREF: TZip::ideflate(zlist *)+21p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		lea	edx, [eax+9E8h]
		mov	[eax+0F7Ch], eax
		mov	[eax+0F80h], edx
		lea	edx, [eax+8F4h]
		mov	[eax+0F98h], edx
		lea	edx, [eax+0E68h]
		mov	[eax+0F9Ch], edx
		lea	edx, [eax+0EE0h]
		mov	dword ptr [eax+0F84h], offset _ZL11extra_lbits ; extra_lbits
		mov	dword ptr [eax+0F88h], 101h
		mov	dword ptr [eax+0F8Ch], 11Eh
		mov	dword ptr [eax+0F90h], 0Fh
		mov	dword ptr [eax+0F94h], 0
		mov	dword ptr [eax+0FA0h], offset _ZL11extra_dbits ; extra_dbits
		mov	dword ptr [eax+0FA4h], 0
		mov	dword ptr [eax+0FA8h], 1Eh
		mov	dword ptr [eax+0FACh], 0Fh
		mov	dword ptr [eax+0FB0h], 0
		mov	[eax+0FB4h], edx
		mov	dword ptr [eax+0FB8h], 0
		mov	dword ptr [eax+0FBCh], offset _ZL12extra_blbits	; extra_blbits
		mov	dword ptr [eax+0FC0h], 0
		mov	dword ptr [eax+0FC4h], 13h
		mov	dword ptr [eax+0FC8h], 7
		mov	dword ptr [eax+0FCCh], 0
		mov	dword ptr [eax+1AF18h],	0
		mov	dword ptr [eax+1AF1Ch],	0
		mov	dword ptr [eax+1AF20h],	0
		pop	ebp
		retn
_ZN10TTreeStateC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Assert(TState	&, bool, char  const*)
_Z6AssertR6TStatebPKc proc near

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jnz	short loc_ACAF5
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		mov	[eax+6AFA4h], edx

loc_ACAF5:				; CODE XREF: Assert(TState &,bool,char	const*)+7j
		pop	ebp
		retn
_Z6AssertR6TStatebPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Trace(char  const*, ...)
_Z5TracePKcz	proc near		; CODE XREF: gen_bitlen(TState &,tree_desc *)+13Cp
					; gen_bitlen(TState &,tree_desc	*)+224p ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z5TracePKcz	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Tracec(bool, char  const*, ...)
_Z6TracecbPKcz	proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z6TracecbPKcz	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; init_block(TState &)
_Z10init_blockR6TState proc near	; CODE XREF: ct_init(TState &,ushort *)+2C0j
					; flush_block(TState &,char *,ulong,int)+1B8p

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		nop
		lea	esi, [esi+0]

loc_ACB30:				; CODE XREF: init_block(TState &)+1Fj
		mov	word ptr [edx+eax*4+14h], 0
		add	eax, 1
		cmp	eax, 11Eh
		jnz	short loc_ACB30
		xor	ax, ax
		lea	esi, [esi+0]

loc_ACB48:				; CODE XREF: init_block(TState &)+38j
		mov	word ptr [edx+eax*4+908h], 0
		add	eax, 1
		cmp	eax, 1Eh
		jnz	short loc_ACB48
		xor	al, al
		lea	esi, [esi+0]

loc_ACB60:				; CODE XREF: init_block(TState &)+50j
		mov	word ptr [edx+eax*4+0EF4h], 0
		add	eax, 1
		cmp	eax, 13h
		jnz	short loc_ACB60
		mov	word ptr [edx+414h], 1
		mov	dword ptr [edx+1AF40h],	0
		mov	dword ptr [edx+1AF3Ch],	0
		mov	dword ptr [edx+1AF34h],	0
		mov	dword ptr [edx+1AF30h],	0
		mov	dword ptr [edx+1AF2Ch],	0
		mov	byte ptr [edx+1AF38h], 0
		mov	byte ptr [edx+1AF39h], 1
		pop	ebp
		retn
_Z10init_blockR6TState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; pqdownheap(TState &, ct_data *, int)
_Z10pqdownheapR6TStateP7ct_datai proc near
					; CODE XREF: build_tree(TState &,tree_desc *)+12Bp
					; build_tree(TState &,tree_desc	*)+16Ep ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ebx, [ecx+18F8h]
		lea	edi, [eax+400h]
		add	eax, eax
		mov	edx, [ecx+edi*4+4]
		cmp	eax, ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_20], edx
		jg	loc_ACCA3
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_24], edi
		lea	esi, [esi+edx*4]
		mov	[ebp+var_1C], esi
		jmp	short loc_ACC48
; ---------------------------------------------------------------------------
		align 10h

loc_ACC00:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+8Bj
		mov	edx, [ecx+eax*4+1004h]
		mov	[ebp+var_28], eax
		mov	ebx, [ebp+arg_4]
		movzx	ebx, word ptr [ebx+edx*4]
		mov	[ebp+var_18], bx

loc_ACC15:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+BCj
					; pqdownheap(TState &,ct_data *,int)+133j
		movzx	edi, [ebp+var_18]
		mov	esi, [ebp+var_1C]
		cmp	[esi], di
		jb	short loc_ACCA0

loc_ACC21:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+D4j
		jz	loc_ACCB8

loc_ACC27:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+10Aj
		mov	eax, [ebp+var_28]
		mov	esi, [ebp+var_24]
		add	eax, eax
		cmp	[ebp+var_10], eax
		mov	[ecx+esi*4+4], edx
		jl	loc_ACD00
		mov	edi, [ebp+var_28]
		add	edi, 400h
		mov	[ebp+var_24], edi

loc_ACC48:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+3Bj
		cmp	[ebp+var_10], eax
		jle	short loc_ACC00
		mov	edx, [ecx+eax*4+1008h]
		lea	esi, [eax+1]
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_28], esi
		mov	ebx, [ecx+eax*4+1004h]
		movzx	edi, word ptr [edi+edx*4]
		mov	[ebp+var_14], ebx
		mov	esi, ebx
		mov	[ebp+var_18], di
		mov	edi, [ebp+arg_4]
		movzx	ebx, word ptr [edi+ebx*4]
		cmp	[ebp+var_18], bx
		jb	short loc_ACC15
		jz	short loc_ACCD8
		mov	[ebp+var_18], bx
		mov	esi, [ebp+var_1C]
		movzx	edi, [ebp+var_18]
		mov	[ebp+var_28], eax
		mov	edx, [ebp+var_14]
		cmp	[esi], di
		jnb	short loc_ACC21
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_ACCA0:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+5Fj
					; pqdownheap(TState &,ct_data *,int)+110j
		mov	edi, [ebp+var_24]

loc_ACCA3:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+29j
		mov	eax, [ebp+var_20]
		mov	[ecx+edi*4+4], eax
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ACCB8:				; CODE XREF: pqdownheap(TState &,ct_data *,int):loc_ACC21j
		movzx	eax, byte ptr [ecx+edx+1900h]
		mov	ebx, [ebp+var_20]
		cmp	[ecx+ebx+1900h], al
		ja	loc_ACC27
		jmp	short loc_ACCA0
; ---------------------------------------------------------------------------
		align 8

loc_ACCD8:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+BEj
		movzx	edi, byte ptr [ecx+edx+1900h]
		mov	ebx, edi
		cmp	bl, [ecx+esi+1900h]
		cmovbe	eax, [ebp+var_28]
		cmova	edx, esi
		mov	[ebp+var_28], eax
		jmp	loc_ACC15
; ---------------------------------------------------------------------------
		align 10h

loc_ACD00:				; CODE XREF: pqdownheap(TState &,ct_data *,int)+76j
		mov	ebx, [ebp+var_28]
		mov	eax, [ebp+var_20]
		lea	edi, [ebx+400h]
		mov	[ecx+edi*4+4], eax
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z10pqdownheapR6TStateP7ct_datai endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; gen_bitlen(TState &, tree_desc *)
_Z10gen_bitlenR6TStateP9tree_desc proc near
					; CODE XREF: build_tree(TState &,tree_desc *)+24Ep

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	edx, [eax]
		mov	ecx, [eax+8]
		mov	ebx, [eax+0Ch]
		mov	edi, [eax+18h]
		mov	[ebp+var_18], edx
		mov	edx, [eax+14h]
		mov	eax, [eax+4]
		mov	[ebp+var_30], ecx
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_10], edi
		mov	[ebp+var_14], edx
		mov	[ebp+var_28], eax
		xor	eax, eax
		lea	esi, [esi+0]

loc_ACD58:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+48j
		mov	word ptr [esi+eax*2+0FE4h], 0
		add	eax, 1
		cmp	eax, 10h
		jnz	short loc_ACD58
		mov	eax, [esi+18FCh]
		mov	ecx, [ebp+var_18]
		mov	eax, [esi+eax*4+1004h]
		mov	word ptr [ecx+eax*4+2],	0
		mov	eax, [esi+18FCh]
		lea	edx, [eax+1]
		cmp	edx, 23Ch
		jg	loc_ACE4D
		lea	ebx, [esi+18F8h]
		mov	[ebp+var_24], 0
		lea	edx, [esi+eax*4+1008h]
		mov	[ebp+var_20], ebx
		lea	esi, [esi+0]

loc_ACDB0:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+11Bj
		mov	ecx, [edx]
		mov	ebx, [ebp+var_18]
		lea	edi, ds:0[ecx*4]
		add	ebx, edi
		mov	[ebp+var_38], edi
		mov	edi, [ebp+var_18]
		movzx	eax, word ptr [ebx+2]
		movzx	edi, word ptr [edi+eax*4+2]
		mov	eax, edi
		add	eax, 1
		cmp	[ebp+var_14], eax
		jge	short loc_ACDDE
		add	[ebp+var_24], 1
		mov	eax, [ebp+var_14]

loc_ACDDE:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+B5j
		cmp	[ebp+var_10], ecx
		mov	[ebx+2], ax
		jl	short loc_ACE35
		add	word ptr [esi+eax*2+0FE4h], 1
		mov	[ebp+var_1C], 0
		cmp	[ebp+var_2C], ecx
		jg	short loc_ACE08
		sub	ecx, [ebp+var_2C]
		mov	edi, [ebp+var_30]
		mov	edi, [edi+ecx*4]
		mov	[ebp+var_1C], edi

loc_ACE08:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+DAj
		movzx	ecx, word ptr [ebx]
		add	eax, [ebp+var_1C]
		mov	ebx, [ebp+var_28]
		imul	eax, ecx
		add	[esi+1AF3Ch], eax
		test	ebx, ebx
		jz	short loc_ACE35
		mov	edi, [ebp+var_28]
		mov	ebx, [ebp+var_38]
		movzx	eax, word ptr [edi+ebx+2]
		add	eax, [ebp+var_1C]
		imul	eax, ecx
		add	[esi+1AF40h], eax

loc_ACE35:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+C5j
					; gen_bitlen(TState &,tree_desc	*)+FCj
		add	edx, 4
		cmp	edx, [ebp+var_20]
		jnz	loc_ACDB0
		mov	edx, [ebp+var_24]
		mov	ebx, 23Dh
		test	edx, edx
		jnz	short loc_ACE55

loc_ACE4D:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+70j
					; gen_bitlen(TState &,tree_desc	*)+1C1j ...
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_ACE55:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+12Bj
		mov	dword ptr [esp], offset	aBitLengthOverf	; "\nbit length	overflow\n"
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	edi, [ebp+var_14]
		mov	eax, [ebp+var_14]
		mov	edx, [ebp+var_14]
		lea	ecx, [edi+7F0h]
		mov	edi, ebx
		mov	ebx, ecx
		mov	ecx, [ebp+var_24]
		sub	eax, 1
		add	edx, 7EFh
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], edx

loc_ACE86:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+1B6j
		mov	eax, [ebp+var_20]
		movzx	edx, word ptr [esi+eax*2+4]
		mov	eax, [ebp+var_1C]
		test	dx, dx
		jnz	short loc_ACEB0
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_ACEA0:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+18Ej
		sub	eax, 1
		movzx	edx, word ptr [esi+eax*2+0FE4h]
		test	dx, dx
		jz	short loc_ACEA0

loc_ACEB0:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+174j
		add	word ptr [esi+eax*2+0FE6h], 2
		sub	edx, 1
		sub	ecx, 2
		mov	[esi+eax*2+0FE4h], dx
		movzx	eax, word ptr [esi+ebx*2+4]
		sub	eax, 1
		test	ecx, ecx
		mov	[esi+ebx*2+4], ax
		jg	short loc_ACE86
		mov	ebx, edi
		mov	edi, eax
		mov	eax, [ebp+var_14]
		test	eax, eax
		jz	loc_ACE4D
		mov	edx, esi
		lea	esi, [esi+0]

loc_ACEF0:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+267j
		movzx	edi, di
		test	edi, edi
		jz	short loc_ACF72
		movzx	ecx, word ptr [ebp+var_14]
		mov	word ptr [ebp+var_1C], cx
		nop

loc_ACF00:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+250j
		sub	ebx, 1
		mov	eax, [edx+ebx*4+1004h]
		cmp	[ebp+var_10], eax
		jl	short loc_ACF6E
		mov	ecx, [ebp+var_18]
		lea	esi, [ecx+eax*4]
		movzx	ecx, word ptr [esi+2]
		mov	word ptr [ebp+var_20], cx
		movzx	ecx, word ptr [ebp+var_1C]
		cmp	word ptr [ebp+var_20], cx
		jz	short loc_ACF6B
		mov	ecx, [ebp+var_14]
		mov	[esp+4], eax
		mov	[ebp+var_34], edx
		mov	dword ptr [esp], offset	aCodeDBitsDD ; "code %d	bits %d->%d\n"
		mov	[esp+0Ch], ecx
		movzx	ecx, word ptr [ebp+var_20]
		mov	[esp+8], ecx
		call	_Z5TracePKcz	; Trace(char  const*,...)
		movzx	eax, word ptr [esi+2]
		mov	ecx, [ebp+var_14]
		mov	edx, [ebp+var_34]
		sub	ecx, eax
		mov	eax, ecx
		movzx	ecx, word ptr [esi]
		imul	eax, ecx
		add	[edx+1AF3Ch], eax
		movzx	eax, word ptr [ebp+var_14]
		mov	[esi+2], ax

loc_ACF6B:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+205j
		sub	edi, 1

loc_ACF6E:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+1EDj
		test	edi, edi
		jnz	short loc_ACF00

loc_ACF72:				; CODE XREF: gen_bitlen(TState &,tree_desc *)+1D5j
		sub	[ebp+var_14], 1
		jz	loc_ACE4D
		mov	ecx, [ebp+var_14]
		movzx	edi, word ptr [edx+ecx*2+0FE4h]
		jmp	loc_ACEF0
_Z10gen_bitlenR6TStateP9tree_desc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; gen_codes(TState &, ct_data *, int)
_Z9gen_codesR6TStateP7ct_datai proc near ; CODE	XREF: ct_init(TState &,ushort *)+275p
					; build_tree(TState &,tree_desc	*)+261p

var_2C		= word ptr -2Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	eax, 1
		xor	edx, edx
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 28h
		mov	ecx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_ACFB0:				; CODE XREF: gen_codes(TState &,ct_data	*,int)+35j
		add	dx, [ecx+eax*2+0FE2h]
		add	edx, edx
		mov	[ebp+eax*2+var_2C], dx
		add	eax, 1
		cmp	eax, 10h
		jnz	short loc_ACFB0
		movzx	eax, word ptr [ecx+1002h]
		movzx	edx, dx
		add	edx, eax
		cmp	edx, 8000h
		jz	short loc_ACFE5
		mov	dword ptr [ecx+6AFA4h],	offset aInconsistentBi ; "inconsistent bit counts"

loc_ACFE5:				; CODE XREF: gen_codes(TState &,ct_data	*,int)+49j
		mov	eax, [ebp+arg_8]
		mov	dword ptr [esp], offset	aGen_codesMax_c	; "\ngen_codes:	max_code %d "
		mov	[esp+4], eax
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	esi, [ebp+arg_8]
		test	esi, esi
		js	short loc_AD052
		xor	esi, esi
		lea	esi, [esi+0]

loc_AD008:				; CODE XREF: gen_codes(TState &,ct_data	*,int)+C0j
		movzx	edx, word ptr [edi+esi*4+2]
		test	edx, edx
		jz	short loc_AD04A
		movzx	eax, [ebp+edx*2+var_2C]
		xor	ebx, ebx
		movzx	ecx, ax
		add	eax, 1
		mov	[ebp+edx*2+var_2C], ax
		sub	edx, 1
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_AD030:				; CODE XREF: gen_codes(TState &,ct_data	*,int)+B2j
		mov	eax, ecx
		sub	edx, 1
		shr	ecx, 1
		and	eax, 1
		or	eax, ebx
		cmp	edx, 0FFFFFFFFh
		lea	ebx, [eax+eax]
		jnz	short loc_AD030
		shr	ebx, 1
		mov	[edi+esi*4], bx

loc_AD04A:				; CODE XREF: gen_codes(TState &,ct_data	*,int)+7Fj
		add	esi, 1
		cmp	[ebp+arg_8], esi
		jge	short loc_AD008

loc_AD052:				; CODE XREF: gen_codes(TState &,ct_data	*,int)+6Dj
		add	esp, 28h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z9gen_codesR6TStateP7ct_datai endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ct_init(TState &, unsigned short *)
_Z7ct_initR6TStatePt proc near		; CODE XREF: TZip::ideflate(zlist *)+BDp

var_18		= dword	ptr -18h
var_11		= byte ptr -11h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 18h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		cmp	word ptr [ebx+0E7Eh], 0
		mov	dword ptr [ebx+1AF48h],	0
		mov	[ebx+1AF50h], eax
		mov	dword ptr [ebx+1AF44h],	0
		mov	dword ptr [ebx+1AF4Ch],	0
		jnz	loc_AD325
		xor	eax, eax
		xor	edx, edx
		mov	[ebp+var_10], ebx
		nop
		lea	esi, [esi+0]

loc_AD0B0:				; CODE XREF: ct_init(TState &,ushort *)+9Cj
		mov	ebx, [ebp+var_10]
		mov	ecx, dword ptr ds:_ZL11extra_lbits[eax*4] ; extra_lbits
		mov	[ebx+eax*4+1E40h], edx
		mov	ebx, 1
		shl	ebx, cl
		test	ebx, ebx
		jle	short loc_AD0F6
		mov	edi, [ebp+var_10]
		mov	[ebp+var_11], al
		xor	ecx, ecx
		mov	[ebp+var_18], edx
		lea	esi, [edi+edx]
		mov	edi, eax
		lea	esi, [esi+0]

loc_AD0E0:				; CODE XREF: ct_init(TState &,ushort *)+8Cj
		mov	[esi+ecx+1B3Dh], al
		add	ecx, 1
		cmp	ecx, ebx
		jnz	short loc_AD0E0
		mov	edx, [ebp+var_18]
		mov	eax, edi
		lea	edx, [ecx+edx]

loc_AD0F6:				; CODE XREF: ct_init(TState &,ushort *)+6Aj
		add	eax, 1
		cmp	eax, 1Ch
		jnz	short loc_AD0B0
		cmp	edx, 100h
		mov	ebx, [ebp+var_10]
		jz	short loc_AD113
		mov	dword ptr [ebx+6AFA4h],	offset aCt_initLength2 ; "ct_init: length != 256"

loc_AD113:				; CODE XREF: ct_init(TState &,ushort *)+A7j
		mov	byte ptr [ebx+edx+1B3Ch], 1Ch
		xor	eax, eax
		xor	edx, edx
		mov	[ebp+var_10], ebx

loc_AD122:				; CODE XREF: ct_init(TState &,ushort *)+10Cj
		mov	ebx, [ebp+var_10]
		mov	ecx, dword ptr ds:_ZL11extra_dbits[eax*4] ; extra_dbits
		mov	[ebx+eax*4+1EB4h], edx
		mov	ebx, 1
		shl	ebx, cl
		test	ebx, ebx
		jle	short loc_AD166
		mov	edi, [ebp+var_10]
		mov	[ebp+var_11], al
		xor	ecx, ecx
		mov	[ebp+var_18], edx
		lea	esi, [edi+edx]
		mov	edi, eax
		db	66h
		nop

loc_AD150:				; CODE XREF: ct_init(TState &,ushort *)+FCj
		mov	[esi+ecx+1C3Dh], al
		add	ecx, 1
		cmp	ecx, ebx
		jnz	short loc_AD150
		mov	edx, [ebp+var_18]
		mov	eax, edi
		lea	edx, [ecx+edx]

loc_AD166:				; CODE XREF: ct_init(TState &,ushort *)+DCj
		add	eax, 1
		cmp	eax, 10h
		jnz	short loc_AD122
		cmp	edx, 100h
		mov	ebx, [ebp+var_10]
		jz	short loc_AD183
		mov	dword ptr [ebx+6AFA4h],	offset aCt_initDist256 ; "ct_init: dist	!= 256"

loc_AD183:				; CODE XREF: ct_init(TState &,ushort *)+117j
		sar	edx, 7
		mov	[ebp+var_18], ebx
		mov	[ebp+var_10], edx

loc_AD18C:				; CODE XREF: ct_init(TState &,ushort *)+181j
		mov	ecx, dword ptr ds:_ZL11extra_dbits[eax*4] ; extra_dbits
		mov	edi, 1
		mov	edx, [ebp+var_10]
		mov	ebx, [ebp+var_18]
		sub	ecx, 7
		shl	edi, cl
		shl	edx, 7
		test	edi, edi
		mov	[ebx+eax*4+1EB4h], edx
		mov	ecx, edi
		jle	short loc_AD1DB
		mov	edi, [ebp+var_10]
		mov	[ebp+var_11], al
		xor	edx, edx
		lea	esi, [ebx+edi]
		mov	edi, eax

loc_AD1C0:				; CODE XREF: ct_init(TState &,ushort *)+16Cj
		mov	[esi+edx+1D3Dh], al
		add	edx, 1
		cmp	edx, ecx
		jnz	short loc_AD1C0
		mov	[ebp+var_18], ebx
		mov	ebx, [ebp+var_10]
		mov	eax, edi
		add	edx, ebx
		mov	[ebp+var_10], edx

loc_AD1DB:				; CODE XREF: ct_init(TState &,ushort *)+151j
		add	eax, 1
		cmp	eax, 1Eh
		jnz	short loc_AD18C
		cmp	[ebp+var_10], 100h
		mov	ebx, [ebp+var_18]
		jz	short loc_AD1F9
		mov	dword ptr [ebx+6AFA4h],	offset aCt_init256Dist ; "ct_init: 256+dist != 512"

loc_AD1F9:				; CODE XREF: ct_init(TState &,ushort *)+18Dj
		xor	eax, eax

loc_AD1FB:				; CODE XREF: ct_init(TState &,ushort *)+1ABj
		mov	word ptr [ebx+eax*2+0FE4h], 0
		add	eax, 1
		cmp	eax, 10h
		jnz	short loc_AD1FB
		movzx	edx, word ptr [ebx+0FF4h]
		xor	al, al
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_AD220:				; CODE XREF: ct_init(TState &,ushort *)+1D2j
		mov	word ptr [ebx+eax*4+9FEh], 8
		add	eax, 1
		cmp	eax, 90h
		jnz	short loc_AD220
		add	dx, 90h
		mov	[ebx+0FF4h], dx
		movzx	edx, word ptr [ebx+0FF6h]
		mov	esi, esi
		lea	edi, [edi+0]

loc_AD250:				; CODE XREF: ct_init(TState &,ushort *)+202j
		mov	word ptr [ebx+eax*4+9FEh], 9
		add	eax, 1
		cmp	eax, 100h
		jnz	short loc_AD250
		add	edx, 70h
		mov	[ebx+0FF6h], dx
		movzx	edx, word ptr [ebx+0FF2h]
		lea	esi, [esi+0]

loc_AD278:				; CODE XREF: ct_init(TState &,ushort *)+22Aj
		mov	word ptr [ebx+eax*4+9FEh], 7
		add	eax, 1
		cmp	eax, 118h
		jnz	short loc_AD278
		add	edx, 18h
		mov	[ebx+0FF2h], dx
		movzx	edx, word ptr [ebx+0FF4h]
		lea	esi, [esi+0]

loc_AD2A0:				; CODE XREF: ct_init(TState &,ushort *)+252j
		mov	word ptr [ebx+eax*4+9FEh], 8
		add	eax, 1
		cmp	eax, 120h
		jnz	short loc_AD2A0
		lea	eax, [edx+8]
		xor	edi, edi
		mov	[ebx+0FF4h], ax
		lea	eax, [ebx+9FCh]
		mov	dword ptr [esp+8], 11Fh
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_Z9gen_codesR6TStateP7ct_datai ; gen_codes(TState &,ct_data *,int)
		lea	esi, [esi+0]

loc_AD2E0:				; CODE XREF: ct_init(TState &,ushort *)+2B4j
		mov	word ptr [ebx+edi*4+0E7Eh], 5
		mov	ecx, edi
		xor	esi, esi
		mov	edx, 5

loc_AD2F3:				; CODE XREF: ct_init(TState &,ushort *)+2A2j
		mov	eax, ecx
		shr	ecx, 1
		and	eax, 1
		or	eax, esi
		sub	edx, 1
		lea	esi, [eax+eax]
		jnz	short loc_AD2F3
		shr	esi, 1
		mov	[ebx+edi*4+0E7Ch], si
		add	edi, 1
		cmp	edi, 1Eh
		jnz	short loc_AD2E0
		mov	[ebp+arg_0], ebx
		add	esp, 18h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z10init_blockR6TState ; init_block(TState &)
; ---------------------------------------------------------------------------

loc_AD325:				; CODE XREF: ct_init(TState &,ushort *)+3Bj
		add	esp, 18h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z7ct_initR6TStatePt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; build_tree(TState &, tree_desc *)
_Z10build_treeR6TStateP9tree_desc proc near ; CODE XREF: build_bl_tree(TState &)+52p
					; flush_block(TState &,char *,ulong,int)+40p ...

var_31		= byte ptr -31h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 34h
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	esi, [eax+10h]
		mov	edx, [eax+4]
		mov	edi, [eax]
		mov	dword ptr [ebx+18F8h], 0
		mov	dword ptr [ebx+18FCh], 23Dh
		test	esi, esi
		mov	[ebp+var_10], edx
		jle	loc_AD59E
		mov	[ebp+var_28], 0FFFFFFFFh
		xor	eax, eax
		mov	edx, 0FFFFFFFFh
		jmp	short loc_AD3A7
; ---------------------------------------------------------------------------
		align 10h

loc_AD380:				; CODE XREF: build_tree(TState &,tree_desc *)+7Cj
		mov	edx, [ebx+18F8h]
		lea	ecx, [edx+1]
		mov	[ebx+18F8h], ecx
		mov	[ebx+edx*4+1008h], eax
		mov	edx, eax
		mov	byte ptr [ebx+eax+1900h], 0
		add	eax, 1
		cmp	eax, esi
		jz	short loc_AD3BC

loc_AD3A7:				; CODE XREF: build_tree(TState &,tree_desc *)+44j
					; build_tree(TState &,tree_desc	*)+8Aj
		cmp	word ptr [edi+eax*4], 0
		jnz	short loc_AD380
		mov	word ptr [edi+eax*4+2],	0
		add	eax, 1
		cmp	eax, esi
		jnz	short loc_AD3A7

loc_AD3BC:				; CODE XREF: build_tree(TState &,tree_desc *)+75j
		mov	[ebp+var_14], esi
		mov	ecx, [ebx+18F8h]
		mov	[ebp+var_28], edx
		mov	esi, [ebp+var_10]
		jmp	short loc_AD401
; ---------------------------------------------------------------------------
		align 10h

loc_AD3D0:				; CODE XREF: build_tree(TState &,tree_desc *)+E7j
					; build_tree(TState &,tree_desc	*)+F6j
		mov	[ebx+ecx*4+1004h], eax
		mov	word ptr [edi+edx], 1
		mov	byte ptr [ebx+eax+1900h], 0
		sub	dword ptr [ebx+1AF3Ch],	1
		test	esi, esi
		jz	short loc_AD3FB
		movzx	eax, word ptr [esi+edx+2]
		sub	[ebx+1AF40h], eax

loc_AD3FB:				; CODE XREF: build_tree(TState &,tree_desc *)+BEj
		mov	ecx, [ebx+18F8h]

loc_AD401:				; CODE XREF: build_tree(TState &,tree_desc *)+9Bj
					; build_tree(TState &,tree_desc	*)+27Dj
		cmp	ecx, 1
		jg	short loc_AD428
		add	ecx, 1
		xor	edx, edx
		xor	eax, eax
		cmp	[ebp+var_28], 1
		mov	[ebx+18F8h], ecx
		jg	short loc_AD3D0
		add	[ebp+var_28], 1
		mov	edx, [ebp+var_28]
		mov	eax, [ebp+var_28]
		shl	edx, 2
		jmp	short loc_AD3D0
; ---------------------------------------------------------------------------

loc_AD428:				; CODE XREF: build_tree(TState &,tree_desc *)+D4j
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+arg_4]
		mov	esi, [ebp+var_14]
		mov	[ecx+18h], eax
		mov	eax, [ebx+18F8h]
		mov	edx, eax
		shr	edx, 1Fh
		add	edx, eax
		sar	edx, 1
		test	edx, edx
		jle	short loc_AD470
		mov	[ebp+var_10], esi
		mov	esi, ebx
		mov	ebx, edx
		db	66h
		nop

loc_AD450:				; CODE XREF: build_tree(TState &,tree_desc *)+133j
		mov	[esp+8], ebx
		mov	[esp+4], edi
		mov	[esp], esi
		call	_Z10pqdownheapR6TStateP7ct_datai ; pqdownheap(TState &,ct_data *,int)
		sub	ebx, 1
		jnz	short loc_AD450
		mov	ebx, esi
		mov	esi, [ebp+var_10]
		mov	eax, [ebx+18F8h]

loc_AD470:				; CODE XREF: build_tree(TState &,tree_desc *)+115j
					; build_tree(TState &,tree_desc	*)+222j
		mov	ecx, [ebx+eax*4+1004h]
		sub	eax, 1
		mov	edx, [ebx+1008h]
		mov	[ebx+18F8h], eax
		mov	[ebx+1008h], ecx
		mov	[ebp+var_30], edx
		mov	dword ptr [esp+8], 1
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_Z10pqdownheapR6TStateP7ct_datai ; pqdownheap(TState &,ct_data *,int)
		mov	ecx, [ebx+18FCh]
		mov	edx, [ebp+var_30]
		mov	eax, [ebx+1008h]
		mov	[ebx+ecx*4+1000h], edx
		lea	edx, [ecx-2]
		mov	[ebx+18FCh], edx
		lea	edx, [edi+eax*4]
		mov	[ebx+ecx*4+0FFCh], eax
		mov	ecx, [ebp+var_30]
		mov	[ebp+var_14], edx
		lea	ecx, [edi+ecx*4]
		mov	[ebp+var_10], ecx
		movzx	ecx, word ptr [edx]
		mov	edx, [ebp+var_10]
		add	cx, [edx]
		mov	[edi+esi*4], cx
		mov	ecx, [ebp+var_30]
		movzx	eax, byte ptr [ebx+eax+1900h]
		movzx	ecx, byte ptr [ebx+ecx+1900h]
		mov	[ebp+var_31], al
		movzx	edx, [ebp+var_31]
		mov	eax, ecx
		add	eax, 1
		add	edx, 1
		mov	[ebp+var_24], dl
		movzx	edx, [ebp+var_31]
		cmp	cl, dl
		movzx	ecx, [ebp+var_24]
		mov	edx, [ebp+var_10]
		cmovb	eax, ecx
		mov	[ebx+esi+1900h], al
		mov	eax, [ebp+var_14]
		mov	[eax+2], si
		mov	[edx+2], si
		mov	[ebx+1008h], esi
		add	esi, 1
		mov	dword ptr [esp+8], 1
		mov	[esp+4], edi
		mov	[esp], ebx
		call	_Z10pqdownheapR6TStateP7ct_datai ; pqdownheap(TState &,ct_data *,int)
		mov	eax, [ebx+18F8h]
		cmp	eax, 1
		jg	loc_AD470
		mov	eax, [ebx+18FCh]
		mov	ecx, [ebp+arg_4]
		lea	edx, [eax-1]
		mov	[ebx+18FCh], edx
		mov	edx, [ebx+1008h]
		mov	[ebx+eax*4+1000h], edx
		mov	[esp+4], ecx
		mov	[esp], ebx
		call	_Z10gen_bitlenR6TStateP9tree_desc ; gen_bitlen(TState &,tree_desc *)
		mov	eax, [ebp+var_28]
		mov	[esp+4], edi
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_Z9gen_codesR6TStateP7ct_datai ; gen_codes(TState &,ct_data *,int)
		add	esp, 34h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_AD59E:				; CODE XREF: build_tree(TState &,tree_desc *)+30j
		mov	[ebp+var_14], esi
		xor	ecx, ecx
		mov	esi, [ebp+var_10]
		mov	[ebp+var_28], 0FFFFFFFFh
		jmp	loc_AD401
_Z10build_treeR6TStateP9tree_desc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; scan_tree(TState &, ct_data *, int)
_Z9scan_treeR6TStateP7ct_datai proc near ; CODE	XREF: build_bl_tree(TState &)+24p
					; build_bl_tree(TState &)+40p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		movzx	ecx, word ptr [eax+2]
		mov	word ptr [eax+edx*4+6],	0FFFFh
		cmp	ecx, 1
		sbb	edi, edi
		add	edi, 4
		cmp	ecx, 1
		sbb	esi, esi
		and	esi, 83h
		add	esi, 7
		test	edx, edx
		js	loc_AD69B
		xor	eax, eax
		mov	[ebp+var_10], 0FFFFFFFFh
		xor	edx, edx
		mov	[ebp+var_14], edi
		jmp	short loc_AD642
; ---------------------------------------------------------------------------
		align 10h

loc_AD610:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+98j
		mov	esi, [ebp+arg_0]
		add	[esi+ecx*4+0EF4h], ax

loc_AD61B:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+F8j
					; scan_tree(TState &,ct_data *,int)+12Bj
		test	ebx, ebx
		jz	short loc_AD682

loc_AD61F:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+C0j
		cmp	ecx, ebx
		jz	loc_AD6C0
		mov	[ebp+var_10], ecx
		mov	esi, 7
		xor	eax, eax
		mov	[ebp+var_14], 4

loc_AD638:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+93j
					; scan_tree(TState &,ct_data *,int)+111j
		add	edx, 1
		cmp	[ebp+arg_8], edx
		jl	short loc_AD69B

loc_AD640:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+D9j
		mov	ecx, ebx

loc_AD642:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+46j
		mov	edi, [ebp+arg_4]
		add	eax, 1
		cmp	eax, esi
		movzx	ebx, word ptr [edi+edx*4+6]
		jge	short loc_AD655
		cmp	ecx, ebx
		jz	short loc_AD638

loc_AD655:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+8Fj
		cmp	eax, [ebp+var_14]
		jl	short loc_AD610
		test	ecx, ecx
		lea	esi, [esi+0]
		jz	short loc_AD6A8
		cmp	[ebp+var_10], ecx
		jz	short loc_AD673
		mov	edi, [ebp+arg_0]
		add	word ptr [edi+ecx*4+0EF4h], 1

loc_AD673:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+A5j
		mov	eax, [ebp+arg_0]
		add	word ptr [eax+0F34h], 1
		test	ebx, ebx
		jnz	short loc_AD61F

loc_AD682:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+5Dj
		add	edx, 1
		xor	eax, eax
		mov	[ebp+var_10], ecx
		cmp	[ebp+arg_8], edx
		mov	[ebp+var_14], 3
		mov	esi, 8Ah
		jge	short loc_AD640

loc_AD69B:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+32j
					; scan_tree(TState &,ct_data *,int)+7Ej
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AD6A8:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+A0j
		cmp	eax, 0Ah
		jg	short loc_AD6E0
		mov	esi, [ebp+arg_0]
		add	word ptr [esi+0F38h], 1
		jmp	loc_AD61B
; ---------------------------------------------------------------------------
		align 10h

loc_AD6C0:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+61j
		mov	[ebp+var_10], ebx
		mov	esi, 6
		xor	eax, eax
		mov	[ebp+var_14], 3
		jmp	loc_AD638
; ---------------------------------------------------------------------------
		align 10h

loc_AD6E0:				; CODE XREF: scan_tree(TState &,ct_data	*,int)+EBj
		mov	edi, [ebp+arg_0]
		add	word ptr [edi+0F3Ch], 1
		jmp	loc_AD61B
_Z9scan_treeR6TStateP7ct_datai endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; build_bl_tree(TState &)
_Z13build_bl_treeR6TState proc near	; CODE XREF: flush_block(TState	&,char *,ulong,int)+9Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, 12h
		sub	esp, 0Ch
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0FA8h]
		mov	[esp], esi
		mov	[esp+8], eax
		lea	eax, [esi+14h]
		mov	[esp+4], eax
		call	_Z9scan_treeR6TStateP7ct_datai ; scan_tree(TState &,ct_data *,int)
		mov	eax, [esi+0FC4h]
		mov	[esp], esi
		mov	[esp+8], eax
		lea	eax, [esi+908h]
		mov	[esp+4], eax
		call	_Z9scan_treeR6TStateP7ct_datai ; scan_tree(TState &,ct_data *,int)
		lea	eax, [esi+0FC8h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z10build_treeR6TStateP9tree_desc ; build_tree(TState &,tree_desc *)
		mov	esi, esi
		lea	edi, [edi+0]

loc_AD750:				; CODE XREF: build_bl_tree(TState &)+78j
		movzx	eax, ds:_ZL8bl_order[ebx] ; bl_order
		cmp	word ptr [esi+eax*4+0EF6h], 0
		jnz	short loc_AD7A8
		sub	ebx, 1
		cmp	ebx, 2
		jnz	short loc_AD750
		mov	edx, 9

loc_AD76F:				; CODE XREF: build_bl_tree(TState &)+BCj
		mov	eax, [esi+1AF3Ch]
		lea	eax, [edx+eax+0Eh]
		mov	edx, [esi+1AF40h]
		mov	[esi+1AF3Ch], eax
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aDynTreesDynLdS	; "\ndyn trees:	dyn %ld, stat %ld"
		mov	[esp+8], edx
		call	_Z5TracePKcz	; Trace(char  const*,...)
		add	esp, 0Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AD7A8:				; CODE XREF: build_bl_tree(TState &)+70j
		lea	edx, [ebx+ebx*2+3]
		jmp	short loc_AD76F
_Z13build_bl_treeR6TState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ct_tally(TState &, int, int)
_Z8ct_tallyR6TStateii proc near		; CODE XREF: deflate_fast(TState &)+E1p
					; deflate_fast(TState &)+247p ...

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebx+1AF2Ch]
		mov	[ebx+ecx+1F2Ch], al
		add	ecx, 1
		test	edx, edx
		mov	[ebx+1AF2Ch], ecx
		jnz	loc_AD860
		add	word ptr [ebx+eax*4+14h], 1
		movzx	eax, byte ptr [ebx+1AF39h]

loc_AD7ED:				; CODE XREF: ct_tally(TState &,int,int)+12Bj
		add	eax, eax
		test	cl, 7
		mov	[ebx+1AF39h], al
		jnz	short loc_AD825
		mov	eax, [ebx+1AF34h]
		movzx	edx, byte ptr [ebx+1AF38h]
		mov	[ebx+eax+19F2Ch], dl
		add	eax, 1
		mov	[ebx+1AF34h], eax
		mov	byte ptr [ebx+1AF38h], 0
		mov	byte ptr [ebx+1AF39h], 1

loc_AD825:				; CODE XREF: ct_tally(TState &,int,int)+48j
		cmp	dword ptr [ebx+4], 2
		jle	short loc_AD837
		test	ecx, 0FFFh
		jz	loc_AD920

loc_AD837:				; CODE XREF: ct_tally(TState &,int,int)+79j
					; ct_tally(TState &,int,int)+1FAj ...
		cmp	ecx, 7FFFh
		mov	eax, 1
		jz	short loc_AD853
		xor	eax, eax
		cmp	dword ptr [ebx+1AF30h],	8000h
		setz	al

loc_AD853:				; CODE XREF: ct_tally(TState &,int,int)+92j
					; ct_tally(TState &,int,int)+212j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AD860:				; CODE XREF: ct_tally(TState &,int,int)+2Aj
		sub	edx, 1
		cmp	dx, 7EF9h
		mov	ecx, edx
		ja	short loc_AD8E0
		cmp	ax, 0FFh
		ja	short loc_AD8E0
		cmp	edx, 0FFh
		jg	loc_AD9C7
		movzx	esi, byte ptr [ebx+edx+1C3Dh]
		cmp	esi, 1Dh
		jg	loc_ADA15

loc_AD88F:				; CODE XREF: ct_tally(TState &,int,int)+26Fj
		movzx	eax, byte ptr [ebx+eax+1B3Dh]
		add	word ptr [ebx+eax*4+418h], 1

loc_AD8A0:				; CODE XREF: ct_tally(TState &,int,int)+151j
		movzx	eax, byte ptr [ebx+edx+1C3Dh]

loc_AD8A8:				; CODE XREF: ct_tally(TState &,int,int)+164j
		add	word ptr [ebx+eax*4+908h], 1
		mov	eax, [ebx+1AF30h]
		mov	[ebx+eax*2+9F2Ch], cx
		add	eax, 1
		mov	[ebx+1AF30h], eax
		movzx	eax, byte ptr [ebx+1AF39h]
		mov	ecx, [ebx+1AF2Ch]
		or	[ebx+1AF38h], al
		jmp	loc_AD7ED
; ---------------------------------------------------------------------------

loc_AD8E0:				; CODE XREF: ct_tally(TState &,int,int)+BAj
					; ct_tally(TState &,int,int)+C0j
		mov	dword ptr [ebx+6AFA4h],	offset aCt_tallyBadMat ; "ct_tally: bad	match"
		movzx	eax, byte ptr [ebx+eax+1B3Dh]
		add	word ptr [ebx+eax*4+418h], 1
		cmp	edx, 0FFh
		jle	short loc_AD8A0

loc_AD903:				; CODE XREF: ct_tally(TState &,int,int)+260j
		sar	edx, 7
		lea	esi, [edx+100h]

loc_AD90C:				; CODE XREF: ct_tally(TState &,int,int)+240j
		movzx	eax, byte ptr [ebx+esi+1C3Dh]
		jmp	short loc_AD8A8
; ---------------------------------------------------------------------------
		align 10h

loc_AD920:				; CODE XREF: ct_tally(TState &,int,int)+81j
		mov	eax, [ebx+6AF84h]
		lea	esi, ds:0[ecx*8]
		mov	[ebp+var_10], eax
		mov	eax, [ebx+6AF74h]
		sub	[ebp+var_10], eax
		xor	eax, eax
		nop
		lea	esi, [esi+0]

loc_AD940:				; CODE XREF: ct_tally(TState &,int,int)+1ADj
		mov	edx, dword ptr ds:_ZL11extra_dbits[eax*4] ; extra_dbits
		movzx	edi, word ptr [ebx+eax*4+908h]
		add	eax, 1
		add	edx, 5
		imul	edx, edi
		add	esi, edx
		cmp	eax, 1Eh
		jnz	short loc_AD940
		shr	esi, 3
		xor	edx, edx
		imul	eax, esi, 64h
		mov	[esp+10h], esi
		div	[ebp+var_10]
		mov	edx, 64h
		sub	edx, eax
		mov	eax, [ebp+var_10]
		mov	[esp+14h], edx
		mov	[esp+0Ch], eax
		mov	eax, [ebx+1AF30h]
		mov	[esp+4], ecx
		mov	dword ptr [esp], offset	aLast_litULast_	; "\nlast_lit %u, last_dist %u,	in %ld,	out"...
		mov	[esp+8], eax
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	ecx, [ebx+1AF2Ch]
		mov	eax, ecx
		shr	eax, 1
		cmp	[ebx+1AF30h], eax
		jnb	loc_AD837
		mov	edx, [ebp+var_10]
		mov	eax, 1
		shr	edx, 1
		cmp	esi, edx
		jnb	loc_AD837
		jmp	loc_AD853
; ---------------------------------------------------------------------------

loc_AD9C7:				; CODE XREF: ct_tally(TState &,int,int)+C8j
		mov	esi, edx
		sar	esi, 7
		add	esi, 100h
		movzx	edi, byte ptr [ebx+esi+1C3Dh]
		cmp	edi, 1Dh
		jg	short loc_AD9F5
		movzx	eax, byte ptr [ebx+eax+1B3Dh]
		add	word ptr [ebx+eax*4+418h], 1
		jmp	loc_AD90C
; ---------------------------------------------------------------------------

loc_AD9F5:				; CODE XREF: ct_tally(TState &,int,int)+22Dj
		mov	dword ptr [ebx+6AFA4h],	offset aCt_tallyBadMat ; "ct_tally: bad	match"
		movzx	eax, byte ptr [ebx+eax+1B3Dh]
		add	word ptr [ebx+eax*4+418h], 1
		jmp	loc_AD903
; ---------------------------------------------------------------------------

loc_ADA15:				; CODE XREF: ct_tally(TState &,int,int)+D9j
		mov	dword ptr [ebx+6AFA4h],	offset aCt_tallyBadMat ; "ct_tally: bad	match"
		jmp	loc_AD88F
_Z8ct_tallyR6TStateii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; set_file_type(TState &)
_Z13set_file_typeR6TState proc near	; CODE XREF: flush_block(TState	&,char *,ulong,int)+2C3p

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		xor	eax, eax
		mov	ebp, esp
		push	esi
		mov	ecx, [ebp+arg_0]
		push	ebx
		lea	esi, [esi+0]

loc_ADA40:				; CODE XREF: set_file_type(TState &)+1Dj
		movzx	ebx, word ptr [ecx+eax*4+14h]
		add	eax, 1
		add	edx, ebx
		cmp	eax, 7
		jnz	short loc_ADA40
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_ADA58:				; CODE XREF: set_file_type(TState &)+37j
		movzx	esi, word ptr [ecx+eax*4+14h]
		add	eax, 1
		add	ebx, esi
		cmp	eax, 80h
		jnz	short loc_ADA58
		lea	esi, [esi+0]

loc_ADA70:				; CODE XREF: set_file_type(TState &)+4Fj
		movzx	esi, word ptr [ecx+eax*4+14h]
		add	eax, 1
		add	edx, esi
		cmp	eax, 100h
		jnz	short loc_ADA70
		shr	ebx, 2
		mov	eax, [ecx+1AF50h]
		cmp	ebx, edx
		setnb	dl
		movzx	edx, dl
		mov	[eax], dx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z13set_file_typeR6TState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bi_init(TState &, char *, unsigned int, int)
_Z7bi_initR6TStatePcji proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+1AF64h],	0
		mov	[eax+1AF60h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+1AF58h],	0
		mov	dword ptr [eax+1AF5Ch],	0
		mov	dword ptr [eax+1AF6Ch],	0
		mov	[eax+1AF68h], edx
		mov	edx, [ebp+arg_C]
		mov	[eax+1AF54h], edx
		pop	ebp
		retn
_Z7bi_initR6TStatePcji endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; send_bits(TState &, int, int)
_Z9send_bitsR6TStateii proc near	; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+58p
					; compress_block(TState	&,ct_data *,ct_data *)+CAp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		lea	eax, [esi-1]
		cmp	eax, 0Eh
		jbe	short loc_ADB1A
		mov	dword ptr [ebx+6AFA4h],	offset aInvalidLength ;	"invalid length"

loc_ADB1A:				; CODE XREF: send_bits(TState &,int,int)+1Ej
		mov	ecx, [ebx+1AF5Ch]
		mov	eax, edi
		add	[ebx+1AF6Ch], esi
		shl	eax, cl
		add	ecx, esi
		or	eax, [ebx+1AF58h]
		cmp	ecx, 10h
		mov	[ebx+1AF5Ch], ecx
		mov	[ebx+1AF58h], eax
		jle	short loc_ADB94
		mov	ecx, [ebx+1AF68h]
		mov	edx, [ebx+1AF64h]
		sub	ecx, 1
		cmp	edx, ecx
		jnb	short loc_ADBA8

loc_ADB56:				; CODE XREF: send_bits(TState &,int,int)+EDj
		mov	ecx, [ebx+1AF60h]
		mov	[ecx+edx], al
		mov	eax, [ebx+1AF60h]
		movzx	ecx, byte ptr [ebx+1AF59h]
		mov	[eax+edx+1], cl
		add	edx, 2
		mov	[ebx+1AF64h], edx

loc_ADB79:				; CODE XREF: send_bits(TState &,int,int)+E5j
		mov	eax, [ebx+1AF5Ch]
		mov	ecx, esi
		sub	eax, 10h
		sub	ecx, eax
		mov	[ebx+1AF5Ch], eax
		shr	edi, cl
		mov	[ebx+1AF58h], edi

loc_ADB94:				; CODE XREF: send_bits(TState &,int,int)+51j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ADBA8:				; CODE XREF: send_bits(TState &,int,int)+64j
		lea	eax, [ebx+1AF64h]
		mov	[esp+8], eax
		mov	eax, [ebx+1AF60h]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]
		mov	eax, [ebx+1AF68h]
		mov	edx, [ebx+1AF64h]
		sub	eax, 1
		cmp	edx, eax
		jnb	short loc_ADB79
		mov	eax, [ebx+1AF58h]
		jmp	loc_ADB56
_Z9send_bitsR6TStateii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; compress_block(TState	&, ct_data *, ct_data *)
_Z14compress_blockR6TStateP7ct_dataS2_ proc near
					; CODE XREF: flush_block(TState	&,char *,ulong,int)+172p
					; flush_block(TState &,char *,ulong,int)+2A6p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	edi, [ebx+1AF2Ch]
		mov	[ebp+var_28], eax
		mov	[ebp+var_2C], edx
		test	edi, edi
		jz	loc_ADD68
		xor	edi, edi
		mov	[ebp+var_24], 0
		xor	esi, esi
		mov	[ebp+var_20], 0
		jmp	short loc_ADC5B
; ---------------------------------------------------------------------------
		align 10h

loc_ADC30:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+9Bj
		mov	edx, [ebp+var_28]
		lea	eax, [edx+eax*4]
		movzx	edx, word ptr [eax+2]
		mov	[esp+8], edx
		movzx	eax, word ptr [eax]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)

loc_ADC4D:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+144j
		shr	edi, 1
		cmp	esi, [ebx+1AF2Ch]
		jnb	loc_ADD68

loc_ADC5B:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+38j
					; compress_block(TState	&,ct_data *,ct_data *)+16Cj
		test	esi, 7
		jnz	short loc_ADC74
		mov	ecx, [ebp+var_24]
		movzx	edi, byte ptr [ebx+ecx+19F2Ch]
		add	ecx, 1
		mov	[ebp+var_24], ecx

loc_ADC74:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+71j
		and	edi, 0FFh
		movzx	eax, byte ptr [ebx+esi+1F2Ch]
		add	esi, 1
		test	edi, 1
		jz	short loc_ADC30
		movzx	ecx, byte ptr [ebx+eax+1B3Dh]
		mov	edx, [ebp+var_28]
		mov	[ebp+var_1C], ecx
		lea	edx, [edx+ecx*4+404h]
		movzx	ecx, word ptr [edx+2]
		mov	[ebp+var_34], edx
		mov	[esp+8], ecx
		movzx	edx, word ptr [edx]
		mov	[ebp+var_30], eax
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	ecx, [ebp+var_1C]
		mov	eax, [ebp+var_30]
		mov	edx, dword ptr ds:_ZL11extra_lbits[ecx*4] ; extra_lbits
		test	edx, edx
		jnz	loc_ADDA8

loc_ADCD4:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+1CFj
		mov	eax, [ebp+var_20]
		add	[ebp+var_20], 1
		movzx	eax, word ptr [ebx+eax*2+9F2Ch]
		cmp	eax, 0FFh
		mov	[ebp+var_1C], eax
		ja	loc_ADD90
		movzx	eax, byte ptr [ebx+eax+1C3Dh]

loc_ADCF9:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+1AEj
		cmp	eax, 1Dh
		jbe	short loc_ADD08
		mov	dword ptr [ebx+6AFA4h],	offset aBadD_code ; "bad d_code"

loc_ADD08:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+10Cj
		mov	ecx, [ebp+var_2C]
		lea	edx, [ecx+eax*4]
		movzx	ecx, word ptr [edx+2]
		mov	[esp+8], ecx
		movzx	edx, word ptr [edx]
		mov	[ebp+var_30], eax
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	eax, [ebp+var_30]
		mov	edx, dword ptr ds:_ZL11extra_dbits[eax*4] ; extra_dbits
		test	edx, edx
		jz	loc_ADC4D
		mov	[esp+8], edx
		mov	edx, [ebp+var_1C]
		shr	edi, 1
		sub	edx, [ebx+eax*4+1EB4h]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		cmp	esi, [ebx+1AF2Ch]
		jb	loc_ADC5B
		lea	esi, [esi+0]

loc_ADD68:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+20j
					; compress_block(TState	&,ct_data *,ct_data *)+65j
		mov	ecx, [ebp+var_28]
		movzx	eax, word ptr [ecx+402h]
		mov	[ebp+arg_8], eax
		movzx	eax, word ptr [ecx+400h]
		mov	[ebp+arg_0], ebx
		mov	[ebp+arg_4], eax
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
; ---------------------------------------------------------------------------
		align 10h

loc_ADD90:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+FBj
		mov	eax, [ebp+var_1C]
		shr	eax, 7
		movzx	eax, byte ptr [ebx+eax+1D3Dh]
		jmp	loc_ADCF9
; ---------------------------------------------------------------------------
		align 8

loc_ADDA8:				; CODE XREF: compress_block(TState &,ct_data *,ct_data *)+DEj
		mov	[esp+8], edx
		sub	eax, [ebx+ecx*4+1E40h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		jmp	loc_ADCD4
_Z14compress_blockR6TStateP7ct_dataS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; send_tree(TState &, ct_data *, int)
_Z9send_treeR6TStateP7ct_datai proc near
					; CODE XREF: send_all_trees(TState &,int,int,int)+125p
					; send_all_trees(TState	&,int,int,int)+154p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		movzx	eax, word ptr [eax+2]
		cmp	eax, 1
		mov	[ebp+var_20], eax
		sbb	ecx, ecx
		add	ecx, 4
		cmp	eax, 1
		sbb	eax, eax
		and	eax, 83h
		add	eax, 7
		test	edx, edx
		js	loc_ADF46
		xor	edx, edx
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_1C], 0
		jmp	loc_ADED4
; ---------------------------------------------------------------------------
		align 10h

loc_ADE20:				; CODE XREF: send_tree(TState &,ct_data	*,int)+129j
		mov	eax, [ebp+var_20]
		test	eax, eax
		jz	loc_ADF60
		mov	eax, [ebp+var_20]
		cmp	[ebp+var_28], eax
		jz	short loc_ADE55
		movzx	eax, word ptr [esi+edi*4+6]
		mov	[esp+8], eax
		movzx	eax, word ptr [esi+edi*4+4]
		mov	[ebp+var_2C], edx
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	edx, [ebp+var_2C]
		mov	ebx, edx

loc_ADE55:				; CODE XREF: send_tree(TState &,ct_data	*,int)+61j
		sub	ebx, 3
		cmp	ebx, 3
		jbe	short loc_ADE67
		mov	dword ptr [esi+6AFA4h],	offset a3_6? ; " 3_6?"

loc_ADE67:				; CODE XREF: send_tree(TState &,ct_data	*,int)+8Bj
		movzx	eax, word ptr [esi+0F36h]
		mov	[esp+8], eax
		movzx	eax, word ptr [esi+0F34h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	dword ptr [esp+8], 2
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)

loc_ADE99:				; CODE XREF: send_tree(TState &,ct_data	*,int)+14Ej
					; send_tree(TState &,ct_data *,int)+1D0j ...
		mov	eax, [ebp+var_24]
		test	eax, eax
		jz	loc_ADF28
		mov	ebx, [ebp+var_24]
		cmp	[ebp+var_20], ebx
		jz	loc_ADFA8
		mov	eax, [ebp+var_20]
		mov	ecx, 4
		xor	edx, edx
		mov	[ebp+var_28], eax
		mov	eax, 7

loc_ADEC2:				; CODE XREF: send_tree(TState &,ct_data	*,int)+182j
					; send_tree(TState &,ct_data *,int)+1E7j
		add	[ebp+var_1C], 1
		mov	ebx, [ebp+var_1C]
		cmp	[ebp+arg_8], ebx
		jl	short loc_ADF46

loc_ADECE:				; CODE XREF: send_tree(TState &,ct_data	*,int)+174j
		mov	ebx, [ebp+var_24]
		mov	[ebp+var_20], ebx

loc_ADED4:				; CODE XREF: send_tree(TState &,ct_data	*,int)+46j
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+var_1C]
		movzx	edi, word ptr [ebx+edi*4+6]
		lea	ebx, [edx+1]
		cmp	ebx, eax
		mov	[ebp+var_24], edi
		jge	short loc_ADEEE
		cmp	[ebp+var_20], edi
		jz	short loc_ADF50

loc_ADEEE:				; CODE XREF: send_tree(TState &,ct_data	*,int)+117j
		mov	eax, [ebp+var_20]
		cmp	ebx, ecx
		lea	edi, [eax+3BCh]
		jge	loc_ADE20

loc_ADEFF:				; CODE XREF: send_tree(TState &,ct_data	*,int)+14Cj
		movzx	eax, word ptr [esi+edi*4+6]
		mov	[esp+8], eax
		movzx	eax, word ptr [esi+edi*4+4]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		sub	ebx, 1
		jnz	short loc_ADEFF
		jmp	loc_ADE99
; ---------------------------------------------------------------------------
		align 8

loc_ADF28:				; CODE XREF: send_tree(TState &,ct_data	*,int)+CEj
		add	[ebp+var_1C], 1
		mov	ecx, 3
		mov	eax, 8Ah
		mov	edi, [ebp+var_20]
		xor	edx, edx
		mov	ebx, [ebp+var_1C]
		mov	[ebp+var_28], edi
		cmp	[ebp+arg_8], ebx
		jge	short loc_ADECE

loc_ADF46:				; CODE XREF: send_tree(TState &,ct_data	*,int)+30j
					; send_tree(TState &,ct_data *,int)+FCj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ADF50:				; CODE XREF: send_tree(TState &,ct_data	*,int)+11Cj
		mov	edx, ebx
		jmp	loc_ADEC2
; ---------------------------------------------------------------------------
		align 10h

loc_ADF60:				; CODE XREF: send_tree(TState &,ct_data	*,int)+55j
		cmp	ebx, 0Ah
		jg	short loc_ADFC0
		movzx	eax, word ptr [esi+0F3Ah]
		mov	[esp+8], eax
		movzx	eax, word ptr [esi+0F38h]
		mov	[ebp+var_2C], edx
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+8], 3
		mov	[esp], esi
		sub	edx, 2
		mov	[esp+4], edx
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		jmp	loc_ADE99
; ---------------------------------------------------------------------------
		align 4

loc_ADFA8:				; CODE XREF: send_tree(TState &,ct_data	*,int)+DAj
		mov	[ebp+var_28], ebx
		mov	ecx, 3
		mov	eax, 6
		xor	edx, edx
		jmp	loc_ADEC2
; ---------------------------------------------------------------------------
		align 10h

loc_ADFC0:				; CODE XREF: send_tree(TState &,ct_data	*,int)+193j
		movzx	eax, word ptr [esi+0F3Eh]
		mov	[esp+8], eax
		movzx	eax, word ptr [esi+0F3Ch]
		mov	[ebp+var_2C], edx
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+8], 7
		mov	[esp], esi
		sub	edx, 0Ah
		mov	[esp+4], edx
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		jmp	loc_ADE99
_Z9send_treeR6TStateP7ct_datai endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; send_all_trees(TState	&, int,	int, int)
_Z14send_all_treesR6TStateiii proc near	; CODE XREF: flush_block(TState	&,char *,ulong,int)+159p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_C]
		test	ebx, ebx
		mov	[ebp+var_1C], eax
		jle	short loc_AE02C
		cmp	[ebp+var_20], 100h
		jg	loc_AE178

loc_AE02C:				; CODE XREF: send_all_trees(TState &,int,int,int)+1Dj
					; send_all_trees(TState	&,int,int,int)+17Bj
		mov	dword ptr [edi+6AFA4h],	offset aNotEnoughCodes ; "not enough codes"

loc_AE036:				; CODE XREF: send_all_trees(TState &,int,int,int)+181j
		cmp	ebx, 1Eh
		jg	short loc_AE048
		cmp	[ebp+var_20], 11Eh
		jle	loc_AE190

loc_AE048:				; CODE XREF: send_all_trees(TState &,int,int,int)+39j
					; send_all_trees(TState	&,int,int,int)+194j
		mov	dword ptr [edi+6AFA4h],	offset aTooManyCodes ; "too many codes"

loc_AE052:				; CODE XREF: send_all_trees(TState &,int,int,int)+1A0j
		mov	dword ptr [esp], offset	aBlCounts ; "\nbl counts: "
		sub	ebx, 1
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	eax, [ebp+var_20]
		mov	dword ptr [esp+8], 5
		mov	[esp], edi
		sub	eax, 101h
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	[ebp+var_24], ebx
		mov	dword ptr [esp+8], 5
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp+8], 4
		mov	[esp], edi
		sub	eax, 4
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	ecx, [ebp+var_1C]
		test	ecx, ecx
		jle	short loc_AE0FB
		xor	ebx, ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_AE0C0:				; CODE XREF: send_all_trees(TState &,int,int,int)+F9j
		movzx	esi, ds:_ZL8bl_order[ebx] ; bl_order
		mov	dword ptr [esp], offset	aBlCode2d ; "\nbl code %2d "
		add	ebx, 1
		mov	[esp+4], esi
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	dword ptr [esp+8], 3
		movzx	eax, word ptr [edi+esi*4+0EF6h]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		cmp	ebx, [ebp+var_1C]
		jnz	short loc_AE0C0

loc_AE0FB:				; CODE XREF: send_all_trees(TState &,int,int,int)+B3j
		mov	eax, [edi+1AF6Ch]
		mov	dword ptr [esp], offset	aBlTreeSentLd ;	"\nbl tree: sent %ld"
		mov	[esp+4], eax
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	eax, [ebp+var_20]
		mov	[esp], edi
		sub	eax, 1
		mov	[esp+8], eax
		lea	eax, [edi+14h]
		mov	[esp+4], eax
		call	_Z9send_treeR6TStateP7ct_datai ; send_tree(TState &,ct_data *,int)
		mov	eax, [edi+1AF6Ch]
		mov	dword ptr [esp], offset	aLitTreeSentLd ; "\nlit	tree: sent %ld"
		mov	[esp+4], eax
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	eax, [ebp+var_24]
		mov	[esp], edi
		mov	[esp+8], eax
		lea	eax, [edi+908h]
		mov	[esp+4], eax
		call	_Z9send_treeR6TStateP7ct_datai ; send_tree(TState &,ct_data *,int)
		mov	eax, [edi+1AF6Ch]
		mov	[ebp+arg_0], offset aDistTreeSentLd ; "\ndist tree: sent %ld"
		mov	[ebp+arg_4], eax
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z5TracePKcz	; Trace(char  const*,...)
; ---------------------------------------------------------------------------
		align 4

loc_AE178:				; CODE XREF: send_all_trees(TState &,int,int,int)+26j
		cmp	eax, 3
		jle	loc_AE02C
		jmp	loc_AE036
; ---------------------------------------------------------------------------
		align 10h

loc_AE190:				; CODE XREF: send_all_trees(TState &,int,int,int)+42j
		cmp	[ebp+var_1C], 13h
		jg	loc_AE048
		lea	esi, [esi+0]
		jmp	loc_AE052
_Z14send_all_treesR6TStateiii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bi_reverse(unsigned int, int)
_Z10bi_reverseji proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		lea	esi, [esi+0]

loc_AE1C0:				; CODE XREF: bi_reverse(uint,int)+21j
		mov	edx, ebx
		sub	ecx, 1
		shr	ebx, 1
		and	edx, 1
		or	edx, eax
		test	ecx, ecx
		lea	eax, [edx+edx]
		jg	short loc_AE1C0
		pop	ebx
		shr	eax, 1
		pop	ebp
		retn
_Z10bi_reverseji endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bi_windup(TState &)
_Z9bi_windupR6TState proc near		; CODE XREF: copy_block(TState &,char *,uint,int)+18p
					; flush_block(TState &,char *,ulong,int)+1C7p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+1AF5Ch]
		cmp	eax, 8
		jle	loc_AE290
		mov	edx, [ebx+1AF68h]
		mov	eax, [ebx+1AF64h]
		sub	edx, 1
		cmp	eax, edx
		jnb	loc_AE2C0

loc_AE210:				; CODE XREF: bi_windup(TState &)+113j
		mov	edx, [ebx+1AF60h]
		mov	ecx, [ebx+1AF58h]
		mov	[edx+eax], cl
		mov	edx, [ebx+1AF60h]
		movzx	ecx, byte ptr [ebx+1AF59h]
		mov	[edx+eax+1], cl
		add	eax, 2
		mov	[ebx+1AF64h], eax

loc_AE239:				; CODE XREF: bi_windup(TState &)+B2j
					; bi_windup(TState &)+DAj ...
		mov	eax, [ebx+1AF54h]
		test	eax, eax
		jz	short loc_AE25F
		lea	eax, [ebx+1AF64h]
		mov	[esp+8], eax
		mov	eax, [ebx+1AF60h]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]

loc_AE25F:				; CODE XREF: bi_windup(TState &)+61j
		mov	dword ptr [ebx+1AF58h],	0
		mov	eax, [ebx+1AF6Ch]
		mov	dword ptr [ebx+1AF5Ch],	0
		add	eax, 7
		and	eax, 0FFFFFFF8h
		mov	[ebx+1AF6Ch], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AE290:				; CODE XREF: bi_windup(TState &)+13j
		test	eax, eax
		jle	short loc_AE239
		mov	eax, [ebx+1AF64h]
		cmp	eax, [ebx+1AF68h]
		jnb	short loc_AE300

loc_AE2A2:				; CODE XREF: bi_windup(TState &)+14Ej
		mov	edx, [ebx+1AF60h]
		mov	ecx, [ebx+1AF58h]
		mov	[edx+eax], cl
		add	eax, 1
		mov	[ebx+1AF64h], eax
		jmp	loc_AE239
; ---------------------------------------------------------------------------
		align 10h

loc_AE2C0:				; CODE XREF: bi_windup(TState &)+2Aj
		lea	eax, [ebx+1AF64h]
		mov	[esp+8], eax
		mov	eax, [ebx+1AF60h]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]
		mov	edx, [ebx+1AF68h]
		mov	eax, [ebx+1AF64h]
		sub	edx, 1
		cmp	eax, edx
		jnb	loc_AE239
		jmp	loc_AE210
; ---------------------------------------------------------------------------
		align 10h

loc_AE300:				; CODE XREF: bi_windup(TState &)+C0j
		lea	eax, [ebx+1AF64h]
		mov	[esp+8], eax
		mov	eax, [ebx+1AF60h]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]
		mov	eax, [ebx+1AF64h]
		cmp	eax, [ebx+1AF68h]
		jnb	loc_AE239
		jmp	loc_AE2A2
_Z9bi_windupR6TState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl copy_block(int, void *src, size_t	n, int)
_Z10copy_blockR6TStatePcji proc	near	; CODE XREF: flush_block(TState	&,char *,ulong,int)+260p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
n		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+n]
		mov	[ebp+var_4], edi
		mov	[esp], ebx
		call	_Z9bi_windupR6TState ; bi_windup(TState	&)
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jz	short loc_AE3DB
		mov	edx, [ebx+1AF68h]
		mov	eax, [ebx+1AF64h]
		sub	edx, 1
		cmp	eax, edx
		jnb	loc_AE480

loc_AE37B:				; CODE XREF: copy_block(TState &,char *,uint,int)+16Dj
		mov	edx, [ebx+1AF60h]
		mov	ecx, esi
		mov	[edx+eax], cl
		mov	edx, esi
		mov	edi, [ebx+1AF60h]
		movzx	ecx, dh
		mov	[edi+eax+1], cl
		add	eax, 2
		mov	ecx, [ebx+1AF68h]
		mov	[ebx+1AF64h], eax
		sub	ecx, 1
		cmp	eax, ecx
		jnb	loc_AE4E7

loc_AE3AF:				; CODE XREF: copy_block(TState &,char *,uint,int)+1A2j
		mov	edi, [ebx+1AF60h]
		mov	ecx, esi
		not	edx
		not	ecx
		movzx	edx, dh
		mov	[edi+eax], cl
		mov	ecx, [ebx+1AF60h]
		mov	[ecx+eax+1], dl
		add	eax, 2
		mov	[ebx+1AF64h], eax

loc_AE3D4:				; CODE XREF: copy_block(TState &,char *,uint,int)+19Aj
		add	dword ptr [ebx+1AF6Ch],	20h

loc_AE3DB:				; CODE XREF: copy_block(TState &,char *,uint,int)+22j
		mov	eax, [ebx+1AF54h]
		test	eax, eax
		jnz	short loc_AE448
		mov	eax, [ebx+1AF64h]
		lea	edx, [esi+eax]
		cmp	edx, [ebx+1AF68h]
		jbe	short loc_AE420
		mov	dword ptr [ebx+6AFA4h],	offset aOutputBufferTo ; "output buffer	too small for in-memory	c"...

loc_AE400:				; CODE XREF: copy_block(TState &,char *,uint,int)+FFj
					; copy_block(TState &,char *,uint,int)+13Dj
		shl	esi, 3
		add	[ebx+1AF6Ch], esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AE420:				; CODE XREF: copy_block(TState &,char *,uint,int)+B4j
		add	eax, [ebx+1AF60h]
		mov	[esp+8], esi	; n
		mov	ecx, [ebp+src]
		mov	[esp], eax	; dest
		mov	[esp+4], ecx	; src
		call	memcpy
		add	[ebx+1AF64h], esi
		jmp	short loc_AE400
; ---------------------------------------------------------------------------
		align 8

loc_AE448:				; CODE XREF: copy_block(TState &,char *,uint,int)+A3j
		lea	edi, [ebx+1AF64h]
		mov	[esp+8], edi
		mov	eax, [ebx+1AF60h]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]
		mov	edx, [ebp+src]
		mov	[ebx+1AF64h], esi
		mov	[esp+8], edi
		mov	[esp+4], edx
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]
		jmp	short loc_AE400
; ---------------------------------------------------------------------------
		align 10h

loc_AE480:				; CODE XREF: copy_block(TState &,char *,uint,int)+35j
		lea	edi, [ebx+1AF64h]
		mov	[esp+8], edi
		mov	eax, [ebx+1AF60h]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]
		mov	edx, [ebx+1AF68h]
		mov	eax, [ebx+1AF64h]
		sub	edx, 1
		cmp	eax, edx
		jb	loc_AE37B

loc_AE4B3:				; CODE XREF: copy_block(TState &,char *,uint,int)+1ADj
		mov	[esp+8], edi
		mov	eax, [ebx+1AF60h]
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		call	dword ptr [ebx+10h]
		mov	edx, [ebx+1AF68h]
		mov	eax, [ebx+1AF64h]
		sub	edx, 1
		cmp	eax, edx
		jnb	loc_AE3D4
		mov	edx, esi
		jmp	loc_AE3AF
; ---------------------------------------------------------------------------

loc_AE4E7:				; CODE XREF: copy_block(TState &,char *,uint,int)+69j
		lea	edi, [ebx+1AF64h]
		jmp	short loc_AE4B3
_Z10copy_blockR6TStatePcji endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl flush_block(int, void *src, size_t n, int)
_Z11flush_blockR6TStatePcmi proc near	; CODE XREF: deflate_fast(TState &)+1B6p
					; deflate_fast(TState &)+21Bp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
n		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+n]
		mov	eax, [ebx+1AF34h]
		movzx	edx, byte ptr [ebx+1AF38h]
		mov	[ebx+eax+19F2Ch], dl
		mov	eax, [ebx+1AF50h]
		cmp	word ptr [eax],	0FFFFh
		jz	loc_AE7B0

loc_AE523:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+2C8j
		lea	eax, [ebx+0F90h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z10build_treeR6TStateP9tree_desc ; build_tree(TState &,tree_desc *)
		mov	eax, [ebx+1AF40h]
		mov	[esp+8], eax
		mov	eax, [ebx+1AF3Ch]
		mov	dword ptr [esp], offset	aLitDataDynLdSt	; "\nlit data: dyn %ld,	stat %ld"
		mov	[esp+4], eax
		call	_Z5TracePKcz	; Trace(char  const*,...)
		lea	eax, [ebx+0FACh]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z10build_treeR6TStateP9tree_desc ; build_tree(TState &,tree_desc *)
		mov	eax, [ebx+1AF40h]
		mov	[esp+8], eax
		mov	eax, [ebx+1AF3Ch]
		mov	dword ptr [esp], offset	aDistDataDynLdS	; "\ndist data:	dyn %ld, stat %ld"
		mov	[esp+4], eax
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	[esp], ebx
		call	_Z13build_bl_treeR6TState ; build_bl_tree(TState &)
		mov	edx, [ebx+1AF30h]
		mov	ecx, [ebx+1AF40h]
		mov	[ebp+var_1C], eax
		add	[ebx+1AF4Ch], esi
		mov	eax, [ebx+1AF3Ch]
		mov	[esp+1Ch], edx
		lea	edi, [ecx+0Ah]
		mov	edx, [ebx+1AF2Ch]
		shr	edi, 3
		mov	[esp+14h], esi
		mov	[esp+10h], ecx
		add	eax, 0Ah
		mov	[esp+0Ch], edi
		shr	eax, 3
		mov	[esp+18h], edx
		mov	edx, [ebx+1AF3Ch]
		mov	[esp+4], eax
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aOptLuLuStatLuL	; "\nopt %lu(%lu) stat %lu(%lu)	stored %lu "...
		mov	[esp+8], edx
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	eax, [ebp+var_20]
		lea	edx, [esi+4]
		cmp	edi, eax
		cmovbe	eax, edi
		cmp	edx, eax
		jbe	loc_AE6F0

loc_AE600:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+205j
		cmp	edi, eax
		mov	dword ptr [esp+8], 3
		mov	eax, [ebp+arg_C]
		jz	loc_AE770
		add	eax, 4
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	eax, [ebp+var_1C]
		add	eax, 1
		mov	[esp+0Ch], eax
		mov	eax, [ebx+0FC4h]
		add	eax, 1
		mov	[esp+8], eax
		mov	eax, [ebx+0FA8h]
		mov	[esp], ebx
		add	eax, 1
		mov	[esp+4], eax
		call	_Z14send_all_treesR6TStateiii ;	send_all_trees(TState &,int,int,int)
		lea	eax, [ebx+908h]
		mov	[esp], ebx
		mov	[esp+8], eax
		lea	eax, [ebx+14h]
		mov	[esp+4], eax
		call	_Z14compress_blockR6TStateP7ct_dataS2_ ; compress_block(TState &,ct_data *,ct_data *)
		mov	edx, [ebx+1AF48h]
		add	edx, [ebx+1AF3Ch]

loc_AE673:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+2B7j
		add	edx, 3
		mov	eax, edx
		and	edx, 7
		shr	eax, 3
		mov	[ebx+1AF48h], edx
		add	eax, [ebx+1AF44h]
		mov	[ebx+1AF44h], eax

loc_AE690:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+271j
		lea	eax, [edx+eax*8]
		cmp	eax, [ebx+1AF6Ch]
		jz	short loc_AE6A5
		mov	dword ptr [ebx+6AFA4h],	offset aBadCompressedS ; "bad compressed size"

loc_AE6A5:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+1A9j
		mov	[esp], ebx
		call	_Z10init_blockR6TState ; init_block(TState &)
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jz	short loc_AE6C3
		mov	[esp], ebx
		call	_Z9bi_windupR6TState ; bi_windup(TState	&)
		add	dword ptr [ebx+1AF48h],	7

loc_AE6C3:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+1C2j
		mov	dword ptr [esp], (offset aConsoleHistory+1Ch)
		call	_Z5TracePKcz	; Trace(char  const*,...)
		mov	eax, [ebx+1AF48h]
		shr	eax, 3
		add	eax, [ebx+1AF44h]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AE6F0:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+10Aj
		mov	edx, [ebp+src]
		test	edx, edx
		jz	loc_AE600
		mov	edx, [ebp+arg_C]
		mov	dword ptr [esp+8], 3
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		mov	eax, [ebx+1AF48h]
		mov	dword ptr [ebx+1AF48h],	0
		mov	edx, [ebx+1AF44h]
		add	eax, 0Ah
		add	edx, esi
		shr	eax, 3
		lea	eax, [edx+eax+4]
		mov	edx, [ebp+src]
		mov	[ebx+1AF44h], eax
		mov	dword ptr [esp+0Ch], 1 ; int
		mov	[esp+8], esi	; n
		mov	[esp+4], edx	; src
		mov	[esp], ebx	; int
		call	_Z10copy_blockR6TStatePcji ; copy_block(TState &,char *,uint,int)
		mov	eax, [ebx+1AF44h]
		mov	edx, [ebx+1AF48h]
		jmp	loc_AE690
; ---------------------------------------------------------------------------
		align 10h

loc_AE770:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+11Dj
		add	eax, 2
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z9send_bitsR6TStateii ; send_bits(TState &,int,int)
		lea	eax, [ebx+0E7Ch]
		mov	[esp], ebx
		mov	[esp+8], eax
		lea	eax, [ebx+9FCh]
		mov	[esp+4], eax
		call	_Z14compress_blockR6TStateP7ct_dataS2_ ; compress_block(TState &,ct_data *,ct_data *)
		mov	edx, [ebx+1AF48h]
		add	edx, [ebx+1AF40h]
		jmp	loc_AE673
; ---------------------------------------------------------------------------
		align 10h

loc_AE7B0:				; CODE XREF: flush_block(TState	&,char *,ulong,int)+2Dj
		mov	[esp], ebx
		call	_Z13set_file_typeR6TState ; set_file_type(TState &)
		jmp	loc_AE523
_Z11flush_blockR6TStatePcmi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; longest_match(TState &, unsigned int)
_Z13longest_matchR6TStatej proc	near	; CODE XREF: deflate_fast(TState &)+9Ap
					; deflate(TState &)+CEp

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	[ebp+var_20], 0
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebx+6AF94h]
		mov	edx, [ebx+6AF84h]
		mov	[ebp+var_18], eax
		mov	eax, [ebx+6AF80h]
		lea	esi, [ebx+edx+1AF70h]
		mov	[ebp+var_1C], edx
		mov	[ebp+var_28], esi
		mov	[ebp+var_10], eax
		mov	eax, edx
		sub	eax, 7EFAh
		cmp	edx, 7EFBh
		cmovb	eax, [ebp+var_20]
		lea	edx, [ebx+edx+1B072h]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_10]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_10]
		movzx	eax, byte ptr [esi+eax-1]
		mov	[ebp+var_12], al
		movzx	eax, byte ptr [esi+edx]
		mov	edx, [ebp+var_18]
		mov	esi, [ebp+var_10]
		shr	edx, 2
		cmp	esi, [ebx+6AF9Ch]
		cmovb	edx, [ebp+var_18]
		mov	[ebp+var_18], edx
		mov	edx, [ebx+6AF70h]
		lea	esi, [edx-106h]
		cmp	[ebp+var_1C], esi
		jbe	short loc_AE85C
		mov	dword ptr [ebx+6AFA4h],	offset aInsufficientLo ; "insufficient lookahead"

loc_AE85C:				; CODE XREF: longest_match(TState &,uint)+90j
		lea	edi, [ebx+edx+1AF6Fh]

loc_AE863:				; CODE XREF: longest_match(TState &,uint)+ECj
		cmp	ecx, [ebp+var_1C]
		jb	short loc_AE872
		mov	dword ptr [ebx+6AFA4h],	offset aNoFuture ; "no future"

loc_AE872:				; CODE XREF: longest_match(TState &,uint)+A6j
		mov	edx, [ebp+var_10]
		lea	esi, [ebx+ecx+1AF70h]
		movzx	edx, byte ptr [esi+edx]
		cmp	dl, al
		mov	[ebp+var_11], dl
		jz	short loc_AE8C0

loc_AE887:				; CODE XREF: longest_match(TState &,uint)+112j
					; longest_match(TState &,uint)+121j ...
		and	ecx, 7FFFh
		mov	ecx, [ebx+ecx*4+2AF70h]
		cmp	[ebp+var_20], ecx
		jb	short loc_AE8A8

loc_AE899:				; CODE XREF: longest_match(TState &,uint)+24Bj
		mov	eax, [ebp+var_10]
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AE8A8:				; CODE XREF: longest_match(TState &,uint)+D7j
		sub	[ebp+var_18], 1
		jnz	short loc_AE863
		mov	eax, [ebp+var_10]
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AE8C0:				; CODE XREF: longest_match(TState &,uint)+C5j
		mov	edx, [ebp+var_10]
		movzx	edx, byte ptr [esi+edx-1]
		mov	[ebp+var_13], dl
		movzx	edx, [ebp+var_12]
		cmp	[ebp+var_13], dl
		jnz	short loc_AE887
		mov	edx, [ebp+var_28]
		movzx	edx, byte ptr [edx]
		cmp	[ebx+ecx+1AF70h], dl
		jnz	short loc_AE887
		mov	edx, [ebp+var_28]
		movzx	edx, byte ptr [edx+1]
		cmp	[ebx+ecx+1AF71h], dl
		jnz	short loc_AE887
		mov	eax, [ebp+var_28]
		add	esi, 2
		mov	[ebp+var_28], ecx
		add	eax, 2

loc_AE8FF:				; CODE XREF: longest_match(TState &,uint)+23Dj
		movzx	ecx, byte ptr [esi+1]
		lea	edx, [eax+1]
		cmp	[eax+1], cl
		jz	short loc_AE980

loc_AE90B:				; CODE XREF: longest_match(TState &,uint)+1CAj
					; longest_match(TState &,uint)+1DAj ...
		cmp	edx, edi
		mov	ecx, [ebp+var_28]
		jbe	short loc_AE920
		mov	dword ptr [ebx+6AFA4h],	offset aWildScan ; "wild scan"
		lea	esi, [esi+0]

loc_AE920:				; CODE XREF: longest_match(TState &,uint)+150j
		sub	edx, [ebp+var_24]
		mov	eax, [ebp+var_24]
		lea	esi, [edx+102h]
		movzx	edx, [ebp+var_13]
		sub	eax, 102h
		cmp	[ebp+var_10], esi
		mov	[ebp+var_28], eax
		movzx	eax, [ebp+var_11]
		mov	[ebp+var_12], dl
		jge	loc_AE887
		cmp	esi, [ebx+6AFA0h]
		mov	[ebx+6AF88h], ecx
		jge	loc_AEA08
		mov	eax, [ebp+var_28]
		mov	[ebp+var_10], esi
		mov	edx, [ebp+var_24]
		movzx	eax, byte ptr [eax+esi-1]
		mov	[ebp+var_12], al
		movzx	eax, byte ptr [edx+esi-102h]
		jmp	loc_AE887
; ---------------------------------------------------------------------------
		align 10h

loc_AE980:				; CODE XREF: longest_match(TState &,uint)+149j
		movzx	ecx, byte ptr [esi+2]
		lea	edx, [eax+2]
		cmp	[eax+2], cl
		jnz	loc_AE90B
		movzx	ecx, byte ptr [esi+3]
		lea	edx, [eax+3]
		cmp	[eax+3], cl
		jnz	loc_AE90B
		movzx	ecx, byte ptr [esi+4]
		lea	edx, [eax+4]
		cmp	[eax+4], cl
		jnz	loc_AE90B
		movzx	ecx, byte ptr [esi+5]
		lea	edx, [eax+5]
		cmp	[eax+5], cl
		jnz	loc_AE90B
		movzx	ecx, byte ptr [esi+6]
		lea	edx, [eax+6]
		cmp	[eax+6], cl
		jnz	loc_AE90B
		movzx	ecx, byte ptr [esi+7]
		lea	edx, [eax+7]
		cmp	[eax+7], cl
		jnz	loc_AE90B
		lea	edx, [eax+8]
		add	esi, 8
		movzx	ecx, byte ptr [esi]
		cmp	[eax+8], cl
		jnz	loc_AE90B
		cmp	[ebp+var_24], edx
		jbe	loc_AE90B
		mov	eax, edx
		jmp	loc_AE8FF
; ---------------------------------------------------------------------------
		align 8

loc_AEA08:				; CODE XREF: longest_match(TState &,uint)+194j
		mov	[ebp+var_10], esi
		jmp	loc_AE899
_Z13longest_matchR6TStatej endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; fill_window(TState &)
_Z11fill_windowR6TState	proc near	; CODE XREF: lm_init(TState &,int,ushort *)+15Bp
					; deflate_fast(TState &)+1DBp ...

src		= dword	ptr -20h
dest		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		lea	edx, [ebx+1AF70h]
		mov	[ebp+dest], edx
		lea	edx, [ebx+22F70h]
		mov	[ebp+src], edx

loc_AEA34:				; CODE XREF: fill_window(TState	&)+B8j
		mov	esi, [ebx+6AF70h]
		mov	edx, [ebx+6AF84h]
		sub	esi, eax
		sub	esi, edx
		cmp	esi, 0FFFFFFFFh
		jz	loc_AEAE0
		cmp	edx, 0FEF9h
		jbe	short loc_AEA63
		mov	eax, [ebx+6AF78h]
		test	eax, eax
		jnz	loc_AEB00

loc_AEA63:				; CODE XREF: fill_window(TState	&)+43j
					; fill_window(TState &)+D5j ...
		mov	edi, [ebx+6AF8Ch]
		test	edi, edi
		jnz	short loc_AEAB2
		cmp	esi, 1
		jbe	short loc_AEAF0

loc_AEA72:				; CODE XREF: fill_window(TState	&)+EAj
		mov	[esp+8], esi
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		add	eax, [ebx+6AF84h]
		mov	[esp], ebx
		lea	eax, [ebx+eax+1AF70h]
		mov	[esp+4], eax
		call	dword ptr [ebx+0Ch]
		lea	edx, [eax-1]
		cmp	edx, 0FFFFFFFDh
		jbe	short loc_AEAD0
		mov	dword ptr [ebx+6AF8Ch],	1
		mov	eax, dword ptr ds:loc_6AF90[ebx]

loc_AEAAB:				; CODE XREF: fill_window(TState	&)+CCj
		cmp	eax, 105h
		jbe	short loc_AEAC0

loc_AEAB2:				; CODE XREF: fill_window(TState	&)+5Bj
					; fill_window(TState &)+BEj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AEAC0:				; CODE XREF: fill_window(TState	&)+A0j
		mov	ecx, [ebx+6AF8Ch]
		test	ecx, ecx
		jz	loc_AEA34
		jmp	short loc_AEAB2
; ---------------------------------------------------------------------------

loc_AEAD0:				; CODE XREF: fill_window(TState	&)+89j
		add	eax, dword ptr ds:loc_6AF90[ebx]
		mov	dword ptr ds:loc_6AF90[ebx], eax
		jmp	short loc_AEAAB
; ---------------------------------------------------------------------------
		align 10h

loc_AEAE0:				; CODE XREF: fill_window(TState	&)+37j
		mov	esi, 0FFFFFFFEh
		jmp	loc_AEA63
; ---------------------------------------------------------------------------
		align 10h

loc_AEAF0:				; CODE XREF: fill_window(TState	&)+60j
		mov	dword ptr [ebx+6AFA4h],	offset aMore2 ;	"more <	2"
		jmp	loc_AEA72
; ---------------------------------------------------------------------------
		align 10h

loc_AEB00:				; CODE XREF: fill_window(TState	&)+4Dj
		mov	edx, [ebp+src]
		mov	dword ptr [esp+8], 8000h ; n
		xor	edi, edi
		mov	[esp+4], edx	; src
		mov	edx, [ebp+dest]
		mov	[esp], edx	; dest
		call	memcpy
		xor	eax, eax
		sub	dword ptr [ebx+6AF88h],	8000h
		sub	dword ptr [ebx+6AF84h],	8000h
		sub	dword ptr [ebx+6AF74h],	8000h
		lea	esi, [esi+0]

loc_AEB40:				; CODE XREF: fill_window(TState	&)+155j
		mov	edx, [ebx+eax*4+4AF70h]
		lea	ecx, [edx-8000h]
		cmp	edx, 8000h
		cmovb	ecx, edi
		mov	[ebx+eax*4+4AF70h], ecx
		add	eax, 1
		cmp	eax, 8000h
		jnz	short loc_AEB40
		xor	ax, ax
		xor	edi, edi
		lea	esi, [esi+0]

loc_AEB70:				; CODE XREF: fill_window(TState	&)+185j
		mov	edx, [ebx+eax*4+2AF70h]
		lea	ecx, [edx-8000h]
		cmp	edx, 8000h
		cmovb	ecx, edi
		mov	[ebx+eax*4+2AF70h], ecx
		add	eax, 1
		cmp	eax, 8000h
		jnz	short loc_AEB70
		add	esi, 8000h
		jmp	loc_AEA63
_Z11fill_windowR6TState	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; lm_init(TState &, int, unsigned short	*)
_Z7lm_initR6TStateiPt proc near		; CODE XREF: TZip::ideflate(zlist *)+D3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		lea	eax, [esi-1]
		cmp	eax, 7
		jbe	short loc_AEBD4
		mov	dword ptr [ebx+6AFA4h],	offset aBadPackLevel ; "bad pack level"

loc_AEBD4:				; CODE XREF: lm_init(TState &,int,ushort *)+18j
		mov	dword ptr [ebx+6AF78h],	0
		mov	eax, [ebx+6AF70h]
		test	eax, eax
		jnz	short loc_AEBFC
		mov	dword ptr [ebx+6AF78h],	1
		mov	dword ptr [ebx+6AF70h],	10000h

loc_AEBFC:				; CODE XREF: lm_init(TState &,int,ushort *)+36j
		mov	dword ptr [ebx+6AF6Ch],	0
		lea	eax, [ebx+4AF70h]
		mov	dword ptr [esp+8], 1FFFCh ; n
		mov	dword ptr [esp+4], 0 ; c
		mov	[esp], eax	; s
		call	memset
		movzx	eax, word ptr ds:(_ZL19configuration_table+2)[esi*8]
		cmp	esi, 2
		mov	[ebx+6AF98h], eax
		movzx	eax, word ptr ds:_ZL19configuration_table[esi*8] ; configuration_table
		mov	[ebx+6AF9Ch], eax
		movzx	eax, word ptr ds:(_ZL19configuration_table+4)[esi*8]
		mov	[ebx+6AFA0h], eax
		movzx	eax, word ptr ds:(_ZL19configuration_table+6)[esi*8]
		mov	[ebx+6AF94h], eax
		jg	short loc_AECD8
		or	word ptr [edi],	4

loc_AEC65:				; CODE XREF: lm_init(TState &,int,ushort *)+12Bj
					; lm_init(TState &,int,ushort *)+131j
		mov	dword ptr [ebx+6AF84h],	0
		lea	eax, [ebx+1AF70h]
		mov	dword ptr [ebx+6AF74h],	0
		mov	dword ptr [esp+8], 10000h
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [ebx+0Ch]
		lea	edx, [eax-1]
		mov	dword ptr ds:loc_6AF90[ebx], eax
		cmp	edx, 0FFFFFFFDh
		ja	short loc_AECE8
		mov	dword ptr [ebx+6AF8Ch],	0
		cmp	eax, 105h
		jbe	short loc_AED08

loc_AECB0:				; CODE XREF: lm_init(TState &,int,ushort *)+160j
		movzx	eax, byte ptr [ebx+1AF70h]
		movzx	edx, byte ptr [ebx+1AF71h]
		shl	eax, 5
		xor	eax, edx
		mov	[ebx+6AF7Ch], eax
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AECD8:				; CODE XREF: lm_init(TState &,int,ushort *)+AFj
		cmp	esi, 7
		jle	short loc_AEC65
		or	word ptr [edi],	2
		jmp	short loc_AEC65
; ---------------------------------------------------------------------------
		align 8

loc_AECE8:				; CODE XREF: lm_init(TState &,int,ushort *)+EDj
		mov	dword ptr [ebx+6AF8Ch],	1
		mov	dword ptr ds:loc_6AF90[ebx], 0
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_AED08:				; CODE XREF: lm_init(TState &,int,ushort *)+FEj
		mov	[esp], ebx
		call	_Z11fill_windowR6TState	; fill_window(TState &)
		jmp	short loc_AECB0
_Z7lm_initR6TStateiPt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; deflate_fast(TState &)
_Z12deflate_fastR6TState proc near	; CODE XREF: deflate(TState &)+3CAj

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_1C], 0
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+6AF80h],	2
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		lea	esi, [esi+0]

loc_AED48:				; CODE XREF: deflate_fast(TState &)+1D2j
		test	eax, eax
		jz	loc_AEF0E

loc_AED50:				; CODE XREF: deflate_fast(TState &)+1E8j
		cmp	eax, 2
		mov	edx, [ebx+6AF84h]
		jbe	short loc_AED95
		mov	esi, [ebx+6AF7Ch]
		mov	edi, edx
		movzx	ecx, byte ptr [ebx+edx+1AF72h]
		and	edi, 7FFFh
		shl	esi, 5
		xor	ecx, esi
		and	ecx, 7FFFh
		mov	[ebx+6AF7Ch], ecx
		add	ecx, 12BDCh
		mov	esi, [ebx+ecx*4]
		mov	[ebx+edi*4+2AF70h], esi
		mov	[ebx+ecx*4], edx

loc_AED95:				; CODE XREF: deflate_fast(TState &)+39j
		test	esi, esi
		jz	short loc_AEDE0
		mov	ecx, edx
		sub	ecx, esi
		cmp	ecx, 7EFAh
		ja	short loc_AEDE0
		cmp	[ebx+6AFA0h], eax
		jbe	short loc_AEDB3
		mov	[ebx+6AFA0h], eax

loc_AEDB3:				; CODE XREF: deflate_fast(TState &)+8Bj
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z13longest_matchR6TStatej ; longest_match(TState &,uint)
		mov	edx, [ebx+6AF84h]
		mov	[ebp+var_1C], eax
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		cmp	[ebp+var_1C], eax
		jbe	short loc_AEDE0
		mov	[ebp+var_1C], eax
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_AEDE0:				; CODE XREF: deflate_fast(TState &)+77j
					; deflate_fast(TState &)+83j ...
		cmp	[ebp+var_1C], 2
		jbe	loc_AEF50
		mov	eax, [ebp+var_1C]
		sub	eax, 3
		mov	[esp+8], eax
		sub	edx, [ebx+6AF88h]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_Z8ct_tallyR6TStateii ;	ct_tally(TState	&,int,int)
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_20], eax
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		sub	eax, [ebp+var_1C]
		cmp	edx, [ebx+6AF98h]
		mov	dword ptr ds:loc_6AF90[ebx], eax
		ja	loc_AEF88
		cmp	eax, 2
		jbe	loc_AEF88
		mov	ecx, [ebx+6AF84h]
		mov	eax, [ebx+6AF7Ch]
		lea	edx, [edx+ecx-1]
		mov	[ebp+var_28], ecx
		mov	[ebp+var_24], edx
		mov	edx, ecx
		nop
		lea	esi, [esi+0]

loc_AEE50:				; CODE XREF: deflate_fast(TState &)+163j
		add	edx, 1
		shl	eax, 5
		movzx	ecx, byte ptr [ebx+edx+1AF72h]
		mov	edi, edx
		and	edi, 7FFFh
		xor	eax, ecx
		and	eax, 7FFFh
		cmp	edx, [ebp+var_24]
		lea	ecx, [eax+12BDCh]
		mov	esi, [ebx+ecx*4]
		mov	[ebx+edi*4+2AF70h], esi
		mov	[ebx+ecx*4], edx
		jnz	short loc_AEE50
		mov	[ebx+6AF7Ch], eax
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		add	eax, [ebp+var_28]
		mov	[ebx+6AF84h], eax
		db	66h
		nop

loc_AEEA0:				; CODE XREF: deflate_fast(TState &)+25Dj
					; deflate_fast(TState &)+299j
		mov	eax, [ebp+var_20]
		test	eax, eax
		jz	short loc_AEEE7
		mov	edx, [ebx+6AF74h]
		xor	eax, eax
		mov	ecx, [ebx+6AF84h]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp], ebx	; int
		lea	edi, [ebx+edx+1AF70h]
		sub	ecx, edx
		test	edx, edx
		cmovns	eax, edi
		mov	[esp+8], ecx	; n
		mov	[esp+4], eax	; src
		call	_Z11flush_blockR6TStatePcmi ; flush_block(TState &,char	*,ulong,int)
		mov	eax, [ebx+6AF84h]
		mov	[ebx+6AF74h], eax

loc_AEEE7:				; CODE XREF: deflate_fast(TState &)+185j
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		cmp	eax, 105h
		ja	loc_AED48
		mov	[esp], ebx
		call	_Z11fill_windowR6TState	; fill_window(TState &)
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		test	eax, eax
		jnz	loc_AED50

loc_AEF0E:				; CODE XREF: deflate_fast(TState &)+2Aj
		mov	edx, [ebx+6AF74h]
		mov	ecx, [ebx+6AF84h]
		mov	[esp], ebx	; int
		mov	dword ptr [esp+0Ch], 1 ; int
		lea	esi, [ebx+edx+1AF70h]
		sub	ecx, edx
		test	edx, edx
		cmovns	eax, esi
		mov	[esp+8], ecx	; n
		mov	[esp+4], eax	; src
		call	_Z11flush_blockR6TStatePcmi ; flush_block(TState &,char	*,ulong,int)
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AEF50:				; CODE XREF: deflate_fast(TState &)+C4j
		movzx	eax, byte ptr [ebx+edx+1AF70h]
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_Z8ct_tallyR6TStateii ;	ct_tally(TState	&,int,int)
		sub	dword ptr ds:loc_6AF90[ebx], 1
		mov	[ebp+var_20], eax
		add	dword ptr [ebx+6AF84h],	1
		jmp	loc_AEEA0
; ---------------------------------------------------------------------------
		align 8

loc_AEF88:				; CODE XREF: deflate_fast(TState &)+101j
					; deflate_fast(TState &)+10Aj
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		add	edx, [ebx+6AF84h]
		mov	[ebx+6AF84h], edx
		movzx	eax, byte ptr [ebx+edx+1AF71h]
		movzx	edx, byte ptr [ebx+edx+1AF70h]
		shl	edx, 5
		xor	eax, edx
		mov	[ebx+6AF7Ch], eax
		jmp	loc_AEEA0
_Z12deflate_fastR6TState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; deflate(TState &)
_Z7deflateR6TState proc	near		; CODE XREF: TZip::ideflate(zlist *)+DBp

var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [ebx+4], 3
		jle	loc_AF380
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		mov	esi, 2
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		nop

loc_AEFF0:				; CODE XREF: deflate(TState &)+136j
		test	eax, eax
		jz	loc_AF112

loc_AEFF8:				; CODE XREF: deflate(TState &)+14Cj
		cmp	eax, 2
		mov	ecx, [ebx+6AF84h]
		jbe	short loc_AF046
		mov	edi, [ebx+6AF7Ch]
		movzx	edx, byte ptr [ebx+ecx+1AF72h]
		shl	edi, 5
		xor	edx, edi
		mov	edi, ecx
		and	edx, 7FFFh
		and	edi, 7FFFh
		mov	[ebx+6AF7Ch], edx
		add	edx, 12BDCh
		mov	[ebp+var_28], edx
		mov	edx, [ebx+edx*4]
		mov	[ebx+edi*4+2AF70h], edx
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+var_28]
		mov	[ebx+edx*4], ecx

loc_AF046:				; CODE XREF: deflate(TState &)+41j
		mov	edx, [ebp+var_1C]
		mov	[ebx+6AF80h], esi
		mov	edi, [ebx+6AF88h]
		test	edx, edx
		mov	[ebp+var_28], edi
		mov	edi, 2
		jz	short loc_AF0B8
		cmp	esi, [ebx+6AF98h]
		jnb	short loc_AF0B8
		mov	edx, ecx
		sub	edx, [ebp+var_1C]
		cmp	edx, 7EFAh
		ja	short loc_AF0B8
		cmp	[ebx+6AFA0h], eax
		jbe	short loc_AF084
		mov	[ebx+6AFA0h], eax

loc_AF084:				; CODE XREF: deflate(TState &)+BCj
		mov	ecx, [ebp+var_1C]
		mov	[esp], ebx
		mov	[esp+4], ecx
		call	_Z13longest_matchR6TStatej ; longest_match(TState &,uint)
		mov	ecx, dword ptr ds:loc_6AF90[ebx]
		cmp	eax, ecx
		mov	edi, ecx
		cmovbe	edi, eax
		cmp	edi, 3
		jz	loc_AF320
		mov	esi, [ebx+6AF80h]
		mov	ecx, [ebx+6AF84h]
		lea	esi, [esi+0]

loc_AF0B8:				; CODE XREF: deflate(TState &)+9Fj
					; deflate(TState &)+A7j ...
		cmp	esi, 2
		jbe	short loc_AF0C5
		cmp	edi, esi
		jbe	loc_AF1A0

loc_AF0C5:				; CODE XREF: deflate(TState &)+FBj
		mov	eax, [ebp+var_20]
		test	eax, eax
		jnz	loc_AF160
		add	ecx, 1
		mov	[ebx+6AF84h], ecx

loc_AF0D9:				; CODE XREF: deflate(TState &)+1D3j
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		mov	esi, edi
		mov	[ebp+var_20], 1
		sub	eax, 1
		mov	dword ptr ds:loc_6AF90[ebx], eax

loc_AF0F1:				; CODE XREF: deflate(TState &)+2BBj
					; deflate(TState &)+30Dj
		cmp	eax, 105h
		ja	loc_AEFF0
		mov	[esp], ebx
		call	_Z11fill_windowR6TState	; fill_window(TState &)
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		test	eax, eax
		jnz	loc_AEFF8

loc_AF112:				; CODE XREF: deflate(TState &)+32j
		mov	eax, [ebp+var_20]
		test	eax, eax
		jnz	loc_AF350

loc_AF11D:				; CODE XREF: deflate(TState &)+3B2j
		mov	edx, [ebx+6AF74h]
		xor	eax, eax
		mov	ecx, [ebx+6AF84h]
		mov	[esp], ebx	; int
		mov	dword ptr [esp+0Ch], 1 ; int
		lea	esi, [ebx+edx+1AF70h]
		sub	ecx, edx
		test	edx, edx
		cmovns	eax, esi
		mov	[esp+8], ecx	; n
		mov	[esp+4], eax	; src
		call	_Z11flush_blockR6TStatePcmi ; flush_block(TState &,char	*,ulong,int)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AF160:				; CODE XREF: deflate(TState &)+10Aj
		movzx	eax, byte ptr [ebx+ecx+1AF6Fh]
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_Z8ct_tallyR6TStateii ;	ct_tally(TState	&,int,int)
		test	eax, eax
		jnz	loc_AF2D8
		mov	eax, [ebx+6AF84h]

loc_AF18A:				; CODE XREF: deflate(TState &)+358j
		add	eax, 1
		mov	[ebx+6AF84h], eax
		jmp	loc_AF0D9
; ---------------------------------------------------------------------------
		align 10h

loc_AF1A0:				; CODE XREF: deflate(TState &)+FFj
		mov	edx, [ebp+var_28]
		sub	esi, 3
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		mov	[esp+8], esi
		mov	[esp], ebx
		not	edx
		lea	eax, [ecx+eax-3]
		add	ecx, edx
		mov	[ebp+var_20], eax
		mov	[esp+4], ecx
		call	_Z8ct_tallyR6TStateii ;	ct_tally(TState	&,int,int)
		mov	edx, [ebx+6AF80h]
		mov	[ebp+var_2C], eax
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		mov	esi, [ebx+6AF84h]
		add	eax, 1
		sub	eax, edx
		mov	[ebp+var_28], esi
		sub	edx, 2
		mov	[ebp+var_24], edx
		mov	esi, edx
		mov	[ebx+6AF80h], edx
		mov	edx, [ebp+var_28]
		mov	dword ptr ds:loc_6AF90[ebx], eax
		mov	[ebp+var_34], eax
		db	66h
		nop

loc_AF200:				; CODE XREF: deflate(TState &)+28Bj
		add	edx, 1
		cmp	[ebp+var_20], edx
		jb	short loc_AF248
		mov	edi, [ebx+6AF7Ch]
		movzx	ecx, byte ptr [ebx+edx+1AF72h]
		shl	edi, 5
		xor	ecx, edi
		and	ecx, 7FFFh
		mov	[ebx+6AF7Ch], ecx
		add	ecx, 12BDCh
		mov	edi, [ebx+ecx*4]
		mov	[ebp+var_1C], edi
		mov	edi, edx
		mov	eax, [ebp+var_1C]
		and	edi, 7FFFh
		mov	[ebx+edi*4+2AF70h], eax
		mov	[ebx+ecx*4], edx

loc_AF248:				; CODE XREF: deflate(TState &)+246j
		sub	esi, 1
		jnz	short loc_AF200
		mov	esi, [ebp+var_24]
		mov	[ebp+var_20], 0
		mov	dword ptr [ebx+6AF80h],	0
		mov	ecx, [ebp+var_28]
		mov	eax, [ebp+var_34]
		lea	edx, [esi+ecx+1]
		mov	ecx, [ebp+var_2C]
		mov	esi, 2
		mov	[ebx+6AF84h], edx
		test	ecx, ecx
		jz	loc_AF0F1
		mov	ecx, [ebx+6AF74h]
		xor	eax, eax
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp], ebx	; int
		lea	esi, [ebx+ecx+1AF70h]
		sub	edx, ecx
		test	ecx, ecx
		cmovns	eax, esi
		mov	[esp+8], edx	; n
		mov	esi, 2
		mov	[esp+4], eax	; src
		call	_Z11flush_blockR6TStatePcmi ; flush_block(TState &,char	*,ulong,int)
		mov	eax, [ebx+6AF84h]
		mov	[ebp+var_20], 0
		mov	[ebx+6AF74h], eax
		mov	eax, dword ptr ds:loc_6AF90[ebx]
		jmp	loc_AF0F1
; ---------------------------------------------------------------------------
		align 8

loc_AF2D8:				; CODE XREF: deflate(TState &)+1BEj
		mov	edx, [ebx+6AF74h]
		xor	eax, eax
		mov	ecx, [ebx+6AF84h]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp], ebx	; int
		lea	esi, [ebx+edx+1AF70h]
		sub	ecx, edx
		test	edx, edx
		cmovns	eax, esi
		mov	[esp+8], ecx	; n
		mov	[esp+4], eax	; src
		call	_Z11flush_blockR6TStatePcmi ; flush_block(TState &,char	*,ulong,int)
		mov	eax, [ebx+6AF84h]
		mov	[ebx+6AF74h], eax
		jmp	loc_AF18A
; ---------------------------------------------------------------------------
		align 10h

loc_AF320:				; CODE XREF: deflate(TState &)+E3j
		mov	ecx, [ebx+6AF84h]
		mov	esi, [ebx+6AF80h]
		mov	eax, ecx
		sub	eax, [ebx+6AF88h]
		cmp	eax, 1000h
		jbe	loc_AF0B8
		mov	edi, 2
		jmp	loc_AF0B8
; ---------------------------------------------------------------------------
		align 10h

loc_AF350:				; CODE XREF: deflate(TState &)+157j
		mov	eax, [ebx+6AF84h]
		movzx	eax, byte ptr [ebx+eax+1AF6Fh]
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_Z8ct_tallyR6TStateii ;	ct_tally(TState	&,int,int)
		jmp	loc_AF11D
; ---------------------------------------------------------------------------
		align 10h

loc_AF380:				; CODE XREF: deflate(TState &)+10j
		mov	[ebp+arg_0], ebx
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z12deflate_fastR6TState ; deflate_fast(TState &)
_Z7deflateR6TState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; putlocal(zlist *, unsigned int (*)(void *, char  const*, unsigned int), void *)
_Z8putlocalP5zlistPFjPvPKcjES1_	proc near ; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+2EBp
					; _ZN4TZip3AddEPKcPvjj_part_7+53Ep

var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_19]
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_19], 50h
		mov	esi, [ebp+arg_8]
		mov	[esp+4], edi
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 4Bh
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 3
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 4
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+2]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+3]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+2Ch]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+2Dh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+6]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+7]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+9]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+0Ah]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Bh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Dh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+0Eh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Fh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+11h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+12h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+13h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+15h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+16h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+17h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 8
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[esp+4], edi
		mov	edi, 0Ah
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 8
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		mov	[esp], esi
		mov	[esp+8], eax
		mov	eax, edx
		add	eax, 148h
		mov	[esp+4], eax
		call	ebx
		mov	edx, [ebp+arg_0]
		cmp	eax, [edx+18h]
		jz	loc_AF6F0

loc_AF6DD:				; CODE XREF: putlocal(zlist *,uint (*)(void *,char  const*,uint),void *)+368j
					; putlocal(zlist *,uint	(*)(void *,char	 const*,uint),void *)+38Bj
		add	esp, 2Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_AF6F0:				; CODE XREF: putlocal(zlist *,uint (*)(void *,char  const*,uint),void *)+347j
		mov	eax, [edx+1Ch]
		xor	di, di
		test	eax, eax
		jz	short loc_AF6DD
		mov	[esp+8], eax
		mov	eax, [edx+13Ch]
		mov	[esp], esi
		mov	[esp+4], eax
		call	ebx
		mov	edx, [ebp+arg_0]
		cmp	eax, [edx+1Ch]
		mov	eax, 0Ah
		cmovnz	edi, eax
		jmp	short loc_AF6DD
_Z8putlocalP5zlistPFjPvPKcjES1_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; putextended(zlist *, unsigned	int (*)(void *,	char  const*, unsigned int), void *)
_Z11putextendedP5zlistPFjPvPKcjES1_ proc near ;	CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+744p

var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_19]
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_19], 50h
		mov	esi, [ebp+arg_8]
		mov	[esp+4], edi
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[ebp+var_19], 4Bh
		mov	dword ptr [esp+8], 1
		call	ebx
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[ebp+var_19], 7
		mov	dword ptr [esp+8], 1
		call	ebx
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[ebp+var_19], 8
		mov	dword ptr [esp+8], 1
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Dh]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+0Eh]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Fh]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+11h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+12h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+13h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+15h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+16h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+17h]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	[ebp+var_19], al
		call	ebx
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z11putextendedP5zlistPFjPvPKcjES1_ endp

; ---------------------------------------------------------------------------
		jmp	short _Z10putcentralP5zlistPFjPvPKcjES1_ ; putcentral(zlist *,uint (*)(void *,char  const*,uint),void *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; putcentral(zlist *, unsigned int (*)(void *, char  const*, unsigned int), void *)
_Z10putcentralP5zlistPFjPvPKcjES1_ proc	near ; CODE XREF: .text:000AF8D1j
					; TZip::AddCentral(void)+7Fp

var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_19]
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_19], 50h
		mov	esi, [ebp+arg_8]
		mov	[esp+4], edi
		mov	ebx, [ebp+arg_4]
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 4Bh
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 1
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 2
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+1]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+2]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+3]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+4]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+5]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+6]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+7]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+9]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+0Ah]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Bh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Dh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+0Eh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+0Fh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+11h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+12h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+13h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+15h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+16h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+17h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 8
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 8
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+24h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+24h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 8
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+28h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+29h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+2Ah]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+2Bh]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+31h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+32h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+33h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+34h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+35h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [edx+36h]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		movzx	eax, byte ptr [edx+37h]
		mov	[esp+4], edi
		mov	edi, 0Ah
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		mov	[esp], esi
		mov	[esp+8], eax
		mov	eax, edx
		add	eax, 148h
		mov	[esp+4], eax
		call	ebx
		mov	edx, [ebp+arg_0]
		cmp	eax, [edx+18h]
		jz	loc_AFDE8

loc_AFDDB:				; CODE XREF: putcentral(zlist *,uint (*)(void *,char  const*,uint),void	*)+519j
					; putcentral(zlist *,uint (*)(void *,char  const*,uint),void *)+53Cj ...
		add	esp, 2Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_AFDE8:				; CODE XREF: putcentral(zlist *,uint (*)(void *,char  const*,uint),void	*)+4F5j
		mov	eax, [edx+20h]
		test	eax, eax
		jnz	short loc_AFE20

loc_AFDEF:				; CODE XREF: putcentral(zlist *,uint (*)(void *,char  const*,uint),void	*)+55Bj
		mov	edx, [ebp+arg_0]
		xor	edi, edi
		mov	eax, [edx+24h]
		test	eax, eax
		jz	short loc_AFDDB
		mov	[esp+8], eax
		mov	eax, [edx+144h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	ebx
		mov	edx, [ebp+arg_0]
		cmp	eax, [edx+24h]
		mov	eax, 0Ah
		cmovnz	edi, eax
		jmp	short loc_AFDDB
; ---------------------------------------------------------------------------
		align 10h

loc_AFE20:				; CODE XREF: putcentral(zlist *,uint (*)(void *,char  const*,uint),void	*)+50Dj
		mov	[esp+8], eax
		mov	eax, [edx+140h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	ebx
		mov	edx, [ebp+arg_0]
		cmp	eax, [edx+20h]
		jnz	short loc_AFDDB
		jmp	short loc_AFDEF
_Z10putcentralP5zlistPFjPvPKcjES1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; putend(int, unsigned long, unsigned long, unsigned int, char *, unsigned int (*)(void	*, char	 const*, unsigned int),	void *)
_Z6putendimmjPcPFjPvPKcjES0_ proc near	; CODE XREF: TZip::AddCentral(void)+F0p

var_2C		= dword	ptr -2Ch
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_19]
		push	ebx
		sub	esp, 3Ch
		mov	[ebp+var_19], 50h
		mov	esi, [ebp+arg_18]
		mov	[esp+4], edi
		mov	ebx, [ebp+arg_14]
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 4Bh
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 5
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 6
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 0
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 0
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 0
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		mov	[esp+4], edi
		mov	[ebp+var_19], 0
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		call	ebx
		movzx	eax, byte ptr [ebp+arg_0]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_0]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		sar	edx, 8
		mov	[ebp+var_19], dl
		mov	[ebp+var_2C], edx
		call	ebx
		movzx	eax, byte ptr [ebp+arg_0]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+var_2C]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], dl
		call	ebx
		movzx	edx, byte ptr [ebp+arg_4]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], dl
		call	ebx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		movzx	eax, dh
		mov	[ebp+var_19], al
		call	ebx
		mov	eax, [ebp+arg_4]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 10h
		mov	[ebp+var_19], al
		call	ebx
		mov	eax, [ebp+arg_4]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 18h
		mov	[ebp+var_19], al
		call	ebx
		movzx	eax, byte ptr [ebp+arg_8]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	edx, [ebp+arg_8]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		movzx	eax, dh
		mov	[ebp+var_19], al
		call	ebx
		mov	eax, [ebp+arg_8]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 10h
		mov	[ebp+var_19], al
		call	ebx
		mov	eax, [ebp+arg_8]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		shr	eax, 18h
		mov	[ebp+var_19], al
		call	ebx
		movzx	eax, byte ptr [ebp+arg_C]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		mov	[esp], esi
		mov	[ebp+var_19], al
		call	ebx
		mov	eax, [ebp+arg_C]
		mov	[esp+4], edi
		mov	dword ptr [esp+8], 1
		xor	edi, edi
		mov	[esp], esi
		shr	eax, 8
		mov	[ebp+var_19], al
		call	ebx
		mov	ecx, [ebp+arg_C]
		test	ecx, ecx
		jnz	loc_B0078
		add	esp, 3Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B0078:				; CODE XREF: putend(int,ulong,ulong,uint,char *,uint (*)(void *,char  const*,uint),void	*)+223j
		mov	edx, [ebp+arg_C]
		mov	[esp], esi
		mov	eax, [ebp+arg_10]
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	ebx
		cmp	[ebp+arg_C], eax
		mov	eax, 0Ah
		cmovnz	edi, eax
		add	esp, 3Ch
		pop	ebx
		mov	eax, edi
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z6putendimmjPcPFjPvPKcjES0_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; crc32(unsigned long, unsigned	char  const*, unsigned int)
_Z5crc32mPKhj	proc near		; CODE XREF: TZip::read(char *,uint)+59p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		mov	edi, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		jz	loc_B01B7
		mov	eax, [ebp+arg_0]
		cmp	edi, 7
		not	eax
		jbe	loc_B01B1
		mov	edx, [ebp+arg_4]
		mov	ecx, edi
		lea	esi, [esi+0]

loc_B00D0:				; CODE XREF: crc32(ulong,uchar	const*,uint)+F8j
		movzx	ebx, byte ptr [edx]
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+1]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+2]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+3]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+4]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+5]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+6]
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		movzx	ebx, byte ptr [edx+7]
		add	edx, 8
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		xor	ebx, eax
		shr	eax, 8
		mov	esi, ebx
		and	esi, 0FFh
		xor	eax, dword ptr ds:_ZL9crc_table[esi*4] ; crc_table
		sub	ecx, 8
		cmp	ecx, 7
		ja	loc_B00D0
		mov	ecx, [ebp+arg_4]
		lea	edx, [edi-8]
		and	edi, 7
		shr	edx, 3
		lea	ecx, [ecx+edx*8+8]
		mov	[ebp+arg_4], ecx

loc_B01B1:				; CODE XREF: crc32(ulong,uchar	const*,uint)+1Ej
		test	edi, edi
		jnz	short loc_B01C0

loc_B01B5:				; CODE XREF: crc32(ulong,uchar	const*,uint)+140j
		not	eax

loc_B01B7:				; CODE XREF: crc32(ulong,uchar	const*,uint)+10j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B01C0:				; CODE XREF: crc32(ulong,uchar	const*,uint)+113j
					; crc32(ulong,uchar  const*,uint)+13Ej
		mov	ebx, [ebp+arg_4]
		movzx	edx, byte ptr [ebx]
		add	ebx, 1
		mov	[ebp+arg_4], ebx
		xor	edx, eax
		shr	eax, 8
		movzx	edx, dl
		xor	eax, dword ptr ds:_ZL9crc_table[edx*4] ; crc_table
		sub	edi, 1
		jnz	short loc_B01C0
		jmp	short loc_B01B5
_Z5crc32mPKhj	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl HasZipSuffix(char	*s)
_Z12HasZipSuffixPKc proc near		; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7:loc_B0C80p

s		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+s]
		mov	[esp], esi	; s
		call	strlen
		lea	ebx, [esi+eax]
		cmp	esi, ebx
		jb	loc_B02E0

loc_B020E:				; CODE XREF: HasZipSuffix(char	const*)+F3j
		cmp	esi, ebx
		jz	loc_B02F7
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_B0220:				; CODE XREF: HasZipSuffix(char	const*)+10Ej
					; HasZipSuffix(char  const*)+120j
		mov	dword ptr [esp+4], offset a_z ;	".Z"
		mov	esi, 1
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	loc_B02D0
		mov	dword ptr [esp+4], offset a_zip	; ".zip"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_B02D0
		mov	dword ptr [esp+4], offset a_zoo	; ".zoo"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_B02D0
		mov	dword ptr [esp+4], offset a_arc	; ".arc"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_B02D0
		mov	dword ptr [esp+4], offset a_lzh	; ".lzh"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_B02D0
		mov	dword ptr [esp+4], offset a_arj	; ".arj"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_B02D0
		mov	dword ptr [esp+4], offset a_gz ; ".gz"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_B02D0
		mov	dword ptr [esp+4], offset a_tgz	; ".tgz"
		mov	[esp], ebx	; s1
		call	strcasecmp
		test	eax, eax
		setz	al
		mov	esi, eax
		lea	esi, [esi+0]

loc_B02D0:				; CODE XREF: HasZipSuffix(char	const*)+47j
					; HasZipSuffix(char  const*)+5Fj ...
		add	esp, 10h
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B02E0:				; CODE XREF: HasZipSuffix(char	const*)+18j
		cmp	byte ptr [ebx],	2Eh
		jz	loc_B020E
		lea	esi, [esi+0]

loc_B02F0:				; CODE XREF: HasZipSuffix(char	const*)+11Bj
		sub	ebx, 1
		cmp	ebx, esi
		jnz	short loc_B0308

loc_B02F7:				; CODE XREF: HasZipSuffix(char	const*)+20j
		xor	esi, esi
		cmp	byte ptr [ebx],	2Eh
		jnz	short loc_B02D0
		jmp	loc_B0220
; ---------------------------------------------------------------------------
		align 8

loc_B0308:				; CODE XREF: HasZipSuffix(char	const*)+105j
		cmp	byte ptr [ebx],	2Eh
		jnz	short loc_B02F0
		lea	esi, [esi+0]
		jmp	loc_B0220
_Z12HasZipSuffixPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl timet_to_timestamp(time_t	timer)
_Z18timet_to_timestampl	proc near	; CODE XREF: TZip::open_mem(void *,uint)+6Cp
					; TZip::open_dir(void)+50p

timer		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+timer]
		mov	[esp], eax	; timer
		call	localtime
		xor	edx, edx
		test	eax, eax
		jz	short locret_B035F
		mov	edx, [eax+14h]
		mov	ecx, [eax+10h]
		mov	eax, [eax+0Ch]
		and	edx, 7Fh
		and	ecx, 0Fh
		sub	edx, 50h
		add	ecx, 1
		shl	edx, 9
		and	eax, 1Fh
		shl	ecx, 5
		or	edx, ecx
		or	edx, eax
		shl	edx, 10h
		or	edx, [ebp+timer]

locret_B035F:				; CODE XREF: timet_to_timestamp(long)+15j
		leave
		mov	eax, edx
		retn
_Z18timet_to_timestampl	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl TZip__Create(int,	int, size_t nmemb, int)
_ZN4TZip6CreateEPvjj proc near		; CODE XREF: CreateZipZ(void *,uint,uint)+6Dp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
nmemb		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	eax, 1000000h
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+nmemb]
		mov	ecx, [ebx]
		test	ecx, ecx
		jz	short loc_B03A0

loc_B0390:				; CODE XREF: TZip::Create(void *,uint,uint)+35j
					; TZip::Create(void *,uint,uint)+3Cj ...
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B03A0:				; CODE XREF: TZip::Create(void *,uint,uint)+1Ej
		mov	ecx, [ebx+4]
		test	ecx, ecx
		jnz	short loc_B0390
		mov	ecx, [ebx+18h]
		test	ecx, ecx
		jnz	short loc_B0390
		cmp	dword ptr [ebx+10h], 0
		jnz	short loc_B0390
		cmp	dword ptr [ebx+0Ch], 0
		jnz	short loc_B0390
		cmp	byte ptr [ebx+24h], 0
		jnz	short loc_B0390
		cmp	[ebp+arg_C], 3
		mov	eax, 10000h
		jnz	short loc_B0390
		test	esi, esi
		mov	eax, 30000h
		jz	short loc_B0390
		test	edx, edx
		jz	short loc_B03ED
		mov	[ebx+18h], edx

loc_B03DB:				; CODE XREF: TZip::Create(void *,uint,uint)+A0j
		mov	byte ptr [ebx+14h], 1
		xor	eax, eax
		mov	dword ptr [ebx+1Ch], 0
		mov	[ebx+20h], esi
		jmp	short loc_B0390
; ---------------------------------------------------------------------------

loc_B03ED:				; CODE XREF: TZip::Create(void *,uint,uint)+66j
		mov	dword ptr [esp+4], 1 ; size
		mov	[esp], esi	; nmemb
		call	calloc
		mov	dword ptr [ebx+4], 0FFFFFFFFh
		mov	edx, eax
		mov	[ebx+18h], eax
		mov	eax, 300h
		test	edx, edx
		jnz	short loc_B03DB
		jmp	loc_B0390
_ZN4TZip6CreateEPvjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl TZip__write(int, void *src, size_t n)
_ZN4TZip5writeEPKcj proc near		; CODE XREF: TZip::swrite(void *,char  const*,uint)+11j
					; TZip::sflush(void *,char  const*,uint	*)+31p	...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
n		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+n]
		mov	eax, [ebx+18h]
		test	eax, eax
		jz	short loc_B0488
		mov	edx, [ebx+1Ch]
		lea	ecx, [esi+edx]
		cmp	ecx, [ebx+20h]
		jb	short loc_B0460
		mov	dword ptr [ebx+0Ch], 30000h
		xor	esi, esi
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B0460:				; CODE XREF: TZip::write(char  const*,uint)+22j
		add	eax, edx
		mov	edx, [ebp+src]
		mov	[esp+8], esi	; n
		mov	[esp], eax	; dest
		mov	[esp+4], edx	; src
		call	memcpy
		mov	eax, esi
		add	[ebx+1Ch], esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B0488:				; CODE XREF: TZip::write(char  const*,uint)+17j
		mov	dword ptr [ebx+0Ch], 1000000h
		xor	esi, esi
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN4TZip5writeEPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::swrite(void *, char  const*, unsigned int)
_ZN4TZip6swriteEPvPKcj proc near	; DATA XREF: _ZN4TZip3AddEPKcPvjj_part_7+2C9o
					; _ZN4TZip3AddEPKcPvjj_part_7+532o ...

arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jnz	short loc_B04B0
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B04B0:				; CODE XREF: TZip::swrite(void *,char  const*,uint)+8j
		pop	ebp
		jmp	_ZN4TZip5writeEPKcj ; TZip::write(char	const*,uint)
_ZN4TZip6swriteEPvPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl TZip__sflush(int,	void *src, int)
_ZN4TZip6sflushEPvPKcPj	proc near	; DATA XREF: TZip::ideflate(zlist *)+4Bo

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_8]
		mov	edx, [ebx]
		test	edx, edx
		jnz	short loc_B04E0

loc_B04D2:				; CODE XREF: TZip::sflush(void *,char  const*,uint *)+38j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B04E0:				; CODE XREF: TZip::sflush(void *,char  const*,uint *)+10j
		mov	eax, [ebp+src]
		mov	[esp+8], edx	; n
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_ZN4TZip5writeEPKcj ; TZip::write(char	const*,uint)
		test	eax, eax
		jz	short loc_B04D2
		mov	dword ptr [ebx], 0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN4TZip6sflushEPvPKcPj	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::oseek(unsigned int)
_ZN4TZip5oseekEj proc near		; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+517p
					; _ZN4TZip3AddEPKcPvjj_part_7+560p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		cmp	byte ptr [eax+14h], 0
		jz	short loc_B0550
		mov	ecx, [eax+18h]
		test	ecx, ecx
		jz	short loc_B0560
		cmp	edx, [eax+20h]
		jb	short loc_B0540
		mov	dword ptr [eax+0Ch], 30000h
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B0540:				; CODE XREF: TZip::oseek(uint)+19j
		mov	[eax+1Ch], edx
		mov	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B0550:				; CODE XREF: TZip::oseek(uint)+Dj
		mov	dword ptr [eax+0Ch], 2000000h
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B0560:				; CODE XREF: TZip::oseek(uint)+14j
		mov	dword ptr [eax+0Ch], 1000000h
		xor	eax, eax
		pop	ebp
		retn
_ZN4TZip5oseekEj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::open_file(char	const*)
_ZN4TZip9open_fileEPKc proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], 1
		mov	dword ptr [eax+50h], 0
		mov	dword ptr [eax+58h], 0
		mov	byte ptr [eax+54h], 0
		mov	dword ptr [eax+4Ch], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+64h], 0
		mov	dword ptr [eax+48h], 0
		sbb	eax, eax
		and	eax, 0FE00h
		pop	ebp
		add	eax, 200h
		retn
_ZN4TZip9open_fileEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::open_handle(void *, unsigned int)
_ZN4TZip11open_handleEPvj proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+50h], 0
		mov	dword ptr [eax+58h], 0
		mov	byte ptr [eax+54h], 0
		mov	dword ptr [eax+4Ch], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+64h], 0
		mov	dword ptr [eax+48h], 0
		mov	eax, [ebp+arg_4]
		pop	ebp
		sub	eax, 1
		cmp	eax, 0FFFFFFFEh
		sbb	eax, eax
		and	eax, 30000h
		add	eax, 10000h
		retn
_ZN4TZip11open_handleEPvj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::open_mem(void *, unsigned int)
_ZN4TZip8open_memEPvj proc near		; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+64Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		test	eax, eax
		mov	dword ptr [ebx+50h], 0
		mov	[ebx+58h], edx
		mov	byte ptr [ebx+54h], 0
		mov	dword ptr [ebx+4Ch], 0
		mov	dword ptr [ebx+48h], 0
		mov	dword ptr [ebx+64h], 0
		mov	[ebx+5Ch], eax
		mov	dword ptr [ebx+60h], 0
		jnz	short loc_B0660

loc_B0651:				; CODE XREF: TZip::open_mem(void *,uint)+52j
		add	esp, 14h
		mov	eax, 10000h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B0660:				; CODE XREF: TZip::open_mem(void *,uint)+3Fj
		test	edx, edx
		jz	short loc_B0651
		mov	dword ptr [esp], 0 ; timer
		call	time
		mov	[ebx+30h], eax
		mov	[ebx+34h], eax
		mov	[ebx+38h], eax
		mov	[esp], eax	; timer
		call	_Z18timet_to_timestampl	; timet_to_timestamp(long)
		mov	[ebx+3Ch], eax
		add	esp, 14h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_ZN4TZip8open_memEPvj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::open_dir(void)
_ZN4TZip8open_dirEv proc near		; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+D4p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+50h], 0
		mov	dword ptr [ebx+58h], 0
		mov	byte ptr [ebx+54h], 0
		mov	dword ptr [ebx+4Ch], 0
		mov	dword ptr [ebx+44h], 0
		mov	dword ptr [ebx+64h], 0
		mov	dword ptr [ebx+48h], 0
		mov	dword ptr [esp], 0 ; timer
		call	time
		mov	[ebx+30h], eax
		mov	[ebx+34h], eax
		mov	[ebx+38h], eax
		mov	[esp], eax	; timer
		call	_Z18timet_to_timestampl	; timet_to_timestamp(long)
		mov	[ebx+3Ch], eax
		add	esp, 14h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_ZN4TZip8open_dirEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl TZip__read(int, void *dest, int)
_ZN4TZip4readEPcj proc near		; CODE XREF: TZip::sread(TState	&,char *,uint)+Cj
					; TZip::istore(void)+46p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+dest]
		mov	[ebp+var_8], esi
		mov	edx, [ebx+58h]
		test	edx, edx
		jz	short loc_B0760
		mov	eax, [ebx+60h]
		xor	esi, esi
		mov	ecx, [ebx+5Ch]
		cmp	eax, ecx
		jnb	short loc_B0751
		sub	ecx, eax
		mov	esi, [ebp+arg_8]
		mov	[esp], edi	; dest
		cmp	[ebp+arg_8], ecx
		cmova	esi, ecx
		add	eax, edx
		mov	[esp+4], eax	; src
		mov	[esp+8], esi	; n
		call	memcpy
		add	[ebx+60h], esi
		add	[ebx+48h], esi
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	eax, [ebx+4Ch]
		mov	[esp], eax
		call	_Z5crc32mPKhj	; crc32(ulong,uchar  const*,uint)
		mov	[ebx+4Ch], eax

loc_B0751:				; CODE XREF: TZip::read(char *,uint)+26j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B0760:				; CODE XREF: TZip::read(char *,uint)+1Aj
		mov	dword ptr [ebx+0Ch], 1000000h
		xor	esi, esi
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN4TZip4readEPcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::sread(TState &,	char *,	unsigned int)
_ZN4TZip5sreadER6TStatePcj proc	near	; DATA XREF: TZip::ideflate(zlist *)+41o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN4TZip4readEPcj ; TZip::read(char *,uint)
_ZN4TZip5sreadER6TStatePcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::iclose(void)
_ZN4TZip6icloseEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+44h]
		mov	dword ptr [eax+50h], 0
		mov	ecx, [eax+48h]
		cmp	edx, 0FFFFFFFFh
		mov	[eax+44h], ecx
		jz	short loc_B07D0
		cmp	edx, ecx
		jz	short loc_B07D0
		mov	eax, 60000h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B07D0:				; CODE XREF: TZip::iclose(void)+19j
					; TZip::iclose(void)+1Dj
		xor	eax, eax
		pop	ebp
		retn
_ZN4TZip6icloseEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::ideflate(zlist *)
_ZN4TZip8ideflateEP5zlist proc near	; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+783p

var_6AFC0	= dword	ptr -6AFC0h
var_6AFBC	= dword	ptr -6AFBCh
var_6AFB8	= byte ptr -6AFB8h
var_6AFB4	= dword	ptr -6AFB4h
var_6AFB0	= dword	ptr -6AFB0h
var_6AFAC	= byte ptr -6AFACh
var_6A142	= word ptr -6A142h
var_5006C	= dword	ptr -5006Ch
var_50068	= dword	ptr -50068h
var_50064	= dword	ptr -50064h
var_50060	= dword	ptr -50060h
var_5005C	= dword	ptr -5005Ch
var_50058	= dword	ptr -50058h
var_50054	= dword	ptr -50054h
var_50		= dword	ptr -50h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_6AFAC]
		push	ebx
		lea	esi, [ebp+var_6AFC0]
		sub	esp, 6AFCCh
		mov	ebx, [ebp+arg_0]
		mov	[esp], eax
		mov	edi, [ebp+arg_4]
		call	_ZN10TTreeStateC2Ev ; TTreeState::TTreeState(void)
		mov	[ebp+var_50], 0
		mov	[ebp+var_1C], 0
		movzx	eax, byte ptr [ebx+40h]
		mov	[ebp+var_6AFC0], ebx
		mov	[esp], esi
		mov	[ebp+var_6AFB4], offset	_ZN4TZip5sreadER6TStatePcj ; TZip::sread(TState	&,char *,uint)
		mov	[ebp+var_6AFB0], offset	_ZN4TZip6sflushEPvPKcPj	; TZip::sflush(void *,char  const*,uint	*)
		mov	[ebp+var_6AFB8], al
		lea	eax, [ebx+68h]
		mov	[ebp+var_50060], eax
		lea	eax, [edi+2Ah]
		add	edi, 4
		mov	[esp+4], eax
		mov	[ebp+var_6AFBC], 8
		mov	[ebp+var_6A142], 0
		mov	[ebp+var_50058], 4000h
		mov	[ebp+var_5005C], 0
		mov	[ebp+var_5006C], 1
		mov	[ebp+var_50068], 0
		mov	[ebp+var_50064], 0
		mov	[ebp+var_50054], 0
		call	_Z7ct_initR6TStatePt ; ct_init(TState &,ushort *)
		mov	eax, [ebp+var_6AFBC]
		mov	[esp+8], edi
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z7lm_initR6TStateiPt ;	lm_init(TState &,int,ushort *)
		mov	[esp], esi
		call	_Z7deflateR6TState ; deflate(TState &)
		cmp	[ebp+var_1C], 1
		mov	[ebx+64h], eax
		sbb	eax, eax
		add	esp, 6AFCCh
		pop	ebx
		not	eax
		and	eax, 5000000h
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN4TZip8ideflateEP5zlist endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::istore(void)
_ZN4TZip6istoreEv proc near		; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+698p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_1C], 0
		mov	esi, [ebp+arg_0]
		lea	edi, [esi+68h]
		jmp	short loc_B0917
; ---------------------------------------------------------------------------
		align 10h

loc_B0900:				; CODE XREF: TZip::istore(void)+53j
		mov	[esp+8], ebx	; n
		mov	[esp+4], edi	; src
		mov	[esp], esi	; int
		call	_ZN4TZip5writeEPKcj ; TZip::write(char	const*,uint)
		cmp	eax, ebx
		jnz	short loc_B0948
		add	[ebp+var_1C], eax

loc_B0917:				; CODE XREF: TZip::istore(void)+16j
		mov	dword ptr [esp+8], 4000h ; int
		mov	[esp+4], edi	; dest
		mov	[esp], esi	; int
		call	_ZN4TZip4readEPcj ; TZip::read(char *,uint)
		mov	ebx, eax
		lea	eax, [eax-1]
		cmp	eax, 0FFFFFFFDh
		jbe	short loc_B0900
		mov	eax, [ebp+var_1C]
		mov	[esi+64h], eax
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_B0948:				; CODE XREF: TZip::istore(void)+32j
		add	esp, 2Ch
		mov	eax, 60000h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN4TZip6istoreEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __fastcall TZip__Add(int,	char *src, int,	int)
_ZN4TZip3AddEPKcPvjj_part_7 proc near	; CODE XREF: TZip::Add(char  const*,void *,uint,uint)+5Fj

var_4B0		= dword	ptr -4B0h
var_4AC		= dword	ptr -4ACh
var_4A8		= dword	ptr -4A8h
var_4A2		= byte ptr -4A2h
var_4A1		= byte ptr -4A1h
var_4A0		= dword	ptr -4A0h
var_49C		= dword	ptr -49Ch
var_498		= word ptr -498h
var_496		= word ptr -496h
var_494		= word ptr -494h
var_492		= word ptr -492h
var_490		= dword	ptr -490h
var_48C		= dword	ptr -48Ch
var_488		= dword	ptr -488h
var_484		= dword	ptr -484h
var_480		= dword	ptr -480h
var_47C		= dword	ptr -47Ch
n		= dword	ptr -478h
var_474		= dword	ptr -474h
var_470		= word ptr -470h
var_46E		= word ptr -46Eh
var_46C		= word ptr -46Ch
var_468		= dword	ptr -468h
var_464		= dword	ptr -464h
var_460		= byte ptr -460h
var_35C		= dword	ptr -35Ch
var_358		= dword	ptr -358h
var_354		= dword	ptr -354h
dest		= byte ptr -350h
var_24C		= byte ptr -24Ch
var_148		= dword	ptr -148h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_137		= byte ptr -137h
s		= byte ptr -136h
var_32		= dword	ptr -32h
var_2E		= dword	ptr -2Eh
var_2A		= byte ptr -2Ah
var_29		= byte ptr -29h
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= byte ptr -26h
var_25		= byte ptr -25h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= byte ptr -22h
var_21		= dword	ptr -21h
var_1D		= dword	ptr -1Dh
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, ecx
		push	esi
		lea	esi, [ebp+s]
		push	ebx
		mov	ebx, 10000h
		sub	esp, 4BCh
		mov	[ebp+var_49C], eax
		mov	[esp+4], edx	; src
		mov	[esp], esi	; dest
		call	strcpy
		movzx	eax, [ebp+s]
		test	al, al
		jnz	short loc_B09A8

loc_B0996:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+BFj
					; _ZN4TZip3AddEPKcPvjj_part_7+E3j ...
		add	esp, 4BCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B09A8:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+34j
		mov	edx, esi
		jmp	short loc_B09BA
; ---------------------------------------------------------------------------
		align 10h

loc_B09B0:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+5Cj
		add	edx, 1
		movzx	eax, byte ptr [edx]
		test	al, al
		jz	short loc_B09CB

loc_B09BA:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+4Aj
					; _ZN4TZip3AddEPKcPvjj_part_7+69j
		cmp	al, 5Ch
		jnz	short loc_B09B0
		mov	byte ptr [edx],	2Fh
		add	edx, 1
		movzx	eax, byte ptr [edx]
		test	al, al
		jnz	short loc_B09BA

loc_B09CB:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+58j
		cmp	[ebp+arg_4], 4
		mov	[esp], esi	; s
		setz	[ebp+var_4A1]
		jnz	loc_B0C80
		call	strlen
		cmp	[ebp+eax+var_137], 2Fh
		setnz	[ebp+var_4A2]

loc_B09F3:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+339j
		xor	edx, edx

loc_B09F5:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+333j
		cmp	[ebp+arg_4], 2
		jz	loc_B0CA0
		cmp	[ebp+arg_4], 1
		jz	loc_B0CF0
		cmp	[ebp+arg_4], 3
		jz	loc_B0F90
		cmp	[ebp+var_4A1], 0
		mov	ebx, 10000h
		jz	loc_B0996
		mov	eax, [ebp+var_49C]
		mov	[ebp+var_4A8], edx
		mov	[esp], eax
		call	_ZN4TZip8open_dirEv ; TZip::open_dir(void)
		mov	edx, [ebp+var_4A8]
		mov	ebx, eax

loc_B0A41:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+657j
		test	ebx, ebx
		jnz	loc_B0996
		mov	[esp+4], esi	; src
		lea	esi, [ebp+dest]
		mov	[ebp+var_4A8], edx
		mov	[ebp+var_13C], 0
		mov	[ebp+var_460], 0
		mov	[esp], esi	; dest
		call	strcpy
		mov	edx, [ebp+var_4A8]
		mov	ecx, esi

loc_B0A7A:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+12Ej
		mov	ebx, [ecx]
		add	ecx, 4
		lea	eax, [ebx-1010101h]
		not	ebx
		and	eax, ebx
		and	eax, 80808080h
		jz	short loc_B0A7A
		mov	ebx, eax
		shr	ebx, 10h
		test	eax, 8080h
		cmovz	eax, ebx
		lea	ebx, [ecx+2]
		cmovz	ecx, ebx
		add	al, al
		sbb	ecx, 3
		sub	ecx, esi
		cmp	[ebp+var_4A2], 0
		mov	[ebp+var_480], ecx
		jnz	loc_B0D3D

loc_B0ABD:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+417j
		mov	ecx, [ebp+var_49C]
		test	edx, edx
		mov	[ebp+var_24C], 0
		mov	[ebp+var_354], 0
		mov	edi, edx
		mov	[ebp+var_474], 0
		mov	[ebp+var_148], 1
		mov	eax, [ecx+3Ch]
		mov	[ebp+var_492], dx
		mov	[ebp+var_140], 0
		mov	[ebp+var_46E], 0
		mov	[ebp+var_498], 0B17h
		mov	[ebp+var_496], 14h
		mov	[ebp+var_490], eax
		mov	[ebp+var_48C], 0
		mov	[ebp+var_494], 8
		mov	[ebp+var_46C], 8
		jnz	loc_B0D80
		mov	eax, [ecx+44h]
		mov	ecx, edx
		test	eax, eax
		cmovns	ecx, eax

loc_B0B4D:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+42Bj
		mov	ebx, [ebp+var_49C]
		mov	byte ptr [ebp+var_32], 55h
		lea	esi, [ebp+var_498]
		mov	[ebp+var_488], ecx
		mov	ecx, [ebp+var_49C]
		mov	[ebp+var_484], eax
		mov	[ebp+var_470], 0
		mov	[ebp+var_47C], 11h
		mov	eax, [ecx+2Ch]
		mov	byte ptr [ebp+var_32+1], 54h
		mov	[ebp+n], 9
		mov	byte ptr [ebp+var_32+2], 0Dh
		mov	byte ptr [ebp+var_32+3], 0
		mov	[ebp+var_468], eax
		mov	eax, [ecx+8]
		mov	byte ptr [ebp+var_2E], 7
		add	eax, [ecx+10h]
		mov	ecx, [ecx+34h]
		mov	[ebp+var_464], eax
		lea	eax, [ebp+var_32]
		mov	[ebp+var_35C], eax
		lea	eax, [ebp+var_21]
		mov	[ebp+var_358], eax
		mov	eax, ecx
		sar	eax, 8
		mov	byte ptr [ebp+var_2E+1], cl
		mov	byte ptr [ebp+var_2E+2], al
		mov	eax, ecx
		sar	ecx, 18h
		sar	eax, 10h
		mov	[ebp+var_2A], cl
		mov	byte ptr [ebp+var_2E+3], al
		mov	eax, [ebx+30h]
		mov	ebx, eax
		mov	[ebp+var_29], al
		sar	ebx, 8
		mov	[ebp+var_28], bl
		mov	ebx, eax
		sar	eax, 18h
		sar	ebx, 10h
		mov	[ebp+var_26], al
		mov	[ebp+var_27], bl
		mov	ebx, [ebp+var_49C]
		mov	eax, [ebx+38h]
		mov	ebx, eax
		mov	[ebp+var_25], al
		sar	ebx, 8
		mov	[ebp+var_24], bl
		mov	ebx, eax
		sar	eax, 18h
		sar	ebx, 10h
		mov	[ebp+var_23], bl
		mov	[ebp+var_22], al
		mov	eax, [ebp+var_32]
		mov	[ebp+var_4A8], edx
		mov	[ebp+var_19], cl
		mov	dword ptr [esp+4], offset _ZN4TZip6swriteEPvPKcj ; TZip::swrite(void *,char  const*,uint)
		mov	[ebp+var_21], eax
		mov	eax, [ebp+var_2E]
		mov	byte ptr [ebp+var_21+2], 5
		mov	[esp], esi
		mov	[ebp+var_1D], eax
		mov	eax, [ebp+var_49C]
		mov	[esp+8], eax
		call	_Z8putlocalP5zlistPFjPvPKcjES1_	; putlocal(zlist *,uint	(*)(void *,char	 const*,uint),void *)
		mov	edx, [ebp+var_4A8]
		test	eax, eax
		jz	loc_B0D90
		mov	eax, [ebp+var_49C]
		mov	ebx, 400h
		mov	dword ptr [eax+50h], 0
		mov	edx, eax
		mov	eax, [eax+48h]
		mov	[edx+44h], eax
		jmp	loc_B0996
; ---------------------------------------------------------------------------
		align 10h

loc_B0C80:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+79j
		call	_Z12HasZipSuffixPKc ; HasZipSuffix(char	 const*)
		mov	[ebp+var_4A2], 0
		mov	edx, 8
		test	al, al
		jz	loc_B09F5
		jmp	loc_B09F3
; ---------------------------------------------------------------------------
		align 10h

loc_B0CA0:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+99j
		mov	eax, [ebp+var_49C]
		cmp	edi, 1
		sbb	ebx, ebx
		and	ebx, 0FE00h
		add	ebx, 200h
		mov	dword ptr [eax+50h], 0
		mov	dword ptr [eax+58h], 0
		mov	byte ptr [eax+54h], 0
		mov	dword ptr [eax+4Ch], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+64h], 0
		mov	dword ptr [eax+48h], 0
		jmp	loc_B0996
; ---------------------------------------------------------------------------
		align 10h

loc_B0CF0:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+A3j
		mov	eax, [ebp+var_49C]
		sub	edi, 1
		cmp	edi, 0FFFFFFFEh
		sbb	ebx, ebx
		and	ebx, 30000h
		mov	dword ptr [eax+50h], 0
		add	ebx, 10000h
		mov	dword ptr [eax+58h], 0
		mov	byte ptr [eax+54h], 0
		mov	dword ptr [eax+4Ch], 0
		mov	dword ptr [eax+44h], 0
		mov	dword ptr [eax+64h], 0
		mov	dword ptr [eax+48h], 0
		jmp	loc_B0996
; ---------------------------------------------------------------------------

loc_B0D3D:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+157j
					; _ZN4TZip3AddEPKcPvjj_part_7+3F1j
		mov	ecx, [esi]
		add	esi, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_B0D3D
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [esi+2]
		cmovz	esi, ecx
		add	al, al
		sbb	esi, 3
		mov	word ptr [esi],	2Fh
		add	[ebp+var_480], 1
		jmp	loc_B0ABD
; ---------------------------------------------------------------------------
		align 10h

loc_B0D80:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+1DDj
		mov	ebx, [ebp+var_49C]
		xor	ecx, ecx
		mov	eax, [ebx+44h]
		jmp	loc_B0B4D
; ---------------------------------------------------------------------------

loc_B0D90:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+2F8j
		mov	ecx, [ebp+var_49C]
		mov	eax, [ecx+10h]
		mov	ebx, [ecx+0Ch]
		add	eax, [ebp+var_480]
		add	eax, 1Eh
		add	eax, [ebp+var_47C]
		test	ebx, ebx
		mov	[ecx+10h], eax
		jnz	loc_B0FBC
		cmp	[ebp+var_4A1], 0
		jz	loc_B0FCE
		mov	[ebp+var_4B0], 0
		mov	eax, [ebp+var_49C]
		mov	dword ptr [eax+64h], 0

loc_B0DDA:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+68Aj
		mov	eax, [ebp+var_49C]
		mov	ebx, [ebp+var_4B0]
		mov	ecx, [eax+48h]
		mov	dword ptr [eax+50h], 0
		add	[eax+10h], ebx
		mov	[ebp+var_4AC], ecx
		mov	[eax+44h], ecx

loc_B0DFC:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+6FCj
		mov	eax, [ebp+var_49C]
		mov	ecx, [ebp+var_488]
		mov	ebx, [eax+4Ch]
		mov	eax, [ebp+var_4AC]
		mov	[ebp+var_48C], ebx
		mov	ebx, [ebp+var_4B0]
		mov	[ebp+var_484], eax
		mov	eax, [ebp+var_49C]
		mov	[ebp+var_488], ebx
		cmp	byte ptr [eax+14h], 0
		jz	loc_B1068
		movzx	eax, [ebp+var_494]
		mov	[ebp+var_492], di
		test	al, 1
		jnz	short loc_B0E55
		and	eax, 0FFFFFFF7h
		mov	[ebp+var_494], ax

loc_B0E55:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+4E9j
		mov	edx, [ebp+var_49C]
		mov	[ebp+var_46C], ax
		mov	ebx, 2000000h
		mov	eax, [ebp+var_464]
		sub	eax, [edx+8]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_ZN4TZip5oseekEj ; TZip::oseek(uint)
		test	al, al
		jz	loc_B0996
		mov	eax, [ebp+var_49C]
		mov	[esp], esi
		mov	ebx, 400h
		mov	dword ptr [esp+4], offset _ZN4TZip6swriteEPvPKcj ; TZip::swrite(void *,char  const*,uint)
		mov	[esp+8], eax
		call	_Z8putlocalP5zlistPFjPvPKcjES1_	; putlocal(zlist *,uint	(*)(void *,char	 const*,uint),void *)
		test	eax, eax
		jnz	loc_B0996
		mov	edx, [ebp+var_49C]
		mov	ebx, 2000000h
		mov	eax, [edx+10h]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_ZN4TZip5oseekEj ; TZip::oseek(uint)
		test	al, al
		jz	loc_B0996

loc_B0ECD:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+769j
		mov	eax, [ebp+var_49C]
		mov	ebx, [eax+0Ch]
		test	ebx, ebx
		jnz	loc_B0996
		mov	eax, [ebp+n]
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	edi, eax
		mov	eax, [ebp+n]
		mov	[esp], edi	; dest
		mov	[esp+8], eax	; n
		mov	eax, [ebp+var_358]
		mov	[esp+4], eax	; src
		call	memcpy
		mov	[ebp+var_358], edi
		mov	dword ptr [esp], 360h
		call	_Znwj		; operator new(uint)
		mov	edi, eax
		mov	[ebp+var_4A0], eax
		mov	eax, 360h
		test	edi, 1
		jz	short loc_B0F34
		movsb
		mov	al, 5Fh

loc_B0F34:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+5CFj
		test	edi, 2
		jz	short loc_B0F41
		movsw
		sub	eax, 2

loc_B0F41:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+5DAj
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jz	short loc_B0F59
		movzx	edx, word ptr [esi]
		mov	[edi], dx
		mov	edx, 2

loc_B0F59:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+5ECj
		test	al, 1
		jz	short loc_B0F64
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al

loc_B0F64:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+5FBj
		mov	edx, [ebp+var_49C]
		mov	eax, [edx+28h]
		test	eax, eax
		jz	loc_B10FE

loc_B0F75:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+625j
		mov	edx, [eax+35Ch]
		test	edx, edx
		jz	loc_B10ED
		mov	eax, edx
		jmp	short loc_B0F75
; ---------------------------------------------------------------------------
		align 10h

loc_B0F90:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+ADj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4A8], edx
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	eax, [ebp+var_49C]
		mov	[esp], eax
		call	_ZN4TZip8open_memEPvj ;	TZip::open_mem(void *,uint)
		mov	edx, [ebp+var_4A8]
		mov	ebx, eax
		jmp	loc_B0A41
; ---------------------------------------------------------------------------

loc_B0FBC:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+450j
		mov	eax, [ecx+48h]
		mov	dword ptr [ecx+50h], 0
		mov	[ecx+44h], eax
		jmp	loc_B0996
; ---------------------------------------------------------------------------

loc_B0FCE:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+45Dj
		cmp	edx, 8
		jz	loc_B10D0
		test	edx, edx
		mov	eax, [ebp+var_49C]
		jz	short loc_B0FEF
		mov	eax, [eax+64h]
		mov	[ebp+var_4B0], eax
		jmp	loc_B0DDA
; ---------------------------------------------------------------------------

loc_B0FEF:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+67Fj
		mov	[esp], eax
		mov	[ebp+var_4A8], edx
		call	_ZN4TZip6istoreEv ; TZip::istore(void)

loc_B0FFD:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+788j
		mov	[ebp+var_4A0], eax
		mov	eax, [ebp+var_49C]
		mov	edx, [ebp+var_4A8]
		mov	eax, [eax+64h]
		mov	[ebp+var_4B0], eax
		mov	eax, [ebp+var_49C]
		mov	ebx, [eax+0Ch]
		mov	eax, [ebp+var_49C]
		mov	ecx, [eax+48h]
		mov	dword ptr [eax+50h], 0
		mov	[ebp+var_4AC], ecx
		mov	[eax+44h], ecx
		mov	ecx, [ebp+var_4B0]
		add	[eax+10h], ecx
		test	ebx, ebx
		jnz	loc_B0996
		cmp	[ebp+var_4A0], 0
		mov	bx, 400h
		jnz	loc_B0996
		jmp	loc_B0DFC
; ---------------------------------------------------------------------------
		align 8

loc_B1068:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+4D3j
		cmp	di, [ebp+var_492]
		mov	ebx, 4000000h
		jnz	loc_B0996
		test	edx, edx
		jnz	short loc_B108A
		cmp	ecx, [ebp+var_4B0]
		jnz	loc_B0996

loc_B108A:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+71Cj
		mov	eax, [ebp+var_49C]
		mov	[esp], esi
		mov	ebx, 400h
		mov	dword ptr [esp+4], offset _ZN4TZip6swriteEPvPKcj ; TZip::swrite(void *,char  const*,uint)
		mov	[esp+8], eax
		call	_Z11putextendedP5zlistPFjPvPKcjES1_ ; putextended(zlist	*,uint (*)(void	*,char	const*,uint),void *)
		test	eax, eax
		jnz	loc_B0996
		mov	eax, [ebp+var_49C]
		add	dword ptr [eax+10h], 10h
		movzx	eax, [ebp+var_46C]
		mov	[ebp+var_494], ax
		jmp	loc_B0ECD
; ---------------------------------------------------------------------------
		align 10h

loc_B10D0:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+671j
		mov	eax, [ebp+var_49C]
		mov	[esp+4], esi
		mov	[ebp+var_4A8], edx
		mov	[esp], eax
		call	_ZN4TZip8ideflateEP5zlist ; TZip::ideflate(zlist *)
		jmp	loc_B0FFD
; ---------------------------------------------------------------------------

loc_B10ED:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+61Dj
		mov	edx, [ebp+var_4A0]
		mov	[eax+35Ch], edx
		jmp	loc_B0996
; ---------------------------------------------------------------------------

loc_B10FE:				; CODE XREF: _ZN4TZip3AddEPKcPvjj_part_7+60Fj
		mov	ecx, [ebp+var_4A0]
		mov	[edx+28h], ecx
		jmp	loc_B0996
_ZN4TZip3AddEPKcPvjj_part_7 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::Add(char  const*, void *, unsigned int,	unsigned int)
_ZN4TZip3AddEPKcPvjj proc near		; CODE XREF: ZipAdd(HZIP__ *,char  const*,void *,uint,uint)+71p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	eax, 40000h
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	edx, [ebp+src]	; src
		mov	[ebp+var_4], edi
		mov	ecx, [ebp+arg_8] ; int
		mov	esi, [ebp+arg_C]
		cmp	dword ptr [ebx+0Ch], 0
		mov	edi, [ebp+arg_10]
		jz	short loc_B1150

loc_B1139:				; CODE XREF: TZip::Add(char  const*,void *,uint,uint)+49j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1150:				; CODE XREF: TZip::Add(char  const*,void *,uint,uint)+27j
		cmp	byte ptr [ebx+24h], 0
		mov	eax, 50000h
		jnz	short loc_B1139
		mov	[ebp+src], edi
		mov	eax, ebx
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_0], esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN4TZip3AddEPKcPvjj_part_7
_ZN4TZip3AddEPKcPvjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::AddCentral(void)
_ZN4TZip10AddCentralEv proc near	; CODE XREF: TZip::Close(void)+4Bp
					; TZip::GetMemory(void **,ulong	*)+53p

var_38		= byte ptr -38h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [esi+28h]
		mov	edx, [esi+10h]
		test	ebx, ebx
		mov	[ebp+var_20], edx
		jz	loc_B128A
		mov	[ebp+var_38], 1
		xor	edi, edi
		jmp	short loc_B11EA
; ---------------------------------------------------------------------------
		align 4

loc_B11A8:				; CODE XREF: TZip::AddCentral(void)+6Ej
					; TZip::AddCentral(void)+95j
		mov	eax, [esi+10h]
		add	edi, 1
		add	eax, [ebx+18h]
		add	eax, 2Eh
		add	eax, [ebx+20h]
		add	eax, [ebx+24h]
		mov	[esi+10h], eax
		mov	eax, [ebx+140h]
		mov	edx, [ebx+35Ch]
		test	eax, eax
		mov	[ebp+var_1C], edx
		jz	short loc_B11D8
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_B11D8:				; CODE XREF: TZip::AddCentral(void)+4Ej
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_B1220
		mov	ebx, [ebp+var_1C]

loc_B11EA:				; CODE XREF: TZip::AddCentral(void)+23j
		cmp	[ebp+var_38], 0
		jz	short loc_B11A8
		mov	[esp+8], esi
		mov	dword ptr [esp+4], offset _ZN4TZip6swriteEPvPKcj ; TZip::swrite(void *,char  const*,uint)
		mov	[esp], ebx
		call	_Z10putcentralP5zlistPFjPvPKcjES1_ ; putcentral(zlist *,uint (*)(void *,char  const*,uint),void	*)
		mov	edx, 0
		test	eax, eax
		movzx	eax, [ebp+var_38]
		cmovz	edx, eax
		mov	[ebp+var_38], dl
		jmp	short loc_B11A8
; ---------------------------------------------------------------------------
		align 10h

loc_B1220:				; CODE XREF: TZip::AddCentral(void)+65j
		cmp	[ebp+var_38], 0
		mov	eax, 400h
		mov	edx, [esi+10h]
		jnz	short loc_B1240

loc_B122E:				; CODE XREF: TZip::AddCentral(void)+FBj
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1240:				; CODE XREF: TZip::AddCentral(void)+ACj
		sub	edx, [ebp+var_20]

loc_B1243:				; CODE XREF: TZip::AddCentral(void)+10Ej
		mov	eax, [ebp+var_20]
		mov	[esp+18h], esi
		mov	dword ptr [esp+14h], offset _ZN4TZip6swriteEPvPKcj ; TZip::swrite(void *,char  const*,uint)
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		add	eax, [esi+8]
		mov	[esp+4], edx
		mov	[esp], edi
		mov	[esp+8], eax
		call	_Z6putendimmjPcPFjPvPKcjES0_ ; putend(int,ulong,ulong,uint,char	*,uint (*)(void	*,char	const*,uint),void *)
		add	dword ptr [esi+10h], 16h
		test	eax, eax
		jz	short loc_B122E
		add	esp, 4Ch
		mov	eax, 400h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B128A:				; CODE XREF: TZip::AddCentral(void)+17j
		xor	edx, edx
		xor	edi, edi
		jmp	short loc_B1243
_ZN4TZip10AddCentralEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::Close(void)
_ZN4TZip5CloseEv proc near		; CODE XREF: CloseZipZ(HZIP__ *)+46p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		xor	esi, esi
		cmp	byte ptr [ebx+24h], 0
		jz	short loc_B12D8

loc_B12A7:				; CODE XREF: TZip::Close(void)+52j
		mov	edx, [ebx+18h]
		mov	byte ptr [ebx+24h], 1
		test	edx, edx
		jz	short loc_B12C1
		mov	ecx, [ebx+4]
		test	ecx, ecx
		jz	short loc_B12C1
		mov	[esp], edx	; ptr
		call	free

loc_B12C1:				; CODE XREF: TZip::Close(void)+20j
					; TZip::Close(void)+27j
		mov	dword ptr [ebx+18h], 0
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B12D8:				; CODE XREF: TZip::Close(void)+15j
		mov	[esp], ebx
		call	_ZN4TZip10AddCentralEv ; TZip::AddCentral(void)
		mov	esi, eax
		jmp	short loc_B12A7
_ZN4TZip5CloseEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; TZip::GetMemory(void **, unsigned long *)
_ZN4TZip9GetMemoryEPPvPm proc near	; CODE XREF: ZipGetMemory(HZIP__ *,void	**,ulong *)+7Ep

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		cmp	byte ptr [ebx+24h], 0
		jz	short loc_B1340

loc_B130E:				; CODE XREF: TZip::GetMemory(void **,ulong *)+58j
		test	edi, edi
		mov	byte ptr [ebx+24h], 1
		jz	short loc_B131B
		mov	eax, [ebx+18h]
		mov	[edi], eax

loc_B131B:				; CODE XREF: TZip::GetMemory(void **,ulong *)+24j
		test	esi, esi
		jz	short loc_B1324
		mov	eax, [ebx+10h]
		mov	[esi], eax

loc_B1324:				; CODE XREF: TZip::GetMemory(void **,ulong *)+2Dj
		cmp	dword ptr [ebx+18h], 1
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		sbb	eax, eax
		mov	esp, ebp
		and	eax, 20000h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1340:				; CODE XREF: TZip::GetMemory(void **,ulong *)+1Cj
		mov	[esp], ebx
		call	_ZN4TZip10AddCentralEv ; TZip::AddCentral(void)
		jmp	short loc_B130E
_ZN4TZip9GetMemoryEPPvPm endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FormatZipMessageZ(int, void *dest, int)
_Z17FormatZipMessageZjPcj proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	edi, [ebp+dest]
		cmp	eax, 1
		jz	loc_B1500

loc_B1371:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+1BCj
		cmp	eax, 20000h
		mov	ebx, 2Fh
		mov	edx, offset aCallerCanOnlyG ; "Caller: can only	get memory of a	memory"...
		jz	short loc_B13E0
		jbe	loc_B1420
		cmp	eax, 70000h
		mov	ebx, 34h
		mov	edx, offset aCallerTheFileH ; "Caller: the file	had already been parti"...
		jz	short loc_B13E0
		jbe	loc_B1480
		cmp	eax, 2000000h
		mov	ebx, 26h
		mov	edx, offset aZipBugTryingTo ; "Zip-bug:	trying to seek the unseekable"
		jz	short loc_B13E0
		jbe	loc_B1560
		cmp	eax, 4000000h
		mov	ebx, 2Eh
		mov	edx, offset aZipBugTriedToC ; "Zip-bug:	tried to change	mind, but not "...
		jz	short loc_B13E0
		cmp	eax, 5000000h
		mov	bl, 29h
		mov	edx, offset aZipBugAnIntern ; "Zip-bug:	an internal error during flati"...
		jnz	loc_B1470
		lea	esi, [esi+0]

loc_B13E0:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+30j
					; FormatZipMessageZ(uint,char *,uint)+47j ...
		test	esi, esi
		jz	short loc_B1409
		test	edi, edi
		jz	short loc_B1409
		lea	ecx, [ebx+1]
		mov	[esp+4], edx	; src
		lea	eax, [esi-1]
		cmp	esi, ecx
		mov	esi, ebx
		cmovb	esi, eax
		mov	[esp], edi	; dest
		mov	[esp+8], esi	; n
		call	memcpy
		mov	byte ptr [edi+esi], 0

loc_B1409:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+92j
					; FormatZipMessageZ(uint,char *,uint)+96j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1420:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+32j
		cmp	eax, 400h
		mov	bl, 15h
		mov	edx, offset aErrorWritingTo ; "Error writing to	file"
		jz	short loc_B13E0
		jbe	loc_B14C0
		cmp	eax, 700h
		mov	ebx, 23h
		mov	edx, offset aZipfileIsCorru ; "Zipfile is corrupt or not a zipfile"
		jz	short loc_B13E0
		ja	loc_B1518
		cmp	eax, 500h
		mov	bl, 1Dh
		mov	edx, offset aFileNotFoundIn ; "File not	found in the zipfile"
		jz	short loc_B13E0
		cmp	eax, 600h
		mov	bl, 18h
		mov	edx, offset aStillMoreDataT ; "Still more data to unzip"
		jz	loc_B13E0
		nop
		lea	esi, [esi+0]

loc_B1470:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+83j
					; FormatZipMessageZ(uint,char *,uint)+169j ...
		mov	ebx, 17h
		mov	edx, offset aUnknownZipResu ; "unknown zip result code"
		jmp	loc_B13E0
; ---------------------------------------------------------------------------
		align 10h

loc_B1480:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+49j
		cmp	eax, 40000h
		mov	bl, 22h
		mov	edx, offset aCallerThereWas ; "Caller: there was a previous error"
		jz	loc_B13E0
		jbe	loc_B1590
		cmp	eax, 50000h
		mov	ebx, 34h
		mov	edx, offset aCallerAddition ; "Caller: additions to the	zip have alrea"...
		jz	loc_B13E0
		cmp	eax, 60000h
		mov	bl, 2Eh
		mov	edx, offset aZipBugTheAntic ; "Zip-bug:	the anticipated	size turned ou"...
		jnz	short loc_B1470
		jmp	loc_B13E0
; ---------------------------------------------------------------------------

loc_B14C0:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+DEj
		cmp	eax, 100h
		mov	bl, 18h
		mov	edx, offset aCuldnTDuplicat ; "Culdn't duplicate handle"
		jz	loc_B13E0
		jbe	short loc_B1548
		cmp	eax, 200h
		mov	ebx, 19h
		mov	edx, offset aCouldnTCreateO ; "Couldn't create/open file"
		jz	loc_B13E0
		cmp	eax, 300h
		mov	edx, offset byte_1EE00F
		jnz	loc_B1470
		jmp	loc_B13E0
; ---------------------------------------------------------------------------
		align 10h

loc_B1500:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+1Bj
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZNK16CThreadLocalBase3GetEv ; CThreadLocalBase::Get(void)
		jmp	loc_B1371
; ---------------------------------------------------------------------------
		align 8

loc_B1518:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+F5j
		cmp	eax, 800h
		mov	ebx, 12h
		mov	edx, offset aErrorReadingFi ; "Error reading file"
		jz	loc_B13E0
		cmp	eax, 10000h
		mov	bl, 18h
		mov	edx, offset aCallerFaultyAr ; "Caller: faulty arguments"
		jnz	loc_B1470
		jmp	loc_B13E0
; ---------------------------------------------------------------------------
		align 8

loc_B1548:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+182j
		test	eax, eax
		mov	bl, 7
		mov	edx, offset aSuccess ; "Success"
		jz	loc_B13E0
		jmp	loc_B1470
; ---------------------------------------------------------------------------
		align 10h

loc_B1560:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+60j
		cmp	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		mov	bl, 2Ah
		mov	edx, offset aCallerMixingCr ; "Caller: mixing creation and opening of "...
		jz	loc_B13E0
		cmp	eax, 1000000h
		mov	bl, 2Eh
		mov	edx, offset aZipBugInternal ; "Zip-bug:	internal initialisation	not co"...
		jnz	loc_B1470
		jmp	loc_B13E0
; ---------------------------------------------------------------------------
		align 10h

loc_B1590:				; CODE XREF: FormatZipMessageZ(uint,char *,uint)+142j
		cmp	eax, 30000h
		mov	bl, 35h
		mov	edx, offset aCallerNotEnoug ; "Caller: not enough space	allocated for "...
		jnz	loc_B1470
		jmp	loc_B13E0
_Z17FormatZipMessageZjPcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CreateZipZ(int, size_t nmemb, int)
_Z10CreateZipZPvjj proc	near

arg_0		= dword	ptr  8
nmemb		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		call	tzset
		mov	dword ptr [esp], 4068h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax], 0
		mov	ebx, eax
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+18h], 0
		mov	byte ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+50h], 0
		mov	eax, [ebp+arg_8]
		mov	[esp], ebx	; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+nmemb]
		mov	[esp+8], eax	; nmemb
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax	; int
		call	_ZN4TZip6CreateEPvjj ; TZip::Create(void *,uint,uint)
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		mov	[esp+4], eax
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZNK16CThreadLocalBase3GetEv ; CThreadLocalBase::Get(void)
		test	eax, eax
		jz	short loc_B1658
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		xor	eax, eax

loc_B164C:				; CODE XREF: CreateZipZ(void *,uint,uint)+BDj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B1658:				; CODE XREF: CreateZipZ(void *,uint,uint)+90j
		mov	dword ptr [esp], 8
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax], 2
		mov	[eax+4], ebx
		jmp	short loc_B164C
_Z10CreateZipZPvjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ZipAdd(int, char *src, int, int, int)
_Z6ZipAddP6HZIP__PKcPvjj proc near

var_22C		= dword	ptr -22Ch
dest		= byte ptr -220h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 258h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_4], edi
		mov	ecx, [ebp+arg_10]
		test	eax, eax
		jz	loc_B1710
		cmp	dword ptr [eax], 2
		jz	short loc_B16C0
		mov	dword ptr [esp+4], offset _ZN18SVC_PacketEntitiesD2Ev ;	SVC_PacketEntities::~SVC_PacketEntities()
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B16C0:				; CODE XREF: ZipAdd(HZIP__ *,char  const*,void *,uint,uint)+26j
		cmp	ecx, 2
		mov	ebx, [eax+4]
		jz	short loc_B1740
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+10h], ecx
		mov	[esp+8], edx
		mov	edx, [ebp+src]
		mov	[esp+4], edx

loc_B16DE:				; CODE XREF: ZipAdd(HZIP__ *,char  const*,void *,uint,uint)+110j
		mov	[esp], ebx
		call	_ZN4TZip3AddEPKcPvjj ; TZip::Add(char  const*,void *,uint,uint)
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		mov	[esp+4], eax
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZNK16CThreadLocalBase3GetEv ; CThreadLocalBase::Get(void)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1710:				; CODE XREF: ZipAdd(HZIP__ *,char  const*,void *,uint,uint)+1Dj
		mov	dword ptr [esp+4], 10000h
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	ebx, [ebp+var_C]
		mov	eax, 10000h
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1740:				; CODE XREF: ZipAdd(HZIP__ *,char  const*,void *,uint,uint)+56j
		lea	esi, [ebp+dest]
		xor	eax, eax
		mov	cl, 82h
		mov	edi, esi
		rep stosd
		mov	[ebp+var_22C], edx
		mov	[esp], esi	; dest
		mov	eax, [ebp+src]
		mov	[esp+4], eax	; src
		call	strcpy
		mov	edx, [ebp+var_22C]
		mov	[esp+4], esi
		mov	dword ptr [esp+10h], 2
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		jmp	loc_B16DE
_Z6ZipAddP6HZIP__PKcPvjj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ZipGetMemory(HZIP__ *, void **, unsigned long	*)
_Z12ZipGetMemoryP6HZIP__PPvPm proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		test	eax, eax
		jz	short loc_B17C8
		cmp	dword ptr [eax], 2
		jz	short loc_B1800
		mov	dword ptr [esp+4], offset _ZN18SVC_PacketEntitiesD2Ev ;	SVC_PacketEntities::~SVC_PacketEntities()
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B17C8:				; CODE XREF: ZipGetMemory(HZIP__ *,void	**,ulong *)+11j
		test	ecx, ecx
		jz	short loc_B17D2
		mov	dword ptr [ecx], 0

loc_B17D2:				; CODE XREF: ZipGetMemory(HZIP__ *,void	**,ulong *)+3Aj
		test	edx, edx
		jz	short loc_B17DC
		mov	dword ptr [edx], 0

loc_B17DC:				; CODE XREF: ZipGetMemory(HZIP__ *,void	**,ulong *)+44j
		mov	dword ptr [esp+4], 10000h
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	eax, 10000h
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1800:				; CODE XREF: ZipGetMemory(HZIP__ *,void	**,ulong *)+16j
		mov	[esp+8], edx
		mov	[esp+4], ecx
		mov	eax, [eax+4]
		mov	[esp], eax
		call	_ZN4TZip9GetMemoryEPPvPm ; TZip::GetMemory(void	**,ulong *)
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		mov	[esp+4], eax
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	[ebp+arg_0], offset _ZL10lasterrorZ ; lasterrorZ
		leave
		jmp	_ZNK16CThreadLocalBase3GetEv ; CThreadLocalBase::Get(void)
_Z12ZipGetMemoryP6HZIP__PPvPm endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CloseZipZ(void *)
_Z9CloseZipZP6HZIP__ proc near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		test	ebx, ebx
		jz	short loc_B18B8
		cmp	dword ptr [ebx], 2
		jz	short loc_B1870
		mov	dword ptr [esp+4], offset _ZN18SVC_PacketEntitiesD2Ev ;	SVC_PacketEntities::~SVC_PacketEntities()
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	ebx, [ebp+var_8]
		mov	eax, offset _ZN18SVC_PacketEntitiesD2Ev	; SVC_PacketEntities::~SVC_PacketEntities()
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1870:				; CODE XREF: CloseZipZ(HZIP__ *)+16j
		mov	esi, [ebx+4]
		mov	[esp], esi
		call	_ZN4TZip5CloseEv ; TZip::Close(void)
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		mov	[esp+4], eax
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		test	esi, esi
		jz	short loc_B1897
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)

loc_B1897:				; CODE XREF: CloseZipZ(HZIP__ *)+5Dj
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	[ebp+arg_0], offset _ZL10lasterrorZ ; lasterrorZ
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZNK16CThreadLocalBase3GetEv ; CThreadLocalBase::Get(void)
; ---------------------------------------------------------------------------
		align 8

loc_B18B8:				; CODE XREF: CloseZipZ(HZIP__ *)+11j
		mov	dword ptr [esp+4], 10000h
		mov	dword ptr [esp], offset	_ZL10lasterrorZ	; lasterrorZ
		call	_ZN16CThreadLocalBase3SetEPv ; CThreadLocalBase::Set(void *)
		mov	ebx, [ebp+var_8]
		mov	eax, 10000h
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z9CloseZipZP6HZIP__ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsZipHandleZ(HZIP__ *)
_Z12IsZipHandleZP6HZIP__ proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jz	short loc_B18F5
		cmp	dword ptr [edx], 2
		setz	al

loc_B18F5:				; CODE XREF: IsZipHandleZ(HZIP__ *)+Dj
		pop	ebp
		retn
_Z12IsZipHandleZP6HZIP__ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CThreadLocalInt<unsigned int>::~CThreadLocalInt()
_ZN15CThreadLocalIntIjED2Ev proc near	; DATA XREF: _GLOBAL__sub_I__ZN10TTreeStateC2Ev+22o
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN16CThreadLocalBaseD2Ev ; CThreadLocalBase::~CThreadLocalBase()
_ZN15CThreadLocalIntIjED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CAutoGain::CAutoGain(void)
_ZN9CAutoGainC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, 3F800000h
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 80h
		mov	dword ptr [eax+4], 40A00000h
		mov	dword ptr [eax+8], 3F000000h
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	[eax+1Ch], edx
		mov	[eax+20h], edx
		mov	[eax+18h], edx
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+24h], 80h
		pop	ebp
		retn
_ZN9CAutoGainC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CAutoGain::Reset(int,	float, float, float)
_ZN9CAutoGain5ResetEifff proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax+0Ch], 0
		mov	[eax], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+28h], 0
		mov	[eax+4], edx
		mov	edx, [ebp+arg_C]
		mov	dword ptr [eax+24h], 80h
		mov	[eax+8], edx
		mov	edx, 3F800000h
		mov	[eax+1Ch], edx
		mov	[eax+20h], edx
		mov	edx, [ebp+arg_10]
		mov	[eax+18h], edx
		pop	ebp
		retn
_ZN9CAutoGain5ResetEifff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CAutoGain::ProcessSamples(short *, int)
_ZN9CAutoGain14ProcessSamplesEPsi proc near

var_20		= qword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	loc_B1B04
		mov	esi, [ecx]
		mov	[ebp+var_18], eax
		mov	ebx, [ebp+arg_4]
		nop

loc_B19D0:				; CODE XREF: CAutoGain::ProcessSamples(short *,int)+14Ej
		mov	eax, [ecx+0Ch]
		mov	edx, esi
		sub	edx, eax
		cmp	edx, [ebp+var_18]
		cmovg	edx, [ebp+var_18]
		test	edx, edx
		mov	dword ptr [ebp+var_20],	edx
		jle	short loc_B1A5C
		xor	edx, edx
		mov	esi, esi
		lea	edi, [edi+0]

loc_B19F0:				; CODE XREF: CAutoGain::ProcessSamples(short *,int)+A8j
		movsx	esi, word ptr [ebx+edx*2]
		mov	edi, esi
		sar	edi, 1Fh
		xor	esi, edi
		sub	esi, edi
		add	[ecx+10h], esi
		movsx	esi, word ptr [ebx+edx*2]
		mov	edi, esi
		sar	edi, 1Fh
		xor	esi, edi
		sub	esi, edi
		mov	edi, [ecx+14h]
		cmp	esi, edi
		cmovl	esi, edi
		mov	[ecx+14h], esi
		mov	esi, [ecx+28h]
		imul	esi, eax
		add	eax, 1
		mov	[ecx+0Ch], eax
		movsx	eax, word ptr [ebx+edx*2]
		add	esi, [ecx+24h]
		imul	eax, esi
		mov	esi, 0FFFF8000h
		sar	eax, 7
		cmp	eax, 0FFFF8000h
		cmovl	eax, esi
		mov	esi, 7FFFh
		cmp	eax, 7FFFh
		cmovg	eax, esi
		mov	[ebx+edx*2], ax
		add	edx, 1
		cmp	edx, dword ptr [ebp+var_20]
		mov	eax, [ecx+0Ch]
		jnz	short loc_B19F0
		mov	esi, [ecx]

loc_B1A5C:				; CODE XREF: CAutoGain::ProcessSamples(short *,int)+33j
		mov	edx, dword ptr [ebp+var_20]
		sub	[ebp+var_18], edx
		lea	ebx, [ebx+edx*2]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		test	edx, edx
		jnz	loc_B1AF9
		fld	dword ptr [ecx+18h]
		fld	dword ptr [ecx+20h]
		fmul	st, st(1)
		fst	dword ptr [ecx+1Ch]
		fld	ds:flt_1F0280
		fld	st
		fmul	st, st(2)
		fstp	[ebp+var_20]
		cvttsd2si eax, [ebp+var_20]
		mov	[ecx+24h], eax
		mov	eax, [ecx+10h]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		mov	edx, [ecx+14h]
		sub	edx, eax
		mov	[ebp+var_14], edx
		fild	[ebp+var_14]
		fmul	dword ptr [ecx+8]
		mov	[ebp+var_14], eax
		lea	eax, [esi-1]
		fild	[ebp+var_14]
		faddp	st(1), st
		fdivr	ds:flt_1ED97C
		fld	dword ptr [ecx+4]
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fmulp	st(3), st
		fxch	st(2)
		fst	dword ptr [ecx+20h]
		fsubrp	st(1), st
		mov	[ebp+var_14], eax
		fild	[ebp+var_14]
		mov	dword ptr [ecx+10h], 0
		fdivp	st(1), st
		mov	dword ptr [ecx+14h], 0
		mov	dword ptr [ecx+0Ch], 0
		fmulp	st(1), st
		fstp	[ebp+var_20]
		cvttsd2si eax, [ebp+var_20]
		mov	[ecx+28h], eax

loc_B1AF9:				; CODE XREF: CAutoGain::ProcessSamples(short *,int)+BEj
		mov	eax, [ebp+var_18]
		test	eax, eax
		jnz	loc_B19D0

loc_B1B04:				; CODE XREF: CAutoGain::ProcessSamples(short *,int)+11j
		add	esp, 14h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CAutoGain14ProcessSamplesEPsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; WriteWord(_IO_FILE *,	unsigned short)
_ZL9WriteWordP8_IO_FILEt proc near	; CODE XREF: WriteWaveFile(char	 const*,char  const*,int,int,int,int)+AAp
					; WriteWaveFile(char  const*,char  const*,int,int,int,int)+B5p	...

ptr		= word ptr -0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[esp+0Ch], eax	; s
		lea	eax, [ebp+ptr]
		mov	[ebp+ptr], dx
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 2 ; size
		mov	[esp], eax	; ptr
		call	fwrite
		leave
		retn
_ZL9WriteWordP8_IO_FILEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; WriteDWord(_IO_FILE *, unsigned long)
_ZL10WriteDWordP8_IO_FILEm proc	near	; CODE XREF: WriteWaveFile(char	 const*,char  const*,int,int,int,int)+52p
					; WriteWaveFile(char  const*,char  const*,int,int,int,int)+9Ep	...

ptr		= dword	ptr -0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[esp+0Ch], eax	; s
		lea	eax, [ebp+ptr]
		mov	[ebp+ptr], edx
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 4 ; size
		mov	[esp], eax	; ptr
		call	fwrite
		leave
		retn
_ZL10WriteDWordP8_IO_FILEm endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ReadDWord(_IO_FILE *)
_ZL9ReadDWordP8_IO_FILE	proc near	; CODE XREF: ReadWaveFile(char	const*,char *&,int &,int &,int &,int &)+70p
					; ReadWaveFile(char  const*,char *&,int	&,int &,int &,int &)+D4p ...

ptr		= dword	ptr -0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[esp+0Ch], eax	; stream
		lea	eax, [ebp+ptr]
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 4 ; size
		mov	[esp], eax	; ptr
		call	fread
		mov	eax, [ebp+ptr]
		leave
		retn
_ZL9ReadDWordP8_IO_FILE	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ReadWaveFile(char	*s, int, int, int, int,	int)
_Z12ReadWaveFilePKcRPcRiS3_S3_S3_ proc near

var_2C		= dword	ptr -2Ch
ptr		= word ptr -1Ah
s		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+s]
		mov	dword ptr [esp+4], offset modes	; "rb"
		mov	esi, [ebp+arg_8]
		mov	[esp], eax	; s
		call	__wrap_fopen
		test	eax, eax
		mov	ebx, eax
		jz	loc_B1CBC
		mov	dword ptr [esp+8], 0 ; whence
		mov	dword ptr [esp+4], 16h ; off
		mov	[esp], eax	; stream
		call	fseek
		lea	edx, [ebp+ptr]
		mov	[esp+0Ch], ebx	; stream
		mov	[esp], edx	; ptr
		mov	[ebp+var_2C], edx
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 2 ; size
		call	fread
		movzx	ecx, [ebp+ptr]
		mov	eax, [ebp+arg_10]
		mov	[eax], ecx
		mov	eax, ebx
		call	_ZL9ReadDWordP8_IO_FILE	; ReadDWord(_IO_FILE *)
		mov	ecx, [ebp+arg_14]
		mov	[ecx], eax
		mov	dword ptr [esp+8], 0 ; whence
		mov	dword ptr [esp+4], 22h ; off
		mov	[esp], ebx	; stream
		call	fseek
		mov	edx, [ebp+var_2C]
		mov	[esp+0Ch], ebx	; stream
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 2 ; size
		mov	[esp], edx	; ptr
		call	fread
		movzx	edx, [ebp+ptr]
		mov	eax, [ebp+arg_C]
		mov	[eax], edx
		mov	dword ptr [esp+8], 0 ; whence
		mov	dword ptr [esp+4], 28h ; off
		mov	[esp], ebx	; stream
		call	fseek
		mov	eax, ebx
		call	_ZL9ReadDWordP8_IO_FILE	; ReadDWord(_IO_FILE *)
		mov	[esi], eax
		mov	eax, ebx
		call	_ZL9ReadDWordP8_IO_FILE	; ReadDWord(_IO_FILE *)
		mov	eax, [esi]
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	edx, [ebp+arg_4]
		test	eax, eax
		mov	[edx], eax
		jz	short loc_B1CD0
		mov	[esp+0Ch], ebx	; stream
		mov	edi, 1
		mov	dword ptr [esp+8], 1 ; n
		mov	edx, [esi]
		mov	[esp], eax	; ptr
		mov	[esp+4], edx	; size
		call	fread
		mov	[esp], ebx	; stream
		call	fclose

loc_B1CBC:				; CODE XREF: ReadWaveFile(char	const*,char *&,int &,int &,int &,int &)+25j
					; ReadWaveFile(char  const*,char *&,int	&,int &,int &,int &)+138j
		add	esp, 3Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B1CD0:				; CODE XREF: ReadWaveFile(char	const*,char *&,int &,int &,int &,int &)+F3j
		mov	[esp], ebx	; stream
		call	fclose
		jmp	short loc_B1CBC
_Z12ReadWaveFilePKcRPcRiS3_S3_S3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl WriteWaveFile(char *s, void *ptr,	size_t size, int, int, int)
_Z13WriteWaveFilePKcS0_iiii proc near

s		= dword	ptr  8
ptr		= dword	ptr  0Ch
size		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+s]
		mov	dword ptr [esp+4], offset byte_1F0284 ;	modes
		mov	edi, [ebp+arg_C]
		mov	[esp], eax	; s
		call	__wrap_fopen
		mov	ebx, eax
		xor	eax, eax
		test	ebx, ebx
		jz	loc_B1E57
		mov	[esp+0Ch], ebx	; s
		lea	esi, [edi+7]
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 4 ; size
		mov	dword ptr [esp], offset	aRiff ;	"RIFF"
		call	fwrite
		xor	edx, edx
		mov	eax, ebx
		call	_ZL10WriteDWordP8_IO_FILEm ; WriteDWord(_IO_FILE *,ulong)
		mov	[esp+0Ch], ebx	; s
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 4 ; size
		mov	dword ptr [esp], offset	aWave ;	"WAVE"
		call	fwrite
		mov	[esp+0Ch], ebx	; s
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 4 ; size
		mov	dword ptr [esp], offset	aFmt ; "fmt "
		call	fwrite
		mov	edx, 10h
		mov	eax, ebx
		call	_ZL10WriteDWordP8_IO_FILEm ; WriteDWord(_IO_FILE *,ulong)
		mov	edx, 1
		mov	eax, ebx
		call	_ZL9WriteWordP8_IO_FILEt ; WriteWord(_IO_FILE *,ushort)
		movzx	edx, word ptr [ebp+arg_10]
		mov	eax, ebx
		call	_ZL9WriteWordP8_IO_FILEt ; WriteWord(_IO_FILE *,ushort)
		mov	edx, [ebp+arg_14]
		mov	eax, ebx
		call	_ZL10WriteDWordP8_IO_FILEm ; WriteDWord(_IO_FILE *,ulong)
		test	edi, edi
		mov	edx, [ebp+arg_10]
		cmovns	esi, edi
		mov	eax, ebx
		sar	esi, 3
		imul	edx, esi
		imul	edx, [ebp+arg_14]
		call	_ZL10WriteDWordP8_IO_FILEm ; WriteDWord(_IO_FILE *,ulong)
		mov	eax, ebx
		imul	si, word ptr [ebp+arg_10]
		movzx	edx, si
		call	_ZL9WriteWordP8_IO_FILEt ; WriteWord(_IO_FILE *,ushort)
		movzx	edx, di
		mov	eax, ebx
		call	_ZL9WriteWordP8_IO_FILEt ; WriteWord(_IO_FILE *,ushort)
		mov	[esp+0Ch], ebx	; s
		mov	dword ptr [esp+8], 1 ; n
		mov	dword ptr [esp+4], 4 ; size
		mov	dword ptr [esp], (offset aStopRecordingV+15h) ;	ptr
		call	fwrite
		mov	edx, [ebp+size]
		mov	eax, ebx
		call	_ZL10WriteDWordP8_IO_FILEm ; WriteDWord(_IO_FILE *,ulong)
		mov	eax, [ebp+size]
		mov	[esp+0Ch], ebx	; s
		mov	dword ptr [esp+8], 1 ; n
		mov	[esp+4], eax	; size
		mov	eax, [ebp+ptr]
		mov	[esp], eax	; ptr
		call	fwrite
		mov	[esp], ebx	; stream
		call	ftell
		mov	dword ptr [esp+8], 0 ; whence
		mov	esi, eax
		mov	dword ptr [esp+4], 4 ; off
		mov	[esp], ebx	; stream
		call	fseek
		lea	edx, [esi-8]
		mov	eax, ebx
		call	_ZL10WriteDWordP8_IO_FILEm ; WriteDWord(_IO_FILE *,ulong)
		mov	[esp], ebx	; stream
		call	fclose
		mov	eax, 1

loc_B1E57:				; CODE XREF: WriteWaveFile(char	 const*,char  const*,int,int,int,int)+25j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z13WriteWaveFilePKcS0_iiii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_ListClear(void)
_ZL13VOX_ListClearv proc near		; CODE XREF: VOX_Shutdown+10p
					; VOX_Init+CAp
		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, ds:_ZL19g_pSentenceFileList ; g_pSentenceFileList
		test	eax, eax
		jnz	short loc_B1E7A
		jmp	short loc_B1E89
; ---------------------------------------------------------------------------
		align 8

loc_B1E78:				; CODE XREF: VOX_ListClear(void)+27j
		mov	eax, ebx

loc_B1E7A:				; CODE XREF: VOX_ListClear(void)+Ej
		mov	ebx, [eax+4]
		mov	[esp], eax	; ptr
		call	free
		test	ebx, ebx
		jnz	short loc_B1E78

loc_B1E89:				; CODE XREF: VOX_ListClear(void)+10j
		mov	ds:_ZL19g_pSentenceFileList, 0 ; g_pSentenceFileList
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZL13VOX_ListClearv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCPairLessFunc(ccpair	 const&, ccpair	 const&)
_ZL14CCPairLessFuncRK6ccpairS1_	proc near
					; DATA XREF: VOX_AddSentenceWavesToResList(void)+8Co

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		leave
		shr	eax, 1Fh
		retn
_ZL14CCPairLessFuncRK6ccpairS1_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; sentencegroup_t::GroupName(void)const
_ZNK15sentencegroup_t9GroupNameEv proc near ; CODE XREF: VOX_GroupNameFromIndex+22j
					; VOX_GroupPickSequential+3Bp ...

var_A		= word ptr -0Ah
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax+4]
		mov	dword ptr [esp], offset	_ZN15sentencegroup_t13s_SymbolTableE ; sentencegroup_t::s_SymbolTable
		mov	[ebp+var_A], ax
		lea	eax, [ebp+var_A]
		mov	[esp+4], eax
		call	_ZNK15CUtlSymbolTable6StringE10CUtlSymbol ; CUtlSymbolTable::String(CUtlSymbol)
		leave
		retn
_ZNK15sentencegroup_t9GroupNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; sentencegroup_t::SetGroupName(char  const*)
_ZN15sentencegroup_t12SetGroupNameEPKc proc near
					; CODE XREF: VOX_GroupAdd(char	const*)+103p

var_A		= word ptr -0Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	edx, [ebp+arg_4]
		lea	eax, [ebp+var_A]
		mov	dword ptr [esp+4], offset _ZN15sentencegroup_t13s_SymbolTableE ; sentencegroup_t::s_SymbolTable
		mov	[esp], eax
		mov	[esp+8], edx
		call	_ZN15CUtlSymbolTable9AddStringEPKc ; CUtlSymbolTable::AddString(char  const*)
		movzx	edx, [ebp+var_A]
		mov	eax, [ebp+arg_0]
		sub	esp, 4
		mov	[eax+4], dx
		leave
		retn
_ZN15sentencegroup_t12SetGroupNameEPKc endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; sentencegroup_t::GroupNameSymbol(void)const
_ZNK15sentencegroup_t15GroupNameSymbolEv proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		movzx	edx, word ptr [edx+4]
		mov	[eax], dx
		pop	ebp
		retn	4
_ZNK15sentencegroup_t15GroupNameSymbolEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; sentencegroup_t::GetSymbol(char  const*)
_ZN15sentencegroup_t9GetSymbolEPKc proc	near ; CODE XREF: VOX_GroupIndexFromName+1Ap
					; VOX_GroupAdd(char  const*)+79p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+4], offset _ZN15sentencegroup_t13s_SymbolTableE ; sentencegroup_t::s_SymbolTable
		mov	eax, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_ZN15CUtlSymbolTable9AddStringEPKc ; CUtlSymbolTable::AddString(char  const*)
		mov	eax, ebx
		mov	ebx, [ebp+var_4]
		sub	esp, 4
		leave
		retn	4
_ZN15sentencegroup_t9GetSymbolEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_Shutdown	proc near		; CODE XREF: VOX_Reload(void)+6p
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	dword ptr ds:g_Sentences+0Ch, 0
		call	_ZL13VOX_ListClearv ; VOX_ListClear(void)
		mov	dword ptr ds:g_SentenceGroups+0Ch, 0
		mov	ds:_ZL11g_cmapnames, 0 ; g_cmapnames
		leave
		retn
VOX_Shutdown	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ScanForwardUntil(char	*, char)
_Z16ScanForwardUntilPcc	proc near

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		movzx	ecx, [ebp+arg_4]
		movzx	edx, byte ptr [eax]
		test	dl, dl
		jnz	short loc_B1FC2
		jmp	short loc_B1FC6
; ---------------------------------------------------------------------------
		align 8

loc_B1FB8:				; CODE XREF: ScanForwardUntil(char *,char)+24j
		add	eax, 1
		movzx	edx, byte ptr [eax]
		test	dl, dl
		jz	short loc_B1FC6

loc_B1FC2:				; CODE XREF: ScanForwardUntil(char *,char)+Fj
		cmp	dl, cl
		jnz	short loc_B1FB8

loc_B1FC6:				; CODE XREF: ScanForwardUntil(char *,char)+11j
					; ScanForwardUntil(char	*,char)+20j
		pop	ebp
		retn
_Z16ScanForwardUntilPcc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_ParseString(char *)
_Z15VOX_ParseStringPc proc near		; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+ABp

var_208		= byte ptr -208h
var_108		= byte ptr -108h
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, offset _ZL12rgpparseword ;	rgpparseword
		xor	eax, eax
		mov	ebp, esp
		push	edi
		mov	ecx, 20h
		push	ebx
		mov	edi, edx
		sub	esp, 210h
		rep stosd
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	loc_B21B5
		lea	eax, [ebp+var_208]
		mov	dword ptr ds:_ZL12rgpparseword,	ebx ; rgpparseword
		mov	[esp], eax
		mov	dword ptr [esp+4], offset a_ ; " ,.({"
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		lea	eax, [ebp+var_108]
		mov	dword ptr [esp+4], offset off_1F029C
		mov	[esp], eax
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		xor	eax, eax
		mov	ecx, 1
		nop

loc_B2030:				; CODE XREF: VOX_ParseString(char *)+13Dj
					; VOX_ParseString(char *)+1D6j
		cmp	ecx, 1Fh
		setle	dl
		mov	edi, edx
		jmp	short loc_B2045
; ---------------------------------------------------------------------------
		align 10h

loc_B2040:				; CODE XREF: VOX_ParseString(char *)+8Cj
					; VOX_ParseString(char *)+156j	...
		mov	eax, 1

loc_B2045:				; CODE XREF: VOX_ParseString(char *)+68j
		test	eax, eax
		jnz	loc_B21B0
		mov	eax, edi
		test	al, al
		jz	loc_B21B0
		movzx	eax, byte ptr [ebx]
		test	al, al
		jz	short loc_B2040

loc_B205E:				; CODE XREF: VOX_ParseString(char *)+150j
		movzx	edx, al
		cmp	[ebp+edx+var_208], 0
		jz	loc_B2118
		cmp	al, 28h
		setz	dl
		cmp	al, 7Bh
		jnz	loc_B21E4
		test	dl, dl
		jnz	loc_B2140
		movzx	eax, byte ptr [ebx]
		test	al, al
		jz	short loc_B20A0

loc_B208B:				; CODE XREF: VOX_ParseString(char *)+C7j
		cmp	al, 7Dh
		jz	short loc_B20A0
		add	ebx, 1
		movzx	eax, byte ptr [ebx]
		test	al, al
		jnz	short loc_B208B
		lea	esi, [esi+0]

loc_B20A0:				; CODE XREF: VOX_ParseString(char *)+B9j
					; VOX_ParseString(char *)+BDj ...
		movzx	eax, byte ptr [ebx+1]
		lea	edx, [ebx+1]
		test	al, al
		jz	loc_B2130

loc_B20AF:				; CODE XREF: VOX_ParseString(char *)+21Ej
		cmp	al, 2Eh
		setz	bl
		cmp	al, 2Ch
		movzx	eax, byte ptr [edx+1]
		jz	short loc_B20C0
		test	bl, bl
		jz	short loc_B20FB

loc_B20C0:				; CODE XREF: VOX_ParseString(char *)+EAj
		cmp	al, 0Ah
		jz	loc_B2167
		cmp	al, 0Dh
		jz	loc_B21CA
		test	al, al
		jz	loc_B21BF
		test	bl, bl
		jnz	loc_B21D1
		mov	dword ptr ds:_ZL12rgpparseword[ecx*4], offset _ZL8voxcomma ; "_comma"
		add	ecx, 1

loc_B20EE:				; CODE XREF: VOX_ParseString(char *)+20Fj
		cmp	ecx, 1Fh
		jg	loc_B21B0
		movzx	eax, byte ptr [edx+1]

loc_B20FB:				; CODE XREF: VOX_ParseString(char *)+EEj
		mov	byte ptr [edx],	0
		lea	ebx, [edx+1]
		test	al, al
		jnz	short loc_B2172
		lea	esi, [esi+0]

loc_B2108:				; CODE XREF: VOX_ParseString(char *)+1B7j
					; VOX_ParseString(char *)+1F5j
		mov	eax, 1
		jmp	loc_B2030
; ---------------------------------------------------------------------------
		align 8

loc_B2118:				; CODE XREF: VOX_ParseString(char *)+99j
		add	ebx, 1
		movzx	eax, byte ptr [ebx]
		test	al, al
		jnz	loc_B205E
		jmp	loc_B2040
; ---------------------------------------------------------------------------
		align 10h

loc_B2130:				; CODE XREF: VOX_ParseString(char *)+D9j
		mov	ebx, edx
		jmp	loc_B2040
; ---------------------------------------------------------------------------
		align 10h

loc_B2140:				; CODE XREF: VOX_ParseString(char *)+AEj
					; VOX_ParseString(char *)+216j
		movzx	eax, byte ptr [ebx]
		test	al, al
		jnz	short loc_B215E
		jmp	loc_B20A0
; ---------------------------------------------------------------------------
		align 10h

loc_B2150:				; CODE XREF: VOX_ParseString(char *)+190j
		add	ebx, 1
		movzx	eax, byte ptr [ebx]
		test	al, al
		jz	loc_B20A0

loc_B215E:				; CODE XREF: VOX_ParseString(char *)+175j
		cmp	al, 29h
		jnz	short loc_B2150
		jmp	loc_B20A0
; ---------------------------------------------------------------------------

loc_B2167:				; CODE XREF: VOX_ParseString(char *)+F2j
		mov	eax, 0Ah

loc_B216C:				; CODE XREF: VOX_ParseString(char *)+1FFj
		mov	byte ptr [edx],	0
		lea	ebx, [edx+1]

loc_B2172:				; CODE XREF: VOX_ParseString(char *)+133j
		movzx	eax, al
		cmp	[ebp+eax+var_108], 0
		jz	short loc_B219A

loc_B217F:				; CODE XREF: VOX_ParseString(char *)+1C8j
		add	ebx, 1
		movzx	eax, byte ptr [ebx]
		test	al, al
		jz	loc_B2108
		movzx	eax, al
		cmp	[ebp+eax+var_108], 0
		jnz	short loc_B217F

loc_B219A:				; CODE XREF: VOX_ParseString(char *)+1ADj
		mov	dword ptr ds:_ZL12rgpparseword[ecx*4], ebx ; rgpparseword
		xor	eax, eax
		add	ecx, 1
		jmp	loc_B2030
; ---------------------------------------------------------------------------
		align 10h

loc_B21B0:				; CODE XREF: VOX_ParseString(char *)+77j
					; VOX_ParseString(char *)+81j ...
		mov	eax, offset _ZL12rgpparseword ;	rgpparseword

loc_B21B5:				; CODE XREF: VOX_ParseString(char *)+20j
		add	esp, 210h
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B21BF:				; CODE XREF: VOX_ParseString(char *)+102j
		mov	byte ptr [edx],	0
		lea	ebx, [edx+1]
		jmp	loc_B2108
; ---------------------------------------------------------------------------

loc_B21CA:				; CODE XREF: VOX_ParseString(char *)+FAj
		mov	eax, 0Dh
		jmp	short loc_B216C
; ---------------------------------------------------------------------------

loc_B21D1:				; CODE XREF: VOX_ParseString(char *)+10Aj
		mov	dword ptr ds:_ZL12rgpparseword[ecx*4], offset _ZL9voxperiod ; voxperiod
		add	ecx, 1
		jmp	loc_B20EE
; ---------------------------------------------------------------------------

loc_B21E4:				; CODE XREF: VOX_ParseString(char *)+A6j
		test	dl, dl
		jnz	loc_B2140
		mov	edx, ebx
		jmp	loc_B20AF
_Z15VOX_ParseStringPc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_GetDirectory(void *dest, size_t n, char *src)
_Z16VOX_GetDirectoryPciS_ proc near	; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+71p

var_1C		= dword	ptr -1Ch
dest		= dword	ptr  8
n		= dword	ptr  0Ch
src		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+src]
		mov	edi, [ebp+dest]
		mov	[esp], esi	; s
		call	strlen
		xor	ecx, ecx
		lea	ebx, [esi+eax-1]
		movzx	edx, byte ptr [ebx]
		cmp	dl, 2Fh
		jnz	short loc_B223E
		jmp	short loc_B2242
; ---------------------------------------------------------------------------
		align 10h

loc_B2230:				; CODE XREF: VOX_GetDirectory(char *,int,char *)+40j
		sub	ebx, 1
		add	ecx, 1
		movzx	edx, byte ptr [ebx]
		cmp	dl, 2Fh
		jz	short loc_B2242

loc_B223E:				; CODE XREF: VOX_GetDirectory(char *,int,char *)+23j
		cmp	esi, ebx
		jb	short loc_B2230

loc_B2242:				; CODE XREF: VOX_GetDirectory(char *,int,char *)+25j
					; VOX_GetDirectory(char	*,int,char *)+3Cj
		cmp	dl, 2Fh
		jnz	short loc_B2280
		xor	edx, edx
		sub	eax, ecx
		js	short loc_B2258
		mov	edx, [ebp+n]
		sub	edx, 1
		cmp	eax, edx
		cmovle	edx, eax

loc_B2258:				; CODE XREF: VOX_GetDirectory(char *,int,char *)+4Bj
		mov	[esp+8], edx	; n
		mov	[esp+4], esi	; src
		lea	esi, [ebx+1]
		mov	[esp], edi	; dest
		mov	[ebp+var_1C], edx
		call	memcpy
		mov	edx, [ebp+var_1C]
		mov	eax, esi
		mov	byte ptr [edi+edx], 0
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B2280:				; CODE XREF: VOX_GetDirectory(char *,int,char *)+45j
		mov	eax, [ebp+n]
		mov	[esp], edi	; dest
		mov	dword ptr [esp+4], offset aVox ; "vox/"
		mov	[esp+8], eax	; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z16VOX_GetDirectoryPciS_ endp

; ---------------------------------------------------------------------------
		jmp	short _Z19VOX_ParseWordParamsPcP9voxword_ti ; VOX_ParseWordParams(char *,voxword_t *,int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_ParseWordParams(char *s, int,	int)
_Z19VOX_ParseWordParamsPcP9voxword_ti proc near	; CODE XREF: .text:000B22A1j
					; VOX_Precache(IEngineSound *,int,char	const*)+128p

var_235		= byte ptr -235h
var_234		= byte ptr -234h
var_230		= byte ptr -230h
var_22C		= dword	ptr -22Ch
var_220		= byte ptr -220h
var_120		= byte ptr -120h
nptr		= byte ptr -20h
s		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_220]
		push	ebx
		sub	esp, 23Ch
		mov	[esp], eax
		mov	esi, [ebp+arg_4]
		mov	dword ptr [esp+4], offset aVpset ; "vpset)"
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_B2318
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+4,	0FFFFFFFFh
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault, 64h ; VOX_ParseWordParams(char *,voxword_t *,int)::voxwordDefault
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+8,	0
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+0Ch, 64h
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+14h, 0
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+1Ch, 0

loc_B2318:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+2Aj
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault ; VOX_ParseWordParams(char *,voxword_t *,int)::voxwordDefault
		mov	ebx, 1
		mov	edx, [ebp+s]
		mov	[esi], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+4
		mov	[esi+4], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+8
		mov	[esi+8], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+0Ch
		mov	[esi+0Ch], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+10h
		mov	[esi+10h], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+14h
		mov	[esi+14h], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+18h
		mov	[esi+18h], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+1Ch
		mov	[esi+1Ch], eax
		mov	eax, dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+20h
		mov	[esi+20h], eax
		mov	[esp], edx	; s
		call	strlen
		mov	ecx, [ebp+s]
		cmp	byte ptr [ecx+eax-1], 29h
		jz	short loc_B2390

loc_B2379:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+128j
					; VOX_ParseWordParams(char *,voxword_t *,int)+282j ...
		add	esp, 23Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B2390:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+C7j
		lea	eax, [ebp+var_120]
		mov	dword ptr [esp+4], (offset aHltvtestRunfra+12h)
		mov	[esp], eax
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		mov	edx, [ebp+s]
		movzx	ecx, byte ptr [edx]
		movzx	eax, cl
		cmp	[ebp+eax+var_120], 0
		jnz	short loc_B23D3
		lea	esi, [esi+0]

loc_B23C0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+121j
		add	edx, 1
		movzx	ecx, byte ptr [edx]
		movzx	eax, cl
		cmp	[ebp+eax+var_120], 0
		jz	short loc_B23C0

loc_B23D3:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+107j
		xor	ebx, ebx
		cmp	cl, 29h
		jz	short loc_B2379
		movzx	ecx, byte ptr [edx+1]
		mov	byte ptr [edx],	0
		lea	ebx, [edx+1]
		lea	edi, [ebp+nptr]
		mov	[ebp+var_22C], esi
		lea	esi, [esi+0]

loc_B23F0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1E1j
					; VOX_ParseWordParams(char *,voxword_t *,int)+20Aj ...
		test	cl, cl
		jz	short loc_B2410

loc_B23F4:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+15Ej
		movzx	eax, cl
		cmp	[ebp+eax+var_220], 0
		jnz	loc_B2518
		movzx	ecx, byte ptr [ebx+1]
		add	ebx, 1
		test	cl, cl
		jnz	short loc_B23F4

loc_B2410:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+142j
					; VOX_ParseWordParams(char *,voxword_t *,int)+26Bj
		movzx	edx, byte ptr [ebx+1]
		mov	dword ptr [edi], 0
		mov	dword ptr [edi+4], 0
		lea	eax, [edx-30h]
		cmp	al, 9
		ja	loc_B2521
		add	ebx, 1
		xor	eax, eax
		mov	[ebp+var_235], cl

loc_B2437:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+25Cj
		add	ebx, 1
		mov	[edi+eax], dl
		movzx	edx, byte ptr [ebx]
		lea	esi, [edx-30h]
		mov	ecx, esi
		cmp	cl, 9
		jbe	loc_B2500

loc_B244E:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+256j
		movzx	ecx, [ebp+var_235]
		mov	[ebp+var_230], dl
		mov	dword ptr [esp+8], 0Ah ; base
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], edi	; nptr
		mov	[ebp+var_234], cl
		call	strtol
		movzx	ecx, [ebp+var_234]
		movzx	edx, [ebp+var_230]
		sub	ecx, 65h
		cmp	cl, 11h		; switch 18 cases
		jbe	short loc_B24A0

loc_B248F:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1F3j
					; DATA XREF: .rodata:off_1F04A4o
		mov	ecx, edx	; jumptable 000B24A3 default case
		jmp	loc_B23F0
; ---------------------------------------------------------------------------
		align 10h

loc_B24A0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1DDj
		movzx	ecx, cl
		jmp	ds:off_1F04A4[ecx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_B24B0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1F3j
					; DATA XREF: .rodata:off_1F04A4o
		mov	ecx, [ebp+var_22C] ; jumptable 000B24A3	case 17
		mov	[ecx], eax
		mov	ecx, edx
		jmp	loc_B23F0
; ---------------------------------------------------------------------------
		align 10h

loc_B24C0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1F3j
					; DATA XREF: .rodata:off_1F04A4o
		mov	ecx, [ebp+var_22C] ; jumptable 000B24A3	case 15
		mov	[ecx+1Ch], eax
		mov	ecx, edx
		jmp	loc_B23F0
; ---------------------------------------------------------------------------

loc_B24D0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1F3j
					; DATA XREF: .rodata:off_1F04A4o
		mov	ecx, [ebp+var_22C] ; jumptable 000B24A3	case 14
		mov	[ecx+8], eax
		mov	ecx, edx
		jmp	loc_B23F0
; ---------------------------------------------------------------------------

loc_B24E0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1F3j
					; DATA XREF: .rodata:off_1F04A4o
		mov	ecx, [ebp+var_22C] ; jumptable 000B24A3	case 11
		mov	[ecx+4], eax
		mov	ecx, edx
		jmp	loc_B23F0
; ---------------------------------------------------------------------------

loc_B24F0:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+1F3j
					; DATA XREF: .rodata:off_1F04A4o
		mov	ecx, [ebp+var_22C] ; jumptable 000B24A3	case 0
		mov	[ecx+0Ch], eax
		mov	ecx, edx
		jmp	loc_B23F0
; ---------------------------------------------------------------------------

loc_B2500:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+198j
		add	eax, 1
		cmp	eax, 7
		jz	loc_B244E
		jmp	loc_B2437
; ---------------------------------------------------------------------------
		align 8

loc_B2518:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+14Fj
		cmp	cl, 29h
		jnz	loc_B2410

loc_B2521:				; CODE XREF: VOX_ParseWordParams(char *,voxword_t *,int)+176j
		mov	edx, [ebp+s]
		mov	ebx, 1
		mov	esi, [ebp+var_22C]
		cmp	byte ptr [edx],	0
		jnz	loc_B2379
		mov	eax, [esi]
		xor	bl, bl
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault, eax ; VOX_ParseWordParams(char *,voxword_t *,int)::voxwordDefault
		mov	eax, [esi+4]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+4,	eax
		mov	eax, [esi+8]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+8,	eax
		mov	eax, [esi+0Ch]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+0Ch, eax
		mov	eax, [esi+10h]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+10h, eax
		mov	eax, [esi+14h]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+14h, eax
		mov	eax, [esi+18h]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+18h, eax
		mov	eax, [esi+1Ch]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+1Ch, eax
		mov	eax, [esi+20h]
		mov	dword ptr ds:_ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault+20h, eax
		jmp	loc_B2379
_Z19VOX_ParseWordParamsPcP9voxword_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_GetNextEntnameIndex(void)
_Z23VOX_GetNextEntnameIndexv proc near
		mov	eax, ds:g_entnamelastsaved
		push	ebp
		mov	ebp, esp
		add	eax, 1
		cmp	eax, 3Fh
		mov	ds:g_entnamelastsaved, eax
		jle	short loc_B25B1
		mov	ds:g_entnamelastsaved, 0
		xor	eax, eax

loc_B25B1:				; CODE XREF: VOX_GetNextEntnameIndex(void)+13j
		pop	ebp
		retn
_Z23VOX_GetNextEntnameIndexv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupEntIndex(int, int, bool)
_Z18VOX_LookupEntIndexiib proc near	; CODE XREF: VOX_LookupGlobalSeqVirtual(int,int,char *,int)+E5p
					; VOX_LookupGlobalVirtual(int,int,char *,int)+82p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	edx, offset g_entnames
		xor	eax, eax
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		movzx	esi, [ebp+arg_8]
		jmp	short loc_B25EB
; ---------------------------------------------------------------------------
		align 10h

loc_B25E0:				; CODE XREF: VOX_LookupEntIndex(int,int,bool)+2Dj
					; VOX_LookupEntIndex(int,int,bool)+32j
		add	eax, 1
		add	edx, 68h
		cmp	eax, 40h
		jz	short loc_B2608

loc_B25EB:				; CODE XREF: VOX_LookupEntIndex(int,int,bool)+16j
		cmp	[edx], ecx
		jnz	short loc_B25E0
		cmp	[edx+4], ebx
		jnz	short loc_B25E0
		imul	edx, eax, 68h
		mov	ds:(g_entnames+30h)[edx], 0

loc_B25FE:				; CODE XREF: VOX_LookupEntIndex(int,int,bool)+51j
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B2608:				; CODE XREF: VOX_LookupEntIndex(int,int,bool)+29j
		mov	edx, esi
		mov	eax, 0FFFFFFFFh
		test	dl, dl
		jz	short loc_B25FE
		mov	eax, ds:g_entnamelastsaved
		add	eax, 1
		cmp	eax, 3Fh
		mov	ds:g_entnamelastsaved, eax
		jg	short loc_B2692

loc_B2625:				; CODE XREF: VOX_LookupEntIndex(int,int,bool)+DEj
		imul	edx, eax, 68h
		mov	dword ptr ds:g_entnames[edx], ecx
		xor	ecx, ecx
		mov	dword ptr ds:(g_entnames+4)[edx], ebx
		mov	dword ptr ds:(g_entnames+64h)[edx], 0
		mov	ds:(g_entnames+30h)[edx], 0
		mov	dword ptr ds:(g_entnames+8)[edx], 0
		mov	dword ptr ds:(g_entnames+0Ch)[edx], 0
		add	edx, (offset g_entnames+10h)

loc_B2661:				; CODE XREF: VOX_LookupEntIndex(int,int,bool)+CCj
		add	ecx, 1
		mov	dword ptr [edx], 0
		mov	dword ptr [edx+34h], 0
		mov	dword ptr [edx+24h], 0
		mov	dword ptr [edx+44h], 0
		mov	dword ptr [edx+10h], 0
		add	edx, 4
		cmp	ecx, 4
		jnz	short loc_B2661
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B2692:				; CODE XREF: VOX_LookupEntIndex(int,int,bool)+63j
		mov	ds:g_entnamelastsaved, 0
		xor	eax, eax
		jmp	short loc_B2625
_Z18VOX_LookupEntIndexiib endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupLastDeadIndex(int)
_Z23VOX_LookupLastDeadIndexi proc near

arg_0		= dword	ptr  8

		push	ebp
		fld1
		mov	edx, offset g_entnames
		mov	ebp, esp
		xor	ecx, ecx
		push	ebx
		fchs
		mov	ebx, [ebp+arg_0]
		mov	eax, 0FFFFFFFFh
		jmp	short loc_B26D3
; ---------------------------------------------------------------------------
		align 10h

loc_B26C0:				; CODE XREF: VOX_LookupLastDeadIndex(int)+42j
		fstp	st
		lea	esi, [esi+0]

loc_B26C8:				; CODE XREF: VOX_LookupLastDeadIndex(int)+35j
					; VOX_LookupLastDeadIndex(int)+3Bj
		add	ecx, 1
		add	edx, 68h
		cmp	ecx, 40h
		jz	short loc_B2700

loc_B26D3:				; CODE XREF: VOX_LookupLastDeadIndex(int)+17j
					; VOX_LookupLastDeadIndex(int)+51j
		cmp	[edx], ebx
		jnz	short loc_B26C8
		cmp	byte ptr [edx+30h], 0
		jz	short loc_B26C8
		fld	dword ptr [edx+64h]
		fcomi	st, st(1)
		jb	short loc_B26C0
		fstp	st(1)
		mov	eax, ecx
		add	ecx, 1
		add	edx, 68h
		cmp	ecx, 40h
		jnz	short loc_B26D3
		fstp	st
		jmp	short loc_B2702
; ---------------------------------------------------------------------------
		align 10h

loc_B2700:				; CODE XREF: VOX_LookupLastDeadIndex(int)+31j
		fstp	st

loc_B2702:				; CODE XREF: VOX_LookupLastDeadIndex(int)+55j
		pop	ebx
		pop	ebp
		retn
_Z23VOX_LookupLastDeadIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_InsertWords(int, int, char *, char *, char *)
_Z15VOX_InsertWordsiiPcS_S_ proc near	; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+1BAp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	ecx, [ebp+arg_4]
		push	ebx
		mov	esi, [ebp+arg_0]
		test	ecx, ecx
		jz	short loc_B2763
		mov	ebx, ecx
		sub	ebx, 1
		jz	short loc_B2751
		add	ebx, esi
		cmp	ebx, 1Eh
		jg	short loc_B2751
		mov	eax, 1Fh
		lea	esi, [esi+0]

loc_B2738:				; CODE XREF: VOX_InsertWords(int,int,char *,char *,char	*)+3Fj
		mov	edx, eax
		sub	edx, ecx
		mov	edx, dword ptr ds:(_ZL12rgpparseword+4)[edx*4]
		mov	dword ptr ds:_ZL12rgpparseword[eax*4], edx ; rgpparseword
		sub	eax, 1
		cmp	eax, ebx
		jnz	short loc_B2738

loc_B2751:				; CODE XREF: VOX_InsertWords(int,int,char *,char *,char	*)+14j
					; VOX_InsertWords(int,int,char *,char *,char *)+1Bj
		mov	eax, [ebp+arg_8]
		mov	dword ptr ds:_ZL12rgpparseword[esi*4], eax ; rgpparseword
		lea	eax, [ecx-2]
		cmp	eax, 1
		jbe	short loc_B2770

loc_B2763:				; CODE XREF: VOX_InsertWords(int,int,char *,char *,char	*)+Dj
					; VOX_InsertWords(int,int,char *,char *,char *)+6Dj
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B2770:				; CODE XREF: VOX_InsertWords(int,int,char *,char *,char	*)+51j
		mov	eax, [ebp+arg_C]
		cmp	ecx, 3
		mov	dword ptr ds:(_ZL12rgpparseword+4)[esi*4], eax
		jnz	short loc_B2763
		mov	eax, [ebp+arg_10]
		pop	ebx
		mov	dword ptr ds:(_ZL12rgpparseword+8)[esi*4], eax
		pop	esi
		pop	ebp
		retn
_Z15VOX_InsertWordsiiPcS_S_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_DeleteWord(int)
_Z14VOX_DeleteWordi proc near		; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+3AAp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 1Fh
		ja	short loc_B27BF
		mov	dword ptr ds:_ZL12rgpparseword[eax*4], 0 ; rgpparseword
		jz	short loc_B27BF
		lea	eax, (_ZL12rgpparseword+4)[eax*4]
		nop

loc_B27B0:				; CODE XREF: VOX_DeleteWord(int)+2Dj
		mov	edx, [eax]
		mov	[eax-4], edx
		add	eax, 4
		cmp	eax, offset _ZZ19VOX_ParseWordParamsPcP9voxword_tiE14voxwordDefault ; VOX_ParseWordParams(char *,voxword_t *,int)::voxwordDefault
		jnz	short loc_B27B0

loc_B27BF:				; CODE XREF: VOX_DeleteWord(int)+9j
					; VOX_DeleteWord(int)+16j
		pop	ebp
		retn
_Z14VOX_DeleteWordi endp

; ---------------------------------------------------------------------------
		jmp	short _Z19VOX_GetMapNameIndexPKc ; VOX_GetMapNameIndex(char  const*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_GetMapNameIndex(char *haystack)
_Z19VOX_GetMapNameIndexPKc proc	near	; CODE XREF: .text:000B27C1j
					; VOX_ReplaceVirtualNames(channel_t *)+10Fp

haystack	= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 1Ch
		mov	esi, ds:_ZL11g_cmapnames ; g_cmapnames
		mov	edi, [ebp+haystack]
		test	esi, esi
		jg	short loc_B27F7
		jmp	short loc_B280E
; ---------------------------------------------------------------------------
		align 10h

loc_B27F0:				; CODE XREF: VOX_GetMapNameIndex(char  const*)+3Cj
		add	ebx, 1
		cmp	ebx, esi
		jz	short loc_B2820

loc_B27F7:				; CODE XREF: VOX_GetMapNameIndex(char  const*)+16j
		mov	eax, dword ptr ds:_ZL12g_rgmapnames[ebx*4] ; g_rgmapnames
		mov	[esp], edi	; haystack
		mov	[esp+4], eax	; needle
		call	strstr
		test	eax, eax
		jz	short loc_B27F0

loc_B280E:				; CODE XREF: VOX_GetMapNameIndex(char  const*)+18j
		add	esp, 1Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B2820:				; CODE XREF: VOX_GetMapNameIndex(char  const*)+25j
		add	esp, 1Ch
		xor	ebx, ebx
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19VOX_GetMapNameIndexPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_LoadSound	proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
VOX_LoadSound	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_TouchSound(char  const*, CUtlDict<int, int> &, CUtlRBTree<ccpair,	int, bool (*)(ccpair const&, ccpair const&), CUtlMemory<UtlRBTreeNode_t<ccpair,	int>, int>> &, bool)
_Z14VOX_TouchSoundPKcR8CUtlDictIiiER10CUtlRBTreeI6ccpairiPFbRKS5_S7_E10CUtlMemoryI15UtlRBTreeNode_tIS5_iEiEEb proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z14VOX_TouchSoundPKcR8CUtlDictIiiER10CUtlRBTreeI6ccpairiPFbRKS5_S7_E10CUtlMemoryI15UtlRBTreeNode_tIS5_iEiEEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_ParseLineCommands(char *dest,	int)
_Z21VOX_ParseLineCommandsPci proc near	; CODE XREF: VOX_ReadSentenceFile+33Fp

var_234		= byte ptr -234h
var_22D		= byte ptr -22Dh
var_22C		= dword	ptr -22Ch
src		= byte ptr -21Ah
var_1A		= word ptr -1Ah
dest		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 23Ch
		mov	edx, [ebp+dest]
		mov	eax, [ebp+arg_4]
		test	edx, edx
		jz	loc_B29A2
		mov	ecx, [ebp+dest]
		lea	edi, [eax+eax*2]
		xor	eax, eax
		shl	edi, 2
		movzx	edx, byte ptr [ecx]
		mov	esi, ecx
		test	dl, dl
		jz	loc_B297E
		lea	esi, [esi+0]

loc_B2888:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+128j
		cmp	dl, 7Bh
		mov	ebx, esi
		jnz	short loc_B28A1
		jmp	loc_B2B77
; ---------------------------------------------------------------------------
		align 8

loc_B2898:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+59j
		cmp	dl, 7Bh
		jz	loc_B2B50

loc_B28A1:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+3Dj
		add	ebx, 1
		movzx	edx, byte ptr [ebx]
		test	dl, dl
		jnz	short loc_B2898
		mov	edx, ebx
		mov	[ebp+var_22D], 0
		sub	edx, esi

loc_B28B6:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+30Bj
					; VOX_ParseLineCommands(char *,int)+330j
		lea	ecx, [eax+edx]
		cmp	ecx, 200h
		mov	[ebp+var_22C], ecx
		ja	loc_B2B60
		lea	ecx, [ebp+src]
		mov	[esp+4], esi	; src
		mov	esi, ebx
		add	eax, ecx
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memcpy
		cmp	[ebp+var_22D], 1
		sbb	esi, 0FFFFFFFFh
		movzx	ebx, byte ptr [esi]
		lea	esi, [esi+0]

loc_B28F8:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+F0j
					; VOX_ParseLineCommands(char *,int)+167j
		test	bl, bl
		setnz	dl
		cmp	bl, 20h
		jg	short loc_B290A
		test	dl, dl
		jnz	loc_B29B0

loc_B290A:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+B0j
		movsx	eax, bl
		mov	[ebp+var_234], dl
		mov	[esp], eax	; c
		call	tolower
		movzx	edx, [ebp+var_234]
		cmp	eax, 63h
		jz	loc_B29F0
		cmp	eax, 6Ch
		jz	loc_B29C0
		test	dl, dl
		jnz	short loc_B2950

loc_B2938:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+103j
					; VOX_ParseLineCommands(char *,int)+108j ...
		cmp	bl, 7Dh
		jz	short loc_B2942
		test	bl, bl
		nop
		jnz	short loc_B28F8

loc_B2942:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+EBj
		cmp	bl, 1
		sbb	esi, 0FFFFFFFFh
		jmp	short loc_B2964
; ---------------------------------------------------------------------------
		align 10h

loc_B2950:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+E6j
					; VOX_ParseLineCommands(char *,int)+112j
		cmp	bl, 20h
		jle	short loc_B2938
		cmp	bl, 7Dh
		jz	short loc_B2938
		add	esi, 1
		movzx	ebx, byte ptr [esi]
		test	bl, bl
		jnz	short loc_B2950

loc_B2964:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+F8j
					; VOX_ParseLineCommands(char *,int)+2B0j ...
		movzx	edx, byte ptr [esi]
		cmp	dl, 20h
		jle	loc_B2B3E

loc_B2970:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+2E8j
					; VOX_ParseLineCommands(char *,int)+2F0j
		test	dl, dl
		mov	eax, [ebp+var_22C]
		jnz	loc_B2888

loc_B297E:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+2Cj
		cmp	eax, 200h
		jz	short loc_B29A2
		mov	ecx, [ebp+dest]
		mov	[ebp+eax+src], 0
		lea	eax, [ebp+src]
		mov	[esp+4], eax	; src
		mov	[esp], ecx	; dest
		call	strcpy

loc_B29A2:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+14j
					; VOX_ParseLineCommands(char *,int)+133j
		add	esp, 23Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B29B0:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+B4j
		movzx	ebx, byte ptr [esi+1]
		add	esi, 1
		jmp	loc_B28F8
; ---------------------------------------------------------------------------
		align 10h

loc_B29C0:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+DEj
		mov	dword ptr [esp+8], 3
		mov	dword ptr [esp+4], (offset aFilelen+4)
		mov	[esp], esi
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jz	loc_B2AC0

loc_B29E0:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+1BAj
					; VOX_ParseLineCommands(char *,int)+221j
		movzx	ebx, byte ptr [esi]
		jmp	loc_B2938
; ---------------------------------------------------------------------------
		align 10h

loc_B29F0:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+D5j
		mov	dword ptr [esp+8], 0Ch
		mov	dword ptr [esp+4], offset aClosecaption	; "closecaption"
		mov	[esp], esi
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jnz	short loc_B29E0
		mov	edx, dword ptr ds:g_Sentences
		add	esi, 0Ch
		movzx	eax, byte ptr [edx+edi+8]
		and	eax, 0FFFFFF80h
		or	eax, 1
		mov	[edx+edi+8], al
		mov	[esp], esi
		call	_Z9COM_ParsePKc	; COM_Parse(char  const*)
		mov	esi, eax
		movzx	eax, byte ptr [eax]
		test	al, al
		jz	short loc_B2A40
		cmp	al, 7Dh
		jz	short loc_B2A40
		cmp	al, 20h
		jg	short loc_B2A80
		lea	esi, [esi+0]

loc_B2A40:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+1E3j
					; VOX_ParseLineCommands(char *,int)+1E7j ...
		mov	dword ptr [esp], offset	com_token ; s
		call	strlen
		test	eax, eax
		jle	short loc_B2AA2

loc_B2A50:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+250j
		lea	eax, [ebp+var_1A]
		mov	dword ptr [esp+4], offset com_token
		mov	[esp], eax
		call	_ZN10CUtlSymbolC2EPKc ;	CUtlSymbol::CUtlSymbol(char  const*)
		movzx	edx, [ebp+var_1A]
		mov	eax, dword ptr ds:g_Sentences
		mov	[eax+edi+0Ah], dx
		jmp	loc_B29E0
; ---------------------------------------------------------------------------
		align 10h

loc_B2A80:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+1EBj
					; VOX_ParseLineCommands(char *,int)+240j
		add	esi, 1
		movzx	eax, byte ptr [esi]
		test	al, al
		jz	short loc_B2A40
		cmp	al, 20h
		jle	short loc_B2A40
		cmp	al, 7Dh
		jnz	short loc_B2A80
		mov	dword ptr [esp], offset	com_token ; s
		call	strlen
		test	eax, eax
		jg	short loc_B2A50

loc_B2AA2:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+1FEj
		mov	eax, dword ptr ds:g_Sentences
		mov	word ptr [eax+edi+0Ah],	0FFFFh
		movzx	ebx, byte ptr [esi]
		jmp	loc_B2938
; ---------------------------------------------------------------------------
		align 10h

loc_B2AC0:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+18Aj
		mov	ebx, dword ptr ds:g_Sentences
		lea	eax, [esi+3]
		mov	dword ptr [esp+4], 0 ; endptr
		mov	[esp], eax	; nptr
		call	strtod
		lea	eax, [esi+4]
		add	ebx, edi
		fstp	dword ptr [ebx+4]
		movzx	ebx, byte ptr [esi+4]
		test	bl, bl
		jz	short loc_B2B30
		cmp	bl, 20h
		jle	short loc_B2B20
		cmp	bl, 7Dh
		mov	esi, eax
		jz	short loc_B2B20
		lea	esi, [esi+0]

loc_B2AF8:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+2C8j
		add	esi, 1
		movzx	ebx, byte ptr [esi]
		test	bl, bl
		jz	loc_B2964
		cmp	bl, 20h
		jle	loc_B2938
		cmp	bl, 7Dh
		jz	loc_B2938
		jmp	short loc_B2AF8
; ---------------------------------------------------------------------------
		align 10h

loc_B2B20:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+29Cj
					; VOX_ParseLineCommands(char *,int)+2A3j
		mov	esi, eax
		jmp	loc_B2938
; ---------------------------------------------------------------------------
		align 10h

loc_B2B30:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+297j
		mov	esi, eax
		movzx	edx, byte ptr [esi]
		cmp	dl, 20h
		jg	loc_B2970

loc_B2B3E:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+11Aj
		test	dl, dl
		jz	loc_B2970
		add	esi, 1
		jmp	loc_B2964
; ---------------------------------------------------------------------------
		align 10h

loc_B2B50:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+4Bj
		mov	edx, ebx
		mov	[ebp+var_22D], 7Bh
		sub	edx, esi
		jmp	loc_B28B6
; ---------------------------------------------------------------------------

loc_B2B60:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+75j
		mov	dword ptr [esp], offset	aErrorSentenceT	; "Error! sentence too long!\n"
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		add	esp, 23Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B2B77:				; CODE XREF: VOX_ParseLineCommands(char	*,int)+3Fj
		xor	edx, edx
		mov	[ebp+var_22D], 7Bh
		jmp	loc_B28B6
_Z21VOX_ParseLineCommandsPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LRUInit(sentencegroup_t *)
_Z11VOX_LRUInitP15sentencegroup_t proc near ; CODE XREF: VOX_GroupPick+90p
					; VOX_GroupInitAllLRUs(void)+90p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	eax, word ptr [ebx]
		test	ax, ax
		jz	loc_B2C2D
		movsx	esi, word ptr [ebx+2]
		add	esi, dword ptr ds:_ZL10g_GroupLRU ; g_GroupLRU
		test	ax, ax
		jle	short loc_B2C2D
		xor	edx, edx
		lea	esi, [esi+0]

loc_B2BC0:				; CODE XREF: VOX_LRUInit(sentencegroup_t *)+3Bj
		mov	[esi+edx], dl
		add	edx, 1
		movsx	eax, word ptr [ebx]
		cmp	edx, eax
		jl	short loc_B2BC0
		test	eax, eax
		jle	short loc_B2C2D
		xor	edi, edi
		nop
		lea	esi, [esi+0]

loc_B2BD8:				; CODE XREF: VOX_LRUInit(sentencegroup_t *)+9Bj
		sub	eax, 1
		mov	dword ptr [esp], 0
		add	edi, 1
		mov	[esp+4], eax
		call	RandomInt
		mov	[ebp+var_1C], eax
		movsx	eax, word ptr [ebx]
		mov	dword ptr [esp], 0
		sub	eax, 1
		mov	[esp+4], eax
		call	RandomInt
		mov	edx, [ebp+var_1C]
		add	eax, esi
		add	edx, esi
		movzx	ecx, byte ptr [edx]
		mov	byte ptr [ebp+var_1C], cl
		movzx	ecx, byte ptr [eax]
		mov	[edx], cl
		movzx	edx, byte ptr [ebp+var_1C]
		mov	[eax], dl
		movsx	eax, word ptr [ebx]
		lea	edx, ds:0[eax*4]
		cmp	edi, edx
		jl	short loc_B2BD8

loc_B2C2D:				; CODE XREF: VOX_LRUInit(sentencegroup_t *)+12j
					; VOX_LRUInit(sentencegroup_t *)+25j ...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z11VOX_LRUInitP15sentencegroup_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_GroupIndexFromName proc near	; CODE XREF: VOX_LookupSentenceByIndex(char *,int,int *)+1Ap
					; VOX_LookupRndVirtual(char *)+10p ...

var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_B2CA4
		lea	edx, [ebp+var_1A]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZN15sentencegroup_t9GetSymbolEPKc ; sentencegroup_t::GetSymbol(char  const*)
		mov	ebx, dword ptr ds:g_SentenceGroups+0Ch
		mov	eax, 0FFFFFFFFh
		sub	esp, 4
		test	ebx, ebx
		jle	short loc_B2CA9
		mov	esi, dword ptr ds:g_SentenceGroups
		xor	eax, eax
		mov	edx, 6
		movzx	edi, [ebp+var_1A]
		cmp	[esi+4], di
		jnz	short loc_B2C9D
		jmp	short loc_B2CA9
; ---------------------------------------------------------------------------
		align 10h

loc_B2C90:				; CODE XREF: VOX_GroupIndexFromName+62j
		movzx	ecx, word ptr [esi+edx+4]
		add	edx, 6
		cmp	cx, di
		jz	short loc_B2CA9

loc_B2C9D:				; CODE XREF: VOX_GroupIndexFromName+46j
		add	eax, 1
		cmp	eax, ebx
		jnz	short loc_B2C90

loc_B2CA4:				; CODE XREF: VOX_GroupIndexFromName+Ej
		mov	eax, 0FFFFFFFFh

loc_B2CA9:				; CODE XREF: VOX_GroupIndexFromName+2Fj
					; VOX_GroupIndexFromName+48j ...
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
VOX_GroupIndexFromName endp

; ---------------------------------------------------------------------------
		jmp	short VOX_GroupNameFromIndex
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_GroupNameFromIndex proc near	; CODE XREF: .text:000B2CB1j
					; CVEngineServer::SentenceGroupNameFromIndex(int)+Aj

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		js	short loc_B2CF0
		cmp	eax, dword ptr ds:g_SentenceGroups+0Ch
		jge	short loc_B2CF0
		mov	ecx, dword ptr ds:g_SentenceGroups
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*2]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZNK15sentencegroup_t9GroupNameEv ; sentencegroup_t::GroupName(void)
; ---------------------------------------------------------------------------
		align 10h

loc_B2CF0:				; CODE XREF: VOX_GroupNameFromIndex+8j
					; VOX_GroupNameFromIndex+10j
		xor	eax, eax
		pop	ebp
		retn
VOX_GroupNameFromIndex endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_GroupPickSequential(int, char	*s, size_t maxlen, int)
VOX_GroupPickSequential	proc near	; CODE XREF: VOX_LookupSentenceByIndex(char *,int,int *)+48p
					; CVEngineServer::SentenceGroupPickSequential(int,char *,int,int,int)+3Dj

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
maxlen		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_C]
		mov	esi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		mov	edi, [ebp+maxlen]
		test	eax, eax
		js	short loc_B2D7D
		cmp	eax, dword ptr ds:g_SentenceGroups+0Ch
		jg	short loc_B2D7D
		lea	edx, [eax+eax*2]
		mov	eax, dword ptr ds:g_SentenceGroups
		add	edx, edx
		mov	[ebp+var_1C], edx
		add	eax, edx
		mov	[esp], eax
		call	_ZNK15sentencegroup_t9GroupNameEv ; sentencegroup_t::GroupName(void)
		mov	ecx, dword ptr ds:g_SentenceGroups
		mov	edx, [ebp+var_1C]
		movzx	edx, byte ptr [ecx+edx]
		test	dl, dl
		jz	short loc_B2D7D
		movzx	edx, dl
		cmp	edx, ebx
		jg	short loc_B2D5B
		lea	ebx, [edx-1]

loc_B2D5B:				; CODE XREF: VOX_GroupPickSequential+56j
		mov	edx, [ebp+s]
		mov	[esp+10h], ebx
		lea	esi, [ebx+1]
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSD ;	"!%s%d"
		mov	[esp+4], edi	; maxlen
		mov	[esp], edx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_B2D7D:				; CODE XREF: VOX_GroupPickSequential+1Fj
					; VOX_GroupPickSequential+27j ...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
VOX_GroupPickSequential	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_GroupPick(int, char *s, size_t maxlen)
VOX_GroupPick	proc near		; CODE XREF: VOX_LookupRndVirtual(char *)+2Bp
					; CVEngineServer::SentenceGroupPick(int,char *,int)+31j

arg		= byte ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
maxlen		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		test	eax, eax
		js	loc_B2E5B
		cmp	eax, dword ptr ds:g_SentenceGroups+0Ch
		jg	loc_B2E5B
		lea	eax, [eax+eax*2]
		add	eax, eax
		mov	[ebp+var_1C], eax
		add	eax, dword ptr ds:g_SentenceGroups
		mov	[esp], eax
		call	_ZNK15sentencegroup_t9GroupNameEv ; sentencegroup_t::GroupName(void)
		mov	dword ptr [ebp+arg], eax
		mov	eax, [ebp+var_1C]
		add	eax, dword ptr ds:g_SentenceGroups
		movsx	edi, word ptr [eax+2]
		movzx	ebx, byte ptr [eax]
		add	edi, dword ptr ds:_ZL10g_GroupLRU ; g_GroupLRU
		lea	esi, [esi+0]

loc_B2DE8:				; CODE XREF: VOX_GroupPick+95j
		test	bl, bl
		jz	short loc_B2E14
		movzx	eax, byte ptr [edi]
		cmp	al, 0FFh
		jnz	short loc_B2E27
		lea	edx, [edi+1]
		xor	ecx, ecx
		jmp	short loc_B2E0D
; ---------------------------------------------------------------------------
		align 10h

loc_B2E00:				; CODE XREF: VOX_GroupPick+82j
		mov	esi, edx
		add	edx, 1
		movzx	eax, byte ptr [edx-1]
		cmp	al, 0FFh
		jnz	short loc_B2E30

loc_B2E0D:				; CODE XREF: VOX_GroupPick+68j
		add	ecx, 1
		cmp	bl, cl
		ja	short loc_B2E00

loc_B2E14:				; CODE XREF: VOX_GroupPick+5Aj
		mov	eax, [ebp+var_1C]
		add	eax, dword ptr ds:g_SentenceGroups
		mov	[esp], eax
		call	_Z11VOX_LRUInitP15sentencegroup_t ; VOX_LRUInit(sentencegroup_t	*)
		jmp	short loc_B2DE8
; ---------------------------------------------------------------------------

loc_B2E27:				; CODE XREF: VOX_GroupPick+61j
		mov	esi, edi
		lea	esi, [esi+0]

loc_B2E30:				; CODE XREF: VOX_GroupPick+7Bj
		movzx	ebx, al
		mov	eax, dword ptr [ebp+arg]
		mov	byte ptr [esi],	0FFh
		mov	[esp+10h], ebx
		mov	dword ptr [esp+8], offset aSD ;	"!%s%d"
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+maxlen]
		mov	[esp+4], eax	; maxlen
		mov	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_B2E5B:				; CODE XREF: VOX_GroupPick+13j
					; VOX_GroupPick+1Fj
		add	esp, 3Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
VOX_GroupPick	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_SentenceCount proc near		; CODE XREF: SV_StartSound(IRecipientFilter &,edict_t *,int,char  const*,float,soundlevel_t,int,int,int,Vector	const*,float,int,CUtlVector<Vector,CUtlMemory<Vector,int>> *)+1FBp
					; CVEngineServer::EmitAmbientSound(int,Vector  const&,char  const*,float,soundlevel_t,int,int,float)+1A6p
		push	ebp
		mov	eax, dword ptr ds:g_Sentences+0Ch
		mov	ebp, esp
		pop	ebp
		retn
VOX_SentenceCount endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_SentenceLength proc	near		; CODE XREF: CVEngineServer::SentenceLength(int)+Aj

arg_0		= dword	ptr  8

		push	ebp
		fldz
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		js	short loc_B2E94
		cmp	eax, dword ptr ds:g_Sentences+0Ch
		jl	short loc_B2EA0

loc_B2E94:				; CODE XREF: VOX_SentenceLength+Aj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B2EA0:				; CODE XREF: VOX_SentenceLength+12j
		fstp	st
		mov	edx, dword ptr ds:g_Sentences
		lea	eax, [eax+eax*2]
		pop	ebp
		lea	eax, [edx+eax*4]
		fld	dword ptr [eax+4]
		retn
VOX_SentenceLength endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_LookupString(char *s1, int, int, int,	int)
VOX_LookupString proc near		; CODE XREF: VOX_LookupSentenceByIndex(char *,int,int *)+83p
					; VOX_LookupRndVirtual(char *)+61p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
s1		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_B2ED6
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx],	0

loc_B2ED6:				; CODE XREF: VOX_LookupString+Ej
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jz	short loc_B2EE5
		mov	edx, [ebp+arg_C]
		mov	word ptr [edx],	0FFFFh

loc_B2EE5:				; CODE XREF: VOX_LookupString+1Bj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_B2EF5
		mov	edx, [ebp+arg_10]
		mov	dword ptr [edx], 0

loc_B2EF5:				; CODE XREF: VOX_LookupString+2Aj
		mov	edx, dword ptr ds:g_Sentences+0Ch
		xor	eax, eax
		test	edx, edx
		mov	[ebp+var_1C], edx
		jle	loc_B2FA5
		mov	edx, dword ptr ds:g_Sentences
		xor	ebx, ebx
		xor	esi, esi
		mov	[ebp+var_20], edx
		jmp	short loc_B2F2F
; ---------------------------------------------------------------------------
		align 10h

loc_B2F20:				; CODE XREF: VOX_LookupString+86j
		add	esi, 1
		add	ebx, 0Ch
		cmp	esi, [ebp+var_1C]
		jz	loc_B2FB0

loc_B2F2F:				; CODE XREF: VOX_LookupString+55j
		mov	edx, [ebp+var_20]
		mov	edi, [edx+ebx]
		mov	edx, [ebp+s1]
		mov	[esp+4], edi	; s2
		mov	[esp], edx	; s1
		call	strcasecmp
		test	eax, eax
		jnz	short loc_B2F20
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_B2F54
		mov	edx, [ebp+arg_4]
		mov	[edx], esi

loc_B2F54:				; CODE XREF: VOX_LookupString+8Dj
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_B2F6D
		mov	eax, dword ptr ds:g_Sentences
		mov	edx, [ebp+arg_8]
		movzx	eax, byte ptr [eax+ebx+8]
		and	eax, 7Fh
		mov	[edx], al

loc_B2F6D:				; CODE XREF: VOX_LookupString+99j
		mov	esi, [ebp+arg_C]
		test	esi, esi
		jz	short loc_B2F84
		mov	eax, dword ptr ds:g_Sentences
		mov	edx, [ebp+arg_C]
		movzx	eax, word ptr [eax+ebx+0Ah]
		mov	[edx], ax

loc_B2F84:				; CODE XREF: VOX_LookupString+B2j
		mov	ecx, [ebp+arg_10]
		test	ecx, ecx
		jz	short loc_B2F99
		mov	eax, dword ptr ds:g_Sentences
		mov	edx, [ebp+arg_10]
		mov	eax, [eax+ebx+4]
		mov	[edx], eax

loc_B2F99:				; CODE XREF: VOX_LookupString+C9j
		mov	[esp], edi	; s
		call	strlen
		lea	eax, [edi+eax+1]

loc_B2FA5:				; CODE XREF: VOX_LookupString+42j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B2FB0:				; CODE XREF: VOX_LookupString+69j
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
VOX_LookupString endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupSentenceByIndex(char *, int, int *)
_Z25VOX_LookupSentenceByIndexPciPi proc	near ; CODE XREF: VOX_LookupMapnames(void)+45p
					; VOX_LookupGlobalSeqVirtual(int,int,char *,int)+93p ...

var_3C		= dword	ptr -3Ch
s1		= byte ptr -38h
var_37		= byte ptr -37h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		xor	ebx, ebx
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	[esp], eax
		call	VOX_GroupIndexFromName
		test	eax, eax
		js	loc_B306A
		mov	edx, [ebp+arg_4]
		lea	esi, [ebp+s1]
		mov	dword ptr [esp+10h], 1
		mov	dword ptr [esp+8], 1Fh ; maxlen
		mov	[esp+4], esi	; s
		mov	[esp], eax	; int
		mov	[esp+0Ch], edx	; int
		call	VOX_GroupPickSequential
		test	eax, eax
		mov	edx, eax
		js	short loc_B306A
		cmp	[ebp+s1], 21h
		lea	eax, [ebp+var_37]
		mov	[ebp+var_3C], edx
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; int
		cmovnz	eax, esi
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], eax	; s1
		call	VOX_LookupString
		mov	dword ptr [esp+4], 20h ; c
		mov	[esp], eax	; s
		mov	ebx, eax
		call	strchr
		mov	edx, [ebp+var_3C]
		test	eax, eax
		jz	short loc_B3064
		mov	byte ptr [eax],	0

loc_B3064:				; CODE XREF: VOX_LookupSentenceByIndex(char *,int,int *)+9Fj
		test	edi, edi
		jz	short loc_B306A
		mov	[edi], edx

loc_B306A:				; CODE XREF: VOX_LookupSentenceByIndex(char *,int,int *)+21j
					; VOX_LookupSentenceByIndex(char *,int,int *)+51j ...
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z25VOX_LookupSentenceByIndexPciPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupMapnames(void)
_Z18VOX_LookupMapnamesv	proc near	; CODE XREF: VOX_Init+E0j

var_C		= dword	ptr -0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+var_C]
		xor	ebx, ebx
		sub	esp, 20h
		mov	[ebp+var_C], 0
		jmp	short loc_B30B6
; ---------------------------------------------------------------------------
		align 10h

loc_B30A0:				; CODE XREF: VOX_LookupMapnames(void)+4Cj
		add	ds:_ZL11g_cmapnames, 1 ; g_cmapnames
		mov	dword ptr ds:_ZL12g_rgmapnames[ebx*4], eax ; g_rgmapnames
		add	ebx, 1
		cmp	ebx, 18h
		jz	short loc_B30CE

loc_B30B6:				; CODE XREF: VOX_LookupMapnames(void)+14j
		mov	[esp+8], esi
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aV_mapname ; "V_MAPNAME"
		call	_Z25VOX_LookupSentenceByIndexPciPi ; VOX_LookupSentenceByIndex(char *,int,int *)
		test	eax, eax
		jnz	short loc_B30A0

loc_B30CE:				; CODE XREF: VOX_LookupMapnames(void)+34j
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z18VOX_LookupMapnamesv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupGlobalSeqVirtual(int, int, char *, int)
_Z26VOX_LookupGlobalSeqVirtualiiPci proc near
					; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+5C5p

var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, ds:g_pSoundServices
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_C]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, offset g_entnames
		jmp	short loc_B3117
; ---------------------------------------------------------------------------
		align 4

loc_B3108:				; CODE XREF: VOX_LookupGlobalSeqVirtual(int,int,char *,int)+39j
		add	esi, 1
		add	eax, 68h
		cmp	esi, 40h
		jz	loc_B31B0

loc_B3117:				; CODE XREF: VOX_LookupGlobalSeqVirtual(int,int,char *,int)+23j
		cmp	[eax], edi
		jnz	short loc_B3108
		mov	eax, dword ptr ds:snd_vox_seqtimeout+1Ch
		imul	edx, esi, 1Ah
		add	edx, ebx
		mov	eax, [eax+30h]
		fld	dword ptr ds:(g_entnames+54h)[edx*4]
		fsubr	st, st(1)
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		mov	[ebp+var_2C], eax
		fild	[ebp+var_2C]
		fcomip	st, st(1)
		fstp	st
		jnb	short loc_B31A0
		mov	dword ptr ds:(g_entnames+34h)[edx*4], 0
		xor	eax, eax

loc_B3153:				; CODE XREF: VOX_LookupGlobalSeqVirtual(int,int,char *,int)+C7j
					; VOX_LookupGlobalSeqVirtual(int,int,char *,int)+FDj
		mov	[esp+4], eax
		mov	eax, [ebp+arg_8]
		lea	edx, [ebp+var_1C]
		mov	[esp+8], edx
		imul	esi, 1Ah
		fstp	[ebp+var_38]
		mov	[ebp+var_1C], 0
		mov	[esp], eax
		add	ebx, esi
		call	_Z25VOX_LookupSentenceByIndexPciPi ; VOX_LookupSentenceByIndex(char *,int,int *)
		mov	edx, [ebp+var_1C]
		fld	[ebp+var_38]
		mov	dword ptr ds:(g_entnames+20h)[ebx*4], eax
		fstp	dword ptr ds:(g_entnames+54h)[ebx*4]
		mov	dword ptr ds:(g_entnames+34h)[ebx*4], edx
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B31A0:				; CODE XREF: VOX_LookupGlobalSeqVirtual(int,int,char *,int)+64j
		mov	eax, dword ptr ds:(g_entnames+34h)[edx*4]
		jmp	short loc_B3153
; ---------------------------------------------------------------------------
		align 10h

loc_B31B0:				; CODE XREF: VOX_LookupGlobalSeqVirtual(int,int,char *,int)+31j
		mov	eax, [ebp+arg_4]
		fstp	[ebp+var_38]
		mov	dword ptr [esp+8], 1
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z18VOX_LookupEntIndexiib ; VOX_LookupEntIndex(int,int,bool)
		mov	esi, eax
		imul	eax, 1Ah
		fld	[ebp+var_38]
		lea	eax, [ebx+eax+0Ch]
		mov	eax, dword ptr ds:(g_entnames+4)[eax*4]
		jmp	loc_B3153
_Z26VOX_LookupGlobalSeqVirtualiiPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_LookupNumber(char *s,	int)
_Z16VOX_LookupNumberPci	proc near	; CODE XREF: VOX_LookupSectorVirtual(char *)+5Cp
					; VOX_LookupRangeHeadingOrGrid(int,char	*,channel_t *,int,char **,char **,char **,int *,bool)+BBp ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= word ptr -10h
var_E		= byte ptr -0Eh
s		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+s]
		mov	[esp], ebx	; s
		call	strlen
		mov	[ebp+var_10], 53h
		lea	edx, [ebp+var_18]
		movzx	eax, byte ptr [ebx+eax-1]
		mov	[ebp+var_18], 554E5F56h
		mov	[ebp+var_14], 5245424Dh
		mov	[ebp+var_E], 0
		mov	dword ptr [esp+8], 0
		mov	byte ptr [ebp+var_10+1], al
		mov	eax, [ebp+arg_4]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_Z25VOX_LookupSentenceByIndexPciPi ; VOX_LookupSentenceByIndex(char *,int,int *)
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_Z16VOX_LookupNumberPci	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_LookupSectorVirtual(char *s)
_Z23VOX_LookupSectorVirtualPc proc near	; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+4FEp

var_18		= dword	ptr -18h
s		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, ds:g_pSoundServices
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, _ZL13g_vox_isector	; g_vox_isector
		cmp	eax, 0FFFFFFFFh
		jz	short loc_B32D0

loc_B326D:				; CODE XREF: VOX_LookupSectorVirtual(char *)+9Fj
		fld	ds:_ZL22g_vox_lastsectorupdate ; g_vox_lastsectorupdate
		mov	edx, dword ptr ds:snd_vox_sectimeout+1Ch
		fsubr	st, st(1)
		fild	dword ptr [edx+30h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_B32A0
		add	eax, 1
		cmp	eax, 14h
		mov	_ZL13g_vox_isector, eax	; g_vox_isector
		jg	short loc_B32B8

loc_B3293:				; CODE XREF: VOX_LookupSectorVirtual(char *)+77j
		fstp	ds:_ZL22g_vox_lastsectorupdate ; g_vox_lastsectorupdate
		jmp	short loc_B32A2
; ---------------------------------------------------------------------------
		align 10h

loc_B32A0:				; CODE XREF: VOX_LookupSectorVirtual(char *)+34j
		fstp	st

loc_B32A2:				; CODE XREF: VOX_LookupSectorVirtual(char *)+49j
		mov	[esp+4], eax	; int
		mov	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B32B8:				; CODE XREF: VOX_LookupSectorVirtual(char *)+41j
		mov	_ZL13g_vox_isector, 1 ;	g_vox_isector
		mov	eax, 1
		jmp	short loc_B3293
; ---------------------------------------------------------------------------
		align 10h

loc_B32D0:				; CODE XREF: VOX_LookupSectorVirtual(char *)+1Bj
		fstp	[ebp+var_18]
		mov	dword ptr [esp+4], 13h
		mov	dword ptr [esp], 0
		call	RandomInt
		mov	_ZL13g_vox_isector, eax	; g_vox_isector
		fld	[ebp+var_18]
		jmp	loc_B326D
_Z23VOX_LookupSectorVirtualPc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_LookupRangeHeadingOrGrid(int,	char *s, int, int, int,	int, int, int, char)
_Z28VOX_LookupRangeHeadingOrGridiPcP9channel_tiPS_S2_S2_Pib proc near
					; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+2C2p
					; VOX_ReplaceVirtualNames(channel_t *)+32Cp ...

var_50		= qword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= byte ptr  28h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	edx, [ebp+arg_8]
		fld	dword ptr ds:listener_origin
		mov	eax, [ebp+arg_0]
		movzx	ecx, [ebp+arg_20]
		fld	dword ptr [edx+0E0h]
		fsubr	st, st(1)
		test	eax, eax
		mov	byte ptr [ebp+var_3C], cl
		fst	[ebp+var_30]
		fld	dword ptr ds:listener_origin+4
		fld	dword ptr [edx+0E4h]
		fsubr	st, st(1)
		fst	[ebp+var_2C]
		fld	dword ptr ds:listener_origin+8
		fsub	dword ptr [edx+0E8h]
		fst	[ebp+var_28]
		jnz	loc_B33F8
		fstp	st(4)
		fstp	st(1)
		fxch	st(1)
		fmul	st, st
		fxch	st(1)
		mov	ecx, 384h
		fmul	st, st
		fxch	st(2)
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		faddp	st(1), st
		fsqrt
		fld	ds:dbl_1F05A8
		fmulp	st(1), st
		fstp	[ebp+var_50]
		cvttsd2si edx, [ebp+var_50]
		cmp	edx, 384h
		cmovle	ecx, edx
		test	ecx, ecx
		cmovs	ecx, eax

loc_B338A:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+39Aj
		cmp	ecx, 3E7h
		jle	loc_B341F
		cmp	byte ptr [ebp+var_3C], 0
		mov	edi, 9
		mov	esi, 9
		mov	ebx, 9
		jz	loc_B3462

loc_B33AF:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+15Cj
		mov	ecx, [ebp+s]
		mov	[esp+4], edi	; int
		mov	edi, esi
		mov	[esp], ecx	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		or	edi, ebx
		mov	[ebp+var_3C], 0
		mov	ecx, eax
		jnz	loc_B3570

loc_B33D1:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+2F0j
		mov	ebx, [ebp+arg_1C]
		xor	edx, edx
		mov	dword ptr [ebx], 1

loc_B33DC:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+1C5j
		test	ecx, ecx
		jz	loc_B36B0
		mov	edx, ecx

loc_B33E6:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+3B6j
		mov	ebx, [ebp+arg_10]
		mov	[ebx], edx
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B33F8:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+49j
		fstp	st
		fstp	st
		fstp	st(1)
		cmp	eax, 1
		jz	loc_B3668
		cmp	eax, 2
		jz	loc_B36D8
		fstp	st(1)
		xor	ecx, ecx
		cmp	eax, 3
		jz	loc_B37C0
		fstp	st

loc_B341F:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+90j
		mov	ebx, 51EB851Fh
		mov	eax, ecx
		mov	esi, 66666667h
		imul	ebx
		mov	eax, ecx
		sar	eax, 1Fh
		mov	ebx, edx
		sar	ebx, 5
		sub	ebx, eax
		imul	edi, ebx, -64h
		lea	eax, [ecx+edi]
		mov	[ebp+var_40], eax
		imul	esi
		mov	eax, [ebp+var_40]
		mov	esi, edx
		sar	esi, 2
		sar	eax, 1Fh
		sub	esi, eax
		imul	eax, esi, -0Ah
		add	edi, eax
		add	edi, ecx

loc_B3458:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+3A6j
		cmp	byte ptr [ebp+var_3C], 0
		jnz	loc_B33AF

loc_B3462:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+A9j
		test	ebx, ebx
		setnz	al
		test	esi, esi
		setz	dl
		jz	short loc_B34E0
		test	al, al
		jnz	short loc_B34EC

loc_B3472:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+1E2j
		xor	ebx, ebx
		xor	ecx, ecx
		cmp	esi, 1
		mov	[ebp+var_3C], 0
		jle	loc_B3539

loc_B3486:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+233j
		test	edi, edi
		jnz	loc_B3748

loc_B348E:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+45Cj
		mov	edi, [ebp+s]
		add	esi, 12h
		mov	[ebp+var_44], ecx
		mov	[esp+4], esi	; int
		add	ebx, 1
		mov	[esp], edi	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	ecx, [ebp+var_44]
		mov	edx, eax

loc_B34AB:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+23Fj
					; VOX_LookupRangeHeadingOrGrid(int,char	*,channel_t *,int,char **,char **,char **,int *,bool)+265j
		mov	edi, [ebp+arg_1C]
		cmp	ebx, 2
		mov	[edi], ebx
		jz	loc_B3730
		cmp	ebx, 3
		jz	loc_B35B0
		cmp	ebx, 1
		jz	loc_B33DC
		mov	ecx, [ebp+arg_10]
		mov	dword ptr [ecx], 0

loc_B34D4:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+33Bj
					; VOX_LookupRangeHeadingOrGrid(int,char	*,channel_t *,int,char **,char **,char **,int *,bool)+349j ...
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B34E0:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+16Cj
		test	al, al
		jz	short loc_B3472
		test	edi, edi
		jz	loc_B35D0

loc_B34EC:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+170j
		cmp	ebx, 3
		nop
		jg	short loc_B3508
		test	dl, dl
		jz	short loc_B3508
		test	edi, edi
		jz	short loc_B3508
		lea	eax, [ebx+1Bh]
		mov	[esp+4], eax
		jmp	short loc_B350C
; ---------------------------------------------------------------------------
		align 8

loc_B3508:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+1F0j
					; VOX_LookupRangeHeadingOrGrid(int,char	*,channel_t *,int,char **,char **,char **,int *,bool)+1F4j ...
		mov	[esp+4], ebx	; int

loc_B350C:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+201j
		mov	ecx, [ebp+s]
		mov	byte ptr [ebp+var_48], dl
		mov	[esp], ecx	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		test	edi, edi
		movzx	edx, byte ptr [ebp+var_48]
		mov	[ebp+var_3C], eax
		jnz	loc_B35F8

loc_B3529:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+2FAj
		xor	ecx, ecx
		cmp	esi, 1
		mov	ebx, 1
		jg	loc_B3486

loc_B3539:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+180j
		mov	eax, esi
		xor	edx, edx
		or	eax, edi
		jz	loc_B34AB
		mov	ecx, [ebp+s]
		lea	eax, [esi+esi*4]
		mov	[ebp+var_48], edx
		lea	eax, [edi+eax*2]
		add	ebx, 1
		mov	[esp+4], eax	; int
		mov	[esp], ecx	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	edx, [ebp+var_48]
		mov	ecx, eax
		jmp	loc_B34AB
; ---------------------------------------------------------------------------
		align 10h

loc_B3570:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+CBj
		mov	edi, [ebp+s]
		mov	[esp+4], esi	; int
		mov	[ebp+var_44], eax
		mov	[esp], edi	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		test	ebx, ebx
		mov	ecx, [ebp+var_44]
		mov	edx, eax
		jz	loc_B37F8
		mov	[esp+4], ebx	; int
		mov	[esp], edi	; s
		mov	[ebp+var_48], eax
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	edx, [ebp+var_48]
		mov	ecx, [ebp+var_44]
		mov	[ebp+var_3C], eax

loc_B35A7:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+4F3j
		mov	edi, [ebp+arg_1C]
		mov	dword ptr [edi], 3

loc_B35B0:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+1BCj
		mov	eax, [ebp+var_3C]
		mov	ebx, [ebp+arg_10]
		mov	[ebx], eax
		mov	ebx, [ebp+arg_14]
		mov	eax, [ebp+arg_18]
		mov	[ebx], edx
		mov	[eax], ecx
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B35D0:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+1E6j
		cmp	ebx, 3
		jg	loc_B3768
		mov	ecx, [ebp+s]
		add	ebx, 1Bh
		mov	[esp+4], ebx	; int
		mov	[esp], ecx	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		xor	ecx, ecx
		mov	[ebp+var_3C], eax
		jmp	loc_B33D1
; ---------------------------------------------------------------------------
		align 4

loc_B35F8:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+223j
		test	dl, dl
		jz	loc_B3529
		mov	[esp+4], edi	; int
		mov	edi, [ebp+s]
		mov	[esp], edi	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		cmp	ebx, 3
		mov	ecx, eax
		jg	loc_B37D8
		test	eax, eax
		setnz	bl
		xor	eax, eax
		xor	esi, esi
		xor	edx, edx

loc_B3625:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+4B2j
					; VOX_LookupRangeHeadingOrGrid(int,char	*,channel_t *,int,char **,char **,char **,int *,bool)+506j
		mov	edi, [ebp+arg_1C]
		mov	dword ptr [edi], 2

loc_B362E:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+440j
		test	al, al
		jnz	loc_B3718
		mov	eax, [ebp+var_3C]
		test	eax, eax
		jz	loc_B34D4
		test	bl, bl
		jnz	short loc_B36C0
		mov	eax, esi
		test	al, al
		jz	loc_B34D4
		mov	ecx, [ebp+arg_10]
		mov	eax, [ebp+var_3C]
		mov	[ecx], eax
		mov	ecx, [ebp+arg_14]
		mov	[ecx], edx
		jmp	loc_B34D4
; ---------------------------------------------------------------------------
		align 8

loc_B3668:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+101j
		fstp	st
		fstp	st
		lea	eax, [ebp+var_24]
		mov	[ebp+var_24], 0
		mov	[esp+4], eax
		lea	eax, [ebp+var_30]
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	[esp], eax
		call	_Z12VectorAnglesRK6VectorR6QAngle ; VectorAngles(Vector	 const&,QAngle &)
		cvttss2si ecx, [ebp+var_20]

loc_B3698:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+40Fj
		test	ecx, ecx
		jns	loc_B338A
		xor	edi, edi
		xor	esi, esi
		xor	ebx, ebx
		jmp	loc_B3458
; ---------------------------------------------------------------------------
		align 10h

loc_B36B0:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+DEj
		test	edx, edx
		cmovz	edx, [ebp+var_3C]
		jmp	loc_B33E6
; ---------------------------------------------------------------------------
		align 10h

loc_B36C0:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+343j
		mov	ebx, [ebp+arg_10]
		mov	eax, [ebp+var_3C]
		mov	[ebx], eax
		mov	ebx, [ebp+arg_14]
		mov	[ebx], ecx
		jmp	loc_B34D4
; ---------------------------------------------------------------------------
		align 8

loc_B36D8:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+10Aj
		fstp	st
		fadd	ds:flt_1F05B8
		fld	ds:dbl_1F05B0
		fmulp	st(1), st

loc_B36E8:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+4CEj
		fstp	[ebp+var_50]
		mov	ecx, 66666667h
		cvttsd2si ebx, [ebp+var_50]
		mov	eax, ebx
		imul	ecx
		mov	eax, ebx
		sar	eax, 1Fh
		mov	ecx, edx
		sar	ecx, 3
		sub	ecx, eax
		lea	eax, [ecx+ecx*4]
		mov	ecx, ebx
		shl	eax, 2
		sub	ecx, eax
		jmp	short loc_B3698
; ---------------------------------------------------------------------------
		align 8

loc_B3718:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+330j
		mov	ebx, [ebp+arg_10]
		mov	edi, [ebp+arg_14]
		mov	[ebx], edx
		mov	[edi], ecx
		jmp	loc_B34D4
; ---------------------------------------------------------------------------
		align 10h

loc_B3730:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+1B3j
		test	edx, edx
		setnz	al
		test	ecx, ecx
		setnz	bl
		mov	esi, eax
		mov	eax, ebx
		and	eax, esi
		jmp	loc_B362E
; ---------------------------------------------------------------------------
		align 4

loc_B3748:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+188j
		mov	[esp+4], edi	; int
		mov	edi, [ebp+s]
		add	ebx, 1
		mov	[esp], edi	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	ecx, eax
		jmp	loc_B348E
; ---------------------------------------------------------------------------
		align 8

loc_B3768:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+2D3j
		mov	[esp+4], ebx	; int
		mov	ebx, [ebp+s]
		mov	[esp], ebx	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	[esp], ebx	; s
		mov	[ebp+var_3C], eax
		mov	dword ptr [esp+4], 0 ; int
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 0 ; int
		mov	[ebp+var_48], eax
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	edx, [ebp+var_48]
		mov	ecx, eax
		test	edx, edx
		setnz	al
		test	ecx, ecx
		setnz	bl
		mov	esi, eax
		mov	eax, ebx
		and	eax, esi
		jmp	loc_B3625
; ---------------------------------------------------------------------------
		align 10h

loc_B37C0:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+117j
		fadd	ds:flt_1F05B8
		fld	ds:dbl_1F05B0
		fmulp	st(1), st
		jmp	loc_B36E8
; ---------------------------------------------------------------------------
		align 8

loc_B37D8:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+314j
		mov	ebx, [ebp+s]
		mov	dword ptr [esp+4], 0 ; int
		mov	[ebp+var_44], eax
		mov	[esp], ebx	; s
		call	_Z16VOX_LookupNumberPci	; VOX_LookupNumber(char	*,int)
		mov	ecx, [ebp+var_44]
		mov	edx, eax
		jmp	loc_B35A7
; ---------------------------------------------------------------------------

loc_B37F8:				; CODE XREF: VOX_LookupRangeHeadingOrGrid(int,char *,channel_t *,int,char **,char **,char **,int *,bool)+289j
		test	eax, eax
		setnz	al
		test	ecx, ecx
		setnz	bl
		mov	esi, eax
		and	eax, ebx
		jmp	loc_B3625
_Z28VOX_LookupRangeHeadingOrGridiPcP9channel_tiPS_S2_S2_Pib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupRndVirtual(char *)
_Z20VOX_LookupRndVirtualPc proc	near	; CODE XREF: VOX_LookupGlobalVirtual(int,int,char *,int)+69p
					; VOX_LookupMyVirtual(int,char *,char,int)+5Ep	...

s1		= byte ptr -28h
var_27		= byte ptr -27h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 40h
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	VOX_GroupIndexFromName
		test	eax, eax
		js	short loc_B3893
		lea	esi, [ebp+s1]
		mov	dword ptr [esp+8], 1Fh ; maxlen
		mov	[esp+4], esi	; s
		mov	[esp], eax	; int
		call	VOX_GroupPick
		test	eax, eax
		js	short loc_B3893
		cmp	[ebp+s1], 21h
		lea	eax, [ebp+var_27]
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], 0 ; int
		cmovnz	eax, esi
		mov	[esp], eax	; s1
		call	VOX_LookupString
		test	eax, eax
		mov	ebx, eax
		jz	short loc_B3893
		mov	dword ptr [esp+4], 20h ; c
		mov	[esp], eax	; s
		call	strchr
		test	eax, eax
		jz	short loc_B3893
		mov	byte ptr [eax],	0

loc_B3893:				; CODE XREF: VOX_LookupRndVirtual(char *)+17j
					; VOX_LookupRndVirtual(char *)+32j ...
		add	esp, 40h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z20VOX_LookupRndVirtualPc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupGlobalVirtual(int, int, char *, int)
_Z23VOX_LookupGlobalVirtualiiPci proc near
					; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+67Bp

var_28		= dword	ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, ds:g_pSoundServices
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_C]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	ecx, dword ptr ds:snd_vox_globaltimeout+1Ch
		mov	eax, offset g_entnames
		xor	edx, edx
		jmp	short loc_B38DB
; ---------------------------------------------------------------------------
		align 10h

loc_B38D0:				; CODE XREF: VOX_LookupGlobalVirtual(int,int,char *,int)+3Dj
					; VOX_LookupGlobalVirtual(int,int,char *,int)+4Cj
		add	edx, 1
		add	eax, 68h
		cmp	edx, 40h
		jz	short loc_B3900

loc_B38DB:				; CODE XREF: VOX_LookupGlobalVirtual(int,int,char *,int)+29j
		cmp	[eax], ebx
		jnz	short loc_B38D0
		fld	dword ptr [eax+esi*4+44h]
		fsubr	st, st(1)
		fild	dword ptr [ecx+30h]
		fcomip	st, st(1)
		fstp	st
		jb	short loc_B38D0
		imul	edx, 1Ah
		lea	eax, [esi+edx+4]
		mov	edi, dword ptr ds:g_entnames[eax*4]
		test	edi, edi
		jnz	short loc_B393F

loc_B3900:				; CODE XREF: VOX_LookupGlobalVirtual(int,int,char *,int)+39j
		mov	eax, [ebp+arg_8]
		fstp	[ebp+var_28]
		mov	[esp], eax
		call	_Z20VOX_LookupRndVirtualPc ; VOX_LookupRndVirtual(char *)
		mov	dword ptr [esp+8], 1
		mov	edi, eax
		mov	eax, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z18VOX_LookupEntIndexiib ; VOX_LookupEntIndex(int,int,bool)
		imul	eax, 1Ah
		fld	[ebp+var_28]
		add	esi, eax
		fstp	dword ptr ds:(g_entnames+44h)[esi*4]
		mov	dword ptr ds:(g_entnames+10h)[esi*4], edi
		jmp	short loc_B3941
; ---------------------------------------------------------------------------

loc_B393F:				; CODE XREF: VOX_LookupGlobalVirtual(int,int,char *,int)+5Ej
		fstp	st

loc_B3941:				; CODE XREF: VOX_LookupGlobalVirtual(int,int,char *,int)+9Dj
		add	esp, 2Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z23VOX_LookupGlobalVirtualiiPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_LookupMyVirtual(int, char	*, char, int)
_Z19VOX_LookupMyVirtualiPcci proc near	; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+18Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		movsx	eax, [ebp+arg_8]
		mov	dword ptr [esp+8], 1
		mov	edx, [ebp+arg_C]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z18VOX_LookupEntIndexiib ; VOX_LookupEntIndex(int,int,bool)
		imul	ebx, eax, 68h
		cmp	[ebp+arg_0], 1
		jz	short loc_B3998
		mov	eax, dword ptr ds:(g_entnames+0Ch)[ebx]
		add	ebx, (offset g_entnames+0Ch)
		test	eax, eax
		jz	short loc_B39A8

loc_B398B:				; CODE XREF: VOX_LookupMyVirtual(int,char *,char,int)+56j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B3998:				; CODE XREF: VOX_LookupMyVirtual(int,char *,char,int)+29j
		mov	eax, dword ptr ds:(g_entnames+8)[ebx]
		add	ebx, (offset g_entnames+8)
		test	eax, eax
		jnz	short loc_B398B

loc_B39A8:				; CODE XREF: VOX_LookupMyVirtual(int,char *,char,int)+39j
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z20VOX_LookupRndVirtualPc ; VOX_LookupRndVirtual(char *)
		mov	[ebx], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z19VOX_LookupMyVirtualiPcci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_ReplaceVirtualNames(channel_t *)
_Z23VOX_ReplaceVirtualNamesP9channel_t proc near

var_178		= dword	ptr -178h
haystack	= dword	ptr -174h
var_16D		= byte ptr -16Dh
var_16C		= dword	ptr -16Ch
s		= byte ptr -168h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_5F		= byte ptr -5Fh
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 19Ch
		mov	[ebp+var_28], 0
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_16C], 0
		test	edx, edx
		jz	short loc_B3A08
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0A4h]
		mov	[ebp+var_16C], eax

loc_B3A08:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+37j
		test	ds:host_map+15h, 10h
		mov	[ebp+haystack],	offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jnz	short loc_B3A3D
		mov	eax, dword ptr ds:host_map+1Ch
		mov	eax, [eax+24h]
		mov	[ebp+haystack],	eax
		test	eax, eax
		mov	eax, (offset asc_20E578+4)
		cmovnz	eax, [ebp+haystack]
		mov	[ebp+haystack],	eax

loc_B3A3D:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+59j
		mov	ebx, dword ptr ds:_ZL12rgpparseword ; rgpparseword
		test	ebx, ebx
		jz	loc_B3B8E
		lea	edi, [ebp+s]
		xor	esi, esi
		jmp	short loc_B3A6A
; ---------------------------------------------------------------------------
		align 4

loc_B3A58:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+ADj
					; VOX_ReplaceVirtualNames(channel_t *)+B3j
		add	esi, 1
		mov	ebx, dword ptr ds:_ZL12rgpparseword[esi*4] ; rgpparseword
		test	ebx, ebx
		jz	loc_B3B8E

loc_B3A6A:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+93j
					; VOX_ReplaceVirtualNames(channel_t *)+1C8j
		cmp	byte ptr [ebx],	56h
		jnz	short loc_B3A58
		cmp	byte ptr [ebx+1], 5Fh
		jnz	short loc_B3A58
		mov	[esp], ebx	; s
		mov	[ebp+var_1C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		call	strlen
		movzx	eax, byte ptr [ebx+eax-1]
		mov	[esp+4], ebx	; src
		mov	[esp], edi	; dest
		mov	[ebp+var_16D], al
		call	strcpy
		mov	dword ptr [esp+4], offset a_map__ ; "_MAP__"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		mov	ebx, eax
		jz	short loc_B3B11
		mov	eax, [ebp+haystack]
		mov	[esp], eax	; haystack
		call	_Z19VOX_GetMapNameIndexPKc ; VOX_GetMapNameIndex(char  const*)
		mov	byte ptr [ebx+4], 30h
		test	eax, eax
		js	loc_B3BD0
		cmp	eax, 63h
		jg	loc_B3BA0
		cmp	eax, 9
		jg	loc_B3BA5

loc_B3AF2:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+212j
		add	ebx, 5
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset a1d ;	"%1d"
		mov	dword ptr [esp+4], 1 ; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_B3B11:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+104j
					; VOX_ReplaceVirtualNames(channel_t *)+204j
		mov	dword ptr [esp+4], offset aV_myname ; "V_MYNAME"
		mov	[esp], edi	; haystack
		call	strstr
		mov	edx, 1
		test	eax, eax
		jz	loc_B3BE0

loc_B3B2E:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+236j
		mov	eax, [ebp+var_16C]
		mov	[esp], edx
		mov	[esp+4], edi
		mov	[esp+0Ch], eax
		movsx	eax, [ebp+var_16D]
		mov	[esp+8], eax
		call	_Z19VOX_LookupMyVirtualiPcci ; VOX_LookupMyVirtual(int,char *,char,int)
		mov	edx, [ebp+var_24]
		mov	[ebp+var_1C], 1
		mov	[ebp+var_28], eax
		mov	ecx, 1

loc_B3B61:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+269j
					; VOX_ReplaceVirtualNames(channel_t *)+2D0j ...
		mov	ebx, [ebp+var_20]
		mov	[esp], esi
		add	esi, 1
		mov	[esp+0Ch], edx
		mov	[esp+8], eax
		mov	[esp+4], ecx
		mov	[esp+10h], ebx
		call	_Z15VOX_InsertWordsiiPcS_S_ ; VOX_InsertWords(int,int,char *,char *,char *)
		mov	ebx, dword ptr ds:_ZL12rgpparseword[esi*4] ; rgpparseword
		test	ebx, ebx
		jnz	loc_B3A6A

loc_B3B8E:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+85j
					; VOX_ReplaceVirtualNames(channel_t *)+A4j
		add	esp, 19Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B3BA0:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+123j
		mov	eax, 63h

loc_B3BA5:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+12Cj
		add	ebx, 4
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], (offset aD_1+1) ; format
		mov	dword ptr [esp+4], 2 ; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_B3B11
; ---------------------------------------------------------------------------
		align 10h

loc_B3BD0:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+11Aj
		xor	eax, eax
		jmp	loc_B3AF2
; ---------------------------------------------------------------------------
		align 10h

loc_B3BE0:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+168j
		mov	dword ptr [esp+4], offset aV_mynum ; "V_MYNUM"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B3BFB
		xor	edx, edx
		jmp	loc_B3B2E
; ---------------------------------------------------------------------------

loc_B3BFB:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+232j
		mov	dword ptr [esp+4], offset aV_rnd ; "V_RND"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B3C2E
		mov	[esp], edi
		call	_Z20VOX_LookupRndVirtualPc ; VOX_LookupRndVirtual(char *)
		mov	[ebp+var_1C], 1
		mov	edx, [ebp+var_24]
		mov	[ebp+var_28], eax
		mov	ecx, 1
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B3C2E:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+24Dj
		mov	dword ptr [esp+4], offset aV_dist ; "V_DIST"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B3C98
		lea	eax, [ebp+var_1C]
		mov	dword ptr [esp+20h], 1 ; char
		mov	[esp+1Ch], eax	; int
		lea	eax, [ebp+var_20]
		mov	[esp+18h], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_28]
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+var_16C]
		mov	[esp+4], edi	; s
		mov	dword ptr [esp], 0 ; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp+8], eax	; int
		call	_Z28VOX_LookupRangeHeadingOrGridiPcP9channel_tiPS_S2_S2_Pib ; VOX_LookupRangeHeadingOrGrid(int,char *,channel_t	*,int,char **,char **,char **,int *,bool)
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_1C]
		jmp	loc_B3B61
; ---------------------------------------------------------------------------
		align 4

loc_B3C98:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+280j
		mov	dword ptr [esp+4], offset aV_dir ; "V_DIR"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B3CFF
		lea	eax, [ebp+var_1C]
		mov	dword ptr [esp+20h], 0 ; char
		mov	[esp+1Ch], eax	; int
		lea	eax, [ebp+var_20]
		mov	[esp+18h], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_28]
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+var_16C]
		mov	[esp+4], edi	; s
		mov	dword ptr [esp], 1 ; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp+8], eax	; int
		call	_Z28VOX_LookupRangeHeadingOrGridiPcP9channel_tiPS_S2_S2_Pib ; VOX_LookupRangeHeadingOrGrid(int,char *,channel_t	*,int,char **,char **,char **,int *,bool)
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_1C]
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B3CFF:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+2EAj
		mov	dword ptr [esp+4], offset aV_idied ; "V_IDIED"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B3D7D
		movsx	edx, [ebp+var_16D]
		mov	dword ptr [esp+8], 0
		mov	eax, [ebp+var_16C]
		mov	[esp], edx
		mov	[ebp+var_178], edx
		mov	[esp+4], eax
		call	_Z18VOX_LookupEntIndexiib ; VOX_LookupEntIndex(int,int,bool)
		mov	edx, [ebp+var_178]
		test	eax, eax
		mov	ebx, eax
		js	loc_B3E13

loc_B3D4A:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+4E2j
		mov	eax, ds:g_pSoundServices
		imul	ebx, 68h
		mov	ds:(g_entnames+30h)[ebx], 1
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		fstp	dword ptr ds:(g_entnames+64h)[ebx]

loc_B3D67:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+417j
		mov	[esp], esi
		call	_Z14VOX_DeleteWordi ; VOX_DeleteWord(int)
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_1C]
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B3D7D:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+351j
		mov	dword ptr [esp+4], offset aV_whodied ; "V_WHODIED"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	loc_B3EA7
		fld1
		movsx	ecx, [ebp+var_16D]
		mov	eax, offset g_entnames
		fchs
		mov	ebx, 0FFFFFFFFh
		xor	edx, edx
		jmp	short loc_B3DBB
; ---------------------------------------------------------------------------

loc_B3DAE:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+40Aj
		fstp	st

loc_B3DB0:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+3FDj
					; VOX_ReplaceVirtualNames(channel_t *)+403j ...
		add	edx, 1
		add	eax, 68h
		cmp	edx, 40h
		jz	short loc_B3DD2

loc_B3DBB:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+3ECj
		cmp	ecx, [eax]
		jnz	short loc_B3DB0
		cmp	byte ptr [eax+30h], 0
		jz	short loc_B3DB0
		fld	dword ptr [eax+64h]
		fcomi	st, st(1)
		jb	short loc_B3DAE
		fstp	st(1)
		mov	ebx, edx
		jmp	short loc_B3DB0
; ---------------------------------------------------------------------------

loc_B3DD2:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+3F9j
		fstp	st
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_B3D67
		imul	edx, ebx, 68h
		mov	[ebp+var_1C], 1
		mov	ecx, 1
		mov	eax, dword ptr ds:(g_entnames+8)[edx]
		add	edx, offset g_entnames
		mov	edx, [edx+0Ch]
		mov	[ebp+var_28], eax
		test	edx, edx
		mov	[ebp+var_24], edx
		jz	loc_B3B61
		mov	[ebp+var_1C], 2
		mov	cl, 2
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B3E13:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+384j
		movzx	eax, [ebp+var_16D]
		lea	ecx, [ebp+var_68]
		mov	[esp], edx
		mov	[ebp+var_44], 4D554Eh
		mov	[ebp+var_178], ecx
		mov	[ebp+var_68], 594D5F56h
		mov	[ebp+var_60], al
		mov	byte ptr [ebp+var_44+3], al
		mov	eax, [ebp+var_16C]
		mov	[ebp+var_64], 454D414Eh
		mov	[ebp+var_5F], 0
		mov	[ebp+var_48], 594D5F56h
		mov	[ebp+var_40], 0
		mov	dword ptr [esp+8], 1
		mov	[esp+4], eax
		call	_Z18VOX_LookupEntIndexiib ; VOX_LookupEntIndex(int,int,bool)
		mov	ecx, [ebp+var_178]
		mov	ebx, eax
		mov	[esp], ecx
		call	_Z20VOX_LookupRndVirtualPc ; VOX_LookupRndVirtual(char *)
		mov	edx, eax
		imul	eax, ebx, 68h
		lea	ecx, g_entnames[eax]
		mov	dword ptr ds:(g_entnames+8)[eax], edx
		lea	eax, [ebp+var_48]
		mov	[ebp+var_178], ecx
		mov	[esp], eax
		call	_Z20VOX_LookupRndVirtualPc ; VOX_LookupRndVirtual(char *)
		mov	ecx, [ebp+var_178]
		mov	[ecx+0Ch], eax
		jmp	loc_B3D4A
; ---------------------------------------------------------------------------

loc_B3EA7:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+3CFj
		mov	dword ptr [esp+4], offset aV_sector ; "V_SECTOR"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B3EE2
		mov	[esp], edi	; s
		call	_Z23VOX_LookupSectorVirtualPc ;	VOX_LookupSectorVirtual(char *)
		test	eax, eax
		mov	[ebp+var_28], eax
		jz	loc_B3F95

loc_B3ECE:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+5CFj
					; VOX_ReplaceVirtualNames(channel_t *)+685j
		mov	[ebp+var_1C], 1
		mov	edx, [ebp+var_24]
		mov	ecx, 1
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B3EE2:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+4F9j
		mov	dword ptr [esp+4], offset aV_gridx ; "V_GRIDX"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	loc_B3FA0
		lea	eax, [ebp+var_1C]
		mov	dword ptr [esp+20h], 1 ; char
		mov	[esp+1Ch], eax	; int
		lea	eax, [ebp+var_20]
		mov	[esp+18h], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_28]
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+var_16C]
		mov	[esp+4], edi	; s
		mov	dword ptr [esp], 2 ; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp+8], eax	; int
		call	_Z28VOX_LookupRangeHeadingOrGridiPcP9channel_tiPS_S2_S2_Pib ; VOX_LookupRangeHeadingOrGrid(int,char *,channel_t	*,int,char **,char **,char **,int *,bool)
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_1C]
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B3F4D:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+6DEj
		mov	dword ptr [esp+4], offset aV_seqg0_ ; "V_SEQG0_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	loc_B40B1
		mov	dword ptr [esp+0Ch], 0

loc_B3F6D:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+70Dj
					; VOX_ReplaceVirtualNames(channel_t *)+72Ej ...
		mov	eax, [ebp+var_16C]
		mov	[esp+8], edi
		mov	[esp+4], eax
		movsx	eax, [ebp+var_16D]
		mov	[esp], eax
		call	_Z26VOX_LookupGlobalSeqVirtualiiPci ; VOX_LookupGlobalSeqVirtual(int,int,char *,int)
		test	eax, eax
		mov	[ebp+var_28], eax
		jnz	loc_B3ECE

loc_B3F95:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+508j
					; VOX_ReplaceVirtualNames(channel_t *)+68Bj
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_1C]
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B3FA0:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+534j
		mov	dword ptr [esp+4], offset aV_gridy ; "V_GRIDY"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B4007
		lea	eax, [ebp+var_1C]
		mov	dword ptr [esp+20h], 1 ; char
		mov	[esp+1Ch], eax	; int
		lea	eax, [ebp+var_20]
		mov	[esp+18h], eax	; int
		lea	eax, [ebp+var_24]
		mov	[esp+14h], eax	; int
		lea	eax, [ebp+var_28]
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+var_16C]
		mov	[esp+4], edi	; s
		mov	dword ptr [esp], 3 ; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp+8], eax	; int
		call	_Z28VOX_LookupRangeHeadingOrGridiPcP9channel_tiPS_S2_S2_Pib ; VOX_LookupRangeHeadingOrGrid(int,char *,channel_t	*,int,char **,char **,char **,int *,bool)
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_1C]
		jmp	loc_B3B61
; ---------------------------------------------------------------------------

loc_B4007:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+5F2j
		mov	dword ptr [esp+4], offset aV_g0_ ; "V_G0_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B4050
		mov	dword ptr [esp+0Ch], 0

loc_B4023:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+6ACj
					; VOX_ReplaceVirtualNames(channel_t *)+6CAj ...
		mov	eax, [ebp+var_16C]
		mov	[esp+8], edi
		mov	[esp+4], eax
		movsx	eax, [ebp+var_16D]
		mov	[esp], eax
		call	_Z23VOX_LookupGlobalVirtualiiPci ; VOX_LookupGlobalVirtual(int,int,char	*,int)
		test	eax, eax
		mov	[ebp+var_28], eax
		jnz	loc_B3ECE
		jmp	loc_B3F95
; ---------------------------------------------------------------------------

loc_B4050:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+659j
		mov	dword ptr [esp+4], offset aV_g1_ ; "V_G1_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B406E
		mov	dword ptr [esp+0Ch], 1
		jmp	short loc_B4023
; ---------------------------------------------------------------------------

loc_B406E:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+6A2j
		mov	dword ptr [esp+4], offset aV_g2_ ; "V_G2_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B408C
		mov	dword ptr [esp+0Ch], 2
		jmp	short loc_B4023
; ---------------------------------------------------------------------------

loc_B408C:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+6C0j
		mov	dword ptr [esp+4], offset aV_g3_ ; "V_G3_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	loc_B3F4D
		mov	dword ptr [esp+0Ch], 3
		jmp	loc_B4023
; ---------------------------------------------------------------------------

loc_B40B1:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+59Fj
		mov	dword ptr [esp+4], offset aV_seqg1_ ; "V_SEQG1_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B40D2
		mov	dword ptr [esp+0Ch], 1
		jmp	loc_B3F6D
; ---------------------------------------------------------------------------

loc_B40D2:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+703j
		mov	dword ptr [esp+4], offset aV_seqg2_ ; "V_SEQG2_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B40F3
		mov	dword ptr [esp+0Ch], 2
		jmp	loc_B3F6D
; ---------------------------------------------------------------------------

loc_B40F3:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+724j
		mov	dword ptr [esp+4], offset aV_seqg3_ ; "V_SEQG3_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B4114
		mov	dword ptr [esp+0Ch], 3
		jmp	loc_B3F6D
; ---------------------------------------------------------------------------

loc_B4114:				; CODE XREF: VOX_ReplaceVirtualNames(channel_t *)+745j
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_1C]
		jmp	loc_B3B61
_Z23VOX_ReplaceVirtualNamesP9channel_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_SentenceNameFromIndex proc near	; CODE XREF: CVEngineServer::SentenceNameFromIndex(int)+Aj

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		cmp	dword ptr ds:g_Sentences+0Ch, edx
		jle	short loc_B414E
		mov	ecx, dword ptr ds:g_Sentences
		lea	eax, [edx+edx*2]
		lea	eax, [ecx+eax*4]
		mov	eax, [eax]

loc_B414E:				; CODE XREF: VOX_SentenceNameFromIndex+Ej
		pop	ebp
		retn
VOX_SentenceNameFromIndex endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_TouchSounds(CUtlDict<int,	int> &,	CUtlRBTree<ccpair, int,	bool (*)(ccpair	const&,	ccpair const&),	CUtlMemory<UtlRBTreeNode_t<ccpair, int>, int>> &, bool)
_Z15VOX_TouchSoundsR8CUtlDictIiiER10CUtlRBTreeI6ccpairiPFbRKS3_S5_E10CUtlMemoryI15UtlRBTreeNode_tIS3_iEiEEb proc near
					; CODE XREF: VOX_AddSentenceWavesToResList(void)+1A0p

var_21C		= dword	ptr -21Ch
s		= byte ptr -218h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 22Ch
		movzx	edx, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		mov	byte ptr [ebp+var_21C],	dl
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	ebx, [esi+10h]
		test	dl, dl
		jz	short loc_B41C0
		mov	esi, esi
		lea	edi, [edi+0]

loc_B4180:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+6Ej
					; VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+7Ej ...
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B4193
		mov	ecx, [esi+4]
		lea	eax, [ebx+ebx*2]
		lea	eax, [ecx+eax*8]

loc_B4193:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+38j
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	loc_B4220
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	dl, dl
		jz	short loc_B4200

loc_B41A7:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+CBj
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B41BA
		lea	eax, [ebx+ebx*2]
		mov	ebx, [esi+4]
		lea	eax, [ebx+eax*8]

loc_B41BA:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+5Fj
		test	dl, dl
		mov	ebx, [eax]
		jnz	short loc_B4180

loc_B41C0:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+25j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B4180
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B4180
; ---------------------------------------------------------------------------
		align 10h

loc_B4200:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+55j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B42C0

loc_B4214:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+19Aj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	short loc_B41A7
; ---------------------------------------------------------------------------
		align 10h

loc_B4220:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+46j
		cmp	ebx, 0FFFFFFFFh
		jz	loc_B42AA
		lea	edi, [ebp+s]
		nop

loc_B4230:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+158j
		mov	edx, [esi+4]
		lea	eax, [ebx+ebx*2]
		lea	eax, [edx+eax*8]
		mov	eax, [eax+10h]
		mov	dword ptr [esp+8], offset aSoundS ; "sound/%s"
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	[esp], edi	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset modes	; "rb"
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		jz	short loc_B4297
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]

loc_B4297:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+12Fj
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_ZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11NextInorderEi ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)
		cmp	eax, 0FFFFFFFFh
		mov	ebx, eax
		jnz	short loc_B4230

loc_B42AA:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+D3j
		cmp	byte ptr [ebp+var_21C],	0
		jnz	short loc_B42F0

loc_B42B3:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+222j
		add	esp, 22Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B42C0:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+BEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B4214
; ---------------------------------------------------------------------------
		align 10h

loc_B42F0:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+161j
		mov	ecx, [ebp+arg_4]
		mov	[esp], ecx
		call	_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE12FirstInorderEv ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)
		cmp	eax, 0FFFFFFFFh
		mov	ebx, eax
		jz	short loc_B4341
		mov	esi, [ebp+arg_4]
		lea	esi, [esi+0]

loc_B4308:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+1EFj
		imul	edx, ebx, 310h
		add	edx, [esi+4]
		mov	dword ptr [esp], offset	aSS_4 ;	"\"%s\"\t\"%s\"\n"
		lea	eax, [edx+10h]
		add	edx, 110h
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	Msg
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE11NextInorderEi ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)
		cmp	eax, 0FFFFFFFFh
		mov	ebx, eax
		jnz	short loc_B4308

loc_B4341:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+1B0j
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], offset aGame_1 ; "GAME"
		mov	dword ptr [esp+8], offset aWt ;	"wt"
		mov	dword ptr [esp+4], offset aSentences_m3u ; "sentences.m3u"
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	[ebp+var_21C], eax
		jz	loc_B42B3
		mov	esi, [ebp+arg_4]
		mov	[esp], esi
		call	_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE12FirstInorderEv ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)
		cmp	eax, 0FFFFFFFFh
		mov	ebx, eax
		jz	loc_B4435
		lea	edi, [ebp+s]
		lea	esi, [esi+0]

loc_B4398:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+2DFj
		mov	edx, [ebp+arg_4]
		imul	eax, ebx, 310h
		add	eax, [edx+4]
		mov	dword ptr [esp+8], offset off_20DC96 ; format
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	[esp], edi	; s
		add	eax, 210h
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	esi, ds:g_pFileSystem
		mov	edx, edi

loc_B43CD:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+291j
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_B43CD
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		mov	ecx, [esi+4]
		add	al, al
		mov	[esp+4], edi
		lea	eax, [esi+4]
		mov	esi, [ebp+var_21C]
		sbb	edx, 3
		sub	edx, edi
		mov	[esp], eax
		mov	[esp+8], edx
		mov	[esp+0Ch], esi
		call	dword ptr [ecx+4]
		mov	edx, [ebp+arg_4]
		mov	[esp+4], ebx
		mov	[esp], edx
		call	_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE11NextInorderEi ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)
		cmp	eax, 0FFFFFFFFh
		mov	ebx, eax
		jnz	loc_B4398

loc_B4435:				; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+238j
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_21C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		add	esp, 22Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z15VOX_TouchSoundsR8CUtlDictIiiER10CUtlRBTreeI6ccpairiPFbRKS3_S5_E10CUtlMemoryI15UtlRBTreeNode_tIS3_iEiEEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_AddRndVirtual(char *, CUtlVector<WordBuf,	CUtlMemory<WordBuf, int>> &)
_Z17VOX_AddRndVirtualPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE proc near
					; CODE XREF: VOX_AddMyVirtualWords(int,char *,char,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+10j
					; VOX_BuildVirtualNameList(char	*,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+115p

arg		= byte ptr -148h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
s1		= dword	ptr -13Ch
src		= byte ptr -138h
s		= byte ptr -38h
var_37		= byte ptr -37h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 15Ch
		mov	eax, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	[esp], eax
		call	VOX_GroupIndexFromName
		test	eax, eax
		js	loc_B45C9
		lea	eax, [eax+eax*2]
		add	eax, eax
		mov	[ebp+var_144], eax
		add	eax, dword ptr ds:g_SentenceGroups
		mov	[esp], eax
		call	_ZNK15sentencegroup_t9GroupNameEv ; sentencegroup_t::GroupName(void)
		mov	edx, [ebp+var_144]
		mov	dword ptr [ebp+arg], eax
		mov	eax, dword ptr ds:g_SentenceGroups
		cmp	word ptr [eax+edx], 0
		jle	loc_B45C9
		lea	edx, [ebp+s]
		xor	esi, esi
		mov	[ebp+s1], edx
		lea	edx, [ebp+var_37]
		mov	[ebp+var_140], edx
		lea	ebx, [ebp+src]
		lea	esi, [esi+0]

loc_B44D8:				; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+163j
		mov	eax, dword ptr [ebp+arg]
		lea	edx, [ebp+s]
		mov	[esp+10h], esi
		mov	[esp], edx	; s
		mov	dword ptr [esp+8], (offset aSD+1) ; format
		mov	dword ptr [esp+4], 20h ; maxlen
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		cmp	[ebp+s], 21h
		mov	dword ptr [esp+10h], 0 ; int
		mov	eax, [ebp+var_140]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], 0 ; int
		cmovnz	eax, [ebp+s1]
		mov	[esp], eax	; s1
		call	VOX_LookupString
		test	eax, eax
		jz	short loc_B45AF
		mov	[ebp+src], 0
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_B4559:				; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+180j
		mov	edx, ebx

loc_B455B:				; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+10Fj
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_B455B
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		sbb	edx, 3
		sub	edx, ebx
		test	edx, edx
		jle	short loc_B459C
		sub	edx, 1
		cmp	[ebp+edx+src], 20h
		jz	short loc_B45D8

loc_B459C:				; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+12Dj
		mov	[esp+8], ebx	; src
		mov	eax, [edi+0Ch]
		mov	[esp], edi	; int
		mov	[esp+4], eax	; int
		call	_ZN10CUtlVectorI7WordBuf10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)

loc_B45AF:				; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+DCj
		mov	eax, dword ptr ds:g_SentenceGroups
		add	esi, 1
		mov	edx, [ebp+var_144]
		movsx	eax, word ptr [eax+edx]
		cmp	eax, esi
		jg	loc_B44D8

loc_B45C9:				; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+1Cj
					; VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+51j
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B45D8:				; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+13Aj
		mov	[ebp+edx+src], 0
		jmp	loc_B4559
_Z17VOX_AddRndVirtualPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_AddMyVirtualWords(int, char *, char, CUtlVector<WordBuf, CUtlMemory<WordBuf, int>> &)
_Z21VOX_AddMyVirtualWordsiPccR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_C]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		pop	ebp
		jmp	_Z17VOX_AddRndVirtualPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ; VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>	&)
_Z21VOX_AddMyVirtualWordsiPccR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_AddNumbers(char *s, int)
_Z14VOX_AddNumbersPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE proc near
					; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+21Bp

src		= byte ptr -128h
var_28		= byte ptr -28h
var_1F		= byte ptr -1Fh
var_1E		= byte ptr -1Eh
s		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		lea	esi, [ebp+var_28]
		push	ebx
		lea	ebx, [ebp+src]
		sub	esp, 12Ch
		mov	esi, esi
		lea	edi, [edi+0]

loc_B4630:				; CODE XREF: VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+E3j
		mov	edx, [ebp+s]
		mov	[esp], edx	; s
		call	strlen
		mov	edx, [ebp+s]
		mov	word ptr [esi+8], 53h
		mov	dword ptr [esi], 554E5F56h
		mov	dword ptr [esi+4], 5245424Dh
		mov	[ebp+var_1E], 0
		movzx	eax, byte ptr [edx+eax-1]
		mov	[ebp+src], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[ebp+var_1F], al
		call	_Z25VOX_LookupSentenceByIndexPciPi ; VOX_LookupSentenceByIndex(char *,int,int *)
		test	eax, eax
		jz	loc_B4718
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_B4694:				; CODE XREF: VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+100j
		mov	edx, ebx

loc_B4696:				; CODE XREF: VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+9Aj
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_B4696
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		sbb	edx, 3
		sub	edx, ebx
		test	edx, edx
		jle	short loc_B46D7
		sub	edx, 1
		cmp	[ebp+edx+src], 20h
		jz	short loc_B4708

loc_B46D7:				; CODE XREF: VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+B8j
					; VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+10Fj
		mov	edx, [ebp+arg_4]
		mov	[esp+8], ebx	; src
		add	edi, 1
		mov	eax, [edx+0Ch]
		mov	[esp], edx	; int
		mov	[esp+4], eax	; int
		call	_ZN10CUtlVectorI7WordBuf10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)
		cmp	edi, 1Fh
		jnz	loc_B4630
		add	esp, 12Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B4708:				; CODE XREF: VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+C5j
		mov	[ebp+edx+src], 0
		jmp	short loc_B4694
; ---------------------------------------------------------------------------
		align 8

loc_B4718:				; CODE XREF: VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+6Aj
		mov	[ebp+src], 0
		jmp	short loc_B46D7
_Z14VOX_AddNumbersPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE endp

; ---------------------------------------------------------------------------
		jmp	short _ZL24VOX_BuildVirtualNameListPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ; VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_BuildVirtualNameList(char	*, CUtlVector<WordBuf, CUtlMemory<WordBuf, int>> &)
_ZL24VOX_BuildVirtualNameListPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE proc near
					; CODE XREF: .text:000B4721j
					; VOX_BuildVirtualNameList(char	*,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+A9p ...

s		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
src		= byte ptr -238h
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= byte ptr -130h
var_12F		= byte ptr -12Fh
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+src]
		push	ebx
		mov	ebx, eax
		sub	esp, 24Ch
		mov	[ebp+var_23C], edx
		mov	[esp], eax	; s
		call	strlen
		movzx	eax, byte ptr [ebx+eax-1]
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], ebx	; src
		mov	[esp], edi	; dest
		mov	byte ptr [ebp+var_240],	al
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], offset a_map__ ; "_MAP__"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		mov	esi, eax
		jz	loc_B4820
		mov	eax, ds:_ZL11g_cmapnames ; g_cmapnames
		test	eax, eax
		jle	loc_B48E3
		lea	eax, [esi+4]
		xor	ebx, ebx
		lea	edx, [esi+5]
		mov	[ebp+var_240], eax
		mov	[ebp+s], edx
		jmp	short loc_B47EA
; ---------------------------------------------------------------------------
		align 10h

loc_B47B0:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+C5j
		mov	eax, [ebp+s]
		mov	dword ptr [esp+8], offset a1d ;	"%1d"
		mov	dword ptr [esp+4], 1 ; maxlen
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_B47CE:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+E5j
		mov	edx, [ebp+var_23C]
		mov	eax, edi
		add	ebx, 1
		call	_ZL24VOX_BuildVirtualNameListPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ; VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)
		cmp	ds:_ZL11g_cmapnames, ebx ; g_cmapnames
		jle	loc_B48E3

loc_B47EA:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+7Cj
		cmp	ebx, 9
		mov	byte ptr [esi+4], 30h
		mov	[esp+0Ch], ebx	; arg
		jle	short loc_B47B0
		mov	edx, [ebp+var_240]
		mov	dword ptr [esp+8], (offset aD_1+1) ; format
		mov	dword ptr [esp+4], 2 ; maxlen
		mov	[esp], edx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	short loc_B47CE
; ---------------------------------------------------------------------------
		align 10h

loc_B4820:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+55j
		mov	dword ptr [esp+4], offset aV_myname ; "V_MYNAME"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	loc_B48FA

loc_B4838:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+1DCj
					; VOX_BuildVirtualNameList(char	*,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+1F4j ...
		mov	edx, [ebp+var_23C]
		mov	[esp], edi
		mov	[esp+4], edx
		call	_Z17VOX_AddRndVirtualPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ; VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>	&)

loc_B484A:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+220j
					; VOX_BuildVirtualNameList(char	*,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+2C0j ...
		mov	dword ptr [esp+8], 2
		mov	dword ptr [esp+4], offset aV_ ;	"V_"
		mov	[esp], edi
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jz	short loc_B48E3
		lea	ebx, [ebp+var_138]
		mov	byte ptr [ebp+var_138],	0
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], edi	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_B4887:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+1C8j
		mov	edx, ebx

loc_B4889:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+16Dj
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_B4889
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		sbb	edx, 3
		sub	edx, ebx
		test	edx, edx
		jle	short loc_B48CA
		sub	edx, 1
		cmp	byte ptr [ebp+edx+var_138], 20h
		jz	short loc_B48F0

loc_B48CA:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+18Bj
		mov	edx, [ebp+var_23C]
		mov	[esp+8], ebx	; src
		mov	eax, [edx+0Ch]
		mov	[esp], edx	; int
		mov	[esp+4], eax	; int
		call	_ZN10CUtlVectorI7WordBuf10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)

loc_B48E3:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+62j
					; VOX_BuildVirtualNameList(char	*,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+B4j ...
		add	esp, 24Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B48F0:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+198j
		mov	byte ptr [ebp+edx+var_138], 0
		jmp	short loc_B4887
; ---------------------------------------------------------------------------

loc_B48FA:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+102j
		mov	dword ptr [esp+4], offset aV_mynum ; "V_MYNUM"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_rnd ; "V_RND"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_dist ; "V_DIST"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B4955

loc_B493E:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+237j
					; VOX_BuildVirtualNameList(char	*,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+2D8j ...
		mov	edx, [ebp+var_23C]
		mov	[esp], edi	; s
		mov	[esp+4], edx	; int
		call	_Z14VOX_AddNumbersPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ;	VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)
		jmp	loc_B484A
; ---------------------------------------------------------------------------

loc_B4955:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+20Cj
		mov	dword ptr [esp+4], offset aV_dir ; "V_DIR"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	short loc_B493E
		mov	dword ptr [esp+4], offset aV_idied ; "V_IDIED"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_B49DE
		movzx	edx, byte ptr [ebp+var_240]
		lea	eax, [ebp+var_138]
		mov	[ebp+var_30], 0
		mov	[ebp+var_34], 4D554Eh
		mov	[ebp+var_138], 594D5F56h
		mov	[ebp+var_134], 454D414Eh
		mov	[ebp+var_130], dl
		mov	byte ptr [ebp+var_34+3], dl
		mov	edx, [ebp+var_23C]
		mov	[ebp+var_12F], 0
		mov	[ebp+var_38], 594D5F56h
		call	_ZL24VOX_BuildVirtualNameListPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ; VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)
		mov	edx, [ebp+var_23C]
		lea	eax, [ebp+var_38]
		call	_ZL24VOX_BuildVirtualNameListPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ; VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)
		jmp	loc_B48E3
; ---------------------------------------------------------------------------

loc_B49DE:				; CODE XREF: VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+24Bj
		mov	dword ptr [esp+4], offset aV_whodied ; "V_WHODIED"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B484A
		mov	dword ptr [esp+4], offset aV_sector ; "V_SECTOR"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B493E
		mov	dword ptr [esp+4], offset aV_gridx ; "V_GRIDX"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B493E
		mov	dword ptr [esp+4], offset aV_gridy ; "V_GRIDY"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B493E
		mov	dword ptr [esp+4], offset aV_g0_ ; "V_G0_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_g1_ ; "V_G1_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_g2_ ; "V_G2_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_g3_ ; "V_G3_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_seqg0_ ; "V_SEQG0_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_seqg1_ ; "V_SEQG1_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_seqg2_ ; "V_SEQG2_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		mov	dword ptr [esp+4], offset aV_seqg3_ ; "V_SEQG3_"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_B4838
		jmp	loc_B484A
_ZL24VOX_BuildVirtualNameListPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_Precache(int,	int, char *src)
_Z12VOX_PrecacheP12IEngineSoundiPKc proc near ;	CODE XREF: VOX_PrecacheSentenceGroup+7Bp

var_94C		= dword	ptr -94Ch
var_948		= dword	ptr -948h
var_944		= dword	ptr -944h
var_940		= dword	ptr -940h
var_93C		= dword	ptr -93Ch
var_934		= dword	ptr -934h
dest		= byte ptr -4B4h
arg		= byte ptr -2B4h
s		= byte ptr -1B0h
var_AC		= dword	ptr -0ACh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
src		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 96Ch
		mov	eax, [ebp+arg_4]
		mov	ecx, dword ptr ds:g_Sentences
		mov	ebx, [ebp+src]
		lea	edx, [eax+eax*2]
		lea	edx, [ecx+edx*4]
		mov	eax, [edx]
		cmp	byte ptr [eax],	56h
		jz	loc_B4D8B

loc_B4B39:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+27Fj
		or	byte ptr [edx+8], 80h

loc_B4B3D:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+285j
		lea	eax, [ebp+var_934]
		mov	ecx, 120h
		mov	[ebp+var_93C], eax
		xor	eax, eax
		mov	edi, [ebp+var_93C]
		rep stosd
		mov	esi, [edx]
		mov	[esp], esi	; s
		call	strlen
		lea	edx, [ebp+arg]
		mov	dword ptr [esp+4], 104h	; n
		lea	eax, [esi+eax+1]
		mov	[esp], edx	; dest
		mov	[esp+8], eax	; src
		lea	esi, [ebp+dest]
		call	_Z16VOX_GetDirectoryPciS_ ; VOX_GetDirectory(char *,int,char *)
		mov	dword ptr [esp+8], 200h	; n
		mov	[esp+4], eax	; src
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		test	ebx, ebx
		jz	short loc_B4BB8
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_B4BB8:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+8Cj
		mov	[esp], esi
		call	_Z15VOX_ParseStringPc ;	VOX_ParseString(char *)
		mov	eax, dword ptr ds:_ZL12rgpparseword ; rgpparseword
		test	eax, eax
		jz	loc_B4D80
		xor	edx, edx
		nop

loc_B4BD0:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+D3j
		mov	[ebp+edx*4+var_AC], eax
		add	edx, 1
		mov	eax, dword ptr ds:_ZL12rgpparseword[edx*4] ; rgpparseword
		test	eax, eax
		jnz	short loc_B4BD0
		mov	[ebp+var_94C], edx
		lea	esi, [ebp+s]
		mov	[ebp+var_948], 0
		lea	edi, [ebp+var_2C]
		mov	[ebp+var_944], 0
		jmp	short loc_B4C5E
; ---------------------------------------------------------------------------
		align 10h

loc_B4C10:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+15Ej
					; VOX_Precache(IEngineSound *,int,char	const*)+164j
		mov	edx, [ebp+var_944]
		xor	eax, eax
		mov	[esp], ebx	; s
		test	edx, edx
		mov	edx, [ebp+var_948]
		setz	al
		mov	[esp+8], eax	; int
		lea	eax, [edx+edx*8]
		lea	eax, [ebp+eax*4+var_934]
		mov	[esp+4], eax	; int
		call	_Z19VOX_ParseWordParamsPcP9voxword_ti ;	VOX_ParseWordParams(char *,voxword_t *,int)
		test	eax, eax
		jnz	loc_B4D30

loc_B4C45:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+21Aj
					; VOX_Precache(IEngineSound *,int,char	const*)+26Bj
		add	[ebp+var_944], 1
		mov	eax, [ebp+var_94C]
		cmp	[ebp+var_944], eax
		jz	loc_B4D80

loc_B4C5E:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+F8j
		mov	edx, [ebp+var_944]
		mov	ebx, [ebp+edx*4+var_AC]
		cmp	byte ptr [ebx],	56h
		jnz	short loc_B4C10
		cmp	byte ptr [ebx+1], 5Fh
		jnz	short loc_B4C10
		mov	edx, edi
		mov	eax, ebx
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		call	_ZL24VOX_BuildVirtualNameListPcR10CUtlVectorI7WordBuf10CUtlMemoryIS1_iEE ; VOX_BuildVirtualNameList(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)
		mov	eax, [edi+0Ch]
		test	eax, eax
		mov	[ebp+var_940], eax
		jle	short loc_B4D0E
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_B4CB8:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+1FCj
		lea	edx, [ebp+arg]
		mov	eax, ebx
		shl	eax, 8
		add	eax, [edi]
		mov	[esp+0Ch], edx	; arg
		mov	dword ptr [esp+8], offset aSS_wav ; "%s%s.wav"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], esi	; s
		mov	[esp+10h], eax
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax]
		add	ebx, 1
		cmp	ebx, [ebp+var_940]
		jnz	short loc_B4CB8

loc_B4D0E:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+19Dj
		mov	[ebp+var_20], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryI7WordBufiE5PurgeEv ; CUtlMemory<WordBuf,int>::Purge(void)
		mov	eax, [edi]
		mov	[esp], edi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryI7WordBufiE5PurgeEv ; CUtlMemory<WordBuf,int>::Purge(void)
		jmp	loc_B4C45
; ---------------------------------------------------------------------------
		align 10h

loc_B4D30:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+12Fj
		lea	eax, [ebp+arg]
		mov	[esp+10h], ebx
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSS_wav ; "%s%s.wav"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], esi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax]
		add	[ebp+var_948], 1
		jmp	loc_B4C45
; ---------------------------------------------------------------------------

loc_B4D80:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+B7j
					; VOX_Precache(IEngineSound *,int,char	const*)+148j
		add	esp, 96Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B4D8B:				; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+23j
		cmp	byte ptr [eax+1], 5Fh
		jnz	loc_B4B39
		jmp	loc_B4B3D
_Z12VOX_PrecacheP12IEngineSoundiPKc endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [ebp-20h], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryI7WordBufiE5PurgeEv ; CUtlMemory<WordBuf,int>::Purge(void)
		mov	eax, [ebp-2Ch]
		mov	[esp], edi
		mov	[ebp-1Ch], eax
		call	_ZN10CUtlMemoryI7WordBufiE5PurgeEv ; CUtlMemory<WordBuf,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short VOX_PrecacheSentenceGroup
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_PrecacheSentenceGroup(int, char *s, char *src)
VOX_PrecacheSentenceGroup proc near	; CODE XREF: .text:000B4DC1j
					; CEngineSoundServer::PrecacheSentenceGroup(char  const*)+1Bp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
src		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+s]
		mov	[esp], edi	; s
		call	strlen
		mov	ebx, dword ptr ds:g_Sentences+0Ch
		mov	[ebp+var_1C], eax
		test	ebx, ebx
		jle	short loc_B4E60
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_B4E0E
; ---------------------------------------------------------------------------
		align 10h

loc_B4E00:				; CODE XREF: VOX_PrecacheSentenceGroup+49j
					; VOX_PrecacheSentenceGroup+62j
		add	ebx, 1
		add	esi, 0Ch
		cmp	dword ptr ds:g_Sentences+0Ch, ebx
		jle	short loc_B4E60

loc_B4E0E:				; CODE XREF: VOX_PrecacheSentenceGroup+25j
					; VOX_PrecacheSentenceGroup+86j
		mov	eax, dword ptr ds:g_Sentences
		add	eax, esi
		cmp	byte ptr [eax+8], 0
		js	short loc_B4E00
		mov	edx, [ebp+var_1C]
		mov	[esp+4], edi
		mov	[esp+8], edx
		mov	eax, [eax]
		mov	[esp], eax
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jnz	short loc_B4E00
		mov	edx, [ebp+src]
		mov	[esp+4], ebx	; int
		add	ebx, 1
		add	esi, 0Ch
		mov	[esp+8], edx	; src
		mov	edx, [ebp+arg_0]
		mov	[esp], edx	; int
		call	_Z12VOX_PrecacheP12IEngineSoundiPKc ; VOX_Precache(IEngineSound	*,int,char  const*)
		cmp	dword ptr ds:g_Sentences+0Ch, ebx
		jg	short loc_B4E0E
		nop
		lea	esi, [esi+0]

loc_B4E60:				; CODE XREF: VOX_PrecacheSentenceGroup+1Fj
					; VOX_PrecacheSentenceGroup+3Cj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
VOX_PrecacheSentenceGroup endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_GroupAdd(char	*src)
_Z12VOX_GroupAddPKc proc near		; CODE XREF: VOX_ReadSentenceFile+32Bp

var_30		= dword	ptr -30h
var_2A		= word ptr -2Ah
var_1A		= word ptr -1Ah
src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 3Ch
		mov	esi, [ebp+src]
		mov	[esp], esi	; s
		call	strlen
		lea	edx, [eax-1]
		test	edx, edx
		jle	loc_B4F7D
		movzx	eax, byte ptr [esi+eax-1]
		sub	eax, 30h
		cmp	al, 9
		ja	loc_B4F7D

loc_B4EA4:				; CODE XREF: VOX_GroupAdd(char	const*)+42j
		sub	edx, 1
		jz	short loc_B4EB4
		movzx	eax, byte ptr [esi+edx]
		sub	eax, 30h
		cmp	al, 9
		jbe	short loc_B4EA4

loc_B4EB4:				; CODE XREF: VOX_GroupAdd(char	const*)+37j
		lea	eax, [edx+11h]
		add	edx, 2
		and	eax, 0FFFFFFF0h
		add	eax, 10h
		sub	esp, eax
		lea	eax, [esp+1Bh]
		mov	[esp+8], edx	; n
		and	eax, 0FFFFFFF0h
		mov	[esp+4], esi	; src
		mov	[esp], eax	; dest
		mov	[ebp+var_30], eax
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	edx, [ebp+var_30]
		lea	eax, [ebp+var_1A]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN15sentencegroup_t9GetSymbolEPKc ; sentencegroup_t::GetSymbol(char  const*)
		mov	esi, dword ptr ds:g_SentenceGroups+0Ch
		sub	esp, 4
		test	esi, esi
		jle	short loc_B4F4B
		lea	eax, [esi-1]
		mov	edi, dword ptr ds:g_SentenceGroups
		xor	ebx, ebx
		mov	edx, eax
		mov	ecx, esi
		sar	edx, 1Fh
		idiv	esi
		lea	eax, [edx+edx*2]
		movzx	edx, [ebp+var_1A]
		lea	eax, [edi+eax*2]
		cmp	[eax+4], dx
		mov	[ebp+var_2A], dx
		jnz	short loc_B4F44
		jmp	short loc_B4F87
; ---------------------------------------------------------------------------
		align 4

loc_B4F28:				; CODE XREF: VOX_GroupAdd(char	const*)+D9j
		mov	edx, ecx
		mov	eax, ecx
		add	ecx, 1
		sar	edx, 1Fh
		idiv	esi
		lea	eax, [edx+edx*2]
		movzx	edx, [ebp+var_2A]
		lea	eax, [edi+eax*2]
		cmp	[eax+4], dx
		jz	short loc_B4F90

loc_B4F44:				; CODE XREF: VOX_GroupAdd(char	const*)+B1j
		add	ebx, 1
		cmp	ebx, esi
		jnz	short loc_B4F28

loc_B4F4B:				; CODE XREF: VOX_GroupAdd(char	const*)+89j
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	g_SentenceGroups
		call	_ZN10CUtlVectorI15sentencegroup_t10CUtlMemoryIS0_iEE12InsertBeforeEi ; CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::InsertBefore(int)
		mov	edi, dword ptr ds:g_SentenceGroups
		lea	esi, [eax+eax*2]
		mov	ebx, eax
		mov	eax, [ebp+var_30]
		lea	esi, [edi+esi*2]
		mov	[esp+4], eax
		mov	[esp], esi
		call	_ZN15sentencegroup_t12SetGroupNameEPKc ; sentencegroup_t::SetGroupName(char  const*)
		mov	word ptr [esi],	1

loc_B4F7D:				; CODE XREF: VOX_GroupAdd(char	const*)+1Ej
					; VOX_GroupAdd(char  const*)+2Ej
		lea	esp, [ebp-0Ch]
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B4F87:				; CODE XREF: VOX_GroupAdd(char	const*)+B3j
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_B4F90:				; CODE XREF: VOX_GroupAdd(char	const*)+D2j
		add	word ptr [eax],	1
		lea	esp, [ebp-0Ch]
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z12VOX_GroupAddPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_AddSentenceWavesToResList(void)
_Z29VOX_AddSentenceWavesToResListv proc	near ; CODE XREF: VOX_ReadSentenceFile+52p
					; VOX_ReadSentenceFile+2A8p

var_75		= byte ptr -75h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aMakereslists	; "-makereslists"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jz	loc_B5190

loc_B4FC9:				; CODE XREF: VOX_AddSentenceWavesToResList(void)+207j
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aSpewsentences ; "-spewsentences"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	[ebp+var_5C], 0
		test	eax, eax
		mov	eax, dword ptr ds:g_Sentences+0Ch
		mov	[ebp+var_58], 0
		setnz	[ebp+var_75]
		xor	edi, edi
		mov	[ebp+var_54], 0
		mov	[ebp+var_50], 0FFFFFFFFh
		test	eax, eax
		mov	[ebp+var_4C], 0
		mov	[ebp+var_48], 0FFFFFFFFh
		mov	[ebp+var_44], 0FFFFFFFFh
		mov	[ebp+var_40], 0
		mov	[ebp+var_60], offset _Z22CaselessStringLessThanRKPKcS2_	; CaselessStringLessThan(char  const* const&,char  const* const&)
		mov	[ebp+var_3C], offset _ZL14CCPairLessFuncRK6ccpairS1_ ; CCPairLessFunc(ccpair  const&,ccpair  const&)
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0FFFFFFFFh
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0FFFFFFFFh
		mov	[ebp+var_20], 0FFFFFFFFh
		mov	[ebp+var_1C], 0
		mov	[ebp+var_74], eax
		mov	[ebp+var_6C], 0
		jg	short loc_B5093
		jmp	loc_B5128
; ---------------------------------------------------------------------------
		align 10h

loc_B5080:				; CODE XREF: VOX_AddSentenceWavesToResList(void)+120j
					; VOX_AddSentenceWavesToResList(void)+126j ...
		add	[ebp+var_6C], 1
		add	edi, 0Ch
		mov	eax, [ebp+var_74]
		cmp	[ebp+var_6C], eax
		jz	loc_B5128

loc_B5093:				; CODE XREF: VOX_AddSentenceWavesToResList(void)+D5j
					; VOX_AddSentenceWavesToResList(void)+17Fj
		mov	esi, dword ptr ds:g_Sentences
		mov	dword ptr [esp+8], 2
		lea	ebx, [ebp+var_3C]
		mov	dword ptr [esp+4], offset aV_ ;	"V_"
		add	esi, edi
		mov	eax, [esi]
		mov	[esp], eax
		lea	eax, [ebp+var_60]
		mov	[ebp+var_70], eax
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jz	short loc_B5080
		cmp	[ebp+var_75], 0
		jz	short loc_B5080
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], 0 ; int
		mov	eax, [esi]
		mov	[esp], eax	; s1
		call	VOX_LookupString
		test	eax, eax
		jz	short loc_B5080
		mov	[esp+8], eax
		mov	eax, [esi]
		mov	dword ptr [esp], offset	aSS_5 ;	"%s : %s\n"
		mov	[esp+4], eax
		lea	eax, [ebp+var_60]
		mov	[ebp+var_70], eax
		call	Msg
		add	[ebp+var_6C], 1
		add	edi, 0Ch
		mov	eax, [ebp+var_74]
		cmp	[ebp+var_6C], eax
		jnz	loc_B5093
		lea	esi, [esi+0]

loc_B5128:				; CODE XREF: VOX_AddSentenceWavesToResList(void)+D7j
					; VOX_AddSentenceWavesToResList(void)+EDj
		movzx	eax, [ebp+var_75]
		lea	ebx, [ebp+var_3C]
		mov	[esp+4], ebx
		mov	[esp+8], eax
		lea	eax, [ebp+var_60]
		mov	[ebp+var_70], eax
		mov	[esp], eax
		call	_Z15VOX_TouchSoundsR8CUtlDictIiiER10CUtlRBTreeI6ccpairiPFbRKS3_S5_E10CUtlMemoryI15UtlRBTreeNode_tIS3_iEiEEb ; VOX_TouchSounds(CUtlDict<int,int>	&,CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)
		mov	eax, [ebp+var_70]
		mov	[esp], eax
		call	_ZN8CUtlDictIiiE9RemoveAllEv ; CUtlDict<int,int>::RemoveAll(void)
		mov	[esp], ebx
		lea	ebx, [ebp+var_38]
		call	_ZN10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE9RemoveAllEv	; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)
		mov	[esp], ebx
		mov	[ebp+var_24], 0FFFFFFFFh
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI6ccpairiEiE5PurgeEv ;	CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>::Purge(void)
		mov	[esp], ebx
		mov	[ebp+var_20], 0FFFFFFFFh
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI6ccpairiEiE5PurgeEv ;	CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>::Purge(void)
		mov	eax, [ebp+var_70]
		mov	[esp], eax
		call	_ZN8CUtlDictIiiED2Ev ; CUtlDict<int,int>::~CUtlDict()
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B5190:				; CODE XREF: VOX_AddSentenceWavesToResList(void)+23j
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aSpewsentences ; "-spewsentences"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jnz	loc_B4FC9
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z29VOX_AddSentenceWavesToResListv endp

; ---------------------------------------------------------------------------
		mov	[esp], ebx
		lea	ebx, [ebp-38h]
		mov	esi, eax
		call	_ZN10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE9RemoveAllEv	; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)
		mov	dword ptr [ebp-24h], 0FFFFFFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI6ccpairiEiE5PurgeEv ;	CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>::Purge(void)
		mov	dword ptr [ebp-20h], 0FFFFFFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI6ccpairiEiE5PurgeEv ;	CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>::Purge(void)
		mov	eax, [ebp-70h]
		mov	[esp], eax
		call	_ZN8CUtlDictIiiED2Ev ; CUtlDict<int,int>::~CUtlDict()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_GroupInitAllLRUs(void)
_Z20VOX_GroupInitAllLRUsv proc near	; CODE XREF: VOX_ReadSentenceFile+2A3p
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 10h
		mov	eax, dword ptr ds:g_SentenceGroups+0Ch
		test	eax, eax
		jle	short loc_B523F
		mov	ecx, dword ptr ds:g_SentenceGroups
		xor	eax, eax
		xor	edx, edx
		lea	esi, [esi+0]

loc_B5220:				; CODE XREF: VOX_GroupInitAllLRUs(void)+3Dj
		mov	[ecx+eax+2], bx
		add	edx, 1
		mov	ecx, dword ptr ds:g_SentenceGroups
		movsx	esi, word ptr [ecx+eax]
		add	eax, 6
		add	ebx, esi
		cmp	dword ptr ds:g_SentenceGroups+0Ch, edx
		jg	short loc_B5220

loc_B523F:				; CODE XREF: VOX_GroupInitAllLRUs(void)+11j
		mov	dword ptr ds:_ZL10g_GroupLRU+0Ch, 0
		mov	dword ptr [esp], offset	_ZL10g_GroupLRU	; g_GroupLRU
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		mov	eax, dword ptr ds:_ZL10g_GroupLRU ; g_GroupLRU
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL10g_GroupLRU	; g_GroupLRU
		mov	dword ptr ds:_ZL10g_GroupLRU+10h, eax
		call	_ZN10CUtlVectorIh10CUtlMemoryIhiEE11EnsureCountEi ; CUtlVector<uchar,CUtlMemory<uchar,int>>::EnsureCount(int)
		mov	eax, dword ptr ds:g_SentenceGroups+0Ch
		test	eax, eax
		jle	short loc_B529D
		xor	esi, esi
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_B5280:				; CODE XREF: VOX_GroupInitAllLRUs(void)+9Bj
		mov	eax, dword ptr ds:g_SentenceGroups
		add	ebx, 1
		add	eax, esi
		add	esi, 6
		mov	[esp], eax
		call	_Z11VOX_LRUInitP15sentencegroup_t ; VOX_LRUInit(sentencegroup_t	*)
		cmp	dword ptr ds:g_SentenceGroups+0Ch, ebx
		jg	short loc_B5280

loc_B529D:				; CODE XREF: VOX_GroupInitAllLRUs(void)+76j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z20VOX_GroupInitAllLRUsv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_CompactSentenceFile(void)
_Z23VOX_CompactSentenceFilev proc near	; CODE XREF: VOX_ReadSentenceFile:loc_B5634p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	[ebp+var_1C], 0
		mov	eax, dword ptr ds:g_Sentences+0Ch
		test	eax, eax
		mov	[ebp+var_20], eax
		jle	short loc_B5313
		mov	eax, dword ptr ds:g_Sentences
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_24], eax
		nop
		lea	esi, [esi+0]

loc_B52E0:				; CODE XREF: VOX_CompactSentenceFile(void)+61j
		mov	eax, [ebp+var_24]
		add	ebx, 1
		mov	edx, [eax+esi]
		add	esi, 0Ch
		mov	[esp], edx	; s
		mov	[ebp+var_2C], edx
		call	strlen
		mov	edx, [ebp+var_2C]
		lea	edi, [eax+1]
		add	edx, edi
		mov	[esp], edx	; s
		call	strlen
		lea	eax, [edi+eax+1]
		add	[ebp+var_1C], eax
		cmp	ebx, [ebp+var_20]
		jnz	short loc_B52E0

loc_B5313:				; CODE XREF: VOX_CompactSentenceFile(void)+1Aj
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp], offset	_ZL14g_SentenceFile ; g_SentenceFile
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIc10CUtlMemoryIciEE11EnsureCountEi ; CUtlVector<char,CUtlMemory<char,int>>::EnsureCount(int)
		mov	eax, dword ptr ds:g_Sentences+0Ch
		test	eax, eax
		jle	short loc_B53A0
		xor	ebx, ebx
		xor	ecx, ecx
		mov	[ebp+var_1C], 0
		lea	esi, [esi+0]

loc_B5340:				; CODE XREF: VOX_CompactSentenceFile(void)+EEj
		mov	eax, dword ptr ds:g_Sentences
		mov	esi, [eax+ebx]
		mov	[ebp+var_28], ecx
		mov	[esp], esi	; s
		call	strlen
		lea	edi, [eax+1]
		lea	eax, [esi+edi]
		mov	[esp], eax	; s
		call	strlen
		mov	edx, [ebp+var_1C]
		mov	[esp+4], esi	; src
		lea	edi, [edi+eax+1]
		mov	[esp+8], edi	; n
		add	edx, dword ptr ds:_ZL14g_SentenceFile ;	g_SentenceFile
		mov	[esp], edx	; dest
		mov	[ebp+var_2C], edx
		call	memcpy
		mov	eax, dword ptr ds:g_Sentences
		mov	edx, [ebp+var_2C]
		add	[ebp+var_1C], edi
		mov	[eax+ebx], edx
		add	ebx, 0Ch
		mov	ecx, [ebp+var_28]
		add	ecx, 1
		cmp	dword ptr ds:g_Sentences+0Ch, ecx
		jg	short loc_B5340

loc_B53A0:				; CODE XREF: VOX_CompactSentenceFile(void)+7Dj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z23VOX_CompactSentenceFilev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_ReadSentenceFile(char	*src)
VOX_ReadSentenceFile proc near		; CODE XREF: VOX_Init+D6p
					; CVEngineServer::PrecacheSentenceFile(char  const*,bool)+Cp

var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_11C		= byte ptr -11Ch
var_1C		= dword	ptr -1Ch
src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 14Ch
		mov	ebx, ds:_ZL19g_pSentenceFileList ; g_pSentenceFileList
		mov	edi, [ebp+src]
		test	ebx, ebx
		jnz	short loc_B53D7
		jmp	short loc_B5418
; ---------------------------------------------------------------------------
		align 10h

loc_B53D0:				; CODE XREF: VOX_ReadSentenceFile+37j
		mov	ebx, [ebx+4]
		test	ebx, ebx
		jz	short loc_B5418

loc_B53D7:				; CODE XREF: VOX_ReadSentenceFile+17j
		mov	eax, [ebx]
		mov	[esp], edi	; s1
		mov	[esp+4], eax	; s2
		call	strcmp
		test	eax, eax
		jnz	short loc_B53D0
		call	_Z19MapReslistGeneratorv ; MapReslistGenerator(void)
		cmp	byte ptr [eax+1], 0
		jz	loc_B5695
		cmp	byte ptr [eax+4], 0
		jnz	loc_B5695
		call	_Z29VOX_AddSentenceWavesToResListv ; VOX_AddSentenceWavesToResList(void)
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B5418:				; CODE XREF: VOX_ReadSentenceFile+19j
					; VOX_ReadSentenceFile+25j
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset modes	; "rb"
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	ebx, eax
		jz	loc_B572E
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+18h]
		test	eax, eax
		mov	esi, eax
		jle	loc_B5743
		mov	eax, ds:g_pFileSystem
		lea	ecx, [esi+1]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+154h]
		test	eax, eax
		mov	[ebp+var_130], eax
		jz	loc_B5777
		mov	edx, ds:g_pFileSystem
		mov	eax, [edx]
		mov	ecx, [eax+118h]
		mov	[esp], edx
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], ebx
		mov	[ebp+var_12C], ecx
		lea	ecx, [ebp+var_1C]
		mov	[esp+8], ecx
		call	dword ptr [eax+150h]
		mov	edx, esi
		test	al, al
		jnz	loc_B571E

loc_B54D9:				; CODE XREF: VOX_ReadSentenceFile+379j
		mov	eax, [ebp+var_130]
		mov	[esp+0Ch], esi
		mov	[esp+8], edx
		mov	[esp+10h], ebx
		mov	[esp+4], eax
		mov	eax, ds:g_pFileSystem
		mov	[esp], eax
		call	[ebp+var_12C]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		add	esi, [ebp+var_130]
		lea	eax, [ebp+var_11C]
		mov	byte ptr [esi],	0
		mov	dword ptr [esp+4], offset asc_1F03F9 ; "\n\r\t "
		mov	[esp], eax
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		cmp	[ebp+var_130], esi
		jnb	loc_B5634
		mov	ebx, [ebp+var_130]
		mov	[ebp+var_134], edi
		mov	[ebp+var_12C], 0
		nop
		lea	esi, [esi+0]

loc_B5558:				; CODE XREF: VOX_ReadSentenceFile+278j
		cmp	esi, ebx
		movzx	eax, byte ptr [ebx]
		ja	loc_B56A0
		nop
		lea	esi, [esi+0]

loc_B5568:				; CODE XREF: VOX_ReadSentenceFile+2FBj
					; VOX_ReadSentenceFile+30Bj
		test	al, al
		jz	loc_B562E
		cmp	al, 2Fh
		jz	loc_B5700
		mov	eax, dword ptr ds:g_Sentences+0Ch
		mov	dword ptr [esp], offset	g_Sentences
		mov	[esp+4], eax
		call	_ZN10CUtlVectorI10sentence_t10CUtlMemoryIS0_iEE12InsertBeforeEi	; CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::InsertBefore(int)
		mov	edx, dword ptr ds:g_Sentences
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	[eax], ebx
		mov	dword ptr [eax+4], 0
		mov	byte ptr [eax+8], 0
		mov	word ptr [eax+0Ah], 0FFFFh
		mov	eax, ebx
		cmp	byte ptr [ebx],	20h
		jz	short loc_B55CC
		cmp	esi, ebx
		ja	short loc_B55C4
		jmp	short loc_B55CC
; ---------------------------------------------------------------------------
		align 10h

loc_B55C0:				; CODE XREF: VOX_ReadSentenceFile+21Aj
		cmp	esi, eax
		jbe	short loc_B55CC

loc_B55C4:				; CODE XREF: VOX_ReadSentenceFile+205j
		add	eax, 1
		cmp	byte ptr [eax],	20h
		jnz	short loc_B55C0

loc_B55CC:				; CODE XREF: VOX_ReadSentenceFile+201j
					; VOX_ReadSentenceFile+207j ...
		cmp	esi, eax
		jbe	loc_B5710
		mov	byte ptr [eax],	0
		add	eax, 1
		setnz	dl
		cmp	esi, eax
		mov	[ebp+var_12C], ebx
		setnbe	cl
		mov	ebx, eax
		mov	edi, eax
		and	edx, ecx

loc_B55EE:				; CODE XREF: VOX_ReadSentenceFile+354j
		cmp	esi, ebx
		jbe	loc_B56C0
		movzx	ecx, byte ptr [ebx]
		mov	eax, ebx
		cmp	cl, 0Ah
		jz	short loc_B5618

loc_B5600:				; CODE XREF: VOX_ReadSentenceFile+266j
		cmp	cl, 0Dh
		jz	short loc_B5618
		add	eax, 1
		cmp	eax, esi
		jz	loc_B56C8
		movzx	ecx, byte ptr [eax]
		cmp	cl, 0Ah
		jnz	short loc_B5600

loc_B5618:				; CODE XREF: VOX_ReadSentenceFile+24Ej
					; VOX_ReadSentenceFile+253j
		mov	byte ptr [eax],	0
		lea	ebx, [eax+1]
		test	dl, dl
		jnz	loc_B56D2

loc_B5626:				; CODE XREF: VOX_ReadSentenceFile+31Cj
					; VOX_ReadSentenceFile+344j
		cmp	ebx, esi
		jb	loc_B5558

loc_B562E:				; CODE XREF: VOX_ReadSentenceFile+1BAj
		mov	edi, [ebp+var_134]

loc_B5634:				; CODE XREF: VOX_ReadSentenceFile+187j
		call	_Z23VOX_CompactSentenceFilev ; VOX_CompactSentenceFile(void)
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_130]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+158h]
		call	_Z20VOX_GroupInitAllLRUsv ; VOX_GroupInitAllLRUs(void)
		call	_Z29VOX_AddSentenceWavesToResListv ; VOX_AddSentenceWavesToResList(void)
		mov	[esp], edi	; s
		call	strlen
		add	eax, 9
		mov	[esp], eax	; size
		call	malloc
		test	eax, eax
		mov	ebx, eax
		jz	short loc_B5695
		lea	esi, [eax+8]
		mov	[esp+4], edi	; src
		mov	[esp], esi	; dest
		call	strcpy
		mov	eax, ds:_ZL19g_pSentenceFileList ; g_pSentenceFileList
		mov	[ebx], esi
		mov	ds:_ZL19g_pSentenceFileList, ebx ; g_pSentenceFileList
		mov	[ebx+4], eax

loc_B5695:				; CODE XREF: VOX_ReadSentenceFile+42j
					; VOX_ReadSentenceFile+4Cj ...
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B56A0:				; CODE XREF: VOX_ReadSentenceFile+1ADj
					; VOX_ReadSentenceFile+309j
		movzx	edx, al
		cmp	[ebp+edx+var_11C], 0
		jz	loc_B5568
		add	ebx, 1
		cmp	ebx, esi
		movzx	eax, byte ptr [ebx]
		jnz	short loc_B56A0
		jmp	loc_B5568
; ---------------------------------------------------------------------------

loc_B56C0:				; CODE XREF: VOX_ReadSentenceFile+240j
		mov	eax, ebx
		lea	esi, [esi+0]

loc_B56C8:				; CODE XREF: VOX_ReadSentenceFile+25Aj
		mov	ebx, eax

loc_B56CA:				; CODE XREF: VOX_ReadSentenceFile+36Cj
		test	dl, dl
		jz	loc_B5626

loc_B56D2:				; CODE XREF: VOX_ReadSentenceFile+270j
		mov	ecx, [ebp+var_12C]
		mov	[esp], ecx	; src
		call	_Z12VOX_GroupAddPKc ; VOX_GroupAdd(char	 const*)
		mov	eax, dword ptr ds:g_Sentences+0Ch
		mov	[esp], edi	; dest
		sub	eax, 1
		mov	[esp+4], eax	; int
		call	_Z21VOX_ParseLineCommandsPci ; VOX_ParseLineCommands(char *,int)
		jmp	loc_B5626
; ---------------------------------------------------------------------------
		align 10h

loc_B5700:				; CODE XREF: VOX_ReadSentenceFile+1C2j
		xor	edx, edx
		xor	edi, edi
		jmp	loc_B55EE
; ---------------------------------------------------------------------------
		align 10h

loc_B5710:				; CODE XREF: VOX_ReadSentenceFile+21Ej
		mov	[ebp+var_12C], ebx
		mov	edi, eax
		xor	edx, edx
		mov	ebx, eax
		jmp	short loc_B56CA
; ---------------------------------------------------------------------------

loc_B571E:				; CODE XREF: VOX_ReadSentenceFile+123j
		mov	eax, [ebp+var_1C]
		lea	edx, [esi+eax-1]
		neg	eax
		and	edx, eax
		jmp	loc_B54D9
; ---------------------------------------------------------------------------

loc_B572E:				; CODE XREF: VOX_ReadSentenceFile+91j
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aCouldnTLoadS ;	"Couldn't load %s\n"
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_B5695
; ---------------------------------------------------------------------------

loc_B5743:				; CODE XREF: VOX_ReadSentenceFile+B0j
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aVox_readsenten	; "VOX_ReadSentenceFile: %s has	invalid	si"...

loc_B5752:				; CODE XREF: VOX_ReadSentenceFile+3D6j
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B5777:				; CODE XREF: VOX_ReadSentenceFile+E1j
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aVox_readsent_0	; "VOX_ReadSentenceFile: %s couldn't alloc"...
		jmp	short loc_B5752
VOX_ReadSentenceFile endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

VOX_Init	proc near		; CODE XREF: VOX_Reload(void)+Cj
		push	ebp
		mov	edx, offset g_entnames
		xor	eax, eax
		mov	ebp, esp
		mov	ecx, 680h
		push	edi
		mov	edi, edx
		sub	esp, 14h
		mov	edx, offset _ZL12g_rgmapnames ;	g_rgmapnames
		rep stosd
		mov	edi, edx
		mov	ds:g_entnamelastsaved, 0
		mov	ds:_ZL11g_cmapnames, 0 ; g_cmapnames
		mov	dword ptr ds:_ZL14g_SentenceFile+0Ch, 0
		mov	cl, 18h
		rep stosd
		mov	dword ptr [esp], offset	_ZL14g_SentenceFile ; g_SentenceFile
		call	_ZN10CUtlMemoryIciE5PurgeEv ; CUtlMemory<char,int>::Purge(void)
		mov	eax, dword ptr ds:_ZL14g_SentenceFile ;	g_SentenceFile
		mov	dword ptr ds:_ZL10g_GroupLRU+0Ch, 0
		mov	dword ptr [esp], offset	_ZL10g_GroupLRU	; g_GroupLRU
		mov	dword ptr ds:_ZL14g_SentenceFile+10h, eax
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		mov	eax, dword ptr ds:_ZL10g_GroupLRU ; g_GroupLRU
		mov	dword ptr ds:g_Sentences+0Ch, 0
		cmp	dword ptr ds:g_Sentences+4, 383h
		mov	dword ptr ds:_ZL10g_GroupLRU+10h, eax
		jg	short loc_B5850
		mov	ecx, dword ptr ds:g_Sentences+8
		test	ecx, ecx
		js	short loc_B5850
		mov	dword ptr ds:g_Sentences+4, 384h
		mov	eax, dword ptr ds:g_Sentences
		test	eax, eax
		jz	short loc_B5878
		mov	dword ptr [esp+4], 2A30h ; size
		mov	[esp], eax	; ptr
		call	realloc
		mov	dword ptr ds:g_Sentences, eax
		jmp	short loc_B5855
; ---------------------------------------------------------------------------

loc_B5850:				; CODE XREF: VOX_Init+8Aj VOX_Init+94j
		mov	eax, dword ptr ds:g_Sentences

loc_B5855:				; CODE XREF: VOX_Init+BEj VOX_Init+F9j
		mov	dword ptr ds:g_Sentences+10h, eax
		call	_ZL13VOX_ListClearv ; VOX_ListClear(void)
		mov	dword ptr [esp], offset	aScriptsSentenc	; "scripts/sentences.txt"
		call	VOX_ReadSentenceFile
		add	esp, 14h
		pop	edi
		pop	ebp
		jmp	_Z18VOX_LookupMapnamesv	; VOX_LookupMapnames(void)
; ---------------------------------------------------------------------------
		align 4

loc_B5878:				; CODE XREF: VOX_Init+A7j
		mov	dword ptr [esp], 2A30h ; size
		call	malloc
		mov	dword ptr ds:g_Sentences, eax
		jmp	short loc_B5855
VOX_Init	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VOX_Reload(void)
_ZL10VOX_Reloadv proc near		; DATA XREF: _GLOBAL__sub_I_g_Sentences+87o
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		call	VOX_Shutdown
		leave
		jmp	VOX_Init
_ZL10VOX_Reloadv endp

; ---------------------------------------------------------------------------
		jmp	short _Z9VOX_TouchPKcR8CUtlDictIiiE ; VOX_Touch(char  const*,CUtlDict<int,int> &)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl VOX_Touch(char *s, int)
_Z9VOX_TouchPKcR8CUtlDictIiiE proc near	; CODE XREF: .text:000B58A1j

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
s		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+s]
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZNK8CUtlDictIiiE4FindEPKc ; CUtlDict<int,int>::Find(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_B58E0
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B58E0:				; CODE XREF: VOX_Touch(char  const*,CUtlDict<int,int> &)+21j
		mov	[esp], esi	; s
		call	strdup
		mov	[esp], ebx
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		mov	[esp+4], eax
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE6InsertERKS4_ ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z9VOX_TouchPKcR8CUtlDictIiiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CaselessStringLessThan(char  const* const&, char  const* const&)
_Z22CaselessStringLessThanRKPKcS2_ proc	near
					; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+F2o
					; _GLOBAL__sub_I_r_drawmodelstatsoverlay+9DAo ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		xor	eax, eax
		test	edx, edx
		jz	short locret_B593E
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		mov	eax, 1
		test	ecx, ecx
		jz	short locret_B593E
		mov	[esp+4], ecx
		mov	[esp], edx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		shr	eax, 1Fh

locret_B593E:				; CODE XREF: CaselessStringLessThan(char  const* const&,char  const* const&)+Fj
					; CaselessStringLessThan(char  const* const&,char  const* const&)+1Dj
		leave
		retn
_Z22CaselessStringLessThanRKPKcS2_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<unsigned char, int>::Purge(void)
_ZN10CUtlMemoryIhiE5PurgeEv proc near	; CODE XREF: VOX_GroupInitAllLRUs(void)+50p
					; VOX_Init+67p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_B596C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_B5965
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_B5965:				; CODE XREF: CUtlMemory<uchar,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_B596C:				; CODE XREF: CUtlMemory<uchar,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIhiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned char, CUtlMemory<unsigned	char, int>>::~CUtlVector()
_ZN10CUtlVectorIh10CUtlMemoryIhiEED2Ev proc near ; DATA	XREF: _GLOBAL__sub_I_g_Sentences+CFo
					; _GLOBAL__sub_I_g_CoreDispNeighborOrientationMap+41o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
_ZN10CUtlVectorIh10CUtlMemoryIhiEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlDict<int,	int>::Find(char	 const*)const
_ZNK8CUtlDictIiiE4FindEPKc proc	near	; CODE XREF: VOX_Touch(char  const*,CUtlDict<int,int> &)+19p
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+328p ...

var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		test	eax, eax
		jz	loc_B5AD7
		mov	ebx, [esi+10h]
		mov	[ebp+var_20], eax
		lea	esi, [esi+0]

loc_B59D0:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+98j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_B5A11

loc_B59D5:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+5Fj
		mov	eax, [esi+4]
		lea	edx, [ebx+ebx*2]
		lea	edi, ds:0[edx*8]
		mov	[ebp+var_2C], edx
		add	eax, edi
		add	eax, 10h
		mov	[esp+4], eax
		lea	eax, [ebp+var_20]
		mov	[esp], eax
		call	dword ptr [esi]
		mov	edx, [ebp+var_2C]
		test	al, al
		jz	short loc_B5A20
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5A50

loc_B5A06:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+B1j
					; CUtlDict<int,int>::Find(char	const*)+E0j
		mov	eax, [esi+4]
		mov	ebx, [eax+edx*8]
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_B59D5

loc_B5A11:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+23j
					; CUtlDict<int,int>::Find(char	const*)+86j ...
		add	esp, 3Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B5A20:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+4Bj
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax
		mov	eax, [esi+4]
		add	eax, edi
		add	eax, 10h
		mov	[esp], eax
		call	dword ptr [esi]
		test	al, al
		jz	short loc_B5A11
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5A98

loc_B5A41:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+F6j
					; CUtlDict<int,int>::Find(char	const*)+122j
		mov	eax, [esi+4]
		mov	ebx, [eax+edi+4]
		jmp	short loc_B59D0
; ---------------------------------------------------------------------------
		align 10h

loc_B5A50:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+54j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_2C]
		test	eax, eax
		jz	short loc_B5A06
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_2C]
		jmp	loc_B5A06
; ---------------------------------------------------------------------------
		align 4

loc_B5A98:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+8Fj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B5A41
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B5A41
; ---------------------------------------------------------------------------

loc_B5AD7:				; CODE XREF: CUtlDict<int,int>::Find(char  const*)+11j
		mov	ebx, 0FFFFFFFFh
		jmp	loc_B5A11
_ZNK8CUtlDictIiiE4FindEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ccpair, int, bool (*)(ccpair const&, ccpair const&), CUtlMemory<UtlRBTreeNode_t<ccpair, int>, int>>::FirstInorder(void)const
_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE12FirstInorderEv proc near
					; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+1A6p
					; VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+22Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	esi, [ebp+arg_0]
		test	dl, dl
		mov	ebx, [esi+10h]
		jz	short loc_B5B50
		lea	esi, [esi+0]

loc_B5B10:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+5Ej
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+6Ej ...
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5B23
		imul	eax, ebx, 310h
		add	eax, [esi+4]

loc_B5B23:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+28j
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	loc_B5BB0
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		test	dl, dl
		jz	short loc_B5B90

loc_B5B37:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+B7j
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5B4A
		imul	eax, ebx, 310h
		add	eax, [esi+4]

loc_B5B4A:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+4Fj
		test	dl, dl
		mov	ebx, [eax]
		jnz	short loc_B5B10

loc_B5B50:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+17j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B5B10
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B5B10
; ---------------------------------------------------------------------------
		align 10h

loc_B5B90:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+45j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B5BC0

loc_B5BA0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+FAj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jmp	short loc_B5B37
; ---------------------------------------------------------------------------
		align 10h

loc_B5BB0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+36j
		add	esp, 10h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B5BC0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::FirstInorder(void)+AEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B5BA0
_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE12FirstInorderEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ccpair, int, bool (*)(ccpair const&, ccpair const&), CUtlMemory<UtlRBTreeNode_t<ccpair, int>, int>>::NextInorder(int)const
_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE11NextInorderEi proc near
					; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+1E5p
					; VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+2D5p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		cmp	edi, [esi+8]
		jnb	short loc_B5C0E
		cmp	edi, [esi+1Ch]
		jle	short loc_B5C20

loc_B5C0E:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+17j
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+C6j ...
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B5C20:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1Cj
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B5F9B

loc_B5C2D:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+3B9j
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+3E9j
		cmp	edi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5C40
		imul	eax, edi, 310h
		add	eax, [esi+4]

loc_B5C40:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+45j
		cmp	edi, [eax]
		jz	loc_B5F10
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	loc_B5D70

loc_B5C57:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+19Bj
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5C6A
		imul	edx, edi, 310h
		add	edx, [esi+4]

loc_B5C6A:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+6Fj
		cmp	dword ptr [edx+4], 0FFFFFFFFh
		jz	loc_B5D90
		test	al, al
		jz	loc_B5EF0

loc_B5C7C:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+317j
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5C8F
		imul	edx, edi, 310h
		add	edx, [esi+4]

loc_B5C8F:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+94j
		test	al, al
		mov	ebx, [edx+4]
		jz	short loc_B5CE0
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_B5CA0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+EEj
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+FEj ...
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5CB3
		imul	eax, ebx, 310h
		add	eax, [esi+4]

loc_B5CB3:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+B8j
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	loc_B5C0E
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	short loc_B5D20

loc_B5CC7:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+147j
		cmp	ebx, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5CDA
		imul	edx, ebx, 310h
		add	edx, [esi+4]

loc_B5CDA:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+DFj
		test	al, al
		mov	ebx, [edx]
		jnz	short loc_B5CA0

loc_B5CE0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+A4j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B5CA0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B5CA0
; ---------------------------------------------------------------------------
		align 10h

loc_B5D20:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+D5j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B5D40

loc_B5D30:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+17Aj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jmp	short loc_B5CC7
; ---------------------------------------------------------------------------
		align 10h

loc_B5D40:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+13Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B5D30
; ---------------------------------------------------------------------------
		align 10h

loc_B5D70:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+61j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B5F20

loc_B5D84:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+35Aj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B5C57
; ---------------------------------------------------------------------------

loc_B5D90:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+7Ej
		test	al, al
		jz	loc_B5F50

loc_B5D98:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+377j
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5E05
		imul	edx, edi, 310h
		add	edx, [esi+4]
		jmp	short loc_B5E05
; ---------------------------------------------------------------------------
		align 10h

loc_B5DB0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+21Aj
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+233j
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5DC3
		imul	edx, edi, 310h
		add	edx, [esi+4]

loc_B5DC3:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1C8j
		test	al, al
		mov	edx, [edx+8]
		jz	short loc_B5E28

loc_B5DCA:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+24Cj
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+27Bj
		cmp	edx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B5DDD
		imul	eax, edx, 310h
		add	eax, [esi+4]

loc_B5DDD:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1E2j
		cmp	edi, [eax+4]
		jnz	loc_B5C0E
		cmp	ebx, 0FFFFFFFFh
		jz	loc_B5F10
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	short loc_B5E70

loc_B5DFA:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+297j
		imul	edx, ebx, 310h
		mov	edi, ebx
		add	edx, [esi+4]

loc_B5E05:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1B0j
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1BBj
		test	al, al
		mov	ebx, [edx+8]
		jnz	short loc_B5DB0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B5E90

loc_B5E1C:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+2CAj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jmp	short loc_B5DB0
; ---------------------------------------------------------------------------
		align 4

loc_B5E28:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1D8j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_B5DCA
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_B5DCA
; ---------------------------------------------------------------------------

loc_B5E70:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+208j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B5EC0

loc_B5E80:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+2FAj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B5DFA
; ---------------------------------------------------------------------------
		align 10h

loc_B5E90:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+22Aj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B5E1C
; ---------------------------------------------------------------------------
		align 10h

loc_B5EC0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+28Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B5E80
; ---------------------------------------------------------------------------
		align 10h

loc_B5EF0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+86j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B5F6C

loc_B5F00:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+3A6j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B5C7C
; ---------------------------------------------------------------------------
		align 10h

loc_B5F10:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+52j
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1F9j
		add	esp, 2Ch
		mov	ebx, 0FFFFFFFFh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B5F20:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+18Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B5D84
; ---------------------------------------------------------------------------
		align 10h

loc_B5F50:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B5FDE

loc_B5F60:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+418j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ;	`guard variable	for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B5D98
; ---------------------------------------------------------------------------

loc_B5F6C:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+30Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B5F00
; ---------------------------------------------------------------------------

loc_B5F9B:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+37j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B5C2D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B5C2D
; ---------------------------------------------------------------------------

loc_B5FDE:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::NextInorder(int)+36Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B5F60
_ZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE11NextInorderEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<sentence_t, int>::Purge(void)
_ZN10CUtlMemoryI10sentence_tiE5PurgeEv proc near
					; CODE XREF: CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::~CUtlVector()+14p
					; CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::~CUtlVector()+26j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_B603C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_B6035
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_B6035:				; CODE XREF: CUtlMemory<sentence_t,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_B603C:				; CODE XREF: CUtlMemory<sentence_t,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI10sentence_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<sentence_t, CUtlMemory<sentence_t,	int>>::~CUtlVector()
_ZN10CUtlVectorI10sentence_t10CUtlMemoryIS0_iEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_Sentences+27o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI10sentence_tiE5PurgeEv ; CUtlMemory<sentence_t,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI10sentence_tiE5PurgeEv ; CUtlMemory<sentence_t,int>::Purge(void)
_ZN10CUtlVectorI10sentence_t10CUtlMemoryIS0_iEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<sentencegroup_t, int>::Purge(void)
_ZN10CUtlMemoryI15sentencegroup_tiE5PurgeEv proc near
					; CODE XREF: CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::~CUtlVector()+14p
					; CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::~CUtlVector()+26j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_B60AC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_B60A5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_B60A5:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_B60AC:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15sentencegroup_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<sentencegroup_t, CUtlMemory<sentencegroup_t, int>>::~CUtlVector()
_ZN10CUtlVectorI15sentencegroup_t10CUtlMemoryIS0_iEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_Sentences+16Bo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15sentencegroup_tiE5PurgeEv ; CUtlMemory<sentencegroup_t,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI15sentencegroup_tiE5PurgeEv ; CUtlMemory<sentencegroup_t,int>::Purge(void)
_ZN10CUtlVectorI15sentencegroup_t10CUtlMemoryIS0_iEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<WordBuf, int>::Purge(void)
_ZN10CUtlMemoryI7WordBufiE5PurgeEv proc	near
					; CODE XREF: VOX_Precache(IEngineSound *,int,char  const*)+208p
					; VOX_Precache(IEngineSound *,int,char	const*)+215p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_B611C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_B6115
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_B6115:				; CODE XREF: CUtlMemory<WordBuf,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_B611C:				; CODE XREF: CUtlMemory<WordBuf,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI7WordBufiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<char  const*, int,	int>::Node_t, int, CUtlMap<char	 const*, int, int>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int, int>::Node_t, int>,	int>>::NextInorder(int)const
_ZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11NextInorderEi proc near
					; CODE XREF: VOX_TouchSounds(CUtlDict<int,int> &,CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>> &,bool)+14Ep
					; CUtlDict<int,int>::RemoveAll(void)+BBp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		cmp	edi, [esi+8]
		jnb	short loc_B614E
		cmp	edi, [esi+1Ch]
		jle	short loc_B6160

loc_B614E:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+17j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NextInorder(int)+C6j ...
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6160:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1Cj
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B64DB

loc_B616D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+3B9j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NextInorder(int)+3E9j
		cmp	edi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B6180
		mov	ebx, [esi+4]
		lea	eax, [edi+edi*2]
		lea	eax, [ebx+eax*8]

loc_B6180:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+45j
		cmp	edi, [eax]
		jz	loc_B6450
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	loc_B62B0

loc_B6197:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+19Bj
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B61AA
		mov	ecx, [esi+4]
		lea	edx, [edi+edi*2]
		lea	edx, [ecx+edx*8]

loc_B61AA:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+6Fj
		cmp	dword ptr [edx+4], 0FFFFFFFFh
		jz	loc_B62D0
		test	al, al
		jz	loc_B6430

loc_B61BC:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+317j
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B61CF
		mov	ebx, [esi+4]
		lea	edx, [edi+edi*2]
		lea	edx, [ebx+edx*8]

loc_B61CF:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+94j
		test	al, al
		mov	ebx, [edx+4]
		jz	short loc_B6220
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_B61E0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+EEj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NextInorder(int)+FEj ...
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B61F3
		mov	edi, [esi+4]
		lea	eax, [ebx+ebx*2]
		lea	eax, [edi+eax*8]

loc_B61F3:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+B8j
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	loc_B614E
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	short loc_B6260

loc_B6207:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+147j
		cmp	ebx, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B621A
		mov	ecx, [esi+4]
		lea	edx, [ebx+ebx*2]
		lea	edx, [ecx+edx*8]

loc_B621A:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+DFj
		test	al, al
		mov	ebx, [edx]
		jnz	short loc_B61E0

loc_B6220:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+A4j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B61E0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B61E0
; ---------------------------------------------------------------------------
		align 10h

loc_B6260:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+D5j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B6280

loc_B6270:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+17Aj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	short loc_B6207
; ---------------------------------------------------------------------------
		align 10h

loc_B6280:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+13Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B6270
; ---------------------------------------------------------------------------
		align 10h

loc_B62B0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+61j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B6460

loc_B62C4:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+35Aj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B6197
; ---------------------------------------------------------------------------

loc_B62D0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+7Ej
		test	al, al
		jz	loc_B6490

loc_B62D8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+377j
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B6345
		mov	ecx, [esi+4]
		lea	edx, [edi+edi*2]
		lea	edx, [ecx+edx*8]
		jmp	short loc_B6345
; ---------------------------------------------------------------------------
		align 10h

loc_B62F0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+21Aj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NextInorder(int)+233j
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B6303
		mov	ecx, [esi+4]
		lea	edx, [edi+edi*2]
		lea	edx, [ecx+edx*8]

loc_B6303:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1C8j
		test	al, al
		mov	edx, [edx+8]
		jz	short loc_B6368

loc_B630A:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+24Cj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NextInorder(int)+27Bj
		cmp	edx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B631D
		lea	eax, [edx+edx*2]
		mov	edx, [esi+4]
		lea	eax, [edx+eax*8]

loc_B631D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1E2j
		cmp	edi, [eax+4]
		jnz	loc_B614E
		cmp	ebx, 0FFFFFFFFh
		jz	loc_B6450
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	short loc_B63B0

loc_B633A:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+297j
		mov	edi, [esi+4]
		lea	edx, [ebx+ebx*2]
		lea	edx, [edi+edx*8]
		mov	edi, ebx

loc_B6345:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1B0j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1BBj
		test	al, al
		mov	ebx, [edx+8]
		jnz	short loc_B62F0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B63D0

loc_B635C:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+2CAj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	short loc_B62F0
; ---------------------------------------------------------------------------
		align 4

loc_B6368:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1D8j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_B630A
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_B630A
; ---------------------------------------------------------------------------

loc_B63B0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+208j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B6400

loc_B63C0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+2FAj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B633A
; ---------------------------------------------------------------------------
		align 10h

loc_B63D0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+22Aj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B635C
; ---------------------------------------------------------------------------
		align 10h

loc_B6400:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+28Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B63C0
; ---------------------------------------------------------------------------
		align 10h

loc_B6430:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+86j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B64AC

loc_B6440:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+3A6j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B61BC
; ---------------------------------------------------------------------------
		align 10h

loc_B6450:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+52j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1F9j
		add	esp, 2Ch
		mov	ebx, 0FFFFFFFFh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6460:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+18Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B62C4
; ---------------------------------------------------------------------------
		align 10h

loc_B6490:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B651E

loc_B64A0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+418j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B62D8
; ---------------------------------------------------------------------------

loc_B64AC:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+30Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B6440
; ---------------------------------------------------------------------------

loc_B64DB:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+37j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B616D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B616D
; ---------------------------------------------------------------------------

loc_B651E:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)+36Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B64A0
_ZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11NextInorderEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<ccpair, int>, int>::Purge(void)
_ZN10CUtlMemoryI15UtlRBTreeNode_tI6ccpairiEiE5PurgeEv proc near
					; CODE XREF: VOX_AddSentenceWavesToResList(void)+1C5p
					; VOX_AddSentenceWavesToResList(void)+1D4p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_B657C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_B6575
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_B6575:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_B657C:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tI6ccpairiEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ccpair, int, bool (*)(ccpair const&, ccpair const&), CUtlMemory<UtlRBTreeNode_t<ccpair, int>, int>>::RemoveAll(void)
_ZN10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE9RemoveAllEv	proc near
					; CODE XREF: VOX_AddSentenceWavesToResList(void)+1B6p
					; .text:000B51C0p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+1Ch]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_B65D6
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_B65C8
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_B65B0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+32j
		cmp	ebx, eax
		jnb	short loc_B660A
		cmp	edx, ebx
		jge	short loc_B65E0

loc_B65B8:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+81j
		add	ebx, 1
		cmp	ebx, eax
		jnb	short loc_B65C8
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_B65B0
		lea	esi, [esi+0]

loc_B65C8:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+18j
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+2Dj ...
		mov	dword ptr [esi+10h], 0FFFFFFFFh
		mov	dword ptr [esi+14h], 0

loc_B65D6:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+11j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B65E0:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+26j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B6618

loc_B65E9:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+96j
					; CUtlRBTree<ccpair,int,bool (*)(ccpair	const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+C2j
		mov	ecx, [esi+4]
		imul	edx, ebx, 310h
		add	ecx, edx
		cmp	[ecx], ebx
		jz	short loc_B6607
		mov	eax, [esi+18h]
		mov	[ecx+4], eax
		mov	eax, [esi+4]
		mov	[eax+edx], ebx
		mov	[esi+18h], ebx

loc_B6607:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+66j
		mov	edx, [esi+1Ch]

loc_B660A:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+22j
		cmp	ebx, edx
		jz	short loc_B65C8
		mov	eax, [esi+8]
		jmp	short loc_B65B8
; ---------------------------------------------------------------------------
		align 8

loc_B6618:				; CODE XREF: CUtlRBTree<ccpair,int,bool	(*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::RemoveAll(void)+57j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B65E9
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<ccpair,int,bool (*)(ccpair const&,ccpair const&),CUtlMemory<UtlRBTreeNode_t<ccpair,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+4,	0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE5LinksEiE10s_Sentinel+8,	0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B65E9
_ZN10CUtlRBTreeI6ccpairiPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_iEiEE9RemoveAllEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<char  const*, int,	int>::Node_t, int, CUtlMap<char	 const*, int, int>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int, int>::Node_t, int>,	int>>::RemoveAll(void)
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE9RemoveAllEv proc	near
					; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+D0j
					; CUtlDict<int,int>::~CUtlDict()+1Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+1Ch]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_B66AE
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_B66A0
		xor	edi, edi
		xor	ebx, ebx
		nop

loc_B6680:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+35j
		cmp	ebx, eax
		jnb	short loc_B66E4
		cmp	edx, ebx
		jge	short loc_B66C0

loc_B6688:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+8Bj
		add	ebx, 1
		cmp	ebx, eax
		jnb	short loc_B66A0
		add	edi, 18h
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_B6680
		mov	esi, esi
		lea	edi, [edi+0]

loc_B66A0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+19j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+2Dj ...
		mov	dword ptr [esi+10h], 0FFFFFFFFh
		mov	dword ptr [esi+14h], 0

loc_B66AE:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+12j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B66C0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+26j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B66F0

loc_B66C9:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+9Ej
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+CAj
		mov	edx, [esi+4]
		add	edx, edi
		cmp	ebx, [edx]
		jz	short loc_B66E1
		mov	eax, [esi+18h]
		mov	[edx+4], eax
		mov	eax, [esi+4]
		mov	[eax+edi], ebx
		mov	[esi+18h], ebx

loc_B66E1:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+70j
		mov	edx, [esi+1Ch]

loc_B66E4:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+22j
		cmp	ebx, edx
		jz	short loc_B66A0
		mov	eax, [esi+8]
		jmp	short loc_B6688
; ---------------------------------------------------------------------------
		align 10h

loc_B66F0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)+67j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B66C9
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B66C9
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlDict<int,	int>::RemoveAll(void)
_ZN8CUtlDictIiiE9RemoveAllEv proc near	; CODE XREF: VOX_AddSentenceWavesToResList(void)+1ABp
					; CUtlDict<int,int>::~CUtlDict()+15p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	esi, [ebp+arg_0]
		test	dl, dl
		mov	ebx, [esi+10h]
		jz	short loc_B6794
		lea	esi, [esi+0]

loc_B6750:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+62j
					; CUtlDict<int,int>::RemoveAll(void)+72j ...
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B6763
		mov	ecx, [esi+4]
		lea	eax, [ebx+ebx*2]
		lea	eax, [ecx+eax*8]

loc_B6763:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+28j
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	loc_B67F2
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	dl, dl
		jz	loc_B6808

loc_B677B:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+EFj
		cmp	ebx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B678E
		lea	eax, [ebx+ebx*2]
		mov	ebx, [esi+4]
		lea	eax, [ebx+eax*8]

loc_B678E:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+53j
		test	dl, dl
		mov	ebx, [eax]
		jnz	short loc_B6750

loc_B6794:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+17j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_B6750
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B6750
; ---------------------------------------------------------------------------

loc_B67D0:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+C5j
		mov	edx, [esi+4]
		lea	eax, [ebx+ebx*2]
		lea	eax, [edx+eax*8]
		mov	eax, [eax+10h]
		mov	[esp], eax	; ptr
		call	free
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_ZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11NextInorderEi ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NextInorder(int)
		mov	ebx, eax

loc_B67F2:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+36j
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_B67D0
		mov	[ebp+arg_0], esi
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		jmp	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE9RemoveAllEv ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)
; ---------------------------------------------------------------------------
		align 4

loc_B6808:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+45j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_B6828

loc_B6818:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+122j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B677B
; ---------------------------------------------------------------------------
		align 8

loc_B6828:				; CODE XREF: CUtlDict<int,int>::RemoveAll(void)+E6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	short loc_B6818
_ZN8CUtlDictIiiE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<WordBuf, int>::Grow(int)
_ZN10CUtlMemoryI7WordBufiE4GrowEi proc near
					; CODE XREF: CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)+94p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_B68B0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_B68C0
		test	eax, eax
		mov	edx, 1
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_B6896
		lea	esi, [esi+0]

loc_B6890:				; CODE XREF: CUtlMemory<WordBuf,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_B6890

loc_B6896:				; CODE XREF: CUtlMemory<WordBuf,int>::Grow(int)+2Aj
					; CUtlMemory<WordBuf,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 8
		test	edx, edx
		jz	short loc_B68F3

loc_B68A2:				; CODE XREF: CUtlMemory<WordBuf,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_B68B0:				; CODE XREF: CUtlMemory<WordBuf,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B68C0:				; CODE XREF: CUtlMemory<WordBuf,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_B6896
		lea	esi, [esi+0]

loc_B68D8:				; CODE XREF: CUtlMemory<WordBuf,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_B68D8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 8
		test	edx, edx
		jnz	short loc_B68A2

loc_B68F3:				; CODE XREF: CUtlMemory<WordBuf,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI7WordBufiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CUtlVector_WordBuf_CUtlMemory_WordBuf_int____InsertBefore(int, int, char *src)
_ZN10CUtlVectorI7WordBuf10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: VOX_AddRndVirtual(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+14Ap
					; VOX_AddNumbers(char *,CUtlVector<WordBuf,CUtlMemory<WordBuf,int>> &)+DBp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
src		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_B6998

loc_B692F:				; CODE XREF: CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)+9Cj
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	edi, esi
		mov	[ebx+0Ch], edx
		sub	edx, esi
		shl	edi, 8
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_B6968
		shl	edx, 8
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		mov	[esp+4], edx	; src
		lea	edx, [esi+1]
		shl	edx, 8
		add	eax, edx
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_B6968:				; CODE XREF: CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)+36j
		add	edi, eax
		jz	short loc_B6983
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp], edi	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_B6983:				; CODE XREF: CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)+5Aj
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B6998:				; CODE XREF: CUtlVector<WordBuf,CUtlMemory<WordBuf,int>>::InsertBefore(int,WordBuf const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI7WordBufiE4GrowEi ; CUtlMemory<WordBuf,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_B692F
_ZN10CUtlVectorI7WordBuf10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<sentencegroup_t, int>::Grow(int)
_ZN10CUtlMemoryI15sentencegroup_tiE4GrowEi proc	near
					; CODE XREF: CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::InsertBefore(int)+84p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_B6A02
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_B6A10
		test	eax, eax
		mov	edx, 6
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_B69E6
		lea	esi, [esi+0]

loc_B69E0:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_B69E0

loc_B69E6:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Grow(int)+2Aj
					; CUtlMemory<sentencegroup_t,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		add	eax, eax
		test	edx, edx
		jz	short loc_B6A45

loc_B69F4:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Grow(int)+93j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_B6A02:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6A10:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_B69E6
		lea	esi, [esi+0]

loc_B6A28:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_B6A28
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		add	eax, eax
		test	edx, edx
		jnz	short loc_B69F4

loc_B6A45:				; CODE XREF: CUtlMemory<sentencegroup_t,int>::Grow(int)+42j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15sentencegroup_tiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<sentencegroup_t, CUtlMemory<sentencegroup_t, int>>::InsertBefore(int)
_ZN10CUtlVectorI15sentencegroup_t10CUtlMemoryIS0_iEE12InsertBeforeEi proc near
					; CODE XREF: VOX_GroupAdd(char	const*)+E6p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_B6AD8

loc_B6A7F:				; CODE XREF: CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::InsertBefore(int)+8Cj
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, [esi+esi*2]
		sub	edx, esi
		sub	edx, 1
		add	edi, edi
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_B6AB9
		lea	edx, [edx+edx*2]
		add	edx, edx
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		mov	[esp+4], edx	; src
		lea	edx, [esi+esi*2+3]
		lea	eax, [eax+edx*2]
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_B6AB9:				; CODE XREF: CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::InsertBefore(int)+36j
		add	edi, eax
		jz	short loc_B6AC3
		mov	word ptr [edi+4], 0FFFFh

loc_B6AC3:				; CODE XREF: CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::InsertBefore(int)+5Bj
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B6AD8:				; CODE XREF: CUtlVector<sentencegroup_t,CUtlMemory<sentencegroup_t,int>>::InsertBefore(int)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI15sentencegroup_tiE4GrowEi ; CUtlMemory<sentencegroup_t,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_B6A7F
_ZN10CUtlVectorI15sentencegroup_t10CUtlMemoryIS0_iEE12InsertBeforeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int,	int>::Node_t, int>, int>::Purge(void)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPKciiE6Node_tEiEiE5PurgeEv proc near
					; CODE XREF: CUtlDict<int,int>::~CUtlDict()+2Cp
					; CUtlDict<int,int>::~CUtlDict()+44j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_B6B1C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_B6B15
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_B6B15:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_B6B1C:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPKciiE6Node_tEiEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlDict<int,	int>::~CUtlDict()
_ZN8CUtlDictIiiED2Ev proc near		; CODE XREF: VOX_AddSentenceWavesToResList(void)+1DFp
					; .text:000B51E9p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	[esp], ebx
		lea	esi, [ebx+4]
		call	_ZN8CUtlDictIiiE9RemoveAllEv ; CUtlDict<int,int>::RemoveAll(void)
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE9RemoveAllEv ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RemoveAll(void)
		mov	dword ptr [ebx+18h], 0FFFFFFFFh
		mov	[esp], esi
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPKciiE6Node_tEiEiE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Purge(void)
		mov	dword ptr [ebx+1Ch], 0FFFFFFFFh
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_0], esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPKciiE6Node_tEiEiE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Purge(void)
_ZN8CUtlDictIiiED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<sentence_t, int>::Grow(int)
_ZN10CUtlMemoryI10sentence_tiE4GrowEi proc near
					; CODE XREF: CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::InsertBefore(int)+94p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_B6BD3
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_B6BE0
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_B6BB6
		lea	esi, [esi+0]

loc_B6BB0:				; CODE XREF: CUtlMemory<sentence_t,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_B6BB0

loc_B6BB6:				; CODE XREF: CUtlMemory<sentence_t,int>::Grow(int)+2Aj
					; CUtlMemory<sentence_t,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_B6C16

loc_B6BC5:				; CODE XREF: CUtlMemory<sentence_t,int>::Grow(int)+94j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_B6BD3:				; CODE XREF: CUtlMemory<sentence_t,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6BE0:				; CODE XREF: CUtlMemory<sentence_t,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_B6BB6
		lea	esi, [esi+0]

loc_B6BF8:				; CODE XREF: CUtlMemory<sentence_t,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_B6BF8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jnz	short loc_B6BC5

loc_B6C16:				; CODE XREF: CUtlMemory<sentence_t,int>::Grow(int)+43j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI10sentence_tiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<sentence_t, CUtlMemory<sentence_t,	int>>::InsertBefore(int)
_ZN10CUtlVectorI10sentence_t10CUtlMemoryIS0_iEE12InsertBeforeEi	proc near
					; CODE XREF: VOX_ReadSentenceFile+1D8p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_B6CB8

loc_B6C4F:				; CODE XREF: CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::InsertBefore(int)+9Cj
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, [esi+esi*2]
		sub	edx, esi
		sub	edx, 1
		shl	edi, 2
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_B6C8B
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		mov	[esp+4], edx	; src
		lea	edx, [esi+esi*2+3]
		lea	eax, [eax+edx*4]
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_B6C8B:				; CODE XREF: CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::InsertBefore(int)+37j
		add	edi, eax
		jz	short loc_B6CA6
		and	byte ptr [edi+8], 80h
		mov	dword ptr [edi], 0
		mov	dword ptr [edi+4], 0
		mov	word ptr [edi+0Ah], 0FFFFh

loc_B6CA6:				; CODE XREF: CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::InsertBefore(int)+5Dj
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_B6CB8:				; CODE XREF: CUtlVector<sentence_t,CUtlMemory<sentence_t,int>>::InsertBefore(int)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI10sentence_tiE4GrowEi ;	CUtlMemory<sentence_t,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_B6C4F
_ZN10CUtlVectorI10sentence_t10CUtlMemoryIS0_iEE12InsertBeforeEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<unsigned char, int>::Grow(int)
_ZN10CUtlMemoryIhiE4GrowEi proc	near	; CODE XREF: CUtlVector<uchar,CUtlMemory<uchar,int>>::EnsureCount(int)+86p
					; CUtlVector<uchar,CUtlMemory<uchar,int>>::SetCount(int)+4Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_B6D1D
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_B6D28
		test	eax, eax
		mov	edx, 20h
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_B6D06
		lea	esi, [esi+0]

loc_B6D00:				; CODE XREF: CUtlMemory<uchar,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_B6D00

loc_B6D06:				; CODE XREF: CUtlMemory<uchar,int>::Grow(int)+2Aj
					; CUtlMemory<uchar,int>::Grow(int)+6Aj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jz	short loc_B6D58

loc_B6D0F:				; CODE XREF: CUtlMemory<uchar,int>::Grow(int)+86j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_B6D1D:				; CODE XREF: CUtlMemory<uchar,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B6D28:				; CODE XREF: CUtlMemory<uchar,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_B6D06
		lea	esi, [esi+0]

loc_B6D40:				; CODE XREF: CUtlMemory<uchar,int>::Grow(int)+7Dj
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_B6D40
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jnz	short loc_B6D0F

loc_B6D58:				; CODE XREF: CUtlMemory<uchar,int>::Grow(int)+3Dj
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIhiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned char, CUtlMemory<unsigned	char, int>>::EnsureCount(int)
_ZN10CUtlVectorIh10CUtlMemoryIhiEE11EnsureCountEi proc near
					; CODE XREF: VOX_GroupInitAllLRUs(void)+6Ap

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [edi+0Ch]
		cmp	ebx, esi
		jge	short loc_B6DAD
		mov	edx, esi
		sub	edx, ebx
		jz	short loc_B6DAD
		mov	ecx, [edi+4]
		mov	eax, ebx
		cmp	esi, ecx
		jg	short loc_B6DE8

loc_B6D9B:				; CODE XREF: CUtlVector<uchar,CUtlMemory<uchar,int>>::EnsureCount(int)+91j
		add	eax, edx
		mov	ecx, [edi]
		mov	[edi+0Ch], eax
		sub	eax, ebx
		sub	eax, edx
		test	eax, eax
		mov	[edi+10h], ecx
		jg	short loc_B6DC0

loc_B6DAD:				; CODE XREF: CUtlVector<uchar,CUtlMemory<uchar,int>>::EnsureCount(int)+1Aj
					; CUtlVector<uchar,CUtlMemory<uchar,int>>::EnsureCount(int)+20j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6DC0:				; CODE XREF: CUtlVector<uchar,CUtlMemory<uchar,int>>::EnsureCount(int)+3Bj
		test	edx, edx
		jle	short loc_B6DAD
		add	ebx, ecx
		add	esi, ecx
		mov	[esp+8], eax	; n
		mov	[esp+4], ebx	; src
		mov	[esp], esi	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_B6DE8:				; CODE XREF: CUtlVector<uchar,CUtlMemory<uchar,int>>::EnsureCount(int)+29j
		mov	eax, esi
		mov	[ebp+var_1C], edx
		sub	eax, ecx
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIhiE4GrowEi ; CUtlMemory<uchar,int>::Grow(int)
		mov	eax, [edi+0Ch]
		mov	edx, [ebp+var_1C]
		jmp	short loc_B6D9B
_ZN10CUtlVectorIh10CUtlMemoryIhiEE11EnsureCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<char, CUtlMemory<char, int>>::EnsureCount(int)
_ZN10CUtlVectorIc10CUtlMemoryIciEE11EnsureCountEi proc near
					; CODE XREF: VOX_CompactSentenceFile(void)+71p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [edi+0Ch]
		cmp	ebx, esi
		jge	short loc_B6E4D
		mov	edx, esi
		sub	edx, ebx
		jz	short loc_B6E4D
		mov	ecx, [edi+4]
		mov	eax, ebx
		cmp	esi, ecx
		jg	short loc_B6E88

loc_B6E3B:				; CODE XREF: CUtlVector<char,CUtlMemory<char,int>>::EnsureCount(int)+91j
		add	eax, edx
		mov	ecx, [edi]
		mov	[edi+0Ch], eax
		sub	eax, ebx
		sub	eax, edx
		test	eax, eax
		mov	[edi+10h], ecx
		jg	short loc_B6E60

loc_B6E4D:				; CODE XREF: CUtlVector<char,CUtlMemory<char,int>>::EnsureCount(int)+1Aj
					; CUtlVector<char,CUtlMemory<char,int>>::EnsureCount(int)+20j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6E60:				; CODE XREF: CUtlVector<char,CUtlMemory<char,int>>::EnsureCount(int)+3Bj
		test	edx, edx
		jle	short loc_B6E4D
		add	ebx, ecx
		add	esi, ecx
		mov	[esp+8], eax	; n
		mov	[esp+4], ebx	; src
		mov	[esp], esi	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_B6E88:				; CODE XREF: CUtlVector<char,CUtlMemory<char,int>>::EnsureCount(int)+29j
		mov	eax, esi
		mov	[ebp+var_1C], edx
		sub	eax, ecx
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIciE4GrowEi ; CUtlMemory<char,int>::Grow(int)
		mov	eax, [edi+0Ch]
		mov	edx, [ebp+var_1C]
		jmp	short loc_B6E3B
_ZN10CUtlVectorIc10CUtlMemoryIciEE11EnsureCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int,	int>::Node_t, int>, int>::Grow(int)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPKciiE6Node_tEiEiE4GrowEi proc near
					; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+4Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_B6F03
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_B6F10
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_B6EE6
		lea	esi, [esi+0]

loc_B6EE0:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_B6EE0

loc_B6EE6:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+2Aj
					; CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 3
		test	edx, edx
		jz	short loc_B6F46

loc_B6EF5:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+94j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_B6F03:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6F10:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_B6EE6
		lea	esi, [esi+0]

loc_B6F28:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_B6F28
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 3
		test	edx, edx
		jnz	short loc_B6EF5

loc_B6F46:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>::Grow(int)+43j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPKciiE6Node_tEiEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<char  const*, int,	int>::Node_t, int, CUtlMap<char	 const*, int, int>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int, int>::Node_t, int>,	int>>::NewNode(void)
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE7NewNodeEv proc near
					; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+88p
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char	 const*,int,int>::Node_t const&)+1B3p

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+18h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_B6F90
		mov	edx, [ebx+4]
		lea	ecx, [eax+eax*2]
		mov	ecx, [edx+ecx*8+4]
		mov	[ebx+20h], edx
		mov	[ebx+18h], ecx
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B6F90:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+10j
		mov	eax, [ebx+1Ch]
		mov	edx, [ebx+8]
		cmp	eax, edx
		jnb	short loc_B6FE0
		add	eax, 1
		cmp	edx, eax
		ja	short loc_B6FE6

loc_B6FA1:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+82j
		lea	eax, [ebx+4]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPKciiE6Node_tEiEiE4GrowEi ;	CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	 const*,int,int>::Node_t,int>,int>::Grow(int)
		mov	eax, [ebx+1Ch]
		mov	edx, [ebx+8]
		cmp	eax, edx
		jnb	short loc_B6FF8
		add	eax, 1
		cmp	edx, eax
		ja	short loc_B6FE6
		mov	eax, 0FFFFFFFFh

loc_B6FCA:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+9Fj
		mov	[ebp+var_C], eax
		mov	dword ptr [esp], offset	aCutlrbtreeOver	; "CUtlRBTree overflow!\n"
		call	Error
		mov	eax, [ebp+var_C]
		jmp	short loc_B6FE6
; ---------------------------------------------------------------------------
		align 10h

loc_B6FE0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+38j
		test	edx, edx
		jz	short loc_B6FA1

loc_B6FE4:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+A1j
		xor	eax, eax

loc_B6FE6:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+3Fj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::NewNode(void)+63j ...
		mov	edx, [ebx+4]
		mov	[ebx+1Ch], eax
		mov	[ebx+20h], edx
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_B6FF8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::NewNode(void)+5Cj
		test	edx, edx
		mov	eax, 0FFFFFFFFh
		jz	short loc_B6FCA
		jmp	short loc_B6FE4
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE7NewNodeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<char  const*, int,	int>::Node_t, int, CUtlMap<char	 const*, int, int>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int, int>::Node_t, int>,	int>>::RotateLeft(int)
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE10RotateLeftEi proc near
					; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+236p
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+717p

var_34		= dword	ptr -34h
var_2D		= byte ptr -2Dh
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		test	al, al
		mov	[ebp+var_2D], al
		jz	loc_B7250

loc_B7031:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+25Ej
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+474j
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_34], 0FFFFFFE8h
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7050
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		shl	edx, 3
		mov	[ebp+var_34], edx
		add	ecx, edx

loc_B7050:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+30j
		cmp	[ebp+var_2D], 0
		mov	edi, [ecx+4]
		jz	loc_B7210

loc_B705D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+434j
		cmp	edi, 0FFFFFFFFh
		mov	edx, [ebx+4]
		jz	loc_B723A

loc_B7069:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+224j
		lea	ecx, [edi+edi*2]
		shl	ecx, 3
		mov	[ebp+var_20], ecx
		add	ecx, edx

loc_B7074:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+236j
		mov	ecx, [ecx]
		mov	eax, [ebp+var_34]
		cmp	[ebp+var_2D], 0
		mov	[edx+eax+4], ecx
		jz	loc_B71C8

loc_B7087:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+1C6j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+1F6j
		cmp	edi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7097
		mov	eax, [ebp+var_20]
		add	eax, [ebx+4]

loc_B7097:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+7Fj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_B70C4
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B72B0

loc_B70A9:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+2AEj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+2DEj
		cmp	edi, 0FFFFFFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B70BB
		mov	eax, [ebp+var_20]
		add	eax, ecx

loc_B70BB:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+A4j
		mov	eax, [eax]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*8+8], esi

loc_B70C4:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+8Aj
		cmp	edi, 0FFFFFFFFh
		jz	short loc_B70F7
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B72F8

loc_B70D6:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+2F6j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+326j
		cmp	esi, 0FFFFFFFFh
		jz	loc_B7370
		mov	ecx, [ebx+4]
		mov	eax, [ebp+var_34]
		mov	[ebp+var_1C], ecx
		add	eax, ecx

loc_B70EA:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+36Bj
		mov	eax, [eax+8]
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_20]
		mov	[ecx+edx+8], eax

loc_B70F7:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+B7j
		cmp	esi, [ebx+10h]
		jz	loc_B71C0
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	cl, cl
		jz	loc_B7340
		cmp	esi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B711F

loc_B7119:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+353j
		mov	eax, [ebp+var_34]
		add	eax, [ebx+4]

loc_B711F:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+107j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+359j
		test	cl, cl
		mov	edx, [eax+8]
		jz	loc_B7278

loc_B712A:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+4B7j
		cmp	edx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7141

loc_B7134:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+291j
		lea	edx, [edx+edx*2]
		lea	eax, ds:0[edx*8]
		add	eax, [ebx+4]

loc_B7141:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+122j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+297j
		cmp	esi, [eax]
		jnz	short loc_B7190
		test	cl, cl
		jz	loc_B7380

loc_B714D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+37Ej
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+3AEj
		cmp	esi, 0FFFFFFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B715F
		mov	eax, [ebp+var_34]
		add	eax, ecx

loc_B715F:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+148j
		mov	eax, [eax+8]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*8], edi

loc_B7168:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+1A4j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+1B3j
		mov	eax, [ebx+4]
		cmp	esi, 0FFFFFFFFh
		mov	edx, [ebp+var_20]
		mov	[eax+edx], esi
		jz	short loc_B7180
		mov	eax, [ebx+4]
		mov	ecx, [ebp+var_34]
		mov	[eax+ecx+8], edi

loc_B7180:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+164j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B7190:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+133j
		test	cl, cl
		jz	loc_B73C8

loc_B7198:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+3C6j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+3F6j
		cmp	esi, 0FFFFFFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B71AA
		mov	eax, [ebp+var_34]
		add	eax, ecx

loc_B71AA:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+193j
		mov	eax, [eax+8]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*8+4], edi
		jmp	short loc_B7168
; ---------------------------------------------------------------------------
		align 10h

loc_B71C0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+EAj
		mov	[ebx+10h], edi
		jmp	short loc_B7168
; ---------------------------------------------------------------------------
		align 4

loc_B71C8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+71j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7087
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7087
; ---------------------------------------------------------------------------
		align 10h

loc_B7210:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+47j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B7410
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_2D], al
		mov	edx, [ebx+4]
		jnz	loc_B7069

loc_B723A:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+53j
		mov	[ebp+var_20], 0FFFFFFE8h
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7074
; ---------------------------------------------------------------------------
		align 10h

loc_B7250:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+1Bj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B7450
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	[ebp+var_2D], dl
		jmp	loc_B7031
; ---------------------------------------------------------------------------
		align 8

loc_B7278:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+114j
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_B7490
		cmp	edx, 0FFFFFFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jnz	loc_B7134
		jmp	loc_B7141
; ---------------------------------------------------------------------------
		align 10h

loc_B72B0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+93j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B70A9
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B70A9
; ---------------------------------------------------------------------------
		align 8

loc_B72F8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+C0j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B70D6
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B70D6
; ---------------------------------------------------------------------------
		align 10h

loc_B7340:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+F9j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B74D0

loc_B7354:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+4EAj
		cmp	esi, 0FFFFFFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jnz	loc_B7119
		jmp	loc_B711F
; ---------------------------------------------------------------------------
		align 10h

loc_B7370:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+C9j
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	[ebp+var_1C], edx
		jmp	loc_B70EA
; ---------------------------------------------------------------------------

loc_B7380:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+137j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B714D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B714D
; ---------------------------------------------------------------------------
		align 8

loc_B73C8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+182j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7198
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7198
; ---------------------------------------------------------------------------
		align 10h

loc_B7410:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+20Ej
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	[ebp+var_2D], dl
		jmp	loc_B705D
; ---------------------------------------------------------------------------
		align 10h

loc_B7450:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+24Ej
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	[ebp+var_2D], cl
		jmp	loc_B7031
; ---------------------------------------------------------------------------
		align 10h

loc_B7490:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+27Cj
		mov	[ebp+var_24], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_B712A
; ---------------------------------------------------------------------------
		align 10h

loc_B74D0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)+33Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7354
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE10RotateLeftEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<char  const*, int,	int>::Node_t, int, CUtlMap<char	 const*, int, int>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int, int>::Node_t, int>,	int>>::RotateRight(int)
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11RotateRightEi proc near
					; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+4D0p
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+5F7p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		test	al, al
		jz	loc_B7740

loc_B751E:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+25Bj
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_38], 0FFFFFFE8h
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B753D
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		shl	edx, 3
		mov	[ebp+var_38], edx
		add	ecx, edx

loc_B753D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+2Dj
		test	al, al
		mov	edi, [ecx]
		jz	loc_B76F8

loc_B7547:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+206j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+236j
		cmp	edi, 0FFFFFFFFh
		mov	edx, [ebx+4]
		jz	loc_B7900
		lea	ecx, [edi+edi*2]
		shl	ecx, 3
		mov	eax, ecx
		mov	[ebp+var_34], ecx
		add	eax, edx

loc_B7560:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+40Cj
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_38]
		mov	[edx+ecx], eax
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B76B0

loc_B7576:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+1BEj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+1EEj
		cmp	edi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7586
		mov	eax, [ebp+var_34]
		add	eax, [ebx+4]

loc_B7586:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+7Ej
		cmp	dword ptr [eax+4], 0FFFFFFFFh
		jz	short loc_B75B5
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B7798

loc_B7599:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+2A6j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+2D6j
		cmp	edi, 0FFFFFFFFh
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B75AB
		mov	eax, [ebp+var_34]
		add	eax, edx

loc_B75AB:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+A4j
		mov	eax, [eax+4]
		lea	eax, [eax+eax*2]
		mov	[edx+eax*8+8], esi

loc_B75B5:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+8Aj
		cmp	edi, 0FFFFFFFFh
		jz	short loc_B75E8
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B77E0

loc_B75C7:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+2EEj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+31Ej
		cmp	esi, 0FFFFFFFFh
		jz	loc_B7860
		mov	edx, [ebx+4]
		mov	eax, [ebp+var_38]
		mov	[ebp+var_1C], edx
		add	eax, edx

loc_B75DB:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+36Bj
		mov	eax, [eax+8]
		mov	edx, [ebp+var_1C]
		mov	ecx, [ebp+var_34]
		mov	[edx+ecx+8], eax

loc_B75E8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+B8j
		cmp	esi, [ebx+10h]
		jz	loc_B76A8
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	cl, cl
		jz	loc_B7828
		cmp	esi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7610

loc_B760A:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+34Bj
		mov	eax, [ebp+var_38]
		add	eax, [ebx+4]

loc_B7610:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+108j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+351j
		test	cl, cl
		mov	edx, [eax+8]
		jz	loc_B7760

loc_B761B:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+487j
		cmp	edx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7632

loc_B7625:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+289j
		lea	edx, [edx+edx*2]
		lea	eax, ds:0[edx*8]
		add	eax, [ebx+4]

loc_B7632:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+123j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+28Fj
		cmp	esi, [eax+4]
		jnz	short loc_B7680
		test	cl, cl
		jz	loc_B7870

loc_B763F:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+37Ej
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+3AEj
		cmp	esi, 0FFFFFFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7651
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_B7651:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+14Aj
		mov	eax, [eax+8]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*8+4], edi

loc_B765B:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+1A3j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+1ABj
		mov	eax, [ebx+4]
		cmp	esi, 0FFFFFFFFh
		mov	ecx, [ebp+var_34]
		mov	[eax+ecx+4], esi
		jz	short loc_B7674
		mov	eax, [ebx+4]
		mov	edx, [ebp+var_38]
		mov	[eax+edx+8], edi

loc_B7674:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+168j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B7680:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+135j
		test	cl, cl
		jz	loc_B78B8

loc_B7688:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+3C6j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::RotateRight(int)+3F6j
		cmp	esi, 0FFFFFFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B769A
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_B769A:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+193j
		mov	eax, [eax+8]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*8], edi
		jmp	short loc_B765B
; ---------------------------------------------------------------------------
		align 4

loc_B76A8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+EBj
		mov	[ebx+10h], edi
		jmp	short loc_B765B
; ---------------------------------------------------------------------------
		align 10h

loc_B76B0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+70j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7576
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7576
; ---------------------------------------------------------------------------
		align 8

loc_B76F8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+41j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7547
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7547
; ---------------------------------------------------------------------------
		align 10h

loc_B7740:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+18j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B7918

loc_B7754:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+442j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B751E
; ---------------------------------------------------------------------------

loc_B7760:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+115j
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_B7950
		cmp	edx, 0FFFFFFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jnz	loc_B7625
		jmp	loc_B7632
; ---------------------------------------------------------------------------
		align 8

loc_B7798:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+93j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7599
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7599
; ---------------------------------------------------------------------------
		align 10h

loc_B77E0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+C1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B75C7
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B75C7
; ---------------------------------------------------------------------------
		align 8

loc_B7828:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+FAj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B7990

loc_B783C:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+4BAj
		cmp	esi, 0FFFFFFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jnz	loc_B760A
		jmp	loc_B7610
; ---------------------------------------------------------------------------
		align 10h

loc_B7860:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+CAj
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B75DB
; ---------------------------------------------------------------------------

loc_B7870:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+139j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B763F
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B763F
; ---------------------------------------------------------------------------
		align 8

loc_B78B8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+182j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7688
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7688
; ---------------------------------------------------------------------------
		align 10h

loc_B7900:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+4Dj
		mov	[ebp+var_34], 0FFFFFFE8h
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7560
; ---------------------------------------------------------------------------
		align 8

loc_B7918:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+24Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7754
; ---------------------------------------------------------------------------
		align 10h

loc_B7950:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+274j
		mov	[ebp+var_24], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_B761B
; ---------------------------------------------------------------------------
		align 10h

loc_B7990:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)+336j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B783C
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11RotateRightEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<char  const*, int,	int>::Node_t, int, CUtlMap<char	 const*, int, int>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int, int>::Node_t, int>,	int>>::InsertRebalance(int)
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE15InsertRebalanceEi proc near
					; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+D8p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		nop

loc_B79D0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+180j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+23Bj ...
		mov	eax, [ebx+10h]
		cmp	edi, eax
		jz	short loc_B7A21
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	dl, dl
		jz	loc_B7CE8

loc_B79E6:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+343j
		cmp	edi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B79F9
		mov	ecx, [ebx+4]
		lea	eax, [edi+edi*2]
		lea	eax, [ecx+eax*8]

loc_B79F9:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+2Ej
		test	dl, dl
		mov	esi, [eax+8]
		jz	loc_B7CA0

loc_B7A04:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+2EEj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+31Ej
		cmp	esi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7A17
		mov	edx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [edx+eax*8]

loc_B7A17:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+4Cj
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_B7A40
		mov	eax, [ebx+10h]

loc_B7A21:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+15j
		mov	esi, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [esi+eax*8]
		mov	dword ptr [eax+0Ch], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B7A40:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+5Cj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	loc_B7C20

loc_B7A4F:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+27Bj
		cmp	edi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7A62
		mov	esi, [ebx+4]
		lea	edx, [edi+edi*2]
		lea	edx, [esi+edx*8]

loc_B7A62:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+97j
		test	al, al
		mov	esi, [edx+8]
		jz	loc_B7C00

loc_B7A6D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+25Bj
		cmp	esi, 0FFFFFFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7A80
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*8]

loc_B7A80:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+B5j
		test	al, al
		mov	edx, [edx+8]
		jz	loc_B7C70

loc_B7A8B:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+2D1j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+517j
		cmp	esi, 0FFFFFFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7A9E
		lea	ecx, [esi+esi*2]
		shl	ecx, 3
		add	ecx, [ebx+4]

loc_B7A9E:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+D3j
		mov	ecx, [ecx+8]
		test	al, al
		mov	[ebp+var_1C], ecx
		jz	loc_B7C40

loc_B7AAC:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+2A1j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+5B7j
		cmp	[ebp+var_1C], 0FFFFFFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7AC6
		mov	ecx, [ebp+var_1C]
		lea	ecx, [ecx+ecx*2]
		mov	[ebp+var_1C], ecx
		shl	ecx, 3
		add	ecx, [ebx+4]

loc_B7AC6:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+F5j
		cmp	esi, [ecx]
		jnz	short loc_B7B48
		test	al, al
		jz	loc_B7DF0

loc_B7AD2:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+451j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+827j
		cmp	edx, 0FFFFFFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7AE5
		lea	ecx, [edx+edx*2]
		shl	ecx, 3
		add	ecx, [ebx+4]

loc_B7AE5:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+11Aj
		test	al, al
		mov	ecx, [ecx+4]
		jz	loc_B7D40

loc_B7AF0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+39Aj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+3D0j
		cmp	ecx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7B03
		lea	eax, [ecx+ecx*2]
		shl	eax, 3
		add	eax, [ebx+4]

loc_B7B03:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+138j
		mov	eax, [eax+0Ch]
		test	eax, eax
		jnz	loc_B7E20

loc_B7B0E:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+1C5j
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*8]
		mov	dword ptr [eax+0Ch], 1
		lea	eax, [ecx+ecx*2]
		mov	edi, [ebx+4]
		lea	eax, [edi+eax*8]
		mov	edi, edx
		mov	dword ptr [eax+0Ch], 1
		lea	eax, [edx+edx*2]
		mov	ecx, [ebx+4]
		lea	eax, [ecx+eax*8]
		mov	dword ptr [eax+0Ch], 0
		jmp	loc_B79D0
; ---------------------------------------------------------------------------
		align 4

loc_B7B48:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+108j
		test	al, al
		jz	loc_B7D10

loc_B7B50:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+371j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+687j
		cmp	edx, 0FFFFFFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7B63
		lea	ecx, [edx+edx*2]
		shl	ecx, 3
		add	ecx, [ebx+4]

loc_B7B63:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+198j
		test	al, al
		mov	ecx, [ecx]
		jz	loc_B7D98

loc_B7B6D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+3F2j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+428j
		cmp	ecx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7B80
		lea	eax, [ecx+ecx*2]
		shl	eax, 3
		add	eax, [ebx+4]

loc_B7B80:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+1B5j
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_B7B0E
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	loc_B80A8

loc_B7B96:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+709j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+867j
		cmp	edi, 0FFFFFFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7BA9
		lea	ecx, [edi+edi*2]
		shl	ecx, 3
		add	ecx, [ebx+4]

loc_B7BA9:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+1DEj
		test	al, al
		mov	ecx, [ecx+8]
		jz	loc_B8050

loc_B7BB4:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+6AAj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+6E0j
		cmp	ecx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7BC7
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+4]
		lea	eax, [ecx+eax*8]

loc_B7BC7:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+1FCj
		cmp	edi, [eax]
		jz	loc_B7FB0
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*8]

loc_B7BD8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+642j
		mov	dword ptr [eax+0Ch], 1
		lea	eax, [edx+edx*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*8]
		mov	dword ptr [eax+0Ch], 0
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE10RotateLeftEi ; CUtlRBTree<CUtlMap<char	const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)
		jmp	loc_B79D0
; ---------------------------------------------------------------------------

loc_B7C00:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+A7j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B7EE0

loc_B7C14:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+54Aj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7A6D
; ---------------------------------------------------------------------------

loc_B7C20:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+89j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B7F10

loc_B7C34:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+57Aj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7A4F
; ---------------------------------------------------------------------------

loc_B7C40:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+E6j
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jnz	loc_B7F40
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7AAC
; ---------------------------------------------------------------------------
		align 10h

loc_B7C70:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+C5j
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jnz	loc_B7EA0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7A8B
; ---------------------------------------------------------------------------
		align 10h

loc_B7CA0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+3Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7A04
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7A04
; ---------------------------------------------------------------------------
		align 8

loc_B7CE8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+20j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B7F80

loc_B7CFC:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+5EAj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B79E6
; ---------------------------------------------------------------------------
		align 10h

loc_B7D10:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+18Aj
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jnz	loc_B8010
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7B50
; ---------------------------------------------------------------------------
		align 10h

loc_B7D40:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+12Aj
		mov	[ebp+var_20], edx
		mov	[ebp+var_24], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		mov	ecx, [ebp+var_24]
		jz	loc_B7AF0
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_20]
		jmp	loc_B7AF0
; ---------------------------------------------------------------------------
		align 4

loc_B7D98:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+1A7j
		mov	[ebp+var_20], edx
		mov	[ebp+var_24], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		mov	ecx, [ebp+var_24]
		jz	loc_B7B6D
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_20]
		jmp	loc_B7B6D
; ---------------------------------------------------------------------------
		align 10h

loc_B7DF0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+10Cj
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jnz	loc_B81B0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7AD2
; ---------------------------------------------------------------------------
		align 10h

loc_B7E20:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+148j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	al, al
		jz	loc_B8188

loc_B7E2F:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+7E9j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+987j
		cmp	edi, 0FFFFFFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7E42
		lea	ecx, [edi+edi*2]
		shl	ecx, 3
		add	ecx, [ebx+4]

loc_B7E42:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+477j
		test	al, al
		mov	ecx, [ecx+8]
		jz	loc_B8130

loc_B7E4D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+78Aj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+7C0j
		cmp	ecx, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7E60
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebx+4]
		lea	eax, [ecx+eax*8]

loc_B7E60:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+495j
		cmp	edi, [eax+4]
		jz	loc_B80D0
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*8]

loc_B7E72:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+762j
		mov	dword ptr [eax+0Ch], 1
		lea	eax, [edx+edx*2]
		mov	ecx, [ebx+4]
		lea	eax, [ecx+eax*8]
		mov	dword ptr [eax+0Ch], 0
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11RotateRightEi ;	CUtlRBTree<CUtlMap<char	 const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)
		jmp	loc_B79D0
; ---------------------------------------------------------------------------
		align 10h

loc_B7EA0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+2C4j
		mov	[ebp+var_20], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_20]
		jmp	loc_B7A8B
; ---------------------------------------------------------------------------
		align 10h

loc_B7EE0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+24Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7C14
; ---------------------------------------------------------------------------
		align 10h

loc_B7F10:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+26Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7C34
; ---------------------------------------------------------------------------
		align 10h

loc_B7F40:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+294j
		mov	[ebp+var_20], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_20]
		jmp	loc_B7AAC
; ---------------------------------------------------------------------------
		align 10h

loc_B7F80:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+336j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7CFC
; ---------------------------------------------------------------------------
		align 10h

loc_B7FB0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+209j
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE11RotateRightEi ;	CUtlRBTree<CUtlMap<char	 const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateRight(int)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	dl, dl
		jz	loc_B82E8

loc_B7FCB:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+943j
		cmp	esi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B7FDE
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*8]

loc_B7FDE:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+613j
		test	dl, dl
		mov	edi, [eax+8]
		jz	loc_B82A0

loc_B7FE9:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+8EEj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+91Ej
		cmp	edi, 0FFFFFFFFh
		jz	loc_B835C
		lea	edx, [edi+edi*2]
		mov	edi, [ebx+4]
		lea	edx, [edi+edx*8]
		mov	eax, edx

loc_B7FFD:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+9A7j
		mov	edx, [edx+8]
		mov	edi, esi
		jmp	loc_B7BD8
; ---------------------------------------------------------------------------
		align 10h

loc_B8010:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+364j
		mov	[ebp+var_20], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_20]
		jmp	loc_B7B50
; ---------------------------------------------------------------------------
		align 10h

loc_B8050:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+1EEj
		mov	[ebp+var_20], edx
		mov	[ebp+var_24], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		mov	ecx, [ebp+var_24]
		jz	loc_B7BB4
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_20]
		jmp	loc_B7BB4
; ---------------------------------------------------------------------------
		align 4

loc_B80A8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+1D0j
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jnz	loc_B81F0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7B96
; ---------------------------------------------------------------------------
		align 10h

loc_B80D0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+4A3j
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE10RotateLeftEi ; CUtlRBTree<CUtlMap<char	const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::RotateLeft(int)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		test	dl, dl
		jz	loc_B8278

loc_B80EB:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+8D3j
		cmp	esi, 0FFFFFFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	short loc_B80FE
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*8]

loc_B80FE:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+733j
		test	dl, dl
		mov	edi, [eax+8]
		jz	loc_B8230

loc_B8109:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+87Ej
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+8AEj
		cmp	edi, 0FFFFFFFFh
		jz	loc_B834C
		lea	edx, [edi+edi*2]
		mov	edi, [ebx+4]
		lea	edx, [edi+edx*8]
		mov	eax, edx

loc_B811D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+997j
		mov	edx, [edx+8]
		mov	edi, esi
		jmp	loc_B7E72
; ---------------------------------------------------------------------------
		align 10h

loc_B8130:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+487j
		mov	[ebp+var_20], edx
		mov	[ebp+var_24], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		mov	ecx, [ebp+var_24]
		jz	loc_B7E4D
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_20]
		jmp	loc_B7E4D
; ---------------------------------------------------------------------------
		align 4

loc_B8188:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+469j
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jnz	loc_B8310
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7E2F
; ---------------------------------------------------------------------------
		align 10h

loc_B81B0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+444j
		mov	[ebp+var_20], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_20]
		jmp	loc_B7AD2
; ---------------------------------------------------------------------------
		align 10h

loc_B81F0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+6FCj
		mov	[ebp+var_20], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_20]
		jmp	loc_B7B96
; ---------------------------------------------------------------------------
		align 10h

loc_B8230:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+743j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B8109
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B8109
; ---------------------------------------------------------------------------
		align 8

loc_B8278:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+725j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B836C

loc_B828C:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+9D6j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B80EB
; ---------------------------------------------------------------------------
		align 10h

loc_B82A0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+623j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B7FE9
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B7FE9
; ---------------------------------------------------------------------------
		align 8

loc_B82E8:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+605j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_B839B

loc_B82FC:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+A05j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jmp	loc_B7FCB
; ---------------------------------------------------------------------------
		align 10h

loc_B8310:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+7DCj
		mov	[ebp+var_20], edx
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	edx, [ebp+var_20]
		jmp	loc_B7E2F
; ---------------------------------------------------------------------------

loc_B834C:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+74Cj
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		sub	eax, 18h
		jmp	loc_B811D
; ---------------------------------------------------------------------------

loc_B835C:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+62Cj
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		sub	eax, 18h
		jmp	loc_B7FFD
; ---------------------------------------------------------------------------

loc_B836C:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+8C6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B828C
; ---------------------------------------------------------------------------

loc_B839B:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)+936j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B82FC
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE15InsertRebalanceEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<char  const*, int,	int>::Node_t, int, CUtlMap<char	 const*, int, int>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*, int, int>::Node_t, int>,	int>>::Insert(CUtlMap<char  const*, int, int>::Node_t const&)
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE6InsertERKS4_ proc near
					; CODE XREF: VOX_Touch(char  const*,CUtlDict<int,int> &)+45p
					; Cmd_AddClientCmdCanExecuteVar(char  const*)+41p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+10h]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_B840F
		jmp	loc_B8580
; ---------------------------------------------------------------------------
		align 10h

loc_B83F0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+65j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B84E0

loc_B83FD:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+121j
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char	 const*,int,int>::Node_t const&)+154j
		mov	eax, [ebx+4]
		mov	eax, [eax+edx*8]
		mov	edx, 1
		cmp	eax, 0FFFFFFFFh
		jz	short loc_B8452

loc_B840D:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+80j
		mov	esi, eax

loc_B840F:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+12j
		mov	eax, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edi, ds:0[edx*8]
		mov	[ebp+var_20], edx
		add	eax, edi
		add	eax, 10h
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	dword ptr [ebx]
		mov	edx, [ebp+var_20]
		test	al, al
		jnz	short loc_B83F0
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		jz	loc_B8530

loc_B8444:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+16Ej
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char	 const*,int,int>::Node_t const&)+19Ej
		mov	eax, [ebx+4]
		xor	edx, edx
		mov	eax, [eax+edi+4]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_B840D

loc_B8452:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+3Bj
		mov	byte ptr [ebp+var_20], dl
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE7NewNodeEv ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	 const*,int,int>::Node_t,int>,int>>::NewNode(void)
		mov	ecx, eax
		lea	eax, [eax+eax*2]
		shl	eax, 3
		mov	[ebp+var_1C], eax
		add	eax, [ebx+4]
		cmp	esi, 0FFFFFFFFh
		mov	[eax+8], esi
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	dword ptr [eax+0Ch], 0
		movzx	edx, byte ptr [ebp+var_20]
		jz	loc_B85B1
		test	dl, dl
		mov	eax, [ebx+4]
		jnz	loc_B8578
		mov	[eax+edi+4], ecx

loc_B849E:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+1ABj
					; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char	 const*,int,int>::Node_t const&)+1E4j
		mov	[esp+4], ecx
		mov	[ebp+var_20], ecx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE15InsertRebalanceEi ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::InsertRebalance(int)
		mov	eax, [ebp+var_1C]
		add	dword ptr [ebx+14h], 1
		add	eax, [ebx+4]
		mov	ecx, [ebp+var_20]
		cmp	eax, 0FFFFFFF0h
		jz	short loc_B84CD
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebx]
		mov	[eax+10h], edx
		mov	edx, [ebx+4]
		mov	[eax+14h], edx

loc_B84CD:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+EDj
		add	esp, 2Ch
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B84E0:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+27j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jz	loc_B83FD
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_20]
		jmp	loc_B83FD
; ---------------------------------------------------------------------------
		align 10h

loc_B8530:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+6Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_B8444
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel	; `guard variable for'CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel, 0FFFFFFFFh ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Links(int)::s_Sentinel
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+4, 0FFFFFFFFh
		mov	dword ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE5LinksEiE10s_Sentinel+8, 0FFFFFFFFh
		call	__cxa_guard_release
		jmp	loc_B8444
; ---------------------------------------------------------------------------
		align 8

loc_B8578:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+C4j
		mov	[eax+edi], ecx
		jmp	loc_B849E
; ---------------------------------------------------------------------------

loc_B8580:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+14j
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE7NewNodeEv ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char  const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char	 const*,int,int>::Node_t,int>,int>>::NewNode(void)
		mov	ecx, eax
		lea	eax, [eax+eax*2]
		shl	eax, 3
		mov	[ebp+var_1C], eax
		add	eax, [ebx+4]
		mov	dword ptr [eax+8], 0FFFFFFFFh
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	dword ptr [eax+0Ch], 0

loc_B85B1:				; CODE XREF: CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)+B9j
		mov	[ebx+10h], ecx
		jmp	loc_B849E
_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE6InsertERKS4_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseAutoCompleteFileList__AutoCompletionFunc(int, char *haystack, char *s)
_ZN25CBaseAutoCompleteFileList18AutoCompletionFuncEPKcPA64_c proc near
					; CODE XREF: g_exec_CompletionFunc(char	 const*,char (*)[64])+24p

var_130		= dword	ptr -130h
arg		= dword	ptr -12Ch
var_128		= byte ptr -128h
var_C8		= byte ptr -0C8h
var_68		= byte ptr -68h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
haystack	= dword	ptr  0Ch
s		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 14Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+haystack]
		mov	eax, [ebx]
		mov	[esp], esi	; haystack
		mov	[esp+4], eax	; needle
		mov	[ebp+arg], eax
		call	strstr
		test	eax, eax
		jz	short loc_B85FC
		mov	edx, [ebp+arg]
		mov	[esp], edx	; s
		call	strlen
		lea	esi, [esi+eax+1]

loc_B85FC:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+28j
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_B860C
		cmp	byte ptr [eax],	0
		jnz	loc_B8840

loc_B860C:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+41j
					; CBaseAutoCompleteFileList::AutoCompletionFunc(char  const*,char (*)[64])+292j
		mov	eax, [ebx+8]
		lea	ebx, [ebp+var_128]
		mov	dword ptr [esp+8], offset a_S ;	"*.%s"
		mov	dword ptr [esp+4], 60h ; maxlen
		mov	[esp], ebx	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_B8631:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+2C4j
		lea	eax, [ebp+var_68]
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], 0
		lea	edi, [ebp+var_30]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZN15CUtlSymbolTableC2Eiib ; CUtlSymbolTable::CUtlSymbolTable(int,int,bool)
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_Z13Sys_FindFirstPKcPci	; Sys_FindFirst(char  const*,char *,int)
		test	eax, eax
		mov	ebx, eax
		jz	loc_B8750
		lea	edi, [ebp+var_30]
		nop

loc_B86A0:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+186j
		lea	edx, [ebp+var_C8]
		mov	[esp+0Ch], ebx	; arg
		mov	dword ptr [esp+8], (offset aDFS+9) ; format
		mov	dword ptr [esp+4], 60h ; maxlen
		mov	[esp], edx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		cmp	byte ptr [esi],	0
		jnz	loc_B8800

loc_B86CB:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+260j
		lea	eax, [ebp+var_68]
		mov	[esp+8], ebx
		lea	edx, [ebp+var_1C]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZN15CUtlSymbolTable9AddStringEPKc ; CUtlSymbolTable::AddString(char  const*)
		mov	ebx, [edi+0Ch]
		sub	esp, 4
		test	ebx, ebx
		jle	short loc_B8712
		mov	edx, [edi]
		xor	eax, eax
		movzx	ecx, [ebp+var_1C]
		cmp	[edx], cx
		jnz	short loc_B870A
		jmp	short loc_B8728
; ---------------------------------------------------------------------------
		align 10h

loc_B8700:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+150j
		cmp	[edx+eax*2], cx
		jz	loc_B8828

loc_B870A:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+136j
		add	eax, 1
		cmp	eax, ebx
		nop
		jnz	short loc_B8700

loc_B8712:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+129j
					; CBaseAutoCompleteFileList::AutoCompletionFunc(char  const*,char (*)[64])+271j
		lea	eax, [ebp+var_1C]
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	[esp], edi
		call	_ZN10CUtlVectorI10CUtlSymbol10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<CUtlSymbol,CUtlMemory<CUtlSymbol,int>>::InsertBefore(int,CUtlSymbol const&)
		lea	esi, [esi+0]

loc_B8728:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+138j
					; CBaseAutoCompleteFileList::AutoCompletionFunc(char  const*,char (*)[64])+25Aj ...
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], 0
		call	_Z12Sys_FindNextPci ; Sys_FindNext(char	*,int)
		cmp	dword ptr [edi+0Ch], 3Fh
		mov	ebx, eax
		jg	short loc_B8750
		test	eax, eax
		jnz	loc_B86A0
		lea	esi, [esi+0]

loc_B8750:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+D6j
					; CBaseAutoCompleteFileList::AutoCompletionFunc(char  const*,char (*)[64])+182j
		call	_Z13Sys_FindClosev ; Sys_FindClose(void)
		mov	eax, [ebp+var_24]
		test	eax, eax
		jle	short loc_B87C4
		mov	ebx, [ebp+s]
		xor	esi, esi
		lea	esi, [esi+0]

loc_B8768:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+202j
		mov	eax, [edi]
		lea	edx, [ebp+var_1A]
		movzx	eax, word ptr [eax+esi*2]
		mov	[esp+4], edx
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_68]
		mov	[esp], eax
		call	_ZNK15CUtlSymbolTable6StringE10CUtlSymbol ; CUtlSymbolTable::String(CUtlSymbol)
		mov	edx, [ebp+arg]
		mov	[esp+10h], eax
		mov	dword ptr [esp+8], offset aSS_3	; "%s %s"
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp], ebx	; s
		mov	[esp+0Ch], edx	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	[esp], ebx	; s
		add	esi, 1
		call	strlen
		mov	byte ptr [ebx+eax-4], 0
		mov	eax, [edi+0Ch]
		add	ebx, 40h
		cmp	eax, esi
		jg	short loc_B8768

loc_B87C4:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+19Aj
		mov	[ebp+var_130], eax
		mov	[esp], edi
		mov	[ebp+var_24], 0
		call	_ZN10CUtlMemoryI10CUtlSymboliE5PurgeEv ; CUtlMemory<CUtlSymbol,int>::Purge(void)
		mov	edx, [ebp+var_30]
		mov	[esp], edi
		mov	[ebp+var_20], edx
		call	_ZN10CUtlMemoryI10CUtlSymboliE5PurgeEv ; CUtlMemory<CUtlSymbol,int>::Purge(void)
		lea	edx, [ebp+var_68]
		mov	[esp], edx
		call	_ZN15CUtlSymbolTableD2Ev ; CUtlSymbolTable::~CUtlSymbolTable()
		mov	eax, [ebp+var_130]
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_B8800:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+105j
		mov	[esp], esi	; s
		call	strlen
		mov	[esp+4], esi
		mov	[esp+8], eax
		mov	[esp], ebx
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jnz	loc_B8728
		jmp	loc_B86CB
; ---------------------------------------------------------------------------
		align 4

loc_B8828:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+144j
		cmp	eax, 0FFFFFFFFh
		jnz	loc_B8728
		jmp	loc_B8712
; ---------------------------------------------------------------------------
		align 10h

loc_B8840:				; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+46j
		mov	dword ptr [esp+4], offset aNull	; "NULL"
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	loc_B860C
		mov	eax, [ebx+8]
		mov	[esp+10h], eax
		mov	eax, [ebx+4]
		lea	ebx, [ebp+var_128]
		mov	dword ptr [esp+8], offset byte_1F05BC ;	format
		mov	dword ptr [esp+4], 60h ; maxlen
		mov	[esp], ebx	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_B8631
_ZN25CBaseAutoCompleteFileList18AutoCompletionFuncEPKcPA64_c endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [ebp-24h], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryI10CUtlSymboliE5PurgeEv ; CUtlMemory<CUtlSymbol,int>::Purge(void)
		mov	eax, [ebp-30h]
		mov	[esp], edi
		mov	[ebp-20h], eax
		call	_ZN10CUtlMemoryI10CUtlSymboliE5PurgeEv ; CUtlMemory<CUtlSymbol,int>::Purge(void)
		lea	eax, [ebp-68h]
		mov	[esp], eax
		call	_ZN15CUtlSymbolTableD2Ev ; CUtlSymbolTable::~CUtlSymbolTable()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CUtlSymbol, int>::Purge(void)
_ZN10CUtlMemoryI10CUtlSymboliE5PurgeEv proc near
					; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+214p
					; CBaseAutoCompleteFileList::AutoCompletionFunc(char  const*,char (*)[64])+222p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_B88EC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_B88E5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_B88E5:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_B88EC:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI10CUtlSymboliE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CUtlSymbol, int>::Grow(int)
_ZN10CUtlMemoryI10CUtlSymboliE4GrowEi proc near
					; CODE XREF: CUtlVector<CUtlSymbol,CUtlMemory<CUtlSymbol,int>>::InsertBefore(int,CUtlSymbol const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_B8960
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_B8970
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_B8947
		lea	esi, [esi+0]

loc_B8938:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_B8938

loc_B8947:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Grow(int)+30j
					; CUtlMemory<CUtlSymbol,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		add	eax, eax
		test	edx, edx
		jz	short loc_B8991

loc_B8952:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Grow(int)+8Fj
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_B8960:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B8970:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 10h
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_B8947
		db	66h
		nop

loc_B8980:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_B8980
		mov	edx, [ebx]
		mov	[ebx+4], eax
		add	eax, eax
		test	edx, edx
		jnz	short loc_B8952

loc_B8991:				; CODE XREF: CUtlMemory<CUtlSymbol,int>::Grow(int)+50j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI10CUtlSymboliE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CUtlSymbol, CUtlMemory<CUtlSymbol,	int>>::InsertBefore(int, CUtlSymbol const&)
_ZN10CUtlVectorI10CUtlSymbol10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: CBaseAutoCompleteFileList::AutoCompletionFunc(char	 const*,char (*)[64])+160p
					; CGameEventManager::LoadEventsFromFile(char  const*)+124p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_B8A20

loc_B89CF:				; CODE XREF: CUtlVector<CUtlSymbol,CUtlMemory<CUtlSymbol,int>>::InsertBefore(int,CUtlSymbol const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, [esi+esi]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_B8A01
		add	edx, edx
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*2+2]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_B8A01:				; CODE XREF: CUtlVector<CUtlSymbol,CUtlMemory<CUtlSymbol,int>>::InsertBefore(int,CUtlSymbol const&)+34j
		add	edi, eax
		jz	short loc_B8A0E
		mov	eax, [ebp+arg_8]
		movzx	eax, word ptr [eax]
		mov	[edi], ax

loc_B8A0E:				; CODE XREF: CUtlVector<CUtlSymbol,CUtlMemory<CUtlSymbol,int>>::InsertBefore(int,CUtlSymbol const&)+53j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B8A20:				; CODE XREF: CUtlVector<CUtlSymbol,CUtlMemory<CUtlSymbol,int>>::InsertBefore(int,CUtlSymbol const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI10CUtlSymboliE4GrowEi ;	CUtlMemory<CUtlSymbol,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_B89CF
_ZN10CUtlVectorI10CUtlSymbol10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::SetRate(int, bool)
_ZThn4_N11CBaseClient7SetRateEib proc near ; DATA XREF:	.rodata:`vtable	for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient7SetRateEib ; CBaseClient::SetRate(int,bool)
_ZThn4_N11CBaseClient7SetRateEib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SetRate(int, bool)
_ZN11CBaseClient7SetRateEib proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::SetRate(int,bool)+5j
					; CHLTVClient::SetRate(int,bool)+42j ...

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [eax+0C4h]
		test	eax, eax
		jz	short locret_B8A80
		mov	ecx, [eax]
		mov	[ebp+var_C], edx
		fild	[ebp+var_C]
		mov	[ebp+arg_0], eax
		fstp	[ebp+arg_4]
		mov	eax, [ecx+70h]
		leave
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

locret_B8A80:				; CODE XREF: CBaseClient::SetRate(int,bool)+14j
		leave
		retn
_ZN11CBaseClient7SetRateEib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetRate(void)const
_ZThn4_NK11CBaseClient7GetRateEv proc near ; DATA XREF:	.rodata:`vtable	for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient7GetRateEv ; CBaseClient::GetRate(void)
_ZThn4_NK11CBaseClient7GetRateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetRate(void)const
_ZNK11CBaseClient7GetRateEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::GetRate(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0C4h]
		test	eax, eax
		jz	short loc_B8AC0
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+14h]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_B8AC0:				; CODE XREF: CBaseClient::GetRate(void)+Ej
		xor	eax, eax
		pop	ebp
		retn
_ZNK11CBaseClient7GetRateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::SetUpdateRate(int, bool)
_ZThn4_N11CBaseClient13SetUpdateRateEib	proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient13SetUpdateRateEib ; CBaseClient::SetUpdateRate(int,bool)
_ZThn4_N11CBaseClient13SetUpdateRateEib	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SetUpdateRate(int, bool)
_ZN11CBaseClient13SetUpdateRateEib proc	near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::SetUpdateRate(int,bool)+5j
					; CGameClient::SetUpdateRate(int,bool)+69j
					; DATA XREF: ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		fld1
		mov	ebp, esp
		sub	esp, 4
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jle	short loc_B8B02
		mov	edx, 64h
		cmp	eax, 64h
		cmovle	edx, eax
		mov	[ebp+var_4], edx
		fild	[ebp+var_4]
		fdivp	st(1), st

loc_B8B02:				; CODE XREF: CBaseClient::SetUpdateRate(int,bool)+Dj
		mov	eax, [ebp+arg_0]
		fstp	dword ptr [eax+220h]
		leave
		retn
_ZN11CBaseClient13SetUpdateRateEib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetUpdateRate(void)const
_ZThn4_NK11CBaseClient13GetUpdateRateEv	proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient13GetUpdateRateEv ; CBaseClient::GetUpdateRate(void)
_ZThn4_NK11CBaseClient13GetUpdateRateEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetUpdateRate(void)const
_ZNK11CBaseClient13GetUpdateRateEv proc	near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetUpdateRate(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	eax, [ebp+arg_0]
		fld	dword ptr [eax+220h]
		xor	eax, eax
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_B8B50
		fdivr	ds:flt_1EBCFC
		fstp	[ebp+var_4]
		cvttss2si eax, [ebp+var_4]
		jmp	short locret_B8B58
; ---------------------------------------------------------------------------
		align 10h

loc_B8B50:				; CODE XREF: CBaseClient::GetUpdateRate(void)+19j
		fstp	st
		lea	esi, [esi+0]

locret_B8B58:				; CODE XREF: CBaseClient::GetUpdateRate(void)+29j
		leave
		retn
_ZNK11CBaseClient13GetUpdateRateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetDeltaFrame(int)
_ZN11CBaseClient13GetDeltaFrameEi proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseClient13GetDeltaFrameEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::WriteGameSounds(bf_write	&)
_ZN11CBaseClient15WriteGameSoundsER8bf_write proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseClient15WriteGameSoundsER8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessTick(NET_Tick *)
_ZThn8_N11CBaseClient11ProcessTickEP8NET_Tick proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient11ProcessTickEP8NET_Tick ; CBaseClient::ProcessTick(NET_Tick *)
_ZThn8_N11CBaseClient11ProcessTickEP8NET_Tick endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessTick(NET_Tick *)
_ZN11CBaseClient11ProcessTickEP8NET_Tick proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessTick(NET_Tick *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+0C4h]
		mov	ecx, [esi+18h]
		mov	edx, [eax]
		mov	[esp+8], ecx
		mov	ecx, [esi+14h]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+110h]
		mov	edx, [esi+10h]
		mov	eax, [ebx]
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_4], edx
		mov	eax, [eax+0B0h]
		mov	esp, ebp
		pop	ebp
		jmp	eax
_ZN11CBaseClient11ProcessTickEP8NET_Tick endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessStringCmd(NET_StringCmd *)
_ZThn8_N11CBaseClient16ProcessStringCmdEP13NET_StringCmd proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient16ProcessStringCmdEP13NET_StringCmd ; CBaseClient::ProcessStringCmd(NET_StringCmd	*)
_ZThn8_N11CBaseClient16ProcessStringCmdEP13NET_StringCmd endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessStringCmd(NET_StringCmd *)
_ZN11CBaseClient16ProcessStringCmdEP13NET_StringCmd proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessStringCmd(NET_StringCmd *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [ecx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+58h]
		mov	eax, 1
		leave
		retn
_ZN11CBaseClient16ProcessStringCmdEP13NET_StringCmd endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::DemoRestart(void)
_ZN11CBaseClient11DemoRestartEv	proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseClient11DemoRestartEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetNetworkID(void)const
_ZThn4_NK11CBaseClient12GetNetworkIDEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_4		= dword	ptr  8

		sub	[esp+arg_4], 4
		jmp	short _ZNK11CBaseClient12GetNetworkIDEv	; CBaseClient::GetNetworkID(void)
_ZThn4_NK11CBaseClient12GetNetworkIDEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetNetworkID(void)const
_ZNK11CBaseClient12GetNetworkIDEv proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetNetworkID(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	edx, [edx+59h]
		mov	word ptr [eax+4], 0
		mov	dword ptr [eax], 1
		mov	ecx, edx
		shr	edx, 1
		and	ecx, 1
		mov	[eax+8], edx
		mov	[eax+0Ch], ecx
		pop	ebp
		retn	4
_ZNK11CBaseClient12GetNetworkIDEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::SetMaxRoutablePayloadSize(int)
_ZThn4_N11CBaseClient25SetMaxRoutablePayloadSizeEi proc	near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient25SetMaxRoutablePayloadSizeEi ; CBaseClient::SetMaxRoutablePayloadSize(int)
_ZThn4_N11CBaseClient25SetMaxRoutablePayloadSizeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SetMaxRoutablePayloadSize(int)
_ZN11CBaseClient25SetMaxRoutablePayloadSizeEi proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::SetMaxRoutablePayloadSize(int)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0C4h]
		test	eax, eax
		jz	short loc_B8CA0
		mov	ecx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [ecx+114h]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_B8CA0:				; CODE XREF: CBaseClient::SetMaxRoutablePayloadSize(int)+Ej
		pop	ebp
		retn
_ZN11CBaseClient25SetMaxRoutablePayloadSizeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetMaxAckTickCount(void)const
_ZThn4_NK11CBaseClient18GetMaxAckTickCountEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient18GetMaxAckTickCountEv ;	CBaseClient::GetMaxAckTickCount(void)
_ZThn4_NK11CBaseClient18GetMaxAckTickCountEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetMaxAckTickCount(void)const
_ZNK11CBaseClient18GetMaxAckTickCountEv	proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetMaxAckTickCount(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		pop	ebp
		mov	ecx, [edx+0D4h]
		mov	eax, [edx+0D0h]
		cmp	[edx+0CCh], ecx
		cmovge	ecx, [edx+0CCh]
		cmp	ecx, eax
		cmovge	eax, ecx
		retn
_ZNK11CBaseClient18GetMaxAckTickCountEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessCmdKeyValues(CLC_CmdKeyValues *)
_ZThn8_N11CBaseClient19ProcessCmdKeyValuesEP16CLC_CmdKeyValues proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient19ProcessCmdKeyValuesEP16CLC_CmdKeyValues	; CBaseClient::ProcessCmdKeyValues(CLC_CmdKeyValues *)
_ZThn8_N11CBaseClient19ProcessCmdKeyValuesEP16CLC_CmdKeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessCmdKeyValues(CLC_CmdKeyValues *)
_ZN11CBaseClient19ProcessCmdKeyValuesEP16CLC_CmdKeyValues proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessCmdKeyValues(CLC_CmdKeyValues *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseClient19ProcessCmdKeyValuesEP16CLC_CmdKeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IgnoreTempEntity(CEventInfo *)
_ZN11CBaseClient16IgnoreTempEntityEP10CEventInfo proc near
					; CODE XREF: CGameClient::IgnoreTempEntity(CEventInfo *)+19j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		add	eax, 1
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		add	eax, 1Ch
		mov	[esp], eax
		call	_ZN22CEngineRecipientFilter14IncludesPlayerEi ;	CEngineRecipientFilter::IncludesPlayer(int)
		leave
		xor	eax, 1
		retn
_ZN11CBaseClient16IgnoreTempEntityEP10CEventInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::UpdateUserSettings(void)
_ZN11CBaseClient18UpdateUserSettingsEv proc near
					; CODE XREF: CHLTVClient::UpdateUserSettings(void)+39j
					; CGameClient::UpdateUserSettings(void)+34p
					; DATA XREF: ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	esi, [eax+3Ch]
		mov	dword ptr [esp+8], 7530h ; int
		mov	dword ptr [esp+4], (offset aSv_mincmdrate+9) ; src
		mov	eax, [ebx+88h]
		mov	[esp], eax	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	dword ptr [esp+8], 0
		call	esi
		mov	eax, [ebx]
		mov	esi, [eax+44h]
		mov	dword ptr [esp+8], 14h ; int
		mov	dword ptr [esp+4], offset aCl_updaterate ; "cl_updaterate"
		mov	eax, [ebx+88h]
		mov	[esp], eax	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	dword ptr [esp+8], 0
		call	esi
		mov	eax, [ebx]
		mov	esi, [eax+84h]
		mov	dword ptr [esp+8], 4ECh	; int
		mov	dword ptr [esp+4], offset aNet_maxroutabl ; "net_maxroutable"
		mov	eax, [ebx+88h]
		mov	[esp], eax	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		mov	[esp], ebx
		mov	[esp+4], eax
		call	esi
		mov	eax, [ebx+90h]
		mov	ecx, [ebx+0Ch]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+0BCh]
		mov	byte ptr [ebx+8Ch], 0
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN11CBaseClient18UpdateUserSettingsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::Reconnect(void)
_ZThn4_N11CBaseClient9ReconnectEv proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient9ReconnectEv ; CBaseClient::Reconnect(void)
_ZThn4_N11CBaseClient9ReconnectEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::Reconnect(void)
_ZN11CBaseClient9ReconnectEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::Reconnect(void)+5j
					; CGameClient::Reconnect(void)+22j
					; DATA XREF: ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0C8h]
		mov	dword ptr [esp], offset	aForcingClientR	; "Forcing client reconnect (%i)\n"
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+90h]
		mov	eax, [ebx+0C4h]
		mov	[ebp+var_1C], 1
		mov	dword ptr [ebx+0C8h], 2
		lea	ecx, [ebp+var_20]
		mov	[ebp+var_18], 0
		mov	[ebp+var_20], (offset _ZTV15NET_SignonState+8)
		mov	[ebp+var_10], 2
		mov	[ebp+var_C], 0FFFFFFFFh
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseClient9ReconnectEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ClientPrintf(char  const*, ...)
_ZThn4_N11CBaseClient12ClientPrintfEPKcz proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient12ClientPrintfEPKcz ; CBaseClient::ClientPrintf(char  const*,...)
_ZThn4_N11CBaseClient12ClientPrintfEPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__ClientPrintf(int, char *format, char	arg)
_ZN11CBaseClient12ClientPrintfEPKcz proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ClientPrintf(char  const*,...)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_C1C		= dword	ptr -0C1Ch
var_C18		= byte ptr -0C18h
var_C14		= dword	ptr -0C14h
var_C0C		= dword	ptr -0C0Ch
s		= byte ptr -408h
arg_0		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 0C34h
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C0C], ebx
		mov	[ebp+var_C14], 0
		lea	ecx, [ebp+var_C1C]
		mov	[ebp+var_C1C], (offset _ZTV9SVC_Print+8)
		mov	[ebp+var_C18], 0
		mov	eax, [eax+0C4h]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		add	esp, 0C34h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseClient12ClientPrintfEPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessListenEvents(CLC_ListenEvents *)
_ZThn8_N11CBaseClient19ProcessListenEventsEP16CLC_ListenEvents proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CGameCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient19ProcessListenEventsEP16CLC_ListenEvents	; CBaseClient::ProcessListenEvents(CLC_ListenEvents *)
_ZThn8_N11CBaseClient19ProcessListenEventsEP16CLC_ListenEvents endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessListenEvents(CLC_ListenEvents *)
_ZN11CBaseClient19ProcessListenEventsEP16CLC_ListenEvents proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessListenEvents(CLC_ListenEvents *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 1
		sub	esp, 2Ch
		mov	edi, ds:g_GameEventManager
		mov	edx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	eax, [edi]
		mov	[esp], edi
		mov	[esp+4], edx
		call	dword ptr [eax+18h]
		xor	ecx, ecx
		jmp	short loc_B8F9B
; ---------------------------------------------------------------------------
		align 10h

loc_B8F90:				; CODE XREF: CBaseClient::ProcessListenEvents(CLC_ListenEvents *)+48j
		add	ecx, 1
		cmp	ecx, 200h
		jz	short loc_B8FE9

loc_B8F9B:				; CODE XREF: CBaseClient::ProcessListenEvents(CLC_ListenEvents *)+28j
					; CBaseClient::ProcessListenEvents(CLC_ListenEvents *)+87j
		mov	edx, ebx
		mov	eax, ecx
		shl	edx, cl
		shr	eax, 5
		test	[esi+eax*4+10h], edx
		jz	short loc_B8F90
		mov	[esp+4], ecx
		mov	[ebp+var_1C], ecx
		mov	[esp], edi
		call	_ZN17CGameEventManager18GetEventDescriptorEi ; CGameEventManager::GetEventDescriptor(int)
		mov	ecx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_B9000
		mov	edx, [ebp+arg_0]
		mov	dword ptr [esp+0Ch], 2
		mov	[esp+8], eax
		mov	[esp], edi
		mov	[esp+4], edx
		call	_ZN17CGameEventManager11AddListenerEPvP20CGameEventDescriptori ; CGameEventManager::AddListener(void *,CGameEventDescriptor *,int)
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		cmp	ecx, 200h
		jnz	short loc_B8F9B

loc_B8FE9:				; CODE XREF: CBaseClient::ProcessListenEvents(CLC_ListenEvents *)+39j
		add	esp, 2Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9000:				; CODE XREF: CBaseClient::ProcessListenEvents(CLC_ListenEvents *)+5Ej
		mov	[esp+4], ecx
		mov	dword ptr [esp], offset	aProcesslistene	; "ProcessListenEvents:	game event %i not "...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseClient19ProcessListenEventsEP16CLC_ListenEvents endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessClientInfo(CLC_ClientInfo *)
_ZThn8_N11CBaseClient17ProcessClientInfoEP14CLC_ClientInfo proc	near
					; DATA XREF: .rodata:`vtable for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient17ProcessClientInfoEP14CLC_ClientInfo ; CBaseClient::ProcessClientInfo(CLC_ClientInfo *)
_ZThn8_N11CBaseClient17ProcessClientInfoEP14CLC_ClientInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessClientInfo(CLC_ClientInfo	*)
_ZN11CBaseClient17ProcessClientInfoEP14CLC_ClientInfo proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessClientInfo(CLC_ClientInfo *)+5j
					; CHLTVClient::ProcessClientInfo(CLC_ClientInfo	*)+4j ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	eax, [esi+10h]
		mov	[ebx+9Ch], eax
		mov	eax, ds:hltv
		test	eax, eax
		jz	loc_B90F0
		mov	[esp], eax
		call	_ZN11CHLTVServer9IsTVRelayEv ; CHLTVServer::IsTVRelay(void)
		test	al, al
		jz	loc_B90F0

loc_B9064:				; CODE XREF: CBaseClient::ProcessClientInfo(CLC_ClientInfo *)+CAj
		movzx	eax, byte ptr [esi+18h]
		mov	[ebx+94h], al

loc_B906E:				; CODE XREF: CBaseClient::ProcessClientInfo(CLC_ClientInfo *)+D7j
		movzx	eax, byte ptr [esi+19h]
		mov	dword ptr [ebx+0C0h], 0
		mov	[ebx+95h], al
		mov	eax, [esi+1Ch]
		mov	[ebx+64h], eax
		lea	eax, [esi+20h]
		mov	[esp+4], eax	; src
		lea	eax, [ebx+68h]
		mov	[esp], eax	; dest
		mov	dword ptr [esp+8], 20h ; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		xor	eax, eax

loc_B90A4:				; CODE XREF: CBaseClient::ProcessClientInfo(CLC_ClientInfo *)+90j
		mov	edx, [esi+eax*4+40h]
		mov	dword ptr [ebx+eax*8+0A4h], 0
		mov	[ebx+eax*8+0A0h], edx
		add	eax, 1
		cmp	eax, 4
		jnz	short loc_B90A4
		mov	eax, [ebx+90h]
		mov	esi, [esi+14h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+3Ch]
		cmp	esi, eax
		jz	short loc_B90DF
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+34h]

loc_B90DF:				; CODE XREF: CBaseClient::ProcessClientInfo(CLC_ClientInfo *)+A5j
		add	esp, 10h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B90F0:				; CODE XREF: CBaseClient::ProcessClientInfo(CLC_ClientInfo *)+1Ej
					; CBaseClient::ProcessClientInfo(CLC_ClientInfo	*)+2Ej
		mov	eax, dword ptr ds:tv_enable+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jnz	loc_B9064
		mov	byte ptr [ebx+94h], 0
		jmp	loc_B906E
_ZN11CBaseClient17ProcessClientInfoEP14CLC_ClientInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SpawnPlayer(void)
_ZN11CBaseClient11SpawnPlayerEv	proc near ; CODE XREF: CHLTVClient::SpawnPlayer(void)+63p
					; CGameClient::SpawnPlayer(void)+66p
					; DATA XREF: ...

var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], offset	aCbaseclientSpa	; "CBaseClient::SpawnPlayer"
		call	COM_TimestampedLog
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		test	al, al
		jz	loc_B91E0

loc_B9138:				; CODE XREF: CBaseClient::SpawnPlayer(void)+FEj
		mov	eax, [ebx+90h]
		mov	esi, ds:host_frametime_stddeviation
		mov	edi, ds:host_frametime_unbounded
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		lea	edx, [ebp+var_4C]
		mov	[ebp+var_38], edi
		mov	[ebp+var_3C], eax
		mov	eax, [ebx]
		mov	[ebp+var_34], esi
		mov	[esp+4], edx
		mov	[esp], ebx
		mov	[ebp+var_44], 0
		mov	[ebp+var_4C], (offset _ZTV8NET_Tick+8)
		mov	[ebp+var_48], 0
		mov	dword ptr [esp+8], 1
		call	dword ptr [eax+5Ch]
		mov	eax, [ebx+90h]
		mov	dword ptr [ebx+0C8h], 5
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+3Ch]
		mov	edx, [ebx+0C8h]
		mov	[ebp+var_2C], 1
		mov	[ebp+var_1C], eax
		mov	eax, [ebx]
		mov	[ebp+var_28], 0
		mov	[esp], ebx
		mov	[ebp+var_20], edx
		lea	edx, [ebp+var_30]
		mov	[ebp+var_30], (offset _ZTV15NET_SignonState+8)
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		call	dword ptr [eax+5Ch]
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B91E0:				; CODE XREF: CBaseClient::SpawnPlayer(void)+22j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0ECh]
		mov	eax, framesnapshotmanager
		mov	dword ptr [esp+8], 800h
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZN21CFrameSnapshotManager19CreateEmptySnapshotEii ; CFrameSnapshotManager::CreateEmptySnapshot(int,int)
		mov	[ebx+0DCh], eax
		jmp	loc_B9138
_ZN11CBaseClient11SpawnPlayerEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::FireGameEvent(IGameEvent	*)
_ZN11CBaseClient13FireGameEventEP10IGameEvent proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_464		= byte ptr -464h
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_5C		= dword	ptr -5Ch
var_50		= byte ptr -50h
var_38		= byte ptr -38h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 49Ch
		mov	[ebp+var_20], 0
		mov	eax, ds:g_Telemetry
		mov	[ebp+var_1C], 0
		mov	[ebp+var_470], 0
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_46C], 0
		test	eax, eax
		jz	short loc_B92C9
		lea	edx, [ebp+var_20]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+28h], offset _ZZN11CBaseClient13FireGameEventEP10IGameEventE12__FUNCTION__ ; "FireGameEvent"
		mov	dword ptr [esp+24h], (offset aDFS+9)
		mov	dword ptr [esp+20h], offset _ZZN11CBaseClient13FireGameEventEP10IGameEventE6tm_fmt ; CBaseClient::FireGameEvent(IGameEvent *)::tm_fmt
		mov	dword ptr [esp+1Ch], 27Ch
		mov	dword ptr [esp+18h], offset aHomeBuildbot_1 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 32h
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	ebx, ds:g_Telemetry
		mov	[ebp+var_470], eax
		mov	[ebp+var_46C], edx

loc_B92C9:				; CODE XREF: CBaseClient::FireGameEvent(IGameEvent *)+3Aj
		lea	eax, [ebp+var_50]
		mov	[ebp+var_60], 1
		mov	[ebp+var_5C], 0
		mov	[ebp+var_64], (offset _ZTV13SVC_GameEvent+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	esi, [ebp+var_38]
		mov	[esp], esi
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		lea	eax, [ebp+var_464]
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 400h
		mov	[esp+4], eax
		mov	[esp], esi
		call	_ZN8bf_write12StartWritingEPviii ; bf_write::StartWriting(void *,int,int,int)
		mov	eax, ds:g_GameEventManager
		mov	edx, [eax]
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx+30h]
		test	al, al
		jz	short loc_B93B0
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0C4h]
		test	eax, eax
		jz	short loc_B9367
		mov	edx, [eax]
		lea	ecx, [ebp+var_64]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		test	al, al
		jz	short loc_B93D0

loc_B9367:				; CODE XREF: CBaseClient::FireGameEvent(IGameEvent *)+11Fj
					; CBaseClient::FireGameEvent(IGameEvent	*)+1A8j ...
		test	ebx, ebx
		mov	[ebp+var_64], (offset _ZTV11INetMessage+8)
		jz	short loc_B93A4
		mov	eax, [ebp+var_470]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_46C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_B93A4:				; CODE XREF: CBaseClient::FireGameEvent(IGameEvent *)+150j
		add	esp, 49Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B93B0:				; CODE XREF: CBaseClient::FireGameEvent(IGameEvent *)+112j
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+8]
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aGameeventmanag	; "GameEventManager: failed to serialize e"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	short loc_B9367
; ---------------------------------------------------------------------------
		align 10h

loc_B93D0:				; CODE XREF: CBaseClient::FireGameEvent(IGameEvent *)+145j
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+8]
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aGameeventman_0	; "GameEventManager: failed to send event "...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_B9367
_ZN11CBaseClient13FireGameEventEP10IGameEvent endp

; ---------------------------------------------------------------------------

loc_B93ED:				; CODE XREF: .text:000B9434j
		test	ebx, ebx
		mov	dword ptr [ebp-64h], (offset _ZTV11INetMessage+8)
		mov	esi, eax
		jz	short loc_B942C
		mov	eax, [ebp-470h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-46Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_B942C:				; CODE XREF: .text:000B93F8j
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short loc_B93ED
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::Disconnect(char  const*, ...)
_ZThn4_N11CBaseClient10DisconnectEPKcz proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient10DisconnectEPKcz	; CBaseClient::Disconnect(char	const*,...)
_ZThn4_N11CBaseClient10DisconnectEPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__Disconnect(int, char	*format, char arg)
_ZN11CBaseClient10DisconnectEPKcz proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::Disconnect(char  const*,...)+5j
					; CGameClient::Disconnect(char	const*,...)+167p
					; DATA XREF: ...

s		= byte ptr -408h
arg_0		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 410h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+0C8h]
		test	edx, edx
		jnz	short loc_B9478
		add	esp, 410h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B9478:				; CODE XREF: CBaseClient::Disconnect(char  const*,...)+16j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	[esp+4], ebx
		lea	esi, [ebp+s]
		mov	[esp], eax
		call	_ZN13CSteam3Server22NotifyClientDisconnectEP11CBaseClient ; CSteam3Server::NotifyClientDisconnect(CBaseClient *)
		mov	eax, [ebx+90h]
		mov	dword ptr [ebx+0C8h], 0
		mov	ecx, [ebx+0Ch]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+0BCh]
		lea	eax, [ebp+arg]
		mov	[esp], esi	; s
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		mov	[esp+8], esi
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aDroppedSFromSe	; "Dropped %s from server (%s)\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, ds:g_GameEventManager
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ebx
		call	dword ptr [edx+18h]
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jz	short loc_B951F
		mov	edx, [eax]
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+94h]
		mov	dword ptr [ebx+0C4h], 0

loc_B951F:				; CODE XREF: CBaseClient::Disconnect(char  const*,...)+B4j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		mov	dword ptr [esp], offset	aUpdateplayers ; "UpdatePlayers"
		call	NotifyDedicatedServerUI
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	[esp], eax
		call	_ZN13CSteam3Server24SendUpdatedServerDetailsEv ; CSteam3Server::SendUpdatedServerDetails(void)
		add	esp, 410h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN11CBaseClient10DisconnectEPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::Connect(char  const*, int, INetChannel *, bool, int)
_ZThn4_N11CBaseClient7ConnectEPKciP11INetChannelbi proc	near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient7ConnectEPKciP11INetChannelbi ; CBaseClient::Connect(char	 const*,int,INetChannel	*,bool,int)
_ZThn4_N11CBaseClient7ConnectEPKciP11INetChannelbi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::Connect(char  const*, int, INetChannel *, bool, int)
_ZN11CBaseClient7ConnectEPKciP11INetChannelbi proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::Connect(char  const*,int,INetChannel *,bool,int)+5j
					; CGameClient::Connect(char  const*,int,INetChannel *,bool,int)+33p
					; DATA XREF: ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp], offset	aCbaseclientCon	; "CBaseClient::Connect"
		mov	edx, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_24], edx
		movzx	edx, [ebp+arg_10]
		mov	[ebp+var_28], eax
		mov	[ebp+var_19], dl
		call	COM_TimestampedLog
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	dword ptr [esp+4], offset aUserinfo ; "userinfo"
		mov	esi, eax
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	eax, [ebp+var_24]
		mov	[ebx+88h], esi
		mov	edx, [ebp+var_20]
		mov	[ebx+14h], eax
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+0E4h]
		movzx	eax, [ebp+var_19]
		test	edi, edi
		fldz
		mov	[ebx+0C4h], edi
		fstp	qword ptr [ebx+1F0h]
		mov	[ebx+1ECh], al
		jz	short loc_B960A
		mov	eax, [ebx+90h]
		test	eax, eax
		jz	short loc_B960A
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+64h]
		test	al, al
		jnz	short loc_B9630

loc_B960A:				; CODE XREF: CBaseClient::Connect(char	const*,int,INetChannel *,bool,int)+92j
					; CBaseClient::Connect(char  const*,int,INetChannel *,bool,int)+9Cj ...
		mov	dword ptr [ebx+0C8h], 2
		mov	edx, [ebp+var_28]
		cmp	[ebp+var_19], 0
		mov	[ebx+98h], edx
		jnz	short loc_B9650
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9630:				; CODE XREF: CBaseClient::Connect(char	const*,int,INetChannel *,bool,int)+A8j
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	dword ptr [edx+0F8h]
		jmp	short loc_B960A
; ---------------------------------------------------------------------------
		align 10h

loc_B9650:				; CODE XREF: CBaseClient::Connect(char	const*,int,INetChannel *,bool,int)+C1j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	[ebp+arg_4], ebx
		mov	[ebp+arg_0], eax
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN13CSteam3Server24NotifyLocalClientConnectEP11CBaseClient ; CSteam3Server::NotifyLocalClientConnect(CBaseClient *)
_ZN11CBaseClient7ConnectEPKciP11INetChannelbi endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ActivatePlayer(void)
_ZN11CBaseClient14ActivatePlayerEv proc	near
					; CODE XREF: CGameClient::ActivatePlayer(void)+Fp
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], offset	aCbaseclientAct	; "CBaseClient::ActivatePlayer"
		call	COM_TimestampedLog
		mov	eax, [ebx+90h]
		mov	ecx, [ebx+0Ch]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+0BCh]
		mov	dword ptr [ebx+0C8h], 6
		call	_Z19MapReslistGeneratorv ; MapReslistGenerator(void)
		mov	[esp], eax
		call	_ZN20CMapReslistGenerator13OnPlayerSpawnEv ; CMapReslistGenerator::OnPlayerSpawn(void)
		mov	[ebp+arg_0], offset aUpdateplayers ; "UpdatePlayers"
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	NotifyDedicatedServerUI
_ZN11CBaseClient14ActivatePlayerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessSignonState(NET_SignonState *)
_ZThn8_N11CBaseClient18ProcessSignonStateEP15NET_SignonState proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient18ProcessSignonStateEP15NET_SignonState ;	CBaseClient::ProcessSignonState(NET_SignonState	*)
_ZThn8_N11CBaseClient18ProcessSignonStateEP15NET_SignonState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessSignonState(NET_SignonState *)
_ZN11CBaseClient18ProcessSignonStateEP15NET_SignonState	proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessSignonState(NET_SignonState *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, 1
		mov	eax, [edi+10h]
		cmp	eax, 7
		jz	short loc_B972C
		cmp	eax, 2
		jg	short loc_B9770

loc_B9717:				; CODE XREF: CBaseClient::ProcessSignonState(NET_SignonState *)+9Cj
		cmp	[ebx+0C8h], eax
		jz	short loc_B9740
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	esi, 1
		call	dword ptr [eax+34h]

loc_B972C:				; CODE XREF: CBaseClient::ProcessSignonState(NET_SignonState *)+20j
					; CBaseClient::ProcessSignonState(NET_SignonState *)+A8j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9740:				; CODE XREF: CBaseClient::ProcessSignonState(NET_SignonState *)+2Dj
		mov	ecx, [edi+14h]
		mov	edx, [ebx]
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], ecx
		call	dword ptr [edx+0C4h]
		mov	ebx, [ebp+var_C]
		mov	esi, eax
		mov	edi, [ebp+var_4]
		mov	eax, esi
		mov	esi, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9770:				; CODE XREF: CBaseClient::ProcessSignonState(NET_SignonState *)+25j
		mov	eax, [edi+14h]
		mov	[ebp+var_1C], eax
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+3Ch]
		cmp	[ebp+var_1C], eax
		jnz	short loc_B9790
		mov	eax, [edi+10h]
		jmp	short loc_B9717
; ---------------------------------------------------------------------------
		align 10h

loc_B9790:				; CODE XREF: CBaseClient::ProcessSignonState(NET_SignonState *)+97j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+34h]
		jmp	short loc_B972C
_ZN11CBaseClient18ProcessSignonStateEP15NET_SignonState	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ExecuteStringCommand(char  const*)
_ZThn4_N11CBaseClient20ExecuteStringCommandEPKc	proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient20ExecuteStringCommandEPKc ; CBaseClient::ExecuteStringCommand(char  const*)
_ZThn4_N11CBaseClient20ExecuteStringCommandEPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ExecuteStringCommand(char  const*)
_ZN11CBaseClient20ExecuteStringCommandEPKc proc	near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ExecuteStringCommand(char  const*)+5j
					; CHLTVClient::ExecuteStringCommand(char  const*)+19p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_B97C6
		cmp	byte ptr [eax],	0
		jnz	short loc_B97D0

loc_B97C6:				; CODE XREF: CBaseClient::ExecuteStringCommand(char  const*)+Fj
					; CBaseClient::ExecuteStringCommand(char  const*)+32j
		add	esp, 14h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B97D0:				; CODE XREF: CBaseClient::ExecuteStringCommand(char  const*)+14j
		mov	dword ptr [esp+4], offset aDemorestart ; "demorestart"
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_B97C6
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+50h]
		add	esp, 14h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseClient20ExecuteStringCommandEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetUserSetting(char  const*)const
_ZThn4_NK11CBaseClient14GetUserSettingEPKc proc	near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient14GetUserSettingEPKc ; CBaseClient::GetUserSetting(char	const*)
_ZThn4_NK11CBaseClient14GetUserSettingEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__GetUserSetting(int, char *src)
_ZNK11CBaseClient14GetUserSettingEPKc proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetUserSetting(char  const*)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, (offset asc_20E578+4)
		test	ebx, ebx
		mov	eax, [edi+88h]
		jz	short loc_B983D
		test	eax, eax
		jz	short loc_B983D
		cmp	byte ptr [ebx],	0
		jnz	short loc_B9850

loc_B983D:				; CODE XREF: CBaseClient::GetUserSetting(char  const*)+22j
					; CBaseClient::GetUserSetting(char  const*)+26j ...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9850:				; CODE XREF: CBaseClient::GetUserSetting(char  const*)+2Bj
		mov	[esp+8], esi	; int
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; int
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		cmp	byte ptr [eax],	0
		mov	esi, eax
		jnz	short loc_B983D
		mov	[esp+4], ebx	; src
		mov	eax, [edi+88h]
		mov	[esp], eax	; int
		call	_ZN9KeyValues11GetDataTypeEPKc ; KeyValues::GetDataType(char  const*)
		test	eax, eax
		jnz	short loc_B983D
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aGetusersetting	; "GetUserSetting: cvar	'%s' unknown.\n"
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	short loc_B983D
_ZNK11CBaseClient14GetUserSettingEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__FillUserInfo(int, char *dest)
_ZN11CBaseClient12FillUserInfoER13player_info_s	proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch

		push	ebp
		mov	edx, 84h
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+dest]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, 1
		mov	edi, esi
		jnz	loc_B9A00
		test	edi, 2
		jnz	loc_B9A18

loc_B98C4:				; CODE XREF: CBaseClient::FillUserInfo(player_info_s &)+17Ej
					; CBaseClient::FillUserInfo(player_info_s &)+193j
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_B98DA
		mov	word ptr [edi],	0
		add	edi, 2

loc_B98DA:				; CODE XREF: CBaseClient::FillUserInfo(player_info_s &)+40j
		and	edx, 1
		jz	short loc_B98E2
		mov	byte ptr [edi],	0

loc_B98E2:				; CODE XREF: CBaseClient::FillUserInfo(player_info_s &)+4Dj
		xor	edi, edi
		cmp	byte ptr [ebx+18h], 0
		jnz	short loc_B9900

loc_B98EA:				; CODE XREF: CBaseClient::FillUserInfo(player_info_s &)+7Aj
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9900:				; CODE XREF: CBaseClient::FillUserInfo(player_info_s &)+58j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_B98EA
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	edi, 1
		call	dword ptr [eax+18h]
		mov	[esp], esi	; dest
		mov	[esp+4], eax	; src
		mov	dword ptr [esp+8], 20h ; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	ecx, [eax]
		mov	[esi+24h], ecx
		mov	ecx, [eax+4]
		mov	[esi+28h], ecx
		mov	ecx, [eax+8]
		mov	[esi+2Ch], ecx
		mov	ecx, [eax+0Ch]
		mov	[esi+30h], ecx
		mov	ecx, [eax+10h]
		mov	[esi+34h], ecx
		mov	ecx, [eax+14h]
		mov	[esi+38h], ecx
		mov	ecx, [eax+18h]
		mov	[esi+3Ch], ecx
		mov	ecx, [eax+1Ch]
		mov	[esi+40h], ecx
		movzx	eax, byte ptr [eax+20h]
		mov	[esi+44h], al
		mov	eax, [ebx+64h]
		mov	[esi+48h], eax
		lea	eax, [ebx+68h]
		mov	[esp+4], eax	; src
		lea	eax, [esi+4Ch]
		mov	[esp], eax	; dest
		mov	dword ptr [esp+8], 20h ; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	[esi+20h], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		mov	[esi+6Ch], al
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	[esi+6Dh], al
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+78h]
		mov	[esi+6Eh], al
		mov	eax, [ebx+0A0h]
		mov	[esi+70h], eax
		mov	eax, [ebx+0A8h]
		mov	[esi+74h], eax
		mov	eax, [ebx+0B0h]
		mov	[esi+78h], eax
		mov	eax, [ebx+0B8h]
		mov	[esi+7Ch], eax
		mov	eax, [ebx+0C0h]
		mov	[esi+80h], al
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9A00:				; CODE XREF: CBaseClient::FillUserInfo(player_info_s &)+22j
		lea	edi, [esi+1]
		mov	byte ptr [esi],	0
		mov	dl, 83h
		test	edi, 2
		jz	loc_B98C4
		lea	esi, [esi+0]

loc_B9A18:				; CODE XREF: CBaseClient::FillUserInfo(player_info_s &)+2Ej
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_B98C4
_ZN11CBaseClient12FillUserInfoER13player_info_s	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::UpdateSendState(void)
_ZN11CBaseClient15UpdateSendStateEv proc near ;	DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+90h]
		mov	byte ptr [ebx+1EEh], 0
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+64h]
		test	al, al
		jnz	short loc_B9A80
		mov	eax, dword ptr ds:host_limitlocal+1Ch
		fld	dword ptr [eax+2Ch]
		fldz
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_B9A80
		fld	ds:net_time
		mov	byte ptr [ebx+1EEh], 1
		fstp	qword ptr [ebx+218h]

loc_B9A76:				; CODE XREF: CBaseClient::UpdateSendState(void)+83j
					; CBaseClient::UpdateSendState(void)+116j
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9A80:				; CODE XREF: CBaseClient::UpdateSendState(void)+21j
					; CBaseClient::UpdateSendState(void)+31j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+6Ch]
		test	al, al
		jnz	short loc_B9AB8
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jz	short loc_B9AA5
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0F0h]
		test	al, al
		jnz	short loc_B9B20

loc_B9AA5:				; CODE XREF: CBaseClient::UpdateSendState(void)+64j
					; CBaseClient::UpdateSendState(void)+104j
		fld1
		fadd	ds:net_time
		fstp	qword ptr [ebx+218h]
		jmp	short loc_B9A76
; ---------------------------------------------------------------------------
		align 4

loc_B9AB8:				; CODE XREF: CBaseClient::UpdateSendState(void)+5Aj
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+30h]
		fld	dword ptr [ebx+220h]
		fcomi	st, st(1)
		fstp	st(1)
		ja	short loc_B9B50
		fst	[ebp+var_10]
		movss	xmm1, [ebp+var_10]

loc_B9ADA:				; CODE XREF: CBaseClient::UpdateSendState(void)+13Ej
		fld	ds:net_time
		xorps	xmm2, xmm2
		movd	eax, xmm1
		fld	qword ptr [ebx+218h]
		movd	xmm1, eax
		fsubr	st, st(1)
		fstp	[ebp+var_C]
		movss	xmm0, [ebp+var_C]
		faddp	st(1), st
		maxss	xmm0, xmm2
		minss	xmm0, xmm1
		movss	[ebp+var_C], xmm0
		fsub	[ebp+var_C]
		fstp	qword ptr [ebx+218h]
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9B20:				; CODE XREF: CBaseClient::UpdateSendState(void)+73j
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+54h]
		fld1
		fcomip	st, st(1)
		fstp	st
		jbe	loc_B9AA5
		fld	ds:net_time
		fstp	qword ptr [ebx+218h]
		jmp	loc_B9A76
; ---------------------------------------------------------------------------
		align 10h

loc_B9B50:				; CODE XREF: CBaseClient::UpdateSendState(void)+A0j
		fstp	st
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+30h]
		fstp	[ebp+var_10]
		movss	xmm1, [ebp+var_10]
		fld	dword ptr [ebx+220h]
		jmp	loc_B9ADA
_ZN11CBaseClient15UpdateSendStateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ShouldSendMessages(void)
_ZN11CBaseClient18ShouldSendMessagesEv proc near
					; CODE XREF: CHLTVClient::ShouldSendMessages(void)+80j
					; CGameClient::ShouldSendMessages(void)+40j
					; DATA XREF: ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_B9BDA
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jz	short loc_B9BE8
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0E8h]
		test	al, al
		jz	short loc_B9BE8
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8Ch]
		mov	eax, [ebx]
		lea	edx, [ebx+18h]
		mov	[esp+8], edx
		mov	dword ptr [esp+4], offset aSOverflowedRel ; "%s	overflowed reliable buffer\n"
		mov	[esp], ebx
		call	dword ptr [eax+38h]

loc_B9BDA:				; CODE XREF: CBaseClient::ShouldSendMessages(void)+17j
					; CBaseClient::ShouldSendMessages(void)+89j ...
		add	esp, 10h
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_B9BE8:				; CODE XREF: CBaseClient::ShouldSendMessages(void)+21j
					; CBaseClient::ShouldSendMessages(void)+30j
		fld	qword ptr [ebx+218h]
		fld	ds:net_time
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_B9C40

loc_B9BFC:				; CODE XREF: CBaseClient::ShouldSendMessages(void)+F8j
		mov	eax, [ebx+0C4h]
		mov	esi, 1
		test	eax, eax
		jz	short loc_B9BDA
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0E4h]
		test	al, al
		jnz	short loc_B9BDA
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0B8h]

loc_B9C2B:				; CODE XREF: CBaseClient::ShouldSendMessages(void)+CAj
					; CBaseClient::ShouldSendMessages(void)+D3j
		add	esp, 10h
		xor	esi, esi
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9C40:				; CODE XREF: CBaseClient::ShouldSendMessages(void)+7Aj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+6Ch]
		test	al, al
		jnz	short loc_B9C2B
		cmp	byte ptr [ebx+1EEh], 0
		jz	short loc_B9C2B
		mov	eax, [ebx+0C4h]
		xor	esi, esi
		test	eax, eax
		jz	loc_B9BDA
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0F0h]
		test	al, al
		jz	loc_B9BDA
		jmp	short loc_B9BFC
_ZN11CBaseClient18ShouldSendMessagesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SendSignonData(void)
_ZN11CBaseClient14SendSignonDataEv proc	near
					; CODE XREF: CHLTVClient::SendSignonData(void)+BFp
					; CGameClient::SendSignonData(void)+C6p
					; DATA XREF: ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], offset	aCbaseclientSen	; " CBaseClient::SendSignonData"
		call	COM_TimestampedLog
		mov	eax, [ebx+90h]
		cmp	byte ptr [eax+0F0h], 0
		jnz	loc_B9D30
		mov	edx, [ebx+0C4h]
		add	eax, 0E0h
		mov	ecx, [edx]
		mov	[esp], edx
		mov	dword ptr [esp+8], 1
		mov	[esp+4], eax
		call	dword ptr [ecx+0A8h]
		mov	eax, [ebx+90h]
		mov	dword ptr [ebx+0C8h], 4
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+3Ch]
		mov	edx, [ebx+0C8h]
		mov	[ebp+var_1C], 1
		mov	[ebp+var_C], eax
		mov	eax, [ebx+0C4h]
		lea	ecx, [ebp+var_20]
		mov	[ebp+var_18], 0
		mov	[ebp+var_20], (offset _ZTV15NET_SignonState+8)
		mov	[ebp+var_10], edx
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9D30:				; CODE XREF: CBaseClient::SendSignonData(void)+23j
		mov	eax, [eax+0ECh]
		mov	dword ptr [esp], offset	aSignonBufferOv	; "Signon buffer overflowed %i bytes!!!\n"
		add	eax, 7
		sar	eax, 3
		mov	[esp+4], eax	; arg
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)
		add	esp, 34h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseClient14SendSignonDataEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::FreeBaselines(void)
_ZN11CBaseClient13FreeBaselinesEv proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0DCh]
		test	eax, eax
		jz	short loc_B9D87
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)
		mov	dword ptr [ebx+0DCh], 0

loc_B9D87:				; CODE XREF: CBaseClient::FreeBaselines(void)+13j
		lea	edi, [ebx+0E4h]
		mov	edx, 100h
		mov	dword ptr [ebx+0E0h], 0FFFFFFFFh
		mov	dword ptr [ebx+1E4h], 0
		test	edi, 1
		jnz	short loc_B9DE0
		test	edi, 2
		jnz	short loc_B9E00

loc_B9DB6:				; CODE XREF: CBaseClient::FreeBaselines(void)+97j
					; CBaseClient::FreeBaselines(void)+ABj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_B9DCC
		mov	word ptr [edi],	0
		add	edi, 2

loc_B9DCC:				; CODE XREF: CBaseClient::FreeBaselines(void)+62j
		and	edx, 1
		jz	short loc_B9DD4
		mov	byte ptr [edi],	0

loc_B9DD4:				; CODE XREF: CBaseClient::FreeBaselines(void)+6Fj
		add	esp, 10h
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_B9DE0:				; CODE XREF: CBaseClient::FreeBaselines(void)+4Cj
		lea	edi, [ebx+0E5h]
		mov	byte ptr [ebx+0E4h], 0
		mov	dx, 0FFh
		test	edi, 2
		jz	short loc_B9DB6
		lea	esi, [esi+0]

loc_B9E00:				; CODE XREF: CBaseClient::FreeBaselines(void)+54j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	short loc_B9DB6
_ZN11CBaseClient13FreeBaselinesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ConnectionStart(INetChannel *)
_ZThn4_N11CBaseClient15ConnectionStartEP11INetChannel proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient15ConnectionStartEP11INetChannel ; CBaseClient::ConnectionStart(INetChannel *)
_ZThn4_N11CBaseClient15ConnectionStartEP11INetChannel endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ConnectionStart(INetChannel *)
_ZN11CBaseClient15ConnectionStartEP11INetChannel proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ConnectionStart(INetChannel *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esp], 1Ch
		mov	ebx, [ebp+arg_4]
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax+8], 0
		add	esi, 8
		mov	dword ptr [eax], (offset _ZTV8NET_Tick+8)
		mov	[eax+0Ch], esi
		mov	byte ptr [eax+4], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	edx, [ebx]
		mov	[ebp+var_1C], esi
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 414h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13NET_StringCmd+8)
		mov	dword ptr [eax+10h], 0
		mov	[eax+0Ch], edx
		mov	edx, [ebx]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 24h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13NET_SetConVar+8)
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0
		mov	[eax+0Ch], edx
		mov	edx, [ebx]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 18h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV15NET_SignonState+8)
		mov	[eax+0Ch], edx
		mov	edx, [ebx]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 50h
		call	_Znwj		; operator new(uint)
		mov	ecx, 14h
		mov	edx, eax
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	byte ptr [edx+4], 1
		mov	dword ptr [edx], (offset _ZTV14CLC_ClientInfo+8)
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 4Ch
		call	_Znwj		; operator new(uint)
		mov	byte ptr [eax+4], 1
		mov	esi, eax
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV8CLC_Move+8)
		lea	eax, [eax+1Ch]
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [esi+34h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [esi+4], 0
		mov	[esi+0Ch], edx
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 4Ch
		call	_Znwj		; operator new(uint)
		mov	byte ptr [eax+4], 1
		mov	esi, eax
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13CLC_VoiceData+8)
		lea	eax, [eax+14h]
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [esi+2Ch]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	eax, [ebp+var_1C]
		mov	byte ptr [esi+4], 0
		mov	[esi+0Ch], eax
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	esi, 40h
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 18h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV15CLC_BaselineAck+8)
		mov	[eax+0Ch], edx
		mov	edx, [ebx]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 50h
		call	_Znwj		; operator new(uint)
		mov	ecx, 14h
		mov	edx, eax
		xor	eax, eax
		mov	edi, edx
		rep stosd
		lea	edi, [edx+10h]
		mov	byte ptr [edx+4], 1
		test	edi, 1
		mov	dword ptr [edx], (offset _ZTV16CLC_ListenEvents+8)
		jnz	loc_BA1A0
		test	edi, 2
		jnz	loc_BA1C0

loc_BA063:				; CODE XREF: CBaseClient::ConnectionStart(INetChannel *)+391j
					; CBaseClient::ConnectionStart(INetChannel *)+3ABj
		mov	ecx, esi
		xor	eax, eax
		shr	ecx, 2
		test	esi, 2
		rep stosd
		jz	short loc_BA07C
		mov	word ptr [edi],	0
		add	edi, 2

loc_BA07C:				; CODE XREF: CBaseClient::ConnectionStart(INetChannel *)+252j
		and	esi, 1
		jz	short loc_BA084
		mov	byte ptr [edi],	0

loc_BA084:				; CODE XREF: CBaseClient::ConnectionStart(INetChannel *)+25Fj
		mov	eax, [ebp+var_1C]
		xor	esi, esi
		mov	[edx+0Ch], eax
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 220h
		call	_Znwj		; operator new(uint)
		mov	ecx, 88h
		mov	edx, eax
		mov	edi, eax
		mov	eax, esi
		rep stosd
		mov	byte ptr [edx+4], 1
		mov	dword ptr [edx], (offset _ZTV20CLC_RespondCvarValue+8)
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 21Ch
		call	_Znwj		; operator new(uint)
		mov	ecx, 87h
		mov	edx, eax
		mov	edi, eax
		mov	eax, esi
		rep stosd
		mov	byte ptr [edx+4], 1
		mov	dword ptr [edx], (offset _ZTV16CLC_FileCRCCheck+8)
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 228h
		call	_Znwj		; operator new(uint)
		mov	ecx, 8Ah
		mov	edx, eax
		mov	edi, eax
		mov	eax, esi
		rep stosd
		mov	byte ptr [edx+4], 1
		mov	dword ptr [edx], (offset _ZTV16CLC_FileMD5Check+8)
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 11Ch
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV14CLC_SaveReplay+8)
		mov	[eax+0Ch], edx
		mov	edx, [ebx]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [esp+4], 0
		mov	esi, eax
		mov	[esp], eax
		call	_ZN16CLC_CmdKeyValuesC2EP9KeyValues ; CLC_CmdKeyValues::CLC_CmdKeyValues(KeyValues *)
		mov	eax, [ebp+var_1C]
		mov	[esi+10h], eax
		mov	eax, [ebx]
		mov	[ebp+arg_4], esi
		mov	[ebp+arg_0], ebx
		mov	eax, [eax+74h]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_BA1A0:				; CODE XREF: CBaseClient::ConnectionStart(INetChannel *)+231j
		lea	edi, [edx+11h]
		mov	byte ptr [edx+10h], 0
		mov	si, 3Fh
		test	edi, 2
		jz	loc_BA063
		mov	esi, esi
		lea	edi, [edi+0]

loc_BA1C0:				; CODE XREF: CBaseClient::ConnectionStart(INetChannel *)+23Dj
		mov	word ptr [edi],	0
		sub	esi, 2
		add	edi, 2
		jmp	loc_BA063
_ZN11CBaseClient15ConnectionStartEP11INetChannel endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------

loc_BA1E2:				; CODE XREF: .text:000BA1FAj
		mov	ebx, eax
		mov	dword ptr [esi], (offset _ZTV11INetMessage+8)
		mov	[esp], esi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short loc_BA1E2
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::Inactivate(void)
_ZThn4_N11CBaseClient10InactivateEv proc near ;	DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient10InactivateEv ; CBaseClient::Inactivate(void)
_ZThn4_N11CBaseClient10InactivateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::Inactivate(void)
_ZN11CBaseClient10InactivateEv proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::Inactivate(void)+5j
					; CGameClient::Inactivate(void)+41p
					; DATA XREF: ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0ECh]
		mov	eax, [ebx+0D8h]
		mov	dword ptr [ebx+0CCh], 0FFFFFFFFh
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+0D0h], 0
		test	eax, eax
		jz	short loc_BA25F
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)
		mov	dword ptr [ebx+0D8h], 0

loc_BA25F:				; CODE XREF: CBaseClient::Inactivate(void)+3Bj
		mov	dword ptr [ebx+1E8h], 0FFFFFFFFh
		mov	eax, [ebx+0C4h]
		mov	dword ptr [ebx+0C8h], 7
		test	eax, eax
		jz	short loc_BA2F4
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+90h]
		call	_Z17NET_IsMultiplayerv ; NET_IsMultiplayer(void)
		test	al, al
		jz	short loc_BA2F4
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+3Ch]
		mov	edx, [ebx+0C8h]
		mov	[ebp+var_1C], 1
		mov	[ebp+var_C], eax
		mov	eax, [ebx]
		mov	[ebp+var_18], 0
		mov	[ebp+var_20], (offset _ZTV15NET_SignonState+8)
		mov	[ebp+var_10], edx
		lea	edx, [ebp+var_20]
		mov	[esp+4], edx
		mov	dword ptr [esp+8], 0
		mov	[esp], ebx
		call	dword ptr [eax+5Ch]
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+0C0h]
		mov	[ebp+var_20], (offset _ZTV11INetMessage+8)

loc_BA2F4:				; CODE XREF: CBaseClient::Inactivate(void)+6Bj
					; CBaseClient::Inactivate(void)+7Fj
		mov	eax, ds:g_GameEventManager
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+18h]
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseClient10InactivateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::Clear(void)
_ZThn4_N11CBaseClient5ClearEv proc near	; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient5ClearEv ; CBaseClient::Clear(void)
_ZThn4_N11CBaseClient5ClearEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::Clear(void)
_ZN11CBaseClient5ClearEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::Clear(void)+5j
					; CHLTVClient::CHLTVClient(int,CBaseServer *)+31p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jz	short loc_BA351
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aDisconnectBySe ; "Disconnect	by server.\n"
		mov	[esp], eax
		call	dword ptr [edx+94h]
		mov	dword ptr [ebx+0C4h], 0

loc_BA351:				; CODE XREF: CBaseClient::Clear(void)+12j
		mov	eax, [ebx+88h]
		test	eax, eax
		jz	short loc_BA36D
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		mov	dword ptr [ebx+88h], 0

loc_BA36D:				; CODE XREF: CBaseClient::Clear(void)+39j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0ECh]
		mov	eax, [ebx+0D8h]
		mov	dword ptr [ebx+0C8h], 0
		mov	dword ptr [ebx+0CCh], 0FFFFFFFFh
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+0D0h], 0
		test	eax, eax
		jz	short loc_BA3BC
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)
		mov	dword ptr [ebx+0D8h], 0

loc_BA3BC:				; CODE XREF: CBaseClient::Clear(void)+88j
		fldz
		mov	byte ptr [ebx+1ECh], 0
		mov	ecx, 20h
		fst	qword ptr [ebx+218h]
		lea	edx, [ebx+0A0h]
		test	dl, 1
		mov	dword ptr [ebx+1E8h], 0FFFFFFFFh
		fst	dword ptr [ebx+220h]
		mov	byte ptr [ebx+94h], 0
		mov	byte ptr [ebx+95h], 0
		mov	byte ptr [ebx+1EEh], 0
		mov	dword ptr [ebx+14h], 0
		mov	byte ptr [ebx+18h], 0
		mov	dword ptr [ebx+64h], 0
		mov	byte ptr [ebx+68h], 0
		mov	dword ptr [ebx+9Ch], 0
		mov	dword ptr [ebx+0E0h], 0FFFFFFFFh
		mov	dword ptr [ebx+1E4h], 0
		mov	dword ptr [ebx+0C0h], 0
		mov	byte ptr [ebx+8Ch], 0
		mov	byte ptr [ebx+8Dh], 0
		mov	byte ptr [ebx+1EFh], 0
		fstp	qword ptr [ebx+1F0h]
		mov	byte ptr [ebx+1F8h], 0
		jnz	short loc_BA4A0
		test	dl, 2
		jnz	short loc_BA4B8

loc_BA465:				; CODE XREF: CBaseClient::Clear(void)+192j
					; CBaseClient::Clear(void)+1A3j
		mov	ebx, ecx
		xor	eax, eax
		and	ebx, 0FFFFFFFCh

loc_BA46C:				; CODE XREF: CBaseClient::Clear(void)+158j
		mov	dword ptr [edx+eax], 0
		add	eax, 4
		cmp	eax, ebx
		jb	short loc_BA46C
		add	edx, eax
		test	cl, 2
		jz	short loc_BA489
		mov	word ptr [edx],	0
		add	edx, 2

loc_BA489:				; CODE XREF: CBaseClient::Clear(void)+15Fj
		and	ecx, 1
		jz	short loc_BA491
		mov	byte ptr [edx],	0

loc_BA491:				; CODE XREF: CBaseClient::Clear(void)+16Cj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BA4A0:				; CODE XREF: CBaseClient::Clear(void)+13Ej
		lea	edx, [ebx+0A1h]
		mov	byte ptr [ebx+0A0h], 0
		mov	cl, 1Fh
		test	dl, 2
		jz	short loc_BA465
		lea	esi, [esi+0]

loc_BA4B8:				; CODE XREF: CBaseClient::Clear(void)+143j
		mov	word ptr [edx],	0
		sub	ecx, 2
		add	edx, 2
		jmp	short loc_BA465
_ZN11CBaseClient5ClearEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)
_ZThn8_N11CBaseClient18ProcessBaselineAckEP15CLC_BaselineAck proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient18ProcessBaselineAckEP15CLC_BaselineAck ;	CBaseClient::ProcessBaselineAck(CLC_BaselineAck	*)
_ZThn8_N11CBaseClient18ProcessBaselineAckEP15CLC_BaselineAck endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)
_ZN11CBaseClient18ProcessBaselineAckEP15CLC_BaselineAck	proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, 1
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edx, [eax+10h]
		cmp	edx, [ebx+0E0h]
		jz	short loc_BA510

loc_BA4FF:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+69j
					; CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+E8j ...
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BA510:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+1Dj
		mov	ecx, [ebx+1E4h]
		cmp	[eax+14h], ecx
		jz	short loc_BA538
		mov	[esp+4], edx
		mov	dword ptr [esp], offset	aCbaseclientPro	; "CBaseClient::ProcessBaselineAck: wrong "...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_BA538:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+39j
		mov	eax, [ebx]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+0CCh]
		test	eax, eax
		jz	short loc_BA4FF
		mov	ecx, [eax+118h]
		test	ecx, ecx
		jz	loc_BA7C5
		mov	eax, [ebx+0E4h]
		lea	esi, [ebx+0E4h]
		mov	[ebp+var_1C], esi
		and	eax, dword ptr _ZZ15GetStartBitMaskiE11g_StartMask ; GetStartBitMask(int)::g_StartMask
		jnz	loc_BA7BE
		mov	eax, [ebx+0E8h]
		lea	edx, [ebx+0E8h]
		mov	edi, 1

loc_BA585:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+B2j
		test	eax, eax
		jnz	short loc_BA5CD
		mov	eax, [edx+edi*4]
		add	edi, 1
		cmp	edi, 40h
		jnz	short loc_BA585
		lea	esi, [esi+0]

loc_BA598:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+111j
					; CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+18Aj ...
		mov	eax, [ebx+0DCh]
		mov	esi, 1
		mov	edx, [ebx+0E0h]
		mov	[eax+4], edx
		xor	eax, eax
		cmp	dword ptr [ebx+1E4h], 1
		mov	dword ptr [ebx+0E0h], 0FFFFFFFFh
		setnz	al
		mov	[ebx+1E4h], eax
		jmp	loc_BA4FF
; ---------------------------------------------------------------------------

loc_BA5CD:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+A7j
		shl	edi, 5

loc_BA5D0:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+2E0j
		mov	edx, eax
		and	edx, 0FFh
		jnz	short loc_BA5E8
		movzx	edx, ah
		test	edx, edx
		jz	loc_BA7A2
		add	edi, 8

loc_BA5E8:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+F8j
		add	edi, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[edx*4] ; FirstBitInWord(uint,int)::firstBitLUT

loc_BA5EF:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+2D9j
					; CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+317j
		test	edi, edi
		js	short loc_BA598
		mov	eax, [ecx+8]
		lea	esi, [edi+edi*2]
		shl	esi, 2
		mov	eax, [eax+esi+8]
		test	eax, eax
		jz	loc_BA6FE
		mov	[ebp+var_28], edi
		nop
		lea	esi, [esi+0]

loc_BA610:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+218j
		mov	edx, [ebx+0DCh]
		mov	edx, [edx+8]
		mov	edx, [edx+esi+8]
		test	edx, edx
		jnz	loc_BA718

loc_BA625:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+256j
		mov	[esp+4], eax
		mov	eax, framesnapshotmanager
		mov	[ebp+var_20], ecx
		mov	[esp], eax
		call	_ZN21CFrameSnapshotManager18AddEntityReferenceEi ; CFrameSnapshotManager::AddEntityReference(int)
		mov	ecx, [ebp+var_20]
		mov	eax, [ebx+0DCh]
		mov	edx, [ecx+8]
		mov	eax, [eax+8]
		mov	edi, [edx+esi]
		mov	[eax+esi], edi
		mov	edi, [edx+esi+4]
		mov	[eax+esi+4], edi
		mov	edi, [ebp+var_28]
		mov	edx, [edx+esi+8]
		add	edi, 1
		cmp	edi, 7FFh
		mov	[eax+esi+8], edx
		jg	loc_BA598
		mov	esi, [ebp+var_1C]
		mov	eax, edi
		and	edi, 1Fh
		sar	eax, 5
		mov	[ebp+var_28], eax
		lea	edx, [esi+eax*4]
		mov	esi, [edx]
		and	esi, dword ptr _ZZ15GetStartBitMaskiE11g_StartMask[edi*4] ; GetStartBitMask(int)::g_StartMask
		mov	edi, esi
		jnz	short loc_BA6C4
		add	eax, 1
		mov	edi, [edx+4]
		cmp	eax, 40h
		jz	loc_BA598
		mov	esi, [ebp+var_28]
		neg	esi
		test	edi, edi
		lea	edx, [edx+esi*4]
		jnz	short loc_BA6C4
		lea	esi, [esi+0]

loc_BA6B0:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+1E2j
		mov	edi, [edx+eax*4+4]
		add	eax, 1
		cmp	eax, 40h
		jz	loc_BA598
		test	edi, edi
		jz	short loc_BA6B0

loc_BA6C4:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+1ACj
					; CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+1C7j
		mov	edx, edi
		shl	eax, 5
		and	edx, 0FFh
		jz	short loc_BA740
		add	eax, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[edx*4] ; FirstBitInWord(uint,int)::firstBitLUT
		mov	[ebp+var_28], eax

loc_BA6DB:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+278j
					; CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+29Cj ...
		mov	esi, [ebp+var_28]
		test	esi, esi
		js	loc_BA598
		mov	edi, [ebp+var_28]
		mov	eax, [ecx+8]
		lea	esi, [edi+edi*2]
		shl	esi, 2
		mov	eax, [eax+esi+8]
		test	eax, eax
		jnz	loc_BA610

loc_BA6FE:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+122j
		mov	[esp+4], edi
		xor	esi, esi
		mov	dword ptr [esp], offset	aCbaseclientP_0	; "CBaseClient::ProcessBaselineAck: invali"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_BA4FF
; ---------------------------------------------------------------------------
		align 4

loc_BA718:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+13Fj
		mov	[esp+4], edx
		mov	edx, framesnapshotmanager
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], ecx
		mov	[esp], edx
		call	_ZN21CFrameSnapshotManager21RemoveEntityReferenceEi ; CFrameSnapshotManager::RemoveEntityReference(int)
		mov	ecx, [ebp+var_20]
		mov	eax, [ebp+var_24]
		jmp	loc_BA625
; ---------------------------------------------------------------------------
		align 10h

loc_BA740:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+1EFj
		mov	edx, edi
		movzx	esi, dh
		test	esi, esi
		jz	short loc_BA760
		mov	edi, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[esi*4] ; FirstBitInWord(uint,int)::firstBitLUT
		add	eax, 8
		add	eax, edi
		mov	[ebp+var_28], eax
		jmp	short loc_BA6DB
; ---------------------------------------------------------------------------
		align 10h

loc_BA760:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+267j
		mov	edx, edi
		shr	edx, 10h
		and	edx, 0FFh
		jz	short loc_BA781
		mov	esi, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[edx*4] ; FirstBitInWord(uint,int)::firstBitLUT
		add	eax, 10h
		add	eax, esi
		mov	[ebp+var_28], eax
		jmp	loc_BA6DB
; ---------------------------------------------------------------------------

loc_BA781:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+28Bj
		mov	edx, edi
		shr	edx, 18h
		test	edx, edx
		jz	loc_BA598
		mov	edi, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[edx*4] ; FirstBitInWord(uint,int)::firstBitLUT
		add	eax, 18h
		add	eax, edi
		mov	[ebp+var_28], eax
		jmp	loc_BA6DB
; ---------------------------------------------------------------------------

loc_BA7A2:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+FFj
		mov	edx, eax
		shr	edx, 10h
		and	edx, 0FFh
		jz	short loc_BA7E2
		add	edi, 10h
		add	edi, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[edx*4] ; FirstBitInWord(uint,int)::firstBitLUT
		jmp	loc_BA5EF
; ---------------------------------------------------------------------------

loc_BA7BE:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+8Ej
		xor	edi, edi
		jmp	loc_BA5D0
; ---------------------------------------------------------------------------

loc_BA7C5:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+73j
		mov	eax, [ebx+0E0h]
		xor	esi, esi
		mov	dword ptr [esp], offset	aCbaseclientP_1	; "CBaseClient::ProcessBaselineAck: invali"...
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_BA4FF
; ---------------------------------------------------------------------------

loc_BA7E2:				; CODE XREF: CBaseClient::ProcessBaselineAck(CLC_BaselineAck *)+2CDj
		shr	eax, 18h
		test	eax, eax
		jz	loc_BA598
		add	edi, 18h
		add	edi, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[eax*4] ; FirstBitInWord(uint,int)::firstBitLUT
		jmp	loc_BA5EF
_ZN11CBaseClient18ProcessBaselineAckEP15CLC_BaselineAck	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::CBaseClient(void)
_ZN11CBaseClientC2Ev proc near		; CODE XREF: CHLTVClient::CHLTVClient(int,CBaseServer *)+15p
					; CGameClient::CGameClient(int,CBaseServer *)+15p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ebx, 100h
		lea	edi, [edx+0E4h]
		mov	dword ptr [edx], (offset _ZTV11CBaseClient+8)
		test	edi, 1
		mov	dword ptr [edx+4], (offset _ZTV11CBaseClient+104h)
		mov	dword ptr [edx+8], (offset _ZTV11CBaseClient+1B0h)
		mov	dword ptr [edx+59h], 0
		mov	byte ptr [edx+60h], 0
		mov	byte ptr [edx+5Dh], 0
		mov	byte ptr [edx+5Eh], 0
		mov	byte ptr [edx+5Fh], 0
		mov	dword ptr [edx+0D8h], 0
		jnz	loc_BA938
		test	edi, 2
		jnz	loc_BA958

loc_BA860:				; CODE XREF: CBaseClient::CBaseClient(void)+14Fj
					; CBaseClient::CBaseClient(void)+163j
		mov	ecx, ebx
		xor	eax, eax
		shr	ecx, 2
		test	bl, 2
		rep stosd
		jz	short loc_BA876
		mov	word ptr [edi],	0
		add	edi, 2

loc_BA876:				; CODE XREF: CBaseClient::CBaseClient(void)+6Cj
		and	ebx, 1
		jz	short loc_BA87E
		mov	byte ptr [edi],	0

loc_BA87E:				; CODE XREF: CBaseClient::CBaseClient(void)+79j
		fldz
		mov	dword ptr [edx+27324h],	0
		fstp	qword ptr [edx+1F0h]
		mov	dword ptr [edx+27328h],	0
		mov	dword ptr [edx+2732Ch],	0
		mov	dword ptr [edx+27330h],	0
		mov	dword ptr [edx+27334h],	0
		mov	dword ptr [edx+27338h],	0
		mov	dword ptr [edx+2733Ch],	0
		mov	dword ptr [edx+27340h],	0
		mov	dword ptr [edx+0C4h], 0
		mov	dword ptr [edx+88h], 0
		mov	dword ptr [edx+90h], 0
		mov	dword ptr [edx+0DCh], 0
		mov	byte ptr [edx+94h], 0
		mov	byte ptr [edx+95h], 0
		mov	byte ptr [edx+8Ch], 0
		mov	byte ptr [edx+8Dh], 0
		mov	byte ptr [edx+1EFh], 0
		mov	byte ptr [edx+1F8h], 0
		mov	byte ptr [edx+1EDh], 1
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BA938:				; CODE XREF: CBaseClient::CBaseClient(void)+4Ej
		lea	edi, [edx+0E5h]
		mov	byte ptr [edx+0E4h], 0
		mov	bx, 0FFh
		test	edi, 2
		jz	loc_BA860
		lea	esi, [esi+0]

loc_BA958:				; CODE XREF: CBaseClient::CBaseClient(void)+5Aj
		mov	word ptr [edi],	0
		sub	ebx, 2
		add	edi, 2
		jmp	loc_BA860
_ZN11CBaseClientC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ValidateName(char	*s, size_t maxlen)
_Z12ValidateNamePci proc near		; CODE XREF: CBaseClient::SetName(char	const*)+38p

s		= dword	ptr  8
maxlen		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+s]
		test	esi, esi
		jz	short loc_BA9AC
		mov	[esp], esi	; s
		call	strlen
		test	eax, eax
		jle	short loc_BA995
		movzx	ebx, byte ptr [esi]
		mov	edi, esi
		test	bl, bl
		jnz	short loc_BA9B8

loc_BA995:				; CODE XREF: ValidateName(char *,int)+1Aj
					; ValidateName(char *,int)+5Fj
		mov	eax, [ebp+maxlen]
		mov	dword ptr [esp+8], offset aUnnamed ; "unnamed"
		mov	[esp], esi	; s
		mov	[esp+4], eax	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_BA9AC:				; CODE XREF: ValidateName(char *,int)+Ej
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BA9B8:				; CODE XREF: ValidateName(char *,int)+23j
		movzx	eax, bl
		mov	[esp], eax	; int
		call	isspace
		test	eax, eax
		jz	short loc_BA9E0

loc_BA9C7:				; CODE XREF: ValidateName(char *,int)+6Ej
					; ValidateName(char *,int)+73j	...
		add	edi, 1
		movzx	ebx, byte ptr [edi]
		test	bl, bl
		jz	short loc_BA995
		movzx	eax, bl
		mov	[esp], eax	; int
		call	isspace
		test	eax, eax
		jnz	short loc_BA9C7

loc_BA9E0:				; CODE XREF: ValidateName(char *,int)+55j
		cmp	bl, 7Eh
		jz	short loc_BA9C7
		cmp	bl, 25h
		jz	short loc_BA9C7
		cmp	bl, 8
		jbe	short loc_BA9C7
		cmp	bl, 23h
		jz	short loc_BA9C7
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z12ValidateNamePci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__SetName(int,	char *src)
_ZN11CBaseClient7SetNameEPKc proc near	; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

var_68		= dword	ptr -68h
arg		= byte ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
dest		= byte ptr -58h
s		= byte ptr -38h
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		lea	ebx, [ebp+dest]
		sub	esp, 7Ch
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 20h ; n
		mov	edi, [ebp+arg_0]
		mov	[esp], ebx	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	byte ptr [edi+1F8h], 0
		mov	dword ptr [esp+4], 20h ; maxlen
		mov	[esp], ebx	; s
		call	_Z12ValidateNamePci ; ValidateName(char	*,int)
		lea	edx, [edi+18h]
		mov	dword ptr [esp+8], 20h
		mov	[ebp+var_5C], edx
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_Z9V_strncmpPKcS0_i ; V_strncmp(char  const*,char  const*,int)
		test	eax, eax
		jz	loc_BAC84
		movzx	eax, [ebp+dest]
		lea	ecx, [edi+37h]
		mov	edx, [ebp+var_5C]
		test	al, al
		jz	short loc_BAAAA
		cmp	[ebp+var_5C], ecx
		jb	short loc_BAA7C
		jmp	short loc_BAAAA
; ---------------------------------------------------------------------------
		align 8

loc_BAA78:				; CODE XREF: CBaseClient::SetName(char	const*)+A8j
		test	al, al
		jz	short loc_BAAAA

loc_BAA7C:				; CODE XREF: CBaseClient::SetName(char	const*)+70j
		cmp	al, 7Eh
		db	66h
		nop
		jz	short loc_BAAA0
		cmp	al, 25h
		jz	short loc_BAAA0
		cmp	al, 8
		jbe	short loc_BAAA0
		cmp	edx, [ebp+var_5C]
		lea	esi, [esi+0]
		jz	loc_BAC94

loc_BAA96:				; CODE XREF: CBaseClient::SetName(char	const*)+296j
		mov	[edx], al
		add	edx, 1
		nop
		lea	esi, [esi+0]

loc_BAAA0:				; CODE XREF: CBaseClient::SetName(char	const*)+80j
					; CBaseClient::SetName(char  const*)+84j ...
		add	ebx, 1
		cmp	edx, ecx
		movzx	eax, byte ptr [ebx]
		jb	short loc_BAA78

loc_BAAAA:				; CODE XREF: CBaseClient::SetName(char	const*)+6Bj
					; CBaseClient::SetName(char  const*)+72j ...
		mov	byte ptr [edx],	0
		cmp	byte ptr [edi+18h], 0
		jz	loc_BACA5

loc_BAAB7:				; CODE XREF: CBaseClient::SetName(char	const*)+2C0j
		lea	edx, [edi+4]
		mov	dword ptr [ebp+arg], 1
		mov	[ebp+var_60], edx
		mov	edx, [ebp+var_5C]
		add	edx, 4
		mov	[ebp+var_68], edx
		lea	esi, [esi+0]

loc_BAAD0:				; CODE XREF: CBaseClient::SetName(char	const*)+1E8j
		xor	esi, esi
		jmp	short loc_BAADB
; ---------------------------------------------------------------------------
		align 8

loc_BAAD8:				; CODE XREF: CBaseClient::SetName(char	const*)+112j
					; CBaseClient::SetName(char  const*)+117j ...
		add	esi, 1

loc_BAADB:				; CODE XREF: CBaseClient::SetName(char	const*)+D2j
		mov	eax, [edi+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		cmp	esi, eax
		jge	loc_BAB78
		mov	eax, [edi+90h]
		mov	edx, [eax]
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+1Ch]
		mov	ebx, eax
		mov	eax, [eax]
		mov	[esp], ebx
		call	dword ptr [eax+80h]
		test	al, al
		jz	short loc_BAAD8
		cmp	ebx, [ebp+var_60]
		jz	short loc_BAAD8
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+48h]
		mov	edx, [ebp+var_5C]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_BAAD8
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+70h]
		test	al, al
		jnz	loc_BAC10

loc_BAB44:				; CODE XREF: CBaseClient::SetName(char	const*)+223j
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 4
		mov	dword ptr [esp+8], offset _ZTI11CBaseClient ; `typeinfo	for'CBaseClient
		mov	dword ptr [esp+4], offset _ZTI7IClient ; `typeinfo for'IClient
		call	__dynamic_cast
		mov	ebx, eax
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_BABED
		lea	esi, [esi+0]

loc_BAB78:				; CODE XREF: CBaseClient::SetName(char	const*)+EBj
					; CBaseClient::SetName(char  const*)+1EFj
		mov	eax, [edi+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		cmp	eax, esi
		jle	loc_BAC48
		mov	eax, [ebp+var_5C]
		cmp	byte ptr [eax],	28h
		jz	loc_BAC30

loc_BAB9A:				; CODE XREF: CBaseClient::SetName(char	const*)+243j
					; CBaseClient::SetName(char  const*)+28Fj
		mov	edx, dword ptr [ebp+arg]
		lea	ebx, [ebp+s]
		mov	dword ptr [esp+10h], 1Ch
		mov	esi, dword ptr [ebp+arg]
		mov	[esp+14h], eax
		mov	dword ptr [esp+8], offset aD0_S	; "(%d)%-0.*s"
		mov	dword ptr [esp+4], 20h ; maxlen
		mov	[esp+0Ch], edx	; arg
		mov	[esp], ebx	; s
		add	esi, 1
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+var_5C]
		mov	dword ptr [esp+8], 20h ; n
		mov	[esp+4], ebx	; src
		mov	[esp], edx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [ebp+arg], esi
		jmp	loc_BAAD0
; ---------------------------------------------------------------------------

loc_BABED:				; CODE XREF: CBaseClient::SetName(char	const*)+170j
		test	ebx, ebx
		jz	short loc_BAB78
		mov	edx, [ebp+var_5C]
		mov	byte ptr [ebx+18h], 0
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+0E4h]
		jmp	loc_BAAD8
; ---------------------------------------------------------------------------
		align 10h

loc_BAC10:				; CODE XREF: CBaseClient::SetName(char	const*)+13Ej
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+8Ch]
		test	al, al
		jnz	loc_BAAD8
		jmp	loc_BAB44
; ---------------------------------------------------------------------------
		align 10h

loc_BAC30:				; CODE XREF: CBaseClient::SetName(char	const*)+194j
		cmp	byte ptr [eax+2], 29h
		jz	short loc_BAC8C
		mov	edx, [ebp+var_5C]
		mov	eax, [ebp+var_68]
		cmp	byte ptr [edx+3], 29h
		cmovnz	eax, edx
		jmp	loc_BAB9A
; ---------------------------------------------------------------------------

loc_BAC48:				; CODE XREF: CBaseClient::SetName(char	const*)+188j
		mov	edx, [ebp+var_5C]
		mov	dword ptr [esp+4], offset aName	; "name"
		mov	[esp+8], edx	; src
		mov	eax, [edi+88h]
		mov	[esp], eax	; int
		call	_ZN9KeyValues9SetStringEPKcS1_ ; KeyValues::SetString(char  const*,char	 const*)
		mov	byte ptr [edi+8Ch], 1
		mov	ecx, [edi+0Ch]
		mov	eax, [edi+90h]
		mov	edx, [eax]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0BCh]

loc_BAC84:				; CODE XREF: CBaseClient::SetName(char	const*)+59j
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_BAC8C:				; CODE XREF: CBaseClient::SetName(char	const*)+234j
		add	eax, 3
		jmp	loc_BAB9A
; ---------------------------------------------------------------------------

loc_BAC94:				; CODE XREF: CBaseClient::SetName(char	const*)+90j
		cmp	al, 23h
		jnz	loc_BAA96
		lea	esi, [esi+0]
		jmp	loc_BAAA0
; ---------------------------------------------------------------------------

loc_BACA5:				; CODE XREF: CBaseClient::SetName(char	const*)+B1j
		mov	edx, [ebp+var_5C]
		mov	dword ptr [esp+8], 20h ; n
		mov	dword ptr [esp+4], offset aUnnamed ; "unnamed"
		mov	[esp], edx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_BAAB7
_ZN11CBaseClient7SetNameEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsTracing(void)const
_ZNK11CBaseClient9IsTracingEv proc near	; CODE XREF: CNetworkStringTable::WriteUpdate(CBaseClient *,bf_write &,int)+315p
					; CNetworkStringTableContainer::WriteUpdateMessage(CBaseClient *,int,bf_write &)+1C8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+27324h]
		test	eax, eax
		setnz	al
		retn
_ZNK11CBaseClient9IsTracingEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::StartTrace(bf_write &)
_ZN11CBaseClient10StartTraceER8bf_write	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+27324h]
		test	edx, edx
		jz	short loc_BAD12
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+0Ch]
		mov	[eax+27328h], edx
		mov	[eax+2732Ch], edx

loc_BAD12:				; CODE XREF: CBaseClient::StartTrace(bf_write &)+Ej
		pop	ebp
		retn
_ZN11CBaseClient10StartTraceER8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::EndTrace(bf_write &)
_ZN11CBaseClient8EndTraceER8bf_write proc near
					; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+31Fp

var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
s		= dword	ptr -50h
var_48		= dword	ptr -48h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+27324h]
		test	eax, eax
		jz	short loc_BAD56
		mov	esi, [ebx+2732Ch]
		shl	eax, 3
		sub	esi, [ebx+27328h]
		cmp	esi, eax
		jge	short loc_BAD68
		mov	dword ptr [ebx+2733Ch],	0

loc_BAD56:				; CODE XREF: CBaseClient::EndTrace(bf_write &)+17j
					; CBaseClient::EndTrace(bf_write &)+156j ...
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BAD68:				; CODE XREF: CBaseClient::EndTrace(bf_write &)+2Aj
		lea	eax, [ebp+s]
		mov	dword ptr [esp+0Ch], 1 ; int
		mov	[esp], eax	; int
		mov	dword ptr [esp+8], 0 ; size
		mov	dword ptr [esp+4], 0 ; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+1Ch]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	[ebp+var_60], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		mov	[ebp+var_5C], esi
		mov	edx, [ebp+var_60]
		fild	[ebp+var_5C]
		mov	[esp+14h], eax
		fmul	ds:flt_1F11FC
		mov	dword ptr [esp+4], offset aFDPlayerSDAdrS ; "%f/%d Player [%s][%d][adr:%s] was sent "...
		mov	eax, ds:host_tickcount
		mov	[esp+20h], esi
		mov	[esp+1Ch], edi
		mov	[esp+18h], edx
		mov	[esp+10h], eax
		lea	eax, [ebp+s]
		fstp	qword ptr [esp+24h]
		mov	[esp], eax	; int
		fld	ds:realtime
		fstp	qword ptr [esp+8] ; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	esi, [ebx+2733Ch]
		test	esi, esi
		jle	short loc_BAE54
		xor	esi, esi
		xor	edi, edi
		mov	esi, esi
		lea	edi, [edi+0]

loc_BAE10:				; CODE XREF: CBaseClient::EndTrace(bf_write &)+132j
		mov	eax, [ebx+27330h]
		add	eax, esi
		mov	edx, [eax+40h]
		mov	[esp+8], eax	; arg
		mov	dword ptr [esp+4], offset a64_64s8dBits8_ ; "%64.64s : %8d bits	(%8.3f bytes)\n"
		mov	[ebp+var_5C], edx
		fild	[ebp+var_5C]
		mov	[esp+0Ch], edx
		lea	edx, [ebp+s]
		fmul	ds:flt_1F11FC
		mov	[esp], edx	; int
		fstp	qword ptr [esp+10h]
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		add	edi, 1
		add	esi, 44h
		cmp	[ebx+2733Ch], edi
		jg	short loc_BAE10

loc_BAE54:				; CODE XREF: CBaseClient::EndTrace(bf_write &)+E1j
		mov	eax, [ebp+s]
		mov	dword ptr [esp], offset	aNetspike_txt ;	"netspike.txt"
		mov	[esp+4], eax	; s
		call	_Z13COM_LogStringPKcS0_	; COM_LogString(char  const*,char  const*)
		mov	dword ptr [ebx+2733Ch],	0
		mov	ecx, [ebp+var_48]
		test	ecx, ecx
		js	loc_BAD56
		mov	eax, [ebp+s]
		test	eax, eax
		jz	loc_BAD56
		mov	[esp], eax	; ptr
		call	free
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseClient8EndTraceER8bf_write endp

; ---------------------------------------------------------------------------
		cmp	dword ptr [ebp-48h], 0
		mov	ebx, eax
		js	short loc_BAEB1
		mov	edx, [ebp-50h]
		test	edx, edx
		jz	short loc_BAEB1
		mov	[esp], edx
		call	free

loc_BAEB1:				; CODE XREF: .text:000BAEA0j
					; .text:000BAEA7j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SetTraceThreshold(int)
_ZN11CBaseClient17SetTraceThresholdEi proc near
					; CODE XREF: CGameServer::CreateNewClient(int)+6Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+27324h], edx
		pop	ebp
		retn
_ZN11CBaseClient17SetTraceThresholdEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::CheckFlushNameChange(void)
_ZN11CBaseClient20CheckFlushNameChangeEv proc near
					; CODE XREF: CBaseClient::ClientRequestNameChange(char	const*)+2Fj
					; CBaseServer::UpdateUserSettings(void)+37p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_BAF38
		cmp	byte ptr [ebx+1F8h], 0
		jz	short loc_BAF38
		lea	eax, [ebx+18h]
		lea	esi, [ebx+1F8h]
		mov	[esp+4], eax	; s2
		mov	[esp], esi	; s1
		call	strcmp
		test	eax, eax
		jnz	short loc_BAF48
		mov	byte ptr [ebx+1F8h], 0
		jmp	short loc_BAF38
; ---------------------------------------------------------------------------
		align 10h

loc_BAF30:				; CODE XREF: CBaseClient::CheckFlushNameChange(void)+95j
		fstp	st
		lea	esi, [esi+0]

loc_BAF38:				; CODE XREF: CBaseClient::CheckFlushNameChange(void)+19j
					; CBaseClient::CheckFlushNameChange(void)+22j ...
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BAF48:				; CODE XREF: CBaseClient::CheckFlushNameChange(void)+3Bj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_BAF88
		call	Plat_FloatTime
		fld	qword ptr [ebx+1F0h]
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_BAF80
		mov	eax, dword ptr ds:sv_namechange_cooldown_seconds+1Ch
		fadd	dword ptr [eax+2Ch]
		fcomip	st, st(1)
		jbe	short loc_BAF82
		jmp	short loc_BAF30
; ---------------------------------------------------------------------------
		align 10h

loc_BAF80:				; CODE XREF: CBaseClient::CheckFlushNameChange(void)+87j
		fstp	st

loc_BAF82:				; CODE XREF: CBaseClient::CheckFlushNameChange(void)+93j
		fstp	qword ptr [ebx+1F0h]

loc_BAF88:				; CODE XREF: CBaseClient::CheckFlushNameChange(void)+72j
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [eax+0E4h]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseClient20CheckFlushNameChangeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__ClientRequestNameChange(int,	char *src)
_ZN11CBaseClient23ClientRequestNameChangeEPKc proc near
					; CODE XREF: CBaseClient::SetUserCVar(char  const*,char	 const*)+82j
					; CBaseClient::ProcessSetConVar(NET_SetConVar *)+B9p

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+8], 20h ; n
		mov	eax, [ebp+src]
		mov	[esp+4], eax	; src
		lea	eax, [ebx+1F8h]
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN11CBaseClient20CheckFlushNameChangeEv ; CBaseClient::CheckFlushNameChange(void)
_ZN11CBaseClient23ClientRequestNameChangeEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SetUserCVar(char	 const*, char  const*)
_ZN11CBaseClient11SetUserCVarEPKcS1_ proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		test	ebx, ebx
		jnz	short loc_BB020

loc_BB00C:				; CODE XREF: CBaseClient::SetUserCVar(char  const*,char	 const*)+32j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BB020:				; CODE XREF: CBaseClient::SetUserCVar(char  const*,char	 const*)+1Aj
		test	esi, esi
		jz	short loc_BB00C
		mov	dword ptr [esp+4], offset aName	; "name"
		mov	[esp], esi	; int
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_BB060
		mov	[ebp+arg_8], ebx
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_4], esi
		mov	esi, [ebp+var_8]
		mov	eax, [edi+88h]
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_0], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN9KeyValues9SetStringEPKcS1_ ; KeyValues::SetString(char  const*,char	 const*)
; ---------------------------------------------------------------------------
		align 10h

loc_BB060:				; CODE XREF: CBaseClient::SetUserCVar(char  const*,char	 const*)+46j
		mov	[ebp+arg_4], ebx
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_0], edi
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN11CBaseClient23ClientRequestNameChangeEPKc ;	CBaseClient::ClientRequestNameChange(char  const*)
_ZN11CBaseClient11SetUserCVarEPKcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::ProcessSetConVar(NET_SetConVar *)
_ZThn8_N11CBaseClient16ProcessSetConVarEP13NET_SetConVar proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CGameCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClient16ProcessSetConVarEP13NET_SetConVar ; CBaseClient::ProcessSetConVar(NET_SetConVar	*)
_ZThn8_N11CBaseClient16ProcessSetConVarEP13NET_SetConVar endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::ProcessSetConVar(NET_SetConVar *)
_ZN11CBaseClient16ProcessSetConVarEP13NET_SetConVar proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::ProcessSetConVar(NET_SetConVar *)+5j
					; CHLTVClient::ProcessSetConVar(NET_SetConVar *)+1Ep
					; DATA XREF: ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_4]
		mov	edi, [edx+1Ch]
		test	edi, edi
		jle	loc_BB16E
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		jmp	short loc_BB0FA
; ---------------------------------------------------------------------------
		align 10h

loc_BB0C0:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+89j
		cmp	bl, 5Fh
		jz	short loc_BB11B
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+18h]
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	aIgnoringConvar	; "Ignoring convar change request for vari"...
		call	Msg

loc_BB0E4:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+BEj
					; CBaseClient::ProcessSetConVar(NET_SetConVar *)+D9j
		add	[ebp+var_1C], 1
		mov	edx, [ebp+arg_4]
		add	[ebp+var_20], 208h
		mov	eax, [ebp+var_1C]
		cmp	[edx+1Ch], eax
		jle	short loc_BB16E

loc_BB0FA:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+25j
		mov	edi, [ebp+var_20]
		mov	edx, [ebp+arg_4]
		add	edi, [edx+10h]
		movzx	ebx, byte ptr [edi]
		test	bl, bl
		jz	short loc_BB125
		mov	esi, edi

loc_BB10C:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+93j
		movzx	eax, bl
		mov	[esp], eax	; int
		call	isalnum
		test	eax, eax
		jz	short loc_BB0C0

loc_BB11B:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+33j
		add	esi, 1
		movzx	ebx, byte ptr [esi]
		test	bl, bl
		jnz	short loc_BB10C

loc_BB125:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+78j
		mov	dword ptr [esp+4], offset aName	; "name"
		lea	ebx, [edi+104h]
		mov	[esp], edi
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_BB150
		mov	edx, [ebp+arg_0]
		mov	[esp+4], ebx	; src
		mov	[esp], edx	; int
		call	_ZN11CBaseClient23ClientRequestNameChangeEPKc ;	CBaseClient::ClientRequestNameChange(char  const*)
		jmp	short loc_BB0E4
; ---------------------------------------------------------------------------

loc_BB150:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+ADj
		mov	edx, [ebp+arg_0]
		mov	[esp+8], ebx	; src
		mov	[esp+4], edi	; int
		mov	eax, [edx+88h]
		mov	[esp], eax	; int
		call	_ZN9KeyValues9SetStringEPKcS1_ ; KeyValues::SetString(char  const*,char	 const*)
		jmp	loc_BB0E4
; ---------------------------------------------------------------------------

loc_BB16E:				; CODE XREF: CBaseClient::ProcessSetConVar(NET_SetConVar *)+11j
					; CBaseClient::ProcessSetConVar(NET_SetConVar *)+68j
		mov	edx, [ebp+arg_0]
		mov	eax, 1
		mov	byte ptr [edx+8Ch], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseClient16ProcessSetConVarEP13NET_SetConVar endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::OnRequestFullUpdate(void)
_ZN11CBaseClient19OnRequestFullUpdateEv	proc near
					; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+123p
					; CBaseClient::UpdateAcknowledgedFramecount(int)+15Ap ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0D8h]
		test	eax, eax
		jz	short loc_BB1B6
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)
		mov	dword ptr [ebx+0D8h], 0

loc_BB1B6:				; CODE XREF: CBaseClient::OnRequestFullUpdate(void)+12j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0ECh]
		mov	eax, framesnapshotmanager
		mov	dword ptr [esp+8], 800h
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZN21CFrameSnapshotManager19CreateEmptySnapshotEii ; CFrameSnapshotManager::CreateEmptySnapshot(int,int)
		mov	[ebx+0DCh], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		mov	dword ptr [esp], offset	aSendingFullUpd	; "Sending full	update to Client %s\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseClient19OnRequestFullUpdateEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::UpdateAcknowledgedFramecount(int)
_ZN11CBaseClient28UpdateAcknowledgedFramecountEi proc near
					; CODE XREF: CGameClient::UpdateAcknowledgedFramecount(int)+87j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		test	al, al
		jnz	loc_BB2C8
		mov	eax, [ebx+1E8h]
		test	eax, eax
		jle	short loc_BB268
		cmp	esi, eax
		mov	edi, 1
		jg	short loc_BB2B6
		cmp	esi, 0FFFFFFFFh
		jz	loc_BB2F0
		cmp	esi, eax
		jl	short loc_BB2B6
		mov	dword ptr [ebx+1E8h], 0FFFFFFFFh
		jmp	short loc_BB289
; ---------------------------------------------------------------------------
		align 8

loc_BB268:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+2Dj
		mov	eax, [ebx+0CCh]
		mov	edi, 1
		cmp	eax, 0FFFFFFFFh
		jz	short loc_BB2B6
		cmp	esi, 0FFFFFFFFh
		jz	loc_BB330
		cmp	esi, eax
		jl	loc_BB318

loc_BB289:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+4Fj
		test	esi, esi
		mov	[ebx+0CCh], esi
		js	short loc_BB299
		mov	[ebx+0D0h], esi

loc_BB299:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+81j
					; CBaseClient::UpdateAcknowledgedFramecount(int)+FFj ...
		mov	eax, [ebx+0E0h]
		mov	edi, 1
		test	eax, eax
		js	short loc_BB2B6
		cmp	esi, eax
		jle	short loc_BB2B6
		mov	dword ptr [ebx+0E0h], 0FFFFFFFFh

loc_BB2B6:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+36j
					; CBaseClient::UpdateAcknowledgedFramecount(int)+43j ...
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_BB2C8:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+1Fj
		mov	[ebx+0CCh], esi
		mov	edi, 1
		mov	[ebx+0D0h], esi
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BB2F0:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+3Bj
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0F0h]
		test	al, al
		jz	short loc_BB347
		mov	dword ptr [ebx+0CCh], 0FFFFFFFFh
		jmp	short loc_BB299
; ---------------------------------------------------------------------------
		align 8

loc_BB318:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+73j
		mov	eax, [ebx]
		mov	dword ptr [esp+4], offset aClientDeltaTic ; "Client delta ticks	out of order.\n"
		xor	edi, edi
		mov	[esp], ebx
		call	dword ptr [eax+38h]
		jmp	short loc_BB2B6
; ---------------------------------------------------------------------------
		align 10h

loc_BB330:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+6Bj
		mov	[esp], ebx
		call	_ZN11CBaseClient19OnRequestFullUpdateEv	; CBaseClient::OnRequestFullUpdate(void)
		mov	dword ptr [ebx+0CCh], 0FFFFFFFFh
		jmp	loc_BB299
; ---------------------------------------------------------------------------

loc_BB347:				; CODE XREF: CBaseClient::UpdateAcknowledgedFramecount(int)+F3j
		mov	dword ptr [esp], offset	aClientForcedIm	; "Client forced immediate full	update.\n"
		call	ConDMsg
		mov	dword ptr [ebx+0CCh], 0FFFFFFFFh
		mov	dword ptr [ebx+1E8h], 0FFFFFFFFh
		mov	[esp], ebx
		call	_ZN11CBaseClient19OnRequestFullUpdateEv	; CBaseClient::OnRequestFullUpdate(void)
		jmp	loc_BB2B6
_ZN11CBaseClient28UpdateAcknowledgedFramecountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetUserIDString(USERID_s  const&)
_Z15GetUserIDStringRK8USERID_s proc near
					; CODE XREF: CBaseClient::GetNetworkIDString(void)+35p
					; listid(CCommand  const&)+46p	...

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	ds:_ZZ15GetUserIDStringRK8USERID_sE5idstr, 0 ; GetUserIDString(USERID_s	 const&)::idstr
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		cmp	eax, 3
		jz	loc_BB460
		cmp	eax, 4
		jz	loc_BB438
		cmp	eax, 1
		jz	short loc_BB3E0
		mov	dword ptr [esp+8], 40h ; n
		mov	dword ptr [esp+4], offset aUnknown ; "UNKNOWN"
		mov	dword ptr [esp], offset	_ZZ15GetUserIDStringRK8USERID_sE5idstr ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_BB3CE:				; CODE XREF: GetUserIDString(USERID_s  const&)+B2j
					; GetUserIDString(USERID_s  const&)+D4j ...
		mov	ebx, [ebp+var_C]
		mov	eax, offset _ZZ15GetUserIDStringRK8USERID_sE5idstr ; GetUserIDString(USERID_s  const&)::idstr
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_BB3E0:				; CODE XREF: GetUserIDString(USERID_s  const&)+30j
		mov	[ebp+var_24], 0
		lea	edi, [ebp+var_24]
		mov	[ebp+var_20], 0
		lea	esi, [ebx+4]
		mov	[ebp+var_1C], 0
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	ecx, 0Ch
		cmp	dword ptr [eax+0A4h], 1
		jz	short loc_BB488
		repe cmpsb
		jnz	loc_BB4B0
		mov	dword ptr [esp+8], 40h ; n
		mov	dword ptr [esp+4], offset aSteam_id_pendi ; "STEAM_ID_PENDING"
		mov	dword ptr [esp], offset	_ZZ15GetUserIDStringRK8USERID_sE5idstr ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	short loc_BB3CE
; ---------------------------------------------------------------------------
		align 8

loc_BB438:				; CODE XREF: GetUserIDString(USERID_s  const&)+27j
		mov	dword ptr [esp+8], 40h ; n
		mov	dword ptr [esp+4], offset aReplay ; "REPLAY"
		mov	dword ptr [esp], offset	_ZZ15GetUserIDStringRK8USERID_sE5idstr ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_BB3CE
; ---------------------------------------------------------------------------
		align 10h

loc_BB460:				; CODE XREF: GetUserIDString(USERID_s  const&)+1Ej
		mov	dword ptr [esp+8], 40h ; n
		mov	dword ptr [esp+4], offset aHltv	; "HLTV"
		mov	dword ptr [esp], offset	_ZZ15GetUserIDStringRK8USERID_sE5idstr ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_BB3CE
; ---------------------------------------------------------------------------
		align 8

loc_BB488:				; CODE XREF: GetUserIDString(USERID_s  const&)+8Cj
		repe cmpsb
		jnz	short loc_BB4B0
		mov	dword ptr [esp+8], 40h ; n
		mov	dword ptr [esp+4], offset aSteam_id_lan	; "STEAM_ID_LAN"
		mov	dword ptr [esp], offset	_ZZ15GetUserIDStringRK8USERID_sE5idstr ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_BB3CE
; ---------------------------------------------------------------------------
		align 10h

loc_BB4B0:				; CODE XREF: GetUserIDString(USERID_s  const&)+90j
					; GetUserIDString(USERID_s  const&)+10Aj
		mov	eax, [ebx+8]
		mov	[esp+14h], eax
		mov	eax, [ebx+0Ch]
		mov	[esp+10h], eax
		movzx	eax, word ptr [ebx+4]
		mov	dword ptr [esp+8], offset aSteam_UUU ; "STEAM_%u:%u:%u"
		mov	dword ptr [esp+4], 3Fh ; maxlen
		mov	dword ptr [esp], offset	_ZZ15GetUserIDStringRK8USERID_sE5idstr ; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ds:_ZZ15GetUserIDStringRK8USERID_sE5idstr+3Fh, 0
		jmp	loc_BB3CE
_Z15GetUserIDStringRK8USERID_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetNetworkIDString(void)const
_ZThn4_NK11CBaseClient18GetNetworkIDStringEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient18GetNetworkIDStringEv ;	CBaseClient::GetNetworkIDString(void)
_ZThn4_NK11CBaseClient18GetNetworkIDStringEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetNetworkIDString(void)const
_ZNK11CBaseClient18GetNetworkIDStringEv	proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetNetworkIDString(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

var_18		= byte ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		mov	edx, offset aBot ; "BOT"
		test	al, al
		jnz	short loc_BB53C
		mov	eax, [ebx]
		lea	esi, [ebp+var_18]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+14h]
		sub	esp, 4
		mov	[esp], esi
		call	_Z15GetUserIDStringRK8USERID_s ; GetUserIDString(USERID_s  const&)
		mov	edx, eax

loc_BB53C:				; CODE XREF: CBaseClient::GetNetworkIDString(void)+1Ej
		mov	ebx, [ebp+var_8]
		mov	eax, edx
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK11CBaseClient18GetNetworkIDStringEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SetSteamID(CSteamID  const&)
_ZN11CBaseClient10SetSteamIDERK8CSteamID proc near
					; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+F3p
					; CSteam3Server::NotifyLocalClientConnect(CBaseClient *)+51p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_4]
		mov	ebx, [eax+4]
		mov	ecx, [eax]
		mov	eax, [ebp+arg_0]
		mov	[eax+59h], ecx
		mov	[eax+5Dh], ebx
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseClient10SetSteamIDERK8CSteamID endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::OnSignonStateFull(void)
_ZN11CBaseClient17OnSignonStateFullEv proc near
					; CODE XREF: CBaseClient::SetSignonState(int,int)+33p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:g_pReplay
		test	eax, eax
		jz	short locret_BB59A
		mov	eax, ds:g_pServerReplayContext
		test	eax, eax
		jz	short locret_BB59A
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax]
		mov	ecx, [ecx+0Ch]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+44h]

locret_BB59A:				; CODE XREF: CBaseClient::OnSignonStateFull(void)+Dj
					; CBaseClient::OnSignonStateFull(void)+16j
		leave
		retn
_ZN11CBaseClient17OnSignonStateFullEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SetSignonState(int, int)
_ZN11CBaseClient14SetSignonStateEii proc near
					; CODE XREF: CGameClient::SetSignonState(int,int)+40j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+0C8h], 6
		ja	short locret_BB5C7
		mov	edx, [eax+0C8h]
		jmp	ds:off_1F0D58[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_BB5C0:				; CODE XREF: CBaseClient::SetSignonState(int,int)+18j
					; DATA XREF: .rodata:001F0D60o
		mov	byte ptr [eax+8Dh], 1

locret_BB5C7:				; CODE XREF: CBaseClient::SetSignonState(int,int)+10j
					; CBaseClient::SetSignonState(int,int)+18j
					; DATA XREF: ...
		leave
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BB5D0:				; CODE XREF: CBaseClient::SetSignonState(int,int)+18j
					; DATA XREF: .rodata:001F0D70o
		mov	[esp], eax
		call	_ZN11CBaseClient17OnSignonStateFullEv ;	CBaseClient::OnSignonStateFull(void)
		mov	eax, 1
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BB5E0:				; CODE XREF: CBaseClient::SetSignonState(int,int)+18j
					; DATA XREF: .rodata:001F0D64o
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		mov	eax, [edx+0D8h]
		leave
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_BB5F0:				; CODE XREF: CBaseClient::SetSignonState(int,int)+18j
					; DATA XREF: .rodata:001F0D68o
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0DCh]
		mov	eax, 1
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BB608:				; CODE XREF: CBaseClient::SetSignonState(int,int)+18j
					; DATA XREF: .rodata:001F0D6Co
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0E0h]
		mov	eax, 1
		leave
		retn
_ZN11CBaseClient14SetSignonStateEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SendServerInfo(void)
_ZN11CBaseClient14SendServerInfoEv proc	near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

var_14F8	= dword	ptr -14F8h
var_14F4	= dword	ptr -14F4h
var_14F0	= dword	ptr -14F0h
var_14EC	= dword	ptr -14ECh
var_14DC	= dword	ptr -14DCh
var_14D8	= byte ptr -14D8h
var_14D4	= dword	ptr -14D4h
var_14CC	= dword	ptr -14CCh
s		= byte ptr -0CC8h
var_CC4		= byte ptr -0CC4h
var_CC0		= dword	ptr -0CC0h
var_CB8		= dword	ptr -0CB8h
var_CB4		= dword	ptr -0CB4h
var_CB0		= dword	ptr -0CB0h
var_CAC		= dword	ptr -0CACh
var_CA8		= dword	ptr -0CA8h
var_4C8		= dword	ptr -4C8h
var_4C4		= byte ptr -4C4h
var_4C0		= dword	ptr -4C0h
var_48C		= dword	ptr -48Ch
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_5C		= dword	ptr -5Ch
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_48]
		push	ebx
		sub	esp, 151Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], offset	aCbaseclientS_0	; " CBaseClient::SendServerInfo"
		call	COM_TimestampedLog
		mov	dword ptr [esp], 17700h
		call	MemAllocScratch
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	[esp+8], eax
		mov	dword ptr [esp+0Ch], 17700h
		mov	dword ptr [esp+4], offset aSv_sendserveri ; "SV_SendServerinfo->msg"
		mov	[esp], esi
		call	_ZN8bf_writeC2EPKcPvii ; bf_write::bf_write(char  const*,void *,int,int)
		mov	eax, dword ptr ds:developer+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jz	loc_BB9A0

loc_BB67E:				; CODE XREF: CBaseClient::SendServerInfo(void)+396j
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	[ebp+var_14EC],	eax
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+3Ch]
		mov	[ebp+var_14F8],	eax
		call	_Z12build_numberv ; build_number(void)
		mov	edi, eax
		mov	eax, [ebx+90h]
		mov	ecx, [eax]
		mov	[esp], eax
		call	dword ptr [ecx+18h]
		mov	[ebp+var_14F0],	eax
		mov	eax, [ebx+90h]
		mov	ecx, [eax]
		mov	[esp], eax
		call	dword ptr [ecx+38h]
		mov	[ebp+var_14F4],	eax
		mov	eax, ds:serverGameDLL
		mov	ecx, [eax]
		mov	[esp], eax
		call	dword ptr [ecx+30h]
		mov	edx, [ebp+var_14F8]
		mov	[esp+1Ch], edi
		lea	edi, [ebp+s]
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aSMapSPlayersII ; "\n%s\nMap:	%s\nPlayers: %i	/ %i\nBuild: %d\n"...
		mov	dword ptr [esp+4], 800h	; maxlen
		mov	[esp+20h], edx
		mov	edx, [ebp+var_14F0]
		mov	[esp], edi	; s
		mov	[esp+18h], edx
		mov	edx, [ebp+var_14EC]
		mov	[esp+14h], edx
		mov	edx, [ebp+var_14F4]
		mov	[esp+10h], edx
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		lea	eax, [ebp+var_14DC]
		mov	[esp+4], esi
		mov	[ebp+var_14D4],	0
		mov	[ebp+var_14DC],	(offset	_ZTV9SVC_Print+8)
		mov	[ebp+var_14D8],	0
		mov	[ebp+var_14CC],	edi
		mov	[esp], eax
		call	_ZN9SVC_Print13WriteToBufferER8bf_write	; SVC_Print::WriteToBuffer(bf_write &)
		mov	[ebp+var_14DC],	(offset	_ZTV11INetMessage+8)

loc_BB76D:				; CODE XREF: CBaseClient::SendServerInfo(void)+390j
		mov	eax, [ebx+0Ch]
		mov	[ebp+var_4C4], 1
		lea	edi, [ebp+var_4C8]
		mov	[ebp+var_4C0], 0
		mov	[ebp+var_4C8], (offset _ZTV14SVC_ServerInfo+8)
		mov	[ebp+var_48C], eax
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], edi
		call	dword ptr [edx+0B8h]
		mov	[esp+4], esi
		mov	[esp], edi
		call	_ZN14SVC_ServerInfo13WriteToBufferER8bf_write ;	SVC_ServerInfo::WriteToBuffer(bf_write &)
		mov	eax, [ebx+90h]
		mov	[ebp+var_60], 0
		mov	[ebp+var_5C], 0
		mov	[ebp+var_64], (offset _ZTV8NET_Tick+8)
		mov	eax, [eax+0Ch]
		mov	[ebp+var_50], 0
		mov	[ebp+var_4C], 0
		mov	[ebx+0D4h], eax
		mov	[ebp+var_54], eax
		lea	eax, [ebp+var_64]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZN8NET_Tick13WriteToBufferER8bf_write ; NET_Tick::WriteToBuffer(bf_write &)
		mov	[esp+4], esi
		mov	eax, [ebx+90h]
		mov	eax, [eax+0C8h]
		mov	[esp], eax
		call	_ZN28CNetworkStringTableContainer14WriteBaselinesER8bf_write ; CNetworkStringTableContainer::WriteBaselines(bf_write &)
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		test	al, al
		jnz	loc_BB8DE
		lea	edi, [ebp+s]
		mov	[ebp+var_CC4], 1
		mov	[ebp+var_CC0], 0
		mov	dword ptr [ebp+s], (offset _ZTV13NET_SetConVar+8)
		mov	[ebp+var_CB8], 0
		mov	[ebp+var_CB4], 0
		mov	[ebp+var_CB0], 0
		mov	[ebp+var_CAC], 0
		mov	[ebp+var_CA8], 0
		mov	dword ptr [esp+8], 1 ; char
		mov	dword ptr [esp+4], 2000h ; arg
		mov	[esp], edi	; int
		call	_Z29Host_BuildConVarUpdateMessageP13NET_SetConVarib ; Host_BuildConVarUpdateMessage(NET_SetConVar *,int,bool)
		mov	[esp+4], esi
		mov	[esp], edi
		call	_ZN13NET_SetConVar13WriteToBufferER8bf_write ; NET_SetConVar::WriteToBuffer(bf_write &)
		mov	dword ptr [ebp+s], (offset _ZTV13NET_SetConVar+8)
		lea	edi, [ebp+var_CB8]
		mov	[ebp+var_CAC], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	eax, [ebp+var_CB8]
		mov	[esp], edi
		mov	[ebp+var_CA8], eax
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	dword ptr [ebp+s], (offset _ZTV11INetMessage+8)

loc_BB8DE:				; CODE XREF: CBaseClient::SendServerInfo(void)+201j
		mov	eax, [ebx+90h]
		mov	byte ptr [ebx+8Dh], 0
		mov	dword ptr [ebx+0C8h], 3
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+3Ch]
		mov	edx, [ebx+0C8h]
		mov	[ebp+var_2C], 1
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_30]
		mov	[ebp+var_28], 0
		mov	[ebp+var_30], (offset _ZTV15NET_SignonState+8)
		mov	[ebp+var_20], edx
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZN15NET_SignonState13WriteToBufferER8bf_write ; NET_SignonState::WriteToBuffer(bf_write &)
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	dword ptr [esp+8], 1
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+0A8h]
		test	al, al
		jnz	loc_BB978
		call	MemFreeScratch
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	dword ptr [esp+4], offset aServerInfoData ; "Server info data overflow"
		call	dword ptr [eax+38h]
		add	esp, 151Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BB978:				; CODE XREF: CBaseClient::SendServerInfo(void)+329j
		mov	dword ptr [esp], offset	aCbaseclientS_1	; " CBaseClient::SendServerInfo(finished)"
		call	COM_TimestampedLog
		call	MemFreeScratch
		add	esp, 151Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BB9A0:				; CODE XREF: CBaseClient::SendServerInfo(void)+58j
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+64h]
		test	al, al
		jz	loc_BB76D
		jmp	loc_BB67E
_ZN11CBaseClient14SendServerInfoEv endp

; ---------------------------------------------------------------------------
		lea	ebx, [ebp-0CB8h]
		mov	esi, eax
		mov	dword ptr [ebp-0CC8h], (offset _ZTV13NET_SetConVar+8)
		mov	dword ptr [ebp-0CACh], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	eax, [ebp-0CB8h]
		mov	[esp], ebx
		mov	[ebp-0CA8h], eax
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::~CBaseClient()
_ZThn8_N11CBaseClientD1Ev proc near	; DATA XREF: .rodata:`vtable for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClientD2Ev ; CBaseClient::~CBaseClient()
_ZThn8_N11CBaseClientD1Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::~CBaseClient()
_ZThn4_N11CBaseClientD1Ev proc near	; DATA XREF: .rodata:`vtable for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClientD2Ev ; CBaseClient::~CBaseClient()
_ZThn4_N11CBaseClientD1Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::~CBaseClient()
_ZN11CBaseClientD2Ev proc near		; CODE XREF: `non-virtual thunk	to'CBaseClient::~CBaseClient()+5j
					; `non-virtual thunk to'CBaseClient::~CBaseClient()+5j ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	dword ptr [ebx], (offset _ZTV11CBaseClient+8)
		lea	esi, [ebx+27330h]
		mov	dword ptr [ebx+4], (offset _ZTV11CBaseClient+104h)
		mov	dword ptr [ebx+8], (offset _ZTV11CBaseClient+1B0h)
		mov	dword ptr [ebx+2733Ch],	0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI7Spike_tiE5PurgeEv ; CUtlMemory<Spike_t,int>::Purge(void)
		mov	eax, [ebx+27330h]
		mov	[ebx+27340h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI7Spike_tiE5PurgeEv ; CUtlMemory<Spike_t,int>::Purge(void)
		mov	eax, [ebx+0D8h]
		test	eax, eax
		jz	short loc_BBA81
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)

loc_BBA81:				; CODE XREF: CBaseClient::~CBaseClient()+57j
		mov	dword ptr [ebx+8], (offset _ZTV18INetMessageHandler+8)
		mov	dword ptr [ebx+4], (offset _ZTV18INetChannelHandler+8)
		mov	dword ptr [ebx], (offset _ZTV19IGameEventListener2+8)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseClientD2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx+8], (offset _ZTV18INetMessageHandler+8)
		mov	dword ptr [ebx+4], (offset _ZTV18INetChannelHandler+8)
		mov	dword ptr [ebx], (offset _ZTV19IGameEventListener2+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::~CBaseClient()
_ZThn8_N11CBaseClientD0Ev proc near	; DATA XREF: .rodata:`vtable for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN11CBaseClientD0Ev ; CBaseClient::~CBaseClient()
_ZThn8_N11CBaseClientD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::~CBaseClient()
_ZThn4_N11CBaseClientD0Ev proc near	; DATA XREF: .rodata:`vtable for'CBaseCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClientD0Ev ; CBaseClient::~CBaseClient()
_ZThn4_N11CBaseClientD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient___CBaseClient(void *)
_ZN11CBaseClientD0Ev proc near		; CODE XREF: `non-virtual thunk	to'CBaseClient::~CBaseClient()+5j
					; `non-virtual thunk to'CBaseClient::~CBaseClient()+5j
					; DATA XREF: ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN11CBaseClientD2Ev ; CBaseClient::~CBaseClient()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN11CBaseClientD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__TraceNetworkMsg(int,	int, char *format, char	arg)
_ZN11CBaseClient15TraceNetworkMsgEiPKcz	proc near
					; CODE XREF: CBaseClient::SendNetMsg(INetMessage &,bool)+F6p
					; CBaseClient::SendSnapshot(CClientFrame *)+260p ...

dest		= byte ptr -8Ch
var_4C		= dword	ptr -4Ch
src		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
format		= dword	ptr  10h
arg		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0A8h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	eax, [ebx+27324h]
		test	eax, eax
		jz	short loc_BBB87
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	esi, [ebp+src]
		mov	[esp], esi	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	[esp+4], esi	; src
		lea	esi, [ebp+dest]
		mov	[ebp+var_4C], 0
		mov	[ebp+dest], 0
		mov	dword ptr [esp+8], 40h ; n
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [ebp+arg_4]
		mov	[esp+8], esi
		mov	[ebp+var_4C], eax
		mov	eax, [ebx+2733Ch]
		add	ebx, 27330h
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorI7Spike_t10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)

loc_BBB87:				; CODE XREF: CBaseClient::TraceNetworkMsg(int,char  const*,...)+1Aj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseClient15TraceNetworkMsgEiPKcz	endp

; ---------------------------------------------------------------------------
		jmp	short _ZThn4_N11CBaseClient10SendNetMsgER11INetMessageb	; `non-virtual thunk to'CBaseClient::SendNetMsg(INetMessage &,bool)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::SendNetMsg(INetMessage &, bool)
_ZThn4_N11CBaseClient10SendNetMsgER11INetMessageb proc near ; CODE XREF: .text:000BBB91j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient10SendNetMsgER11INetMessageb ; CBaseClient::SendNetMsg(INetMessage &,bool)
_ZThn4_N11CBaseClient10SendNetMsgER11INetMessageb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SendNetMsg(INetMessage &, bool)
_ZN11CBaseClient10SendNetMsgER11INetMessageb proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::SendNetMsg(INetMessage &,bool)+5j
					; CGameClient::SendNetMsg(INetMessage &,bool)+2Cj
					; DATA XREF: ...

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	edx, 1
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	edi, [ebp+arg_8]
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jz	short loc_BBC3B
		mov	eax, [eax]
		and	edi, 0FFh
		mov	eax, [eax+108h]
		mov	[ebp+var_1C], eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+1Ch]
		mov	edx, 1
		test	al, al
		mov	eax, [ebx+0C4h]
		cmovz	edx, edi
		mov	[esp+4], edx
		mov	[esp], eax
		call	[ebp+var_1C]
		mov	[ebp+var_1C], eax
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		mov	edx, eax
		mov	eax, [ebx+27324h]
		test	eax, eax
		jnz	short loc_BBC50

loc_BBC3B:				; CODE XREF: CBaseClient::SendNetMsg(INetMessage &,bool)+26j
		mov	ebx, [ebp+var_C]
		mov	eax, edx
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BBC50:				; CODE XREF: CBaseClient::SendNetMsg(INetMessage &,bool)+89j
		mov	eax, [ebx+0C4h]
		mov	eax, [eax]
		mov	eax, [eax+108h]
		mov	[ebp+var_20], eax
		mov	eax, [esi]
		mov	[ebp+var_24], dl
		mov	[esp], esi
		call	dword ptr [eax+1Ch]
		test	al, al
		mov	eax, 1
		cmovnz	edi, eax
		mov	eax, [ebx+0C4h]
		mov	[esp+4], edi
		mov	[esp], eax
		call	[ebp+var_20]
		mov	edi, eax
		mov	eax, [esi]
		mov	[esp], esi
		sub	edi, [ebp+var_1C]
		call	dword ptr [eax+28h]
		mov	[esp], ebx	; int
		mov	[esp+0Ch], eax	; arg
		mov	[esp+4], edi	; int
		mov	dword ptr [esp+8], offset aNetmessageS ; "NetMessage %s"
		call	_ZN11CBaseClient15TraceNetworkMsgEiPKcz	; CBaseClient::TraceNetworkMsg(int,char	 const*,...)
		movzx	edx, [ebp+var_24]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		mov	eax, edx
		pop	ebp
		retn
_ZN11CBaseClient10SendNetMsgER11INetMessageb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClient__TraceNetworkData(int, int, char *format, char arg)
_ZN11CBaseClient16TraceNetworkDataER8bf_writePKcz proc near
					; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+2CCp
					; CBaseClient::SendSnapshot(CClientFrame *)+42Bp ...

dest		= byte ptr -9Ch
var_5C		= dword	ptr -5Ch
src		= byte ptr -58h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
format		= dword	ptr  10h
arg		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0B8h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [ebx+27324h]
		test	edx, edx
		jz	short loc_BBD5C
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	edi, [ebp+src]
		mov	[esp], edi	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	[esp+4], edi	; src
		lea	edi, [ebp+dest]
		mov	[ebp+var_5C], 0
		mov	[ebp+dest], 0
		mov	dword ptr [esp+8], 40h ; n
		mov	[esp], edi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [esi+0Ch]
		sub	eax, [ebx+2732Ch]
		mov	[esp+8], edi
		mov	[ebp+var_5C], eax
		mov	eax, [ebx+2733Ch]
		mov	[esp+4], eax
		lea	eax, [ebx+27330h]
		mov	[esp], eax
		call	_ZN10CUtlVectorI7Spike_t10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)
		mov	eax, [esi+0Ch]
		mov	[ebx+2732Ch], eax

loc_BBD5C:				; CODE XREF: CBaseClient::TraceNetworkData(bf_write &,char  const*,...)+20j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseClient16TraceNetworkDataER8bf_writePKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::SendSnapshot(CClientFrame *)
_ZN11CBaseClient12SendSnapshotEP12CClientFrame proc near
					; CODE XREF: CGameClient::SendSnapshot(CClientFrame *)+1AFp
					; DATA XREF: .rodata:`vtable for'CBaseCliento

var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_7D		= byte ptr -7Dh
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_6D		= byte ptr -6Dh
arg		= byte ptr -6Ch
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0BCh
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx+0D8h]
		cmp	[edi+118h], eax
		jz	loc_BC1F0
		mov	esi, [ebx+1E8h]
		test	esi, esi
		jg	loc_BC1F0
		mov	eax, ds:g_Telemetry+8
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_78], 0
		mov	[ebp+var_88], 0
		mov	[ebp+var_84], 0
		test	eax, eax
		jz	short loc_BBE4C
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aSendsnapshot ; "SendSnapshot"
		mov	[esp+4], edx
		mov	dword ptr [esp+28h], offset aNetworking	; "Networking"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN11CBaseClient12SendSnapshotEP12CClientFrameE6tm_fmt ; CBaseClient::SendSnapshot(CClientFrame *)::tm_fmt
		mov	dword ptr [esp+1Ch], 44Bh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_1 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+8
		mov	[ebp+var_88], edx
		mov	[ebp+var_84], ecx
		mov	[ebp+var_78], edi

loc_BBE4C:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+62j
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	[ebp+var_7D]
		jz	short loc_BBEC7
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jnz	short loc_BBEC7
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSendsnapshot ;	"SendSnapshot"
		jz	short loc_BBEA3
		mov	dword ptr [esp+10h], 4
		mov	dword ptr [esp+0Ch], offset aNetworking	; "Networking"
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aSendsnapshot	; "SendSnapshot"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BBEA3:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+104j
		mov	eax, [eax+70h]
		mov	edx, dword ptr g_VProfCurrentProfile+10A0h
		lea	eax, [edx+eax*8]
		or	dword ptr [eax+4], 4
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0

loc_BBEC7:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+E8j
					; CBaseClient::SendSnapshot(CClientFrame *)+F7j
		mov	eax, ds:g_Telemetry
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		test	eax, eax
		jz	loc_BC390
		lea	edx, [ebp+var_20]
		mov	dword ptr [esp+28h], offset _ZZN11CBaseClient12SendSnapshotEP12CClientFrameE12__FUNCTION__ ; "SendSnapshot"
		mov	dword ptr [esp+24h], (offset aDFS+9)
		mov	dword ptr [esp+20h], offset _ZZN11CBaseClient12SendSnapshotEP12CClientFrameE6tm_fmt_0 ;	CBaseClient::SendSnapshot(CClientFrame *)::tm_fmt
		mov	dword ptr [esp+1Ch], 44Ch
		mov	dword ptr [esp+18h], offset aHomeBuildbot_1 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 32h
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	edi, ds:g_Telemetry
		mov	[ebp+var_90], eax
		mov	[ebp+var_8C], edx
		mov	[ebp+var_7C], edi

loc_BBF52:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+63Bj
		lea	edi, [ebx+224h]
		mov	[ebp+var_6D], 0
		mov	[ebp+var_74], edi
		lea	esi, [ebp+var_40]
		jmp	loc_BC0E4
; ---------------------------------------------------------------------------
		align 10h

loc_BBF70:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+416j
		mov	eax, ds:g_pLocalNetworkBackdoor
		test	eax, eax
		jz	loc_BC1AD

loc_BBF7D:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+437j
					; CBaseClient::SendSnapshot(CClientFrame *)+465j
		mov	eax, [ebx+27324h]
		xor	edi, edi
		mov	ecx, dword ptr [ebp+arg]
		test	eax, eax
		mov	eax, [ebx+90h]
		cmovnz	edi, [esi+0Ch]
		mov	edx, [eax]
		mov	[esp+0Ch], ecx	; arg
		mov	ecx, [ebp+arg_4]
		mov	[esp+10h], esi
		mov	[esp+4], ebx
		mov	[esp], eax
		mov	[esp+8], ecx
		call	dword ptr [edx+98h]
		mov	eax, [ebx+27324h]
		test	eax, eax
		jz	short loc_BBFD5
		mov	dword ptr [esp+8], offset aTotalDelta ;	"Total Delta"
		mov	eax, [esi+0Ch]
		mov	[esp], ebx	; int
		sub	eax, edi
		mov	[esp+4], eax	; int
		call	_ZN11CBaseClient15TraceNetworkMsgEiPKcz	; CBaseClient::TraceNetworkMsg(int,char	 const*,...)

loc_BBFD5:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+24Aj
		mov	eax, [ebx+90h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+64h]
		mov	edx, [ebx+90h]
		cmp	al, 1
		sbb	eax, eax
		mov	edi, [ebp+arg_4]
		and	eax, 0BFh
		add	eax, 40h
		mov	ecx, [edx]
		mov	[esp+14h], eax
		mov	[esp+10h], esi
		mov	eax, [ebx+0D8h]
		mov	[esp+0Ch], eax	; arg
		mov	eax, [edi+118h]
		mov	[esp+4], ebx
		mov	[esp], edx
		mov	[esp+8], eax
		call	dword ptr [ecx+9Ch]
		mov	edi, [ebx+27324h]
		test	edi, edi
		jz	short loc_BC041
		mov	dword ptr [esp+8], offset aTempEntities	; "Temp	Entities"
		mov	[esp+4], esi	; int
		mov	[esp], ebx	; int
		call	_ZN11CBaseClient16TraceNetworkDataER8bf_writePKcz ; CBaseClient::TraceNetworkData(bf_write &,char  const*,...)

loc_BC041:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+2BBj
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [eax+0C8h]
		mov	ecx, [ebx+27324h]
		test	ecx, ecx
		jz	short loc_BC094
		mov	edx, dword ptr [ebp+arg]
		mov	eax, (offset aR_eyes+3)
		mov	dword ptr [esp+8], offset aFinishedDeltaS ; "Finished [delta %s]"
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], ebx	; int
		test	edx, edx
		mov	edx, offset aNo	; "no"
		cmovz	eax, edx
		mov	[esp+0Ch], eax	; arg
		call	_ZN11CBaseClient15TraceNetworkMsgEiPKcz	; CBaseClient::TraceNetworkMsg(int,char	 const*,...)
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN11CBaseClient8EndTraceER8bf_write ; CBaseClient::EndTrace(bf_write &)

loc_BC094:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+2E8j
		cmp	byte ptr [esi+10h], 0
		jz	loc_BC233
		mov	eax, dword ptr [ebp+arg]
		test	eax, eax
		jnz	loc_BC218
		mov	eax, dword ptr ds:sv_netspike_on_reliable_snapshot_overflow+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jz	loc_BC372
		cmp	[ebp+var_6D], 0
		jnz	loc_BC368
		mov	dword ptr [esp], offset	aReliableSnapsh	; " RELIABLE SNAPSHOT OVERFLOW!	 Triggerin"...
		call	Warning
		mov	dword ptr [ebx+27324h],	1
		mov	[ebp+var_5C], (offset _ZTV11INetMessage+8)
		mov	[ebp+var_6D], 1

loc_BC0E4:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+1F2j
		mov	edi, [ebp+var_74]
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 27100h ; arg
		mov	dword ptr [esp+4], offset aCbaseclientS_2 ; "CBaseClient::SendSnapshot"
		mov	[esp], esi
		mov	[esp+8], edi
		call	_ZN8bf_writeC2EPKcPvii ; bf_write::bf_write(char  const*,void *,int,int)
		mov	edx, [ebx+0CCh]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+0CCh]
		test	eax, eax
		mov	dword ptr [ebp+arg], eax
		jz	loc_BC1E0

loc_BC12B:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+478j
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_54], 0
		mov	[ebp+var_5C], (offset _ZTV8NET_Tick+8)
		mov	[ebp+var_58], 0
		mov	eax, [edi+8]
		mov	[ebp+var_4C], eax
		mov	eax, ds:host_frametime_unbounded
		mov	[ebp+var_48], eax
		mov	eax, ds:host_frametime_stddeviation
		mov	[ebp+var_44], eax
		mov	eax, [ebx+27324h]
		test	eax, eax
		jz	short loc_BC16F
		mov	eax, [esi+0Ch]
		mov	[ebx+27328h], eax
		mov	[ebx+2732Ch], eax

loc_BC16F:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+3EEj
		lea	eax, [ebp+var_5C]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZN8NET_Tick13WriteToBufferER8bf_write ; NET_Tick::WriteToBuffer(bf_write &)
		mov	eax, [ebx+27324h]
		test	eax, eax
		jz	loc_BBF70
		mov	dword ptr [esp+8], offset aNet_tick_0 ;	"NET_Tick"
		mov	[esp+4], esi	; int
		mov	[esp], ebx	; int
		call	_ZN11CBaseClient16TraceNetworkDataER8bf_writePKcz ; CBaseClient::TraceNetworkData(bf_write &,char  const*,...)
		mov	eax, ds:g_pLocalNetworkBackdoor
		test	eax, eax
		jnz	loc_BBF7D

loc_BC1AD:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+207j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		mov	[esp+0Ch], esi
		mov	[esp+8], eax
		mov	[esp+4], ebx
		mov	eax, [ebx+90h]
		mov	eax, [eax+0C8h]
		mov	[esp], eax
		call	_ZN28CNetworkStringTableContainer18WriteUpdateMessageEP11CBaseClientiR8bf_write	; CNetworkStringTableContainer::WriteUpdateMessage(CBaseClient *,int,bf_write &)
		jmp	loc_BBF7D
; ---------------------------------------------------------------------------
		align 10h

loc_BC1E0:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+3B5j
		mov	[esp], ebx
		call	_ZN11CBaseClient19OnRequestFullUpdateEv	; CBaseClient::OnRequestFullUpdate(void)
		jmp	loc_BC12B
; ---------------------------------------------------------------------------
		align 10h

loc_BC1F0:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+1Ej
					; CBaseClient::SendSnapshot(CClientFrame *)+2Cj
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+0C0h]

loc_BC209:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+5ACj
		add	esp, 0BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BC218:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+333j
		lea	eax, [ebx+18h]
		mov	dword ptr [esp], offset	aWarningMsgOver	; "WARNING: msg	overflowed for %s\n"
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	[esp], esi
		call	_ZN8bf_write5ResetEv ; bf_write::Reset(void)

loc_BC233:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+328j
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebx+0D8h]
		mov	edi, [ecx+118h]
		cmp	edi, eax
		jz	short loc_BC26A
		test	edi, edi
		jz	short loc_BC258
		mov	[esp], edi
		call	_ZN14CFrameSnapshot12AddReferenceEv ; CFrameSnapshot::AddReference(void)
		mov	eax, [ebx+0D8h]

loc_BC258:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+4D8j
		test	eax, eax
		jz	short loc_BC264
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)

loc_BC264:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+4EAj
		mov	[ebx+0D8h], edi

loc_BC26A:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+4D4j
		cmp	byte ptr [ebx+1ECh], 0
		mov	edx, [ebx+0C4h]
		jnz	loc_BC3B0

loc_BC27D:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+642j
		mov	edi, dword ptr [ebp+arg]
		mov	eax, [edx]
		test	edi, edi
		jz	loc_BC41B
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+0BCh]
		test	eax, eax
		setnle	al
		mov	esi, eax

loc_BC29E:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+6D2j
		mov	edx, esi
		test	dl, dl
		jz	loc_BC3D0

loc_BC2A8:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+612j
					; CBaseClient::SendSnapshot(CClientFrame *)+65Aj ...
		mov	esi, [ebp+var_7C]
		mov	[ebp+var_5C], (offset _ZTV11INetMessage+8)
		test	esi, esi
		jz	short loc_BC2EB
		mov	eax, [ebp+var_90]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_8C]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_7C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_BC2EB:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+544j
		cmp	[ebp+var_7D], 0
		jz	short loc_BC317
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BC304
		mov	ebx, dword ptr g_VProfCurrentProfile+100Ch
		test	ebx, ebx
		jz	short loc_BC317

loc_BC304:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+588j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_BC3E5

loc_BC317:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+57Fj
					; CBaseClient::SendSnapshot(CClientFrame *)+592j ...
		mov	ecx, [ebp+var_78]
		test	ecx, ecx
		jz	loc_BC209
		mov	edi, [ebp+var_78]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_88]
		mov	dword ptr [esp+10h], 0
		mov	edx, [ebp+var_84]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]
		add	esp, 0BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BC368:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+34Dj
		mov	dword ptr [ebx+27324h],	0

loc_BC372:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+343j
		mov	eax, [ebx]
		mov	dword ptr [esp+4], offset aErrorReliableS ; "ERROR! Reliable snapshot overflow."
		mov	[esp], ebx
		call	dword ptr [eax+38h]
		jmp	loc_BC2A8
; ---------------------------------------------------------------------------
		align 10h

loc_BC390:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+16Cj
		mov	[ebp+var_7C], 0
		mov	[ebp+var_90], 0
		mov	[ebp+var_8C], 0
		jmp	loc_BBF52
; ---------------------------------------------------------------------------

loc_BC3B0:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+507j
		test	edx, edx
		jnz	loc_BC27D
		mov	edi, [ebp+arg_4]
		mov	eax, [edi+8]
		mov	[ebx+0CCh], eax
		mov	[ebx+0D0h], eax
		jmp	loc_BC2A8
; ---------------------------------------------------------------------------
		align 10h

loc_BC3D0:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+532j
		mov	eax, [ebx]
		mov	dword ptr [esp+4], offset aErrorCouldnTSe ; "ERROR! Couldn't send snapshot."
		mov	[esp], ebx
		call	dword ptr [eax+38h]
		jmp	loc_BC2A8
; ---------------------------------------------------------------------------

loc_BC3E5:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+5A1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jnz	short loc_BC40C
		mov	eax, dword ptr g_VProfCurrentProfile+1014h

loc_BC3FB:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+6A9j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_BC317
; ---------------------------------------------------------------------------

loc_BC40C:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+684j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax
		jmp	short loc_BC3FB
; ---------------------------------------------------------------------------

loc_BC41B:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+514j
		mov	dword ptr [esp+8], 1
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+0A8h]
		test	al, al
		mov	esi, eax
		jnz	short loc_BC447

loc_BC436:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+6FAj
		mov	edi, [ebp+arg_4]
		mov	eax, [edi+8]
		mov	[ebx+1E8h], eax
		jmp	loc_BC29E
; ---------------------------------------------------------------------------

loc_BC447:				; CODE XREF: CBaseClient::SendSnapshot(CClientFrame *)+6C4j
		mov	eax, [ebx+0C4h]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+0C0h]
		test	al, al
		mov	eax, 0
		cmovz	esi, eax
		jmp	short loc_BC436
_ZN11CBaseClient12SendSnapshotEP12CClientFrame endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_BC46E:				; CODE XREF: .text:000BC4E2j
					; .text:000BC519j
		cmp	byte ptr [ebp-7Dh], 0
		jz	short loc_BC499
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BC486
		cmp	dword ptr g_VProfCurrentProfile+100Ch, 0
		jz	short loc_BC499

loc_BC486:				; CODE XREF: .text:000BC47Bj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_BC530

loc_BC499:				; CODE XREF: .text:000BC472j
					; .text:000BC484j ...
		cmp	dword ptr [ebp-78h], 0
		jz	short loc_BC4D4
		mov	eax, [ebp-88h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-84h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-78h]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_BC4D4:				; CODE XREF: .text:000BC49Dj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_BC4DE:				; CODE XREF: .text:000BC527j
		cmp	dword ptr [ebp-7Ch], 0
		jz	short loc_BC46E
		mov	eax, [ebp-90h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-8Ch]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-7Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]
		jmp	loc_BC46E
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-5Ch], (offset _ZTV11INetMessage+8)
		mov	ebx, eax
		jmp	short loc_BC4DE
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	loc_BC499
; ---------------------------------------------------------------------------

loc_BC530:				; CODE XREF: .text:000BC493j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BC54E
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BC54E:				; CODE XREF: .text:000BC53Fj
		cmp	dword ptr g_VProfCurrentProfile+1014h, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_BC499
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; INetChannelHandler::~INetChannelHandler()
_ZN18INetChannelHandlerD2Ev proc near	; DATA XREF: .rodata:`vtable for'INetChannelHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetChannelHandler+8)
		pop	ebp
		retn
_ZN18INetChannelHandlerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; INetMessageHandler::~INetMessageHandler()
_ZN18INetMessageHandlerD2Ev proc near	; DATA XREF: .rodata:`vtable for'INetMessageHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetMessageHandler+8)
		pop	ebp
		retn
_ZN18INetMessageHandlerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IClientMessageHandler::~IClientMessageHandler()
_ZN21IClientMessageHandlerD2Ev proc near
					; DATA XREF: .rodata:`vtable for'IClientMessageHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetMessageHandler+8)
		pop	ebp
		retn
_ZN21IClientMessageHandlerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IGameEventListener2::~IGameEventListener2()
_ZN19IGameEventListener2D2Ev proc near	; DATA XREF: .rodata:`vtable for'IGameEventListener2o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV19IGameEventListener2+8)
		pop	ebp
		retn
_ZN19IGameEventListener2D2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IClient::~IClient()
_ZN7IClientD2Ev	proc near		; DATA XREF: .rodata:`vtable for'ICliento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetChannelHandler+8)
		pop	ebp
		retn
_ZN7IClientD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetPlayerSlot(void)const
_ZThn4_NK11CBaseClient13GetPlayerSlotEv	proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient13GetPlayerSlotEv ; CBaseClient::GetPlayerSlot(void)
_ZThn4_NK11CBaseClient13GetPlayerSlotEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetPlayerSlot(void)const
_ZNK11CBaseClient13GetPlayerSlotEv proc	near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetPlayerSlot(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+0Ch]
		retn
_ZNK11CBaseClient13GetPlayerSlotEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetUserID(void)const
_ZThn4_NK11CBaseClient9GetUserIDEv proc	near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient9GetUserIDEv ; CBaseClient::GetUserID(void)
_ZThn4_NK11CBaseClient9GetUserIDEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetUserID(void)const
_ZNK11CBaseClient9GetUserIDEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::GetUserID(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+14h]
		retn
_ZNK11CBaseClient9GetUserIDEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetClientName(void)const
_ZThn4_NK11CBaseClient13GetClientNameEv	proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient13GetClientNameEv ; CBaseClient::GetClientName(void)
_ZThn4_NK11CBaseClient13GetClientNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetClientName(void)const
_ZNK11CBaseClient13GetClientNameEv proc	near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetClientName(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		add	eax, 18h
		retn
_ZNK11CBaseClient13GetClientNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetNetChannel(void)
_ZThn4_N11CBaseClient13GetNetChannelEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient13GetNetChannelEv	; CBaseClient::GetNetChannel(void)
_ZThn4_N11CBaseClient13GetNetChannelEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetNetChannel(void)
_ZN11CBaseClient13GetNetChannelEv proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::GetNetChannel(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+0C4h]
		retn
_ZN11CBaseClient13GetNetChannelEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::GetServer(void)
_ZThn4_N11CBaseClient9GetServerEv proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN11CBaseClient9GetServerEv ; CBaseClient::GetServer(void)
_ZThn4_N11CBaseClient9GetServerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::GetServer(void)
_ZN11CBaseClient9GetServerEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::GetServer(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+90h]
		retn
_ZN11CBaseClient9GetServerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsConnected(void)const
_ZThn4_NK11CBaseClient11IsConnectedEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient11IsConnectedEv ; CBaseClient::IsConnected(void)
_ZThn4_NK11CBaseClient11IsConnectedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsConnected(void)const
_ZNK11CBaseClient11IsConnectedEv proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::IsConnected(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		cmp	dword ptr [eax+0C8h], 1
		setnle	al
		retn
_ZNK11CBaseClient11IsConnectedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsSpawned(void)const
_ZThn4_NK11CBaseClient9IsSpawnedEv proc	near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient9IsSpawnedEv ; CBaseClient::IsSpawned(void)
_ZThn4_NK11CBaseClient9IsSpawnedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsSpawned(void)const
_ZNK11CBaseClient9IsSpawnedEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::IsSpawned(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		cmp	dword ptr [eax+0C8h], 2
		setnle	al
		retn
_ZNK11CBaseClient9IsSpawnedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsActive(void)const
_ZThn4_NK11CBaseClient8IsActiveEv proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient8IsActiveEv ; CBaseClient::IsActive(void)
_ZThn4_NK11CBaseClient8IsActiveEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsActive(void)const
_ZNK11CBaseClient8IsActiveEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::IsActive(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		cmp	dword ptr [eax+0C8h], 6
		setz	al
		retn
_ZNK11CBaseClient8IsActiveEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsFakeClient(void)const
_ZThn4_NK11CBaseClient12IsFakeClientEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient12IsFakeClientEv	; CBaseClient::IsFakeClient(void)
_ZThn4_NK11CBaseClient12IsFakeClientEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsFakeClient(void)const
_ZNK11CBaseClient12IsFakeClientEv proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::IsFakeClient(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+1ECh]
		retn
_ZNK11CBaseClient12IsFakeClientEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsHLTV(void)const
_ZThn4_NK11CBaseClient6IsHLTVEv	proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient6IsHLTVEv ; CBaseClient::IsHLTV(void)
_ZThn4_NK11CBaseClient6IsHLTVEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsHLTV(void)const
_ZNK11CBaseClient6IsHLTVEv proc	near	; CODE XREF: `non-virtual thunk	to'CBaseClient::IsHLTV(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+94h]
		retn
_ZNK11CBaseClient6IsHLTVEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsReplay(void)const
_ZThn4_NK11CBaseClient8IsReplayEv proc near ; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient8IsReplayEv ; CBaseClient::IsReplay(void)
_ZThn4_NK11CBaseClient8IsReplayEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsReplay(void)const
_ZNK11CBaseClient8IsReplayEv proc near	; CODE XREF: `non-virtual thunk	to'CBaseClient::IsReplay(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+95h]
		retn
_ZNK11CBaseClient8IsReplayEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsHearingClient(int)const
_ZThn4_NK11CBaseClient15IsHearingClientEi proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient15IsHearingClientEi ; CBaseClient::IsHearingClient(int)
_ZThn4_NK11CBaseClient15IsHearingClientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsHearingClient(int)const
_ZNK11CBaseClient15IsHearingClientEi proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::IsHearingClient(int)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11CBaseClient15IsHearingClientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClient::IsProximityHearingClient(int)const
_ZThn4_NK11CBaseClient24IsProximityHearingClientEi proc	near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK11CBaseClient24IsProximityHearingClientEi ; CBaseClient::IsProximityHearingClient(int)
_ZThn4_NK11CBaseClient24IsProximityHearingClientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsProximityHearingClient(int)const
_ZNK11CBaseClient24IsProximityHearingClientEi proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClient::IsProximityHearingClient(int)+5j
					; DATA XREF: .rodata:`vtable for'CBaseCliento ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11CBaseClient24IsProximityHearingClientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClient::IsSplitScreenUser(void)const
_ZNK11CBaseClient17IsSplitScreenUserEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseCliento
					; .rodata:`vtable for'CHLTVCliento ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11CBaseClient17IsSplitScreenUserEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IClient::~IClient()
_ZN7IClientD0Ev	proc near		; DATA XREF: .rodata:`vtable for'ICliento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetChannelHandler+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN7IClientD0Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IGameEventListener2::~IGameEventListener2()
_ZN19IGameEventListener2D0Ev proc near	; DATA XREF: .rodata:`vtable for'IGameEventListener2o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV19IGameEventListener2+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN19IGameEventListener2D0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IClientMessageHandler::~IClientMessageHandler()
_ZN21IClientMessageHandlerD0Ev proc near
					; DATA XREF: .rodata:`vtable for'IClientMessageHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetMessageHandler+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN21IClientMessageHandlerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; INetMessageHandler::~INetMessageHandler()
_ZN18INetMessageHandlerD0Ev proc near	; DATA XREF: .rodata:`vtable for'INetMessageHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetMessageHandler+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN18INetMessageHandlerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; INetChannelHandler::~INetChannelHandler()
_ZN18INetChannelHandlerD0Ev proc near	; DATA XREF: .rodata:`vtable for'INetChannelHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetChannelHandler+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN18INetChannelHandlerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<Spike_t, int>::Purge(void)
_ZN10CUtlMemoryI7Spike_tiE5PurgeEv proc	near ; CODE XREF: CBaseClient::~CBaseClient()+36p
					; CBaseClient::~CBaseClient()+4Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_BC86C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_BC865
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_BC865:				; CODE XREF: CUtlMemory<Spike_t,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_BC86C:				; CODE XREF: CUtlMemory<Spike_t,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI7Spike_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<Spike_t, int>::Grow(int)
_ZN10CUtlMemoryI7Spike_tiE4GrowEi proc near
					; CODE XREF: CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)+A4p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_BC8E6
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_BC8F0
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_BC8C7
		lea	esi, [esi+0]

loc_BC8B8:				; CODE XREF: CUtlMemory<Spike_t,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_BC8B8

loc_BC8C7:				; CODE XREF: CUtlMemory<Spike_t,int>::Grow(int)+30j
					; CUtlMemory<Spike_t,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jz	short loc_BC90F

loc_BC8D0:				; CODE XREF: CUtlMemory<Spike_t,int>::Grow(int)+8Dj
		mov	ecx, eax
		mov	[esp], edx	; ptr
		shl	ecx, 6
		lea	eax, [ecx+eax*4]
		mov	[esp+4], eax	; size
		call	realloc
		mov	[ebx], eax

loc_BC8E6:				; CODE XREF: CUtlMemory<Spike_t,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BC8F0:				; CODE XREF: CUtlMemory<Spike_t,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 1
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_BC8C7
		db	66h
		nop

loc_BC900:				; CODE XREF: CUtlMemory<Spike_t,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_BC900
		mov	edx, [ebx]
		mov	[ebx+4], eax
		test	edx, edx
		jnz	short loc_BC8D0

loc_BC90F:				; CODE XREF: CUtlMemory<Spike_t,int>::Grow(int)+4Ej
		mov	edx, eax
		shl	edx, 6
		lea	eax, [edx+eax*4]
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI7Spike_tiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<Spike_t, CUtlMemory<Spike_t, int>>::InsertBefore(int, Spike_t const&)
_ZN10CUtlVectorI7Spike_t10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: CBaseClient::TraceNetworkMsg(int,char  const*,...)+82p
					; CBaseClient::TraceNetworkData(bf_write &,char	 const*,...)+8Ep

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [esi+0Ch]
		mov	eax, [esi+4]
		cmp	edx, eax
		jge	short loc_BC9C8

loc_BC94F:				; CODE XREF: CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)+ACj
		add	edx, 1
		mov	eax, [esi]
		mov	[esi+0Ch], edx
		sub	edx, ebx
		sub	edx, 1
		test	edx, edx
		mov	[esi+10h], eax
		jle	short loc_BC9B8
		mov	ecx, ebx
		shl	ecx, 6
		lea	edi, [ecx+ebx*4]
		mov	ecx, edx
		shl	ecx, 6
		lea	edx, [ecx+edx*4]
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		mov	[esp+4], edx	; src
		lea	edx, [ebx+1]
		mov	ecx, edx
		shl	ecx, 6
		lea	edx, [ecx+edx*4]
		add	eax, edx
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [esi]

loc_BC995:				; CODE XREF: CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)+90j
		add	eax, edi
		jz	short loc_BC9A5
		mov	esi, [ebp+arg_8]
		mov	ecx, 11h
		mov	edi, eax
		rep movsd

loc_BC9A5:				; CODE XREF: CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)+67j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BC9B8:				; CODE XREF: CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)+31j
		mov	edx, ebx
		shl	edx, 6
		lea	edi, [edx+ebx*4]
		jmp	short loc_BC995
; ---------------------------------------------------------------------------
		align 8

loc_BC9C8:				; CODE XREF: CUtlVector<Spike_t,CUtlMemory<Spike_t,int>>::InsertBefore(int,Spike_t const&)+1Dj
		add	edx, 1
		mov	[esp], esi
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryI7Spike_tiE4GrowEi ; CUtlMemory<Spike_t,int>::Grow(int)
		mov	edx, [esi+0Ch]
		jmp	loc_BC94F
_ZN10CUtlVectorI7Spike_t10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CL_ClanIdChanged(IConVar *, char  const*, float)
_Z16CL_ClanIdChangedP7IConVarPKcf proc near
					; DATA XREF: _GLOBAL__sub_I__Z21UpdateNameFromSteamIDP7IConVarP8CSteamID+197o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z16CL_ClanIdChangedP7IConVarPKcf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::GetDemoProtocolVersion(void)const
_ZThn8_NK16CBaseClientState22GetDemoProtocolVersionEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZNK16CBaseClientState22GetDemoProtocolVersionEv ; CBaseClientState::GetDemoProtocolVersion(void)
_ZThn8_NK16CBaseClientState22GetDemoProtocolVersionEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::GetDemoProtocolVersion(void)const
_ZNK16CBaseClientState22GetDemoProtocolVersionEv proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::GetDemoProtocolVersion(void)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...
		push	ebp
		mov	eax, 16h
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CBaseClientState22GetDemoProtocolVersionEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessCmdKeyValues(SVC_CmdKeyValues *)
_ZThn8_N16CBaseClientState19ProcessCmdKeyValuesEP16SVC_CmdKeyValues proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState19ProcessCmdKeyValuesEP16SVC_CmdKeyValues ; CBaseClientState::ProcessCmdKeyValues(SVC_CmdKeyValues *)
_ZThn8_N16CBaseClientState19ProcessCmdKeyValuesEP16SVC_CmdKeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessCmdKeyValues(SVC_CmdKeyValues *)
_ZN16CBaseClientState19ProcessCmdKeyValuesEP16SVC_CmdKeyValues proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessCmdKeyValues(SVC_CmdKeyValues *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CBaseClientState19ProcessCmdKeyValuesEP16SVC_CmdKeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ConnectionCrashed(char  const*)
_ZN16CBaseClientState17ConnectionCrashedEPKc proc near
					; CODE XREF: CHLTVClientState::ConnectionCrashed(char  const*)+14p
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_BCA90
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aConnectionLost	; "Connection lost: %s.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [esi]
		mov	eax, [eax+88h]

loc_BCA6E:				; CODE XREF: CBaseClientState::ConnectionCrashed(char  const*)+71j
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		call	eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BCA90:				; CODE XREF: CBaseClientState::ConnectionCrashed(char  const*)+14j
		mov	dword ptr [esp+4], offset aUnknownReason ; "unknown reason"
		mov	ebx, offset aConnectionCras ; "Connection crashed"
		mov	dword ptr [esp], offset	aConnectionLost	; "Connection lost: %s.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [esi]
		mov	eax, [eax+88h]
		jmp	short loc_BCA6E
_ZN16CBaseClientState17ConnectionCrashedEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ConnectionClosing(char  const*)
_ZN16CBaseClientState17ConnectionClosingEPKc proc near
					; CODE XREF: CHLTVClientState::ConnectionClosing(char  const*)+14p
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_BCB10
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aDisconnectS_ ;	"Disconnect: %s.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [esi]
		mov	eax, [eax+88h]

loc_BCAEE:				; CODE XREF: CBaseClientState::ConnectionClosing(char  const*)+71j
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		call	eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BCB10:				; CODE XREF: CBaseClientState::ConnectionClosing(char  const*)+14j
		mov	dword ptr [esp+4], offset aUnknownReason ; "unknown reason"
		mov	ebx, offset aConnectionClos ; "Connection closing"
		mov	dword ptr [esp], offset	aDisconnectS_ ;	"Disconnect: %s.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [esi]
		mov	eax, [eax+88h]
		jmp	short loc_BCAEE
_ZN16CBaseClientState17ConnectionClosingEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::FileSent(char  const*, unsigned int)
_ZN16CBaseClientState8FileSentEPKcj proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset aFileSSent_	; "File	'%s' sent.\n"
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
_ZN16CBaseClientState8FileSentEPKcj endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::FileRequested(char	const*,	unsigned int)
_ZN16CBaseClientState13FileRequestedEPKcj proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	eax, [esi+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	aFileSRequested	; "File	'%s' requested from %s.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [esi+10h]
		mov	esi, [ebp+var_8]
		mov	edx, [eax]
		mov	[ebp+arg_8], edi
		mov	[ebp+arg_4], ebx
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_0], eax
		mov	ebx, [ebp+var_C]
		mov	eax, [edx+0ACh]
		mov	esp, ebp
		pop	ebp
		jmp	eax
_ZN16CBaseClientState13FileRequestedEPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::FileDenied(char  const*, unsigned int)
_ZN16CBaseClientState10FileDeniedEPKcj proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset aCbaseclientsta ; "CBaseClientState::FileDenied: %s.\n"
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
_ZN16CBaseClientState10FileDeniedEPKcj endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::FileReceived(char  const*, unsigned	int)
_ZN16CBaseClientState12FileReceivedEPKcj proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset aCbaseclients_0 ; "CBaseClientState::FileReceived: %s.\n"
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
_ZN16CBaseClientState12FileReceivedEPKcj endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::FullConnect(netadr_s &)
_ZN16CBaseClientState11FullConnectER8netadr_s proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], offset	aCbaseclients_1	; "CBaseClientState::FullConnect"
		mov	esi, [ebp+arg_4]
		call	COM_TimestampedLog
		mov	dword ptr [esp+14h], 16h ; int
		mov	dword ptr [esp+10h], 0 ; char
		mov	[esp+0Ch], ebx	; int
		mov	[esp+4], esi	; int
		mov	dword ptr [esp+8], offset aClient ; "CLIENT"
		mov	eax, [ebx+0Ch]
		mov	[esp], eax	; int
		call	_Z20NET_CreateNetChanneliP8netadr_sPKcP18INetChannelHandlerbi ;	NET_CreateNetChannel(int,netadr_s *,char  const*,INetChannelHandler *,bool,int)
		mov	ecx, [ebx+14h]
		mov	[ebx+10h], eax
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+78h]
		mov	eax, [ebx]
		mov	dword ptr [ebx+1A4h], 0FFFFFFFFh
		fld	ds:net_time
		fst	qword ptr [ebx+18h]
		fstp	qword ptr [ebx+140h]
		mov	dword ptr [esp+8], 0FFFFFFFFh
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	dword ptr [eax+84h]
		mov	edi, ds:g_GameEventManager
		mov	eax, [edi]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aClient_connect ; "client_connected"
		mov	[esp], edi
		call	dword ptr [eax+1Ch]
		test	eax, eax
		mov	esi, eax
		jz	loc_BCD38
		mov	eax, [eax]
		mov	eax, [eax+34h]
		mov	[ebp+var_1C], eax
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	[esp], esi
		mov	[esp+8], eax
		mov	dword ptr [esp+4], offset aAddress ; "address"
		call	[ebp+var_1C]
		mov	eax, [esi]
		mov	eax, [eax+2Ch]
		mov	[ebp+var_1C], eax
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	[esp], eax
		call	_ZNK8netadr_s21GetIPNetworkByteOrderEv ; netadr_s::GetIPNetworkByteOrder(void)
		mov	[esp], esi
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aHostGameServ_0+11h)
		call	[ebp+var_1C]
		mov	eax, [esi]
		mov	eax, [eax+2Ch]
		mov	[ebp+var_1C], eax
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	[esp], eax
		call	_ZNK8netadr_s7GetPortEv	; netadr_s::GetPort(void)
		mov	[esp], esi
		movzx	eax, ax
		mov	dword ptr [esp+4], (offset aHostSourcetvPo+0Eh)
		mov	[esp+8], eax
		call	[ebp+var_1C]
		mov	eax, [edi]
		mov	[ebp+arg_4], esi
		mov	[ebp+arg_0], edi
		mov	eax, [eax+24h]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 8

loc_BCD38:				; CODE XREF: CBaseClientState::FullConnect(netadr_s &)+AEj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CBaseClientState11FullConnectER8netadr_s endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClientState__Connect(int, char *src,	char *s)
_ZN16CBaseClientState7ConnectEPKcS1_ proc near
					; CODE XREF: CHLTVServer::ConnectRelay(char  const*)+57p
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
s		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	eax, ds:g_pCVar
		mov	ebx, [ebp+arg_0]
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aName	; "name"
		mov	[esp], eax
		call	dword ptr [edx+30h]
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		lea	eax, [ebx+24h]
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], 0FFFh
		mov	dword ptr [esp], 0
		call	RandomInt
		mov	dword ptr [esp+4], 0FFFFh
		mov	esi, eax
		mov	dword ptr [esp], 0
		call	RandomInt
		shl	esi, 10h
		mov	dword ptr [ebx+14Ch], 0
		mov	dword ptr [ebx+150h], 0
		or	esi, eax
		mov	eax, [ebp+s]
		mov	[ebx+138h], esi
		mov	[esp+4], eax	; s
		lea	eax, [ebx+128h]
		mov	[esp], eax	; int
		call	_ZN10CUtlStringaSEPKc ;	CUtlString::operator=(char  const*)
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	dword ptr [esp+8], 0FFFFFFFFh
		mov	dword ptr [esp+4], 1
		call	dword ptr [eax+84h]
		mov	dword ptr [ebx+20h], 0
		fld	ds:flt_1F211C
		fstp	qword ptr [ebx+18h]
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN16CBaseClientState7ConnectEPKcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ConnectionStart(INetChannel	*)
_ZN16CBaseClientState15ConnectionStartEP11INetChannel proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], 1Ch
		mov	esi, [ebp+arg_4]
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax+8], 0
		add	ebx, 8
		mov	dword ptr [eax], (offset _ZTV8NET_Tick+8)
		mov	[eax+0Ch], ebx
		mov	byte ptr [eax+4], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	edx, [esi]
		mov	[ebp+var_1C], ebx
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 414h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13NET_StringCmd+8)
		mov	dword ptr [eax+10h], 0
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 24h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13NET_SetConVar+8)
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 18h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV15NET_SignonState+8)
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 814h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV9SVC_Print+8)
		mov	byte ptr [eax+4], 0
		mov	dword ptr [eax+10h], 0
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 464h
		call	_Znwj		; operator new(uint)
		mov	ecx, 119h
		mov	edx, eax
		mov	edi, eax
		xor	eax, eax
		rep stosd
		mov	byte ptr [edx+4], 1
		mov	dword ptr [edx], (offset _ZTV14SVC_ServerInfo+8)
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], edx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 48h
		call	_Znwj		; operator new(uint)
		mov	ecx, 12h
		mov	ebx, eax
		mov	edi, eax
		xor	eax, eax
		rep stosd
		mov	byte ptr [ebx+4], 1
		lea	eax, [ebx+18h]
		mov	dword ptr [ebx], (offset _ZTV13SVC_SendTable+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+30h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	edx, [ebp+var_1C]
		mov	[ebx+0Ch], edx
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 2Ch
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13SVC_ClassInfo+8)
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV12SVC_SetPause+8)
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 164h
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN21SVC_CreateStringTableC2Ev ; SVC_CreateStringTable::SVC_CreateStringTable(void)
		mov	eax, [ebp+var_1C]
		mov	[ebx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 4Ch
		call	_Znwj		; operator new(uint)
		mov	ecx, 13h
		mov	ebx, eax
		xor	eax, eax
		mov	edi, ebx
		rep stosd
		mov	byte ptr [ebx+4], 1
		lea	eax, [ebx+1Ch]
		mov	dword ptr [ebx], (offset _ZTV21SVC_UpdateStringTable+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+34h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	edx, [ebp+var_1C]
		mov	[ebx+0Ch], edx
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 11Ch
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13SVC_VoiceInit+8)
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 40h
		call	_Znwj		; operator new(uint)
		mov	byte ptr [eax+4], 1
		mov	ebx, eax
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV13SVC_VoiceData+8)
		lea	eax, [eax+24h]
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		mov	eax, [ebp+var_1C]
		mov	byte ptr [ebx+4], 0
		mov	[ebx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 4Ch
		call	_Znwj		; operator new(uint)
		mov	ecx, 13h
		mov	ebx, eax
		xor	eax, eax
		mov	edi, ebx
		rep stosd
		mov	byte ptr [ebx+4], 1
		lea	eax, [ebx+1Ch]
		mov	dword ptr [ebx], (offset _ZTV10SVC_Sounds+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+34h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	edx, [ebp+var_1C]
		mov	[ebx+0Ch], edx
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV11SVC_SetView+8)
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 20h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV12SVC_FixAngle+8)
		mov	byte ptr [eax+4], 0
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 1Ch
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV18SVC_CrosshairAngle+8)
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 2Ch
		call	_Znwj		; operator new(uint)
		mov	ecx, 0Bh
		mov	edx, eax
		mov	edi, eax
		xor	eax, eax
		rep stosd
		mov	byte ptr [edx+4], 1
		mov	dword ptr [edx], (offset _ZTV12SVC_BSPDecal+8)
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], edx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 44h
		call	_Znwj		; operator new(uint)
		mov	ecx, 11h
		mov	ebx, eax
		mov	edi, eax
		xor	eax, eax
		rep stosd
		mov	byte ptr [ebx+4], 1
		lea	eax, [ebx+14h]
		mov	dword ptr [ebx], (offset _ZTV13SVC_GameEvent+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+2Ch]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	edx, [ebp+var_1C]
		mov	[ebx+0Ch], edx
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 48h
		call	_Znwj		; operator new(uint)
		mov	byte ptr [eax+4], 1
		mov	ebx, eax
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV15SVC_UserMessage+8)
		lea	eax, [eax+18h]
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+30h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	eax, [ebp+var_1C]
		mov	byte ptr [ebx+4], 0
		mov	[ebx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 4Ch
		call	_Znwj		; operator new(uint)
		mov	byte ptr [eax+4], 1
		mov	ebx, eax
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV17SVC_EntityMessage+8)
		lea	eax, [eax+1Ch]
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+34h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [ebx+4], 0
		mov	[ebx+0Ch], edx
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 58h
		call	_Znwj		; operator new(uint)
		mov	ecx, 16h
		mov	ebx, eax
		xor	eax, eax
		mov	edi, ebx
		rep stosd
		mov	byte ptr [ebx+4], 1
		lea	eax, [ebx+28h]
		mov	dword ptr [ebx], (offset _ZTV18SVC_PacketEntities+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+40h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	eax, [ebp+var_1C]
		mov	[ebx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 48h
		call	_Znwj		; operator new(uint)
		mov	byte ptr [eax+4], 1
		mov	ebx, eax
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV16SVC_TempEntities+8)
		lea	eax, [eax+18h]
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+30h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [ebx+4], 0
		mov	[ebx+0Ch], edx
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	dword ptr [eax+8], 0
		mov	word ptr [eax+10h], 0
		mov	word ptr [eax+12h], 0
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax], (offset _ZTV12SVC_Prefetch+8)
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 1Ch
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_1C]
		mov	byte ptr [eax+4], 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax], (offset _ZTV8SVC_Menu+8)
		mov	dword ptr [eax+14h], 1
		mov	dword ptr [eax+10h], 0
		mov	[eax+0Ch], edx
		mov	edx, [esi]
		mov	[esp+4], eax
		mov	[esp], esi
		call	dword ptr [edx+74h]
		mov	dword ptr [esp], 48h
		call	_Znwj		; operator new(uint)
		mov	ecx, 12h
		mov	ebx, eax
		xor	eax, eax
		mov	edi, ebx
		rep stosd
		mov	byte ptr [ebx+4], 1
		lea	eax, [ebx+18h]
		mov	dword ptr [ebx], (offset _ZTV17SVC_GameEventList+8)
		mov	[esp], eax
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebx+30h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		mov	eax, [ebp+var_1C]
		mov	[ebx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 118h
		call	_Znwj		; operator new(uint)
		mov	ecx, 46h
		mov	edx, eax
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	byte ptr [edx+4], 1
		mov	dword ptr [edx], (offset _ZTV16SVC_GetCvarValue+8)
		mov	eax, [ebp+var_1C]
		mov	[edx+0Ch], eax
		mov	eax, [esi]
		mov	[esp+4], edx
		mov	[esp], esi
		call	dword ptr [eax+74h]
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [esp+4], 0
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN16SVC_CmdKeyValuesC2EP9KeyValues ; SVC_CmdKeyValues::SVC_CmdKeyValues(KeyValues *)
		mov	edx, [ebp+var_1C]
		mov	[ebx+10h], edx
		mov	eax, [esi]
		mov	[ebp+arg_4], ebx
		mov	[ebp+arg_0], esi
		mov	eax, [eax+74h]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	eax
_ZN16CBaseClientState15ConnectionStartEP11INetChannel endp

; ---------------------------------------------------------------------------

loc_BD4E3:				; CODE XREF: .text:000BD50Dj
					; .text:000BD510j ...
		mov	esi, eax
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------

loc_BD4FB:				; CODE XREF: .text:000BD534j
		mov	esi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		align 10h
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		align 10h
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		align 10h
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		jmp	short loc_BD4E3
; ---------------------------------------------------------------------------
		jmp	short loc_BD4FB
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CL_NameCvarChanged(IConVar *,	char  const*, float)
_Z18CL_NameCvarChangedP7IConVarPKcf proc near
					; DATA XREF: _GLOBAL__sub_I__Z21UpdateNameFromSteamIDP7IConVarP8CSteamID+B7o

var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	ebx, [ebp+var_10]
		sub	esp, 24h
		mov	eax, [ebp+arg_0]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN9ConVarRefC2EP7IConVar ; ConVarRef::ConVarRef(IConVar *)
		mov	eax, [ebp+var_C]
		mov	edx, [eax+20h]
		mov	[esp+4], edx
		mov	eax, [eax+24h]
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_BD580

loc_BD572:				; CODE XREF: CL_NameCvarChanged(IConVar	*,char	const*,float)+58j
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BD580:				; CODE XREF: CL_NameCvarChanged(IConVar	*,char	const*,float)+30j
		mov	eax, [ebp+var_C]
		mov	dword ptr [esp+4], offset aPlayer ; "player"
		mov	eax, [eax+24h]
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_BD572
		mov	eax, [ebp+var_C]
		mov	eax, [eax+24h]
		mov	dword ptr [esp+4], offset aLastgamenameus ; "LastGameNameUsed"
		mov	dword ptr [esp], offset	aSoftwareValveS	; "Software\\Valve\\Steam"
		mov	[esp+8], eax
		call	_Z18Sys_SetRegKeyValuePKcPcS0_ ; Sys_SetRegKeyValue(char  const*,char *,char  const*)
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_Z18CL_NameCvarChangedP7IConVarPKcf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::SetSignonState(int,	int)
_ZN16CBaseClientState14SetSignonStateEii proc near
					; CODE XREF: CHLTVClientState::SetSignonState(int,int)+26p
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		cmp	ebx, 7
		ja	loc_BD65F
		cmp	ebx, 2
		jle	short loc_BD5EE
		cmp	ebx, [esi+13Ch]
		jle	short loc_BD650

loc_BD5EE:				; CODE XREF: CBaseClientState::SetSignonState(int,int)+24j
					; CBaseClientState::SetSignonState(int,int)+9Dj
		cmp	edi, 0FFFFFFFFh
		mov	eax, [esi+148h]
		jnz	short loc_BD618

loc_BD5F9:				; CODE XREF: CBaseClientState::SetSignonState(int,int)+5Aj
					; CBaseClientState::SetSignonState(int,int)+5Fj ...
		mov	[esi+13Ch], ebx
		mov	eax, 1

loc_BD604:				; CODE XREF: CBaseClientState::SetSignonState(int,int)+8Cj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BD618:				; CODE XREF: CBaseClientState::SetSignonState(int,int)+37j
		cmp	edi, eax
		jz	short loc_BD5F9
		cmp	eax, 0FFFFFFFFh
		jz	short loc_BD5F9
		mov	eax, [esi+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		test	al, al
		jnz	short loc_BD5F9
		mov	eax, [esi+148h]
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aReceivedWrongS	; "Received wrong spawn	count %i when at %"...
		mov	[esp+8], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	eax, eax
		jmp	short loc_BD604
; ---------------------------------------------------------------------------
		align 10h

loc_BD650:				; CODE XREF: CBaseClientState::SetSignonState(int,int)+2Cj
		mov	eax, [esi+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		test	al, al
		jnz	short loc_BD5EE

loc_BD65F:				; CODE XREF: CBaseClientState::SetSignonState(int,int)+1Bj
		mov	eax, [esi+13Ch]
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aReceivedSignon	; "Received signon %i when at %i\n"
		mov	[esp+8], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN16CBaseClientState14SetSignonStateEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::Disconnect(char  const*, bool)
_ZN16CBaseClientState10DisconnectEPKcb proc near
					; CODE XREF: CHLTVServer::Shutdown(void)+A0p
					; CHLTVServer::ConnectRelay(char  const*)+38p
					; DATA XREF: ...

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= word ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		fld	ds:flt_1F211C
		mov	eax, [ebx+13Ch]
		mov	dword ptr [ebx+20h], 0
		fstp	qword ptr [ebx+18h]
		mov	dword ptr [ebx+14Ch], 0
		mov	dword ptr [ebx+150h], 0
		test	eax, eax
		jnz	short loc_BD6E0

loc_BD6CD:				; CODE XREF: CBaseClientState::Disconnect(char	const*,bool)+B7j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BD6E0:				; CODE XREF: CBaseClientState::Disconnect(char	const*,bool)+3Bj
		mov	dword ptr [ebx+13Ch], 0
		lea	esi, [ebp+var_14]
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	[esp], esi
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	eax, [ebx+10h]
		test	eax, eax
		jz	short loc_BD770
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	edx, [eax]
		mov	[ebp+var_14], edx
		mov	edx, [eax+4]
		mov	[ebp+var_10], edx
		movzx	eax, word ptr [eax+8]
		mov	[ebp+var_C], ax

loc_BD742:				; CODE XREF: CBaseClientState::Disconnect(char	const*,bool)+EFj
		mov	eax, [ebx+10h]
		test	eax, eax
		jz	short loc_BD6CD
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aDisconnectByUs ; "Disconnect	by user."
		mov	[esp], eax
		call	dword ptr [edx+94h]
		mov	dword ptr [ebx+10h], 0
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BD770:				; CODE XREF: CBaseClientState::Disconnect(char	const*,bool)+92j
		lea	eax, [ebx+24h]
		mov	[esp+4], esi	; int
		mov	[esp], eax	; src
		call	_Z15NET_StringToAdrPKcP8netadr_s ; NET_StringToAdr(char	 const*,netadr_s *)
		jmp	short loc_BD742
_ZN16CBaseClientState10DisconnectEPKcb endp

; ---------------------------------------------------------------------------
		jmp	short _ZThn8_N16CBaseClientStateD1Ev ; `non-virtual thunk to'CBaseClientState::~CBaseClientState()
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::~CBaseClientState()
_ZThn8_N16CBaseClientStateD1Ev proc near ; CODE	XREF: .text:000BD781j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientStateD2Ev	; CBaseClientState::~CBaseClientState()
_ZThn8_N16CBaseClientStateD1Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::~CBaseClientState()
_ZThn4_N16CBaseClientStateD1Ev proc near ; DATA	XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN16CBaseClientStateD2Ev	; CBaseClientState::~CBaseClientState()
_ZThn4_N16CBaseClientStateD1Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::~CBaseClientState()
_ZN16CBaseClientStateD2Ev proc near	; CODE XREF: `non-virtual thunk	to'CBaseClientState::~CBaseClientState()+5j
					; `non-virtual thunk to'CBaseClientState::~CBaseClientState()+5j ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+130h]
		mov	dword ptr [ebx], (offset _ZTV16CBaseClientState+8)
		mov	dword ptr [ebx+4], (offset _ZTV16CBaseClientState+0D4h)
		mov	dword ptr [ebx+8], (offset _ZTV16CBaseClientState+0E8h)
		test	edx, edx
		js	short loc_BD7FE
		mov	eax, [ebx+128h]
		test	eax, eax
		jz	short loc_BD7F4
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx+128h], 0

loc_BD7F4:				; CODE XREF: CBaseClientState::~CBaseClientState()+30j
		mov	dword ptr [ebx+12Ch], 0

loc_BD7FE:				; CODE XREF: CBaseClientState::~CBaseClientState()+26j
		mov	dword ptr [ebx+8], (offset _ZTV18INetMessageHandler+8)
		mov	dword ptr [ebx+4], (offset _ZTV28IConnectionlessPacketHandler+8)
		mov	dword ptr [ebx], (offset _ZTV18INetChannelHandler+8)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN16CBaseClientStateD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::~CBaseClientState()
_ZThn8_N16CBaseClientStateD0Ev proc near ; DATA	XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientStateD0Ev	; CBaseClientState::~CBaseClientState()
_ZThn8_N16CBaseClientStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::~CBaseClientState()
_ZThn4_N16CBaseClientStateD0Ev proc near ; DATA	XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN16CBaseClientStateD0Ev	; CBaseClientState::~CBaseClientState()
_ZThn4_N16CBaseClientStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::~CBaseClientState()
_ZN16CBaseClientStateD0Ev proc near	; CODE XREF: `non-virtual thunk	to'CBaseClientState::~CBaseClientState()+5j
					; `non-virtual thunk to'CBaseClientState::~CBaseClientState()+5j
					; DATA XREF: ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN16CBaseClientStateD2Ev ; CBaseClientState::~CBaseClientState()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16CBaseClientStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZN16CBaseClientState14CheckForResendEv_part_28	proc near
					; CODE XREF: CBaseClientState::CheckForResend(void)+31j

var_534		= dword	ptr -534h
var_530		= dword	ptr -530h
var_52C		= dword	ptr -52Ch
var_528		= byte ptr -528h
buf		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_24]
		push	ebx
		mov	ebx, eax
		lea	edi, [ebx+24h]
		sub	esp, 54Ch
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	[esp], esi
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	[esp+4], esi	; int
		mov	[esp], edi	; src
		call	_Z15NET_StringToAdrPKcP8netadr_s ; NET_StringToAdr(char	 const*,netadr_s *)
		test	al, al
		jz	loc_BDA38
		mov	[esp], esi
		call	_ZNK8netadr_s7GetPortEv	; netadr_s::GetPort(void)
		test	ax, ax
		jz	loc_BDA70

loc_BD8C9:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+220j
		mov	eax, [ebx+20h]
		mov	[esp], ebx
		mov	[ebp+var_52C], eax
		mov	eax, [ebx]
		call	dword ptr [eax+0A8h]
		cmp	[ebp+var_52C], eax
		jge	loc_BD9F0
		fld	ds:net_time
		mov	dword ptr [esp+8], 9
		fstp	qword ptr [ebx+18h]
		mov	dword ptr [esp+4], offset aLocalhost ; "localhost"
		mov	[esp], edi
		call	_Z9V_strncmpPKcS0_i ; V_strncmp(char  const*,char  const*,int)
		test	eax, eax
		jz	short loc_BD929
		mov	ecx, [ebx+20h]
		mov	[esp+4], edi
		test	ecx, ecx
		jnz	loc_BDB88
		mov	dword ptr [esp], offset	aConnectingToS_	; "Connecting to %s...\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_BD929:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+ACj
					; _ZN16CBaseClientState14CheckForResendEv_part_28+334j
		mov	eax, [ebx+20h]
		test	eax, eax
		jz	loc_BDA88

loc_BD934:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+31Ej
		lea	edi, [ebp+buf]
		add	eax, 1
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	[ebx+20h], eax
		lea	eax, [ebp+var_528]
		mov	[esp+4], eax
		mov	[esp], edi
		mov	dword ptr [esp+8], 4ECh
		call	_ZN8bf_writeC2EPvii ; bf_write::bf_write(void *,int,int)
		mov	[esp], edi
		mov	dword ptr [esp+4], 0FFFFFFFFh
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	[esp], edi
		mov	dword ptr [esp+4], 71h
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [ebx+138h]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	[esp], edi
		mov	dword ptr [esp+4], offset a0000000000 ;	"0000000000"
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [ebp+var_30]
		mov	[esp+8], esi	; int
		mov	dword ptr [esp+18h], 0 ; char
		mov	dword ptr [esp+14h], 0 ; int
		mov	dword ptr [esp], 0 ; int
		add	eax, 7
		sar	eax, 3
		mov	[esp+10h], eax	; n
		mov	eax, [ebp+buf]
		mov	[esp+0Ch], eax	; buf
		mov	eax, [ebx+0Ch]
		mov	[esp+4], eax	; int
		call	_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb ; NET_SendPacket(INetChannel *,int,netadr_s	 const&,uchar  const*,int,bf_write *,bool)
		add	esp, 54Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BD9F0:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+83j
		mov	dword ptr [esp+8], 4 ; arg
		mov	dword ptr [esp+4], offset aConnectionFail ; "Connection	failed after %i	retries.\n"
		mov	dword ptr [esp], 1 ; char
		call	_Z24COM_ExplainDisconnectionbPKcz ; COM_ExplainDisconnection(bool,char	const*,...)
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aConnectionFa_0 ; "Connection	failed"
		call	dword ptr [eax+88h]
		add	esp, 54Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BDA38:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+52j
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aBadServerAddre	; "Bad server address (%s)\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset dword_1F1314
		call	dword ptr [eax+88h]
		add	esp, 54Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BDA70:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+63j
		mov	dword ptr [esp+4], 6987h
		mov	[esp], esi
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		jmp	loc_BD8C9
; ---------------------------------------------------------------------------
		align 4

loc_BDA88:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+CEj
		mov	ecx, ds:g_GameEventManager
		mov	eax, [ecx]
		mov	[esp], ecx
		mov	[ebp+var_530], ecx
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aClient_beginco ; "client_beginconnect"
		call	dword ptr [eax+1Ch]
		mov	ecx, [ebp+var_530]
		test	eax, eax
		mov	edx, eax
		jz	loc_BDB7B
		mov	eax, [eax]
		mov	[ebp+var_530], ecx
		mov	[esp+8], edi
		mov	[esp], edx
		mov	[ebp+var_534], edx
		mov	dword ptr [esp+4], offset aAddress ; "address"
		call	dword ptr [eax+34h]
		mov	edx, [ebp+var_534]
		mov	eax, [edx]
		mov	edi, [eax+2Ch]
		mov	[esp], esi
		call	_ZNK8netadr_s21GetIPNetworkByteOrderEv ; netadr_s::GetIPNetworkByteOrder(void)
		mov	edx, [ebp+var_534]
		mov	dword ptr [esp+4], (offset aHostGameServ_0+11h)
		mov	[esp+8], eax
		mov	[esp], edx
		call	edi
		mov	edx, [ebp+var_534]
		mov	eax, [edx]
		mov	edi, [eax+2Ch]
		mov	[esp], esi
		call	_ZNK8netadr_s7GetPortEv	; netadr_s::GetPort(void)
		mov	edx, [ebp+var_534]
		mov	dword ptr [esp+4], (offset aHostSourcetvPo+0Eh)
		movzx	eax, ax
		mov	[esp+8], eax
		mov	[esp], edx
		call	edi
		mov	edx, [ebp+var_534]
		mov	eax, [edx]
		mov	edi, [eax+34h]
		lea	eax, [ebx+128h]
		mov	[esp], eax
		call	_ZNK10CUtlStringcvPKcEv	; CUtlString::operator char  const*(void)
		mov	edx, [ebp+var_534]
		mov	dword ptr [esp+4], offset aSource ; "source"
		mov	[esp+8], eax
		mov	[esp], edx
		call	edi
		mov	ecx, [ebp+var_530]
		mov	edx, [ebp+var_534]
		mov	eax, [ecx]
		mov	[esp], ecx
		mov	[esp+4], edx
		call	dword ptr [eax+24h]

loc_BDB7B:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+256j
		mov	eax, [ebx+20h]
		jmp	loc_BD934
; ---------------------------------------------------------------------------
		align 8

loc_BDB88:				; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+B7j
		mov	dword ptr [esp], offset	aRetryingS___ ;	"Retrying %s...\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_BD929
_ZN16CBaseClientState14CheckForResendEv_part_28	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::CheckForResend(void)
_ZN16CBaseClientState14CheckForResendEv	proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+13Ch], 1
		jz	short loc_BDBB8

loc_BDBAF:				; CODE XREF: CBaseClientState::CheckForResend(void)+2Ej
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BDBB8:				; CODE XREF: CBaseClientState::CheckForResend(void)+Dj
		fld	ds:net_time
		fsub	qword ptr [eax+18h]
		mov	edx, dword ptr ds:cl_resend+1Ch
		fld	dword ptr [edx+2Ch]
		fcomip	st, st(1)
		fstp	st
		ja	short loc_BDBAF
		pop	ebp
		jmp	_ZN16CBaseClientState14CheckForResendEv_part_28
_ZN16CBaseClientState14CheckForResendEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessSetView(SVC_SetView *)
_ZThn8_N16CBaseClientState14ProcessSetViewEP11SVC_SetView proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState14ProcessSetViewEP11SVC_SetView ; CBaseClientState::ProcessSetView(SVC_SetView *)
_ZThn8_N16CBaseClientState14ProcessSetViewEP11SVC_SetView endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessSetView(SVC_SetView *)
_ZN16CBaseClientState14ProcessSetViewEP11SVC_SetView proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessSetView(SVC_SetView *)+5j
					; CHLTVClientState::ProcessSetView(SVC_SetView *)+19p
					; DATA XREF: ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_20], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_1C], 0
		test	eax, eax
		jz	short loc_BDC7F
		lea	edx, [ebp+var_20]
		mov	dword ptr [esp+2Ch], offset aProcesssetview ; "ProcessSetView"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState14ProcessSetViewEP11SVC_SetViewE6tm_fmt ; CBaseClientState::ProcessSetView(SVC_SetView *)::tm_fmt
		mov	dword ptr [esp+1Ch], 586h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	esi, [ebp+var_20]
		mov	edi, [ebp+var_1C]
		mov	ebx, ds:g_Telemetry+0Ch

loc_BDC7F:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+24j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	loc_BDD10
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_30], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_30], eax
		jz	loc_BDD28

loc_BDCA2:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+181j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+10h]
		mov	edx, [ebp+arg_0]
		mov	[edx+1ACh], eax
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BDCC3
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BDCD9

loc_BDCC3:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_BDD80

loc_BDCD9:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+D1j
					; CBaseClientState::ProcessSetView(SVC_SetView *)+12Fj	...
		test	ebx, ebx
		jz	short loc_BDD03
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]

loc_BDD03:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+EBj
		add	esp, 5Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_BDD10:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+96j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+10h]
		mov	edx, [ebp+arg_0]
		mov	[edx+1ACh], eax
		jmp	short loc_BDCD9
; ---------------------------------------------------------------------------
		align 8

loc_BDD28:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+ACj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesssetview	; "ProcessSetView"
		jz	short loc_BDD62
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesssetview ; "ProcessSetView"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BDD62:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+143j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BDCA2
; ---------------------------------------------------------------------------
		align 10h

loc_BDD80:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+E3j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BDDB0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BDD9E:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+1C5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_BDCD9
; ---------------------------------------------------------------------------
		align 10h

loc_BDDB0:				; CODE XREF: CBaseClientState::ProcessSetView(SVC_SetView *)+19Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BDD9E
_ZN16CBaseClientState14ProcessSetViewEP11SVC_SetView endp

; ---------------------------------------------------------------------------
		test	ebx, ebx
		jz	short loc_BDDE7
		mov	[ebp-34h], eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]
		mov	eax, [ebp-34h]

loc_BDDE7:				; CODE XREF: .text:000BDDB9j
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessSetPause(SVC_SetPause *)
_ZThn8_N16CBaseClientState15ProcessSetPauseEP12SVC_SetPause proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState15ProcessSetPauseEP12SVC_SetPause ; CBaseClientState::ProcessSetPause(SVC_SetPause *)
_ZThn8_N16CBaseClientState15ProcessSetPauseEP12SVC_SetPause endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessSetPause(SVC_SetPause *)
_ZN16CBaseClientState15ProcessSetPauseEP12SVC_SetPause proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessSetPause(SVC_SetPause *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_20], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_1C], 0
		test	eax, eax
		jz	short loc_BDE8F
		lea	edx, [ebp+var_20]
		mov	dword ptr [esp+2Ch], offset aProcesssetpaus ; "ProcessSetPause"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState15ProcessSetPauseEP12SVC_SetPauseE6tm_fmt ; CBaseClientState::ProcessSetPause(SVC_SetPause *)::tm_fmt
		mov	dword ptr [esp+1Ch], 51Fh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	esi, [ebp+var_20]
		mov	edi, [ebp+var_1C]
		mov	ebx, ds:g_Telemetry+0Ch

loc_BDE8F:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+24j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	loc_BDF28
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_30], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_30], eax
		jz	loc_BDF40

loc_BDEB2:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+189j
		mov	edx, [ebp+arg_4]
		movzx	eax, byte ptr [edx+10h]
		mov	edx, [ebp+arg_0]
		mov	[edx+1A8h], al
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BDED4
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BDEEA

loc_BDED4:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+C9j
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_BDF90

loc_BDEEA:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+D2j
					; CBaseClientState::ProcessSetPause(SVC_SetPause *)+138j ...
		test	ebx, ebx
		jz	short loc_BDF14
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]

loc_BDF14:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+ECj
		add	esp, 5Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BDF28:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+96j
		mov	edx, [ebp+arg_4]
		movzx	eax, byte ptr [edx+10h]
		mov	edx, [ebp+arg_0]
		mov	[edx+1A8h], al
		jmp	short loc_BDEEA
; ---------------------------------------------------------------------------
		align 10h

loc_BDF40:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+ACj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesssetpaus	; "ProcessSetPause"
		jz	short loc_BDF7A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesssetpaus ; "ProcessSetPause"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BDF7A:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+14Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BDEB2
; ---------------------------------------------------------------------------
		align 10h

loc_BDF90:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+E4j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BDFC0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BDFAE:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+1C5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_BDEEA
; ---------------------------------------------------------------------------
		align 10h

loc_BDFC0:				; CODE XREF: CBaseClientState::ProcessSetPause(SVC_SetPause *)+19Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BDFAE
_ZN16CBaseClientState15ProcessSetPauseEP12SVC_SetPause endp

; ---------------------------------------------------------------------------
		test	ebx, ebx
		jz	short loc_BDFF7
		mov	[ebp-34h], eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]
		mov	eax, [ebp-34h]

loc_BDFF7:				; CODE XREF: .text:000BDFC9j
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessMenu(SVC_Menu *)
_ZThn8_N16CBaseClientState11ProcessMenuEP8SVC_Menu proc	near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState11ProcessMenuEP8SVC_Menu ; CBaseClientState::ProcessMenu(SVC_Menu *)
_ZThn8_N16CBaseClientState11ProcessMenuEP8SVC_Menu endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessMenu(SVC_Menu *)
_ZN16CBaseClientState11ProcessMenuEP8SVC_Menu proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessMenu(SVC_Menu *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_C], ebx
		xor	ebx, ebx
		mov	[ebp+var_8], esi
		xor	esi, esi
		mov	[ebp+var_4], edi
		xor	edi, edi
		mov	[ebp+var_20], 0
		test	eax, eax
		mov	[ebp+var_1C], 0
		jz	short loc_BE0A5
		lea	edx, [ebp+var_20]
		mov	dword ptr [esp+2Ch], offset aProcessmenu ; "ProcessMenu"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState11ProcessMenuEP8SVC_MenuE6tm_fmt ; CBaseClientState::ProcessMenu(SVC_Menu *)::tm_fmt
		mov	dword ptr [esp+1Ch], 44Fh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	esi, [ebp+var_20]
		mov	edi, [ebp+var_1C]
		mov	ebx, ds:g_Telemetry+0Ch

loc_BE0A5:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+2Aj
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BE0E8
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_BE158
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BE0D6
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BE0E8

loc_BE0D6:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+BBj
					; CBaseClientState::ProcessMenu(SVC_Menu *)+191j
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	short loc_BE128

loc_BE0E8:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+9Cj
					; CBaseClientState::ProcessMenu(SVC_Menu *)+C4j ...
		test	ebx, ebx
		jz	short loc_BE112
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]

loc_BE112:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+DAj
		mov	ebx, [ebp+var_C]
		mov	eax, 1
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BE128:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+D6j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BE1B0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE146:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+1A5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_BE0E8
; ---------------------------------------------------------------------------
		align 8

loc_BE158:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+AEj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessmenu ; "ProcessMenu"
		jz	short loc_BE192
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessmenu ; "ProcessMenu"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE192:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+153j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BE0D6
; ---------------------------------------------------------------------------
		align 10h

loc_BE1B0:				; CODE XREF: CBaseClientState::ProcessMenu(SVC_Menu *)+127j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BE146
_ZN16CBaseClientState11ProcessMenuEP8SVC_Menu endp

; ---------------------------------------------------------------------------
		test	ebx, ebx
		jz	short loc_BE1E7
		mov	[ebp-30h], eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]
		mov	eax, [ebp-30h]

loc_BE1E7:				; CODE XREF: .text:000BE1B9j
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessGameEventList(SVC_GameEventList *)
_ZThn8_N16CBaseClientState20ProcessGameEventListEP17SVC_GameEventList proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState20ProcessGameEventListEP17SVC_GameEventList ; CBaseClientState::ProcessGameEventList(SVC_GameEventList *)
_ZThn8_N16CBaseClientState20ProcessGameEventListEP17SVC_GameEventList endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessGameEventList(SVC_GameEventList *)
_ZN16CBaseClientState20ProcessGameEventListEP17SVC_GameEventList proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+5j
					; CHLTVClientState::ProcessGameEventList(SVC_GameEventList *)+8Ap
					; DATA XREF: ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	short loc_BE28F
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aProcessgameeve ; "ProcessGameEventList"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState20ProcessGameEventListEP17SVC_GameEventListE6tm_fmt ;	CBaseClientState::ProcessGameEventList(SVC_GameEventList *)::tm_fmt
		mov	dword ptr [esp+1Ch], 6C2h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	esi, [ebp+var_28]
		mov	edi, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch

loc_BE28F:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+24j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BE2B6
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_BE360

loc_BE2B6:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+9Ej
					; CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+1A9j
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, ds:g_GameEventManager
		mov	[esp], eax
		call	_ZN17CGameEventManager14ParseEventListEP17SVC_GameEventList ; CGameEventManager::ParseEventList(SVC_GameEventList *)
		cmp	[ebp+var_19], 0
		mov	byte ptr [ebp+var_2C], al
		jz	short loc_BE2F8
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BE2E6
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_BE2F8

loc_BE2E6:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+DAj
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_30], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_30], eax
		jz	short loc_BE330

loc_BE2F8:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+D1j
					; CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+E4j ...
		test	ebx, ebx
		jz	short loc_BE322
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]

loc_BE322:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+FAj
		movzx	eax, byte ptr [ebp+var_2C]
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BE330:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+F6j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BE3B0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE34E:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+1B5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_BE2F8
; ---------------------------------------------------------------------------
		align 10h

loc_BE360:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+B0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessgameeve	; "ProcessGameEventList"
		jz	short loc_BE39A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessgameeve ; "ProcessGameEventList"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE39A:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+16Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BE2B6
; ---------------------------------------------------------------------------
		align 10h

loc_BE3B0:				; CODE XREF: CBaseClientState::ProcessGameEventList(SVC_GameEventList *)+13Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BE34E
_ZN16CBaseClientState20ProcessGameEventListEP17SVC_GameEventList endp

; ---------------------------------------------------------------------------

loc_BE3B7:				; CODE XREF: .text:000BE400j
		test	ebx, ebx
		jz	short loc_BE3E7
		mov	[ebp-34h], eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]
		mov	eax, [ebp-34h]

loc_BE3E7:				; CODE XREF: .text:000BE3B9j
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	[ebp-2Ch], eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		mov	eax, [ebp-2Ch]
		jmp	short loc_BE3B7
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessSendTable(SVC_SendTable *)
_ZThn8_N16CBaseClientState16ProcessSendTableEP13SVC_SendTable proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState16ProcessSendTableEP13SVC_SendTable ; CBaseClientState::ProcessSendTable(SVC_SendTable *)
_ZThn8_N16CBaseClientState16ProcessSendTableEP13SVC_SendTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessSendTable(SVC_SendTable *)
_ZN16CBaseClientState16ProcessSendTableEP13SVC_SendTable proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessSendTable(SVC_SendTable *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_BE4C2
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcesssendtab ; "ProcessSendTable"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState16ProcessSendTableEP13SVC_SendTableE6tm_fmt ;	CBaseClientState::ProcessSendTable(SVC_SendTable *)::tm_fmt
		mov	dword ptr [esp+1Ch], 4DDh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_BE4C2:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BE4E6
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_BE5B8

loc_BE4E6:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+B1j
					; CBaseClientState::ProcessSendTable(SVC_SendTable *)+1E1j
		mov	dword ptr [esp+8], 0 ; arg
		movzx	eax, byte ptr [esi+10h]
		add	esi, 18h
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z24RecvTable_RecvClassInfosP7bf_readbi	; RecvTable_RecvClassInfos(bf_read *,bool,int)
		test	al, al
		mov	esi, 1
		jnz	short loc_BE520
		mov	dword ptr [esp+4], offset aProcesssendt_0 ; "ProcessSendTable: RecvTable_RecvClassIn"...
		mov	dword ptr [esp], 1 ; char
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		xor	esi, esi

loc_BE520:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+E8j
		cmp	[ebp+var_19], 0
		jz	short loc_BE547
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BE538
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BE547

loc_BE538:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+10Dj
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_BE588

loc_BE547:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+104j
					; CBaseClientState::ProcessSendTable(SVC_SendTable *)+116j ...
		test	ebx, ebx
		jz	short loc_BE577
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_BE577:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+129j
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BE588:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+125j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BE610
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE5A6:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+1F5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_BE547
; ---------------------------------------------------------------------------
		align 8

loc_BE5B8:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesssendtab	; "ProcessSendTable"
		jz	short loc_BE5F2
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesssendtab ; "ProcessSendTable"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE5F2:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+1A3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BE4E6
; ---------------------------------------------------------------------------
		align 10h

loc_BE610:				; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+177j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BE5A6
_ZN16CBaseClientState16ProcessSendTableEP13SVC_SendTable endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_BE619:				; CODE XREF: .text:000BE65Ej
		test	ebx, ebx
		jz	short loc_BE649
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_BE649:				; CODE XREF: .text:000BE61Bj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_BE619

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessPrint(SVC_Print *)
_ZThn8_N16CBaseClientState12ProcessPrintEP9SVC_Print proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState12ProcessPrintEP9SVC_Print ;	CBaseClientState::ProcessPrint(SVC_Print *)
_ZThn8_N16CBaseClientState12ProcessPrintEP9SVC_Print endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessPrint(SVC_Print *)
_ZN16CBaseClientState12ProcessPrintEP9SVC_Print	proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessPrint(SVC_Print *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	short loc_BE6FF
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aProcessprint ; "ProcessPrint"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState12ProcessPrintEP9SVC_PrintE6tm_fmt ; CBaseClientState::ProcessPrint(SVC_Print	*)::tm_fmt
		mov	dword ptr [esp+1Ch], 447h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	esi, [ebp+var_28]
		mov	edi, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch

loc_BE6FF:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+24j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BE726
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_BE7D0

loc_BE726:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+9Ej
					; CBaseClientState::ProcessPrint(SVC_Print *)+1A9j
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+10h]
		mov	dword ptr [esp], (offset aDFS+9)
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		cmp	[ebp+var_19], 0
		jz	short loc_BE766
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BE754
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BE766

loc_BE754:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+D9j
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	short loc_BE7A0

loc_BE766:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+D0j
					; CBaseClientState::ProcessPrint(SVC_Print *)+E2j ...
		test	ebx, ebx
		jz	short loc_BE790
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]

loc_BE790:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+F8j
		add	esp, 5Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BE7A0:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+F4j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BE820
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE7BE:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+1B5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_BE766
; ---------------------------------------------------------------------------
		align 10h

loc_BE7D0:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+B0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessprint ;	"ProcessPrint"
		jz	short loc_BE80A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessprint	; "ProcessPrint"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE80A:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+16Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BE726
; ---------------------------------------------------------------------------
		align 10h

loc_BE820:				; CODE XREF: CBaseClientState::ProcessPrint(SVC_Print *)+13Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BE7BE
_ZN16CBaseClientState12ProcessPrintEP9SVC_Print	endp

; ---------------------------------------------------------------------------

loc_BE827:				; CODE XREF: .text:000BE870j
		test	ebx, ebx
		jz	short loc_BE857
		mov	[ebp-30h], eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]
		mov	eax, [ebp-30h]

loc_BE857:				; CODE XREF: .text:000BE829j
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	[ebp-2Ch], eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		mov	eax, [ebp-2Ch]
		jmp	short loc_BE827
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessSignonState(NET_SignonState *)
_ZThn8_N16CBaseClientState18ProcessSignonStateEP15NET_SignonState proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState18ProcessSignonStateEP15NET_SignonState ; CBaseClientState::ProcessSignonState(NET_SignonState *)
_ZThn8_N16CBaseClientState18ProcessSignonStateEP15NET_SignonState endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessSignonState(NET_SignonState *)
_ZN16CBaseClientState18ProcessSignonStateEP15NET_SignonState proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessSignonState(NET_SignonState *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_BE935
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcesssignons ; "ProcessSignonState"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState18ProcessSignonStateEP15NET_SignonStateE6tm_fmt ; CBaseClientState::ProcessSignonState(NET_SignonState *)::tm_fmt
		mov	dword ptr [esp+1Ch], 440h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_BE935:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+34j
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BE95E
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_34], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_34], eax
		jz	loc_BEA10

loc_BE95E:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+B5j
					; CBaseClientState::ProcessSignonState(NET_SignonState *)+1C9j
		mov	edx, [esi+14h]
		mov	eax, [edi]
		mov	[esp+8], edx
		mov	edx, [esi+10h]
		mov	[esp], edi
		mov	[esp+4], edx
		call	dword ptr [eax+84h]
		cmp	[ebp+var_19], 0
		mov	esi, eax
		jz	short loc_BE9A0
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BE991
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BE9A0

loc_BE991:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+F6j
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	short loc_BE9E0

loc_BE9A0:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+EDj
					; CBaseClientState::ProcessSignonState(NET_SignonState *)+FFj ...
		test	ebx, ebx
		jz	short loc_BE9D0
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_BE9D0:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+112j
		add	esp, 5Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BE9E0:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+10Ej
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BEA60
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BE9FE:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+1D5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_BE9A0
; ---------------------------------------------------------------------------
		align 10h

loc_BEA10:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesssignons	; "ProcessSignonState"
		jz	short loc_BEA4A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesssignons ; "ProcessSignonState"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BEA4A:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+18Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BE95E
; ---------------------------------------------------------------------------
		align 10h

loc_BEA60:				; CODE XREF: CBaseClientState::ProcessSignonState(NET_SignonState *)+15Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BE9FE
_ZN16CBaseClientState18ProcessSignonStateEP15NET_SignonState endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_BEA69:				; CODE XREF: .text:000BEAAEj
		test	ebx, ebx
		jz	short loc_BEA99
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_BEA99:				; CODE XREF: .text:000BEA6Bj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_BEA69

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)
_ZThn8_N16CBaseClientState24ProcessUpdateStringTableEP21SVC_UpdateStringTable proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState24ProcessUpdateStringTableEP21SVC_UpdateStringTable ; CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)
_ZThn8_N16CBaseClientState24ProcessUpdateStringTableEP21SVC_UpdateStringTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)
_ZN16CBaseClientState24ProcessUpdateStringTableEP21SVC_UpdateStringTable proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_BEB62
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcessupdates ; "ProcessUpdateStringTable"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState24ProcessUpdateStringTableEP21SVC_UpdateStringTableE6tm_fmt ;	CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)::tm_fmt
		mov	dword ptr [esp+1Ch], 567h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_BEB62:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+31j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BEB87
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_BEC70

loc_BEB87:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+B2j
					; CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+1F9j
		mov	eax, [ebp+arg_0]
		mov	edx, [ebx+28h]
		mov	eax, [eax+4A18h]
		mov	[ebp+var_34], edx
		test	eax, eax
		jz	loc_BECC0
		mov	ecx, [ebx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+14h]
		mov	edx, [ebx+14h]
		mov	[esp], eax
		mov	[esp+8], edx
		lea	edx, [ebx+1Ch]
		mov	[esp+4], edx
		call	_ZN19CNetworkStringTable11ParseUpdateER7bf_readi ; CNetworkStringTable::ParseUpdate(bf_read &,int)

loc_BEBC3:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+20Cj
		cmp	[ebp+var_19], 0
		mov	edi, [ebx+28h]
		mov	ebx, [ebx+18h]
		jz	short loc_BEBF4
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BEBE2
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_BEBF4

loc_BEBE2:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+116j
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_38], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_38], eax
		jz	short loc_BEC38

loc_BEBF4:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+10Dj
					; CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+120j ...
		test	esi, esi
		jz	short loc_BEC24
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_BEC24:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+136j
		sub	edi, [ebp+var_34]
		cmp	edi, ebx
		setz	al
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_BEC38:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+132j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_BECD8
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BEC5A:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+21Dj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_BEBF4
; ---------------------------------------------------------------------------
		align 10h

loc_BEC70:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+C1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessupdates	; "ProcessUpdateStringTable"
		jz	short loc_BECAA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessupdates ; "ProcessUpdateStringTable"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BECAA:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+1BBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BEB87
; ---------------------------------------------------------------------------
		align 10h

loc_BECC0:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+D8j
		mov	dword ptr [esp], offset	aM_stringtablec	; "m_StringTableContainer is NULL in CBase"...
		call	Warning
		jmp	loc_BEBC3
; ---------------------------------------------------------------------------
		align 8

loc_BECD8:				; CODE XREF: CBaseClientState::ProcessUpdateStringTable(SVC_UpdateStringTable *)+187j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_BEC5A
_ZN16CBaseClientState24ProcessUpdateStringTableEP21SVC_UpdateStringTable endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_BECEF:				; CODE XREF: .text:000BED29j
		test	esi, esi
		jz	short loc_BED1F
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_BED1F:				; CODE XREF: .text:000BECF1j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_BECEF
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)
_ZThn4_N16CBaseClientState27ProcessConnectionlessPacketEP11netpacket_s proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN16CBaseClientState27ProcessConnectionlessPacketEP11netpacket_s	; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)
_ZThn4_N16CBaseClientState27ProcessConnectionlessPacketEP11netpacket_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)
_ZN16CBaseClientState27ProcessConnectionlessPacketEP11netpacket_s proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_54C		= dword	ptr -54Ch
var_548		= dword	ptr -548h
var_544		= dword	ptr -544h
var_540		= dword	ptr -540h
var_53C		= dword	ptr -53Ch
var_538		= dword	ptr -538h
var_534		= dword	ptr -534h
var_530		= dword	ptr -530h
var_52C		= dword	ptr -52Ch
format		= byte ptr -528h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 57Ch
		mov	[ebp+var_30], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_2C], 0
		mov	[ebp+var_52C], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_538], 0
		mov	[ebp+var_534], 0
		test	eax, eax
		jz	short loc_BEDFF
		lea	edx, [ebp+var_30]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcessconnect ; "ProcessConnectionlessPacket"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState27ProcessConnectionlessPacketEP11netpacket_sE6tm_fmt ; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)::tm_fmt
		mov	dword ptr [esp+1Ch], 356h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0 ; arg
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_538], eax
		mov	[ebp+var_534], edx
		mov	[ebp+var_52C], edi

loc_BEDFF:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+42j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BEE23
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_BF150

loc_BEE23:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+CEj
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+459j
		mov	edx, [ebx+24h]
		lea	edi, [ebx+1Ch]
		mov	eax, [ebx+28h]
		mov	[ebp+var_530], edi
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_BEFD0
		mov	edi, [ebx+1Ch]
		lea	edx, [eax+8]
		mov	esi, eax
		mov	[ebx+28h], edx
		lea	edx, [eax+7]
		sar	eax, 5
		sar	edx, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	edx, [edi+edx*4]
		mov	eax, [edi+eax*4]
		shl	edx, cl
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax
		movzx	edi, dl

loc_BEE6E:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+29Dj
		lea	esi, [ebp+var_3C]
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	[esp], esi
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	eax, [ebp+arg_0]
		mov	[esp+4], esi	; int
		add	eax, 24h
		mov	[esp], eax	; src
		call	_Z15NET_StringToAdrPKcP8netadr_s ; NET_StringToAdr(char	 const*,netadr_s *)
		mov	[esp], ebx
		call	_ZNK8netadr_s7GetTypeEv	; netadr_s::GetType(void)
		cmp	eax, 1
		jz	loc_BEF90
		mov	[esp], ebx
		call	_ZNK8netadr_s21GetIPNetworkByteOrderEv ; netadr_s::GetIPNetworkByteOrder(void)
		mov	[ebp+var_53C], eax
		mov	[esp], esi
		call	_ZNK8netadr_s21GetIPNetworkByteOrderEv ; netadr_s::GetIPNetworkByteOrder(void)
		cmp	[ebp+var_53C], eax
		jz	loc_BEF90
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aDiscardingConn	; "Discarding connectionless packet ( CL '"...
		call	ConDMsg

loc_BEF0A:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+28Bj
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+408j ...
		xor	esi, esi

loc_BEF0C:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+2B7j
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+46Fj ...
		cmp	[ebp+var_19], 0
		jz	short loc_BEF37
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BEF24
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BEF37

loc_BEF24:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+1D9j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_BF2A8

loc_BEF37:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+1D0j
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+1E2j ...
		mov	eax, [ebp+var_52C]
		test	eax, eax
		jz	short loc_BEF79
		mov	eax, [ebp+var_538]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_534]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp+var_52C]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_BEF79:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+1FFj
		add	esp, 57Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BEF90:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+17Ej
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+1A0j
		cmp	edi, 41h
		jz	short loc_BEFE8
		cmp	edi, 42h
		jz	loc_BF220
		cmp	edi, 39h
		jz	loc_BF1A0
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aBadConnectionl	; "Bad connectionless packet ( CL '%c' ) f"...
		call	ConDMsg
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------

loc_BEFD0:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+F9j
		mov	[ebx+28h], edx
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edi, edi
		jmp	loc_BEE6E
; ---------------------------------------------------------------------------
		align 8

loc_BEFE8:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+253j
		mov	edi, [ebp+arg_0]
		mov	esi, 1
		cmp	dword ptr [edi+13Ch], 1
		jnz	loc_BEF0C
		mov	edi, [ebx+24h]
		mov	edx, [ebx+28h]
		mov	eax, edi
		sub	eax, edx
		cmp	eax, 1Fh
		jle	loc_BF2F0
		lea	eax, [edx+20h]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebx+28h], eax
		mov	[ebp+var_540], ecx
		mov	ecx, 20h
		mov	[ebp+var_544], eax
		mov	eax, [ebx+1Ch]
		sub	ecx, [ebp+var_540]
		mov	[ebp+var_53C], eax
		lea	eax, [edx+1Fh]
		mov	[ebp+var_548], ecx
		mov	ecx, [ebp+var_53C]
		sar	eax, 5
		mov	esi, [ecx+eax*4]
		mov	eax, edx
		movzx	ecx, byte ptr [ebp+var_548]
		sar	eax, 5
		shl	esi, cl
		mov	ecx, [ebp+var_53C]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_540]
		shr	eax, cl
		or	esi, eax
		cmp	esi, 5A4F4933h
		jnz	loc_BF301
		mov	eax, edi
		sub	eax, [ebp+var_544]
		cmp	eax, 1Fh
		jle	loc_BF53C
		mov	eax, [ebp+var_544]
		lea	esi, [edx+40h]
		mov	ecx, 20h
		add	edx, 3Fh
		mov	[ebx+28h], esi
		sar	edx, 5
		and	eax, 1Fh
		sub	ecx, eax
		mov	[ebp+var_548], eax
		mov	eax, [ebp+var_53C]
		mov	edx, [eax+edx*4]
		mov	eax, [ebp+var_544]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_548]
		mov	[ebp+var_540], edx
		mov	edx, [ebp+var_53C]
		sar	eax, 5
		mov	eax, [edx+eax*4]
		shr	eax, cl
		or	[ebp+var_540], eax

loc_BF0E3:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+81Dj
		mov	eax, edi
		sub	eax, esi
		cmp	eax, 1Fh
		jle	loc_BF524
		mov	edi, [ebx+1Ch]
		lea	eax, [esi+20h]
		mov	ecx, esi
		mov	[ebx+28h], eax
		lea	eax, [esi+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_53C], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_53C]
		mov	edx, [edi+eax*4]
		mov	eax, esi
		sar	eax, 5
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_53C]
		shr	eax, cl
		or	edx, eax

loc_BF12D:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+7F7j
		mov	edi, [ebp+arg_0]
		cmp	[edi+138h], edx
		jz	loc_BF400
		mov	dword ptr [esp], offset	aServerChalleng	; "Server challenge did	not have the corre"...
		call	Msg
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------
		align 10h

loc_BF150:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+DDj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessconnect	; "ProcessConnectionlessPacket"
		jz	short loc_BF18A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessconnect ; "ProcessConnectionlessPacket"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BF18A:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+41Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BEE23
; ---------------------------------------------------------------------------
		align 10h

loc_BF1A0:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+261j
		mov	edi, [ebp+arg_0]
		mov	esi, 1
		cmp	dword ptr [edi+13Ch], 1
		jnz	loc_BEF0C
		mov	eax, [ebx+24h]
		mov	esi, [ebx+28h]
		mov	edx, eax
		sub	edx, esi
		cmp	edx, 1Fh
		jle	loc_BF360
		lea	eax, [esi+20h]
		mov	edi, esi
		mov	ecx, 20h
		mov	[ebx+28h], eax
		mov	ebx, [ebx+1Ch]
		lea	eax, [esi+1Fh]
		sar	eax, 5
		and	edi, 1Fh
		sub	ecx, edi
		mov	edx, [ebx+eax*4]
		mov	eax, esi
		sar	eax, 5
		mov	eax, [ebx+eax*4]
		shl	edx, cl
		mov	ecx, edi
		shr	eax, cl
		or	edx, eax

loc_BF1F6:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+633j
		mov	edi, [ebp+arg_0]
		cmp	[edi+138h], edx
		jz	loc_BF380
		mov	dword ptr [esp], offset	aReceivedConnec	; "Received connection rejection that didn"...
		call	Msg
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------
		align 10h

loc_BF220:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+258j
		mov	edi, [ebp+arg_0]
		mov	esi, 1
		cmp	dword ptr [edi+13Ch], 1
		jnz	loc_BEF0C
		mov	eax, [ebx+24h]
		mov	esi, [ebx+28h]
		mov	edx, eax
		sub	edx, esi
		cmp	edx, 1Fh
		jle	loc_BF340
		mov	edi, [ebx+1Ch]
		lea	eax, [esi+20h]
		mov	ecx, esi
		mov	[ebx+28h], eax
		lea	eax, [esi+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_530], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_530]
		mov	edx, [edi+eax*4]
		mov	eax, esi
		sar	eax, 5
		mov	eax, [edi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_530]
		shr	eax, cl
		or	edx, eax

loc_BF285:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+613j
		mov	edi, [ebp+arg_0]
		cmp	[edi+138h], edx
		jz	loc_BF3E8
		mov	dword ptr [esp], offset	aServerConnecti	; "Server connection did not have the corr"...
		call	Msg
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------
		align 4

loc_BF2A8:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+1F1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BF2E0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BF2C6:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+5A5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_BEF37
; ---------------------------------------------------------------------------
		align 10h

loc_BF2E0:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+577j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BF2C6
; ---------------------------------------------------------------------------
		align 10h

loc_BF2F0:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+2CAj
		mov	[ebx+28h], edi
		mov	edi, [ebp+var_530]
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_BF301:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+338j
		mov	dword ptr [esp+4], offset aGameui_serverc ; "#GameUI_ServerConnectOutOfDate"
		mov	dword ptr [esp], 1 ; char
		call	_Z24COM_ExplainDisconnectionbPKcz ; COM_ExplainDisconnection(bool,char	const*,...)
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aGameui_serverc ; "#GameUI_ServerConnectOutOfDate"
		mov	[esp], edi
		call	dword ptr [eax+88h]
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------
		align 10h

loc_BF340:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+502j
		mov	edi, [ebp+var_530]
		mov	[ebx+28h], eax
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_BF285
; ---------------------------------------------------------------------------
		align 10h

loc_BF360:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+482j
		mov	edi, [ebp+var_530]
		mov	[ebx+28h], eax
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_BF1F6
; ---------------------------------------------------------------------------
		align 10h

loc_BF380:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+4BFj
		mov	edi, [ebp+var_530]
		lea	ebx, [ebp+format]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 4ECh	; arg
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	[esp+4], ebx	; format
		mov	dword ptr [esp], 1 ; char
		call	_Z24COM_ExplainDisconnectionbPKcz ; COM_ExplainDisconnection(bool,char	const*,...)
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+8], 1
		mov	[esp+4], ebx
		mov	[esp], edi
		call	dword ptr [eax+88h]

loc_BF3DA:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+6B7j
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+7DFj
		mov	esi, 1
		jmp	loc_BEF0C
; ---------------------------------------------------------------------------
		align 8

loc_BF3E8:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+54Ej
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	[esp+4], ebx
		mov	[esp], edi
		call	dword ptr [eax+7Ch]
		jmp	short loc_BF3DA
; ---------------------------------------------------------------------------
		align 10h

loc_BF400:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+3F6j
		mov	eax, [ebx+24h]
		mov	edx, [ebx+28h]
		mov	[ebp+var_53C], eax
		sub	eax, edx
		cmp	eax, 1Fh
		jle	loc_BF562
		lea	edi, [edx+20h]
		mov	ecx, edx
		mov	[ebx+28h], edi
		lea	eax, [edx+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_544], edi
		mov	edi, [ebx+1Ch]
		sar	eax, 5
		mov	[ebp+var_548], ecx
		mov	ecx, 20h
		sub	ecx, [ebp+var_548]
		mov	esi, [edi+eax*4]
		mov	eax, edx
		sar	eax, 5
		mov	eax, [edi+eax*4]
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		shl	esi, cl
		movzx	ecx, byte ptr [ebp+var_548]
		shr	eax, cl
		or	esi, eax
		cmp	esi, 3
		jnz	loc_BF594
		mov	eax, [ebp+var_53C]
		sub	eax, [ebp+var_544]
		cmp	eax, 0Fh
		jle	loc_BF5CE
		mov	eax, [ebp+var_544]
		mov	ecx, 20h
		and	eax, 1Fh
		mov	[ebp+var_54C], eax
		lea	eax, [edx+30h]
		add	edx, 2Fh
		mov	[ebx+28h], eax
		sar	edx, 5
		sub	ecx, [ebp+var_54C]
		mov	[ebp+var_548], eax
		mov	eax, [ebp+var_544]
		mov	edx, [edi+edx*4]
		sar	eax, 5
		shl	edx, cl
		mov	eax, [edi+eax*4]
		movzx	ecx, byte ptr [ebp+var_54C]
		shr	eax, cl
		or	eax, edx
		test	ax, ax
		jnz	loc_BF59F

loc_BF4D7:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+8B7j
		mov	eax, [ebp+var_53C]
		xor	edx, edx
		sub	eax, [ebp+var_548]
		cmp	eax, 47h
		ja	loc_BF5FC

loc_BF4EE:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+946j
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+9C5j
		mov	ecx, [ebp+var_28]
		mov	ebx, [ebp+var_24]

loc_BF4F4:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+84Fj
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+85Aj
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	[esp+14h], edx
		mov	edi, [ebp+var_540]
		mov	[esp+0Ch], ecx
		mov	[esp+10h], ebx
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	edi, [ebp+arg_0]
		mov	[esp], edi
		call	dword ptr [eax+8Ch]
		jmp	loc_BF3DA
; ---------------------------------------------------------------------------

loc_BF524:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+3AAj
		mov	[ebx+28h], edi
		mov	edi, [ebp+var_530]
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_BF12D
; ---------------------------------------------------------------------------

loc_BF53C:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+349j
		mov	[ebx+28h], edi
		mov	edi, [ebp+var_530]
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_540], 0
		mov	edi, [ebx+24h]
		mov	esi, [ebx+28h]
		jmp	loc_BF0E3
; ---------------------------------------------------------------------------

loc_BF562:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+6D1j
		mov	edx, [ebp+var_53C]
		mov	edi, [ebp+var_530]
		mov	[ebx+28h], edx
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_28], 0
		xor	ecx, ecx
		xor	ebx, ebx
		mov	[ebp+var_24], 0
		xor	edx, edx
		xor	esi, esi
		jmp	loc_BF4F4
; ---------------------------------------------------------------------------

loc_BF594:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+72Bj
		xor	ecx, ecx
		xor	ebx, ebx
		xor	edx, edx
		jmp	loc_BF4F4
; ---------------------------------------------------------------------------

loc_BF59F:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+791j
		mov	dword ptr [esp], offset	aInvalidSteamKe	; "Invalid Steam key size.\n"
		call	Msg
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aInvalidSteam_0 ; "Invalid Steam key size"
		mov	[esp], edi
		call	dword ptr [eax+88h]
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------

loc_BF5CE:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+740j
		mov	edi, [ebp+var_53C]
		mov	[ebx+28h], edi
		mov	edi, [ebp+var_530]
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+24h]
		mov	edx, [ebx+28h]
		mov	[ebp+var_53C], eax
		mov	[ebp+var_548], edx
		jmp	loc_BF4D7
; ---------------------------------------------------------------------------

loc_BF5FC:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+7A8j
		mov	edi, [ebp+var_530]
		lea	eax, [ebp+var_28]
		mov	dword ptr [esp+8], 8 ; arg
		mov	[esp+4], eax
		mov	[esp], edi
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		test	al, al
		jz	loc_BF6C3
		mov	eax, [ebx+24h]
		mov	edx, [ebx+28h]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 7
		jle	loc_BF6F2
		mov	edi, [ebx+1Ch]
		lea	eax, [edx+8]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebx+28h], eax
		lea	eax, [edx+7]
		mov	[ebp+var_530], ecx
		mov	ecx, 20h
		sar	eax, 5
		sub	ecx, [ebp+var_530]
		mov	ebx, [edi+eax*4]
		mov	eax, edx
		sar	eax, 5
		mov	eax, [edi+eax*4]
		shl	ebx, cl
		movzx	ecx, byte ptr [ebp+var_530]
		shr	eax, cl
		or	ebx, eax
		sub	bl, 1
		jnz	loc_BF703
		call	_Z26Host_IsSecureServerAllowedv	; Host_IsSecureServerAllowed(void)
		test	al, al
		mov	edx, 1
		jnz	loc_BF4EE
		mov	dword ptr [esp+4], offset aGameui_serveri ; "#GameUI_ServerInsecure"
		mov	dword ptr [esp], 1 ; char
		call	_Z24COM_ExplainDisconnectionbPKcz ; COM_ExplainDisconnection(bool,char	const*,...)
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aGameui_serveri ; "#GameUI_ServerInsecure"
		mov	[esp], edi
		call	dword ptr [eax+88h]
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------

loc_BF6C3:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+8DBj
		mov	dword ptr [esp], offset	aInvalidGsSteam	; "Invalid GS Steam ID.\n"
		call	Msg
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aInvalidGsSte_0 ; "Invalid GS	Steam ID"
		mov	[esp], edi
		call	dword ptr [eax+88h]
		jmp	loc_BEF0A
; ---------------------------------------------------------------------------

loc_BF6F2:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+8EEj
		mov	edi, [ebp+var_530]
		mov	[ebx+28h], eax
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_BF703:				; CODE XREF: CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+934j
		xor	edx, edx
		jmp	loc_BF4EE
_ZN16CBaseClientState27ProcessConnectionlessPacketEP11netpacket_s endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_BF70C:				; CODE XREF: .text:000BF762j
		cmp	dword ptr [ebp-52Ch], 0
		jz	short loc_BF74D
		mov	eax, [ebp-538h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-534h]
		mov	dword ptr [esp+10h], 0
		mov	edi, [ebp-52Ch]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [edi+54h]

loc_BF74D:				; CODE XREF: .text:000BF713j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_BF70C
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)
_ZThn8_N16CBaseClientState21ProcessPacketEntitiesEP18SVC_PacketEntities	proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState21ProcessPacketEntitiesEP18SVC_PacketEntities ; CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)
_ZThn8_N16CBaseClientState21ProcessPacketEntitiesEP18SVC_PacketEntities	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)
_ZN16CBaseClientState21ProcessPacketEntitiesEP18SVC_PacketEntities proc	near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)+5j
					; CHLTVClientState::ProcessPacketEntities(SVC_PacketEntities *)+1B1p
					; DATA XREF: ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_BF822
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcesspackete ; "ProcessPacketEntities"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState21ProcessPacketEntitiesEP18SVC_PacketEntitiesE6tm_fmt	; CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)::tm_fmt
		mov	dword ptr [esp+1Ch], 58Eh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_BF822:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BF846
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_BF948

loc_BF846:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+B1j
					; CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)+211j
		mov	eax, [esi+13Ch]
		cmp	eax, 4
		jle	loc_BF8E0
		cmp	eax, 5
		jz	loc_BF9A0

loc_BF85E:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+246j
		mov	eax, [esi+1A4h]
		test	eax, eax
		js	loc_BF8F0

loc_BF86C:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+182j
		mov	eax, [esi+19Ch]
		mov	edi, 1
		mov	[esi+1A4h], eax

loc_BF87D:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+16Ej
					; CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)+17Cj ...
		cmp	[ebp+var_19], 0
		jz	short loc_BF8A4
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BF895
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_BF8A4

loc_BF895:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+10Aj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_BF910

loc_BF8A4:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+101j
					; CBaseClientState::ProcessPacketEntities(SVC_PacketEntities *)+113j ...
		test	ebx, ebx
		jz	short loc_BF8D4
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_BF8D4:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+126j
		add	esp, 5Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BF8E0:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+CFj
		mov	dword ptr [esp], offset	aReceivedPacket	; "Received packet entities while connecti"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	edi, edi
		jmp	short loc_BF87D
; ---------------------------------------------------------------------------

loc_BF8F0:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+E6j
		mov	eax, [ebp+arg_4]
		mov	edi, 1
		cmp	byte ptr [eax+18h], 0
		jnz	loc_BF87D
		jmp	loc_BF86C
; ---------------------------------------------------------------------------
		align 10h

loc_BF910:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+122j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_BF9D0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BF932:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+255j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_BF8A4
; ---------------------------------------------------------------------------
		align 8

loc_BF948:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesspackete	; "ProcessPacketEntities"
		jz	short loc_BF982
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesspackete ; "ProcessPacketEntities"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BF982:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+1D3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BF846
; ---------------------------------------------------------------------------
		align 10h

loc_BF9A0:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+D8j
		mov	edx, [ebp+arg_4]
		cmp	byte ptr [edx+18h], 0
		jnz	short loc_BF9E0
		mov	edx, [esi+148h]
		mov	eax, [esi]
		mov	dword ptr [esp+4], 6
		mov	[esp], esi
		mov	[esp+8], edx
		call	dword ptr [eax+84h]
		jmp	loc_BF85E
; ---------------------------------------------------------------------------
		align 10h

loc_BF9D0:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+19Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_BF932
; ---------------------------------------------------------------------------
		align 10h

loc_BF9E0:				; CODE XREF: CBaseClientState::ProcessPacketEntities(SVC_PacketEntities	*)+227j
		mov	dword ptr [esp], offset	aReceivedDeltaP	; "Received delta packet entities while	sp"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	edi, edi
		jmp	loc_BF87D
_ZN16CBaseClientState21ProcessPacketEntitiesEP18SVC_PacketEntities endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_BF9F5:				; CODE XREF: .text:000BFA3Aj
		test	ebx, ebx
		jz	short loc_BFA25
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_BFA25:				; CODE XREF: .text:000BF9F7j
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_BF9F5
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)
_ZThn8_N16CBaseClientState24ProcessCreateStringTableEP21SVC_CreateStringTable proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState24ProcessCreateStringTableEP21SVC_CreateStringTable ; CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)
_ZThn8_N16CBaseClientState24ProcessCreateStringTableEP21SVC_CreateStringTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)
_ZN16CBaseClientState24ProcessCreateStringTableEP21SVC_CreateStringTable proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
dest		= dword	ptr -50h
src		= dword	ptr -4Ch
var_40		= byte ptr -40h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_54], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_68], 0
		mov	[ebp+var_64], 0
		test	eax, eax
		jz	short loc_BFB00
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcesscreates ; "ProcessCreateStringTable"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState24ProcessCreateStringTableEP21SVC_CreateStringTableE6tm_fmt ;	CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)::tm_fmt
		mov	dword ptr [esp+1Ch], 528h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_64], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_68], eax
		mov	[ebp+var_54], edx

loc_BFB00:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+3Cj
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BFB24
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_BFE60

loc_BFB24:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+BFj
					; CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+459j
		mov	eax, [ebx+10h]
		mov	dword ptr [esp], offset	aCbaseclientP_2	; " CBaseClient::ProcessCreateStringTable("...
		mov	[esp+4], eax
		call	COM_TimestampedLog
		mov	dword ptr [esp+4], 1
		mov	eax, [esi+4A18h]
		mov	[esp], eax
		call	_ZN28CNetworkStringTableContainer13AllowCreationEb ; CNetworkStringTableContainer::AllowCreation(bool)
		mov	ecx, [ebx+3Ch]
		mov	eax, [esi+4A18h]
		movzx	edx, byte ptr [ebx+28h]
		mov	[ebp+var_60], ecx
		mov	ecx, [eax]
		mov	[esp+14h], edx
		mov	edx, [ebx+24h]
		mov	[esp+10h], edx
		mov	edx, [ebx+20h]
		mov	[esp+0Ch], edx
		mov	edx, [ebx+14h]
		mov	[esp+8], edx
		mov	edx, [ebx+10h]
		mov	[esp], eax
		mov	[esp+4], edx
		call	dword ptr [ecx+1Ch]
		mov	[ebp+var_58], eax
		mov	edx, [esi+19Ch]
		mov	ecx, [ebp+var_58]
		mov	eax, [eax]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [eax+1Ch]
		mov	edx, [ebx+10h]
		mov	eax, [esi]
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+0A0h]
		cmp	byte ptr [ebx+60h], 0
		jz	loc_BFDC0
		mov	edx, [ebx+38h]
		lea	eax, [ebx+30h]
		mov	edi, [ebx+3Ch]
		mov	[ebp+var_6C], eax
		mov	eax, edx
		mov	[ebp+src], edx
		sub	eax, edi
		cmp	eax, 1Fh
		jle	loc_BFE00
		mov	[ebp+var_70], 20h
		lea	eax, [edi+20h]
		mov	ecx, edi
		lea	edx, [edi+1Fh]
		and	ecx, 1Fh
		mov	[ebx+3Ch], eax
		mov	[ebp+var_5C], ecx
		sar	edx, 5
		sar	edi, 5
		sub	[ebp+var_70], ecx
		mov	ecx, [ebx+30h]
		mov	ecx, [ecx+edx*4]
		mov	[ebp+dest], ecx
		movzx	ecx, byte ptr [ebp+var_70]
		shl	[ebp+dest], cl
		mov	ecx, [ebx+30h]
		mov	edx, [ecx+edi*4]
		movzx	ecx, byte ptr [ebp+var_5C]
		shr	edx, cl
		or	[ebp+dest], edx

loc_BFC15:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+3CEj
		mov	edx, [ebp+src]
		sub	edx, eax
		cmp	edx, 1Fh
		jle	loc_BFDE0
		lea	edx, [eax+20h]
		mov	ecx, eax
		mov	[ebx+3Ch], edx
		mov	edx, [ebx+30h]
		and	ecx, 1Fh
		lea	edi, [eax+1Fh]
		mov	[ebp+src], ecx
		mov	ecx, 20h
		sar	edi, 5
		sub	ecx, [ebp+src]
		sar	eax, 5
		mov	edi, [edx+edi*4]
		mov	eax, [edx+eax*4]
		shl	edi, cl
		movzx	ecx, byte ptr [ebp+src]
		shr	eax, cl
		or	edi, eax

loc_BFC55:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+3A3j
		mov	eax, [ebp+dest]
		mov	[ebp+var_20], eax
		add	eax, 3
		and	eax, 0FFFFFFFCh
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[ebp+dest], eax
		lea	eax, [edi+3]
		and	eax, 0FFFFFFFCh
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[ebp+src], eax
		lea	eax, ds:0[edi*8]
		mov	edx, [ebp+var_6C]
		mov	[esp+8], eax
		mov	eax, [ebp+src]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_ZN7bf_read8ReadBitsEPvi ; bf_read::ReadBits(void *,int)
		mov	eax, [ebp+src]
		mov	[esp+0Ch], edi	; n
		mov	[esp+8], eax	; src
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+dest]
		mov	[esp], eax	; dest
		call	_Z28COM_BufferToBufferDecompressPcPjPKcj ; COM_BufferToBufferDecompress(char *,uint *,char  const*,uint)
		mov	eax, [ebp+var_20]
		lea	edi, [ebp+var_40]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	[esp], edi
		mov	[esp+8], eax
		mov	eax, [ebp+dest]
		mov	[esp+4], eax
		call	_ZN7bf_readC2EPKvii ; bf_read::bf_read(void  const*,int,int)
		mov	eax, [ebx+18h]
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	eax, [ebp+var_58]
		mov	[esp], eax
		call	_ZN19CNetworkStringTable11ParseUpdateER7bf_readi ; CNetworkStringTable::ParseUpdate(bf_read &,int)
		mov	eax, [ebp+dest]
		test	eax, eax
		jz	short loc_BFD00
		mov	eax, [ebp+dest]
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_BFD00:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+2A3j
		mov	edi, [ebp+src]
		test	edi, edi
		jz	short loc_BFD12
		mov	eax, [ebp+src]
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_BFD12:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+2B5j
					; CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+389j
		mov	dword ptr [esp+4], 0
		mov	eax, [esi+4A18h]
		mov	[esp], eax
		call	_ZN28CNetworkStringTableContainer13AllowCreationEb ; CNetworkStringTableContainer::AllowCreation(bool)
		mov	eax, [ebx+10h]
		mov	esi, [ebx+3Ch]
		mov	dword ptr [esp], offset	aCbaseclientP_3	; " CBaseClient::ProcessCreateStringTable("...
		mov	[esp+4], eax
		call	COM_TimestampedLog
		cmp	[ebp+var_19], 0
		mov	ebx, [ebx+2Ch]
		jz	short loc_BFD6D
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_BFD5A
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_BFD6D

loc_BFD5A:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+2FEj
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_BFE28

loc_BFD6D:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+2F5j
					; CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+308j ...
		mov	edx, [ebp+var_54]
		test	edx, edx
		jz	short loc_BFDA3
		mov	ecx, [ebp+var_64]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_68]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	ecx, [ebp+var_54]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [ecx+54h]

loc_BFDA3:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+322j
		sub	esi, [ebp+var_60]
		cmp	esi, ebx
		setz	al
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_BFDC0:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+163j
		mov	eax, [ebx+18h]
		mov	[esp+8], eax
		lea	eax, [ebx+30h]
		mov	[esp+4], eax
		mov	eax, [ebp+var_58]
		mov	[esp], eax
		call	_ZN19CNetworkStringTable11ParseUpdateER7bf_readi ; CNetworkStringTable::ParseUpdate(bf_read &,int)
		jmp	loc_BFD12
; ---------------------------------------------------------------------------
		align 10h

loc_BFDE0:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+1CDj
		mov	eax, [ebp+src]
		mov	edx, [ebp+var_6C]
		mov	[ebx+3Ch], eax
		mov	[esp], edx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edi, edi
		jmp	loc_BFC55
; ---------------------------------------------------------------------------
		align 10h

loc_BFE00:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+17Fj
		mov	ecx, [ebp+var_6C]
		mov	[ebx+3Ch], edx
		mov	[esp], ecx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+38h]
		mov	[ebp+dest], 0
		mov	[ebp+src], eax
		mov	eax, [ebx+3Ch]
		jmp	loc_BFC15
; ---------------------------------------------------------------------------
		align 8

loc_BFE28:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+317j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_BFEB0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BFE46:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+465j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_BFD6D
; ---------------------------------------------------------------------------
		align 10h

loc_BFE60:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+CEj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesscreates	; "ProcessCreateStringTable"
		jz	short loc_BFE9A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesscreates ; "ProcessCreateStringTable"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_BFE9A:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+41Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BFB24
; ---------------------------------------------------------------------------
		align 10h

loc_BFEB0:				; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+3E7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_BFE46
_ZN16CBaseClientState24ProcessCreateStringTableEP21SVC_CreateStringTable endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_BFEC4:				; CODE XREF: .text:000BFF03j
		cmp	dword ptr [ebp-54h], 0
		jz	short loc_BFEF9
		mov	edx, [ebp-64h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-68h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-54h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_BFEF9:				; CODE XREF: .text:000BFEC8j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_BFEC4
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessTick(NET_Tick *)
_ZThn8_N16CBaseClientState11ProcessTickEP8NET_Tick proc	near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState11ProcessTickEP8NET_Tick ; CBaseClientState::ProcessTick(NET_Tick *)
_ZThn8_N16CBaseClientState11ProcessTickEP8NET_Tick endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessTick(NET_Tick *)
_ZN16CBaseClientState11ProcessTickEP8NET_Tick proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessTick(NET_Tick *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_BFFC5
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcesstick ; "ProcessTick"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState11ProcessTickEP8NET_TickE6tm_fmt ; CBaseClientState::ProcessTick(NET_Tick *)::tm_fmt
		mov	dword ptr [esp+1Ch], 3CCh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_BFFC5:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+34j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_BFFED
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_34], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_34], eax
		jz	loc_C00D0

loc_BFFED:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+B4j
					; CBaseClientState::ProcessTick(NET_Tick *)+1F9j
		mov	eax, [esi+10h]
		mov	ecx, [ebx+18h]

loc_BFFF3:				; DATA XREF: CBSPTreeData::NewHandle(int)+25o
		mov	edx, [eax]
		mov	[esp+8], ecx
		mov	ecx, [ebx+14h]

loc_BFFFC:				; DATA XREF: CDataManagerBase::DestroyResource(memhandle_t__ *)+7Er
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+110h]
		mov	eax, [ebx+10h]
		mov	[esi+1A0h], eax
		mov	eax, [esi+4A18h]
		mov	ebx, [ebx+10h]
		test	eax, eax
		mov	[esi+19Ch], ebx
		jz	short loc_C0037
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN28CNetworkStringTableContainer7SetTickEi ; CNetworkStringTableContainer::SetTick(int)
		mov	ebx, [esi+19Ch]

loc_C0037:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+103j
		cmp	[ebp+var_19], 0
		jz	short loc_C005E
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C004F
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_C005E

loc_C004F:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+124j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_C00A0

loc_C005E:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+11Bj
					; CBaseClientState::ProcessTick(NET_Tick *)+12Dj ...
		test	edi, edi
		jz	short loc_C008E
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_C008E:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+140j
		test	ebx, ebx
		setnle	al
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C00A0:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+13Cj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_C0120
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C00BE:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+205j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_C005E
; ---------------------------------------------------------------------------
		align 10h

loc_C00D0:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+C7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesstick ; "ProcessTick"
		jz	short loc_C010A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesstick ; "ProcessTick"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C010A:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+1BBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_BFFED
; ---------------------------------------------------------------------------
		align 10h

loc_C0120:				; CODE XREF: CBaseClientState::ProcessTick(NET_Tick *)+18Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_C00BE
_ZN16CBaseClientState11ProcessTickEP8NET_Tick endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C0129:				; CODE XREF: .text:000C016Ej
		test	edi, edi
		jz	short loc_C0159
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_C0159:				; CODE XREF: .text:000C012Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C0129

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)
_ZThn8_N16CBaseClientState19ProcessGetCvarValueEP16SVC_GetCvarValue proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState19ProcessGetCvarValueEP16SVC_GetCvarValue ; CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)
_ZThn8_N16CBaseClientState19ProcessGetCvarValueEP16SVC_GetCvarValue endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)
_ZN16CBaseClientState19ProcessGetCvarValueEP16SVC_GetCvarValue proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo ...

var_358		= dword	ptr -358h
var_354		= dword	ptr -354h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= byte ptr -344h
var_340		= dword	ptr -340h
var_338		= dword	ptr -338h
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
s		= byte ptr -128h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 37Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_358], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_354], 0
		test	eax, eax
		jz	short loc_C0231
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcessgetcvar ; "ProcessGetCvarValue"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState19ProcessGetCvarValueEP16SVC_GetCvarValueE6tm_fmt ; CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)::tm_fmt
		mov	dword ptr [esp+1Ch], 6CAh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_358], eax
		mov	[ebp+var_354], edx

loc_C0231:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+3Aj
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C0255
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_C0430

loc_C0255:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+C0j
					; CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+2F9j
		mov	eax, [esi+10h]
		mov	[ebp+var_344], 1
		mov	[ebp+var_340], 0
		mov	ecx, [esi+14h]
		mov	[ebp+var_348], (offset _ZTV20CLC_RespondCvarValue+8)
		mov	[ebp+var_330], (offset asc_20E578+4)
		mov	[ebp+var_338], eax
		mov	eax, ds:g_pCVar
		mov	[ebp+var_334], ecx
		mov	[ebp+var_32C], 1
		mov	edx, [eax]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+30h]
		test	eax, eax
		mov	ebx, eax
		jz	loc_C04B0
		mov	eax, [eax]
		mov	dword ptr [esp+4], 20000000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	loc_C0380
		mov	[ebp+var_32C], 3

loc_C02D3:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+271j
					; CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+2A1j ...
		mov	eax, [ebp+arg_0]
		lea	ecx, [ebp+var_348]
		mov	eax, [eax+10h]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		mov	[ebp+var_348], (offset _ZTV11INetMessage+8)
		cmp	[ebp+var_19], 0
		jz	short loc_C0333
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C0320
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_C0333

loc_C0320:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+195j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_C0480

loc_C0333:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+18Cj
					; CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+19Ej ...
		test	edi, edi
		jz	short loc_C0369
		mov	eax, [ebp+var_358]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_354]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_C0369:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+1B5j
		add	esp, 37Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C0380:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+143j
		mov	[ebp+var_32C], 0
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 1000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_C0400
		mov	eax, [ebx+1Ch]
		fld	dword ptr [eax+2Ch]
		mov	eax, [eax+30h]
		mov	[ebp+var_34C], eax
		fild	[ebp+var_34C]
		fsubr	st, st(1)
		fabs
		fld	ds:flt_1EBD88
		fcomip	st, st(1)
		fstp	st
		jbe	loc_C04F0
		fstp	st
		lea	ebx, [ebp+s]
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], (offset aD_1+1) ; format
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_C03EB:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+392j
		mov	[ebp+var_330], ebx
		jmp	loc_C02D3
; ---------------------------------------------------------------------------
		align 10h

loc_C0400:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+21Cj
		test	byte ptr [ebx+15h], 10h
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jnz	short loc_C041B
		mov	eax, [ebx+1Ch]
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx

loc_C041B:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+289j
		mov	[ebp+var_330], eax
		jmp	loc_C02D3
; ---------------------------------------------------------------------------
		align 10h

loc_C0430:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+CFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessgetcvar	; "ProcessGetCvarValue"
		jz	short loc_C046A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessgetcvar ; "ProcessGetCvarValue"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C046A:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+2BBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C0255
; ---------------------------------------------------------------------------
		align 10h

loc_C0480:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+1ADj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_C04E0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C049E:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+365j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_C0333
; ---------------------------------------------------------------------------
		align 10h

loc_C04B0:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+12Bj
		mov	eax, ds:g_pCVar
		mov	ecx, [esi+14h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+38h]
		cmp	eax, 1
		sbb	eax, eax
		add	eax, 2
		mov	[ebp+var_32C], eax
		jmp	loc_C02D3
; ---------------------------------------------------------------------------
		align 10h

loc_C04E0:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+30Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_C049E
; ---------------------------------------------------------------------------
		align 10h

loc_C04F0:				; CODE XREF: CBaseClientState::ProcessGetCvarValue(SVC_GetCvarValue *)+241j
		lea	ebx, [ebp+s]
		mov	dword ptr [esp+8], (offset aMin_F+6) ; format
		fstp	qword ptr [esp+0Ch] ; arg
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_C03EB
_ZN16CBaseClientState19ProcessGetCvarValueEP16SVC_GetCvarValue endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C0519:				; CODE XREF: .text:000C056Ej
		test	edi, edi
		jz	short loc_C054F
		mov	eax, [ebp-358h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-354h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_C054F:				; CODE XREF: .text:000C051Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-348h], (offset _ZTV11INetMessage+8)
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C0519

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessSetConVar(NET_SetConVar *)
_ZThn8_N16CBaseClientState16ProcessSetConVarEP13NET_SetConVar proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState16ProcessSetConVarEP13NET_SetConVar ; CBaseClientState::ProcessSetConVar(NET_SetConVar *)
_ZThn8_N16CBaseClientState16ProcessSetConVarEP13NET_SetConVar endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessSetConVar(NET_SetConVar *)
_ZN16CBaseClientState16ProcessSetConVarEP13NET_SetConVar proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessSetConVar(NET_SetConVar *)+5j
					; CHLTVClientState::ProcessSetConVar(NET_SetConVar *)+19p
					; DATA XREF: ...

var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	[ebp+var_30], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_2C], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_50], 0
		mov	[ebp+var_4C], 0
		test	eax, eax
		jz	short loc_C0627
		lea	edx, [ebp+var_30]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcesssetconv ; "ProcessSetConVar"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState16ProcessSetConVarEP13NET_SetConVarE6tm_fmt ;	CBaseClientState::ProcessSetConVar(NET_SetConVar *)::tm_fmt
		mov	dword ptr [esp+1Ch], 416h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_2C]
		mov	eax, [ebp+var_30]
		mov	[ebp+var_4C], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_50], eax
		mov	[ebp+var_44], edx

loc_C0627:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+33j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C064C
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_C07DF

loc_C064C:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+B7j
					; CBaseClientState::ProcessSetConVar(NET_SetConVar *)+2A8j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		test	al, al
		jnz	loc_C0748
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+1Ch]
		test	esi, esi
		jle	loc_C0748
		mov	[ebp+var_3C], 0
		lea	esi, [ebp+var_24]
		xor	edi, edi
		jmp	short loc_C06AD
; ---------------------------------------------------------------------------
		align 10h

loc_C0680:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+154j
		mov	[esp+8], edx
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aSetconvarNoSuc	; "SetConVar: No such cvar ( %s	set to %s)"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_C0694:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+173j
					; CBaseClientState::ProcessSetConVar(NET_SetConVar *)+19Cj ...
		add	[ebp+var_3C], 1
		add	edi, 208h
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+var_3C]
		cmp	[edx+1Ch], ecx
		jle	loc_C0748

loc_C06AD:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+FCj
		mov	eax, [ebp+arg_4]
		mov	ebx, edi
		add	ebx, [eax+10h]
		mov	[esp], esi
		mov	[esp+4], ebx
		call	_ZN9ConVarRefC2EPKc ; ConVarRef::ConVarRef(char	 const*)
		mov	[esp], esi
		call	_ZNK9ConVarRef7IsValidEv ; ConVarRef::IsValid(void)
		lea	edx, [ebx+104h]
		test	al, al
		mov	[ebp+var_40], edx
		jz	short loc_C0680
		mov	eax, [esi]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 2000h
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jz	short loc_C0728
		cmp	dword ptr ds:sv+4, 1
		jg	short loc_C0694
		mov	eax, [esi]
		mov	ecx, [ebp+var_40]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx]
		mov	eax, [ebp+var_40]
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aSetconvarSS ; "SetConVar: %s =	\"%s\"\n"
		mov	[esp+8], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_C0694
; ---------------------------------------------------------------------------
		align 8

loc_C0728:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+16Aj
		mov	ecx, [ebp+var_40]
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aSetconvarCanTS	; "SetConVar: Can't set server cvar %s to "...
		mov	[esp+8], ecx
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_C0694
; ---------------------------------------------------------------------------
		align 8

loc_C0748:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+DCj
					; CBaseClientState::ProcessSetConVar(NET_SetConVar *)+EAj ...
		cmp	[ebp+var_19], 0
		jz	short loc_C0770
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C0761
		mov	ebx, dword ptr g_VProfCurrentProfile+100Ch
		test	ebx, ebx
		jz	short loc_C0770

loc_C0761:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+1D5j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_C07B3

loc_C0770:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+1CCj
					; CBaseClientState::ProcessSetConVar(NET_SetConVar *)+1DFj ...
		mov	ecx, [ebp+var_44]
		test	ecx, ecx
		jz	short loc_C07A6
		mov	edx, [ebp+var_4C]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_50]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_44]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C07A6:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+1F5j
		add	esp, 7Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C07B3:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+1EEj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_C082D
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C07D1:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+2B2j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_C0770
; ---------------------------------------------------------------------------

loc_C07DF:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+C6j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcesssetconv	; "ProcessSetConVar"
		jz	short loc_C0819
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcesssetconv ; "ProcessSetConVar"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C0819:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+26Aj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C064C
; ---------------------------------------------------------------------------

loc_C082D:				; CODE XREF: CBaseClientState::ProcessSetConVar(NET_SetConVar *)+242j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_C07D1
_ZN16CBaseClientState16ProcessSetConVarEP13NET_SetConVar endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C0836:				; CODE XREF: .text:000C0881j
		mov	edx, [ebp-44h]
		test	edx, edx
		jz	short loc_C086C
		mov	edx, [ebp-4Ch]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-50h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-44h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C086C:				; CODE XREF: .text:000C083Bj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C0836
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::RunFrame(void)
_ZN16CBaseClientState8RunFrameEv proc near ; CODE XREF:	CHLTVClientState::RunFrame(void)+Dp
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_78		= dword	ptr -78h
var_70		= byte ptr -70h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 0BCh
		mov	[ebp+var_30], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_2C], 0
		mov	[ebp+var_90], 0
		mov	[ebp+var_8C], 0
		test	eax, eax
		jz	short loc_C093E
		lea	edx, [ebp+var_30]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCbaseclients_2 ; "CBaseClientState::RunFrame"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState8RunFrameEvE6tm_fmt ;	CBaseClientState::RunFrame(void)::tm_fmt
		mov	dword ptr [esp+1Ch], 2F0h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_90], eax
		mov	[ebp+var_8C], edx

loc_C093E:				; CODE XREF: CBaseClientState::RunFrame(void)+37j
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C0963
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_C0B90

loc_C0963:				; CODE XREF: CBaseClientState::RunFrame(void)+BEj
					; CBaseClientState::RunFrame(void)+349j
		mov	eax, ds:g_Telemetry
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	loc_C0B38
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+28h], offset _ZZN16CBaseClientState8RunFrameEvE12__FUNCTION__ ; "RunFrame"
		mov	dword ptr [esp+24h], (offset aDFS+9)
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState8RunFrameEvE6tm_fmt_0	; CBaseClientState::RunFrame(void)::tm_fmt
		mov	dword ptr [esp+1Ch], 2F1h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		mov	esi, ds:g_Telemetry
		mov	[ebp+var_98], edx
		mov	[ebp+var_94], ecx

loc_C09EB:				; CODE XREF: CBaseClientState::RunFrame(void)+2BEj
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+13Ch]
		cmp	eax, 3
		jle	loc_C0A8D
		mov	edx, [ecx+10h]
		test	edx, edx
		jz	loc_C0A8D
		mov	eax, ds:g_GameEventManager
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZN17CGameEventManager25HasClientListenersChangedEb ; CGameEventManager::HasClientListenersChanged(bool)
		test	al, al
		jz	short loc_C0A84
		lea	edx, [ebp+var_70]
		xor	eax, eax
		mov	ecx, 10h
		mov	edi, edx
		mov	[ebp+var_7C], 1
		rep stosd
		mov	eax, ds:g_GameEventManager
		lea	ecx, [ebp+var_80]
		mov	[ebp+var_78], 0
		mov	[ebp+var_80], (offset _ZTV16CLC_ListenEvents+8)
		mov	[esp+4], ecx
		mov	[esp], eax
		call	_ZN17CGameEventManager20WriteListenEventListEP16CLC_ListenEvents ; CGameEventManager::WriteListenEventList(CLC_ListenEvents *)
		mov	edx, [ebp+arg_0]
		lea	ecx, [ebp+var_80]
		mov	eax, [edx+10h]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		mov	[ebp+var_80], (offset _ZTV11INetMessage+8)

loc_C0A84:				; CODE XREF: CBaseClientState::RunFrame(void)+18Fj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+13Ch]

loc_C0A8D:				; CODE XREF: CBaseClientState::RunFrame(void)+167j
					; CBaseClientState::RunFrame(void)+172j
		cmp	eax, 1
		jz	loc_C0BE0

loc_C0A96:				; CODE XREF: CBaseClientState::RunFrame(void)+35Ej
		test	esi, esi
		jz	short loc_C0ACC
		mov	eax, [ebp+var_98]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_94]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_C0ACC:				; CODE XREF: CBaseClientState::RunFrame(void)+208j
		cmp	[ebp+var_19], 0
		jz	short loc_C0AF3
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C0AE4
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_C0AF3

loc_C0AE4:				; CODE XREF: CBaseClientState::RunFrame(void)+249j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_C0B58

loc_C0AF3:				; CODE XREF: CBaseClientState::RunFrame(void)+240j
					; CBaseClientState::RunFrame(void)+252j ...
		test	ebx, ebx
		jz	short loc_C0B29
		mov	edx, [ebp+var_90]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp+var_8C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [ebx+54h]

loc_C0B29:				; CODE XREF: CBaseClientState::RunFrame(void)+265j
		add	esp, 0BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C0B38:				; CODE XREF: CBaseClientState::RunFrame(void)+E8j
		mov	[ebp+var_98], 0
		xor	esi, esi
		mov	[ebp+var_94], 0
		jmp	loc_C09EB
; ---------------------------------------------------------------------------
		align 8

loc_C0B58:				; CODE XREF: CBaseClientState::RunFrame(void)+261j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_C0BF8
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C0B7A:				; CODE XREF: CBaseClientState::RunFrame(void)+36Dj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_C0AF3
; ---------------------------------------------------------------------------
		align 10h

loc_C0B90:				; CODE XREF: CBaseClientState::RunFrame(void)+CDj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCbaseclients_2	; "CBaseClientState::RunFrame"
		jz	short loc_C0BCA
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCbaseclients_2 ; "CBaseClientState::RunFrame"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C0BCA:				; CODE XREF: CBaseClientState::RunFrame(void)+30Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C0963
; ---------------------------------------------------------------------------
		align 10h

loc_C0BE0:				; CODE XREF: CBaseClientState::RunFrame(void)+200j
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx]
		mov	[esp], ecx
		call	dword ptr [eax+98h]
		jmp	loc_C0A96
; ---------------------------------------------------------------------------
		align 8

loc_C0BF8:				; CODE XREF: CBaseClientState::RunFrame(void)+2D7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_C0B7A
_ZN16CBaseClientState8RunFrameEv endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-80h], (offset _ZTV11INetMessage+8)
		mov	edi, eax

loc_C0C0B:				; CODE XREF: .text:000C0C94j
		test	esi, esi
		jz	short loc_C0C41
		mov	eax, [ebp-98h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-94h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_C0C41:				; CODE XREF: .text:000C0C0Dj
					; .text:000C0C8Cj
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_C0C4C:				; CODE XREF: .text:000C0C90j
		test	ebx, ebx
		jz	short loc_C0C82
		mov	edx, [ebp-90h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-8Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [ebx+54h]

loc_C0C82:				; CODE XREF: .text:000C0C4Ej
		mov	[esp], edi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	edi, eax
		jmp	short loc_C0C41
; ---------------------------------------------------------------------------
		mov	edi, eax
		jmp	short loc_C0C4C
; ---------------------------------------------------------------------------
		mov	edi, eax
		jmp	loc_C0C0B
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; UpdateNameFromSteamID(IConVar	*, CSteamID *)
_Z21UpdateNameFromSteamIDP7IConVarP8CSteamID proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z21UpdateNameFromSteamIDP7IConVarP8CSteamID endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetNameToSteamIDName(IConVar *)
_Z20SetNameToSteamIDNameP7IConVar proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z20SetNameToSteamIDNameP7IConVar endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; C_ServerClassInfo::C_ServerClassInfo(void)
_ZN17C_ServerClassInfoC2Ev proc	near	; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+BBp
					; DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read *)+D3p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0FFFFh
		pop	ebp
		retn
_ZN17C_ServerClassInfoC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; C_ServerClassInfo::~C_ServerClassInfo()
_ZN17C_ServerClassInfoD2Ev proc	near	; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+106p
					; CBaseClientState::Clear(void)+8Ep ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_C0CF9
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_C0CF9:				; CODE XREF: C_ServerClassInfo::~C_ServerClassInfo()+Fj
		mov	eax, [ebx+8]
		test	eax, eax
		jz	short loc_C0D10
		mov	[ebp+arg_0], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdaPv		; operator delete[](void *)
; ---------------------------------------------------------------------------
		align 10h

loc_C0D10:				; CODE XREF: C_ServerClassInfo::~C_ServerClassInfo()+1Ej
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN17C_ServerClassInfoD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)
_ZThn8_N16CBaseClientState16ProcessClassInfoEP13SVC_ClassInfo proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState16ProcessClassInfoEP13SVC_ClassInfo ; CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)
_ZThn8_N16CBaseClientState16ProcessClassInfoEP13SVC_ClassInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)
_ZN16CBaseClientState16ProcessClassInfoEP13SVC_ClassInfo proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
arg		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		test	eax, eax
		jz	short loc_C0DD7
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcessclassin ; "ProcessClassInfo"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState16ProcessClassInfoEP13SVC_ClassInfoE6tm_fmt ;	CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)::tm_fmt
		mov	dword ptr [esp+1Ch], 4EAh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_44], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_48], eax
		mov	[ebp+var_3C], edx

loc_C0DD7:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+33j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C0DFB
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_C1053

loc_C0DFB:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+B6j
					; CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+36Cj
		mov	dword ptr [esp], offset	aCbaseclientP_4	; " CBaseClient::ProcessClassInfo"
		call	COM_TimestampedLog
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+10h], 0
		jnz	loc_C1040
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4208h]
		test	eax, eax
		jz	short loc_C0E50
		mov	ebx, [eax-4]
		shl	ebx, 4
		add	ebx, eax
		cmp	eax, ebx
		jz	short loc_C0E45
		mov	esi, edx
		nop

loc_C0E30:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+113j
		sub	ebx, 10h
		mov	[esp], ebx
		call	_ZN17C_ServerClassInfoD2Ev ; C_ServerClassInfo::~C_ServerClassInfo()
		mov	eax, [esi+4208h]
		cmp	eax, ebx
		jnz	short loc_C0E30

loc_C0E45:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+FBj
		sub	eax, 4
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_C0E50:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+EFj
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	ebx, [eax+20h]
		mov	eax, ebx
		mov	[edx+420Ch], ebx
		shl	eax, 4
		add	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[eax], ebx
		lea	ecx, [eax+4]
		test	ebx, ebx
		jz	short loc_C0E9F
		mov	eax, ecx
		xor	edx, edx
		lea	esi, [esi+0]

loc_C0E80:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+16Dj
		add	edx, 1
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0FFFFh
		add	eax, 10h
		cmp	ebx, edx
		jnz	short loc_C0E80

loc_C0E9F:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+146j
		mov	eax, [ebp+arg_0]
		test	ecx, ecx
		mov	[ebp+var_38], ecx
		mov	[eax+4208h], ecx
		jz	loc_C10D7
		mov	eax, [eax+420Ch]
		test	eax, eax
		jle	loc_C0F8B
		mov	edx, [ebp+arg_4]
		mov	ebx, [edx+14h]
		mov	edx, [ebx]
		cmp	edx, eax
		mov	dword ptr [ebp+arg], edx
		jge	loc_C1018
		mov	[ebp+var_34], 204h
		mov	[ebp+var_30], 0
		jmp	short loc_C0F11
; ---------------------------------------------------------------------------
		align 8

loc_C0EE8:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+255j
		mov	ebx, [ebp+var_34]
		mov	edx, [ebp+arg_4]
		add	[ebp+var_34], 204h
		add	ebx, [edx+14h]
		mov	edx, [ebx]
		cmp	eax, edx
		mov	dword ptr [ebp+arg], edx
		jle	loc_C1018
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4208h]
		mov	[ebp+var_38], eax

loc_C0F11:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+1B2j
		lea	esi, [ebx+104h]
		mov	[esp], esi	; s
		call	strlen
		lea	edi, [eax+1]
		mov	[esp], edi
		call	_Znaj		; operator new[](uint)
		mov	edx, dword ptr [ebp+arg]
		shl	edx, 4
		add	edx, [ebp+var_38]
		mov	[edx+4], eax
		mov	dword ptr [ebp+arg], edx
		mov	[esp+8], edi	; n
		mov	[esp+4], esi	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		lea	esi, [ebx+4]
		mov	[esp], esi	; s
		call	strlen
		lea	ebx, [eax+1]
		mov	[esp], ebx
		call	_Znaj		; operator new[](uint)
		mov	edx, dword ptr [ebp+arg]
		mov	[edx+8], eax
		mov	[esp+8], ebx	; n
		mov	[esp+4], esi	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	edx, [ebp+arg_0]
		add	[ebp+var_30], 1
		mov	eax, [edx+420Ch]
		cmp	eax, [ebp+var_30]
		jg	loc_C0EE8

loc_C0F8B:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+18Bj
		mov	dword ptr [esp], offset	aCbaseclientP_5	; " CBaseClient::ProcessClassInfo(done)"
		call	COM_TimestampedLog
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+0A4h]
		mov	ebx, eax

loc_C0FA7:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+305j
					; CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+31Ej ...
		cmp	[ebp+var_19], 0
		jz	short loc_C0FD2
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C0FBF
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_C0FD2

loc_C0FBF:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+284j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_C10A1

loc_C0FD2:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+27Bj
					; CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+28Dj ...
		mov	edi, [ebp+var_3C]
		test	edi, edi
		jz	short loc_C1008
		mov	edx, [ebp+var_44]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_48]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_3C]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C1008:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+2A7j
		add	esp, 6Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C1018:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+19Ej
					; CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+1CFj
		mov	edx, dword ptr [ebp+arg]
		mov	dword ptr [esp+4], offset aProcessclass_0 ; "ProcessClassInfo: invalid class index ("...
		mov	dword ptr [esp], 1 ; char
		mov	[esp+8], edx	; arg
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		xor	ebx, ebx
		jmp	loc_C0FA7
; ---------------------------------------------------------------------------
		align 10h

loc_C1040:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+DEj
		mov	dword ptr [esp], offset	aCanTCreateClas	; "Can't create class tables.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	ebx, ebx
		jmp	loc_C0FA7
; ---------------------------------------------------------------------------

loc_C1053:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+C5j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessclassin	; "ProcessClassInfo"
		jz	short loc_C108D
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessclassin ; "ProcessClassInfo"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C108D:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+32Ej
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C0DFB
; ---------------------------------------------------------------------------

loc_C10A1:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+29Cj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_C10D0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C10BF:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+3A5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_C0FD2
; ---------------------------------------------------------------------------

loc_C10D0:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+380j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_C10BF
; ---------------------------------------------------------------------------

loc_C10D7:				; CODE XREF: CBaseClientState::ProcessClassInfo(SVC_ClassInfo *)+17Dj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+420Ch]
		mov	dword ptr [esp+4], offset aProcessclass_1 ; "ProcessClassInfo: can't allocate %d C_S"...
		mov	dword ptr [esp], 1 ; char
		mov	[esp+8], eax	; arg
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		xor	ebx, ebx
		jmp	loc_C0FA7
_ZN16CBaseClientState16ProcessClassInfoEP13SVC_ClassInfo endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C1101:				; CODE XREF: .text:000C114Cj
		mov	esi, [ebp-3Ch]
		test	esi, esi
		jz	short loc_C1137
		mov	edx, [ebp-44h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-48h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-3Ch]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C1137:				; CODE XREF: .text:000C1106j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C1101
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::CBaseClientState(void)
_ZN16CBaseClientStateC2Ev proc near	; CODE XREF: CClientState::CClientState(void)+Fp
					; CHLTVClientState::CHLTVClientState(void)+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV16CBaseClientState+8)
		lea	eax, [ebx+128h]
		mov	dword ptr [ebx+4], (offset _ZTV16CBaseClientState+0D4h)
		mov	dword ptr [ebx+8], (offset _ZTV16CBaseClientState+0E8h)
		mov	[esp], eax
		call	_ZN10CUtlStringC2Ev ; CUtlString::CUtlString(void)
		lea	eax, [ebx+158h]
		mov	[esp], eax
		call	_ZN14CClockDriftMgrC2Ev	; CClockDriftMgr::CClockDriftMgr(void)
		fldz
		mov	byte ptr [ebx+24h], 0
		fstp	qword ptr [ebx+18h]
		lea	eax, [ebx+208h]
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+4208h], 0
		mov	dword ptr [ebx+4A18h], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+13Ch], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+20h], 0
		mov	dword ptr [ebx+14Ch], 0
		mov	dword ptr [ebx+150h], 0
		mov	dword ptr [ebx+138h], 0
		mov	byte ptr [ebx+4A1Ch], 1
		mov	byte ptr [ebx+4A1Dh], 1
		mov	dword ptr [ebx+148h], 0
		mov	dword ptr [ebx+154h], 0
		mov	dword ptr [ebx+1A4h], 0
		mov	byte ptr [ebx+1A8h], 0
		mov	dword ptr [ebx+1ACh], 0
		mov	dword ptr [ebx+1B0h], 0
		mov	byte ptr [ebx+1B4h], 0
		mov	byte ptr [ebx+1DCh], 0
		mov	dword ptr [ebx+204h], 0
		mov	dword ptr [esp+8], 4000h ; n
		mov	dword ptr [esp+4], 0 ; c
		mov	[esp], eax	; s
		call	memset
		mov	byte ptr [ebx+4214h], 0
		mov	dword ptr [ebx+420Ch], 0
		mov	dword ptr [ebx+4210h], 0
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN16CBaseClientStateC2Ev endp

; ---------------------------------------------------------------------------

loc_C1289:				; CODE XREF: .text:000C12ACj
					; .text:000C12DAj
		mov	dword ptr [ebx+8], (offset _ZTV18INetMessageHandler+8)
		mov	dword ptr [ebx+4], (offset _ZTV28IConnectionlessPacketHandler+8)
		mov	dword ptr [ebx], (offset _ZTV18INetChannelHandler+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		cmp	dword ptr [ebx+130h], 0
		js	short loc_C1289
		mov	edx, [ebx+128h]
		test	edx, edx
		jz	short loc_C12D0
		mov	[ebp-0Ch], eax
		mov	[esp], edx
		call	free
		mov	dword ptr [ebx+128h], 0
		mov	eax, [ebp-0Ch]

loc_C12D0:				; CODE XREF: .text:000C12B6j
		mov	dword ptr [ebx+12Ch], 0
		jmp	short loc_C1289
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::PrepareSteamConnectResponse(unsigned long long, bool, netadr_s  const&, bf_write &)
_ZN16CBaseClientState27PrepareSteamConnectResponseEybRK8netadr_sR8bf_write proc	near
					; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+2AAp

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_10]
		mov	eax, [ebx]
		mov	[ebp+var_14], eax
		mov	eax, [ebx+4]
		mov	[ebp+var_10], eax
		mov	eax, [ebx+8]
		mov	[esp], ebx
		mov	[ebp+var_C], eax
		call	_ZNK8netadr_s7GetTypeEv	; netadr_s::GetType(void)
		cmp	eax, 1
		jz	short loc_C1314
		mov	[esp], ebx
		call	_ZNK8netadr_s11IsLocalhostEv ; netadr_s::IsLocalhost(void)
		test	al, al
		jz	short loc_C132F

loc_C1314:				; CODE XREF: CBaseClientState::PrepareSteamConnectResponse(ulong long,bool,netadr_s  const&,bf_write &)+26j
		mov	dword ptr [esp], offset	net_local_adr
		call	_ZNK8netadr_s18GetIPHostByteOrderEv ; netadr_s::GetIPHostByteOrder(void)
		mov	[esp+4], eax
		lea	eax, [ebp+var_14]
		mov	[esp], eax
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)

loc_C132F:				; CODE XREF: CBaseClientState::PrepareSteamConnectResponse(ulong long,bool,netadr_s  const&,bf_write &)+32j
		add	esp, 24h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
_ZN16CBaseClientState27PrepareSteamConnectResponseEybRK8netadr_sR8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClientState__SendConnectPacket(int, int, char arg, int, int,	char)
_ZN16CBaseClientState17SendConnectPacketEiiyb proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

var_641		= byte ptr -641h
var_640		= dword	ptr -640h
var_63C		= dword	ptr -63Ch
var_62C		= byte ptr -62Ch
src		= byte ptr -140h
buf		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= byte ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_24]
		push	ebx
		lea	ebx, [ebp+src]
		sub	esp, 65Ch
		mov	edx, [ebp+arg_10]
		mov	dword ptr [esp], offset	aSendconnectpac	; "SendConnectPacket"
		mov	eax, [ebp+arg_C]
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_63C], edx
		movzx	edx, [ebp+arg_14]
		mov	[ebp+var_640], eax
		mov	[ebp+var_641], dl
		call	COM_TimestampedLog
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	[esp], edi
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		lea	eax, [esi+24h]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; int
		mov	[esp], ebx	; src
		call	_Z15NET_StringToAdrPKcP8netadr_s ; NET_StringToAdr(char	 const*,netadr_s *)
		test	al, al
		jz	loc_C1580
		mov	[esp], edi
		call	_ZNK8netadr_s7GetPortEv	; netadr_s::GetPort(void)
		test	ax, ax
		jz	loc_C1600

loc_C13EC:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+2D0j
		lea	eax, [ebp+var_62C]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		lea	ebx, [ebp+buf]
		mov	[esp+4], eax
		mov	dword ptr [esp+8], 4ECh
		mov	[esp], ebx
		call	_ZN8bf_writeC2EPvii ; bf_write::bf_write(void *,int,int)
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp], ebx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	dword ptr [esp+4], 6Bh
		mov	[esp], ebx
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	dword ptr [esp+4], 16h
		mov	[esp], ebx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	edx, dword ptr [ebp+arg]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	edx, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [esi+138h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+0ACh]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		test	ds:password+15h, 10h
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jz	short loc_C14E0

loc_C1496:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+1B2j
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	dword ptr [esp+4], offset gpszVersionString
		mov	[esp], ebx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		cmp	dword ptr [ebp+arg], 2
		jz	short loc_C14F8
		cmp	dword ptr [ebp+arg], 3
		jz	loc_C15C0
		mov	edx, dword ptr [ebp+arg]
		mov	dword ptr [esp], offset	aUnexepectedAut	; "Unexepected authentication protocol %i!"...
		mov	[esp+4], edx	; arg
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)

loc_C14D5:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+2B7j
		add	esp, 65Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C14E0:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+154j
		mov	eax, dword ptr ds:password+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx
		jmp	short loc_C1496
; ---------------------------------------------------------------------------
		align 8

loc_C14F8:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+176j
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+90h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)

loc_C150F:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+2B1j
		mov	eax, [ebp+var_640]
		mov	edx, [ebp+arg_4]
		fld	ds:net_time
		fstp	qword ptr [esi+18h]
		mov	[esi+14Ch], eax
		mov	eax, [ebp+var_30]
		mov	[esi+14h], edx
		mov	edx, [ebp+var_63C]
		add	eax, 7
		sar	eax, 3
		mov	[esi+150h], edx
		mov	[esp+10h], eax	; n
		mov	eax, [ebp+buf]
		mov	[esp+8], edi	; int
		mov	dword ptr [esp+18h], 0 ; char
		mov	dword ptr [esp+14h], 0 ; int
		mov	[esp+0Ch], eax	; buf
		mov	eax, [esi+0Ch]
		mov	dword ptr [esp], 0 ; int
		mov	[esp+4], eax	; int
		call	_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb ; NET_SendPacket(INetChannel *,int,netadr_s	 const&,uchar  const*,int,bf_write *,bool)
		add	esp, 65Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C1580:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+95j
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aBadServerAddre	; "Bad server address (%s)\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [esi]
		mov	[esp], esi
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset dword_1F1314
		call	dword ptr [eax+88h]
		add	esp, 65Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C15C0:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+17Cj
		movzx	eax, [ebp+var_641]
		mov	[esp+14h], ebx
		mov	edx, [ebp+var_63C]
		mov	[esp+10h], edi
		mov	[esp], esi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_640]
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_ZN16CBaseClientState27PrepareSteamConnectResponseEybRK8netadr_sR8bf_write ; CBaseClientState::PrepareSteamConnectResponse(ulong long,bool,netadr_s  const&,bf_write &)
		test	al, al
		jnz	loc_C150F
		jmp	loc_C14D5
; ---------------------------------------------------------------------------
		align 10h

loc_C1600:				; CODE XREF: CBaseClientState::SendConnectPacket(int,int,ulong long,bool)+A6j
		mov	dword ptr [esp+4], 6987h
		mov	[esp], edi
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		jmp	loc_C13EC
_ZN16CBaseClientState17SendConnectPacketEiiyb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::GetStringTable(char	 const*)const
_ZNK16CBaseClientState14GetStringTableEPKc proc	near
					; CODE XREF: CHLTVClientState::InstallStringTableCallback(char	const*)+1Cp
					; CHLTVClientState::HookClientStringTable(char	const*)+1Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4A18h]
		test	eax, eax
		jz	short loc_C1640
		mov	ecx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [ecx+10h]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_C1640:				; CODE XREF: CBaseClientState::GetStringTable(char  const*)+Ej
		xor	eax, eax
		pop	ebp
		retn
_ZNK16CBaseClientState14GetStringTableEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::SendStringCmd(char	const*)
_ZN16CBaseClientState13SendStringCmdEPKc proc near

var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
var_414		= dword	ptr -414h
var_40C		= dword	ptr -40Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 438h
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+10h]
		test	eax, eax
		jz	short locret_C16AC
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_418], 1
		lea	ecx, [ebp+var_41C]
		mov	[ebp+var_414], 0
		mov	[ebp+var_41C], (offset _ZTV13NET_StringCmd+8)
		mov	[ebp+var_40C], edx
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+0A4h]

locret_C16AC:				; CODE XREF: CBaseClientState::SendStringCmd(char  const*)+11j
		leave
		retn
_ZN16CBaseClientState13SendStringCmdEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::InternalProcessStringCmd(NET_StringCmd *, bool)
_ZN16CBaseClientState24InternalProcessStringCmdEP13NET_StringCmdb proc near
					; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+CBp

var_51C		= byte ptr -51Ch
var_510		= dword	ptr -510h
var_108		= dword	ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 538h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, [ebp+arg_4]
		movzx	edx, [ebp+arg_8]
		cmp	byte ptr [eax+4A1Ch], 0
		jz	short loc_C16DB
		cmp	dword ptr ds:sv+4, 1
		jle	short loc_C16F8

loc_C16DB:				; CODE XREF: CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+20j
					; CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+A0j
		mov	eax, [ebx+10h]
		mov	[esp], eax	; src
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)

loc_C16E6:				; CODE XREF: CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+82j
					; CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+B0j
		mov	ebx, [ebp+var_8]
		mov	eax, 1
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_C16F8:				; CODE XREF: CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+29j
		lea	esi, [ebp+var_510]
		mov	[ebp+var_51C], dl
		mov	[esp], esi
		call	_ZN8CCommandC2Ev ; CCommand::CCommand(void)
		mov	dword ptr [esp+8], 0 ; int
		mov	eax, [ebx+10h]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; src
		call	_ZN8CCommand8TokenizeEPKcP14characterset_t ; CCommand::Tokenize(char  const*,characterset_t *)
		mov	eax, [ebp+var_510]
		movzx	edx, [ebp+var_51C]
		test	eax, eax
		jle	short loc_C16E6
		test	dl, dl
		jz	short loc_C1752
		mov	eax, [ebp+var_108]
		mov	dword ptr [esp+4], (offset aCbaseclientCon+0Dh)
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_C16DB

loc_C1752:				; CODE XREF: CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+86j
		mov	dword ptr [esp], 2
		call	_Z31Cbuf_HasRoomForExecutionMarkersi ; Cbuf_HasRoomForExecutionMarkers(int)
		test	al, al
		jz	short loc_C16E6
		mov	dword ptr [esp+8], 62h ; int
		mov	eax, [ebx+10h]
		mov	dword ptr [esp], 61h ; int
		mov	[esp+4], eax	; src
		call	_Z23Cbuf_AddTextWithMarkers19ECmdExecutionMarkerPKcS_ ;	Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)
		mov	ebx, [ebp+var_8]
		mov	eax, 1
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN16CBaseClientState24InternalProcessStringCmdEP13NET_StringCmdb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessStringCmd(NET_StringCmd *)
_ZThn8_N16CBaseClientState16ProcessStringCmdEP13NET_StringCmd proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState16ProcessStringCmdEP13NET_StringCmd ; CBaseClientState::ProcessStringCmd(NET_StringCmd *)
_ZThn8_N16CBaseClientState16ProcessStringCmdEP13NET_StringCmd endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessStringCmd(NET_StringCmd *)
_ZN16CBaseClientState16ProcessStringCmdEP13NET_StringCmd proc near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessStringCmd(NET_StringCmd *)+5j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	short loc_C182F
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aProcessstringc ; "ProcessStringCmd"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState16ProcessStringCmdEP13NET_StringCmdE6tm_fmt ;	CBaseClientState::ProcessStringCmd(NET_StringCmd *)::tm_fmt
		mov	dword ptr [esp+1Ch], 3E8h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	esi, [ebp+var_28]
		mov	edi, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch

loc_C182F:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+24j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C1856
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_2C], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_2C], eax
		jz	loc_C1908

loc_C1856:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+9Ej
					; CBaseClientState::ProcessStringCmd(NET_StringCmd *)+1B1j
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN16CBaseClientState24InternalProcessStringCmdEP13NET_StringCmdb ; CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)
		cmp	[ebp+var_19], 0
		mov	byte ptr [ebp+var_2C], al
		jz	short loc_C189D
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C188B
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_C189D

loc_C188B:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+E0j
		mov	eax, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_30], eax
		call	ThreadGetCurrentId
		cmp	[ebp+var_30], eax
		jz	short loc_C18D8

loc_C189D:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+D7j
					; CBaseClientState::ProcessStringCmd(NET_StringCmd *)+E9j ...
		test	ebx, ebx
		jz	short loc_C18C7
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]

loc_C18C7:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+FFj
		movzx	eax, byte ptr [ebp+var_2C]
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C18D8:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+FBj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_C1960
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C18F6:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+1C5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_C189D
; ---------------------------------------------------------------------------
		align 8

loc_C1908:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+B0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessstringc	; "ProcessStringCmd"
		jz	short loc_C1942
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessstringc ; "ProcessStringCmd"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C1942:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+173j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C1856
; ---------------------------------------------------------------------------
		align 10h

loc_C1960:				; CODE XREF: CBaseClientState::ProcessStringCmd(NET_StringCmd *)+147j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_C18F6
_ZN16CBaseClientState16ProcessStringCmdEP13NET_StringCmd endp

; ---------------------------------------------------------------------------

loc_C1967:				; CODE XREF: .text:000C19B0j
		test	ebx, ebx
		jz	short loc_C1997
		mov	[ebp-34h], eax
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], esi
		mov	[esp+8], edi
		mov	[esp], ebx
		call	dword ptr [ebx+54h]
		mov	eax, [ebp-34h]

loc_C1997:				; CODE XREF: .text:000C1969j
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	[ebp-2Ch], eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		mov	eax, [ebp-2Ch]
		jmp	short loc_C1967
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClientState__ReadPacketEntities(int,	char arg)
_ZN16CBaseClientState18ReadPacketEntitiesER15CEntityReadInfo proc near
					; CODE XREF: CHLTVClientState::ProcessPacketEntities(SVC_PacketEntities	*)+194p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	ebx, dword ptr [ebp+arg]
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		test	eax, eax
		jz	short loc_C1A6D
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aReadpacketenti ; "ReadPacketEntities"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState18ReadPacketEntitiesER15CEntityReadInfoE6tm_fmt ; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)::tm_fmt
		mov	dword ptr [esp+1Ch], 5B2h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_3C], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_40], eax
		mov	[ebp+var_38], edx

loc_C1A6D:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+39j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C1A92
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_C1E30

loc_C1A92:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+BDj
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+4B9j
		mov	edx, [ebx+8]
		test	edx, edx
		jz	short loc_C1AAB
		mov	ecx, [ebx+14h]
		add	ecx, 1
		cmp	ecx, 7FFh
		jle	loc_C1DAE

loc_C1AAB:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+D7j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+41Dj	...
		mov	dword ptr [ebx+14h], 270Fh

loc_C1AB2:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+464j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+4EEj	...
		mov	eax, [ebx+10h]

loc_C1AB5:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+232j
		cmp	eax, 3
		jg	loc_C1C3C
		mov	edx, [ebx+20h]
		xor	eax, eax
		sub	edx, 1
		mov	[ebx+20h], edx
		not	edx
		shr	edx, 1Fh
		test	edx, edx
		mov	[ebx+2Ch], dl
		jz	loc_C1BB8
		mov	eax, [ebx+24h]
		mov	dword ptr [ebx+28h], 0
		mov	ecx, [ebx+1Ch]
		mov	edx, [eax+8]
		mov	edi, [eax+0Ch]
		mov	[ebp+var_34], ecx
		mov	ecx, edx
		sub	ecx, edi
		cmp	ecx, 5
		jle	loc_C1D7E
		lea	edx, [edi+6]
		mov	ecx, edi
		and	ecx, 1Fh
		mov	[eax+0Ch], edx
		mov	[ebp+var_2C], ecx
		lea	edx, [edi+5]
		mov	ecx, 20h
		sub	ecx, [ebp+var_2C]
		sar	edx, 5
		sar	edi, 5
		mov	[ebp+var_30], ecx
		mov	ecx, [eax]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	edx, cl
		mov	ecx, [eax]
		mov	edi, [ecx+edi*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edi, cl
		or	edx, edi
		mov	ecx, edx
		and	ecx, 3Fh
		and	edx, 3
		jnz	loc_C1D90
		mov	eax, ecx
		shr	eax, 2

loc_C1B49:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+3CBj
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+3DCj
		mov	edx, [ebp+var_34]
		mov	edi, [ebx+24h]
		lea	eax, [edx+eax+1]
		mov	[ebx+18h], eax
		mov	[ebx+1Ch], eax
		mov	ecx, [edi+0Ch]
		mov	eax, [edi+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_C1D3B
		mov	eax, [edi]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		test	al, 1
		mov	[edi+0Ch], ecx
		jz	loc_C1D48
		or	dword ptr [ebx+28h], 1
		mov	edi, [ebx+24h]
		mov	ecx, [edi+0Ch]
		mov	eax, [edi+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_C1DA1
		mov	eax, [edi]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		test	al, 1
		mov	[edi+0Ch], ecx
		jz	short loc_C1BB4
		or	dword ptr [ebx+28h], 2

loc_C1BB4:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+1EEj
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+3ABj	...
		movzx	eax, byte ptr [ebx+2Ch]

loc_C1BB8:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+113j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+3B9j
		test	al, al
		mov	dword ptr [ebx+10h], 3
		jz	short loc_C1C00

loc_C1BC3:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+23Ej
		mov	ecx, [ebx+14h]
		cmp	[ebx+18h], ecx
		jg	short loc_C1C00
		mov	eax, [ebx+28h]
		test	al, 4
		jz	loc_C1D00
		mov	dword ptr [ebx+10h], 0
		mov	eax, [esi]
		mov	[esp+4], ebx	; arg
		mov	[esp], esi
		call	dword ptr [eax+0B0h]

loc_C1BEC:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+265j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+35Aj	...
		mov	eax, [ebx+10h]
		cmp	eax, 3
		jnz	loc_C1AB5
		movzx	eax, byte ptr [ebx+2Ch]
		test	al, al
		jnz	short loc_C1BC3

loc_C1C00:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+201j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+209j
		mov	eax, [ebx+8]
		test	eax, eax
		jz	short loc_C1C30
		mov	edx, [eax+4]
		cmp	[ebx+14h], edx
		jg	short loc_C1C30
		mov	dword ptr [ebx+10h], 3
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+0BCh]
		jmp	short loc_C1BEC
; ---------------------------------------------------------------------------
		align 10h

loc_C1C30:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+245j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+24Dj
		mov	dword ptr [ebx+10h], 4
		mov	eax, 4

loc_C1C3C:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+F8j
		cmp	byte ptr [ebx+4], 0
		jz	short loc_C1C4B
		cmp	eax, 4
		jz	loc_C1EC0

loc_C1C4B:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+280j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+50Fj
		mov	eax, [ebx+24h]
		cmp	byte ptr [eax+10h], 0
		jnz	loc_C1E7E

loc_C1C58:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+4CAj
		cmp	byte ptr [ebx+4], 0
		jnz	short loc_C1C66
		fldz
		fstp	qword ptr [esi+140h]

loc_C1C66:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+29Cj
		cmp	[ebp+var_19], 0
		jz	short loc_C1C7F
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C1CBD
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jnz	short loc_C1CBD

loc_C1C7F:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+2AAj
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+30Aj	...
		mov	edx, [ebp+var_38]
		test	edx, edx
		jz	short loc_C1CB5
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_38]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C1CB5:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+2C4j
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C1CBD:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+2B3j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+2BDj
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jnz	short loc_C1C7F
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_C1ED4
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C1CEE:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+519j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_C1C7F
; ---------------------------------------------------------------------------
		align 10h

loc_C1D00:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+210j
		test	al, 1
		jz	short loc_C1D20
		mov	dword ptr [ebx+10h], 1
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+0B4h]
		jmp	loc_C1BEC
; ---------------------------------------------------------------------------
		align 10h

loc_C1D20:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+342j
		mov	dword ptr [ebx+10h], 2
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+0B8h]
		jmp	loc_C1BEC
; ---------------------------------------------------------------------------

loc_C1D3B:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+1A3j
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		nop
		lea	esi, [esi+0]

loc_C1D48:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+1BDj
		mov	edi, [ebx+24h]
		mov	ecx, [edi+0Ch]
		mov	eax, [edi+8]
		sub	eax, ecx
		test	eax, eax
		jle	short loc_C1DA1
		mov	eax, [edi]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		test	al, 1
		mov	[edi+0Ch], ecx
		jz	loc_C1BB4
		or	dword ptr [ebx+28h], 4
		movzx	eax, byte ptr [ebx+2Ch]
		jmp	loc_C1BB8
; ---------------------------------------------------------------------------

loc_C1D7E:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+136j
		mov	[eax+0Ch], edx
		mov	[esp], eax
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_C1B49
; ---------------------------------------------------------------------------

loc_C1D90:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+17Ej
		mov	[esp+4], edx
		mov	[esp], eax
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_C1B49
; ---------------------------------------------------------------------------

loc_C1DA1:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+1D4j
					; CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+395j
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_C1BB4
; ---------------------------------------------------------------------------

loc_C1DAE:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+E5j
		mov	eax, ecx
		sar	eax, 5
		lea	edi, [edx+eax*4+0Ch]
		mov	edx, ecx
		mov	[ebp+var_30], eax
		mov	ecx, [edi]
		and	edx, 1Fh
		and	ecx, dword ptr _ZZ15GetStartBitMaskiE11g_StartMask[edx*4] ; GetStartBitMask(int)::g_StartMask
		jnz	short loc_C1DFC
		mov	edx, [ebp+var_30]
		add	eax, 1
		mov	ecx, [edi+4]
		neg	edx
		cmp	eax, 40h
		lea	edx, [edi+edx*4]
		jnz	short loc_C1DF8
		jmp	loc_C1AAB
; ---------------------------------------------------------------------------
		align 8

loc_C1DE8:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+43Aj
		mov	ecx, [edx+eax*4+4]
		add	eax, 1
		cmp	eax, 40h
		jz	loc_C1AAB

loc_C1DF8:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+41Bj
		test	ecx, ecx
		jz	short loc_C1DE8

loc_C1DFC:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+408j
		mov	edx, eax
		mov	eax, ecx
		shl	edx, 5
		and	eax, 0FFh
		jnz	loc_C1EA2
		movzx	edi, ch
		test	edi, edi
		jz	short loc_C1E8F
		add	edx, 8
		add	edx, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[edi*4] ; FirstBitInWord(uint,int)::firstBitLUT
		test	edx, edx
		mov	[ebx+14h], edx
		jns	loc_C1AB2
		jmp	loc_C1AAB
; ---------------------------------------------------------------------------
		align 10h

loc_C1E30:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aReadpacketenti	; "ReadPacketEntities"
		jz	short loc_C1E6A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aReadpacketenti ; "ReadPacketEntities"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C1E6A:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+47Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C1A92
; ---------------------------------------------------------------------------

loc_C1E7E:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+292j
		mov	dword ptr [esp], offset	aCl_parsepacket	; "CL_ParsePacketEntities:  buffer read	ov"...
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)
		jmp	loc_C1C58
; ---------------------------------------------------------------------------

loc_C1E8F:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+453j
		mov	eax, ecx
		shr	eax, 10h
		and	eax, 0FFh
		jz	loc_C1F2D
		add	edx, 10h

loc_C1EA2:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+448j
		add	edx, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[eax*4] ; FirstBitInWord(uint,int)::firstBitLUT
		test	edx, edx
		mov	[ebx+14h], edx
		jns	loc_C1AB2
		jmp	loc_C1AAB
; ---------------------------------------------------------------------------
		align 10h

loc_C1EC0:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+285j
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+0C0h]
		jmp	loc_C1C4B
; ---------------------------------------------------------------------------

loc_C1ED4:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+31Bj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_C1CEE
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C1EE0:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+56Bj
		mov	eax, [ebp+var_38]
		test	eax, eax
		jz	short loc_C1F16
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_38]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C1F16:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+525j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp+var_19]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C1EE0
; ---------------------------------------------------------------------------

loc_C1F2D:				; CODE XREF: CBaseClientState::ReadPacketEntities(CEntityReadInfo &)+4D9j
		shr	ecx, 18h
		test	ecx, ecx
		jz	loc_C1AAB
		add	edx, 18h
		add	edx, dword ptr _ZZ14FirstBitInWordjiE11firstBitLUT[ecx*4] ; FirstBitInWord(uint,int)::firstBitLUT
		test	edx, edx
		mov	[ebx+14h], edx
		jns	loc_C1AB2
		jmp	loc_C1AAB
_ZN16CBaseClientState18ReadPacketEntitiesER15CEntityReadInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::FindClientClass(char  const*)
_ZN16CBaseClientState15FindClientClassEPKc proc	near
					; CODE XREF: CBaseClientState::LinkClasses(void)+75p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_C1FA2
		call	_Z23ClientDLL_GetAllClassesv ; ClientDLL_GetAllClasses(void)
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_C1F8F
		lea	esi, [esi+0]
		jmp	short loc_C1FA2
; ---------------------------------------------------------------------------
		align 8

loc_C1F88:				; CODE XREF: CBaseClientState::FindClientClass(char  const*)+40j
		mov	ebx, [ebx+10h]
		test	ebx, ebx
		jz	short loc_C1FA2

loc_C1F8F:				; CODE XREF: CBaseClientState::FindClientClass(char  const*)+1Aj
		mov	[esp+4], esi
		mov	eax, [ebx+8]
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_C1F88

loc_C1FA2:				; CODE XREF: CBaseClientState::FindClientClass(char  const*)+Fj
					; CBaseClientState::FindClientClass(char  const*)+20j ...
		add	esp, 10h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN16CBaseClientState15FindClientClassEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::LinkClasses(void)
_ZN16CBaseClientState11LinkClassesEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_0]
		mov	edx, [edi+420Ch]
		test	edx, edx
		jle	loc_C2055
		xor	esi, esi
		jmp	short loc_C200D
; ---------------------------------------------------------------------------
		align 8

loc_C1FD8:				; CODE XREF: CBaseClientState::LinkClasses(void)+7Ej
		mov	eax, [eax+0Ch]
		mov	ecx, [ebx+8]
		mov	edx, [eax+0Ch]
		mov	[esp], ecx
		mov	[ebp+var_1C], ecx
		mov	[esp+4], edx
		mov	[ebp+var_20], edx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		mov	edx, [ebp+var_20]
		test	eax, eax
		mov	ecx, [ebp+var_1C]
		jnz	short loc_C2060
		mov	eax, [ebx]
		mov	[eax+14h], esi

loc_C2002:				; CODE XREF: CBaseClientState::LinkClasses(void)+6Dj
		add	esi, 1
		cmp	[edi+420Ch], esi
		jle	short loc_C2050

loc_C200D:				; CODE XREF: CBaseClientState::LinkClasses(void)+21j
					; CBaseClientState::LinkClasses(void)+9Cj
		mov	ebx, esi
		shl	ebx, 4
		add	ebx, [edi+4208h]
		mov	eax, [ebx+8]
		test	eax, eax
		jz	short loc_C2002
		mov	eax, [ebx+4]
		mov	[esp], eax
		call	_ZN16CBaseClientState15FindClientClassEPKc ; CBaseClientState::FindClientClass(char  const*)
		test	eax, eax
		mov	[ebx], eax
		jnz	short loc_C1FD8
		mov	eax, [ebx+4]
		add	esi, 1
		mov	dword ptr [esp], offset	aClientMissingD	; "Client missing DT class %s\n"
		mov	[esp+4], eax
		call	Msg
		cmp	[edi+420Ch], esi
		jg	short loc_C200D
		db	66h
		nop

loc_C2050:				; CODE XREF: CBaseClientState::LinkClasses(void)+5Bj
		mov	eax, 1

loc_C2055:				; CODE XREF: CBaseClientState::LinkClasses(void)+19j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C2060:				; CODE XREF: CBaseClientState::LinkClasses(void)+4Bj
		mov	[esp+10h], edx
		mov	[esp+0Ch], ecx
		mov	eax, [ebx+4]
		mov	dword ptr [esp+4], offset aCl_parseclassi ; "CL_ParseClassInfo_EndClasses: server an"...
		mov	dword ptr [esp], 1 ; char
		mov	[esp+8], eax	; arg
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CBaseClientState11LinkClassesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::GetEntityBaseline(int, int)
_ZN16CBaseClientState17GetEntityBaselineEii proc near
					; CODE XREF: CHLTVClientState::CopyNewEntity(CEntityReadInfo &,int,int)+251p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		shl	eax, 0Bh
		add	eax, [ebp+arg_8]
		pop	ebp
		mov	eax, [edx+eax*4+208h]
		retn
_ZN16CBaseClientState17GetEntityBaselineEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::FreeEntityBaselines(void)
_ZN16CBaseClientState19FreeEntityBaselinesEv proc near
					; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+286p
					; CBaseClientState::ForceFullUpdate(void)+16p ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_1C], 0
		mov	edi, [ebp+arg_0]

loc_C20C3:				; CODE XREF: CBaseClientState::FreeEntityBaselines(void)+57j
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_C20C8:				; CODE XREF: CBaseClientState::FreeEntityBaselines(void)+47j
		mov	esi, [edi+ebx*4+208h]
		test	esi, esi
		jz	short loc_C20EE
		mov	[esp], esi
		call	_ZN12PackedEntityD2Ev ;	PackedEntity::~PackedEntity()
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	dword ptr [edi+ebx*4+208h], 0

loc_C20EE:				; CODE XREF: CBaseClientState::FreeEntityBaselines(void)+21j
		add	ebx, 1
		cmp	ebx, 800h
		jnz	short loc_C20C8
		add	[ebp+var_1C], 1
		add	edi, 2000h
		cmp	[ebp+var_1C], 2
		jnz	short loc_C20C3
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CBaseClientState19FreeEntityBaselinesEv endp

; ---------------------------------------------------------------------------
		jmp	short _ZThn8_N16CBaseClientState17ProcessServerInfoEP14SVC_ServerInfo ;	`non-virtual thunk to'CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)
_ZThn8_N16CBaseClientState17ProcessServerInfoEP14SVC_ServerInfo	proc near
					; CODE XREF: .text:000C2111j
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN16CBaseClientState17ProcessServerInfoEP14SVC_ServerInfo ; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)
_ZThn8_N16CBaseClientState17ProcessServerInfoEP14SVC_ServerInfo	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)
_ZN16CBaseClientState17ProcessServerInfoEP14SVC_ServerInfo proc	near
					; CODE XREF: `non-virtual thunk	to'CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)+5j
					; CHLTVClientState::ProcessServerInfo(SVC_ServerInfo *)+48p
					; DATA XREF: ...

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_21		= dword	ptr -21h
var_1D		= dword	ptr -1Dh
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 6Ch
		mov	[ebp+var_38], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_34], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		test	eax, eax
		jz	short loc_C21D2
		lea	edx, [ebp+var_38]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aProcessserveri ; "ProcessServerInfo"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState17ProcessServerInfoEP14SVC_ServerInfoE6tm_fmt	; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)::tm_fmt
		mov	dword ptr [esp+1Ch], 459h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_38]
		mov	edx, [ebp+var_34]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx

loc_C21D2:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+31j
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C21F7
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_C2308

loc_C21F7:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+B2j
					; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)+221j
		mov	dword ptr [esp], offset	aCbaseclientP_6	; " CBaseClient::ProcessServerInfo"
		call	COM_TimestampedLog
		mov	eax, [esi+10h]
		cmp	eax, 16h
		jz	loc_C2290
		mov	dword ptr [esp+8], 16h
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aServerReturned	; "Server returned version %i, expected	%i"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_C2227:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+1CFj
					; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)+270j ...
		xor	edi, edi

loc_C2229:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+311j
					; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)+58Fj
		cmp	[ebp+var_19], 0
		jz	short loc_C2255
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C2242
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_C2255

loc_C2242:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+106j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_C2360

loc_C2255:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+FDj
					; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)+110j ...
		test	ebx, ebx
		jz	short loc_C2285
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_C2285:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+127j
		add	esp, 6Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C2290:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+D9j
		mov	eax, [esi+14h]
		mov	edx, [ebp+arg_0]
		mov	[edx+148h], eax
		mov	eax, [esi+34h]
		mov	[edx+204h], eax
		mov	eax, [esi+38h]
		mov	[edx+420Ch], eax
		mov	[esp], eax
		call	_Z6Q_log2i	; Q_log2(int)
		mov	edx, [ebp+arg_0]
		add	eax, 1
		mov	[edx+4210h], eax
		mov	eax, [edx+204h]
		lea	edx, [eax-1]
		cmp	edx, 0FEh
		ja	loc_C2390
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+420Ch]
		lea	edx, [eax-1]
		cmp	edx, 1FFh
		jbe	loc_C23B0
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aBadMaxclassesU	; "Bad maxclasses (%u) from server.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_C2227
; ---------------------------------------------------------------------------
		align 8

loc_C2308:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+C1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aProcessserveri	; "ProcessServerInfo"
		jz	short loc_C2342
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aProcessserveri ; "ProcessServerInfo"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C2342:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+1E3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C21F7
; ---------------------------------------------------------------------------
		align 10h

loc_C2360:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+11Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_C23A8
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C237E:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+27Dj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_C2255
; ---------------------------------------------------------------------------
		align 10h

loc_C2390:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+1A1j
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aBadMaxclientsU	; "Bad maxclients (%u) from server.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_C2227
; ---------------------------------------------------------------------------
		align 4

loc_C23A8:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+23Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_C237E
; ---------------------------------------------------------------------------
		align 10h

loc_C23B0:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+1B9j
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN16CBaseClientState19FreeEntityBaselinesEv ; CBaseClientState::FreeEntityBaselines(void)
		mov	edx, ds:g_GameEventManager
		mov	dword ptr [esp+4], 1
		mov	[esp], edx
		call	_ZN17CGameEventManager25HasClientListenersChangedEb ; CGameEventManager::HasClientListenersChanged(bool)
		mov	eax, [esi+3Ch]
		mov	edx, [ebp+arg_0]
		mov	[edx+1B0h], eax
		add	eax, 1
		mov	[edx+1ACh], eax
		fld	dword ptr [esi+40h]
		fld	ds:dbl_1EBD18
		fcomip	st, st(1)
		ja	short loc_C2401
		fld	ds:dbl_1EBD20
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_C2430

loc_C2401:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+2C1j
		fld	ds:dbl_1EBD20
		mov	dword ptr [esp], offset	aInterval_per_t	; "Interval_per_tick %f	out of range [%f t"...
		fstp	qword ptr [esp+14h]
		fld	ds:dbl_1EBD18
		fstp	qword ptr [esp+0Ch]
		fstp	qword ptr [esp+4]
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_C2227
; ---------------------------------------------------------------------------
		align 10h

loc_C2430:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+2CFj
		fstp	st
		mov	eax, [esi+44h]
		mov	[esp], eax
		call	_Z22COM_CheckGameDirectoryPKc ;	COM_CheckGameDirectory(char  const*)
		xor	edi, edi
		test	al, al
		jz	loc_C2229
		mov	dword ptr [esp+10h], (offset asc_20E578+4)
		mov	eax, [esi+48h]
		mov	dword ptr [esp+8], offset aMapsSS_bsp ;	"maps/%s%s.bsp"
		mov	dword ptr [esp+4], 28h ; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+arg_0]
		add	eax, 1B4h
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	dword ptr [esp+8], 28h ; n
		mov	eax, [esi+48h]
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_0]
		add	eax, 1DCh
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		lea	edi, [ebp+var_2C]
		mov	dword ptr [esp+4], offset aSv_skyname ;	"sv_skyname"
		mov	[esp], edi
		call	_ZN9ConVarRefC2EPKc ; ConVarRef::ConVarRef(char	 const*)
		mov	[esp], edi
		call	_ZNK9ConVarRef7IsValidEv ; ConVarRef::IsValid(void)
		test	al, al
		jz	short loc_C24C5
		mov	eax, [ebp+var_2C]
		mov	ecx, [esi+4Ch]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx]

loc_C24C5:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+382j
		mov	eax, [ebp+arg_0]
		mov	edx, ds:g_GameEventManager
		mov	dword ptr [eax+1A4h], 0FFFFFFFFh
		mov	eax, [edx]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aServer_spawn	; "server_spawn"
		mov	[esp], edx
		call	dword ptr [eax+1Ch]
		test	eax, eax
		mov	edi, eax
		jz	loc_C26AE
		mov	edx, [esi+50h]
		mov	eax, [eax]
		mov	dword ptr [esp+4], offset aHostname ; "hostname"
		mov	[esp], edi
		mov	[esp+8], edx
		call	dword ptr [eax+34h]
		mov	eax, [edi]
		mov	edx, [ebp+arg_0]
		mov	eax, [eax+34h]
		mov	[ebp+var_44], eax
		mov	eax, [edx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	[esp+8], eax
		mov	dword ptr [esp+4], offset aAddress ; "address"
		mov	[esp], edi
		call	[ebp+var_44]
		mov	eax, [edi]
		mov	edx, [ebp+arg_0]
		mov	eax, [eax+2Ch]
		mov	[ebp+var_44], eax
		mov	eax, [edx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	[esp], eax
		call	_ZNK8netadr_s21GetIPNetworkByteOrderEv ; netadr_s::GetIPNetworkByteOrder(void)
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aHostGameServ_0+11h)
		mov	[esp], edi
		call	[ebp+var_44]
		mov	eax, [edi]
		mov	edx, [ebp+arg_0]
		mov	eax, [eax+2Ch]
		mov	[ebp+var_44], eax
		mov	eax, [edx+10h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	[esp], eax
		call	_ZNK8netadr_s7GetPortEv	; netadr_s::GetPort(void)
		movzx	eax, ax
		mov	dword ptr [esp+4], (offset aHostSourcetvPo+0Eh)
		mov	[esp+8], eax
		mov	[esp], edi
		call	[ebp+var_44]
		mov	edx, [esi+44h]
		mov	eax, [edi]
		mov	dword ptr [esp+4], offset aGame	; "game"
		mov	[esp], edi
		mov	[esp+8], edx
		call	dword ptr [eax+34h]
		mov	edx, [esi+48h]
		mov	eax, [edi]
		mov	dword ptr [esp+4], offset aMapname ; "mapname"
		mov	[esp], edi
		mov	[esp+8], edx
		call	dword ptr [eax+34h]
		mov	edx, [esi+34h]
		mov	eax, [edi]
		mov	dword ptr [esp+4], offset aMaxplayers ;	"maxplayers"
		mov	[esp], edi
		mov	[esp+8], edx
		call	dword ptr [eax+2Ch]
		mov	eax, [edi]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aPassword ; "password"
		mov	[esp], edi
		call	dword ptr [eax+2Ch]
		mov	eax, [edi]
		mov	eax, [eax+34h]
		mov	[ebp+var_44], eax
		movsx	eax, byte ptr [esi+1Bh]
		mov	[esp], eax	; c
		call	toupper
		mov	dword ptr [esp], (offset a_C+1)	; format
		mov	[esp+4], eax	; arg
		call	_Z2vaPKcz	; va(char  const*,...)
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aSetpos+4)
		mov	[esp], edi
		call	[ebp+var_44]
		movzx	eax, byte ptr [esi+18h]
		mov	edx, [edi]
		mov	dword ptr [esp+4], (offset aMem_max_heap_0+11h)
		mov	[esp], edi
		mov	[esp+8], eax
		call	dword ptr [edx+2Ch]
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+150h]
		mov	ecx, [eax+14Ch]
		mov	eax, edx
		or	eax, ecx
		jz	short loc_C269C
		mov	eax, [edi]
		mov	[ebp+var_21], ecx
		mov	[ebp+var_1D], edx
		mov	esi, [eax+34h]
		lea	eax, [ebp+var_21]
		mov	[esp], eax
		call	_ZNK8CSteamID6RenderEv ; CSteamID::Render(void)
		mov	[esp+8], eax
		mov	dword ptr [esp+4], offset aSteamid ; "steamid"
		mov	[esp], edi
		call	esi

loc_C269C:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+543j
		mov	edx, ds:g_GameEventManager
		mov	eax, [edx]
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+24h]

loc_C26AE:				; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+3C4j
		mov	dword ptr [esp], offset	aCbaseclientP_7	; " CBaseClient::ProcessServerInfo(done)"
		call	COM_TimestampedLog
		mov	edi, 1
		jmp	loc_C2229
_ZN16CBaseClientState17ProcessServerInfoEP14SVC_ServerInfo endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_C26C6:				; CODE XREF: .text:000C270Bj
		test	ebx, ebx
		jz	short loc_C26F6
		mov	eax, [ebp-40h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-3Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_C26F6:				; CODE XREF: .text:000C26C8j
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C26C6
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::ForceFullUpdate(void)
_ZN16CBaseClientState15ForceFullUpdateEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [ebx+1A4h], 0FFFFFFFFh
		jz	short loc_C2750
		mov	[esp], ebx
		call	_ZN16CBaseClientState19FreeEntityBaselinesEv ; CBaseClientState::FreeEntityBaselines(void)
		mov	dword ptr [ebx+1A4h], 0FFFFFFFFh
		mov	[ebp+arg_0], offset aRequestingFull ; "Requesting full game update...\n"
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
; ---------------------------------------------------------------------------
		align 10h

loc_C2750:				; CODE XREF: CBaseClientState::ForceFullUpdate(void)+11j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN16CBaseClientState15ForceFullUpdateEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::Clear(void)
_ZN16CBaseClientState5ClearEv proc near	; CODE XREF: CHLTVClientState::Clear(void)+Dp
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esi+148h], 0FFFFFFFFh
		lea	eax, [esi+158h]
		mov	dword ptr [esi+1A4h], 0FFFFFFFFh
		mov	[esp], eax
		call	_ZN14CClockDriftMgr5ClearEv ; CClockDriftMgr::Clear(void)
		mov	eax, [esi+4208h]
		mov	dword ptr [esi+154h], 0
		mov	dword ptr [esi+420Ch], 0
		mov	dword ptr [esi+4210h], 0
		mov	dword ptr [esi+1B0h], 0
		test	eax, eax
		mov	byte ptr [esi+1B4h], 0
		mov	byte ptr [esi+1DCh], 0
		mov	dword ptr [esi+204h], 0
		jz	short loc_C2812
		mov	ebx, [eax-4]
		shl	ebx, 4
		add	ebx, eax
		cmp	eax, ebx
		jz	short loc_C27FD
		nop
		lea	esi, [esi+0]

loc_C27E8:				; CODE XREF: CBaseClientState::Clear(void)+9Bj
		sub	ebx, 10h
		mov	[esp], ebx
		call	_ZN17C_ServerClassInfoD2Ev ; C_ServerClassInfo::~C_ServerClassInfo()
		mov	eax, [esi+4208h]
		cmp	eax, ebx
		jnz	short loc_C27E8

loc_C27FD:				; CODE XREF: CBaseClientState::Clear(void)+81j
		sub	eax, 4
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)
		mov	dword ptr [esi+4208h], 0

loc_C2812:				; CODE XREF: CBaseClientState::Clear(void)+75j
		mov	eax, [esi+4A18h]
		test	eax, eax
		jz	short loc_C282E
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	dword ptr [esi+4A18h], 0

loc_C282E:				; CODE XREF: CBaseClientState::Clear(void)+BAj
		mov	[esp], esi
		call	_ZN16CBaseClientState19FreeEntityBaselinesEv ; CBaseClientState::FreeEntityBaselines(void)
		mov	dword ptr [esp], 0
		call	_Z14RecvTable_Termb ; RecvTable_Term(bool)
		mov	eax, [esi+10h]
		test	eax, eax
		jz	short loc_C2854
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8Ch]

loc_C2854:				; CODE XREF: CBaseClientState::Clear(void)+E7j
		fldz
		mov	byte ptr [esi+1A8h], 0
		fstp	qword ptr [esi+18h]
		mov	dword ptr [esi+1ACh], 0
		mov	dword ptr [esi+14h], 0
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN16CBaseClientState5ClearEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClientState__SetEntityBaseline(int, int, int, int, void *src, size_t	n)
_ZN16CBaseClientState17SetEntityBaselineEiP11ClientClassiPci proc near
					; CODE XREF: CHLTVClientState::CopyNewEntity(CEntityReadInfo &,int,int)+1EFp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
src		= dword	ptr  18h
n		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_C2922
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCbaseclients_3 ; "CBaseClientState::SetEntityBaseline"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN16CBaseClientState17SetEntityBaselineEiP11ClientClassiPciE6tm_fmt ; CBaseClientState::SetEntityBaseline(int,ClientClass	*,int,char *,int)::tm_fmt
		mov	dword ptr [esp+1Ch], 651h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_2 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_C2922:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+31j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C2946
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_C2A20

loc_C2946:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+B1j
					; CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+1E9j
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		shl	eax, 0Bh
		lea	eax, [edi+eax+80h]
		mov	ebx, [edx+eax*4+8]
		test	ebx, ebx
		jz	loc_C2A70

loc_C2962:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+21Aj
		mov	eax, [ebp+arg_8]
		mov	[ebx+8], edi
		mov	dword ptr [ebx], 0
		mov	[ebx+4], eax
		mov	eax, [ebp+n]
		mov	[esp], ebx	; int
		mov	[esp+8], eax	; n
		mov	eax, [ebp+src]
		mov	[esp+4], eax	; src
		call	_ZN12PackedEntity18AllocAndCopyPaddedEPKvm ; PackedEntity::AllocAndCopyPadded(void  const*,ulong)
		cmp	[ebp+var_19], 0
		jz	short loc_C29AE
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C299F
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_C29AE

loc_C299F:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+114j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_C29F0

loc_C29AE:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+10Bj
					; CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+11Dj ...
		test	esi, esi
		jz	short loc_C29DE
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_C29DE:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+130j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C29F0:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+12Cj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_C2AA0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C2A12:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+225j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_C29AE
; ---------------------------------------------------------------------------

loc_C2A20:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+C0j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCbaseclients_3	; "CBaseClientState::SetEntityBaseline"
		jz	short loc_C2A5A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCbaseclients_3 ; "CBaseClientState::SetEntityBaseline"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C2A5A:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+1ABj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C2946
; ---------------------------------------------------------------------------
		align 10h

loc_C2A70:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+DCj
		mov	dword ptr [esp], 34h
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN12PackedEntityC2Ev ;	PackedEntity::PackedEntity(void)
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		shl	eax, 0Bh
		lea	eax, [edi+eax+80h]
		mov	[edx+eax*4+8], ebx
		jmp	loc_C2962
; ---------------------------------------------------------------------------
		align 10h

loc_C2AA0:				; CODE XREF: CBaseClientState::SetEntityBaseline(int,ClientClass *,int,char *,int)+17Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_C2A12
_ZN16CBaseClientState17SetEntityBaselineEiP11ClientClassiPci endp

; ---------------------------------------------------------------------------
		mov	edi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	ebx, edi

loc_C2AB6:				; CODE XREF: .text:000C2AFFj
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_C2AC1:				; CODE XREF: .text:000C2AFBj
		test	esi, esi
		jz	short loc_C2AF1
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_C2AF1:				; CODE XREF: .text:000C2AC3j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_C2AC1
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_C2AB6
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::CopyEntityBaseline(int, int)
_ZN16CBaseClientState18CopyEntityBaselineEii proc near
					; CODE XREF: CHLTVClientState::ProcessPacketEntities(SVC_PacketEntities	*)+1E0p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		shl	edx, 0Dh
		shl	eax, 0Dh
		add	edx, ecx
		add	eax, ecx
		mov	[ebp+var_20], edx
		mov	[ebp+var_1C], eax
		jmp	short loc_C2B7F
; ---------------------------------------------------------------------------
		align 10h

loc_C2B40:				; CODE XREF: CBaseClientState::CopyEntityBaseline(int,int)+85j
		test	esi, esi
		jz	loc_C2BD0

loc_C2B48:				; CODE XREF: CBaseClientState::CopyEntityBaseline(int,int)+F4j
		mov	eax, [ebx+8]
		mov	[esi+8], eax
		mov	eax, [ebx+4]
		mov	[esi+4], eax
		mov	eax, [ebx]
		mov	[esi], eax
		mov	eax, [ebx+28h]
		add	eax, 7
		sar	eax, 3
		mov	[esp+8], eax	; n
		mov	eax, [ebx+24h]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; src
		call	_ZN12PackedEntity18AllocAndCopyPaddedEPKvm ; PackedEntity::AllocAndCopyPadded(void  const*,ulong)

loc_C2B74:				; CODE XREF: CBaseClientState::CopyEntityBaseline(int,int)+89j
		add	edi, 1
		cmp	edi, 800h
		jz	short loc_C2BC8

loc_C2B7F:				; CODE XREF: CBaseClientState::CopyEntityBaseline(int,int)+24j
					; CBaseClientState::CopyEntityBaseline(int,int)+B2j
		mov	eax, [ebp+var_20]
		mov	ebx, [eax+edi*4+208h]
		mov	eax, [ebp+var_1C]
		test	ebx, ebx
		mov	esi, [eax+edi*4+208h]
		jnz	short loc_C2B40
		test	esi, esi
		jz	short loc_C2B74
		mov	[esp], esi
		call	_ZN12PackedEntityD2Ev ;	PackedEntity::~PackedEntity()
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [ebp+var_1C]
		mov	dword ptr [eax+edi*4+208h], 0
		add	edi, 1
		cmp	edi, 800h
		jnz	short loc_C2B7F
		lea	esi, [esi+0]

loc_C2BC8:				; CODE XREF: CBaseClientState::CopyEntityBaseline(int,int)+6Dj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C2BD0:				; CODE XREF: CBaseClientState::CopyEntityBaseline(int,int)+32j
		mov	dword ptr [esp], 34h
		call	_Znwj		; operator new(uint)
		mov	esi, eax
		mov	[esp], eax
		call	_ZN12PackedEntityC2Ev ;	PackedEntity::PackedEntity(void)
		mov	eax, [ebp+var_1C]
		mov	[eax+edi*4+208h], esi
		mov	dword ptr [esi+4], 0
		mov	dword ptr [esi], 0
		mov	dword ptr [esi+0Ch], 0
		jmp	loc_C2B48
_ZN16CBaseClientState18CopyEntityBaselineEii endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::GetClientClass(int)
_ZN16CBaseClientState14GetClientClassEi	proc near
					; CODE XREF: CHLTVClientState::CopyNewEntity(CEntityReadInfo &,int,int)+2Dp
					; CLocalNetworkBackdoor::EntState(int,int,int,SendTable	 const*,void  const*,bool,bool)+58p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		pop	ebp
		shl	eax, 4
		add	eax, [edx+4208h]
		mov	eax, [eax]
		retn
_ZN16CBaseClientState14GetClientClassEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseClientState__GetClassBaseline(int, char arg,	int, int)
_ZN16CBaseClientState16GetClassBaselineEiPPKvPi	proc near
					; CODE XREF: CHLTVClientState::CopyNewEntity(CEntityReadInfo &,int,int)+93p

s		= byte ptr -58h
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	esi, dword ptr [ebp+arg]
		mov	ebx, [ebp+arg_0]
		test	esi, esi
		js	short loc_C2CC0
		cmp	esi, [ebx+420Ch]
		jge	short loc_C2CC0

loc_C2C5B:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+90j
		mov	eax, [ebx+4A18h]
		mov	edi, esi
		shl	edi, 4
		add	edi, [ebx+4208h]
		test	eax, eax
		jz	loc_C2D80
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aInstancebaseli ; "instancebaseline"
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	eax, eax
		mov	ebx, eax
		jz	loc_C2D80

loc_C2C8E:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+14Ej
		mov	eax, [edi+0Ch]
		cmp	eax, 0FFFFh
		jz	short loc_C2CD8

loc_C2C98:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+CEj
					; CBaseClientState::GetClassBaseline(int,void  const**,int *)+10Fj ...
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebx]
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], ecx
		call	dword ptr [edx+30h]
		mov	edx, [ebp+arg_8]
		test	eax, eax
		mov	[edx], eax
		setnz	al
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C2CC0:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+11j
					; CBaseClientState::GetClassBaseline(int,void  const**,int *)+19j
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aGetdynamicbase	; "GetDynamicBaseline: invalid class index"...
		call	Error
		jmp	short loc_C2C5B
; ---------------------------------------------------------------------------
		align 8

loc_C2CD8:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+56j
		lea	eax, [ebp+s]
		mov	[esp+0Ch], esi	; arg
		mov	dword ptr [esp+8], (offset aD_1+1) ; format
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, [ebx]
		lea	edx, [ebp+s]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+34h]
		cmp	eax, 0FFFFh
		mov	[edi+0Ch], eax
		jnz	short loc_C2C98
		xor	esi, esi
		jmp	short loc_C2D3B
; ---------------------------------------------------------------------------
		align 8

loc_C2D18:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+105j
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	[esp+4], esi
		add	esi, 1
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	aIS ; "%i: %s\n"
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)

loc_C2D3B:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+D2j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		cmp	esi, eax
		jl	short loc_C2D18
		mov	eax, [edi+0Ch]
		cmp	eax, 0FFFFh
		jnz	loc_C2C98
		mov	eax, [edi+4]
		mov	dword ptr [esp], offset	aGetdynamicba_0	; "GetDynamicBaseline: FindStringIndex(%s-"...
		mov	[esp+8], eax
		lea	eax, [ebp+s]
		mov	[esp+4], eax
		call	Error
		mov	eax, [edi+0Ch]
		jmp	loc_C2C98
; ---------------------------------------------------------------------------
		align 10h

loc_C2D80:				; CODE XREF: CBaseClientState::GetClassBaseline(int,void  const**,int *)+2Ej
					; CBaseClientState::GetClassBaseline(int,void  const**,int *)+48j
		mov	dword ptr [esp], offset	aGetdynamicba_1	; "GetDynamicBaseline: NULL baseline table"...
		xor	ebx, ebx
		call	Error
		jmp	loc_C2C8E
_ZN16CBaseClientState16GetClassBaselineEiPPKvPi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IServerMessageHandler::~IServerMessageHandler()
_ZN21IServerMessageHandlerD2Ev proc near
					; DATA XREF: .rodata:`vtable for'IServerMessageHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetMessageHandler+8)
		pop	ebp
		retn
_ZN21IServerMessageHandlerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IConnectionlessPacketHandler::~IConnectionlessPacketHandler()
_ZN28IConnectionlessPacketHandlerD2Ev proc near
					; DATA XREF: .rodata:`vtable for'IConnectionlessPacketHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV28IConnectionlessPacketHandler+8)
		pop	ebp
		retn
_ZN28IConnectionlessPacketHandlerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::PacketStart(int, int)
_ZN16CBaseClientState11PacketStartEii proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CHLTVClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CBaseClientState11PacketStartEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::PacketEnd(void)
_ZN16CBaseClientState9PacketEndEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CBaseClientState9PacketEndEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::GetCDKeyHash(void)
_ZN16CBaseClientState12GetCDKeyHashEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
		push	ebp
		mov	eax, offset dword_1EC2D0
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CBaseClientState12GetCDKeyHashEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::InstallStringTableCallback(char  const*)
_ZN16CBaseClientState26InstallStringTableCallbackEPKc proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CBaseClientState26InstallStringTableCallbackEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::HookClientStringTable(char	const*)
_ZN16CBaseClientState21HookClientStringTableEPKc proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CBaseClientState21HookClientStringTableEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::GetConnectionRetryNumber(void)const
_ZNK16CBaseClientState24GetConnectionRetryNumberEv proc	near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 4
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CBaseClientState24GetConnectionRetryNumberEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IConnectionlessPacketHandler::~IConnectionlessPacketHandler()
_ZN28IConnectionlessPacketHandlerD0Ev proc near
					; DATA XREF: .rodata:`vtable for'IConnectionlessPacketHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV28IConnectionlessPacketHandler+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN28IConnectionlessPacketHandlerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IServerMessageHandler::~IServerMessageHandler()
_ZN21IServerMessageHandlerD0Ev proc near
					; DATA XREF: .rodata:`vtable for'IServerMessageHandlero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18INetMessageHandler+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN21IServerMessageHandlerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseClientState::GetClientName(void)
_ZN16CBaseClientState13GetClientNameEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseClientStateo
					; .rodata:`vtable for'CClientStateo
		test	ds:cl_name+15h,	10h
		push	ebp
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		mov	ebp, esp
		jnz	short loc_C2E83
		mov	eax, dword ptr ds:cl_name+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx

loc_C2E83:				; CODE XREF: CBaseClientState::GetClientName(void)+Fj
		pop	ebp
		retn
_ZN16CBaseClientState13GetClientNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetNumFakeClients(void)const
_ZNK11CBaseServer17GetNumFakeClientsEv proc near
					; CODE XREF: CSteam3Server::SendUpdatedServerDetails(void)+42p
					; DATA XREF: .rodata:`vtable for'CBaseServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+128h]
		test	eax, eax
		jle	short loc_C2ED1
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_C2EB0:				; CODE XREF: CBaseServer::GetNumFakeClients(void)+3Fj
		mov	eax, [edi+11Ch]
		mov	eax, [eax+ebx*4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+70h]
		cmp	al, 1
		sbb	esi, 0FFFFFFFFh
		add	ebx, 1
		cmp	[edi+128h], ebx
		jg	short loc_C2EB0

loc_C2ED1:				; CODE XREF: CBaseServer::GetNumFakeClients(void)+16j
		add	esp, 1Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZNK11CBaseServer17GetNumFakeClientsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetNumClients(void)const
_ZNK11CBaseServer13GetNumClientsEv proc	near
					; CODE XREF: Host_GetHostInfo(float *,int *,int	*,char *,int)+11p
					; Host_RunFrame(float)+1C8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	edx, [edi+128h]
		test	edx, edx
		jle	short loc_C2F21
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_C2F00:				; CODE XREF: CBaseServer::GetNumClients(void)+3Fj
		mov	eax, [edi+11Ch]
		mov	eax, [eax+ebx*4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+64h]
		cmp	al, 1
		sbb	esi, 0FFFFFFFFh
		add	ebx, 1
		cmp	[edi+128h], ebx
		jg	short loc_C2F00

loc_C2F21:				; CODE XREF: CBaseServer::GetNumClients(void)+16j
		add	esp, 1Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZNK11CBaseServer13GetNumClientsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetNumProxies(void)const
_ZNK11CBaseServer13GetNumProxiesEv proc	near
					; CODE XREF: CServerRemoteAccess::LookupStringValue(char  const*)+E5p
					; CServerRemoteAccess::GetStatsString(char *,int)+52p
					; DATA XREF: ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_1C], 0
		mov	esi, [ebp+arg_0]
		mov	ecx, [esi+128h]
		test	ecx, ecx
		jle	short loc_C2FA8
		xor	ebx, ebx
		jmp	short loc_C2F63
; ---------------------------------------------------------------------------
		align 8

loc_C2F58:				; CODE XREF: CBaseServer::GetNumProxies(void)+4Dj
					; CBaseServer::GetNumProxies(void)+9Bj
		add	ebx, 1
		cmp	[esi+128h], ebx
		jle	short loc_C2FA8

loc_C2F63:				; CODE XREF: CBaseServer::GetNumProxies(void)+1Fj
					; CBaseServer::GetNumProxies(void)+71j
		mov	eax, [esi+11Ch]
		lea	edi, ds:0[ebx*4]
		mov	eax, [eax+ebx*4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+64h]
		test	al, al
		jz	short loc_C2F58
		mov	eax, [esi+11Ch]
		mov	eax, [eax+ebx*4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+74h]
		test	al, al
		jz	short loc_C2FB8

loc_C2F94:				; CODE XREF: CBaseServer::GetNumProxies(void)+9Dj
		add	[ebp+var_1C], 1
		add	ebx, 1
		cmp	[esi+128h], ebx
		jg	short loc_C2F63
		nop
		lea	esi, [esi+0]

loc_C2FA8:				; CODE XREF: CBaseServer::GetNumProxies(void)+1Bj
					; CBaseServer::GetNumProxies(void)+31j
		mov	eax, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C2FB8:				; CODE XREF: CBaseServer::GetNumProxies(void)+62j
		mov	eax, [esi+11Ch]
		mov	eax, [eax+edi]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+78h]
		test	al, al
		jz	short loc_C2F58
		jmp	short loc_C2F94
_ZNK11CBaseServer13GetNumProxiesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetNumPlayers(void)
_ZN11CBaseServer13GetNumPlayersEv proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+0D4h]
		test	eax, eax
		jz	short loc_C3040

loc_C2FE6:				; CODE XREF: CBaseServer::GetNumPlayers(void)+96j
		mov	edx, [eax]
		mov	[esp], eax
		xor	esi, esi
		call	dword ptr [edx+10h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jle	short loc_C302D
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_C3000:				; CODE XREF: CBaseServer::GetNumPlayers(void)+5Bj
		mov	eax, [edi+0D4h]
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+30h]
		test	eax, eax
		jz	short loc_C3025
		cmp	byte ptr [eax+6Ch], 1
		adc	esi, 0

loc_C3025:				; CODE XREF: CBaseServer::GetNumPlayers(void)+4Cj
		add	ebx, 1
		cmp	ebx, [ebp+var_1C]
		jnz	short loc_C3000

loc_C302D:				; CODE XREF: CBaseServer::GetNumPlayers(void)+25j
					; CBaseServer::GetNumPlayers(void)+7Aj	...
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C3040:				; CODE XREF: CBaseServer::GetNumPlayers(void)+14j
		mov	eax, [edi+0C8h]
		xor	esi, esi
		test	eax, eax
		jz	short loc_C302D
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aUserinfo ; "userinfo"
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	eax, eax
		mov	[edi+0D4h], eax
		jz	short loc_C302D
		jmp	loc_C2FE6
_ZN11CBaseServer13GetNumPlayersEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetChallengeType(netadr_s &)
_ZN11CBaseServer16GetChallengeTypeER8netadr_s proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CGameServero
		push	ebp
		mov	eax, 3
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseServer16GetChallengeTypeER8netadr_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetNetStats(float &, float &)
_ZN11CBaseServer11GetNetStatsERfS0_ proc near
					; CODE XREF: CHLTVServer::GetNetStats(float &,float &)+26p
					; CReplayServer::GetNetStats(float &,float &)+Dj ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0
		mov	ebx, [edi+128h]
		test	ebx, ebx
		jle	loc_C3138
		xor	ebx, ebx
		jmp	short loc_C30BB
; ---------------------------------------------------------------------------

loc_C30B0:				; CODE XREF: CBaseServer::GetNetStats(float &,float &)+4Ej
					; CBaseServer::GetNetStats(float &,float &)+5Aj
		add	ebx, 1
		cmp	[edi+128h], ebx
		jle	short loc_C3138

loc_C30BB:				; CODE XREF: CBaseServer::GetNetStats(float &,float &)+2Ej
					; CBaseServer::GetNetStats(float &,float &)+AFj
		mov	eax, [edi+11Ch]
		mov	esi, [eax+ebx*4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_C30B0
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_C30B0
		mov	eax, [esi]
		mov	[esp], esi
		add	ebx, 1
		call	dword ptr [eax+1Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		fld	dword ptr [eax]
		mov	eax, [esi]
		fstp	[ebp+var_1C]
		mov	dword ptr [esp+4], 1
		mov	[esp], esi
		call	dword ptr [eax+34h]
		mov	eax, [ebp+arg_4]
		fadd	[ebp+var_1C]
		fstp	dword ptr [eax]
		mov	eax, [ebp+arg_8]
		fld	dword ptr [eax]
		mov	eax, [esi]
		fstp	[ebp+var_1C]
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	dword ptr [eax+34h]
		mov	eax, [ebp+arg_8]
		fadd	[ebp+var_1C]
		fstp	dword ptr [eax]
		cmp	[edi+128h], ebx
		jg	short loc_C30BB
		lea	esi, [esi+0]

loc_C3138:				; CODE XREF: CBaseServer::GetNetStats(float &,float &)+26j
					; CBaseServer::GetNetStats(float &,float &)+39j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer11GetNetStatsERfS0_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetTime(void)const
_ZNK11CBaseServer7GetTimeEv proc near	; CODE XREF: Host_Changelevel(bool,char	 const*,char  const*)+167p
					; Host_NewGame(char *,bool,bool,char  const*,char  const*,bool)+5EBp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		fild	dword ptr [eax+0Ch]
		fmul	dword ptr [eax+118h]
		retn
_ZNK11CBaseServer7GetTimeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::DisconnectClient(IClient	*, char	 const*)
_ZN11CBaseServer16DisconnectClientEP7IClientPKc	proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], ecx
		pop	ebp
		mov	eax, [edx+38h]
		jmp	eax
_ZN11CBaseServer16DisconnectClientEP7IClientPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ShouldUpdateMasterServer(void)
_ZN11CBaseServer24ShouldUpdateMasterServerEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CGameServero
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseServer24ShouldUpdateMasterServerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEventInfo_LessFunc(CEventInfo * const&, CEventInfo *	const&)
_ZL19CEventInfo_LessFuncRKP10CEventInfoS2_ proc	near
					; DATA XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+99o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	eax, [ebp+arg_4]
		pop	ebp
		mov	eax, [eax]
		movzx	ecx, word ptr [eax]
		cmp	[edx], cx
		setl	al
		retn
_ZL19CEventInfo_LessFuncRKP10CEventInfoS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::SetMaxClients(int)
_ZN11CBaseServer13SetMaxClientsEi proc near ; DATA XREF: .rodata:`vtable for'CBaseServero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		test	edx, edx
		jle	short loc_C31CA
		mov	al, 0FFh
		cmp	edx, 0FFh
		cmovle	eax, edx

loc_C31CA:				; CODE XREF: CBaseServer::SetMaxClients(int)+Dj
		mov	edx, [ebp+arg_0]
		mov	[edx+110h], eax
		pop	ebp
		retn
_ZN11CBaseServer13SetMaxClientsEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int SortServerTags(const void	*, const void *)
_Z14SortServerTagsPKPcS1_ proc near	; DATA XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+16Eo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		mov	[esp+4], eax	; s2
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	[esp], eax	; s1
		call	strcmp
		leave
		test	eax, eax
		setnle	al
		movzx	eax, al
		retn
_Z14SortServerTagsPKPcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::BroadcastMessage(INetMessage &, bool, bool)
_ZN11CBaseServer16BroadcastMessageER11INetMessagebb proc near
					; CODE XREF: CEngineSoundServer::PrefetchSound(char  const*)+A7p
					; SV_ExecuteRemoteCommand(char	const*,int)+A1p ...

var_20		= dword	ptr -20h
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		movzx	edx, [ebp+arg_8]
		mov	esi, [edi+128h]
		mov	[ebp+var_19], dl
		movzx	edx, [ebp+arg_C]
		test	esi, esi
		mov	[ebp+var_1A], dl
		jle	loc_C32D0
		movzx	edx, dl
		xor	esi, esi
		mov	[ebp+var_20], edx
		jmp	short loc_C3253
; ---------------------------------------------------------------------------
		align 8

loc_C3248:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+5Cj
					; CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+68j ...
		add	esi, 1
		cmp	[edi+128h], esi
		jle	short loc_C32D0

loc_C3253:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+30j
					; CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+BAj
		mov	eax, [edi+11Ch]
		cmp	[ebp+var_19], 0
		mov	ebx, [eax+esi*4]
		jz	short loc_C326E
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+6Ch]
		test	al, al
		jz	short loc_C3248

loc_C326E:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+50j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+68h]
		test	al, al
		jz	short loc_C3248
		mov	edx, [ebp+var_20]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		call	dword ptr [eax+5Ch]
		test	al, al
		jnz	short loc_C3248
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+1Ch]
		test	al, al
		jnz	short loc_C32A9
		cmp	[ebp+var_1A], 0
		jz	short loc_C3248

loc_C32A9:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+91j
		mov	eax, [ebx]
		mov	[esp], ebx
		add	esi, 1
		call	dword ptr [eax+18h]
		mov	dword ptr [esp], offset	aBroadcastmessa	; "BroadcastMessage: Reliable broadcast	me"...
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		cmp	[edi+128h], esi
		jg	short loc_C3253
		lea	esi, [esi+0]

loc_C32D0:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+22j
					; CBaseServer::BroadcastMessage(INetMessage &,bool,bool)+41j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer16BroadcastMessageER11INetMessagebb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseServer__BroadcastPrintf(int,	char *format, char arg)
_ZN11CBaseServer15BroadcastPrintfEPKcz proc near ; CODE	XREF: pause(CCommand  const&)+84p
					; DATA XREF: .rodata:`vtable for'CBaseServero ...

var_C1C		= dword	ptr -0C1Ch
var_C18		= byte ptr -0C18h
var_C14		= dword	ptr -0C14h
var_C0C		= dword	ptr -0C0Ch
s		= byte ptr -408h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0C38h
		lea	eax, [ebp+arg]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	[ebp+var_4], esi
		lea	esi, [ebp+s]
		mov	[esp], esi	; s
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	eax, [ebx]
		lea	edx, [ebp+var_C1C]
		mov	[ebp+var_C0C], esi
		mov	[esp], ebx
		mov	[ebp+var_C14], 0
		mov	[ebp+var_C1C], (offset _ZTV9SVC_Print+8)
		mov	[ebp+var_C18], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		call	dword ptr [eax+80h]
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServer15BroadcastPrintfEPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CheckIPConnectionReuse(netadr_s &)
_ZN11CBaseServer22CheckIPConnectionReuseER8netadr_s proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		mov	edx, [edi+128h]
		test	edx, edx
		jle	loc_C3423
		xor	ebx, ebx
		mov	[ebp+var_1C], 0
		jmp	short loc_C33AB
; ---------------------------------------------------------------------------
		align 10h

loc_C33A0:				; CODE XREF: CBaseServer::CheckIPConnectionReuse(netadr_s &)+4Ej
					; CBaseServer::CheckIPConnectionReuse(netadr_s &)+5Aj ...
		add	ebx, 1
		cmp	[edi+128h], ebx
		jle	short loc_C3418

loc_C33AB:				; CODE XREF: CBaseServer::CheckIPConnectionReuse(netadr_s &)+28j
					; CBaseServer::CheckIPConnectionReuse(netadr_s &)+9Fj
		mov	eax, [edi+11Ch]
		mov	esi, [eax+ebx*4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_C33A0
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+6Ch]
		test	al, al
		jnz	short loc_C33A0
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_C33A0
		mov	eax, [esi+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	dword ptr [esp+8], 1
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_ZNK8netadr_s10CompareAdrERKS_b	; netadr_s::CompareAdr(netadr_s	const&,bool)
		cmp	al, 1
		sbb	[ebp+var_1C], 0FFFFFFFFh
		add	ebx, 1
		cmp	[edi+128h], ebx
		jg	short loc_C33AB
		lea	esi, [esi+0]

loc_C3418:				; CODE XREF: CBaseServer::CheckIPConnectionReuse(netadr_s &)+39j
		cmp	[ebp+var_1C], 5
		mov	eax, 1
		jg	short loc_C3430

loc_C3423:				; CODE XREF: CBaseServer::CheckIPConnectionReuse(netadr_s &)+19j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C3430:				; CODE XREF: CBaseServer::CheckIPConnectionReuse(netadr_s &)+B1j
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	dword ptr [esp], offset	aTooManyConnect	; "Too many connect packets from %s\n"
		mov	[esp+4], eax
		call	Msg
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer22CheckIPConnectionReuseER8netadr_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::Init(bool)
_ZN11CBaseServer4InitEb	proc near	; CODE XREF: CHLTVServer::Init(bool)+18p
					; CReplayServer::Init(bool)+18p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+110h], 0
		mov	dword ptr [ebx+114h], 0
		mov	dword ptr [ebx+10Ch], 1
		mov	dword ptr [ebx+158h], 0
		mov	eax, [ebp+arg_4]
		mov	dword ptr [ebx+8], 1
		mov	[ebx+130h], al
		lea	eax, [ebx+0E0h]
		mov	[esp], eax
		mov	dword ptr [esp+4], offset aM_signon ; "m_Signon"
		call	_ZN8bf_write12SetDebugNameEPKc ; bf_write::SetDebugName(char  const*)
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+4], offset _ZL29ServerNotifyVarChangeCallbackP7IConVarPKcf ; ServerNotifyVarChangeCallback(IConVar *,char  const*,float)
		call	dword ptr [edx+48h]
		mov	eax, [ebx]
		mov	byte ptr [ebx+14Dh], 1
		mov	[ebp+arg_0], ebx
		mov	eax, [eax+0A4h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	eax
_ZN11CBaseServer4InitEb	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ReplyServerChallenge(netadr_s &)
_ZN11CBaseServer20ReplyServerChallengeER8netadr_s proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_4C		= dword	ptr -4Ch
buf		= dword	ptr -40h
var_34		= dword	ptr -34h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 78h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_28]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+buf]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	dword ptr [esp+8], 10h
		call	_ZN8bf_writeC2EPvii ; bf_write::bf_write(void *,int,int)
		mov	eax, [esi]
		mov	[esp+4], edi
		mov	[esp], esi
		call	dword ptr [eax+0D8h]
		mov	[esp], ebx
		mov	[ebp+var_4C], eax
		mov	dword ptr [esp+4], 0FFFFFFFFh
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	[esp], ebx
		mov	dword ptr [esp+4], 41h
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [ebp+var_4C]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebp+var_34]
		mov	[esp+8], edi	; int
		mov	dword ptr [esp+18h], 0 ; char
		mov	dword ptr [esp+14h], 0 ; int
		add	eax, 7
		sar	eax, 3
		mov	[esp+10h], eax	; n
		mov	eax, [ebp+buf]
		mov	[esp+0Ch], eax	; buf
		mov	eax, [esi+8]
		mov	dword ptr [esp], 0 ; int
		mov	[esp+4], eax	; int
		call	_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb ; NET_SendPacket(INetChannel *,int,netadr_s	 const&,uchar  const*,int,bf_write *,bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServer20ReplyServerChallengeER8netadr_s endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::RejectConnection(netadr_s  const&, int, char  const*)
_ZN11CBaseServer16RejectConnectionERK8netadr_siPKc proc	near
					; CODE XREF: _ZN13CSteam3Server28OnValidateAuthTicketResponseEP28ValidateAuthTicketResponse_t_part_29+A1p
					; DATA XREF: .rodata:`vtable for'CBaseServero ...

var_50C		= byte ptr -50Ch
buf		= dword	ptr -20h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+var_50C]
		sub	esp, 534h
		lea	ebx, [ebp+buf]
		mov	[esp+4], eax
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	dword ptr [esp+8], 4ECh
		call	_ZN8bf_writeC2EPvii ; bf_write::bf_write(void *,int,int)
		mov	[esp], ebx
		mov	dword ptr [esp+4], 0FFFFFFFFh
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	[esp], ebx
		mov	dword ptr [esp+4], 39h
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	eax, [ebp+arg_8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebp+arg_C]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [ebp+var_14]
		mov	dword ptr [esp+18h], 0 ; char
		mov	dword ptr [esp+14h], 0 ; int
		add	eax, 7
		sar	eax, 3
		mov	[esp+10h], eax	; n
		mov	eax, [ebp+buf]
		mov	[esp+0Ch], eax	; buf
		mov	eax, [ebp+arg_4]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	dword ptr [esp], 0 ; int
		mov	[esp+4], eax	; int
		call	_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb ; NET_SendPacket(INetChannel *,int,netadr_s	 const&,uchar  const*,int,bf_write *,bool)
		add	esp, 534h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseServer16RejectConnectionERK8netadr_siPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseServer__CheckPassword(int, int, char	*s)
_ZN11CBaseServer13CheckPasswordER8netadr_sPKcS3_ proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
s		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	esi, 1
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+74h]
		test	eax, eax
		mov	ebx, eax
		jz	short loc_C36A4
		mov	[esp], edi
		call	_ZNK8netadr_s11IsLocalhostEv ; netadr_s::IsLocalhost(void)
		test	al, al
		jz	short loc_C36B8

loc_C36A4:				; CODE XREF: CBaseServer::CheckPassword(netadr_s &,char	 const*,char  const*)+26j
					; CBaseServer::CheckPassword(netadr_s &,char  const*,char  const*)+52j	...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C36B8:				; CODE XREF: CBaseServer::CheckPassword(netadr_s &,char	 const*,char  const*)+32j
		mov	[esp], edi
		call	_ZNK8netadr_s10IsLoopbackEv ; netadr_s::IsLoopback(void)
		test	al, al
		jnz	short loc_C36A4
		mov	[esp], ebx	; s
		xor	esi, esi
		call	strlen
		mov	edx, [ebp+s]
		mov	edi, eax
		mov	[esp], edx	; s
		call	strlen
		cmp	edi, eax
		jnz	short loc_C36A4
		mov	edx, [ebp+s]
		mov	[esp+8], edi
		mov	[esp+4], ebx
		mov	[esp], edx
		call	_Z9V_strncmpPKcS0_i ; V_strncmp(char  const*,char  const*,int)
		test	eax, eax
		setz	al
		mov	esi, eax
		jmp	short loc_C36A4
_ZN11CBaseServer13CheckPasswordER8netadr_sPKcS3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseServer__CheckChallengeType(int, int,	char arg, int, int, char *s, int, int)
_ZN11CBaseServer18CheckChallengeTypeEP11CBaseClientiR8netadr_siPKcii proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_3C		= byte ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
s		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_10]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_C]
		lea	eax, [edi-1]
		cmp	eax, 2
		ja	short loc_C3790
		cmp	edi, 2
		jz	short loc_C3770

loc_C3725:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+82j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+6Ch]
		mov	edx, 1
		test	al, al
		jnz	short loc_C375E
		cmp	edi, 3
		jz	loc_C37D0
		mov	[ebp+var_3C], dl
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	ecx, [ebp+arg_4]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	_ZN13CSteam3Server24NotifyLocalClientConnectEP11CBaseClient ; CSteam3Server::NotifyLocalClientConnect(CBaseClient *)
		movzx	edx, [ebp+var_3C]
		test	al, al
		jz	short loc_C37C0

loc_C375E:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+34j
					; CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s &,int,char	 const*,int,int)+192j ...
		mov	ebx, [ebp+var_C]
		mov	eax, edx
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C3770:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+23j
		mov	ecx, [ebp+s]
		mov	[esp], ecx	; s
		call	strlen
		test	eax, eax
		jle	short loc_C3784
		cmp	eax, 20h
		jz	short loc_C3725

loc_C3784:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+7Dj
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serverr ; "#GameUI_ServerRejectInvalidCertLen"
		jmp	short loc_C379A
; ---------------------------------------------------------------------------

loc_C3790:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+1Ej
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_0 ; "#GameUI_ServerRejectInvalidConnection"

loc_C379A:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+8Ej
					; CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s &,int,char	 const*,int,int)+CAj ...
		mov	edx, [ebp+arg_1C]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+8], edx
		call	dword ptr [eax+0C0h]
		mov	ebx, [ebp+var_C]
		xor	edx, edx
		mov	esi, [ebp+var_8]
		mov	eax, edx
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C37C0:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+5Cj
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_1 ; "#GameUI_ServerRejectGS"
		jmp	short loc_C379A
; ---------------------------------------------------------------------------
		align 10h

loc_C37D0:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+39j
		and	[ebp+var_1A], 0Fh
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_19], 0
		mov	[esp+4], eax
		and	dword ptr [ebp-1Ch], 0FFF00000h
		mov	[esp], ecx
		call	_ZN11CBaseClient10SetSteamIDERK8CSteamID ; CBaseClient::SetSteamID(CSteamID  const&)
		mov	eax, [ebp+arg_18]
		sub	eax, 1
		cmp	eax, 7FEh
		ja	loc_C3920
		mov	eax, [esi]
		mov	[ebp+var_2C], eax
		mov	eax, [esi+4]
		mov	[ebp+var_28], eax
		mov	eax, [esi+8]
		mov	[esp], esi
		mov	[ebp+var_24], eax
		call	_ZNK8netadr_s7GetTypeEv	; netadr_s::GetType(void)
		cmp	eax, 1
		jz	short loc_C3836
		mov	[esp], esi
		lea	edi, [ebp+var_2C]
		call	_ZNK8netadr_s11IsLocalhostEv ; netadr_s::IsLocalhost(void)
		test	al, al
		jz	short loc_C3851

loc_C3836:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+125j
		mov	dword ptr [esp], offset	net_local_adr
		lea	edi, [ebp+var_2C]
		call	_ZNK8netadr_s18GetIPHostByteOrderEv ; netadr_s::GetIPHostByteOrder(void)
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)

loc_C3851:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+134j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	ecx, [ebp+arg_18]
		mov	[esp+0Ch], edi	; int
		mov	edx, [ebp+s]
		mov	[esp], eax	; int
		mov	[esp+14h], ecx	; int
		mov	ecx, [ebp+arg_4]
		mov	[esp+10h], edx	; int
		mov	edx, dword ptr [ebp+arg]
		mov	[esp+4], ecx	; int
		mov	[esp+8], edx	; arg
		call	_ZN13CSteam3Server19NotifyClientConnectEP11CBaseClientjR8netadr_sPKvj ;	CSteam3Server::NotifyClientConnect(CBaseClient *,uint,netadr_s &,void  const*,uint)
		test	al, al
		jz	loc_C3930

loc_C3886:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+23Cj
		cmp	ds:g_iServerGameDLLVersion, 7
		mov	edx, 1
		jle	loc_C375E
		mov	eax, ds:serverGameDLL
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+9Ch]
		mov	edx, 1
		test	eax, eax
		jz	loc_C375E
		mov	eax, ds:serverGameDLL
		mov	ecx, [eax]
		mov	[ebp+var_3C], dl
		mov	[esp], eax
		call	dword ptr [ecx+9Ch]
		mov	edi, [ebp+arg_4]
		mov	ecx, [eax]
		mov	[esp], eax
		add	edi, 59h
		mov	[esp+4], edi
		call	dword ptr [ecx+4]
		movzx	edx, [ebp+var_3C]
		test	al, al
		jnz	loc_C375E
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_C390A
		mov	ecx, [ebp+arg_4]
		mov	edi, [eax]
		mov	edx, [ecx+59h]
		mov	ecx, [ecx+5Dh]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [edi+68h]

loc_C390A:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+1EFj
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_2 ; "#GameUI_ServerRejectMustUseMatchmaking"
		jmp	loc_C379A
; ---------------------------------------------------------------------------
		align 10h

loc_C3920:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+103j
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_3 ; "#GameUI_ServerRejectInvalidSteamCertLen"...
		jmp	loc_C379A
; ---------------------------------------------------------------------------
		align 10h

loc_C3930:				; CODE XREF: CBaseServer::CheckChallengeType(CBaseClient *,int,netadr_s	&,int,char  const*,int,int)+180j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		cmp	dword ptr [eax+0A4h], 1
		jz	loc_C3886
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_4 ; "#GameUI_ServerRejectSteam"
		jmp	loc_C379A
_ZN11CBaseServer18CheckChallengeTypeEP11CBaseClientiR8netadr_siPKcii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetChallengeNr(netadr_s &)
_ZN11CBaseServer14GetChallengeNrER8netadr_s proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_ZNK8netadr_s21GetIPNetworkByteOrderEv ; netadr_s::GetIPNetworkByteOrder(void)
		xor	ecx, ecx
		xor	edx, edx
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+134h]
		add	eax, ecx
		adc	edx, ebx
		mov	[ebp+var_18], eax
		lea	ebx, [ebp+var_C]
		mov	[ebp+var_14], edx
		mov	[esp], ebx
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		lea	eax, [ebp+var_18]
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	dword ptr [esp+8], 8
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	[esp], ebx
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		mov	eax, [ebp+var_C]
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseServer14GetChallengeNrER8netadr_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ReplyChallenge(netadr_s &, int)
_ZN11CBaseServer14ReplyChallengeER8netadr_si proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_860		= dword	ptr -860h
var_85C		= dword	ptr -85Ch
var_858		= byte ptr -858h
buf		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_858]
		push	ebx
		lea	ebx, [ebp+buf]
		sub	esp, 87Ch
		mov	esi, [ebp+arg_0]
		mov	[esp+4], eax
		mov	edi, [ebp+arg_4]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	dword ptr [esp+8], 820h
		mov	[esp], ebx
		call	_ZN8bf_writeC2EPvii ; bf_write::bf_write(void *,int,int)
		mov	eax, [esi]
		mov	[esp], esi
		mov	[esp+4], edi
		call	dword ptr [eax+0D8h]
		mov	edx, eax
		mov	eax, [esi]
		mov	[esp+4], edi
		mov	[ebp+var_860], edx
		mov	[esp], esi
		call	dword ptr [eax+0DCh]
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[ebp+var_85C], eax
		mov	[esp], ebx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	dword ptr [esp+4], 41h
		mov	[esp], ebx
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	dword ptr [esp+4], 5A4F4933h
		mov	[esp], ebx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	edx, [ebp+var_860]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebp+arg_8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		mov	eax, [ebp+var_85C]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		cmp	[ebp+var_85C], 3
		jz	short loc_C3AE8

loc_C3A8F:				; CODE XREF: CBaseServer::ReplyChallenge(netadr_s &,int)+18Fj
		mov	[esp], ebx
		mov	dword ptr [esp+4], (offset a0000000000+4)
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [ebp+var_2C]
		mov	[esp+8], edi	; int
		mov	dword ptr [esp+18h], 0 ; char
		mov	dword ptr [esp+14h], 0 ; int
		add	eax, 7
		sar	eax, 3
		mov	[esp+10h], eax	; n
		mov	eax, [ebp+buf]
		mov	[esp+0Ch], eax	; buf
		mov	eax, [esi+8]
		mov	dword ptr [esp], 0 ; int
		mov	[esp+4], eax	; int
		call	_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb ; NET_SendPacket(INetChannel *,int,netadr_s	 const&,uchar  const*,int,bf_write *,bool)
		add	esp, 87Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_C3AE8:				; CODE XREF: CBaseServer::ReplyChallenge(netadr_s &,int)+CDj
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	[esp], eax
		call	_ZN13CSteam3Server12GetGSSteamIDEv ; CSteam3Server::GetGSSteamID(void)
		mov	edx, [eax+4]
		mov	eax, [eax]
		mov	dword ptr [esp+8], 8
		mov	[esp], ebx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteBytesEPKvi ;	bf_write::WriteBytes(void  const*,int)
		call	_Z12Steam3Serverv ; Steam3Server(void)
		xor	edx, edx
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_C3B43
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+24h]
		xor	edx, edx
		test	al, al
		setnz	dl

loc_C3B43:				; CODE XREF: CBaseServer::ReplyChallenge(netadr_s &,int)+172j
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		jmp	loc_C3A8F
_ZN11CBaseServer14ReplyChallengeER8netadr_si endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::FillServerInfo(SVC_ServerInfo &)
_ZN11CBaseServer14FillServerInfoER14SVC_ServerInfo proc	near
					; CODE XREF: CHLTVServer::FillServerInfo(SVC_ServerInfo	&)+1Cp
					; CReplayServer::FillServerInfo(SVC_ServerInfo &)+1Cp
					; DATA XREF: ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_4]
		mov	dword ptr [esp+8], 104h	; int
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+4], offset _ZZN11CBaseServer14FillServerInfoER14SVC_ServerInfoE7gamedir ; int
		mov	dword ptr [esp], offset	com_gamedir ; dest
		call	_Z10V_FileBasePKcPci ; V_FileBase(char	const*,char *,int)
		mov	dword ptr [esi+10h], 16h
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+3Ch]
		mov	[esi+14h], eax
		mov	ecx, [ebx+0B1h]
		mov	[esi+20h], ecx
		mov	ecx, [ebx+0B5h]
		mov	[esi+24h], ecx
		mov	ecx, [ebx+0B9h]
		mov	[esi+28h], ecx
		mov	edx, [ebx+0BDh]
		mov	[esi+2Ch], edx
		mov	eax, [ebx+0C4h]
		mov	[esi+30h], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		mov	[esi+34h], eax
		mov	eax, [ebx+104h]
		mov	[esi+38h], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+5Ch]
		mov	byte ptr [esi+1Bh], 4Ch
		mov	[esi+18h], al
		mov	dword ptr [esp], 4Ch ; c
		call	tolower
		mov	[esi+1Bh], al
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+30h]
		mov	dword ptr [esi+44h], offset _ZZN11CBaseServer14FillServerInfoER14SVC_ServerInfoE7gamedir ; CBaseServer::FillServerInfo(SVC_ServerInfo &)::gamedir
		fstp	dword ptr [esi+40h]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+38h]
		mov	[esi+48h], eax
		lea	eax, [ebx+51h]
		mov	[esi+4Ch], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+34h]
		mov	[esi+50h], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+6Ch]
		mov	[esi+19h], al
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		mov	[esi+1Ah], al
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN11CBaseServer14FillServerInfoER14SVC_ServerInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::UserInfoChanged(int)
_ZN11CBaseServer15UserInfoChangedEi proc near ;	DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CGameServero

var_A9		= byte ptr -0A9h
var_A4		= byte ptr -0A4h
var_20		= byte ptr -20h
var_1A		= word ptr -1Ah
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0C8h
		mov	eax, networkStringTableContainerServer
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+var_A4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZN28CNetworkStringTableContainer4LockEb ; CNetworkStringTableContainer::Lock(bool)
		mov	[ebp+var_A9], al
		mov	eax, [edi+11Ch]
		mov	eax, [eax+esi*4]
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+0BCh]
		test	al, al
		jnz	short loc_C3CF0
		mov	eax, [edi+0D4h]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+2Ch]

loc_C3CC7:				; CODE XREF: CBaseServer::UserInfoChanged(int)+E9j
		movzx	eax, [ebp+var_A9]
		mov	[esp+4], eax
		mov	eax, networkStringTableContainerServer
		mov	[esp], eax
		call	_ZN28CNetworkStringTableContainer4LockEb ; CNetworkStringTableContainer::Lock(bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C3CF0:				; CODE XREF: CBaseServer::UserInfoChanged(int)+53j
		movzx	eax, [ebp+var_20]
		mov	[ebp+var_1A], 1
		mov	dword ptr [esp+0Ch], offset _ZN13player_info_s9m_DataMapE ; player_info_s::m_DataMap
		mov	[esp+8], ebx
		mov	[esp+4], ebx
		and	eax, 0FFFFFFFCh
		mov	[ebp+var_20], al
		lea	eax, [ebp+var_20]
		mov	[esp], eax
		call	_ZN9CByteswap24SwapFieldsToTargetEndianEPvS0_P9datamap_t ; CByteswap::SwapFieldsToTargetEndian(void *,void *,datamap_t *)
		mov	eax, [edi+0D4h]
		mov	edx, [eax]
		mov	[esp+0Ch], ebx
		mov	dword ptr [esp+8], 84h
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		jmp	short loc_C3CC7
_ZN11CBaseServer15UserInfoChangedEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CheckProtocol(netadr_s &, int, int)
_ZN11CBaseServer13CheckProtocolER8netadr_sii proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		cmp	[ebp+arg_8], 16h
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_C]
		jz	short loc_C3D7A
		mov	eax, [edx]
		jg	short loc_C3D80
		mov	dword ptr [esp+0Ch], offset aGameui_serve_5 ; "#GameUI_ServerRejectNewProtocol"

loc_C3D67:				; CODE XREF: CBaseServer::CheckProtocol(netadr_s &,int,int)+48j
		mov	[esp+8], ebx
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0C0h]
		xor	eax, eax

loc_C3D7A:				; CODE XREF: CBaseServer::CheckProtocol(netadr_s &,int,int)+19j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C3D80:				; CODE XREF: CBaseServer::CheckProtocol(netadr_s &,int,int)+1Dj
		mov	dword ptr [esp+0Ch], offset aGameui_serve_6 ; "#GameUI_ServerRejectOldProtocol"
		jmp	short loc_C3D67
_ZN11CBaseServer13CheckProtocolER8netadr_sii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseServer__SetPassword(int, char *src)
_ZN11CBaseServer11SetPasswordEPKc proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+src]
		mov	edx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_C3DC0
		add	edx, 91h
		mov	dword ptr [esp+8], 20h ; n
		mov	[esp+4], eax	; src
		mov	[esp], edx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C3DC0:				; CODE XREF: CBaseServer::SetPassword(char  const*)+Ej
		mov	byte ptr [edx+91h], 0
		leave
		retn
_ZN11CBaseServer11SetPasswordEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CheckChallengeNr(netadr_s &, int)
_ZN11CBaseServer16CheckChallengeNrER8netadr_si proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, 1
		mov	[ebp+var_4], edi
		mov	[esp], esi
		call	_ZNK8netadr_s10IsLoopbackEv ; netadr_s::IsLoopback(void)
		test	al, al
		jz	short loc_C3E08

loc_C3DF3:				; CODE XREF: CBaseServer::CheckChallengeNr(netadr_s &,int)+89j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C3E08:				; CODE XREF: CBaseServer::CheckChallengeNr(netadr_s &,int)+21j
		mov	[esp], esi
		xor	esi, esi
		call	_ZNK8netadr_s21GetIPNetworkByteOrderEv ; netadr_s::GetIPNetworkByteOrder(void)
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	edi, eax
		mov	eax, [ecx+134h]
		add	eax, esi
		lea	esi, [ebp+var_1C]
		adc	edx, edi
		mov	[ebp+var_28], eax
		lea	edi, [ebp+var_28]
		mov	[ebp+var_24], edx
		mov	[esp], esi
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		mov	dword ptr [esp+8], 8
		mov	[esp+4], edi
		mov	[esp], esi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	[esp], esi
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		mov	ecx, [ebp+arg_8]
		cmp	ecx, [ebp+var_1C]
		jz	short loc_C3DF3
		mov	ecx, [ebp+arg_0]
		xor	edx, edx
		mov	[ebp+var_1C], 0
		mov	ebx, [ebp+var_24]
		mov	eax, [ecx+138h]
		xor	ecx, ecx
		mov	[esp], esi
		add	eax, ecx
		adc	edx, ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		mov	[esp+4], edi
		mov	[esp], esi
		mov	dword ptr [esp+8], 8
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	[esp], esi
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		mov	ecx, [ebp+arg_8]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		cmp	ecx, [ebp+var_1C]
		setz	bl
		mov	eax, ebx
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServer16CheckChallengeNrER8netadr_si endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CalculateCPUUsage(void)
_ZN11CBaseServer17CalculateCPUUsageEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_6C		= dword	ptr -6Ch
usage		= rusage ptr -60h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		mov	eax, dword ptr ds:_ZL8sv_stats+1Ch
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	ecx, [eax+30h]
		test	ecx, ecx
		jz	short loc_C3F08
		fld	dword ptr [ebx+144h]
		fldz
		fcomip	st, st(1)
		fstp	st
		jz	loc_C3F88

loc_C3EF3:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+D3j
		call	Plat_FloatTime
		fld1
		fadd	dword ptr [ebx+148h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_C3F18

loc_C3F08:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+1Fj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_C3F18:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+46j
		lea	esi, [ebp+usage]
		mov	dword ptr [esp], 0 ; who
		mov	[esp+4], esi	; usage
		call	getrusage
		test	eax, eax
		jz	short loc_C3FA0
		fld	dword ptr [ebx+140h]
		jmp	short loc_C3F42
; ---------------------------------------------------------------------------
		align 10h

loc_C3F40:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+13Cj
		fstp	st(1)

loc_C3F42:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+75j
					; CBaseServer::CalculateCPUUsage(void)+153j
		fld	st
		fld	ds:dbl_1F31A0
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_C4020
		fstp	st
		mov	dword ptr [ebx+140h], 3F7FF972h
		jmp	short loc_C3F6A
; ---------------------------------------------------------------------------
		align 8

loc_C3F68:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+166j
		fstp	st

loc_C3F6A:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+A2j
					; CBaseServer::CalculateCPUUsage(void)+172j
		call	Plat_FloatTime
		fstp	dword ptr [ebx+148h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C3F88:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+2Dj
		call	Plat_FloatTime
		fstp	dword ptr [ebx+144h]
		jmp	loc_C3EF3
; ---------------------------------------------------------------------------
		align 10h

loc_C3FA0:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+6Dj
		mov	ecx, [ebp+usage.ru_utime.tv_usec]
		mov	edx, 431BDE83h
		fld	dword ptr [ebx+148h]
		fld	ds:_ZZN11CBaseServer17CalculateCPUUsageEvE7lastAvg ; CBaseServer::CalculateCPUUsage(void)::lastAvg
		sub	ecx, dword ptr ds:_ZZN11CBaseServer17CalculateCPUUsageEvE11s_lastUsage+4
		mov	eax, ecx
		sar	ecx, 1Fh
		imul	edx
		mov	eax, offset _ZZN11CBaseServer17CalculateCPUUsageEvE11s_lastUsage ; CBaseServer::CalculateCPUUsage(void)::s_lastUsage
		sar	edx, 12h
		sub	edx, ecx
		mov	[ebp+var_6C], edx
		mov	edx, [ebp+usage.ru_utime.tv_sec]
		fild	[ebp+var_6C]
		sub	edx, dword ptr ds:_ZZN11CBaseServer17CalculateCPUUsageEvE11s_lastUsage ; CBaseServer::CalculateCPUUsage(void)::s_lastUsage
		mov	[ebp+var_6C], edx
		fild	[ebp+var_6C]
		faddp	st(1), st
		fld	st(2)
		fsub	st, st(2)
		fdivp	st(1), st
		fst	dword ptr [ebx+140h]
		fxch	st(1)
		fadd	ds:flt_1EDB2C
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jbe	loc_C3F40
		fxch	st(1)
		mov	ecx, 12h
		mov	edi, eax
		fstp	ds:_ZZN11CBaseServer17CalculateCPUUsageEvE7lastAvg ; CBaseServer::CalculateCPUUsage(void)::lastAvg
		rep movsd
		jmp	loc_C3F42
; ---------------------------------------------------------------------------
		align 10h

loc_C4020:				; CODE XREF: CBaseServer::CalculateCPUUsage(void)+90j
		fldz
		fcomi	st, st(1)
		fstp	st(1)
		jbe	loc_C3F68
		fstp	dword ptr [ebx+140h]
		jmp	loc_C3F6A
_ZN11CBaseServer17CalculateCPUUsageEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CheckIPRestrictions(netadr_s  const&, int)
_ZN11CBaseServer19CheckIPRestrictionsERK8netadr_si proc	near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_4]
		mov	[esp], ebx
		call	_ZNK8netadr_s10IsLoopbackEv ; netadr_s::IsLoopback(void)
		test	al, al
		jz	short loc_C4068

loc_C4056:				; CODE XREF: CBaseServer::CheckIPRestrictions(netadr_s	const&,int)+34j
					; CBaseServer::CheckIPRestrictions(netadr_s  const&,int)+48j
		add	esp, 14h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C4068:				; CODE XREF: CBaseServer::CheckIPRestrictions(netadr_s	const&,int)+14j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		cmp	dword ptr [eax+0A4h], 1
		jnz	short loc_C4056
		mov	dword ptr [esp+4], offset net_local_adr
		mov	[esp], ebx
		call	_ZNK8netadr_s16CompareClassBAdrERKS_ ; netadr_s::CompareClassBAdr(netadr_s const&)
		test	al, al
		jnz	short loc_C4056
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZNK8netadr_s13IsReservedAdrEv ; netadr_s::IsReservedAdr(void)
_ZN11CBaseServer19CheckIPRestrictionsERK8netadr_si endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::SetPaused(bool)
_ZN11CBaseServer9SetPausedEb proc near	; CODE XREF: Host_NewGame(char *,bool,bool,char	 const*,char  const*,bool)+81Fp
					; unpause(CCommand  const&)+1Ep ...

var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+68h]
		test	al, al
		jnz	short loc_C40D0

loc_C40C1:				; CODE XREF: CBaseServer::SetPaused(bool)+3Aj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C40D0:				; CODE XREF: CBaseServer::SetPaused(bool)+1Fj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		test	al, al
		jz	short loc_C40C1
		lea	edx, [ebp+var_2C]
		mov	eax, esi
		mov	[ebp+var_28], 1
		cmp	al, 1
		mov	[ebp+var_24], 0
		sbb	eax, eax
		mov	[ebp+var_2C], (offset _ZTV12SVC_SetPause+8)
		add	eax, 3
		mov	[ebx+4], eax
		mov	eax, esi
		mov	[ebp+var_1C], al
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		call	dword ptr [eax+80h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServer9SetPausedEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::BroadcastMessage(INetMessage &, IRecipientFilter	&)
_ZN11CBaseServer16BroadcastMessageER11INetMessageR16IRecipientFilter proc near
					; CODE XREF: SV_ExecuteRemoteCommand(char  const*,int)+6Fp
					; CVEngineServer::MessageEnd(void)+3Bp
					; DATA XREF: ...

var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
format		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		mov	[ebp+var_20], edx
		mov	[ebp+format], ecx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_C4190
		mov	edx, [ebp+var_20]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+54h]
		test	al, al
		jnz	loc_C4310

loc_C4167:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+1ECj
		mov	ecx, [ebp+format]
		mov	edx, [ebp+var_20]
		mov	eax, [ecx]
		mov	[esp], ecx	; format
		add	edx, 0E0h
		mov	[esp+4], edx	; arg
		call	dword ptr [eax+18h]
		test	al, al
		jz	loc_C42F8

loc_C4187:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+8Cj
					; CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+136j
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C4190:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+22j
		mov	edx, [ebp+format]
		mov	eax, [edx]
		mov	ebx, [eax+0Ch]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+8]
		mov	ecx, [ebp+format]
		movzx	eax, al
		mov	[esp+4], eax
		mov	[esp], ecx
		call	ebx
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+10h]
		test	eax, eax
		mov	[ebp+var_24], eax
		jle	short loc_C4187
		xor	ebx, ebx
		jmp	loc_C426C
; ---------------------------------------------------------------------------
		align 4

loc_C41C8:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+14Cj
					; CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+15Bj
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		mov	ecx, (offset aR_eyes+3)
		test	al, al
		mov	eax, offset aNo	; "no"
		cmovz	ecx, eax
		mov	eax, [esi]
		mov	[esp], esi
		mov	[ebp+var_30], ecx
		call	dword ptr [eax+8]
		mov	ecx, offset aNo	; "no"
		mov	edx, (offset aR_eyes+3)
		test	al, al
		mov	eax, [ebp+format]
		cmovz	edx, ecx
		mov	ecx, [eax]
		mov	[ebp+var_28], edx
		mov	[esp], eax
		call	dword ptr [ecx+20h]
		mov	ecx, [ebp+var_24]
		mov	[esp+10h], edi
		mov	edx, [ebp+var_28]
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aSv_broadcastme	; "SV_BroadcastMessage:	 Recipient Filter "...
		mov	[esp+14h], ecx
		mov	ecx, [ebp+var_30]
		mov	[esp+8], edx
		mov	[esp+0Ch], ecx
		call	Msg
		mov	edx, [ebp+format]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+1Ch]
		test	al, al
		jz	short loc_C4260
		mov	ecx, [ebp+format]
		mov	eax, [ecx]
		mov	[esp], ecx
		call	dword ptr [eax+20h]
		mov	dword ptr [esp], offset	aReliableMessag	; "Reliable message (type %i) discarded."
		mov	[esp+4], eax	; arg
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)
		lea	esi, [esi+0]

loc_C4260:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+10Dj
					; CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+178j	...
		add	ebx, 1
		cmp	ebx, [ebp+var_24]
		jz	loc_C4187

loc_C426C:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+90j
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+14h]
		test	eax, eax
		mov	edi, eax
		jle	loc_C41C8
		mov	edx, [ebp+var_20]
		cmp	eax, [edx+128h]
		jg	loc_C41C8
		mov	edx, [ebp+var_20]
		mov	eax, [edx+11Ch]
		mov	edi, [eax+edi*4-4]
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+68h]
		test	al, al
		jz	short loc_C4260
		mov	edx, [ebp+format]
		mov	eax, [edi]
		mov	dword ptr [esp+8], 0
		mov	[esp], edi
		mov	[esp+4], edx
		call	dword ptr [eax+5Ch]
		test	al, al
		jnz	short loc_C4260
		mov	ecx, [ebp+format]
		mov	eax, [ecx]
		mov	[esp], ecx
		call	dword ptr [eax+1Ch]
		test	al, al
		jz	short loc_C4260
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+18h]
		mov	dword ptr [esp], offset	aBroadcastmes_0	; "BroadcastMessage: Reliable filter messa"...
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_C4260
; ---------------------------------------------------------------------------
		align 8

loc_C42F8:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+51j
		mov	[ebp+arg_0], offset aSv_broadcast_0 ; "SV_BroadcastMessage: Init message would"...
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
; ---------------------------------------------------------------------------
		align 10h

loc_C4310:				; CODE XREF: CBaseServer::BroadcastMessage(INetMessage &,IRecipientFilter &)+31j
		mov	dword ptr [esp], offset	aSv_broadcast_1	; "SV_BroadcastMessage:	Init message being"...
		call	ConDMsg
		jmp	loc_C4167
_ZN11CBaseServer16BroadcastMessageER11INetMessageR16IRecipientFilter endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::Shutdown(void)
_ZN11CBaseServer8ShutdownEv proc near	; CODE XREF: CHLTVServer::Shutdown(void)+74j
					; CReplayServer::Shutdown(void)+8Aj ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+54h]
		test	al, al
		jz	loc_C4430
		mov	eax, [esi+128h]
		mov	dword ptr [esi+4], 0
		mov	edi, eax
		sub	edi, 1
		js	loc_C4410
		shl	eax, 2
		mov	[ebp+var_1C], eax
		jmp	short loc_C43D5
; ---------------------------------------------------------------------------
		align 10h

loc_C4370:				; CODE XREF: CBaseServer::Shutdown(void)+C7j
		mov	dword ptr [esp+4], offset aServerShutting ; "Server shutting down"
		mov	[esp], ebx
		call	dword ptr [eax+38h]

loc_C437E:				; CODE XREF: CBaseServer::Shutdown(void)+D3j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4]
		mov	eax, [esi+128h]
		mov	edx, eax
		sub	edx, edi
		sub	edx, 1
		test	edx, edx
		jle	short loc_C43BE
		shl	edx, 2
		mov	eax, [esi+11Ch]
		mov	[esp+8], edx	; n
		mov	edx, [ebp+var_1C]
		add	edx, eax
		add	eax, [ebp+var_20]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [esi+128h]

loc_C43BE:				; CODE XREF: CBaseServer::Shutdown(void)+65j
		mov	edx, [ebp+var_20]
		sub	edi, 1
		sub	eax, 1
		cmp	edi, 0FFFFFFFFh
		mov	[esi+128h], eax
		mov	[ebp+var_1C], edx
		jz	short loc_C4410

loc_C43D5:				; CODE XREF: CBaseServer::Shutdown(void)+3Aj
		mov	edx, [ebp+var_1C]
		mov	eax, [esi+11Ch]
		sub	edx, 4
		mov	[ebp+var_20], edx
		mov	edx, [ebp+var_1C]
		mov	ebx, [eax+edx-4]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		mov	eax, [ebx]
		jnz	loc_C4370
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		jmp	loc_C437E
; ---------------------------------------------------------------------------
		align 10h

loc_C4410:				; CODE XREF: CBaseServer::Shutdown(void)+2Ej
					; CBaseServer::Shutdown(void)+A3j
		mov	dword ptr [esp], 64h
		call	_Z9Sys_Sleepi	; Sys_Sleep(int)
		mov	eax, [esi]
		mov	[ebp+arg_0], esi
		mov	eax, [eax+0A4h]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------

loc_C4430:				; CODE XREF: CBaseServer::Shutdown(void)+16j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer8ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetName(void)const
_ZNK11CBaseServer7GetNameEv proc near	; CODE XREF: CSteam3Server::SendUpdatedServerDetails(void)+ECp
					; CDedicatedServerAPI::UpdateHostname(char *,int)+2Bp
					; DATA XREF: ...
		test	ds:host_name+15h, 10h
		push	ebp
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		mov	ebp, esp
		jnz	short loc_C4463
		mov	eax, dword ptr ds:host_name+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx

loc_C4463:				; CODE XREF: CBaseServer::GetName(void)+Fj
		pop	ebp
		retn
_ZNK11CBaseServer7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetPassword(void)const
_ZNK11CBaseServer11GetPasswordEv proc near
					; CODE XREF: CSteam3Server::SendUpdatedServerDetails(void)+A6p
					; DATA XREF: .rodata:`vtable for'CBaseServero ...
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		sub	esp, 14h
		test	ds:_ZL11sv_password+15h, 10h
		jnz	short loc_C4497
		mov	eax, dword ptr ds:_ZL11sv_password+1Ch
		mov	ebx, [eax+24h]
		mov	eax, (offset asc_20E578+4)
		test	ebx, ebx
		cmovz	ebx, eax

loc_C4497:				; CODE XREF: CBaseServer::GetPassword(void)+13j
		cmp	byte ptr [ebx],	0
		jnz	short loc_C44B0
		xor	ebx, ebx
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C44B0:				; CODE XREF: CBaseServer::GetPassword(void)+2Aj
		mov	[esp], ebx
		mov	dword ptr [esp+4], offset aNone	; "none"
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		mov	eax, 0
		cmovz	ebx, eax
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZNK11CBaseServer11GetPasswordEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::Clear(void)
_ZN11CBaseServer5ClearEv proc near	; CODE XREF: CHLTVServer::Clear(void)+13p
					; CReplayServer::Clear(void)+13p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	ebx
		sub	esp, 20h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0C8h]
		test	eax, eax
		jz	short loc_C4507
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	dword ptr [ebx+0C8h], 0

loc_C4507:				; CODE XREF: CBaseServer::Clear(void)+13j
		lea	edi, [ebx+11h]
		mov	dword ptr [ebx+4], 0
		mov	edx, 40h
		test	edi, 1
		mov	dword ptr [ebx+0CCh], 0
		mov	dword ptr [ebx+0D0h], 0
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+0D8h], 0
		mov	dword ptr [ebx+0Ch], 0
		jnz	loc_C4728
		test	edi, 2
		jnz	loc_C4740

loc_C455D:				; CODE XREF: CBaseServer::Clear(void)+257j
					; CBaseServer::Clear(void)+26Bj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_C4573
		mov	word ptr [edi],	0
		add	edi, 2

loc_C4573:				; CODE XREF: CBaseServer::Clear(void)+89j
		and	edx, 1
		jz	short loc_C457B
		mov	byte ptr [edi],	0

loc_C457B:				; CODE XREF: CBaseServer::Clear(void)+96j
		lea	edi, [ebx+51h]
		mov	edx, 40h
		test	edi, 1
		jnz	loc_C4750
		test	edi, 2
		jnz	loc_C4768

loc_C459B:				; CODE XREF: CBaseServer::Clear(void)+27Fj
					; CBaseServer::Clear(void)+293j
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_C45B1
		mov	word ptr [edi],	0
		add	edi, 2

loc_C45B1:				; CODE XREF: CBaseServer::Clear(void)+C7j
		and	edx, 1
		jz	short loc_C45B9
		mov	byte ptr [edi],	0

loc_C45B9:				; CODE XREF: CBaseServer::Clear(void)+D4j
		mov	dword ptr [ebx+0C4h], 0
		mov	eax, [ebx]
		mov	dword ptr [ebx+0B1h], 0
		mov	dword ptr [ebx+0B5h], 0
		mov	dword ptr [ebx+0B9h], 0
		mov	dword ptr [ebx+0BDh], 0
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		jz	loc_C46C0

loc_C45FB:				; CODE XREF: CBaseServer::Clear(void)+1EAj
		mov	edx, [ebx+0FCh]
		cmp	edx, 176FFh
		jg	short loc_C4650
		mov	eax, [ebx+100h]
		test	eax, eax
		js	short loc_C4650
		mov	dword ptr [ebx+0FCh], 17700h
		mov	eax, [ebx+0F8h]
		test	eax, eax
		jz	loc_C47A0
		mov	dword ptr [esp+4], 17700h ; size
		mov	[esp], eax	; ptr
		call	realloc
		mov	edx, [ebx+0FCh]
		mov	[ebx+0F8h], eax
		jmp	short loc_C4656
; ---------------------------------------------------------------------------
		align 10h

loc_C4650:				; CODE XREF: CBaseServer::Clear(void)+127j
					; CBaseServer::Clear(void)+131j ...
		mov	eax, [ebx+0F8h]

loc_C4656:				; CODE XREF: CBaseServer::Clear(void)+167j
					; CBaseServer::Clear(void)+240j ...
		lea	edi, [ebx+0E0h]
		mov	[esp+8], edx
		mov	[esp+4], eax
		mov	[esp], edi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 0
		call	_ZN8bf_write12StartWritingEPviii ; bf_write::StartWriting(void *,int,int,int)
		mov	[esp], edi
		mov	dword ptr [esp+4], offset aM_signon ; "m_Signon"
		call	_ZN8bf_write12SetDebugNameEPKc ; bf_write::SetDebugName(char  const*)
		mov	dword ptr [ebx+104h], 0
		mov	dword ptr [ebx+108h], 0
		mov	dword ptr [ebx+134h], 0
		mov	dword ptr [ebx+138h], 0
		add	esp, 20h
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C46C0:				; CODE XREF: CBaseServer::Clear(void)+115j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+5Ch]
		test	al, al
		jnz	loc_C45FB
		mov	edx, [ebx+0FCh]
		cmp	edx, 3FFFh
		jg	loc_C4650
		mov	edi, [ebx+100h]
		test	edi, edi
		js	loc_C4650
		mov	dword ptr [ebx+0FCh], 4000h
		mov	eax, [ebx+0F8h]
		test	eax, eax
		jz	short loc_C4780
		mov	dword ptr [esp+4], 4000h ; size
		mov	[esp], eax	; ptr
		call	realloc
		mov	edx, [ebx+0FCh]
		mov	[ebx+0F8h], eax
		jmp	loc_C4656
; ---------------------------------------------------------------------------
		align 4

loc_C4728:				; CODE XREF: CBaseServer::Clear(void)+6Bj
		lea	edi, [ebx+12h]
		mov	byte ptr [ebx+11h], 0
		mov	dl, 3Fh
		test	edi, 2
		jz	loc_C455D
		lea	esi, [esi+0]

loc_C4740:				; CODE XREF: CBaseServer::Clear(void)+77j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_C455D
; ---------------------------------------------------------------------------

loc_C4750:				; CODE XREF: CBaseServer::Clear(void)+A9j
		lea	edi, [ebx+52h]
		mov	byte ptr [ebx+51h], 0
		mov	dl, 3Fh
		test	edi, 2
		jz	loc_C459B
		lea	esi, [esi+0]

loc_C4768:				; CODE XREF: CBaseServer::Clear(void)+B5j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_C459B
; ---------------------------------------------------------------------------
		align 10h

loc_C4780:				; CODE XREF: CBaseServer::Clear(void)+222j
		mov	dword ptr [esp], 4000h ; size
		call	malloc
		mov	edx, 4000h
		mov	[ebx+0F8h], eax
		jmp	loc_C4656
; ---------------------------------------------------------------------------
		align 10h

loc_C47A0:				; CODE XREF: CBaseServer::Clear(void)+145j
		mov	dword ptr [esp], 17700h	; size
		call	malloc
		mov	edx, 17700h
		mov	[ebx+0F8h], eax
		jmp	loc_C4656
_ZN11CBaseServer5ClearEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetPlayerInfo(int, player_info_s	*)
_ZN11CBaseServer13GetPlayerInfoEiP13player_info_s proc near
					; CODE XREF: CVEngineServer::GetPlayerInfo(int,player_info_s *)+14j
					; DATA XREF: .rodata:`vtable for'CBaseServero ...

var_20		= byte ptr -20h
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		test	ebx, ebx
		jz	loc_C489D
		test	esi, esi
		js	loc_C48A8
		mov	eax, [edi+0D4h]
		test	eax, eax
		jz	loc_C4920

loc_C47F2:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+168j
					; CBaseServer::GetPlayerInfo(int,player_info_s *)+184j
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		cmp	esi, eax
		jge	loc_C48A8
		mov	eax, [edi+0D4h]
		test	eax, eax
		jz	loc_C48F0

loc_C4810:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+138j
					; CBaseServer::GetPlayerInfo(int,player_info_s *)+154j
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	edi, ebx
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+30h]
		test	eax, eax
		jz	loc_C4950
		test	bl, 1
		mov	esi, eax
		mov	eax, 84h
		jnz	loc_C4970

loc_C483E:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+1C0j
		test	edi, 2
		jnz	loc_C4988

loc_C484A:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+1D7j
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jz	short loc_C4862
		movzx	edx, word ptr [esi]
		mov	[edi], dx
		mov	edx, 2

loc_C4862:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+95j
		test	al, 1
		jz	short loc_C486D
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al

loc_C486D:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+A4j
		movzx	eax, [ebp+var_20]
		mov	[ebp+var_1A], 1
		mov	dword ptr [esp+0Ch], offset _ZN13player_info_s9m_DataMapE ; player_info_s::m_DataMap
		mov	[esp+8], ebx
		mov	[esp+4], ebx
		and	eax, 0FFFFFFFCh
		mov	[ebp+var_20], al
		lea	eax, [ebp+var_20]
		mov	[esp], eax
		call	_ZN9CByteswap24SwapFieldsToTargetEndianEPvS0_P9datamap_t ; CByteswap::SwapFieldsToTargetEndian(void *,void *,datamap_t *)
		mov	eax, 1

loc_C489D:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+16j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_C48A8:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+1Ej
					; CBaseServer::GetPlayerInfo(int,player_info_s *)+3Cj
		test	bl, 1
		mov	edi, ebx
		mov	edx, 84h
		jnz	loc_C4960

loc_C48B8:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+198j
					; CBaseServer::GetPlayerInfo(int,player_info_s *)+1A8j
		test	edi, 2
		jnz	loc_C49A0

loc_C48C4:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+1EBj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_C48DA
		mov	word ptr [edi],	0
		add	edi, 2

loc_C48DA:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+110j
		and	edx, 1
		jz	short loc_C48E2
		mov	byte ptr [edi],	0

loc_C48E2:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+11Dj
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C48F0:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+4Aj
		mov	edx, [edi+0C8h]
		test	edx, edx
		jz	loc_C4810
		mov	eax, [edx]
		mov	dword ptr [esp+4], offset aUserinfo ; "userinfo"
		mov	[esp], edx
		call	dword ptr [eax+10h]
		mov	[edi+0D4h], eax
		jmp	loc_C4810
; ---------------------------------------------------------------------------
		align 10h

loc_C4920:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+2Cj
		mov	edx, [edi+0C8h]
		test	edx, edx
		jz	loc_C47F2
		mov	eax, [edx]
		mov	dword ptr [esp+4], offset aUserinfo ; "userinfo"
		mov	[esp], edx
		call	dword ptr [eax+10h]
		mov	[edi+0D4h], eax
		jmp	loc_C47F2
; ---------------------------------------------------------------------------
		align 10h

loc_C4950:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+68j
		test	bl, 1
		mov	edx, 84h
		jz	loc_C48B8
		db	66h
		nop

loc_C4960:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+F2j
		mov	byte ptr [edi],	0
		mov	dl, 83h
		add	edi, 1
		jmp	loc_C48B8
; ---------------------------------------------------------------------------
		align 10h

loc_C4970:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+78j
		movzx	eax, byte ptr [esi]
		lea	edi, [ebx+1]
		add	esi, 1
		mov	[ebx], al
		mov	eax, 83h
		jmp	loc_C483E
; ---------------------------------------------------------------------------
		align 4

loc_C4988:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+84j
		movzx	edx, word ptr [esi]
		sub	eax, 2
		add	esi, 2
		mov	[edi], dx
		add	edi, 2
		jmp	loc_C484A
; ---------------------------------------------------------------------------
		align 10h

loc_C49A0:				; CODE XREF: CBaseServer::GetPlayerInfo(int,player_info_s *)+FEj
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_C48C4
_ZN11CBaseServer13GetPlayerInfoEiP13player_info_s endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::SendClientMessages(bool)
_ZN11CBaseServer18SendClientMessagesEb proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CReplayServero

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+8
		mov	[ebp+var_24], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_C4A5A
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSendclientmess ; "SendClientMessages"
		mov	dword ptr [esp+28h], offset aNetworking	; "Networking"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN11CBaseServer18SendClientMessagesEbE6tm_fmt ; CBaseServer::SendClientMessages(bool)::tm_fmt
		mov	dword ptr [esp+1Ch], 814h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_3 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_34], edx
		mov	edx, ds:g_Telemetry+8
		mov	[ebp+var_38], eax
		mov	[ebp+var_2C], edx

loc_C4A5A:				; CODE XREF: CBaseServer::SendClientMessages(bool)+36j
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C4A7F
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_C4B89

loc_C4A7F:				; CODE XREF: CBaseServer::SendClientMessages(bool)+BAj
					; CBaseServer::SendClientMessages(bool)+237j
		mov	eax, [edi+128h]
		test	eax, eax
		jle	short loc_C4AF8
		xor	esi, esi
		jmp	short loc_C4AB9
; ---------------------------------------------------------------------------
		align 10h

loc_C4A90:				; CODE XREF: CBaseServer::SendClientMessages(bool)+129j
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+0C0h]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0B8h]

loc_C4AAE:				; CODE XREF: CBaseServer::SendClientMessages(bool)+11Fj
		add	esi, 1
		cmp	[edi+128h], esi
		jle	short loc_C4AF8

loc_C4AB9:				; CODE XREF: CBaseServer::SendClientMessages(bool)+DBj
					; CBaseServer::SendClientMessages(bool)+140j
		mov	eax, [edi+11Ch]
		mov	ebx, [eax+esi*4]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0B4h]
		test	al, al
		jz	short loc_C4AAE
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jnz	short loc_C4A90
		mov	dword ptr [esp], offset	aClientHasNoNet	; "Client has no netchannel.\n"
		call	Msg
		add	esi, 1
		cmp	[edi+128h], esi
		jg	short loc_C4AB9
		lea	esi, [esi+0]

loc_C4AF8:				; CODE XREF: CBaseServer::SendClientMessages(bool)+D7j
					; CBaseServer::SendClientMessages(bool)+107j
		cmp	[ebp+var_19], 0
		jz	short loc_C4B1F
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C4B10
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_C4B1F

loc_C4B10:				; CODE XREF: CBaseServer::SendClientMessages(bool)+155j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_C4B5D

loc_C4B1F:				; CODE XREF: CBaseServer::SendClientMessages(bool)+14Cj
					; CBaseServer::SendClientMessages(bool)+15Ej ...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_C4B55
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_2C]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C4B55:				; CODE XREF: CBaseServer::SendClientMessages(bool)+174j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C4B5D:				; CODE XREF: CBaseServer::SendClientMessages(bool)+16Dj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_C4BEC
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C4B7B:				; CODE XREF: CBaseServer::SendClientMessages(bool)+241j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_C4B1F
; ---------------------------------------------------------------------------

loc_C4B89:				; CODE XREF: CBaseServer::SendClientMessages(bool)+C9j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSendclientmess	; "SendClientMessages"
		jz	short loc_C4BC3
		mov	dword ptr [esp+10h], 4
		mov	dword ptr [esp+0Ch], offset aNetworking	; "Networking"
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aSendclientmess ; "SendClientMessages"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C4BC3:				; CODE XREF: CBaseServer::SendClientMessages(bool)+1E4j
		mov	eax, [eax+70h]
		mov	edx, dword ptr g_VProfCurrentProfile+10A0h
		lea	eax, [edx+eax*8]
		or	dword ptr [eax+4], 4
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C4A7F
; ---------------------------------------------------------------------------

loc_C4BEC:				; CODE XREF: CBaseServer::SendClientMessages(bool)+1BCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_C4B7B
_ZN11CBaseServer18SendClientMessagesEb endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C4BF5:				; CODE XREF: .text:000C4C40j
		mov	eax, [ebp-2Ch]
		test	eax, eax
		jz	short loc_C4C2B
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-2Ch]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_C4C2B:				; CODE XREF: .text:000C4BFAj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C4BF5
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; AllowDebugDedicatedServerOutsideSteam(void)
_Z37AllowDebugDedicatedServerOutsideSteamv proc	near
					; CODE XREF: CGameServer::FinishCertificateCheck(netadr_s &,int,char  const*,int):loc_186638p
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z37AllowDebugDedicatedServerOutsideSteamv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CBaseServer(void)
_ZN11CBaseServerC2Ev proc near		; CODE XREF: CHLTVServer::CHLTVServer(void)+1Bp
					; CReplayServer::CReplayServer(void)+1Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV11CBaseServer+8)
		lea	eax, [ebx+0E0h]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		fldz
		mov	byte ptr [ebx+11h], 0
		mov	dword ptr [ebx+0F8h], 0
		mov	dword ptr [ebx+0FCh], 0
		mov	dword ptr [ebx+100h], 0
		mov	dword ptr [ebx+11Ch], 0
		mov	dword ptr [ebx+120h], 0
		mov	dword ptr [ebx+124h], 0
		mov	dword ptr [ebx+128h], 0
		mov	dword ptr [ebx+12Ch], 0
		mov	byte ptr [ebx+14Ch], 0
		mov	dword ptr [ebx+0C8h], 0
		mov	dword ptr [ebx+0CCh], 0
		mov	dword ptr [ebx+0D0h], 0
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+0D8h], 0
		mov	dword ptr [ebx+0DCh], 0
		mov	dword ptr [ebx+8], 1
		mov	dword ptr [ebx+0Ch], 0
		mov	byte ptr [ebx+51h], 0
		mov	byte ptr [ebx+91h], 0
		mov	dword ptr [ebx+0B1h], 0
		mov	dword ptr [ebx+0B5h], 0
		mov	dword ptr [ebx+0B9h], 0
		mov	dword ptr [ebx+0BDh], 0
		mov	dword ptr [ebx+0C4h], 0
		mov	dword ptr [ebx+108h], 0
		mov	dword ptr [ebx+104h], 0
		mov	dword ptr [ebx+114h], 0
		mov	dword ptr [ebx+110h], 0
		mov	dword ptr [ebx+118h], 3CF5C28Fh
		mov	dword ptr [ebx+10Ch], 0
		mov	dword ptr [ebx+158h], 0
		mov	byte ptr [ebx+130h], 0
		fst	dword ptr [ebx+140h]
		fst	dword ptr [ebx+144h]
		fst	dword ptr [ebx+148h]
		fstp	qword ptr [ebx+150h]
		mov	byte ptr [ebx+14Dh], 1
		mov	dword ptr [ebx+134h], 0
		mov	dword ptr [ebx+138h], 0
		mov	dword ptr [ebx+13Ch], 0C0400000h
		mov	byte ptr [ebx+15Ch], 1
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseServerC2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx], (offset _ZTV28IConnectionlessPacketHandler+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetNextUserID(void)
_ZN11CBaseServer13GetNextUserIDEv proc near
					; CODE XREF: CBaseServer::CreateFakeClient(char	 const*)+6Dp
					; _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+69p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+128h]
		test	ecx, ecx
		js	short loc_C4E9D
		mov	[ebp+var_1C], 0
		lea	esi, [esi+0]

loc_C4E30:				; CODE XREF: CBaseServer::GetNextUserID(void)+8Bj
		mov	esi, [ebp+var_1C]
		mov	eax, 80010003h
		add	esi, [ebx+10Ch]
		add	esi, 1
		imul	esi
		mov	eax, esi
		sar	eax, 1Fh
		lea	edi, [edx+esi]
		sar	edi, 0Eh
		sub	edi, eax
		mov	eax, edi
		shl	eax, 0Fh
		sub	eax, edi
		mov	edi, esi
		xor	esi, esi
		sub	edi, eax
		test	ecx, ecx
		jg	short loc_C4E75
		jmp	short loc_C4E90
; ---------------------------------------------------------------------------
		align 8

loc_C4E68:				; CODE XREF: CBaseServer::GetNextUserID(void)+78j
		mov	ecx, [ebx+128h]
		add	esi, 1
		cmp	ecx, esi
		jle	short loc_C4E90

loc_C4E75:				; CODE XREF: CBaseServer::GetNextUserID(void)+4Fj
		mov	eax, [ebx+11Ch]
		mov	eax, [eax+esi*4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		cmp	edi, eax
		jnz	short loc_C4E68
		mov	ecx, [ebx+128h]

loc_C4E90:				; CODE XREF: CBaseServer::GetNextUserID(void)+51j
					; CBaseServer::GetNextUserID(void)+63j
		cmp	esi, ecx
		jz	short loc_C4EA6
		add	[ebp+var_1C], 1
		cmp	[ebp+var_1C], ecx
		jle	short loc_C4E30

loc_C4E9D:				; CODE XREF: CBaseServer::GetNextUserID(void)+14j
		mov	edi, [ebx+10Ch]
		add	edi, 1

loc_C4EA6:				; CODE XREF: CBaseServer::GetNextUserID(void)+82j
		add	esp, 2Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer13GetNextUserIDEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CreateFakeClient(char  const*)
_ZN11CBaseServer16CreateFakeClientEPKc proc near ; CODE	XREF: SV_ActivateServer(void)+2C6p
					; SV_ActivateServer(void)+344p	...

var_30		= byte ptr -30h
var_24		= dword	ptr -24h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		lea	ebx, [ebp+var_30]
		sub	esp, 4Ch
		mov	esi, [ebp+arg_0]
		mov	[esp], ebx
		mov	dword ptr [esp+4], 0
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	[esp], ebx
		mov	dword ptr [esp+4], 0
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	[esp], ebx
		mov	dword ptr [esp+4], 3
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+0CCh]
		test	eax, eax
		mov	ebx, eax
		jz	loc_C51B4
		mov	eax, dword ptr ds:sv_stressbots+1Ch
		xor	edi, edi
		mov	eax, [eax+30h]
		test	eax, eax
		jnz	loc_C51C0

loc_C4F1A:				; CODE XREF: CBaseServer::CreateFakeClient(char	 const*)+37Fj
		mov	[esp], esi
		call	_ZN11CBaseServer13GetNextUserIDEv ; CBaseServer::GetNextUserID(void)
		add	dword ptr [esi+158h], 1
		mov	[esi+10Ch], eax
		movzx	eax, byte ptr [esi+15Ch]
		mov	[ebx+1EDh], al
		mov	eax, [ebx]
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 1
		mov	[esp+0Ch], edi
		mov	edx, [esi+10Ch]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx
		call	dword ptr [eax+2Ch]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], offset a30000 ; "30000"
		mov	dword ptr [esp+4], (offset aSv_mincmdrate+9)
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1020+2)
		mov	dword ptr [esp+4], offset aCl_updaterate ; "cl_updaterate"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1_0+1)
		mov	dword ptr [esp+4], offset aCl_interp_rati ; "cl_interp_ratio"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], offset a0_1 ; "0.1"
		mov	dword ptr [esp+4], offset aCl_interp ; "cl_interp"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCl_interpolate ; "cl_interpolate"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aCl_predict ;	"cl_predict"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aCl_predictweap ; "cl_predictweapons"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aCl_lagcompensa ; "cl_lagcompensation"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aClosecaption	; "closecaption"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aEnglish ; "english"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCl_clanid ; "cl_clanid"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], offset aBlue	; "blue"
		mov	dword ptr [esp+4], offset aCl_team ; "cl_team"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aHud_classautok ; "hud_classautokill"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTf_medigun_aut ; "tf_medigun_autoheal"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a1+1)
		mov	dword ptr [esp+4], offset aCl_autorezoom ; "cl_autorezoom"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], offset byte_1EC215
		mov	dword ptr [esp+4], offset aFov_desired ; "fov_desired"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTf_remember_la ; "tf_remember_lastswitched"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCl_autoreload ; "cl_autoreload"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aTf_remember_ac ; "tf_remember_activeweapon"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aHud_combattext ; "hud_combattext"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	dword ptr [esp+4], offset aCl_flipviewmod ; "cl_flipviewmodels"
		mov	[esp], ebx
		call	dword ptr [eax+0E8h]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0E0h]
		mov	eax, [esi+0Ch]
		mov	[ebx+0D4h], eax

loc_C51B4:				; CODE XREF: CBaseServer::CreateFakeClient(char	 const*)+52j
		add	esp, 4Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C51C0:				; CODE XREF: CBaseServer::CreateFakeClient(char	 const*)+64j
		lea	edi, [ebp+var_24]
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	[esp], edi
		mov	dword ptr [esp+4], 0
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	[esp], edi
		mov	dword ptr [esp+4], 3
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	[esp], edi
		mov	dword ptr [esp+4], 0
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		lea	edx, [ebx+4]
		mov	[esp+4], edi	; int
		mov	dword ptr [esp+14h], 16h ; int
		mov	dword ptr [esp+10h], 1 ; char
		mov	[esp+0Ch], edx	; int
		mov	[esp+8], eax	; src
		mov	eax, [esi+8]
		mov	[esp], eax	; int
		call	_Z20NET_CreateNetChanneliP8netadr_sPKcP18INetChannelHandlerbi ;	NET_CreateNetChannel(int,netadr_s *,char  const*,INetChannelHandler *,bool,int)
		mov	edi, eax
		jmp	loc_C4F1A
_ZN11CBaseServer16CreateFakeClientEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __fastcall CBaseServer__ConnectClient(int, int, int, int,	int, int, char *src, int)
_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58 proc near
					; CODE XREF: CBaseServer::ConnectClient(netadr_s &,int,int,int,int,char	 const*,char  const*,char  const*,int)+BFj

var_554		= dword	ptr -554h
var_550		= dword	ptr -550h
var_549		= byte ptr -549h
var_548		= dword	ptr -548h
var_544		= dword	ptr -544h
var_540		= dword	ptr -540h
var_53C		= dword	ptr -53Ch
var_52C		= byte ptr -52Ch
buf		= dword	ptr -40h
var_34		= dword	ptr -34h
var_28		= byte ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
src		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, edx
		push	ebx
		mov	ebx, eax
		sub	esp, 56Ch
		mov	[ebp+var_53C], ecx
		mov	eax, [eax]
		mov	[esp+8], ecx
		mov	[esp+4], edx
		mov	[esp], ebx
		call	dword ptr [eax+0E4h]
		test	al, al
		mov	eax, [ebx]
		jz	loc_C56D8
		mov	[esp], ebx
		call	dword ptr [eax+6Ch]
		test	al, al
		jz	loc_C5390

loc_C5281:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+15Aj
					; _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+19Dj
		mov	dword ptr [esp], offset	aCbaseserverCon	; "CBaseServer::ConnectClient:	GetFreeCli"...
		call	COM_TimestampedLog
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [eax+0CCh]
		test	eax, eax
		mov	edi, eax
		jz	loc_C5750
		mov	[esp], ebx
		call	_ZN11CBaseServer13GetNextUserIDEv ; CBaseServer::GetNextUserID(void)
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_544], eax
		mov	eax, [ebx]
		mov	[esp+0Ch], esi
		mov	[esp+4], edi
		mov	[esp+1Ch], edx
		mov	edx, [ebp+arg_14]
		mov	[esp], ebx
		mov	[esp+18h], edx
		mov	edx, [ebp+src]
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+10h], edx
		mov	edx, [ebp+var_544]
		mov	[esp+8], edx
		call	dword ptr [eax+0E8h]
		xor	edx, edx
		test	al, al
		jz	loc_C5381
		call	_Z12Steam3Serverv ; Steam3Server(void)
		cmp	[ebp+arg_4], 3
		mov	eax, [eax]
		setz	[ebp+var_549]
		test	eax, eax
		mov	[ebp+var_540], eax
		jz	loc_C5418

loc_C5317:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+1DFj
					; _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+1F1j
		mov	edx, [edi]
		lea	eax, [ebp+var_28]
		mov	[esp+4], edi
		mov	[esp], eax
		mov	[ebp+var_554], eax
		call	dword ptr [edx+14h]
		mov	eax, [ebp+var_554]
		sub	esp, 4
		mov	[esp], eax
		call	_Z19Filter_IsUserBannedRK8USERID_s ; Filter_IsUserBanned(USERID_s  const&)
		test	al, al
		jnz	loc_C56A0
		mov	edx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+10h], edx
		mov	edx, [ebp+src]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+8], edx
		call	dword ptr [eax+0D4h]
		test	al, al
		jnz	loc_C5440
		mov	eax, [ebp+var_540]
		test	eax, eax
		jnz	loc_C5668

loc_C537F:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+42Fj
		xor	edx, edx

loc_C5381:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+B1j
		lea	esp, [ebp-0Ch]
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C5390:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+3Bj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		test	al, al
		jnz	loc_C5281
		mov	edx, [ebp+arg_4]
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+8], edx
		call	dword ptr [eax+0C4h]
		test	al, al
		jz	loc_C5718
		mov	edx, [ebp+arg_8]
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+8], edx
		call	dword ptr [eax+0ECh]
		test	al, al
		jnz	loc_C5281
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	dword ptr [esp], offset	aSPasswordFaile	; "%s:	password failed.\n"
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_7 ; "#GameUI_ServerRejectBadPassword"
		jmp	loc_C56B4
; ---------------------------------------------------------------------------
		align 8

loc_C5418:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+D1j
		cmp	[ebp+var_549], 0
		jz	loc_C5317
		mov	dword ptr [esp], offset	aNullIsteamgame	; "NULL	ISteamGameServer in ConnectClient."...
		call	Warning
		jmp	loc_C5317
; ---------------------------------------------------------------------------
		align 10h

loc_C5440:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+12Bj
		mov	dword ptr [esp], offset	aCbaseserverC_0	; "CBaseServer::ConnectClient:	NET_Create"...
		call	COM_TimestampedLog
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		lea	edx, [edi+4]
		mov	dword ptr [esp+14h], 16h ; int
		mov	dword ptr [esp+10h], 0 ; char
		mov	[esp+0Ch], edx	; int
		mov	[esp+8], eax	; src
		mov	[esp+4], esi	; int
		mov	eax, [ebx+8]
		mov	[ebp+var_550], edx
		mov	[esp], eax	; int
		call	_Z20NET_CreateNetChanneliP8netadr_sPKcP18INetChannelHandlerbi ;	NET_CreateNetChannel(int,netadr_s *,char  const*,INetChannelHandler *,bool,int)
		test	eax, eax
		mov	[ebp+var_548], eax
		jz	loc_C575F
		mov	edx, [ebp+var_548]
		mov	eax, [edx]
		mov	edx, [ebp+var_53C]
		mov	[esp+4], edx
		mov	edx, [ebp+var_548]
		mov	[esp], edx
		call	dword ptr [eax+88h]
		mov	dword ptr [esp], offset	aCbaseserverC_1	; "CBaseServer::ConnectClient:	client->Co"...
		call	COM_TimestampedLog
		mov	edx, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+10h], 0
		mov	[esp], edi
		mov	[esp+14h], edx
		mov	edx, [ebp+var_548]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+var_544]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+4], edx
		call	dword ptr [eax+2Ch]
		mov	eax, [ebp+var_544]
		add	dword ptr [ebx+158h], 1
		fld	ds:flt_1F318C
		mov	[ebx+10Ch], eax
		fst	dword ptr [edi+220h]
		mov	eax, [edi+0D8h]
		mov	dword ptr [edi+0CCh], 0FFFFFFFFh
		fadd	ds:net_time
		mov	dword ptr [edi+0D4h], 0
		mov	dword ptr [edi+0D0h], 0
		test	eax, eax
		fstp	qword ptr [edi+218h]
		jz	short loc_C555E
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)
		mov	dword ptr [edi+0D8h], 0

loc_C555E:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+30Aj
		lea	edx, [ebp+buf]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		lea	eax, [ebp+var_52C]
		mov	[esp], edx
		mov	[esp+4], eax
		mov	dword ptr [esp+8], 4ECh
		call	_ZN8bf_writeC2EPvii ; bf_write::bf_write(void *,int,int)
		lea	eax, [ebp+buf]
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp], eax
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		lea	edx, [ebp+buf]
		mov	dword ptr [esp+4], 42h
		mov	[esp], edx
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+buf]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		lea	edx, [ebp+buf]
		mov	dword ptr [esp+4], offset a0000000000 ;	"0000000000"
		mov	[esp], edx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [ebp+var_34]
		mov	dword ptr [esp+18h], 0 ; char
		mov	dword ptr [esp+14h], 0 ; int
		mov	[esp+8], esi	; int
		add	eax, 7
		sar	eax, 3
		mov	[esp+10h], eax	; n
		mov	eax, [ebp+buf]
		mov	[esp+0Ch], eax	; buf
		mov	eax, [ebx+8]
		mov	dword ptr [esp], 0 ; int
		mov	[esp+4], eax	; int
		call	_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb ; NET_SendPacket(INetChannel *,int,netadr_s	 const&,uchar  const*,int,bf_write *,bool)
		cmp	[ebp+arg_4], 2
		jz	loc_C5728

loc_C5613:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+506j
		mov	edx, [ebp+var_548]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+18h]
		test	al, al
		jnz	short loc_C5651
		mov	edx, [ebp+var_548]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		mov	ebx, eax
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+18h]
		mov	[esp+8], ebx
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aClientSConnect	; "Client \"%s\" connected (%s).\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_C5651:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+3E3j
		mov	edx, [ebp+var_550]
		lea	esp, [ebp-0Ch]
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C5668:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+139j
		cmp	[ebp+var_549], 0
		jz	loc_C537F
		mov	edx, [ebp+var_540]
		mov	ebx, [edi+5Dh]
		mov	ecx, [edi+59h]
		mov	eax, [edx]
		mov	[esp], edx
		mov	[esp+8], ebx
		mov	[esp+4], ecx
		call	dword ptr [eax+68h]
		lea	esp, [ebp-0Ch]
		xor	edx, edx
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C56A0:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+FFj
		mov	eax, [ebp+var_540]
		test	eax, eax
		jnz	short loc_C56E8

loc_C56AA:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+4AFj
					; _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+4D3j
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_8 ; "#GameUI_ServerRejectBanned"

loc_C56B4:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+1CDj
					; _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+4A0j ...
		mov	edx, [ebp+arg_0]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+8], edx
		call	dword ptr [eax+0C0h]
		lea	esp, [ebp-0Ch]
		xor	edx, edx
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C56D8:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+2Dj
		mov	dword ptr [esp+0Ch], offset aGameui_serve_9 ; "#GameUI_ServerRejectBadChallenge"
		jmp	short loc_C56B4
; ---------------------------------------------------------------------------
		align 8

loc_C56E8:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+468j
		cmp	[ebp+var_549], 0
		jz	short loc_C56AA
		mov	edx, [ebp+var_540]
		mov	ecx, [edi+5Dh]
		mov	eax, [edx]
		mov	edx, [edi+59h]
		mov	[esp+8], ecx
		mov	[esp+4], edx
		mov	edx, [ebp+var_540]
		mov	[esp], edx
		call	dword ptr [eax+68h]
		jmp	short loc_C56AA
; ---------------------------------------------------------------------------
		align 4

loc_C5718:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+178j
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serv_10 ; "#GameUI_ServerRejectLANRestrict"
		jmp	short loc_C56B4
; ---------------------------------------------------------------------------
		align 8

loc_C5728:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+3CDj
		mov	edx, [ebp+src]
		lea	eax, [edi+38h]
		mov	dword ptr [esp+8], 20h ; n
		mov	[esp], eax	; dest
		mov	[esp+4], edx	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	byte ptr [edi+58h], 0
		jmp	loc_C5613
; ---------------------------------------------------------------------------
		align 10h

loc_C5750:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+60j
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serv_11 ; "#GameUI_ServerRejectServerFull"
		jmp	loc_C56B4
; ---------------------------------------------------------------------------

loc_C575F:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+254j
		mov	eax, [ebp+var_540]
		test	eax, eax
		jnz	short loc_C5778

loc_C5769:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+53Fj
					; _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+563j
		mov	eax, [ebx]
		mov	dword ptr [esp+0Ch], offset aGameui_serv_12 ; "#GameUI_ServerRejectFailedChannel"
		jmp	loc_C56B4
; ---------------------------------------------------------------------------

loc_C5778:				; CODE XREF: _ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58+527j
		cmp	[ebp+var_549], 0
		jz	short loc_C5769
		mov	edx, [ebp+var_540]
		mov	ecx, [edi+5Dh]
		mov	eax, [edx]
		mov	edx, [edi+59h]
		mov	[esp+8], ecx
		mov	[esp+4], edx
		mov	edx, [ebp+var_540]
		mov	[esp], edx
		call	dword ptr [eax+68h]
		jmp	short loc_C5769
_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ConnectClient(netadr_s &, int, int, int,	int, char  const*, char	 const*, char  const*, int)
_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i proc near
					; CODE XREF: CHLTVServer::ConnectClient(netadr_s &,int,int,int,int,char	 const*,char  const*,char  const*,int)+52p
					; DATA XREF: .rodata:`vtable for'CBaseServero ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_1C]
		mov	dword ptr [esp], offset	aCbaseserverC_2	; "CBaseServer::ConnectClient"
		mov	[ebp+var_20], edx
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_2C], eax
		mov	edi, [ebp+arg_18]
		mov	[ebp+var_28], edx
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+arg_14]
		mov	[ebp+var_30], edx
		mov	edx, [ebp+arg_20]
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+arg_24]
		mov	[ebp+var_34], edx
		call	COM_TimestampedLog
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		test	al, al
		jz	short loc_C5878
		test	esi, esi
		jz	short loc_C5878
		test	edi, edi
		jz	short loc_C5878
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_C5878
		mov	edx, [ebp+var_24]
		mov	eax, [ebx]
		mov	[esp], ebx	; int
		mov	[esp+0Ch], edx	; int
		mov	edx, [ebp+var_28]
		mov	[esp+8], edx	; int
		mov	edx, [ebp+var_20]
		mov	[esp+4], edx	; int
		call	dword ptr [eax+0E0h]
		test	al, al
		jz	short loc_C5878
		mov	edx, [ebp+var_34]
		mov	[ebp+arg_C], esi
		mov	eax, ebx
		mov	[ebp+arg_8], edi
		mov	ecx, [ebp+var_2C] ; int
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_14], edx
		mov	edx, [ebp+var_1C]
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_10], edx
		mov	edx, [ebp+var_30]
		mov	[ebp+arg_4], edx
		mov	edx, [ebp+var_24]
		mov	[ebp+arg_0], edx
		mov	edx, [ebp+var_20] ; int
		mov	esp, ebp
		pop	ebp
		jmp	_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i_part_58
; ---------------------------------------------------------------------------
		align 8

loc_C5878:				; CODE XREF: CBaseServer::ConnectClient(netadr_s &,int,int,int,int,char	 const*,char  const*,char  const*,int)+58j
					; CBaseServer::ConnectClient(netadr_s &,int,int,int,int,char  const*,char  const*,char	const*,int)+5Cj ...
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServer13ConnectClientER8netadr_siiiiPKcS3_S3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::RequireValidChallenge(netadr_s &)
_ZN11CBaseServer21RequireValidChallengeER8netadr_s proc	near
		mov	eax, dword ptr ds:_ZL19sv_enableoldqueries+1Ch
		push	ebp
		mov	ebp, esp
		pop	ebp
		mov	eax, [eax+30h]
		test	eax, eax
		setz	al
		retn
_ZN11CBaseServer21RequireValidChallengeER8netadr_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ValidChallenge(netadr_s &, int)
_ZN11CBaseServer14ValidChallengeER8netadr_si proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		xor	esi, esi
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		test	al, al
		jnz	short loc_C58E8

loc_C58D3:				; CODE XREF: CBaseServer::ValidChallenge(netadr_s &,int)+42j
					; CBaseServer::ValidChallenge(netadr_s &,int)+53j ...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C58E8:				; CODE XREF: CBaseServer::ValidChallenge(netadr_s &,int)+21j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_C58D3
		mov	eax, dword ptr ds:_ZL19sv_enableoldqueries+1Ch
		mov	esi, 1
		mov	edx, [eax+30h]
		test	edx, edx
		jnz	short loc_C58D3
		mov	edx, [ebp+arg_8]
		mov	eax, [ebx]
		mov	[esp+4], edi
		mov	[esp], ebx
		mov	[esp+8], edx
		call	dword ptr [eax+0E4h]
		test	al, al
		jnz	short loc_C58D3
		mov	eax, [ebx]
		mov	[esp+4], edi
		xor	esi, esi
		mov	[esp], ebx
		call	dword ptr [eax+0F8h]
		jmp	short loc_C58D3
_ZN11CBaseServer14ValidChallengeER8netadr_si endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ValidInfoChallenge(netadr_s &, char  const*)
_ZN11CBaseServer18ValidInfoChallengeER8netadr_sPKc proc	near

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		xor	esi, esi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		test	al, al
		jnz	short loc_C5970

loc_C595D:				; CODE XREF: CBaseServer::ValidInfoChallenge(netadr_s &,char  const*)+3Aj
					; CBaseServer::ValidInfoChallenge(netadr_s &,char  const*)+46j	...
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C5970:				; CODE XREF: CBaseServer::ValidInfoChallenge(netadr_s &,char  const*)+1Bj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_C595D
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_C595D
		mov	eax, dword ptr ds:_ZL19sv_enableoldqueries+1Ch
		mov	ecx, [eax+30h]
		test	ecx, ecx
		jz	short loc_C59A0
		mov	esi, 1
		jmp	short loc_C595D
; ---------------------------------------------------------------------------
		align 10h

loc_C59A0:				; CODE XREF: CBaseServer::ValidInfoChallenge(netadr_s &,char  const*)+52j
		mov	eax, [ebp+arg_8]
		mov	dword ptr [esp+4], offset aSourceEngineQu ; "Source Engine Query"
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		setz	al
		mov	esi, eax
		jmp	short loc_C595D
_ZN11CBaseServer18ValidInfoChallengeER8netadr_sPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::InactivateClients(void)
_ZN11CBaseServer17InactivateClientsEv proc near
					; CODE XREF: CHLTVServer::Changelevel(void)+1Ep
					; Host_Changelevel(bool,char  const*,char  const*)+C8p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	ebx, [edi+128h]
		test	ebx, ebx
		jle	short loc_C5A50
		xor	esi, esi
		jmp	short loc_C59F7
; ---------------------------------------------------------------------------
		align 10h

loc_C59E0:				; CODE XREF: CBaseServer::InactivateClients(void)+4Aj
					; CBaseServer::InactivateClients(void)+56j ...
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		jnz	short loc_C5A60

loc_C59EC:				; CODE XREF: CBaseServer::InactivateClients(void)+A8j
		add	esi, 1
		cmp	[edi+128h], esi
		jle	short loc_C5A50

loc_C59F7:				; CODE XREF: CBaseServer::InactivateClients(void)+18j
					; CBaseServer::InactivateClients(void)+86j
		mov	eax, [edi+11Ch]
		mov	ebx, [eax+esi*4]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		test	al, al
		jz	short loc_C59E0
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+74h]
		test	al, al
		jnz	short loc_C59E0
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+78h]
		test	al, al
		jnz	short loc_C59E0
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	[esp+4], ebx
		add	esi, 1
		mov	[esp], eax
		call	_ZN13CSteam3Server22NotifyClientDisconnectEP11CBaseClient ; CSteam3Server::NotifyClientDisconnect(CBaseClient *)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		cmp	[edi+128h], esi
		jg	short loc_C59F7
		nop
		lea	esi, [esi+0]

loc_C5A50:				; CODE XREF: CBaseServer::InactivateClients(void)+14j
					; CBaseServer::InactivateClients(void)+35j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C5A60:				; CODE XREF: CBaseServer::InactivateClients(void)+2Aj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+30h]
		jmp	short loc_C59EC
_ZN11CBaseServer17InactivateClientsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ReconnectClients(void)
_ZN11CBaseServer16ReconnectClientsEv proc near
					; CODE XREF: CHLTVServer::StartMaster(CGameClient *)+3EAj
					; CHLTVServer::AddNewFrame(CClientFrame	*)+2A8p ...

var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_0]
		mov	esi, [edi+128h]
		test	esi, esi
		jle	short loc_C5B03
		xor	ebx, ebx
		jmp	short loc_C5A9B
; ---------------------------------------------------------------------------
		align 10h

loc_C5A90:				; CODE XREF: CBaseServer::ReconnectClients(void)+3Ej
		add	ebx, 1
		cmp	[edi+128h], ebx
		jle	short loc_C5B03

loc_C5A9B:				; CODE XREF: CBaseServer::ReconnectClients(void)+18j
					; CBaseServer::ReconnectClients(void)+91j
		mov	eax, [edi+11Ch]
		mov	esi, [eax+ebx*4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+64h]
		test	al, al
		jz	short loc_C5A90
		mov	[ebp+var_2C], 1
		lea	edx, [ebp+var_30]
		add	ebx, 1
		mov	[ebp+var_28], 0
		mov	[ebp+var_30], (offset _ZTV15NET_SignonState+8)
		mov	[ebp+var_20], 2
		mov	[ebp+var_1C], 0FFFFFFFFh
		mov	dword ptr [esi+0C8h], 2
		mov	eax, [esi]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], esi
		call	dword ptr [eax+5Ch]
		cmp	[edi+128h], ebx
		mov	[ebp+var_30], (offset _ZTV11INetMessage+8)
		jg	short loc_C5A9B

loc_C5B03:				; CODE XREF: CBaseServer::ReconnectClients(void)+14j
					; CBaseServer::ReconnectClients(void)+29j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer16ReconnectClientsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CheckTimeouts(void)
_ZN11CBaseServer13CheckTimeoutsEv proc near ; CODE XREF: CBaseServer::RunFrame(void)+153p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebx+128h]
		test	edi, edi
		jle	loc_C5C58
		xor	esi, esi
		jmp	short loc_C5B41
; ---------------------------------------------------------------------------
		align 10h

loc_C5B30:				; CODE XREF: CBaseServer::CheckTimeouts(void)+54j
					; CBaseServer::CheckTimeouts(void)+63j	...
		mov	eax, [ebx+128h]
		add	esi, 1
		cmp	eax, esi
		jle	loc_C5BC0

loc_C5B41:				; CODE XREF: CBaseServer::CheckTimeouts(void)+1Cj
					; CBaseServer::CheckTimeouts(void)+ABj
		mov	eax, [ebx+11Ch]
		mov	eax, [eax+esi*4]
		lea	edi, [eax+4]
		test	eax, eax
		mov	eax, 0
		cmovz	edi, eax
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+8Ch]
		test	al, al
		jnz	short loc_C5B30
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+80h]
		test	al, al
		jz	short loc_C5B30
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+4Ch]
		test	eax, eax
		jz	short loc_C5B30
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0ECh]
		test	al, al
		jz	short loc_C5B30
		mov	eax, [edi]
		add	esi, 1
		mov	edx, [eax+38h]
		mov	[esp], edi
		mov	[ebp+var_1C], edx
		call	dword ptr [eax+48h]
		mov	dword ptr [esp+4], offset aSTimedOut ; "%s timed out"
		mov	[esp+8], eax
		mov	[esp], edi
		call	[ebp+var_1C]
		mov	eax, [ebx+128h]
		cmp	eax, esi
		jg	short loc_C5B41
		lea	esi, [esi+0]

loc_C5BC0:				; CODE XREF: CBaseServer::CheckTimeouts(void)+2Bj
		test	eax, eax
		jle	loc_C5C58
		xor	edi, edi
		jmp	short loc_C5BDB
; ---------------------------------------------------------------------------
		align 10h

loc_C5BD0:				; CODE XREF: CBaseServer::CheckTimeouts(void)+EEj
					; CBaseServer::CheckTimeouts(void)+FDj	...
		add	edi, 1
		cmp	[ebx+128h], edi
		jle	short loc_C5C58

loc_C5BDB:				; CODE XREF: CBaseServer::CheckTimeouts(void)+BAj
					; CBaseServer::CheckTimeouts(void)+13Fj
		mov	eax, [ebx+11Ch]
		mov	eax, [eax+edi*4]
		lea	esi, [eax+4]
		test	eax, eax
		mov	eax, 0
		cmovz	esi, eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+8Ch]
		test	al, al
		jnz	short loc_C5BD0
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+80h]
		test	al, al
		jz	short loc_C5BD0
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+4Ch]
		test	eax, eax
		jz	short loc_C5BD0
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+4Ch]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0E8h]
		test	al, al
		jz	short loc_C5BD0
		mov	eax, [esi]
		mov	[esp+8], edi
		add	edi, 1
		mov	dword ptr [esp+4], offset aClientDOverflo ; "Client %d overflowed reliable channel."
		mov	[esp], esi
		call	dword ptr [eax+38h]
		cmp	[ebx+128h], edi
		jg	short loc_C5BDB
		lea	esi, [esi+0]

loc_C5C58:				; CODE XREF: CBaseServer::CheckTimeouts(void)+14j
					; CBaseServer::CheckTimeouts(void)+B2j	...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer13CheckTimeoutsEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::UpdateUserSettings(void)
_ZN11CBaseServer18UpdateUserSettingsEv proc near
					; CODE XREF: CBaseServer::RunFrame(void)+15Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+128h]
		test	eax, eax
		jle	short loc_C5CBB
		xor	ebx, ebx
		jmp	short loc_C5C8B
; ---------------------------------------------------------------------------
		align 10h

loc_C5C80:				; CODE XREF: CBaseServer::UpdateUserSettings(void)+43j
		add	ebx, 1
		cmp	[edi+128h], ebx
		jle	short loc_C5CBB

loc_C5C8B:				; CODE XREF: CBaseServer::UpdateUserSettings(void)+18j
					; CBaseServer::UpdateUserSettings(void)+59j
		mov	eax, [edi+11Ch]
		mov	esi, [eax+ebx*4]
		mov	[esp], esi
		call	_ZN11CBaseClient20CheckFlushNameChangeEv ; CBaseClient::CheckFlushNameChange(void)
		cmp	byte ptr [esi+8Ch], 0
		jz	short loc_C5C80
		mov	eax, [esi]
		add	ebx, 1
		mov	[esp], esi
		call	dword ptr [eax+0C0h]
		cmp	[edi+128h], ebx
		jg	short loc_C5C8B

loc_C5CBB:				; CODE XREF: CBaseServer::UpdateUserSettings(void)+14j
					; CBaseServer::UpdateUserSettings(void)+29j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer18UpdateUserSettingsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::SendPendingServerInfo(void)
_ZN11CBaseServer21SendPendingServerInfoEv proc near
					; CODE XREF: CBaseServer::RunFrame(void)+163p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+128h]
		test	eax, eax
		jle	short loc_C5D23
		xor	ebx, ebx
		jmp	short loc_C5CFB
; ---------------------------------------------------------------------------
		align 10h

loc_C5CF0:				; CODE XREF: CBaseServer::SendPendingServerInfo(void)+3Bj
		add	ebx, 1
		cmp	[esi+128h], ebx
		jle	short loc_C5D23

loc_C5CFB:				; CODE XREF: CBaseServer::SendPendingServerInfo(void)+17j
					; CBaseServer::SendPendingServerInfo(void)+51j
		mov	eax, [esi+11Ch]
		mov	eax, [eax+ebx*4]
		cmp	byte ptr [eax+8Dh], 0
		jz	short loc_C5CF0
		mov	edx, [eax]
		add	ebx, 1
		mov	[esp], eax
		call	dword ptr [edx+0D4h]
		cmp	[esi+128h], ebx
		jg	short loc_C5CFB

loc_C5D23:				; CODE XREF: CBaseServer::SendPendingServerInfo(void)+13j
					; CBaseServer::SendPendingServerInfo(void)+29j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN11CBaseServer21SendPendingServerInfoEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::SetMasterServerRulesDirty(void)
_ZN11CBaseServer25SetMasterServerRulesDirtyEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+14Dh], 1
		pop	ebp
		retn
_ZN11CBaseServer25SetMasterServerRulesDirtyEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetFinalTickTime(void)const
_ZNK11CBaseServer16GetFinalTickTimeEv proc near
					; CODE XREF: SV_StartSound(IRecipientFilter &,edict_t *,int,char  const*,float,soundlevel_t,int,int,int,Vector	const*,float,int,CUtlVector<Vector,CUtlMemory<Vector,int>> *)+2E0p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	eax, ds:host_frameticks
		mov	edx, [ebp+arg_0]
		sub	eax, ds:host_currentframetick
		add	eax, [edx+0Ch]
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fmul	dword ptr [edx+118h]
		leave
		retn
_ZNK11CBaseServer16GetFinalTickTimeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetInstanceBaselineTable(void)
_ZN11CBaseServer24GetInstanceBaselineTableEv proc near
					; CODE XREF: CHLTVServer::LinkInstanceBaselines(void)+4Fp
					; CReplayServer::LinkInstanceBaselines(void)+4Fp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0CCh]
		test	eax, eax
		jz	short loc_C5D90
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C5D90:				; CODE XREF: CBaseServer::GetInstanceBaselineTable(void)+12j
		mov	eax, [ebx+0C8h]
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aInstancebaseli ; "instancebaseline"
		mov	[esp], eax
		call	dword ptr [edx+10h]
		mov	[ebx+0CCh], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseServer24GetInstanceBaselineTableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetLightStyleTable(void)
_ZN11CBaseServer18GetLightStyleTableEv proc near
					; CODE XREF: CVEngineServer::LightStyle(int,char  const*)+1Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0D0h]
		test	eax, eax
		jz	short loc_C5DE0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C5DE0:				; CODE XREF: CBaseServer::GetLightStyleTable(void)+12j
		mov	eax, [ebx+0C8h]
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aLightstyles ; "lightstyles"
		mov	[esp], eax
		call	dword ptr [edx+10h]
		mov	[ebx+0D0h], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseServer18GetLightStyleTableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetUserInfoTable(void)
_ZN11CBaseServer16GetUserInfoTableEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+0D4h]
		test	eax, eax
		jz	short loc_C5E30

loc_C5E24:				; CODE XREF: CBaseServer::GetUserInfoTable(void)+28j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C5E30:				; CODE XREF: CBaseServer::GetUserInfoTable(void)+12j
		mov	edx, [ebx+0C8h]
		test	edx, edx
		jz	short loc_C5E24
		mov	eax, [edx]
		mov	dword ptr [esp+4], offset aUserinfo ; "userinfo"
		mov	[esp], edx
		call	dword ptr [eax+10h]
		mov	[ebx+0D4h], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseServer16GetUserInfoTableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetClassBaseline(ServerClass *, void  const**, int *)
_ZN11CBaseServer16GetClassBaselineEP11ServerClassPPKvPi	proc near
					; CODE XREF: CBaseServer::UncompressPackedEntity(PackedEntity *,int &)+74p
					; CBaseServer::CompressPackedEntity(ServerClass	*,char	const*,int &)+66p ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, dword ptr ds:_ZL20sv_instancebaselines+1Ch
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		mov	eax, [eax+30h]
		test	eax, eax
		jz	loc_C5F40
		cmp	dword ptr [ebx+10h], 0FFFFh
		jz	loc_C5F80

loc_C5E95:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+132j
		call	ThreadGetCurrentId
		mov	edx, eax
		mov	eax, dword ptr ds:g_svInstanceBaselineMutex
		cmp	edx, eax
		jz	short loc_C5ECB
		mov	[esp+4], edx
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp], offset	g_svInstanceBaselineMutex
		call	ThreadInterlockedAssignIf
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_C5F60

loc_C5ECB:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+43j
		mov	eax, dword ptr ds:g_svInstanceBaselineMutex+4
		add	eax, 1
		mov	dword ptr ds:g_svInstanceBaselineMutex+4, eax

loc_C5ED8:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+11Aj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0CCh]
		test	eax, eax
		jz	loc_C5FA0

loc_C5EE9:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+15Fj
		mov	edx, [eax]
		mov	[esp+8], edi
		mov	ecx, [ebx+10h]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+30h]
		mov	[esi], eax
		test	eax, eax
		mov	eax, dword ptr ds:g_svInstanceBaselineMutex+4
		setnz	bl
		sub	eax, 1
		mov	dword ptr ds:g_svInstanceBaselineMutex+4, eax
		mov	eax, dword ptr ds:g_svInstanceBaselineMutex+4
		test	eax, eax
		jnz	short loc_C5F51
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	g_svInstanceBaselineMutex
		call	ThreadInterlockedExchange
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C5F40:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+22j
		mov	dword ptr [esi], offset	_ZZN11CBaseServer16GetClassBaselineEP11ServerClassPPKvPiE5dummy	; CBaseServer::GetClassBaseline(ServerClass *,void  const**,int	*)::dummy
		mov	ebx, 1
		mov	dword ptr [edi], 1

loc_C5F51:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+B7j
		mov	eax, ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C5F60:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+65j
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	dword ptr [esp], offset	g_svInstanceBaselineMutex
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)
		jmp	loc_C5ED8
; ---------------------------------------------------------------------------
		align 10h

loc_C5F80:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+2Fj
		mov	eax, [ebx]
		mov	dword ptr [esp], offset	aSv_getinstance	; "SV_GetInstanceBaseline: missing instanc"...
		mov	[esp+4], eax
		call	Error
		jmp	loc_C5E95
; ---------------------------------------------------------------------------
		align 10h

loc_C5FA0:				; CODE XREF: CBaseServer::GetClassBaseline(ServerClass *,void  const**,int *)+83j
		mov	eax, [edx+0C8h]
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aInstancebaseli ; "instancebaseline"
		mov	[esp], eax
		call	dword ptr [edx+10h]
		mov	edx, [ebp+arg_0]
		mov	[edx+0CCh], eax
		jmp	loc_C5EE9
_ZN11CBaseServer16GetClassBaselineEP11ServerClassPPKvPi	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, dword ptr ds:g_svInstanceBaselineMutex+4
		sub	eax, 1
		mov	dword ptr ds:g_svInstanceBaselineMutex+4, eax
		mov	eax, dword ptr ds:g_svInstanceBaselineMutex+4
		test	eax, eax
		jnz	short loc_C5FF0
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	g_svInstanceBaselineMutex
		call	ThreadInterlockedExchange

loc_C5FF0:				; CODE XREF: .text:000C5FDAj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::UncompressPackedEntity(PackedEntity *, int &)
_ZN11CBaseServer22UncompressPackedEntityEP12PackedEntityRi proc	near
					; CODE XREF: CHLTVClientState::ReadDeltaEnt(CEntityReadInfo &)+313p
					; SV_DetermineUpdateType(CEntityWriteInfo &)+B7Dp ...

var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_50		= byte ptr -50h
var_38		= byte ptr -38h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, framesnapshotmanager
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		mov	[esp], eax
		mov	[esp+4], esi
		call	_ZN21CFrameSnapshotManager27GetCachedUncompressedEntityEP12PackedEntity	; CFrameSnapshotManager::GetCachedUncompressedEntity(PackedEntity *)
		mov	ebx, eax
		mov	eax, [eax+8]
		test	eax, eax
		jle	short loc_C6050
		mov	edx, [ebp+arg_8]
		lea	edi, [ebx+0Ch]
		mov	[edx], eax
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C6050:				; CODE XREF: CBaseServer::UncompressPackedEntity(PackedEntity *,int &)+2Dj
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 0
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_20]
		mov	[esp+8], eax
		lea	edi, [ebx+0Ch]
		mov	eax, [esi]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN11CBaseServer16GetClassBaselineEP11ServerClassPPKvPi	; CBaseServer::GetClassBaseline(ServerClass *,void  const**,int	*)
		mov	eax, [ebp+var_1C]
		lea	ecx, [ebp+var_68]
		mov	[esp], ecx
		mov	[ebp+var_6C], ecx
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_20]
		mov	dword ptr [esp+4], offset aUncompresspack ; "UncompressPackedEntity1"
		mov	[esp+8], eax
		call	_ZN7bf_readC2EPKcPKvii ; bf_read::bf_read(char	const*,void  const*,int,int)
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	eax, [esi+28h]
		and	eax, 7FFFFFFFh
		add	eax, 7
		sar	eax, 3
		mov	[esp+0Ch], eax
		mov	eax, [esi+24h]
		mov	dword ptr [esp+4], offset aUncompresspa_0 ; "UncompressPackedEntity2"
		mov	[esp+8], eax
		lea	eax, [ebp+var_50]
		mov	[esp], eax
		mov	[ebp+var_70], eax
		call	_ZN7bf_readC2EPKcPKvii ; bf_read::bf_read(char	const*,void  const*,int,int)
		lea	edx, [ebp+var_38]
		mov	[esp+8], edi
		mov	[esp], edx
		mov	[ebp+var_74], edx
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+4], offset aUncompresspa_1 ; "UncompressPackedEntity3"
		call	_ZN8bf_writeC2EPKcPvii ; bf_write::bf_write(char  const*,void *,int,int)
		mov	edx, [ebp+var_74]
		mov	dword ptr [esp+18h], 0
		mov	eax, [ebp+var_70]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp+var_6C]
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	[esp+0Ch], edx
		mov	[esp+8], eax
		mov	[esp+4], ecx
		mov	eax, [esi+4]
		mov	eax, [eax+0Ch]
		mov	[esp], eax
		call	_Z21RecvTable_MergeDeltasP9RecvTableP7bf_readS2_P8bf_writeiPib ; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write	*,int,int *,bool)
		mov	eax, [ebp+var_2C]
		mov	edx, [ebp+arg_8]
		mov	[ebx+8], eax
		mov	[edx], eax
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServer22UncompressPackedEntityEP12PackedEntityRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CompressPackedEntity(ServerClass	*, char	 const*, int &)
_ZN11CBaseServer20CompressPackedEntityEP11ServerClassPKcRi proc	near
					; CODE XREF: CHLTVClientState::ReadDeltaEnt(CEntityReadInfo &)+2ABp

var_38		= byte ptr -38h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	[ebp+var_4], edi
		lea	edi, [ebp+var_38]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_C]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[esp], edi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 4000h
		mov	dword ptr [esp+8], offset _ZZN11CBaseServer20CompressPackedEntityEP11ServerClassPKcRiE12s_packedData ; CBaseServer::CompressPackedEntity(ServerClass *,char  const*,int	&)::s_packedData
		mov	dword ptr [esp+4], offset aCompresspacked ; "CompressPackedEntity"
		call	_ZN8bf_writeC2EPKcPvii ; bf_write::bf_write(char  const*,void *,int,int)
		lea	eax, [ebp+var_1C]
		mov	[esp+4], esi
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_20]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	[esp], eax
		call	_ZN11CBaseServer16GetClassBaselineEP11ServerClassPPKvPi	; CBaseServer::GetClassBaseline(ServerClass *,void  const**,int	*)
		mov	[esp+18h], edi
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp+14h], 0FFFFFFFFh
		mov	edx, [ebx]
		shl	eax, 3
		mov	[esp+8], eax
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_20]
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		mov	eax, [esi+4]
		mov	[esp], eax
		call	_Z28SendTable_WriteAllDeltaPropsPK9SendTablePKviS3_iiP8bf_write	; SendTable_WriteAllDeltaProps(SendTable  const*,void  const*,int,void	const*,int,int,bf_write	*)
		mov	eax, [ebp+var_2C]
		mov	[ebx], eax
		mov	eax, offset _ZZN11CBaseServer20CompressPackedEntityEP11ServerClassPKcRiE12s_packedData ; CBaseServer::CompressPackedEntity(ServerClass *,char  const*,int &)::s_packedData
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServer20CompressPackedEntityEP11ServerClassPKcRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CheckMasterServerRequestRestart(void)
_ZN11CBaseServer31CheckMasterServerRequestRestartEv proc near
					; CODE XREF: CBaseServer::UpdateMasterServer(void)+75p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	eax, [eax]
		test	eax, eax
		jz	loc_C62C0
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	eax, [eax]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		test	al, al
		jz	short loc_C62C0
		mov	dword ptr [esp+4], 3
		mov	dword ptr [esp], offset	aCmasterrequest	; "%cMasterRequestRestart\n"
		call	Msg
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aAutoupdate ;	"-autoupdate"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jnz	short loc_C62A0
		mov	dword ptr [esp], offset	aYourServerNeed	; "Your	server needs to	be restarted in	or"...
		call	Msg
		mov	[ebp+arg_0], offset aYourServerNeed ; "Your server needs to be restarted in or"...
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	Log
; ---------------------------------------------------------------------------
		align 10h

loc_C62A0:				; CODE XREF: CBaseServer::CheckMasterServerRequestRestart(void)+57j
		mov	dword ptr [esp], offset	aYourServerWill	; "Your	server will be restarted on map	ch"...
		call	Msg
		mov	dword ptr [esp], offset	aYourServerWill	; "Your	server will be restarted on map	ch"...
		call	Log
		mov	byte ptr [ebx+14Ch], 1
		nop

loc_C62C0:				; CODE XREF: CBaseServer::CheckMasterServerRequestRestart(void)+13j
					; CBaseServer::CheckMasterServerRequestRestart(void)+2Aj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN11CBaseServer31CheckMasterServerRequestRestartEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ForwardPacketsFromMasterServerUpdater(void)
_ZN11CBaseServer37ForwardPacketsFromMasterServerUpdaterEv proc near
					; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+421p
					; CBaseServer::UpdateMasterServer(void)+6Dp

var_4040	= dword	ptr -4040h
n		= dword	ptr -403Ch
buf		= byte ptr -402Ch
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 405Ch
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	esi, [eax]
		test	esi, esi
		jz	loc_C63A6
		lea	edi, [ebp+buf]
		lea	ebx, [ebp+var_2C]
		jmp	loc_C6379
; ---------------------------------------------------------------------------
		align 10h

loc_C6300:				; CODE XREF: CBaseServer::ForwardPacketsFromMasterServerUpdater(void)+D0j
		mov	ecx, [ebp+var_20]
		mov	[ebp+n], eax
		movzx	edx, [ebp+var_1A]
		mov	[esp], ebx
		mov	[esp+4], ecx
		mov	[ebp+var_4040],	edx
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	edx, [ebp+var_4040]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	[esp], ebx
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	eax, [ebp+n]
		mov	[esp+0Ch], edi	; buf
		mov	edx, [ebp+arg_0]
		mov	dword ptr [esp+18h], 0 ; char
		mov	dword ptr [esp+14h], 0 ; int
		mov	[esp+8], ebx	; int
		mov	[esp+10h], eax	; n
		mov	eax, [edx+8]
		mov	dword ptr [esp], 0 ; int
		mov	[esp+4], eax	; int
		call	_Z14NET_SendPacketP11INetChanneliRK8netadr_sPKhiP8bf_writeb ; NET_SendPacket(INetChannel *,int,netadr_s	 const&,uchar  const*,int,bf_write *,bool)

loc_C6379:				; CODE XREF: CBaseServer::ForwardPacketsFromMasterServerUpdater(void)+24j
		mov	eax, [esi]
		lea	edx, [ebp+var_1A]
		mov	dword ptr [esp+8], 4000h
		mov	[esp+10h], edx
		lea	edx, [ebp+var_20]
		mov	[esp+0Ch], edx
		mov	[esp+4], edi
		mov	[esp], esi
		call	dword ptr [eax+98h]
		test	eax, eax
		jg	loc_C6300

loc_C63A6:				; CODE XREF: CBaseServer::ForwardPacketsFromMasterServerUpdater(void)+15j
		add	esp, 405Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer37ForwardPacketsFromMasterServerUpdaterEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::ProcessConnectionlessPacket(netpacket_s *)
_ZN11CBaseServer27ProcessConnectionlessPacketEP11netpacket_s proc near
					; CODE XREF: CHLTVServer::ProcessConnectionlessPacket(netpacket_s *)+84p
					; DATA XREF: .rodata:`vtable for'CBaseServero ...

var_A70		= dword	ptr -0A70h
var_A6C		= dword	ptr -0A6Ch
var_A68		= dword	ptr -0A68h
var_A64		= dword	ptr -0A64h
var_A60		= dword	ptr -0A60h
var_A5C		= dword	ptr -0A5Ch
var_A50		= byte ptr -0A50h
var_250		= byte ptr -250h
var_150		= byte ptr -150h
var_50		= byte ptr -50h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0A9Ch
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebx+2Ch]
		mov	eax, [ebx+20h]
		mov	edx, [ebx+24h]
		mov	esi, [ebx+1Ch]
		mov	[ebp+var_20], ecx
		mov	ecx, [ebx+30h]
		mov	[ebp+var_2C], eax
		mov	eax, [ebx+28h]
		mov	[ebp+var_28], edx
		mov	[ebp+var_30], esi
		mov	[ebp+var_1C], ecx
		mov	ecx, edx
		sub	ecx, eax
		mov	[ebp+var_A68], edx
		cmp	ecx, 7
		jle	loc_C64C0
		lea	edi, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebp+var_24], edi
		mov	[ebp+var_A6C], ecx
		lea	ecx, [eax+7]
		mov	[ebp+var_A64], edi
		mov	edi, 20h
		sar	ecx, 5
		sub	edi, [ebp+var_A6C]
		mov	ecx, [esi+ecx*4]
		mov	[ebp+var_A5C], edi
		xor	edi, edi
		mov	[ebp+var_A60], ecx
		movzx	ecx, byte ptr [ebp+var_A5C]
		shl	[ebp+var_A60], cl
		mov	ecx, eax
		sar	ecx, 5
		mov	ecx, [esi+ecx*4]
		mov	[ebp+var_A5C], ecx
		movzx	ecx, byte ptr [ebp+var_A6C]
		shr	[ebp+var_A5C], cl
		movzx	ecx, byte ptr [ebp+var_A60]
		or	cl, byte ptr [ebp+var_A5C]
		jz	short loc_C64B2
		cmp	cl, 6Bh
		jz	short loc_C64E0
		cmp	cl, 71h
		jz	loc_C6818
		cmp	cl, 57h
		jz	loc_C67F0
		mov	eax, [ebx]
		mov	[esp+4], eax
		mov	eax, [ebx+4]
		mov	[esp+8], eax
		mov	eax, [ebx+8]
		mov	dword ptr [esp], offset	_ZL18s_queryRateChecker	; s_queryRateChecker
		mov	[esp+0Ch], eax
		call	_ZN12CIPRateLimit7CheckIPE8netadr_s ; CIPRateLimit::CheckIP(netadr_s)
		test	al, al
		jnz	loc_C6760

loc_C64B2:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+B1j
					; CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+2BAj	...
		add	esp, 0A9Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C64C0:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+3Dj
		lea	eax, [ebp+var_30]
		mov	[ebp+var_24], edx
		xor	edi, edi
		mov	[esp], eax
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		add	esp, 0A9Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C64E0:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+B6j
		mov	edx, [ebp+var_A68]
		sub	edx, [ebp+var_A64]
		cmp	edx, 1Fh
		jle	loc_C6930
		lea	edx, [eax+28h]
		mov	edi, [ebp+var_A64]
		add	eax, 27h
		mov	[ebp+var_24], edx
		sar	eax, 5
		mov	ecx, 20h
		mov	eax, [esi+eax*4]
		and	edi, 1Fh
		sub	ecx, edi
		shl	eax, cl
		mov	ecx, edi
		mov	[ebp+var_A6C], eax
		mov	eax, [ebp+var_A64]
		sar	eax, 5
		mov	eax, [esi+eax*4]
		shr	eax, cl
		or	[ebp+var_A6C], eax

loc_C6532:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+59Aj
		mov	eax, [ebp+var_A68]
		sub	eax, edx
		cmp	eax, 1Fh
		jle	loc_C6900
		mov	edi, [ebp+var_30]
		lea	eax, [edx+20h]
		mov	ecx, edx
		lea	esi, [edx+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_24], eax
		sar	esi, 5
		mov	[ebp+var_A60], ecx
		mov	ecx, 20h
		sub	ecx, [ebp+var_A60]
		sar	edx, 5
		mov	esi, [edi+esi*4]
		mov	edx, [edi+edx*4]
		mov	[ebp+var_A5C], esi
		shl	[ebp+var_A5C], cl
		movzx	ecx, byte ptr [ebp+var_A60]
		shr	edx, cl
		or	[ebp+var_A5C], edx

loc_C658C:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+56Aj
		mov	edx, [ebp+var_A68]
		sub	edx, eax
		cmp	edx, 1Fh
		jle	loc_C68D0
		mov	edi, [ebp+var_30]
		lea	edx, [eax+20h]
		mov	ecx, eax
		lea	esi, [eax+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_24], edx
		sar	esi, 5
		mov	[ebp+var_A64], ecx
		mov	ecx, 20h
		sub	ecx, [ebp+var_A64]
		sar	eax, 5
		mov	esi, [edi+esi*4]
		mov	eax, [edi+eax*4]
		mov	[ebp+var_A60], esi
		shl	[ebp+var_A60], cl
		movzx	ecx, byte ptr [ebp+var_A64]
		shr	eax, cl
		or	[ebp+var_A60], eax

loc_C65E6:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+53Aj
		mov	eax, [ebp+var_A68]
		sub	eax, edx
		cmp	eax, 1Fh
		jle	loc_C68B0
		mov	edi, [ebp+var_30]
		lea	eax, [edx+20h]
		mov	ecx, edx
		mov	[ebp+var_24], eax
		lea	eax, [edx+1Fh]
		and	ecx, 1Fh
		mov	[ebp+var_A64], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_A64]
		sar	edx, 5
		mov	esi, [edi+eax*4]
		mov	eax, [edi+edx*4]
		shl	esi, cl
		movzx	ecx, byte ptr [ebp+var_A64]
		shr	eax, cl
		or	esi, eax

loc_C6632:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+506j
		mov	edi, [ebp+arg_0]
		mov	edx, [ebp+var_A60]
		mov	eax, [edi]
		mov	[esp+4], ebx
		mov	[esp+8], edx
		mov	[esp], edi
		call	dword ptr [eax+0E4h]
		test	al, al
		jz	loc_C6888
		mov	eax, [ebx]
		xor	edi, edi
		mov	[esp+4], eax
		mov	eax, [ebx+4]
		mov	[esp+8], eax
		mov	eax, [ebx+8]
		mov	dword ptr [esp], offset	_ZL20s_connectRateChecker ; s_connectRateChecker
		mov	[esp+0Ch], eax
		call	_ZN12CIPRateLimit7CheckIPE8netadr_s ; CIPRateLimit::CheckIP(netadr_s)
		test	al, al
		jz	loc_C64B2
		lea	ecx, [ebp+var_250]
		mov	dword ptr [esp+10h], 0
		lea	edi, [ebp+var_30]
		mov	[esp+4], ecx
		mov	[esp], edi
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		lea	eax, [ebp+var_150]
		mov	[esp], edi
		mov	dword ptr [esp+10h], 0
		lea	edi, [ebp+var_50]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 100h
		mov	[esp+4], eax
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		lea	ecx, [ebp+var_30]
		mov	dword ptr [esp+10h], 0
		mov	[esp], ecx
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 20h
		mov	[esp+4], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	dword ptr [esp], offset	gpszVersionString ; s
		call	strlen
		mov	[esp+4], edi
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	gpszVersionString
		call	_Z9V_strncmpPKcS0_i ; V_strncmp(char  const*,char  const*,int)
		cmp	eax, 0
		jz	loc_C6978
		jl	loc_C6B40
		mov	edx, [ebp+arg_0]
		mov	edi, 1
		mov	eax, [edx]
		mov	dword ptr [esp+0Ch], offset aGameui_serv_13 ; "#GameUI_ServerRejectNewVersion"
		mov	[esp+8], esi
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+0C0h]
		jmp	loc_C64B2
; ---------------------------------------------------------------------------
		align 10h

loc_C6760:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+ECj
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	edi, 1
		mov	eax, [eax]
		test	eax, eax
		jz	loc_C64B2
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	[esp], eax
		call	_ZN13CSteam3Server38IsMasterServerUpdaterSharingGameSocketEv ; CSteam3Server::IsMasterServerUpdaterSharingGameSocket(void)
		test	al, al
		jz	loc_C64B2
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	esi, [eax]
		mov	eax, [esi]
		mov	eax, [eax+94h]
		mov	[esp], ebx
		mov	[ebp+var_A60], eax
		call	_ZNK8netadr_s7GetPortEv	; netadr_s::GetPort(void)
		mov	[esp], ebx
		mov	word ptr [ebp+var_A5C],	ax
		call	_ZNK8netadr_s18GetIPHostByteOrderEv ; netadr_s::GetIPHostByteOrder(void)
		movzx	edx, word ptr [ebp+var_A5C]
		mov	[esp+0Ch], eax
		mov	[esp+10h], edx
		mov	eax, [ebx+20h]
		mov	[esp+8], eax
		mov	eax, [ebx+1Ch]
		mov	[esp], esi
		mov	[esp+4], eax
		call	[ebp+var_A60]
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_ZN11CBaseServer37ForwardPacketsFromMasterServerUpdaterEv ; CBaseServer::ForwardPacketsFromMasterServerUpdater(void)
		jmp	loc_C64B2
; ---------------------------------------------------------------------------
		align 10h

loc_C67F0:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+C4j
		mov	edx, [ebp+arg_0]
		mov	edi, 1
		mov	eax, [edx]
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+0F8h]
		add	esp, 0A9Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C6818:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+BBj
		mov	ecx, edx
		sub	ecx, [ebp+var_A64]
		cmp	ecx, 1Fh
		jle	loc_C6960
		lea	edx, [eax+28h]
		mov	edi, [ebp+var_A64]
		add	eax, 27h
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_A64]
		sar	eax, 5
		mov	eax, [esi+eax*4]
		mov	ecx, 20h
		and	edi, 1Fh
		sar	edx, 5
		sub	ecx, edi
		mov	edx, [esi+edx*4]
		shl	eax, cl
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx

loc_C685C:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+5B0j
		mov	edi, [ebp+arg_0]
		mov	edx, [edi]
		mov	[esp+8], eax
		mov	[esp+4], ebx
		mov	[esp], edi
		mov	edi, 1
		call	dword ptr [edx+0F4h]
		add	esp, 0A9Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C6888:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+290j
		mov	eax, [edi]
		mov	dword ptr [esp+0Ch], offset aGameui_serve_9 ; "#GameUI_ServerRejectBadChallenge"

loc_C6892:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+630j
					; CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+78Dj
		mov	[esp], edi
		mov	edi, 1
		mov	[esp+8], esi
		mov	[esp+4], ebx
		call	dword ptr [eax+0C0h]
		jmp	loc_C64B2
; ---------------------------------------------------------------------------
		align 10h

loc_C68B0:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+231j
		mov	edi, [ebp+var_A68]
		lea	eax, [ebp+var_30]
		xor	esi, esi
		mov	[esp], eax
		mov	[ebp+var_24], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_C6632
; ---------------------------------------------------------------------------
		align 10h

loc_C68D0:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+1D7j
		mov	edi, [ebp+var_A68]
		lea	eax, [ebp+var_30]
		mov	[esp], eax
		mov	[ebp+var_24], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edx, [ebp+var_28]
		mov	[ebp+var_A60], 0
		mov	[ebp+var_A68], edx
		mov	edx, [ebp+var_24]
		jmp	loc_C65E6
; ---------------------------------------------------------------------------
		align 10h

loc_C6900:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+17Dj
		mov	edi, [ebp+var_A68]
		lea	eax, [ebp+var_30]
		mov	[esp], eax
		mov	[ebp+var_24], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edx, [ebp+var_28]
		mov	[ebp+var_A5C], 0
		mov	eax, [ebp+var_24]
		mov	[ebp+var_A68], edx
		jmp	loc_C658C
; ---------------------------------------------------------------------------
		align 10h

loc_C6930:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+12Fj
		mov	edi, [ebp+var_A68]
		lea	eax, [ebp+var_30]
		mov	[esp], eax
		mov	[ebp+var_24], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edx, [ebp+var_28]
		mov	[ebp+var_A6C], 0
		mov	[ebp+var_A68], edx
		mov	edx, [ebp+var_24]
		jmp	loc_C6532
; ---------------------------------------------------------------------------
		align 10h

loc_C6960:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+463j
		lea	edi, [ebp+var_30]
		mov	[ebp+var_24], edx
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_C685C
; ---------------------------------------------------------------------------
		align 4

loc_C6978:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+364j
		cmp	[ebp+var_A5C], 3
		jnz	short loc_C69F5
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 0Fh
		jle	loc_C6AB3
		lea	eax, [edx+10h]
		mov	ecx, edx
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_30]
		and	ecx, 1Fh
		lea	edi, [edx+0Fh]
		mov	[ebp+var_A5C], ecx
		mov	ecx, 20h
		sar	edi, 5
		sub	ecx, [ebp+var_A5C]
		mov	edi, [eax+edi*4]
		mov	eax, edx
		mov	edx, [ebp+var_30]
		sar	eax, 5
		shl	edi, cl
		movzx	ecx, byte ptr [ebp+var_A5C]
		mov	eax, [edx+eax*4]
		shr	eax, cl
		or	edi, eax
		movsx	edi, di
		cmp	edi, 800h
		jbe	loc_C6AC3
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+0Ch], offset aGameui_serv_14 ; "#GameUI_ServerRejectBadSteamKey"
		jmp	loc_C6892
; ---------------------------------------------------------------------------

loc_C69F5:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+5BFj
		lea	ecx, [ebp+var_30]
		mov	dword ptr [esp+10h], 0
		lea	edi, [ebp+var_A50]
		mov	[esp], ecx
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 800h
		mov	[esp+4], edi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		mov	ecx, edi

loc_C6A24:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+679j
		mov	eax, [ecx]
		add	ecx, 4
		lea	edx, [eax-1010101h]
		not	eax
		and	edx, eax
		and	edx, 80808080h
		jz	short loc_C6A24
		mov	eax, edx
		shr	eax, 10h
		test	edx, 8080h
		cmovz	edx, eax
		lea	eax, [ecx+2]
		cmovz	ecx, eax
		add	dl, dl
		mov	edx, [ebp+arg_0]
		sbb	ecx, 3
		sub	ecx, edi
		mov	eax, [edx]
		mov	[esp+20h], edi
		lea	edi, [ebp+var_250]
		mov	edx, [ebp+var_A5C]
		mov	[esp+18h], edi
		mov	edi, [ebp+var_A60]
		mov	[esp+24h], ecx
		lea	ecx, [ebp+var_150]
		mov	[esp+1Ch], ecx
		mov	[esp+10h], esi
		mov	[esp+14h], edx
		mov	edx, [ebp+var_A6C]
		mov	[esp+0Ch], edi
		mov	edi, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp+8], edx
		mov	[esp], edi
		mov	edi, 1
		call	dword ptr [eax+0C8h]
		jmp	loc_C64B2
; ---------------------------------------------------------------------------

loc_C6AB3:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+5CEj
		lea	ecx, [ebp+var_30]
		mov	[ebp+var_24], eax
		xor	edi, edi
		mov	[esp], ecx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_C6AC3:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+61Dj
		lea	edx, [ebp+var_A50]
		mov	[esp+8], edi
		lea	eax, [ebp+var_30]
		mov	[esp+4], edx
		mov	[ebp+var_A70], edx
		mov	[esp], eax
		call	_ZN7bf_read9ReadBytesEPvi ; bf_read::ReadBytes(void *,int)
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_A70]
		mov	eax, [ecx]
		mov	[esp+24h], edi
		lea	edi, [ebp+var_150]
		mov	[esp+20h], edx
		lea	edx, [ebp+var_250]
		mov	[esp+1Ch], edi
		mov	edi, [ebp+var_A60]
		mov	[esp+18h], edx
		mov	edx, [ebp+var_A6C]
		mov	dword ptr [esp+14h], 3
		mov	[esp+10h], esi
		mov	[esp+0Ch], edi
		mov	edi, 1
		mov	[esp+8], edx
		mov	[esp+4], ebx
		mov	[esp], ecx
		call	dword ptr [eax+0C8h]
		jmp	loc_C64B2
; ---------------------------------------------------------------------------

loc_C6B40:				; CODE XREF: CBaseServer::ProcessConnectionlessPacket(netpacket_s *)+36Aj
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	dword ptr [esp+0Ch], offset aGameui_serv_15 ; "#GameUI_ServerRejectOldVersion"
		jmp	loc_C6892
_ZN11CBaseServer27ProcessConnectionlessPacketEP11netpacket_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::RemoveTag(char  const*)
_ZN11CBaseServer9RemoveTagEPKc proc near
					; CODE XREF: CBaseServer::RecalculateTags(void)+138p
					; CBaseServer::RecalculateTags(void)+21Bp ...

var_B9		= byte ptr -0B9h
s		= byte ptr -0ACh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		mov	edx, dword ptr ds:sv_tags+14h
		and	edx, 1000h
		jnz	short loc_C6B91
		mov	eax, dword ptr ds:sv_tags+1Ch
		mov	ecx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, ecx

loc_C6B91:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+1Dj
		cmp	byte ptr [eax],	0
		jnz	short loc_C6BA8
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C6BA8:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+34j
		test	edx, edx
		mov	[ebp+s], 0
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		jnz	short loc_C6BED
		mov	eax, dword ptr ds:sv_tags+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx

loc_C6BED:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+79j
		lea	esi, [ebp+var_2C]
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	[esp+8], esi	; int
		mov	[esp], eax	; src
		call	_Z13V_SplitStringPKcS0_R10CUtlVectorIPc10CUtlMemoryIS2_iEE ; V_SplitString(char	 const*,char  const*,CUtlVector<char *,CUtlMemory<char *,int>> &)
		mov	eax, [ebp+var_20]
		test	eax, eax
		jle	loc_C6D21
		xor	ebx, ebx
		mov	[ebp+var_B9], 0
		jmp	short loc_C6C31
; ---------------------------------------------------------------------------
		align 10h

loc_C6C20:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+EEj
		mov	eax, [esi+0Ch]
		add	ebx, 1
		mov	[ebp+var_B9], 1
		cmp	eax, ebx
		jle	short loc_C6CA7

loc_C6C31:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+B8j
					; CBaseServer::RemoveTag(char  const*)+145j
		mov	eax, [ebp+arg_4]
		lea	edi, ds:0[ebx*4]
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	eax, [eax+ebx*4]
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_C6C20
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	eax, [esi]
		mov	eax, [eax+edi]
		mov	[esp+4], eax	; int
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		lea	eax, [ebp+s]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	[esp], eax	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	eax, [esi+0Ch]
		add	ebx, 1
		cmp	eax, ebx
		jg	short loc_C6C31

loc_C6CA7:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+CFj
		test	eax, eax
		jle	short loc_C6CC5
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_C6CB0:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+163j
		mov	eax, [esi]
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		cmp	ebx, [ebp+var_20]
		jl	short loc_C6CB0

loc_C6CC5:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+149j
		mov	[ebp+var_20], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		cmp	[ebp+var_B9], 0
		mov	[ebp+var_1C], eax
		jz	short loc_C6CF9
		lea	eax, [ebp+s]
		mov	dword ptr [esp], offset	sv_tags
		mov	[esp+4], eax
		call	_ZN6ConVar8SetValueEPKc	; ConVar::SetValue(char	 const*)

loc_C6CF9:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+181j
					; CBaseServer::RemoveTag(char  const*)+1D6j
		mov	[esp], esi
		mov	[ebp+var_20], 0
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C6D21:				; CODE XREF: CBaseServer::RemoveTag(char  const*)+A9j
		mov	[ebp+var_20], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_1C], eax
		jmp	short loc_C6CF9
_ZN11CBaseServer9RemoveTagEPKc endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEED2Ev ; CUtlVector<char *,CUtlMemory<char *,int>>::~CUtlVector()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SvTagsChangeCallback(IConVar *, char	const*,	float)
_ZL20SvTagsChangeCallbackP7IConVarPKcf proc near
					; DATA XREF: _GLOBAL__sub_I_g_svInstanceBaselineMutex+3FBo

s		= byte ptr -0BCh
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		cmp	ds:_ZZL20SvTagsChangeCallbackP7IConVarPKcfE19bTagsChangeCallback, 0 ; SvTagsChangeCallback(IConVar *,char  const*,float)::bTagsChangeCallback
		jz	short loc_C6D70
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C6D70:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+13j
		lea	esi, [ebp+var_20]
		mov	ds:_ZZL20SvTagsChangeCallbackP7IConVarPKcfE19bTagsChangeCallback, 1 ; SvTagsChangeCallback(IConVar *,char  const*,float)::bTagsChangeCallback
		mov	[ebp+var_3C], 0
		lea	ebx, [ebp+var_3C]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	dword ptr [esp+4], offset aSv_tags ; "sv_tags"
		mov	[esp], esi
		call	_ZN9ConVarRefC2EPKc ; ConVarRef::ConVarRef(char	 const*)
		mov	[esp], esi
		call	_ZNK9ConVarRef7IsValidEv ; ConVarRef::IsValid(void)
		test	al, al
		jz	loc_C6F7A
		mov	eax, [ebp+var_1C]
		lea	ebx, [ebp+var_3C]
		mov	[ebp+s], 0
		mov	[esp+8], ebx	; int
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	eax, [eax+24h]
		mov	[esp], eax	; src
		call	_Z13V_SplitStringPKcS0_R10CUtlVectorIPc10CUtlMemoryIS2_iEE ; V_SplitString(char	 const*,char  const*,CUtlVector<char *,CUtlMemory<char *,int>> &)
		mov	eax, [ebp+var_30]
		lea	edi, [ebp+s]
		xor	esi, esi
		test	eax, eax
		jle	loc_C6E95
		mov	esi, esi
		lea	edi, [edi+0]

loc_C6E00:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+DBj
					; SvTagsChangeCallback(IConVar *,char  const*,float)+FDj
		mov	eax, [ebx]
		mov	eax, [eax+esi*4]
		movzx	edx, byte ptr [eax]
		cmp	dl, 20h
		jnz	short loc_C6E1B
		lea	esi, [esi+0]

loc_C6E10:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+C9j
		add	eax, 1
		movzx	edx, byte ptr [eax]
		cmp	dl, 20h
		jz	short loc_C6E10

loc_C6E1B:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+BBj
		test	dl, dl
		jnz	short loc_C6E50
		mov	eax, [ebx+0Ch]
		add	esi, 1
		cmp	esi, eax
		jge	short loc_C6E76

loc_C6E29:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+124j
		test	esi, esi
		jle	short loc_C6E00
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		jmp	short loc_C6E00
; ---------------------------------------------------------------------------
		align 10h

loc_C6E50:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+CDj
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	[esp+4], eax	; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	eax, [ebx+0Ch]
		add	esi, 1
		cmp	esi, eax
		jl	short loc_C6E29

loc_C6E76:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+D7j
		test	eax, eax
		jle	short loc_C6E95
		xor	esi, esi
		lea	esi, [esi+0]

loc_C6E80:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+143j
		mov	eax, [ebx]
		mov	eax, [eax+esi*4]
		add	esi, 1
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		cmp	esi, [ebp+var_30]
		jl	short loc_C6E80

loc_C6E95:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+A1j
					; SvTagsChangeCallback(IConVar *,char  const*,float)+128j
		mov	[ebp+var_30], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_3C]
		mov	[esp+8], ebx	; int
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	[esp], edi	; src
		mov	[ebp+var_2C], eax
		call	_Z13V_SplitStringPKcS0_R10CUtlVectorIPc10CUtlMemoryIS2_iEE ; V_SplitString(char	 const*,char  const*,CUtlVector<char *,CUtlMemory<char *,int>> &)
		mov	dword ptr [esp+4], offset _Z14SortServerTagsPKPcS1_ ; compar
		mov	[esp], ebx	; int
		call	_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEE4SortEPFiPKS0_S5_E	; CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char * const*))
		mov	eax, [ebp+var_30]
		xor	esi, esi
		mov	[ebp+s], 0
		test	eax, eax
		jle	short loc_C6F2F
		db	66h
		nop

loc_C6EE0:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+1BBj
					; SvTagsChangeCallback(IConVar *,char  const*,float)+1DDj
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	eax, [ebx]
		mov	eax, [eax+esi*4]
		mov	[esp], edi	; s
		mov	[esp+4], eax	; int
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		add	esi, 1
		cmp	esi, [ebx+0Ch]
		jge	short loc_C6F2F
		test	esi, esi
		jle	short loc_C6EE0
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		jmp	short loc_C6EE0
; ---------------------------------------------------------------------------

loc_C6F2F:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+18Cj
					; SvTagsChangeCallback(IConVar *,char  const*,float)+1B7j
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx]
		mov	eax, [ebp+var_30]
		test	eax, eax
		jle	short loc_C6F65
		xor	esi, esi
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_C6F50:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+213j
		mov	eax, [ebx]
		mov	eax, [eax+esi*4]
		add	esi, 1
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		cmp	esi, [ebp+var_30]
		jl	short loc_C6F50

loc_C6F65:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+1F2j
		mov	[ebp+var_30], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_2C], eax

loc_C6F7A:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+6Aj
		mov	[ebp+var_30], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_3C]
		mov	[esp], ebx
		mov	[ebp+var_2C], eax
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		lea	eax, [ebp+var_28]
		mov	[esp], eax
		call	_ZN9ConVarRefC2EP7IConVar ; ConVarRef::ConVarRef(IConVar *)
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_C6FCD
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	ecx, [ebp+var_24]
		mov	eax, [eax]
		mov	ecx, [ecx+24h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+54h]

loc_C6FCD:				; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+262j
		mov	ds:_ZZL20SvTagsChangeCallbackP7IConVarPKcfE19bTagsChangeCallback, 0 ; SvTagsChangeCallback(IConVar *,char  const*,float)::bTagsChangeCallback
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZL20SvTagsChangeCallbackP7IConVarPKcf endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEED2Ev ; CUtlVector<char *,CUtlMemory<char *,int>>::~CUtlVector()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseServer__AddTag(int, char *src)
_ZN11CBaseServer6AddTagEPKc proc near	; CODE XREF: CBaseServer::RecalculateTags(void)+94p
					; CBaseServer::RecalculateTags(void)+1BBp ...

s		= byte ptr -0ACh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
src		= dword	ptr  0Ch

		push	ebp
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0BCh
		mov	[ebp+var_2C], 0
		test	ds:sv_tags+15h,	10h
		mov	[ebp+var_28], 0
		mov	edi, [ebp+src]
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		jnz	short loc_C7052
		mov	eax, dword ptr ds:sv_tags+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx

loc_C7052:				; CODE XREF: CBaseServer::AddTag(char  const*)+3Ej
		lea	esi, [ebp+var_2C]
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	[esp+8], esi	; int
		mov	[esp], eax	; src
		call	_Z13V_SplitStringPKcS0_R10CUtlVectorIPc10CUtlMemoryIS2_iEE ; V_SplitString(char	 const*,char  const*,CUtlVector<char *,CUtlMemory<char *,int>> &)
		mov	edx, [ebp+var_20]
		test	edx, edx
		jle	short loc_C70E5
		xor	ebx, ebx
		jmp	short loc_C7082
; ---------------------------------------------------------------------------
		align 8

loc_C7078:				; CODE XREF: CBaseServer::AddTag(char  const*)+95j
		mov	eax, [esi+0Ch]
		add	ebx, 1
		cmp	eax, ebx
		jle	short loc_C70C0

loc_C7082:				; CODE XREF: CBaseServer::AddTag(char  const*)+72j
		mov	[esp+4], edi
		mov	eax, [esi]
		mov	eax, [eax+ebx*4]
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_C7078

loc_C7097:				; CODE XREF: CBaseServer::AddTag(char  const*)+187j
		mov	[esp], esi
		mov	[ebp+var_20], 0
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		add	esp, 0BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C70C0:				; CODE XREF: CBaseServer::AddTag(char  const*)+80j
		test	eax, eax
		jle	short loc_C70E5
		xor	ebx, ebx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_C70D0:				; CODE XREF: CBaseServer::AddTag(char  const*)+E3j
		mov	eax, [esi]
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		cmp	ebx, [ebp+var_20]
		jl	short loc_C70D0

loc_C70E5:				; CODE XREF: CBaseServer::AddTag(char  const*)+6Ej
					; CBaseServer::AddTag(char  const*)+C2j
		mov	[ebp+var_20], 0
		lea	ebx, [ebp+s]
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[ebp+s], 0
		mov	dword ptr [esp+8], 80h ; n
		mov	[esp+4], edi	; src
		mov	[esp], ebx	; dest
		mov	[ebp+var_1C], eax
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	dword ptr [esp+4], (offset aS_1+4) ; int
		mov	[esp], ebx	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		test	ds:sv_tags+15h,	10h
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jnz	short loc_C715B
		mov	eax, dword ptr ds:sv_tags+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx

loc_C715B:				; CODE XREF: CBaseServer::AddTag(char  const*)+147j
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 80h ; int
		mov	[esp+4], eax	; int
		mov	[esp], ebx	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	sv_tags
		call	_ZN6ConVar8SetValueEPKc	; ConVar::SetValue(char	 const*)
		jmp	loc_C7097
_ZN11CBaseServer6AddTagEPKc endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEED2Ev ; CUtlVector<char *,CUtlMemory<char *,int>>::~CUtlVector()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::RecalculateTags(void)
_ZN11CBaseServer15RecalculateTagsEv proc near
					; CODE XREF: SetMasterServerKeyValue(ISteamGameServer *,IConVar	*)+83p
					; CBaseServer::UpdateMasterServerRules(void)+AEp ...

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+6Ch]
		test	al, al
		jz	short loc_C71C0

loc_C71B8:				; CODE XREF: CBaseServer::RecalculateTags(void)+2Aj
					; CBaseServer::RecalculateTags(void)+33j
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C71C0:				; CODE XREF: CBaseServer::RecalculateTags(void)+16j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_C71B8
		cmp	ds:_ZZN11CBaseServer15RecalculateTagsEvE18bRecalculatingTags, 0	; CBaseServer::RecalculateTags(void)::bRecalculatingTags
		jnz	short loc_C71B8
		mov	esi, ds:serverGameTags
		mov	ds:_ZZN11CBaseServer15RecalculateTagsEvE18bRecalculatingTags, 1	; CBaseServer::RecalculateTags(void)::bRecalculatingTags
		test	esi, esi
		jz	loc_C72F0
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	dword ptr [esp+4], offset aGametags ; "GameTags"
		mov	esi, eax
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	eax, ds:serverGameTags
		mov	edx, [eax]
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx]
		mov	edi, [esi+18h]
		test	edi, edi
		jnz	short loc_C7244
		jmp	loc_C72E8
; ---------------------------------------------------------------------------
		align 8

loc_C7228:				; CODE XREF: CBaseServer::RecalculateTags(void)+126j
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; src
		call	_ZN11CBaseServer6AddTagEPKc ; CBaseServer::AddTag(char	const*)

loc_C7239:				; CODE XREF: CBaseServer::RecalculateTags(void)+DAj
		mov	edi, [edi+14h]
		test	edi, edi
		jz	loc_C72E8

loc_C7244:				; CODE XREF: CBaseServer::RecalculateTags(void)+7Dj
					; CBaseServer::RecalculateTags(void)+142j
		mov	eax, ds:g_pCVar
		mov	eax, [eax]
		mov	eax, [eax+30h]
		mov	dword ptr [esp+8], (offset asc_20E578+4) ; int
		mov	dword ptr [esp+4], offset aConvar ; "convar"
		mov	[esp], edi	; int
		mov	[ebp+var_3C], eax
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		mov	[esp+4], eax
		mov	eax, ds:g_pCVar
		mov	[esp], eax
		call	[ebp+var_3C]
		test	eax, eax
		jz	short loc_C7239
		mov	[esp], eax
		mov	[ebp+var_40], eax
		call	_ZNK6ConVar10GetDefaultEv ; ConVar::GetDefault(void)
		mov	edx, [ebp+var_40]
		mov	ecx, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		test	byte ptr [edx+15h], 10h
		jnz	short loc_C72A5
		mov	edx, [edx+1Ch]
		mov	ecx, [edx+24h]
		mov	edx, (offset asc_20E578+4)
		test	ecx, ecx
		cmovz	ecx, edx

loc_C72A5:				; CODE XREF: CBaseServer::RecalculateTags(void)+F3j
		mov	[esp+4], ecx	; s2
		mov	[esp], eax	; s1
		call	strcmp
		mov	dword ptr [esp+8], (offset asc_20E578+4) ; int
		test	eax, eax
		mov	dword ptr [esp+4], offset aTag ; "tag"
		mov	[esp], edi	; int
		jnz	loc_C7228
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN11CBaseServer9RemoveTagEPKc ; CBaseServer::RemoveTag(char  const*)
		mov	edi, [edi+14h]
		test	edi, edi
		jnz	loc_C7244

loc_C72E8:				; CODE XREF: CBaseServer::RecalculateTags(void)+7Fj
					; CBaseServer::RecalculateTags(void)+9Ej
		mov	[esp], esi	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_C72F0:				; CODE XREF: CBaseServer::RecalculateTags(void)+44j
		mov	eax, ds:serverGameClients
		mov	[ebp+var_24], 1
		lea	ecx, [ebp+var_1C]
		mov	[ebp+var_20], 0FFh
		mov	[ebp+var_1C], 1
		mov	edx, [eax]
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_20]
		mov	[esp+8], ecx
		lea	ecx, [ebp+var_24]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		mov	esi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		sub	esi, eax
		mov	eax, dword ptr ds:sv_visiblemaxplayers+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jle	short loc_C734B
		cmp	esi, eax
		cmovg	esi, eax

loc_C734B:				; CODE XREF: CBaseServer::RecalculateTags(void)+1A4j
		cmp	esi, [ebp+var_1C]
		mov	dword ptr [esp+4], offset aIncreased_maxp ; "increased_maxplayers"
		mov	[esp], ebx	; int
		jle	short loc_C73C8
		call	_ZN11CBaseServer6AddTagEPKc ; CBaseServer::AddTag(char	const*)

loc_C7360:				; CODE XREF: CBaseServer::RecalculateTags(void)+230j
		lea	esi, [ebp+var_2C]
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aReplay_enable ; "replay_enable"
		mov	[esp], esi
		call	_ZN9ConVarRefC2EPKcb ; ConVarRef::ConVarRef(char  const*,bool)
		mov	[esp], esi
		call	_ZNK9ConVarRef7IsValidEv ; ConVarRef::IsValid(void)
		test	al, al
		jz	short loc_C73B0
		mov	eax, [ebp+var_28]
		mov	ecx, [eax+30h]
		test	ecx, ecx
		jz	short loc_C73B0
		mov	dword ptr [esp+4], offset aReplays ; "replays"
		mov	[esp], ebx	; int
		call	_ZN11CBaseServer6AddTagEPKc ; CBaseServer::AddTag(char	const*)

loc_C73A1:				; CODE XREF: CBaseServer::RecalculateTags(void)+220j
		mov	ds:_ZZN11CBaseServer15RecalculateTagsEvE18bRecalculatingTags, 0	; CBaseServer::RecalculateTags(void)::bRecalculatingTags
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C73B0:				; CODE XREF: CBaseServer::RecalculateTags(void)+1E5j
					; CBaseServer::RecalculateTags(void)+1EFj
		mov	dword ptr [esp+4], offset aReplays ; "replays"
		mov	[esp], ebx
		call	_ZN11CBaseServer9RemoveTagEPKc ; CBaseServer::RemoveTag(char  const*)
		jmp	short loc_C73A1
; ---------------------------------------------------------------------------
		align 8

loc_C73C8:				; CODE XREF: CBaseServer::RecalculateTags(void)+1B9j
		call	_ZN11CBaseServer9RemoveTagEPKc ; CBaseServer::RemoveTag(char  const*)
		lea	esi, [esi+0]
		jmp	short loc_C7360
_ZN11CBaseServer15RecalculateTagsEv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetMasterServerKeyValue(ISteamGameServer *, IConVar *)
_ZL23SetMasterServerKeyValueP16ISteamGameServerP7IConVar proc near
					; CODE XREF: ServerNotifyVarChangeCallback(IConVar *,char  const*,float)+3Aj
					; CBaseServer::UpdateMasterServerRules(void)+83p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		lea	esi, [ebp+var_20]
		mov	[ebp+var_C], ebx
		mov	ebx, eax
		mov	[esp+4], edx
		mov	[ebp+var_4], edi
		mov	[esp], esi
		call	_ZN9ConVarRefC2EP7IConVar ; ConVarRef::ConVarRef(IConVar *)
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 20h
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jz	loc_C74C0
		mov	eax, [ebp+var_1C]
		mov	eax, [eax+24h]
		cmp	byte ptr [eax],	0
		jnz	short loc_C7488

loc_C7436:				; CODE XREF: SetMasterServerKeyValue(ISteamGameServer *,IConVar	*)+AAj
		mov	eax, [ebx]
		mov	esi, [eax+50h]
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	dword ptr [esp+8], (offset a20_0+3)
		mov	[esp+4], eax
		mov	[esp], ebx
		call	esi

loc_C7457:				; CODE XREF: SetMasterServerKeyValue(ISteamGameServer *,IConVar	*)+CDj
					; SetMasterServerKeyValue(ISteamGameServer *,IConVar *)+F3j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	edx, [eax]
		test	edx, edx
		jz	short loc_C7478
		mov	edi, [eax+0A4h]
		test	edi, edi
		jle	short loc_C7478
		mov	dword ptr [esp], offset	sv
		call	_ZN11CBaseServer15RecalculateTagsEv ; CBaseServer::RecalculateTags(void)

loc_C7478:				; CODE XREF: SetMasterServerKeyValue(ISteamGameServer *,IConVar	*)+70j
					; SetMasterServerKeyValue(ISteamGameServer *,IConVar *)+7Aj
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_C7488:				; CODE XREF: SetMasterServerKeyValue(ISteamGameServer *,IConVar	*)+44j
		mov	dword ptr [esp+4], offset aNone	; "none"
		mov	[esp], eax	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_C7436
		mov	eax, [ebx]
		mov	edi, [eax+50h]
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	dword ptr [esp+8], (offset a1+1)
		mov	[esp+4], eax
		mov	[esp], ebx
		call	edi
		jmp	short loc_C7457
; ---------------------------------------------------------------------------
		align 10h

loc_C74C0:				; CODE XREF: SetMasterServerKeyValue(ISteamGameServer *,IConVar	*)+35j
		mov	eax, [ebx]
		mov	esi, [eax+50h]
		mov	eax, [ebp+var_1C]
		mov	edi, [eax+24h]
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	[esp+8], edi
		mov	[esp+4], eax
		mov	[esp], ebx
		call	esi
		jmp	loc_C7457
_ZL23SetMasterServerKeyValueP16ISteamGameServerP7IConVar endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ServerNotifyVarChangeCallback(IConVar	*, char	 const*, float)
_ZL29ServerNotifyVarChangeCallbackP7IConVarPKcf	proc near
					; DATA XREF: CBaseServer::Init(bool)+62o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 100h
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		test	al, al
		jnz	short loc_C7518

loc_C750E:				; CODE XREF: ServerNotifyVarChangeCallback(IConVar *,char  const*,float)+47j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C7518:				; CODE XREF: ServerNotifyVarChangeCallback(IConVar *,char  const*,float)+1Cj
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_C7530
		add	esp, 14h
		mov	edx, ebx
		pop	ebx
		pop	ebp
		jmp	_ZL23SetMasterServerKeyValueP16ISteamGameServerP7IConVar ; SetMasterServerKeyValue(ISteamGameServer *,IConVar *)
; ---------------------------------------------------------------------------
		align 10h

loc_C7530:				; CODE XREF: ServerNotifyVarChangeCallback(IConVar *,char  const*,float)+31j
		mov	ds:sv+14Dh, 1
		jmp	short loc_C750E
_ZL29ServerNotifyVarChangeCallbackP7IConVarPKcf	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::UpdateMasterServerRules(void)
_ZN11CBaseServer23UpdateMasterServerRulesEv proc near
					; CODE XREF: CBaseServer::UpdateMasterServer(void)+180p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		cmp	byte ptr [edi+14Dh], 0
		jnz	short loc_C7560

loc_C7555:				; CODE XREF: CBaseServer::UpdateMasterServerRules(void)+29j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C7560:				; CODE XREF: CBaseServer::UpdateMasterServerRules(void)+13j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_C7555
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+4Ch]
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+40h]
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_C759E
		jmp	short loc_C75E0
; ---------------------------------------------------------------------------
		align 10h

loc_C7590:				; CODE XREF: CBaseServer::UpdateMasterServerRules(void)+70j
					; CBaseServer::UpdateMasterServerRules(void)+7Cj
		mov	[esp], ebx
		call	_ZN14ConCommandBase7GetNextEv ;	ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_C75E0

loc_C759E:				; CODE XREF: CBaseServer::UpdateMasterServerRules(void)+44j
					; CBaseServer::UpdateMasterServerRules(void)+94j
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 100h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_C7590
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+8]
		test	al, al
		jnz	short loc_C7590
		lea	edx, [ebx+18h]
		mov	eax, esi
		call	_ZL23SetMasterServerKeyValueP16ISteamGameServerP7IConVar ; SetMasterServerKeyValue(ISteamGameServer *,IConVar *)
		mov	[esp], ebx
		call	_ZN14ConCommandBase7GetNextEv ;	ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_C759E
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_C75E0:				; CODE XREF: CBaseServer::UpdateMasterServerRules(void)+46j
					; CBaseServer::UpdateMasterServerRules(void)+5Cj
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_C75F3
		mov	[esp], edi
		call	_ZN11CBaseServer15RecalculateTagsEv ; CBaseServer::RecalculateTags(void)

loc_C75F3:				; CODE XREF: CBaseServer::UpdateMasterServerRules(void)+A9j
		mov	byte ptr [edi+14Dh], 0
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer23UpdateMasterServerRulesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::UpdateMasterServer(void)
_ZN11CBaseServer18UpdateMasterServerEv proc near
					; CODE XREF: CBaseServer::RunFrame(void)+176p
					; CHLTVServer::RunFrame(void)+203p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+100h]
		test	al, al
		jz	short loc_C7640
		jmp	short loc_C7650
; ---------------------------------------------------------------------------
		align 8

loc_C7638:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+62j
		fstp	st
		lea	esi, [esi+0]

loc_C7640:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+1Fj
					; CBaseServer::UpdateMasterServer(void)+49j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C7650:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+21j
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_C7640
		call	Plat_FloatTime
		fld	qword ptr [ebx+150h]
		fsubr	st, st(1)
		fld	ds:flt_1F3190
		fcomip	st, st(1)
		fstp	st
		ja	short loc_C7638
		fstp	qword ptr [ebx+150h]
		mov	[esp], ebx
		call	_ZN11CBaseServer37ForwardPacketsFromMasterServerUpdaterEv ; CBaseServer::ForwardPacketsFromMasterServerUpdater(void)
		mov	[esp], ebx
		call	_ZN11CBaseServer31CheckMasterServerRequestRestartEv ; CBaseServer::CheckMasterServerRequestRestart(void)
		call	_Z15NET_IsDedicatedv ; NET_IsDedicated(void)
		test	al, al
		jz	short loc_C769E
		mov	eax, dword ptr ds:sv_region+1Ch
		cmp	dword ptr [eax+30h], 0FFFFFFFFh
		jz	short loc_C7708

loc_C769E:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+81j
					; CBaseServer::UpdateMasterServer(void)+10Cj
		cmp	byte ptr ds:_ZGVZN11CBaseServer18UpdateMasterServerEvE20bUpdateMasterServers, 0	; `guard variable for'CBaseServer::UpdateMasterServer(void)::bUpdateMasterServers
		jz	short loc_C7720

loc_C76A7:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+11Ej
					; CBaseServer::UpdateMasterServer(void)+14Ej
		cmp	ds:_ZZN11CBaseServer18UpdateMasterServerEvE20bUpdateMasterServers, 0 ; CBaseServer::UpdateMasterServer(void)::bUpdateMasterServers
		jz	short loc_C7640
		mov	eax, [ebx]
		mov	[esp], ebx
		xor	esi, esi
		call	dword ptr [eax+54h]
		test	al, al
		jnz	loc_C77C0

loc_C76C2:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+1BFj
		mov	eax, ds:serverGameDLL
		test	eax, eax
		jz	loc_C7768
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+84h]
		test	al, al
		jz	loc_C7768
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	eax, [eax]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+9Ch]
		jmp	loc_C7640
; ---------------------------------------------------------------------------
		align 8

loc_C7708:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+8Cj
		mov	dword ptr [esp+4], 0FFh
		mov	dword ptr [esp], offset	sv_region
		call	_ZN6ConVar8SetValueEi ;	ConVar::SetValue(int)
		jmp	short loc_C769E
; ---------------------------------------------------------------------------
		align 10h

loc_C7720:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+95j
		mov	dword ptr [esp], offset	_ZGVZN11CBaseServer18UpdateMasterServerEvE20bUpdateMasterServers ; `guard variable for'CBaseServer::UpdateMasterServer(void)::bUpdateMasterServers
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C76A7
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aNomaster ; "-nomaster"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		mov	dword ptr [esp], offset	_ZGVZN11CBaseServer18UpdateMasterServerEvE20bUpdateMasterServers ; `guard variable for'CBaseServer::UpdateMasterServer(void)::bUpdateMasterServers
		setz	ds:_ZZN11CBaseServer18UpdateMasterServerEvE20bUpdateMasterServers ; CBaseServer::UpdateMasterServer(void)::bUpdateMasterServers
		call	__cxa_guard_release
		jmp	loc_C76A7
; ---------------------------------------------------------------------------
		align 8

loc_C7768:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+B9j
					; CBaseServer::UpdateMasterServer(void)+CCj
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	edx, esi
		mov	eax, [eax]
		movzx	ecx, dl
		mov	edi, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edi+9Ch]
		mov	eax, esi
		test	al, al
		jz	loc_C7640
		mov	[esp], ebx
		call	_ZN11CBaseServer23UpdateMasterServerRulesEv ; CBaseServer::UpdateMasterServerRules(void)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+104h]
		call	_Z12Steam3Serverv ; Steam3Server(void)
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_0], eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN13CSteam3Server24SendUpdatedServerDetailsEv ; CSteam3Server::SendUpdatedServerDetails(void)
; ---------------------------------------------------------------------------
		align 10h

loc_C77C0:				; CODE XREF: CBaseServer::UpdateMasterServer(void)+ACj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+64h]
		test	al, al
		setnz	al
		mov	esi, eax
		jmp	loc_C76C2
_ZN11CBaseServer18UpdateMasterServerEv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [esp], offset	_ZGVZN11CBaseServer18UpdateMasterServerEvE20bUpdateMasterServers ; `guard variable for'CBaseServer::UpdateMasterServer(void)::bUpdateMasterServers
		call	__cxa_guard_abort
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::RunFrame(void)
_ZN11CBaseServer8RunFrameEv proc near	; CODE XREF: CHLTVServer::RunFrame(void)+1D3p
					; SV_Frame(bool)+139p

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 7Ch
		mov	[ebp+var_30], 0
		mov	eax, ds:g_Telemetry+8
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		test	eax, eax
		jz	short loc_C7892
		lea	edx, [ebp+var_30]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCbaseserverRun ; "CBaseServer::RunFrame"
		mov	dword ptr [esp+28h], offset aNetworking	; "Networking"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN11CBaseServer8RunFrameEvE6tm_fmt ; CBaseServer::RunFrame(void)::tm_fmt
		mov	dword ptr [esp+1Ch], 7B8h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_3 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		mov	esi, ds:g_Telemetry+8
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx

loc_C7892:				; CODE XREF: CBaseServer::RunFrame(void)+31j
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_C78B7
		mov	edi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	edi, eax
		jz	loc_C7AB8

loc_C78B7:				; CODE XREF: CBaseServer::RunFrame(void)+B2j
					; CBaseServer::RunFrame(void)+326j
		mov	eax, ds:g_Telemetry
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	loc_C7B20
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+24h], offset aCbaseserverRun ; "CBaseServer::RunFrame"
		mov	dword ptr [esp+20h], offset _ZZN11CBaseServer8RunFrameEvE6tm_fmt_0 ; CBaseServer::RunFrame(void)::tm_fmt
		mov	dword ptr [esp+1Ch], 7B9h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_3 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], edx

loc_C7931:				; CODE XREF: CBaseServer::RunFrame(void)+340j
		mov	[esp+4], ebx
		mov	eax, [ebx+8]
		mov	[esp], eax
		call	_Z17NET_ProcessSocketiP28IConnectionlessPacketHandler ;	NET_ProcessSocket(int,IConnectionlessPacketHandler *)
		mov	[esp], ebx
		call	_ZN11CBaseServer13CheckTimeoutsEv ; CBaseServer::CheckTimeouts(void)
		mov	[esp], ebx
		call	_ZN11CBaseServer18UpdateUserSettingsEv ; CBaseServer::UpdateUserSettings(void)
		mov	[esp], ebx
		call	_ZN11CBaseServer21SendPendingServerInfoEv ; CBaseServer::SendPendingServerInfo(void)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0FCh]
		mov	[esp], ebx
		call	_ZN11CBaseServer18UpdateMasterServerEv ; CBaseServer::UpdateMasterServer(void)
		fld	dword ptr [ebx+13Ch]
		fldz
		fcomip	st, st(1)
		ja	loc_C7A28
		fadd	ds:flt_1F3194
		fld	dword ptr ds:g_ServerGlobalVariables
		fcomip	st, st(1)
		fstp	st
		ja	loc_C7A2A

loc_C7991:				; CODE XREF: CBaseServer::RunFrame(void)+28Aj
		test	edi, edi
		jz	short loc_C79C1
		mov	eax, [ebp+var_48]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_44]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_C79C1:				; CODE XREF: CBaseServer::RunFrame(void)+1A3j
		cmp	[ebp+var_19], 0
		jz	short loc_C79ED
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_C79DA
		mov	edi, dword ptr g_VProfCurrentProfile+100Ch
		test	edi, edi
		jz	short loc_C79ED

loc_C79DA:				; CODE XREF: CBaseServer::RunFrame(void)+1DEj
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_C7A80

loc_C79ED:				; CODE XREF: CBaseServer::RunFrame(void)+1D5j
					; CBaseServer::RunFrame(void)+1E8j ...
		test	esi, esi
		jz	short loc_C7A1D
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_C7A1D:				; CODE XREF: CBaseServer::RunFrame(void)+1FFj
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_C7A28:				; CODE XREF: CBaseServer::RunFrame(void)+185j
		fstp	st

loc_C7A2A:				; CODE XREF: CBaseServer::RunFrame(void)+19Bj
		mov	eax, [ebx+134h]
		mov	[ebx+138h], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], 0
		call	RandomInt
		mov	[ebp+var_4C], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], 0
		call	RandomInt
		mov	edx, [ebp+var_4C]
		shl	edx, 10h
		or	eax, edx
		mov	[ebx+134h], eax
		mov	eax, dword ptr ds:g_ServerGlobalVariables
		mov	[ebx+13Ch], eax
		jmp	loc_C7991
; ---------------------------------------------------------------------------
		align 10h

loc_C7A80:				; CODE XREF: CBaseServer::RunFrame(void)+1F7j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_C7B38
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C7AA2:				; CODE XREF: CBaseServer::RunFrame(void)+34Dj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_C79ED
; ---------------------------------------------------------------------------
		align 8

loc_C7AB8:				; CODE XREF: CBaseServer::RunFrame(void)+C1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCbaseserverRun	; "CBaseServer::RunFrame"
		jz	short loc_C7AF2
		mov	dword ptr [esp+10h], 4
		mov	dword ptr [esp+0Ch], offset aNetworking	; "Networking"
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aCbaseserverRun ; "CBaseServer::RunFrame"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_C7AF2:				; CODE XREF: CBaseServer::RunFrame(void)+2D3j
		mov	eax, [eax+70h]
		mov	edx, dword ptr g_VProfCurrentProfile+10A0h
		lea	eax, [edx+eax*8]
		or	dword ptr [eax+4], 4
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_C78B7
; ---------------------------------------------------------------------------
		align 10h

loc_C7B20:				; CODE XREF: CBaseServer::RunFrame(void)+DCj
		xor	edi, edi
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		jmp	loc_C7931
; ---------------------------------------------------------------------------
		align 4

loc_C7B38:				; CODE XREF: CBaseServer::RunFrame(void)+29Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_C7AA2
_ZN11CBaseServer8RunFrameEv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C7B44:				; CODE XREF: .text:000C7B89j
		test	esi, esi
		jz	short loc_C7B74
		mov	eax, [ebp-40h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-3Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_C7B74:				; CODE XREF: .text:000C7B46j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_C7B7E:				; CODE XREF: .text:000C7B8Fj
					; .text:000C7BBDj
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_C7B44
; ---------------------------------------------------------------------------
		test	edi, edi
		mov	ebx, eax
		jz	short loc_C7B7E
		mov	eax, [ebp-48h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-44h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]
		jmp	short loc_C7B7E
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::~CBaseServer()
_ZN11CBaseServerD2Ev proc near		; CODE XREF: CBaseServer::~CBaseServer()+Dp
					; .text:0011281Cp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	dword ptr [ebx], (offset _ZTV11CBaseServer+8)
		lea	esi, [ebx+11Ch]
		mov	dword ptr [ebx+128h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP11CBaseClientiE5PurgeEv ; CUtlMemory<CBaseClient *,int>::Purge(void)
		mov	eax, [ebx+11Ch]
		mov	[ebx+12Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP11CBaseClientiE5PurgeEv ; CUtlMemory<CBaseClient *,int>::Purge(void)
		mov	eax, [ebx+100h]
		test	eax, eax
		js	short loc_C7C31
		mov	eax, [ebx+0F8h]
		test	eax, eax
		jz	short loc_C7C27
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx+0F8h], 0

loc_C7C27:				; CODE XREF: CBaseServer::~CBaseServer()+53j
		mov	dword ptr [ebx+0FCh], 0

loc_C7C31:				; CODE XREF: CBaseServer::~CBaseServer()+49j
		mov	dword ptr [ebx], (offset _ZTV28IConnectionlessPacketHandler+8)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN11CBaseServerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBaseServer___CBaseServer(void *)
_ZN11CBaseServerD0Ev proc near		; DATA XREF: .rodata:`vtable for'CBaseServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN11CBaseServerD2Ev ; CBaseServer::~CBaseServer()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN11CBaseServerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetFreeClient(netadr_s &)
_ZN11CBaseServer13GetFreeClientER8netadr_s proc	near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_1C], 0
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+128h]
		test	eax, eax
		jle	loc_C7D8A
		xor	ebx, ebx
		jmp	short loc_C7CA5
; ---------------------------------------------------------------------------
		align 4

loc_C7C98:				; CODE XREF: CBaseServer::GetFreeClient(netadr_s &)+48j
					; CBaseServer::GetFreeClient(netadr_s &)+5Bj ...
		mov	eax, [edi+128h]
		add	ebx, 1
		cmp	eax, ebx
		jle	short loc_C7CE0

loc_C7CA5:				; CODE XREF: CBaseServer::GetFreeClient(netadr_s &)+23j
					; CBaseServer::GetFreeClient(netadr_s &)+6Bj
		mov	eax, [edi+11Ch]
		mov	esi, [eax+ebx*4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_C7C98
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+64h]
		test	al, al
		jnz	short loc_C7CF8
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_C7C98
		mov	eax, [edi+128h]
		add	ebx, 1
		mov	[ebp+var_1C], esi
		cmp	eax, ebx
		jg	short loc_C7CA5
		lea	esi, [esi+0]

loc_C7CE0:				; CODE XREF: CBaseServer::GetFreeClient(netadr_s &)+33j
		mov	esi, [ebp+var_1C]
		test	esi, esi
		jz	loc_C7D8A

loc_C7CEB:				; CODE XREF: CBaseServer::GetFreeClient(netadr_s &)+115j
					; CBaseServer::GetFreeClient(netadr_s &)+122j
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_C7CF8:				; CODE XREF: CBaseServer::GetFreeClient(netadr_s &)+54j
		mov	eax, [esi+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0C4h]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_ZNK8netadr_s10CompareAdrERKS_b	; netadr_s::CompareAdr(netadr_s	const&,bool)
		test	al, al
		jz	loc_C7C98
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	dword ptr [esp], offset	aSReconnect ; "%s:reconnect\n"
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [edi]
		mov	[esp+4], esi
		mov	[esp], edi
		call	dword ptr [eax+0B0h]
		mov	eax, [esi+0C4h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+4], 0
		call	dword ptr [edx+94h]
		mov	eax, [esi]
		mov	dword ptr [esi+0C4h], 0
		mov	[esp], esi
		call	dword ptr [eax+4Ch]
		jmp	loc_C7CEB
; ---------------------------------------------------------------------------

loc_C7D8A:				; CODE XREF: CBaseServer::GetFreeClient(netadr_s &)+1Bj
					; CBaseServer::GetFreeClient(netadr_s &)+75j
		xor	esi, esi
		cmp	[edi+110h], eax
		jle	loc_C7CEB
		mov	edx, [edi]
		mov	[esp], edi
		mov	[esp+4], eax
		call	dword ptr [edx+0D0h]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+8], eax
		mov	eax, [edi+128h]
		add	edi, 11Ch
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP11CBaseClient10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<CBaseClient	*,CUtlMemory<CBaseClient *,int>>::InsertBefore(int,CBaseClient * const&)
		mov	esi, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN11CBaseServer13GetFreeClientER8netadr_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::WriteTempEntities(CBaseClient *,	CFrameSnapshot *, CFrameSnapshot *, bf_write &,	int)
_ZN11CBaseServer17WriteTempEntitiesEP11CBaseClientP14CFrameSnapshotS3_R8bf_writei proc near
					; CODE XREF: CHLTVDemoRecorder::WriteFrame(CHLTVFrame *)+148p
					; CReplayDemoRecorder::WriteFrame(CReplayFrame *)+14Ap
					; DATA XREF: ...

var_177B8	= dword	ptr -177B8h
var_177B4	= dword	ptr -177B4h
var_177B0	= dword	ptr -177B0h
var_177AC	= dword	ptr -177ACh
var_177A8	= dword	ptr -177A8h
var_177A4	= dword	ptr -177A4h
var_177A0	= dword	ptr -177A0h
var_17799	= byte ptr -17799h
var_17798	= dword	ptr -17798h
var_17794	= dword	ptr -17794h
var_17790	= dword	ptr -17790h
var_1778C	= dword	ptr -1778Ch
var_17780	= byte ptr -17780h
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_78		= dword	ptr -78h
var_70		= dword	ptr -70h
var_68		= byte ptr -68h
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_68]
		push	ebx
		sub	esp, 177CCh
		mov	[ebp+var_7C], 1
		mov	ebx, [ebp+arg_C]
		mov	[esp], eax
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_78], 0
		mov	[ebp+var_80], (offset _ZTV16SVC_TempEntities+8)
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		lea	eax, [ebp+var_50]
		mov	[esp], eax
		call	_ZN8bf_writeC2Ev ; bf_write::bf_write(void)
		lea	eax, [ebp+var_17780]
		mov	[ebp+var_7C], 0
		lea	edx, [ebp+var_50]
		mov	[esp+4], eax
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 17700h
		mov	[esp], edx
		call	_ZN8bf_write12StartWritingEPviii ; bf_write::StartWriting(void *,int,int,int)
		mov	eax, dword ptr ds:_ZL20sv_debugtempentities+1Ch
		mov	esi, [ebp+arg_8]
		mov	eax, [eax+30h]
		test	eax, eax
		setnz	[ebp+var_17799]
		test	ebx, ebx
		jz	short loc_C7E6D
		mov	[esp], ebx
		call	_ZNK14CFrameSnapshot12NextSnapshotEv ; CFrameSnapshot::NextSnapshot(void)
		mov	esi, eax

loc_C7E6D:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+81j
		cmp	[ebp+arg_14], 0FFh
		mov	ecx, 0FFh
		mov	[ebp+var_38], offset _ZL19CEventInfo_LessFuncRKP10CEventInfoS2_	; CEventInfo_LessFunc(CEventInfo * const&,CEventInfo * const&)
		mov	[ebp+var_34], 0
		mov	[ebp+var_2C], 0
		cmovle	ecx, [ebp+arg_14]
		xor	eax, eax
		test	ecx, ecx
		mov	[ebp+var_17790], ecx
		mov	[ebp+var_30], ecx
		jnz	loc_C849A

loc_C7EA5:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+6CBj
		test	esi, esi
		mov	[ebp+var_28], 0FFFFh
		mov	[ebp+var_26], 0
		mov	[ebp+var_24], 0FFFFh
		mov	[ebp+var_22], 0FFFFh
		mov	[ebp+var_20], eax
		jz	loc_C8486
		mov	eax, [ebp+var_17790]
		lea	edx, [ebp+var_38]
		mov	[ebp+var_1778C], edx
		test	eax, eax
		jle	loc_C848F
		nop

loc_C7EE0:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+192j
		mov	eax, [esi+24h]
		xor	ebx, ebx
		test	eax, eax
		jg	short loc_C7EF8
		jmp	short loc_C7F3B
; ---------------------------------------------------------------------------
		align 10h

loc_C7EF0:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+132j
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+159j
		add	ebx, 1
		cmp	[esi+24h], ebx
		jle	short loc_C7F3B

loc_C7EF8:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+107j
		mov	eax, [esi+20h]
		mov	edx, [edi]
		mov	eax, [eax+ebx*4]
		mov	[esp], edi
		mov	[ebp+var_1C], eax
		mov	[esp+4], eax
		call	dword ptr [edx+0F0h]
		test	al, al
		jnz	short loc_C7EF0
		mov	eax, [ebp+var_1778C]
		lea	ecx, [ebp+var_1C]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE6InsertES3_ ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)
		mov	edx, [ebp+var_1778C]
		movzx	eax, word ptr [edx+12h]
		cmp	[ebp+var_17790], eax
		jg	short loc_C7EF0

loc_C7F3B:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+109j
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+116j
		cmp	esi, [ebp+arg_8]
		jz	loc_C802B
		mov	eax, framesnapshotmanager
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZN21CFrameSnapshotManager12NextSnapshotEPK14CFrameSnapshot ; CFrameSnapshotManager::NextSnapshot(CFrameSnapshot  const*)
		test	eax, eax
		mov	esi, eax
		jz	loc_C802B
		mov	ecx, [ebp+var_1778C]
		movzx	edx, word ptr [ecx+12h]
		movzx	eax, dx
		cmp	[ebp+var_17790], eax
		jg	loc_C7EE0

loc_C7F78:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+24Fj
		test	dx, dx
		jz	loc_C848F
		movzx	edi, [ebp+var_28]
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+var_1778C]
		jmp	short loc_C7FD4
; ---------------------------------------------------------------------------

loc_C7F94:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+1FBj
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+217j ...
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C7FA8
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_C7FA8:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+1BDj
		cmp	word ptr [eax],	0FFFFh
		jz	loc_C8054
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_C8034

loc_C7FBD:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+26Fj
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C7FD1
		lea	edx, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	edx, [esi+edx*4]

loc_C7FD1:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+1E6j
		movzx	edi, word ptr [edx]

loc_C7FD4:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+1B2j
		movzx	esi, di
		test	al, al
		mov	edx, esi
		jnz	short loc_C7F94
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_177B4], esi
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_177B4]
		test	eax, eax
		jz	short loc_C7F94
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_177B4]
		jmp	loc_C7F94
; ---------------------------------------------------------------------------

loc_C802B:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+15Ej
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+179j
		movzx	edx, [ebp+var_26]
		jmp	loc_C7F78
; ---------------------------------------------------------------------------

loc_C8034:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+1DBj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C845A

loc_C8048:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+6A1j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C7FBD
; ---------------------------------------------------------------------------

loc_C8054:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+1CCj
		cmp	esi, 0FFFFh
		mov	ebx, edx
		jz	loc_C8409
		xor	esi, esi
		jmp	loc_C81A3
; ---------------------------------------------------------------------------
		align 10h

loc_C8070:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+3E7j
		mov	eax, [ebp+var_48]
		cmp	ecx, eax
		jge	loc_C8362
		mov	edx, [ebp+var_50]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		mov	ecx, edx
		not	ecx
		and	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	eax, [ebp+var_48]
		add	ecx, 1
		mov	[ebp+var_44], ecx

loc_C809F:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+442j
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+586j
		test	esi, esi
		jz	short loc_C80AF
		movzx	edx, word ptr [ebx]
		cmp	[esi], dx
		jz	loc_C836B

loc_C80AF:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+2C1j
		cmp	eax, ecx
		jle	loc_C8350
		mov	edi, [ebp+var_50]
		mov	eax, ecx
		mov	edx, 1
		sar	eax, 5
		shl	edx, cl
		lea	eax, [edi+eax*4]
		or	[eax], edx
		add	[ebp+var_44], 1

loc_C80CF:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+574j
		mov	ecx, [ebp+arg_0]
		xor	edi, edi
		cmp	[ebp+var_17799], 0
		mov	eax, [ecx]
		mov	[esp], ecx
		cmovnz	edi, [ebp+var_44]
		call	dword ptr [eax+44h]
		movzx	edx, word ptr [ebx]
		mov	ecx, [ebp+var_48]
		mov	word ptr [ebp+var_17798], dx
		mov	edx, [ebp+var_44]
		mov	[ebp+var_177A0], ecx
		sub	ecx, edx
		cmp	eax, ecx
		jle	loc_C8280
		mov	eax, [ebp+var_177A0]
		mov	[ebp+var_40], 1
		mov	[ebp+var_44], eax

loc_C8114:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+56Bj
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx]
		mov	[esp], ecx
		call	dword ptr [eax+64h]
		test	al, al
		jz	loc_C8230
		lea	eax, [ebp+var_50]
		mov	dword ptr [esp+14h], 0FFFFFFFFh
		mov	[esp+18h], eax
		mov	eax, [ebx+10h]
		mov	[esp+10h], eax
		mov	eax, [ebx+14h]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp+0Ch], eax
		mov	eax, [ebx+8]
		mov	[esp], eax
		call	_Z28SendTable_WriteAllDeltaPropsPK9SendTablePKviS3_iiP8bf_write	; SendTable_WriteAllDeltaProps(SendTable  const*,void  const*,int,void	const*,int,int,bf_write	*)
		cmp	[ebp+var_17799], 0
		jnz	loc_C8256

loc_C816C:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+470j
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+495j ...
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx]
		mov	[esp], ecx
		call	dword ptr [eax+64h]
		test	al, al
		mov	edx, [ebp+var_1778C]
		cmovnz	esi, ebx
		mov	eax, [ebp+var_17790]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_ZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE11NextInorderEt ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)
		movzx	ebx, ax
		cmp	ebx, 0FFFFh
		jz	loc_C8409

loc_C81A3:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+284j
		mov	edx, [ebp+var_1778C]
		lea	eax, [ebx+ebx*2]
		mov	[ebp+var_17790], ebx
		shl	eax, 2
		mov	ecx, [ebp+var_44]
		add	eax, [edx+4]
		mov	ebx, [eax+8]
		fld	dword ptr [ebx+4]
		fldz
		fcomip	st, st(1)
		fstp	st
		jz	loc_C8070
		cmp	ecx, [ebp+var_48]
		jge	loc_C8359
		mov	edi, [ebp+var_50]
		mov	eax, ecx
		mov	edx, 1
		sar	eax, 5
		shl	edx, cl
		lea	eax, [edi+eax*4]
		or	[eax], edx
		add	[ebp+var_44], 1

loc_C81EE:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+57Dj
		mov	dword ptr [esp+8], 8
		fld	ds:flt_1F3198
		fmul	dword ptr [ebx+4]
		fstp	[ebp+var_177B8]
		cvttss2si eax, [ebp+var_177B8]
		mov	[esp+4], eax
		lea	eax, [ebp+var_50]
		mov	[esp], eax
		call	_ZN8bf_write13WriteSBitLongEii ; bf_write::WriteSBitLong(int,int)
		mov	eax, [ebp+var_48]
		mov	ecx, [ebp+var_44]
		jmp	loc_C809F
; ---------------------------------------------------------------------------
		align 10h

loc_C8230:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+341j
		mov	eax, [ebx+10h]
		lea	edx, [ebp+var_50]
		mov	[esp+8], eax	; int
		mov	eax, [ebx+14h]
		mov	[esp], edx	; int
		mov	[esp+4], eax	; src
		call	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
		cmp	[ebp+var_17799], 0
		jz	loc_C816C

loc_C8256:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+386j
		mov	eax, [ebp+var_44]
		sub	eax, edi
		mov	[esp+8], eax
		mov	eax, [ebx+8]
		mov	eax, [eax+8]
		mov	dword ptr [esp], offset	aTeSFullBitsI ;	"TE %s full bits: %i\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_C816C
; ---------------------------------------------------------------------------
		align 10h

loc_C8280:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+321j
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebp+var_177A0], ecx
		lea	ecx, [eax+edx]
		sar	edx, 5
		mov	[ebp+var_44], ecx
		mov	ecx, [ebp+var_50]
		shl	edx, 2
		add	edx, ecx
		movzx	ecx, byte ptr [ebp+var_177A0]
		mov	[ebp+var_17794], edx
		movsx	edx, word ptr [ebp+var_17798]
		rol	edx, cl
		lea	ecx, [eax-1]
		mov	eax, 1
		shl	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_177A0]
		mov	[ebp+var_177A4], eax
		sub	eax, 1
		shr	eax, cl
		mov	ecx, [ebp+var_17794]
		mov	[ebp+var_17798], eax
		mov	eax, [ebp+var_17794]
		mov	eax, [eax]
		mov	[ebp+var_177A8], eax
		mov	eax, [ebp+var_17798]
		and	eax, 1
		lea	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_177A4]
		mov	[ebp+var_177AC], eax
		mov	eax, [eax]
		mov	[ebp+var_177B0], eax
		lea	eax, [ecx+ecx-1]
		movzx	ecx, byte ptr [ebp+var_177A0]
		shl	eax, cl
		mov	ecx, [ebp+var_177A8]
		xor	ecx, edx
		xor	edx, [ebp+var_177B0]
		and	eax, ecx
		mov	ecx, [ebp+var_177AC]
		xor	eax, [ebp+var_177A8]
		and	edx, [ebp+var_17798]
		xor	edx, [ebp+var_177B0]
		mov	[ecx], edx
		mov	edx, [ebp+var_17794]
		mov	[edx], eax
		jmp	loc_C8114
; ---------------------------------------------------------------------------

loc_C8350:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+2D1j
		mov	[ebp+var_40], 1
		jmp	loc_C80CF
; ---------------------------------------------------------------------------

loc_C8359:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+3F0j
		mov	[ebp+var_40], 1
		jmp	loc_C81EE
; ---------------------------------------------------------------------------

loc_C8362:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+295j
		mov	[ebp+var_40], 1
		jmp	loc_C809F
; ---------------------------------------------------------------------------

loc_C836B:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+2C9j
		cmp	eax, ecx
		jle	loc_C8403
		mov	edx, [ebp+var_50]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		mov	ecx, edx
		not	ecx
		and	[eax], ecx
		add	[ebp+var_44], 1

loc_C838F:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+627j
		lea	ecx, [ebp+var_50]
		mov	dword ptr [esp+14h], 0FFFFFFFFh
		xor	edi, edi
		mov	[esp+18h], ecx
		cmp	[ebp+var_17799], 0
		mov	eax, [ebx+10h]
		cmovnz	edi, [ebp+var_44]
		mov	[esp+10h], eax
		mov	eax, [ebx+14h]
		mov	[esp+0Ch], eax
		mov	eax, [esi+10h]
		mov	[esp+8], eax
		mov	eax, [esi+14h]
		mov	[esp+4], eax
		mov	eax, [ebx+8]
		mov	[esp], eax
		call	_Z28SendTable_WriteAllDeltaPropsPK9SendTablePKviS3_iiP8bf_write	; SendTable_WriteAllDeltaProps(SendTable  const*,void  const*,int,void	const*,int,int,bf_write	*)
		cmp	[ebp+var_17799], 0
		jz	loc_C816C
		mov	eax, [ebp+var_44]
		sub	eax, edi
		mov	[esp+8], eax
		mov	eax, [ebx+8]
		mov	eax, [eax+8]
		mov	dword ptr [esp], offset	aTeSDeltaBitsI ; "TE %s	delta bits: %i\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_C816C
; ---------------------------------------------------------------------------

loc_C8403:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+58Dj
		mov	[ebp+var_40], 1
		jmp	short loc_C838F
; ---------------------------------------------------------------------------

loc_C8409:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+27Cj
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+3BDj
		movzx	eax, [ebp+var_26]
		mov	[ebp+var_70], eax
		mov	eax, [ebp+arg_10]
		mov	[esp+4], eax
		lea	eax, [ebp+var_80]
		mov	[esp], eax
		call	_ZN16SVC_TempEntities13WriteToBufferER8bf_write	; SVC_TempEntities::WriteToBuffer(bf_write &)
		mov	ecx, [ebp+var_1778C]
		mov	[esp], ecx

loc_C842B:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+6B8j
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE9RemoveAllEv ;	CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)
		lea	ebx, [ebp+var_34]
		mov	[ebp+var_24], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Purge(void)
		mov	[esp], ebx
		mov	[ebp+var_22], 0FFFFh
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Purge(void)
		add	esp, 177CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C845A:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+262j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C8048
; ---------------------------------------------------------------------------

loc_C8486:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+E2j
		lea	eax, [ebp+var_38]
		mov	[ebp+var_1778C], eax

loc_C848F:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+F9j
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+19Bj
		mov	eax, [ebp+var_1778C]
		mov	[esp], eax
		jmp	short loc_C842B
; ---------------------------------------------------------------------------

loc_C849A:				; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+BFj
		lea	eax, [ecx+ecx*2]
		shl	eax, 2
		mov	[esp], eax	; size
		call	malloc
		mov	[ebp+var_34], eax
		jmp	loc_C7EA5
_ZN11CBaseServer17WriteTempEntitiesEP11CBaseClientP14CFrameSnapshotS3_R8bf_writei endp

; ---------------------------------------------------------------------------
		mov	edx, [ebp-1778Ch]
		lea	ebx, [ebp-34h]
		mov	esi, eax
		mov	[esp], edx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE9RemoveAllEv ;	CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)
		mov	word ptr [ebp-24h], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Purge(void)
		mov	word ptr [ebp-22h], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Purge(void)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IServer::~IServer()
_ZN7IServerD2Ev	proc near		; DATA XREF: .rodata:`vtable for'IServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV28IConnectionlessPacketHandler+8)
		pop	ebp
		retn
_ZN7IServerD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetMaxClients(void)const
_ZNK11CBaseServer13GetMaxClientsEv proc	near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+110h]
		retn
_ZNK11CBaseServer13GetMaxClientsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetClient(int)
_ZN11CBaseServer9GetClientEi proc near	; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [eax+11Ch]
		mov	eax, [eax+edx*4]
		test	eax, eax
		jz	short loc_C8530
		add	eax, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C8530:				; CODE XREF: CBaseServer::GetClient(int)+14j
		xor	eax, eax
		pop	ebp
		retn
_ZN11CBaseServer9GetClientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetClientCount(void)const
_ZNK11CBaseServer14GetClientCountEv proc near ;	DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+128h]
		retn
_ZNK11CBaseServer14GetClientCountEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetTick(void)const
_ZNK11CBaseServer7GetTickEv proc near	; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+0Ch]
		retn
_ZNK11CBaseServer7GetTickEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetTickInterval(void)const
_ZNK11CBaseServer15GetTickIntervalEv proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		fld	dword ptr [eax+118h]
		retn
_ZNK11CBaseServer15GetTickIntervalEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetMapName(void)const
_ZNK11CBaseServer10GetMapNameEv	proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		add	eax, 11h
		retn
_ZNK11CBaseServer10GetMapNameEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetSpawnCount(void)const
_ZNK11CBaseServer13GetSpawnCountEv proc	near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+114h]
		retn
_ZNK11CBaseServer13GetSpawnCountEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetNumClasses(void)const
_ZNK11CBaseServer13GetNumClassesEv proc	near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+104h]
		retn
_ZNK11CBaseServer13GetNumClassesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetClassBits(void)const
_ZNK11CBaseServer12GetClassBitsEv proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+108h]
		retn
_ZNK11CBaseServer12GetClassBitsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetCPUUsage(void)
_ZN11CBaseServer11GetCPUUsageEv	proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		fld	dword ptr [eax+140h]
		retn
_ZN11CBaseServer11GetCPUUsageEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsActive(void)const
_ZNK11CBaseServer8IsActiveEv proc near	; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		cmp	dword ptr [eax+4], 1
		setnle	al
		retn
_ZNK11CBaseServer8IsActiveEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsLoading(void)const
_ZNK11CBaseServer9IsLoadingEv proc near	; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		cmp	dword ptr [eax+4], 1
		setz	al
		retn
_ZNK11CBaseServer9IsLoadingEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsDedicated(void)const
_ZNK11CBaseServer11IsDedicatedEv proc near ; DATA XREF:	.rodata:`vtable	for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+130h]
		retn
_ZNK11CBaseServer11IsDedicatedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsPaused(void)const
_ZNK11CBaseServer8IsPausedEv proc near	; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		cmp	dword ptr [eax+4], 3
		setz	al
		retn
_ZNK11CBaseServer8IsPausedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsMultiplayer(void)const
_ZNK11CBaseServer13IsMultiplayerEv proc	near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CGameServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		cmp	dword ptr [eax+110h], 1
		setnle	al
		retn
_ZNK11CBaseServer13IsMultiplayerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsPausable(void)const
_ZNK11CBaseServer10IsPausableEv	proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11CBaseServer10IsPausableEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsHLTV(void)const
_ZNK11CBaseServer6IsHLTVEv proc	near	; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CReplayServero ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11CBaseServer6IsHLTVEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::IsReplay(void)const
_ZNK11CBaseServer8IsReplayEv proc near	; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK11CBaseServer8IsReplayEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::RemoveClientFromGame(CBaseClient	*)
_ZN11CBaseServer20RemoveClientFromGameEP11CBaseClient proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseServer20RemoveClientFromGameEP11CBaseClient endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::CreateNewClient(int)
_ZN11CBaseServer15CreateNewClientEi proc near ;	DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CReplayServero
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseServer15CreateNewClientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::FinishCertificateCheck(netadr_s &, int, char  const*, int)
_ZN11CBaseServer22FinishCertificateCheckER8netadr_siPKci proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseServer22FinishCertificateCheckER8netadr_siPKci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::UpdateMasterServerPlayers(void)
_ZN11CBaseServer25UpdateMasterServerPlayersEv proc near
					; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN11CBaseServer25UpdateMasterServerPlayersEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IServer::~IServer()
_ZN7IServerD0Ev	proc near		; DATA XREF: .rodata:`vtable for'IServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV28IConnectionlessPacketHandler+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN7IServerD0Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseServer::GetUDPPort(void)const
_ZNK11CBaseServer10GetUDPPortEv	proc near ; DATA XREF: .rodata:`vtable for'CBaseServero
					; .rodata:`vtable for'CHLTVServero ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[esp], eax
		call	_Z14NET_GetUDPPorti ; NET_GetUDPPort(int)
		leave
		movzx	eax, ax
		retn
_ZNK11CBaseServer10GetUDPPortEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CUtlVector_char __CUtlMemory_char	__int____Sort(int, __compar_fn_t compar)
_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEE4SortEPFiPKS0_S5_E	proc near
					; CODE XREF: SvTagsChangeCallback(IConVar *,char  const*,float)+179p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
compar		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		cmp	eax, 1
		jle	short loc_C8705
		mov	ecx, [edx]
		test	ecx, ecx
		jz	short loc_C870D
		mov	edx, [ebp+compar]
		mov	dword ptr [esp+8], 4 ; size
		mov	[esp+4], eax	; nmemb
		mov	[esp], ecx	; base
		mov	[esp+0Ch], edx	; compar
		call	qsort

loc_C8705:				; CODE XREF: CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char	* const*))+12j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C870D:				; CODE XREF: CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char	* const*))+18j
		sub	eax, 1
		mov	[ebp+var_1C], eax
		nop
		lea	esi, [esi+0]

loc_C8718:				; CODE XREF: CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char	* const*))+ABj
		mov	eax, [ebp+var_1C]
		mov	ebx, 1
		test	eax, eax
		jg	short loc_C8738
		jmp	short loc_C8773
; ---------------------------------------------------------------------------
		align 10h

loc_C8730:				; CODE XREF: CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char	* const*))+8Bj
		add	ebx, 1
		cmp	[ebp+var_1C], ebx
		jl	short loc_C8773

loc_C8738:				; CODE XREF: CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char	* const*))+52j
					; CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char * const*))+A1j
		mov	eax, [edx]
		lea	esi, ds:0[ebx*4]
		mov	[ebp+var_20], edx
		lea	edi, [esi-4]
		lea	ecx, [eax+esi]
		add	eax, edi
		mov	[esp+4], ecx	; void *
		mov	[esp], eax	; void *
		call	[ebp+compar]
		mov	edx, [ebp+var_20]
		test	eax, eax
		jns	short loc_C8730
		mov	eax, [edx]
		add	ebx, 1
		add	esi, eax
		add	edi, eax
		cmp	[ebp+var_1C], ebx
		mov	eax, [edi]
		mov	ecx, [esi]
		mov	[edi], ecx
		mov	[esi], eax
		jge	short loc_C8738

loc_C8773:				; CODE XREF: CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char	* const*))+54j
					; CUtlVector<char *,CUtlMemory<char *,int>>::Sort(int (*)(char * const*,char * const*))+66j
		sub	[ebp+var_1C], 1
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jnz	short loc_C8718
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEE4SortEPFiPKS0_S5_E	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CEventInfo	*, unsigned short, bool	(*)(CEventInfo * const&, CEventInfo * const&), CUtlMemory<UtlRBTreeNode_t<CEventInfo *,	unsigned short>, unsigned short>>::NextInorder(unsigned	short)const
_ZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE11NextInorderEt proc near
					; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+3AFp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 2Ch
		movzx	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		movzx	edx, di
		cmp	edx, [esi+8]
		jnb	short loc_C87B3
		cmp	di, [esi+16h]
		jbe	short loc_C87C0

loc_C87B3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+1Bj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+CBj ...
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C87C0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+21j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_C8AA0

loc_C87CD:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+324j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+354j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C87E1
		mov	ecx, [esi+4]
		lea	eax, [edx+edx*2]
		lea	eax, [ecx+eax*4]

loc_C87E1:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+46j
		cmp	di, [eax]
		jz	loc_C8B50
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	loc_C8920

loc_C87F9:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+1B1j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+404j
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C880D
		mov	ebx, [esi+4]
		lea	ecx, [edx+edx*2]
		lea	ecx, [ebx+ecx*4]

loc_C880D:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+72j
		cmp	word ptr [ecx+2], 0FFFFh
		jz	loc_C8950
		test	al, al
		jz	loc_C8B20

loc_C8820:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+3B1j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+466j
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C8834
		mov	edi, [esi+4]
		lea	ecx, [edx+edx*2]
		lea	ecx, [edi+ecx*4]

loc_C8834:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+99j
		movzx	ebx, word ptr [ecx+2]
		jmp	short loc_C8886
; ---------------------------------------------------------------------------
		align 10h

loc_C8840:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+F8j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+108j ...
		cmp	bx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C8857
		mov	ecx, [esi+4]
		movzx	eax, bx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_C8857:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+B9j
		cmp	word ptr [eax],	0FFFFh
		jz	loc_C87B3
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_C88D0

loc_C886C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+157j
		cmp	bx, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C8883
		movzx	ebx, bx
		lea	edx, [ebx+ebx*2]
		mov	ebx, [esi+4]
		lea	edx, [ebx+edx*4]

loc_C8883:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+E5j
		movzx	ebx, word ptr [edx]

loc_C8886:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+A8j
		test	al, al
		jnz	short loc_C8840
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_C8840
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C8840
; ---------------------------------------------------------------------------
		align 10h

loc_C88D0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+DAj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_C88F0

loc_C88E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+187j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	short loc_C886C
; ---------------------------------------------------------------------------
		align 10h

loc_C88F0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+14Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	short loc_C88E0
; ---------------------------------------------------------------------------
		align 10h

loc_C8920:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+63j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	loc_C8B60
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C87F9
; ---------------------------------------------------------------------------
		align 10h

loc_C8950:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+82j
		test	al, al
		jz	loc_C8BA0

loc_C8958:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+42Dj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+49Fj
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C896C
		lea	ecx, [edx+edx*2]
		mov	edx, [esi+4]
		lea	ecx, [edx+ecx*4]

loc_C896C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+1D1j
		movzx	ebx, word ptr [ecx+4]
		jmp	short loc_C89DF
; ---------------------------------------------------------------------------
		align 8

loc_C8978:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+251j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+26Aj
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C898F
		mov	ecx, [esi+4]
		movzx	edx, di
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_C898F:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+1F1j
		test	al, al
		movzx	edx, word ptr [edx+4]
		jz	short loc_C8A00

loc_C8997:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+284j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+2B0j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C89AE
		movzx	edx, dx
		lea	eax, [edx+edx*2]
		mov	edx, [esi+4]
		lea	eax, [edx+eax*4]

loc_C89AE:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+210j
		cmp	di, [eax+2]
		jnz	loc_C87B3
		cmp	bx, 0FFFFh
		jz	loc_C8B50
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_C8A48

loc_C89CD:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+2D3j
		mov	edi, [esi+4]
		movzx	edx, bx
		lea	edx, [edx+edx*2]
		lea	edx, [edi+edx*4]
		mov	edi, ebx
		movzx	ebx, word ptr [edx+4]

loc_C89DF:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+1E0j
		test	al, al
		jnz	short loc_C8978
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_C8A70

loc_C89F3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+307j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C8978
; ---------------------------------------------------------------------------
		align 10h

loc_C8A00:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+205j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_C8997
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_C8997
; ---------------------------------------------------------------------------
		align 4

loc_C8A48:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+23Bj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C8AF0

loc_C8A5C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+387j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C89CD
; ---------------------------------------------------------------------------
		align 10h

loc_C8A70:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+261j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C89F3
; ---------------------------------------------------------------------------
		align 10h

loc_C8AA0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+37j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	loc_C87CD
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_C87CD
; ---------------------------------------------------------------------------
		align 10h

loc_C8AF0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+2C6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C8A5C
; ---------------------------------------------------------------------------
		align 10h

loc_C8B20:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+8Aj
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	loc_C8BC2
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C8820
; ---------------------------------------------------------------------------
		align 10h

loc_C8B50:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+54j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+22Cj
		mov	ebx, 0FFFFFFFFh
		jmp	loc_C87B3
; ---------------------------------------------------------------------------
		align 10h

loc_C8B60:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+1A4j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_C87F9
; ---------------------------------------------------------------------------
		align 10h

loc_C8BA0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+1C2j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_C8BFB
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C8958
; ---------------------------------------------------------------------------

loc_C8BC2:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+3A4j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_C8820
; ---------------------------------------------------------------------------

loc_C8BFB:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NextInorder(ushort)+424j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_C8958
_ZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE11NextInorderEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<char *, int>::Purge(void)
_ZN10CUtlMemoryIPciE5PurgeEv proc near	; CODE XREF: CBaseServer::RemoveTag(char  const*)+16Fp
					; CBaseServer::RemoveTag(char  const*)+1A3p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_C8C6C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_C8C65
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_C8C65:				; CODE XREF: CUtlMemory<char *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_C8C6C:				; CODE XREF: CUtlMemory<char *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIPciE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<char *, CUtlMemory<char *,	int>>::~CUtlVector()
_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEED2Ev proc near ; CODE XREF: .text:000C6D3Dp
					; .text:000C6FE4p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryIPciE5PurgeEv ; CUtlMemory<char *,int>::Purge(void)
_ZN10CUtlVectorIPc10CUtlMemoryIS0_iEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CBaseClient *, int>::Purge(void)
_ZN10CUtlMemoryIP11CBaseClientiE5PurgeEv proc near
					; CODE XREF: CBaseServer::~CBaseServer()+28p
					; CBaseServer::~CBaseServer()+3Cp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_C8CDC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_C8CD5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_C8CD5:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_C8CDC:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP11CBaseClientiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<CEventInfo	*, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE5PurgeEv proc near
					; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+65Cp
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+66Ap ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_C8D1C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_C8D15
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_C8D15:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_C8D1C:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CEventInfo	*, unsigned short, bool	(*)(CEventInfo * const&, CEventInfo * const&), CUtlMemory<UtlRBTreeNode_t<CEventInfo *,	unsigned short>, unsigned short>>::RemoveAll(void)
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE9RemoveAllEv proc near
					; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int):loc_C842Bp
					; .text:000C84BEp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		movzx	ecx, word ptr [esi+16h]
		cmp	cx, 0FFFFh
		jz	short loc_C8D94
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_C8D88
		xor	edx, edx
		xor	edi, edi
		lea	esi, [esi+0]

loc_C8D58:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+51j
		cmp	edi, eax
		mov	ebx, edi
		jnb	short loc_C8D63
		cmp	di, cx
		jbe	short loc_C8DA0

loc_C8D63:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+2Cj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+9Aj
		cmp	bx, cx
		jz	short loc_C8D88
		mov	eax, [esi+8]
		add	ebx, 1
		movzx	ebx, bx
		cmp	ebx, eax
		jnb	short loc_C8D88
		add	edi, 1
		add	edx, 0Ch
		cmp	edi, 0FFFFh
		jnz	short loc_C8D58
		nop
		lea	esi, [esi+0]

loc_C8D88:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+1Bj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+36j ...
		mov	word ptr [esi+10h], 0FFFFh
		mov	word ptr [esi+12h], 0

loc_C8D94:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+14j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C8DA0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+31j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C8DD0

loc_C8DA9:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+B4j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+E0j
		mov	ecx, [esi+4]
		add	ecx, edx
		cmp	bx, [ecx]
		jz	short loc_C8DC6
		movzx	eax, word ptr [esi+14h]
		mov	[ecx+2], ax
		mov	eax, [esi+4]
		mov	[eax+edx], bx
		mov	[esi+14h], bx

loc_C8DC6:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+81j
		movzx	ecx, word ptr [esi+16h]
		jmp	short loc_C8D63
; ---------------------------------------------------------------------------
		align 10h

loc_C8DD0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RemoveAll(void)+77j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_C8DA9
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	short loc_C8DA9
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CBaseClient *, int>::Grow(int)
_ZN10CUtlMemoryIP11CBaseClientiE4GrowEi	proc near
					; CODE XREF: CUtlVector<CBaseClient *,CUtlMemory<CBaseClient *,int>>::InsertBefore(int,CBaseClient * const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_C8E70
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_C8E80
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_C8E56
		lea	esi, [esi+0]

loc_C8E50:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_C8E50

loc_C8E56:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Grow(int)+2Aj
					; CUtlMemory<CBaseClient *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_C8EB3

loc_C8E62:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_C8E70:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C8E80:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_C8E56
		lea	esi, [esi+0]

loc_C8E98:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_C8E98
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_C8E62

loc_C8EB3:				; CODE XREF: CUtlMemory<CBaseClient *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP11CBaseClientiE4GrowEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CBaseClient *, CUtlMemory<CBaseClient *, int>>::InsertBefore(int, CBaseClient * const&)
_ZN10CUtlVectorIP11CBaseClient10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: CBaseServer::GetFreeClient(netadr_s &)+154p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_C8F40

loc_C8EEF:				; CODE XREF: CUtlVector<CBaseClient *,CUtlMemory<CBaseClient *,int>>::InsertBefore(int,CBaseClient * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_C8F26
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_C8F26:				; CODE XREF: CUtlVector<CBaseClient *,CUtlMemory<CBaseClient *,int>>::InsertBefore(int,CBaseClient * const&)+38j
		add	edi, eax
		jz	short loc_C8F31
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_C8F31:				; CODE XREF: CUtlVector<CBaseClient *,CUtlMemory<CBaseClient *,int>>::InsertBefore(int,CBaseClient * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_C8F40:				; CODE XREF: CUtlVector<CBaseClient *,CUtlMemory<CBaseClient *,int>>::InsertBefore(int,CBaseClient * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP11CBaseClientiE4GrowEi	; CUtlMemory<CBaseClient *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_C8EEF
_ZN10CUtlVectorIP11CBaseClient10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<CEventInfo	*, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE4GrowEi proc	near
					; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+9Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_C8FE5
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_C8FF0
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_C8F96
		lea	esi, [esi+0]

loc_C8F90:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_C8F90

loc_C8F96:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlRBTreeNode_t<CEventInfo	*,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_C8FC8
		test	ax, ax
		jz	short loc_C9008
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_C8FE5
		cmp	esi, ecx
		jge	short loc_C8FC8
		lea	esi, [esi+0]

loc_C8FB0:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_C8FB0
		lea	esi, [esi+0]

loc_C8FC8:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlRBTreeNode_t<CEventInfo	*,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_C9018
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_C8FE5:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlRBTreeNode_t<CEventInfo	*,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C8FF0:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_C8F96
; ---------------------------------------------------------------------------
		align 8

loc_C9008:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_C8FC8
		jmp	short loc_C8FE5
; ---------------------------------------------------------------------------
		align 4

loc_C9018:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)+75j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CEventInfo	*, unsigned short, bool	(*)(CEventInfo * const&, CEventInfo * const&), CUtlMemory<UtlRBTreeNode_t<CEventInfo *,	unsigned short>, unsigned short>>::NewNode(void)
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE7NewNodeEv proc near
					; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+8Cp
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+19Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		movzx	eax, word ptr [ebx+14h]
		cmp	ax, 0FFFFh
		jz	short loc_C9070
		mov	edx, [ebx+4]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*2]
		movzx	ecx, word ptr [edx+ecx*4+2]
		mov	[ebx+18h], edx
		mov	[ebx+14h], cx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C9070:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+17j
		movzx	ecx, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	esi, cx
		cmp	esi, edx
		jb	short loc_C90A8
		test	edx, edx
		jz	short loc_C90BF
		xor	ecx, ecx
		xor	eax, eax
		cmp	edx, ecx
		jbe	short loc_C90BF
		lea	esi, [esi+0]

loc_C9090:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+8Dj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+CAj	...
		mov	edx, [ebx+4]
		mov	[ebx+16h], ax
		mov	[ebx+18h], edx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_C90A8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+4Cj
		add	ecx, 1
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi
		cmp	edx, ecx
		ja	short loc_C9090

loc_C90BF:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+50j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+58j
		lea	eax, [ebx+4]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIP10CEventInfotEtE4GrowEi ; CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>::Grow(int)
		movzx	eax, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	ecx, ax
		cmp	ecx, edx
		jnb	short loc_C9110
		lea	ecx, [eax+1]
		mov	eax, 0FFFFFFFFh
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi

loc_C90F8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+EDj
		cmp	ecx, edx
		jb	short loc_C9090

loc_C90FC:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+E7j
		mov	[ebp+var_C], eax
		mov	dword ptr [esp], offset	aCutlrbtreeOver	; "CUtlRBTree overflow!\n"
		call	Error
		mov	eax, [ebp+var_C]
		jmp	short loc_C9090
; ---------------------------------------------------------------------------

loc_C9110:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)+AEj
		test	edx, edx
		mov	eax, 0FFFFFFFFh
		jz	short loc_C90FC
		xor	ecx, ecx
		xor	eax, eax
		jmp	short loc_C90F8
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE7NewNodeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CEventInfo	*, unsigned short, bool	(*)(CEventInfo * const&, CEventInfo * const&), CUtlMemory<UtlRBTreeNode_t<CEventInfo *,	unsigned short>, unsigned short>>::RotateLeft(unsigned short)
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE10RotateLeftEt	proc near
					; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+289p
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+717p

var_30		= dword	ptr -30h
var_29		= byte ptr -29h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	al, al
		mov	[ebp+var_29], al
		jz	loc_C9380

loc_C9142:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+27Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+471j
		cmp	si, 0FFFFh
		mov	[ebp+var_30], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9165
		mov	ecx, [ebx+4]
		movzx	edx, si
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_30], edx
		add	ecx, edx

loc_C9165:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+32j
		cmp	[ebp+var_29], 0
		movzx	edi, word ptr [ecx+2]
		jz	loc_C9340

loc_C9173:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+431j
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		jz	loc_C936B

loc_C9180:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+245j
		movzx	ecx, di
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 2
		mov	[ebp+var_1C], ecx
		add	ecx, edx

loc_C918E:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+257j
		movzx	ecx, word ptr [ecx]
		mov	eax, [ebp+var_30]
		cmp	[ebp+var_29], 0
		mov	[edx+eax+2], cx
		jz	loc_C9300

loc_C91A3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+1EEj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+21Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C91B4
		mov	eax, [ebp+var_1C]
		add	eax, [ebx+4]

loc_C91B4:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+8Cj
		cmp	word ptr [eax],	0FFFFh
		jz	short loc_C91E5
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_C93E0

loc_C91C7:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+2CEj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+2FBj
		cmp	di, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C91DA
		mov	eax, [ebp+var_1C]
		add	eax, ecx

loc_C91DA:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+B3j
		movzx	eax, word ptr [eax]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+4], si

loc_C91E5:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+98j
		cmp	di, 0FFFFh
		jz	short loc_C921C
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_C9420

loc_C91F8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+30Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+33Bj
		cmp	si, 0FFFFh
		jz	loc_C9490
		mov	ecx, [ebx+4]
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], ecx
		add	eax, ecx

loc_C920D:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+37Bj
		movzx	eax, word ptr [eax+4]
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	[ecx+edx+4], ax

loc_C921C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+C9j
		cmp	si, [ebx+10h]
		jz	loc_C92F0
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_C9460
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9246

loc_C9240:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+364j
		mov	eax, [ebp+var_30]
		add	eax, [ebx+4]

loc_C9246:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+11Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+36Aj
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_C93A8

loc_C9252:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+4B4j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9269

loc_C925D:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+2B2j
		movzx	eax, dx
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]

loc_C9269:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+13Bj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+2B8j
		cmp	si, [eax]
		jnz	short loc_C92C0
		test	cl, cl
		jz	loc_C94A0

loc_C9276:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+38Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+3BBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9289
		mov	eax, [ebp+var_30]
		add	eax, ecx

loc_C9289:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+162j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4], di

loc_C9294:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+1C7j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+1D4j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	edx, [ebp+var_1C]
		mov	[eax+edx], si
		jz	short loc_C92AF
		mov	eax, [ebx+4]
		mov	ecx, [ebp+var_30]
		mov	[eax+ecx+4], di

loc_C92AF:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+182j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C92C0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+14Cj
		test	cl, cl
		jz	loc_C94E0

loc_C92C8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+3CEj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+3FBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C92DB
		mov	eax, [ebp+var_30]
		add	eax, ecx

loc_C92DB:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+1B4j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+2], di
		jmp	short loc_C9294
; ---------------------------------------------------------------------------
		align 10h

loc_C92F0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+100j
		mov	[ebx+10h], di
		jmp	short loc_C9294
; ---------------------------------------------------------------------------
		align 10h

loc_C9300:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+7Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C91A3
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C91A3
; ---------------------------------------------------------------------------

loc_C9340:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+4Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C9520
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		cmp	di, 0FFFFh
		mov	[ebp+var_29], al
		mov	edx, [ebx+4]
		jnz	loc_C9180

loc_C936B:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+5Aj
		mov	[ebp+var_1C], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C918E
; ---------------------------------------------------------------------------
		align 10h

loc_C9380:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+1Cj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C9560
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], dl
		jmp	loc_C9142
; ---------------------------------------------------------------------------
		align 8

loc_C93A8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+12Cj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_C95A0
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_C925D
		jmp	loc_C9269
; ---------------------------------------------------------------------------
		align 10h

loc_C93E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+A1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C91C7
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C91C7
; ---------------------------------------------------------------------------

loc_C9420:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+D2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C91F8
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C91F8
; ---------------------------------------------------------------------------

loc_C9460:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+10Fj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C95E0

loc_C9474:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+4E7j
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_C9240
		jmp	loc_C9246
; ---------------------------------------------------------------------------
		align 10h

loc_C9490:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+DCj
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_20], edx
		jmp	loc_C920D
; ---------------------------------------------------------------------------

loc_C94A0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+150j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C9276
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9276
; ---------------------------------------------------------------------------

loc_C94E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C92C8
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C92C8
; ---------------------------------------------------------------------------

loc_C9520:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+22Ej
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], dl
		jmp	loc_C9173
; ---------------------------------------------------------------------------
		align 10h

loc_C9560:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+26Ej
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], cl
		jmp	loc_C9142
; ---------------------------------------------------------------------------
		align 10h

loc_C95A0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+29Cj
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_C9252
; ---------------------------------------------------------------------------
		align 10h

loc_C95E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)+34Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9474
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE10RotateLeftEt	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CEventInfo	*, unsigned short, bool	(*)(CEventInfo * const&, CEventInfo * const&), CUtlMemory<UtlRBTreeNode_t<CEventInfo *,	unsigned short>, unsigned short>>::RotateRight(unsigned	short)
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE11RotateRightEt proc near
					; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+4ECp
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+607p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	al, al
		jz	loc_C9870

loc_C962F:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+27Bj
		cmp	si, 0FFFFh
		mov	[ebp+var_38], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9652
		mov	ecx, [ebx+4]
		movzx	edx, si
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_38], edx
		add	ecx, edx

loc_C9652:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+2Fj
		test	al, al
		movzx	edi, word ptr [ecx]
		jz	loc_C9830

loc_C965D:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+22Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+25Bj
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		jz	loc_C9A10
		movzx	eax, di
		lea	ecx, [eax+eax*2]
		shl	ecx, 2
		mov	eax, ecx
		mov	[ebp+var_34], ecx
		add	eax, edx

loc_C967A:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+40Cj
		movzx	eax, word ptr [eax+2]
		mov	ecx, [ebp+var_38]
		mov	[edx+ecx], ax
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_C97F0

loc_C9692:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+1EEj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+21Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C96A3
		mov	eax, [ebp+var_34]
		add	eax, [ebx+4]

loc_C96A3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+8Bj
		cmp	word ptr [eax+2], 0FFFFh
		jz	short loc_C96D6
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_C98C8

loc_C96B7:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+2C6j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+2F3j
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C96CA
		mov	eax, [ebp+var_34]
		add	eax, edx

loc_C96CA:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+B3j
		movzx	eax, word ptr [eax+2]
		lea	eax, [eax+eax*2]
		mov	[edx+eax*4+4], si

loc_C96D6:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+98j
		cmp	di, 0FFFFh
		jz	short loc_C970D
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_C9910

loc_C96E9:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+30Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+33Bj
		cmp	si, 0FFFFh
		jz	loc_C9980
		mov	edx, [ebx+4]
		mov	eax, [ebp+var_38]
		mov	[ebp+var_1C], edx
		add	eax, edx

loc_C96FE:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+37Bj
		movzx	eax, word ptr [eax+4]
		mov	edx, [ebp+var_1C]
		mov	ecx, [ebp+var_34]
		mov	[edx+ecx+4], ax

loc_C970D:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+CAj
		cmp	si, [ebx+10h]
		jz	loc_C97E0
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_C9950
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9737

loc_C9731:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+364j
		mov	eax, [ebp+var_38]
		add	eax, [ebx+4]

loc_C9737:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+11Fj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+36Aj
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_C9890

loc_C9743:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+47Cj
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C975A

loc_C974E:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+2AAj
		movzx	eax, dx
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]

loc_C975A:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+13Cj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+2B0j
		cmp	si, [eax+2]
		jnz	short loc_C97B0
		test	cl, cl
		jz	loc_C9990

loc_C9768:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+38Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+3BBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C977B
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_C977B:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+164j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+2], di

loc_C9787:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+1C6j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+1D4j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	ecx, [ebp+var_34]
		mov	[eax+ecx+2], si
		jz	short loc_C97A3
		mov	eax, [ebx+4]
		mov	edx, [ebp+var_38]
		mov	[eax+edx+4], di

loc_C97A3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+186j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C97B0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+14Ej
		test	cl, cl
		jz	loc_C99D0

loc_C97B8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+3CEj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+3FBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C97CB
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_C97CB:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+1B4j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4], di
		jmp	short loc_C9787
; ---------------------------------------------------------------------------
		align 10h

loc_C97E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+101j
		mov	[ebx+10h], di
		jmp	short loc_C9787
; ---------------------------------------------------------------------------
		align 10h

loc_C97F0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+7Cj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C9692
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9692
; ---------------------------------------------------------------------------

loc_C9830:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+47j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C965D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C965D
; ---------------------------------------------------------------------------

loc_C9870:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+19j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C9A28

loc_C9884:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+43Fj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C962F
; ---------------------------------------------------------------------------

loc_C9890:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+12Dj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_C9A58
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_C974E
		jmp	loc_C975A
; ---------------------------------------------------------------------------
		align 4

loc_C98C8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+A1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C96B7
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C96B7
; ---------------------------------------------------------------------------
		align 10h

loc_C9910:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+D3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C96E9
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C96E9
; ---------------------------------------------------------------------------

loc_C9950:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+110j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C9A98

loc_C9964:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+4AFj
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_C9731
		jmp	loc_C9737
; ---------------------------------------------------------------------------
		align 10h

loc_C9980:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+DDj
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C96FE
; ---------------------------------------------------------------------------

loc_C9990:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+152j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C9768
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9768
; ---------------------------------------------------------------------------

loc_C99D0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C97B8
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C97B8
; ---------------------------------------------------------------------------

loc_C9A10:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+54j
		mov	[ebp+var_34], 0BFFF4h
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C967A
; ---------------------------------------------------------------------------
		align 8

loc_C9A28:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+26Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9884
; ---------------------------------------------------------------------------
		align 8

loc_C9A58:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+294j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_C9743
; ---------------------------------------------------------------------------
		align 8

loc_C9A98:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)+34Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9964
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE11RotateRightEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CEventInfo	*, unsigned short, bool	(*)(CEventInfo * const&, CEventInfo * const&), CUtlMemory<UtlRBTreeNode_t<CEventInfo *,	unsigned short>, unsigned short>>::InsertRebalance(unsigned short)
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE15InsertRebalanceEt proc near
					; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+E4p

var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	edi, [ebp+arg_4]

loc_C9AE0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+1BAj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+28Ej ...
		movzx	eax, word ptr [ebx+10h]
		cmp	di, ax
		jz	short loc_C9B3D
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_C9E40

loc_C9AF8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+38Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9B0F
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_C9B0F:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+31j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_C9E00

loc_C9B1B:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+33Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+36Bj
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9B32
		movzx	esi, si
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_C9B32:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+54j
		cmp	word ptr [eax+6], 0
		jz	short loc_C9B60
		movzx	eax, word ptr [ebx+10h]

loc_C9B3D:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+17j
		mov	ecx, [ebx+4]
		movzx	eax, ax
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		mov	word ptr [eax+6], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_C9B60:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+67j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	loc_C9D90

loc_C9B6F:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+2DBj
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9B86
		mov	esi, [ebx+4]
		movzx	edx, di
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]

loc_C9B86:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+A8j
		movzx	edx, word ptr [edx+4]
		test	al, al
		mov	[ebp+var_1A], dx
		movzx	esi, dx
		jz	loc_C9D68

loc_C9B99:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+2B3j
		cmp	[ebp+var_1A], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9BAE
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*4]

loc_C9BAE:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+D3j
		movzx	edx, word ptr [edx+4]
		test	al, al
		mov	[ebp+var_1C], dx
		jz	loc_C9DE0

loc_C9BBE:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+32Bj
		cmp	[ebp+var_1A], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9BD3
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*4]

loc_C9BD3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+F8j
		test	al, al
		movzx	ecx, word ptr [edx+4]
		jz	loc_C9DB0

loc_C9BDF:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+301j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+5C4j
		cmp	cx, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9BF6
		movzx	ecx, cx
		lea	edx, [ecx+ecx*2]
		mov	ecx, [ebx+4]
		lea	edx, [ecx+edx*4]

loc_C9BF6:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+118j
		movzx	ecx, [ebp+var_1A]
		cmp	cx, [edx]
		jnz	loc_C9C90
		test	al, al
		jz	loc_C9F20

loc_C9C0B:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+46Bj
		cmp	[ebp+var_1C], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9C24
		movzx	edx, [ebp+var_1C]
		mov	ecx, [ebx+4]
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_C9C24:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+145j
		test	al, al
		movzx	edx, word ptr [edx+2]
		jz	loc_C9E80

loc_C9C30:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+3C4j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+3F4j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9C47
		mov	ecx, [ebx+4]
		movzx	eax, dx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_C9C47:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+169j
		cmp	word ptr [eax+6], 0
		jnz	loc_C9F40

loc_C9C52:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+208j
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		movzx	edx, dx
		lea	eax, [esi+eax*4]
		mov	word ptr [eax+6], 1
		lea	eax, [edx+edx*2]
		mov	edi, [ebx+4]
		lea	eax, [edi+eax*4]
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	word ptr [eax+6], 0
		movzx	edi, [ebp+var_1C]
		jmp	loc_C9AE0
; ---------------------------------------------------------------------------
		align 10h

loc_C9C90:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+12Dj
		test	al, al
		jz	loc_C9E60

loc_C9C98:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+3ABj
		cmp	[ebp+var_1C], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9CB1
		movzx	edx, [ebp+var_1C]
		mov	ecx, [ebx+4]
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_C9CB1:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+1D2j
		test	al, al
		movzx	edx, word ptr [edx]
		jz	loc_C9ED0

loc_C9CBC:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+414j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+444j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9CD3
		mov	ecx, [ebx+4]
		movzx	eax, dx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_C9CD3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+1F5j
		cmp	word ptr [eax+6], 0
		jz	loc_C9C52
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_CA1B8

loc_C9CED:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+703j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9D04
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_C9D04:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+226j
		test	dl, dl
		movzx	ecx, word ptr [eax+4]
		jz	loc_CA168

loc_C9D10:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+6ACj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+6DCj
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9D27
		mov	edx, [ebx+4]
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		lea	eax, [edx+eax*4]

loc_C9D27:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+249j
		cmp	di, [eax]
		jz	loc_CA0D0
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_C9D39:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+660j
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	esi, [ebx+4]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	word ptr [edx+6], 0
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE10RotateLeftEt	; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)
		jmp	loc_C9AE0
; ---------------------------------------------------------------------------
		align 8

loc_C9D68:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+C3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA000

loc_C9D7C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+557j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9B99
; ---------------------------------------------------------------------------
		align 10h

loc_C9D90:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+99j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA030

loc_C9DA4:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+587j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9B6F
; ---------------------------------------------------------------------------

loc_C9DB0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+109j
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jnz	loc_CA060
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9BDF
; ---------------------------------------------------------------------------
		align 10h

loc_C9DE0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+E8j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_C9FD0

loc_C9DF4:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+527j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9BBE
; ---------------------------------------------------------------------------

loc_C9E00:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+45j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_C9B1B
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9B1B
; ---------------------------------------------------------------------------

loc_C9E40:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+22j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA0A0

loc_C9E54:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+5F7j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9AF8
; ---------------------------------------------------------------------------

loc_C9E60:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+1C2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA138

loc_C9E74:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+68Fj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9C98
; ---------------------------------------------------------------------------

loc_C9E80:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+15Aj
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jz	loc_C9C30
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_20]
		jmp	loc_C9C30
; ---------------------------------------------------------------------------
		align 10h

loc_C9ED0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+1E6j
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jz	loc_C9CBC
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_20]
		jmp	loc_C9CBC
; ---------------------------------------------------------------------------
		align 10h

loc_C9F20:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+135j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA2C0

loc_C9F34:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+817j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9C0B
; ---------------------------------------------------------------------------

loc_C9F40:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+17Cj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_CA298

loc_C9F4F:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+7E3j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9F66
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_C9F66:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+488j
		test	dl, dl
		movzx	ecx, word ptr [eax+4]
		jz	loc_CA248

loc_C9F72:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+78Cj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+7BCj
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_C9F89
		mov	edx, [ebx+4]
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		lea	eax, [edx+eax*4]

loc_C9F89:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+4ABj
		cmp	di, [eax+2]
		jz	loc_CA1E0
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_C9F9C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+770j
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	esi, [ebx+4]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	word ptr [edx+6], 0
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE11RotateRightEt ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo *	const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)
		jmp	loc_C9AE0
; ---------------------------------------------------------------------------
		align 10h

loc_C9FD0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+31Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9DF4
; ---------------------------------------------------------------------------
		align 10h

loc_CA000:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+2A6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9D7C
; ---------------------------------------------------------------------------
		align 10h

loc_CA030:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+2CEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9DA4
; ---------------------------------------------------------------------------
		align 10h

loc_CA060:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+2F4j
		mov	[ebp+var_20], ecx
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ecx, [ebp+var_20]
		jmp	loc_C9BDF
; ---------------------------------------------------------------------------
		align 10h

loc_CA0A0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+37Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9E54
; ---------------------------------------------------------------------------
		align 10h

loc_CA0D0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+25Aj
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE11RotateRightEt ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo *	const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateRight(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_CA3C0

loc_CA0EB:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+90Bj
		cmp	[ebp+var_1A], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_CA100
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_CA100:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+625j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_CA380

loc_CA10C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+8BEj
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+8EBj
		cmp	si, 0FFFFh
		jz	loc_CA41E
		mov	edi, [ebx+4]
		movzx	esi, si
		lea	eax, [esi+esi*2]
		lea	eax, [edi+eax*4]
		mov	edx, eax

loc_CA124:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+95Bj
		movzx	edx, word ptr [edx+4]
		movzx	edi, [ebp+var_1A]
		mov	[ebp+var_1C], dx
		jmp	loc_C9D39
; ---------------------------------------------------------------------------
		align 4

loc_CA138:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+39Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9E74
; ---------------------------------------------------------------------------
		align 8

loc_CA168:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+23Aj
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jz	loc_C9D10
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_20]
		jmp	loc_C9D10
; ---------------------------------------------------------------------------
		align 8

loc_CA1B8:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+217j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA2F0

loc_CA1CC:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+847j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9CED
; ---------------------------------------------------------------------------
		align 10h

loc_CA1E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+4BDj
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE10RotateLeftEt	; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::RotateLeft(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_CA360

loc_CA1FB:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+8ABj
		cmp	[ebp+var_1A], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_CA210
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_CA210:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+735j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_CA320

loc_CA21C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+85Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+88Bj
		cmp	si, 0FFFFh
		jz	loc_CA40C
		mov	edi, [ebx+4]
		movzx	esi, si
		lea	edx, [esi+esi*2]
		lea	edx, [edi+edx*4]
		mov	eax, edx

loc_CA234:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+949j
		movzx	edx, word ptr [edx+4]
		movzx	edi, [ebp+var_1A]
		mov	[ebp+var_1C], dx
		jmp	loc_C9F9C
; ---------------------------------------------------------------------------
		align 4

loc_CA248:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+49Cj
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jz	loc_C9F72
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_20]
		jmp	loc_C9F72
; ---------------------------------------------------------------------------
		align 8

loc_CA298:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+479j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA3E0

loc_CA2AC:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+937j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_C9F4F
; ---------------------------------------------------------------------------
		align 10h

loc_CA2C0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+45Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_C9F34
; ---------------------------------------------------------------------------
		align 10h

loc_CA2F0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+6F6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA1CC
; ---------------------------------------------------------------------------
		align 10h

loc_CA320:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+746j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_CA21C
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA21C
; ---------------------------------------------------------------------------

loc_CA360:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+725j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA430

loc_CA374:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+987j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_CA1FB
; ---------------------------------------------------------------------------

loc_CA380:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+636j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_CA10C
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA10C
; ---------------------------------------------------------------------------

loc_CA3C0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+615j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_CA45C

loc_CA3D4:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+9B3j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_CA0EB
; ---------------------------------------------------------------------------

loc_CA3E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+7D6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA2AC
; ---------------------------------------------------------------------------

loc_CA40C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+750j
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, 0BFFF4h
		jmp	loc_CA234
; ---------------------------------------------------------------------------

loc_CA41E:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+640j
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, 0BFFF4h
		jmp	loc_CA124
; ---------------------------------------------------------------------------

loc_CA430:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+89Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA374
; ---------------------------------------------------------------------------

loc_CA45C:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)+8FEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA3D4
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE15InsertRebalanceEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CEventInfo	*, unsigned short, bool	(*)(CEventInfo * const&, CEventInfo * const&), CUtlMemory<UtlRBTreeNode_t<CEventInfo *,	unsigned short>, unsigned short>>::Insert(CEventInfo * const&)
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE6InsertES3_ proc near
					; CODE XREF: CBaseServer::WriteTempEntities(CBaseClient	*,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+144p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	esi, word ptr [ebx+10h]
		cmp	si, 0FFFFh
		mov	[ebp+var_1A], si
		jnz	short loc_CA4D3
		jmp	loc_CA629
; ---------------------------------------------------------------------------
		align 10h

loc_CA4B0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+67j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_CA5A0

loc_CA4BD:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+11Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+14Bj
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+edi*4]
		mov	edi, 1
		cmp	ax, 0FFFFh
		jz	short loc_CA516

loc_CA4CF:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+84j
		mov	[ebp+var_1A], ax

loc_CA4D3:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+18j
		movzx	eax, [ebp+var_1A]
		lea	edi, [eax+eax*2]
		mov	eax, [ebx+4]
		lea	esi, ds:0[edi*4]
		add	eax, esi
		add	eax, 8
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jnz	short loc_CA4B0
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel,	0 ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_CA5E0

loc_CA506:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+15Ej
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+18Bj
		mov	eax, [ebx+4]
		xor	edi, edi
		movzx	eax, word ptr [eax+esi+2]
		cmp	ax, 0FFFFh
		jnz	short loc_CA4CF

loc_CA516:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+3Dj
		mov	[ebp+var_28], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE7NewNodeEv ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)
		movzx	esi, [ebp+var_1A]
		movzx	edx, ax
		mov	ecx, eax
		lea	eax, [edx+edx*2]
		shl	eax, 2
		mov	[ebp+var_20], eax
		add	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	[eax+4], si
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0
		jz	loc_CA659
		mov	eax, edi
		mov	esi, [ebp+var_28]
		test	al, al
		mov	eax, [ebx+4]
		jnz	loc_CA620
		mov	[eax+esi+2], cx

loc_CA56A:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+194j
					; CUtlRBTree<CEventInfo	*,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+1CDj
		mov	[ebp+var_24], ecx
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE15InsertRebalanceEt ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo *	const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::InsertRebalance(ushort)
		mov	eax, [ebp+var_20]
		add	word ptr [ebx+12h], 1
		add	eax, [ebx+4]
		mov	ecx, [ebp+var_24]
		cmp	eax, 0FFFFFFF8h
		jz	short loc_CA594
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebx]
		mov	[eax+8], edx

loc_CA594:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+FAj
		add	esp, 2Ch
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CA5A0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+27j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_CA4BD
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA4BD
; ---------------------------------------------------------------------------

loc_CA5E0:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+70j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_CA506
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CEventInfo *,ushort,bool	(*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_CA506
; ---------------------------------------------------------------------------

loc_CA620:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+CFj
		mov	[eax+esi], cx
		jmp	loc_CA56A
; ---------------------------------------------------------------------------

loc_CA629:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+1Aj
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE7NewNodeEv ; CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo * const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::NewNode(void)
		movzx	edx, ax
		mov	ecx, eax
		lea	eax, [edx+edx*2]
		shl	eax, 2
		mov	[ebp+var_20], eax
		add	eax, [ebx+4]
		mov	word ptr [eax+4], 0FFFFh
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0

loc_CA659:				; CODE XREF: CUtlRBTree<CEventInfo *,ushort,bool (*)(CEventInfo	* const&,CEventInfo * const&),CUtlMemory<UtlRBTreeNode_t<CEventInfo *,ushort>,ushort>>::Insert(CEventInfo * const&)+BFj
		mov	[ebx+10h], cx
		jmp	loc_CA56A
_ZN10CUtlRBTreeIP10CEventInfotPFbRKS1_S3_E10CUtlMemoryI15UtlRBTreeNode_tIS1_tEtEE6InsertES3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

__tcf_0		proc near		; DATA XREF: EngineBitBufErrorHandler(BitBufErrorType,char  const*)+A0o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], (offset _ZZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames+38h)
		call	_ZN15CUtlSymbolTableD2Ev ; CUtlSymbolTable::~CUtlSymbolTable()
		mov	[ebp+arg_0], offset _ZZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames ; EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames
		leave
		jmp	_ZN15CUtlSymbolTableD2Ev ; CUtlSymbolTable::~CUtlSymbolTable()
__tcf_0		endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; EngineBitBufErrorHandler(BitBufErrorType, char  const*)
_Z24EngineBitBufErrorHandler15BitBufErrorTypePKc proc near
					; DATA XREF: InstallBitBufErrorHandler(void)+6o

var_38		= byte ptr -38h
var_1A		= word ptr -1Ah
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, offset aUnknown_0 ; "(unknown)"
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	ebx, ebx
		cmovz	ebx, eax
		cmp	byte ptr ds:_ZGVZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames, 0	; `guard variable for'EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames
		jnz	loc_CA73C
		mov	dword ptr [esp], offset	_ZGVZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames ; `guard variable for'EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_CA73C
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 20h
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames ; EngineBitBufErrorHandler(BitBufErrorType,char	const*)::errorNames
		call	_ZN15CUtlSymbolTableC2Eiib ; CUtlSymbolTable::CUtlSymbolTable(int,int,bool)
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 20h
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], (offset _ZZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames+38h)
		call	_ZN15CUtlSymbolTableC2Eiib ; CUtlSymbolTable::CUtlSymbolTable(int,int,bool)
		mov	dword ptr [esp], offset	_ZGVZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames ; `guard variable for'EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames
		call	__cxa_guard_release
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	__tcf_0
		call	__cxa_atexit

loc_CA73C:				; CODE XREF: EngineBitBufErrorHandler(BitBufErrorType,char  const*)+26j
					; EngineBitBufErrorHandler(BitBufErrorType,char	 const*)+3Aj
		imul	edi, esi, 38h
		lea	eax, [ebp+var_1A]
		mov	[esp+8], ebx
		mov	[esp], eax
		add	edi, offset _ZZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames ; EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames
		mov	[esp+4], edi
		call	_ZNK15CUtlSymbolTable4FindEPKc ; CUtlSymbolTable::Find(char  const*)
		sub	esp, 4
		cmp	[ebp+var_1A], 0FFFFh
		jz	short loc_CA770

loc_CA762:				; CODE XREF: EngineBitBufErrorHandler(BitBufErrorType,char  const*)+FDj
					; EngineBitBufErrorHandler(BitBufErrorType,char	 const*)+10Fj ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CA770:				; CODE XREF: EngineBitBufErrorHandler(BitBufErrorType,char  const*)+D0j
		lea	eax, [ebp+var_38]
		mov	[esp+8], ebx
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN15CUtlSymbolTable9AddStringEPKc ; CUtlSymbolTable::AddString(char  const*)
		sub	esp, 4
		test	esi, esi
		jz	short loc_CA7A8
		cmp	esi, 1
		jnz	short loc_CA762
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aErrorInBitbufS	; "Error in bitbuf [%s]: buffer	overrun. D"...
		call	Warning
		jmp	short loc_CA762
; ---------------------------------------------------------------------------
		align 8

loc_CA7A8:				; CODE XREF: EngineBitBufErrorHandler(BitBufErrorType,char  const*)+F8j
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aErrorInBitbu_0	; "Error in bitbuf [%s]: out of	range valu"...
		call	Warning
		jmp	short loc_CA762
_Z24EngineBitBufErrorHandler15BitBufErrorTypePKc endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	eax, 1

loc_CA7C1:				; CODE XREF: .text:000CA7EAj
		mov	edx, 1
		sub	edx, eax
		imul	edx, 38h
		lea	ebx, _ZZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames[edx] ; EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames

loc_CA7D1:				; CODE XREF: .text:000CA7E4j
		cmp	ebx, offset _ZZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames ; EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames
		jz	short loc_CA7EC
		sub	ebx, 38h
		mov	[esp], ebx
		call	_ZN15CUtlSymbolTableD2Ev ; CUtlSymbolTable::~CUtlSymbolTable()
		jmp	short loc_CA7D1
; ---------------------------------------------------------------------------
		mov	esi, eax
		xor	eax, eax
		jmp	short loc_CA7C1
; ---------------------------------------------------------------------------

loc_CA7EC:				; CODE XREF: .text:000CA7D7j
		mov	dword ptr [esp], offset	_ZGVZ24EngineBitBufErrorHandler15BitBufErrorTypePKcE10errorNames ; `guard variable for'EngineBitBufErrorHandler(BitBufErrorType,char  const*)::errorNames
		call	__cxa_guard_abort
		mov	[esp], esi
		call	_Unwind_Resume

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; InstallBitBufErrorHandler(void)
_Z25InstallBitBufErrorHandlerv proc near ; CODE	XREF: Host_Init(bool)+78p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	_Z24EngineBitBufErrorHandler15BitBufErrorTypePKc ; EngineBitBufErrorHandler(BitBufErrorType,char  const*)
		call	_Z21SetBitBufErrorHandlerPFv15BitBufErrorTypePKcE ; SetBitBufErrorHandler(void (*)(BitBufErrorType,char	 const*))
		leave
		retn
_Z25InstallBitBufErrorHandlerv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; build_number(void)
_Z12build_numberv proc near		; CODE XREF: CBaseClient::SendServerInfo(void)+86p
					; CBenchmarkResults::StopBenchmark(void)+E8p ...
		push	ebp
		mov	eax, ds:_ZL13g_BuildNumber ; g_BuildNumber
		mov	ebp, esp
		pop	ebp
		retn
_Z12build_numberv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBuildNumber::ComputeBuildNumber(void)
_ZN12CBuildNumber18ComputeBuildNumberEv	proc near ; CODE XREF: _GLOBAL__sub_I_date+56p

var_28		= qword	ptr -28h
var_1D		= byte ptr -1Dh
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]

loc_CA840:				; CODE XREF: CBuildNumber::ComputeBuildNumber(void)+47j
		mov	eax, mon[ebx*4]
		mov	dword ptr [esp+8], 3
		mov	[esp+4], eax
		mov	eax, date
		mov	[esp], eax
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jz	loc_CA900
		movsx	eax, mond[ebx]
		add	ebx, 1
		add	esi, eax
		cmp	ebx, 0Bh
		jnz	short loc_CA840
		mov	[ebp+var_1D], 1

loc_CA87D:				; CODE XREF: CBuildNumber::ComputeBuildNumber(void)+D7j
		mov	eax, date
		mov	dword ptr [esp+8], 0Ah ; base
		mov	dword ptr [esp+4], 0 ; endptr
		add	eax, 4
		mov	[esp], eax	; nptr
		call	strtol
		mov	dword ptr [esp+8], 0Ah ; base
		lea	ebx, [esi+eax-1]
		mov	eax, date
		mov	dword ptr [esp+4], 0 ; endptr
		add	eax, 7
		mov	[esp], eax	; nptr
		call	strtol
		lea	edx, [eax-76Dh]
		mov	[ebp+var_1C], edx
		fild	[ebp+var_1C]
		fmul	ds:flt_1F3278
		fstp	[ebp+var_28]
		cvttsd2si edx, [ebp+var_28]
		add	ebx, edx
		test	al, 3
		mov	[edi], ebx
		jnz	short loc_CA8EA
		cmp	[ebp+var_1D], 1
		sbb	ebx, 0FFFFFFFFh

loc_CA8EA:				; CODE XREF: CBuildNumber::ComputeBuildNumber(void)+B1j
		sub	ebx, 8B9Bh
		mov	[edi], ebx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CA900:				; CODE XREF: CBuildNumber::ComputeBuildNumber(void)+32j
		cmp	ebx, 1
		setnle	[ebp+var_1D]
		jmp	loc_CA87D
_ZN12CBuildNumber18ComputeBuildNumberEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bench_upload(CCommand	 const&)
_ZL12bench_uploadRK8CCommand proc near	; DATA XREF: _GLOBAL__sub_I_g_BenchmarkResults+115o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZL12bench_uploadRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBenchmarkResults::CBenchmarkResults(void)
_ZN17CBenchmarkResultsC2Ev proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	0
		mov	byte ptr [eax+1], 0
		pop	ebp
		retn
_ZN17CBenchmarkResultsC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBenchmarkResults::IsBenchmarkRunning(void)
_ZN17CBenchmarkResults18IsBenchmarkRunningEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax]
		retn
_ZN17CBenchmarkResults18IsBenchmarkRunningEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBenchmarkResults::StopBenchmark(void)
_ZN17CBenchmarkResults13StopBenchmarkEv	proc near
					; CODE XREF: bench_end(CCommand	 const&)+Bj

var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
s		= byte ptr -108h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+s]
		sub	esp, 130h
		mov	ebx, [ebp+arg_0]
		mov	byte ptr [ebx],	0
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	host_framerate
		call	_ZN6ConVar8SetValueEi ;	ConVar::SetValue(int)
		mov	eax, ds:host_framecount
		sub	eax, [ebx+108h]
		mov	[ebp+var_10C], eax
		fild	[ebp+var_10C]
		fild	dword ptr [ebx+104h]
		mov	dword ptr [esp], offset	aAverageFramera	; "Average framerate: %.2f\n"
		add	ebx, 1
		fsubr	ds:realtime
		fdivp	st(1), st
		fstp	[ebp+var_110]
		fld	[ebp+var_110]
		fstp	qword ptr [esp+4]
		call	Msg
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+8], offset aMod_0 ; "MOD"
		mov	dword ptr [esp+4], offset aResults ; "results"
		call	dword ptr [edx+44h]
		mov	[esp+10h], ebx
		mov	dword ptr [esp+0Ch], offset aResults ; "results"
		mov	dword ptr [esp+8], offset aSS_2	; "%s\\%s"
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	[esp], esi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	dword ptr [esp+4], offset aBenchmark ; "benchmark"
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		fld	[ebp+var_110]
		mov	[esp], ebx	; int
		fstp	dword ptr [esp+8] ; int
		mov	dword ptr [esp+4], (offset aHost_framerate+5) ;	src
		call	_ZN9KeyValues8SetFloatEPKcf ; KeyValues::SetFloat(char	const*,float)
		call	_Z12build_numberv ; build_number(void)
		mov	[esp], ebx	; int
		mov	[esp+8], eax	; int
		mov	dword ptr [esp+4], offset aBuild ; "build"
		call	_ZN9KeyValues6SetIntEPKci ; KeyValues::SetInt(char  const*,int)
		mov	[esp], ebx
		call	_Z41GetMaterialSystemConfigForBenchmarkUploadP9KeyValues ; GetMaterialSystemConfigForBenchmarkUpload(KeyValues *)
		mov	edx, ds:g_pFileSystem
		xor	eax, eax
		mov	[esp+8], esi
		mov	[esp], ebx
		mov	dword ptr [esp+10h], 0
		lea	ecx, [edx+4]
		test	edx, edx
		mov	dword ptr [esp+0Ch], offset aMod_0 ; "MOD"
		cmovnz	eax, ecx
		mov	[esp+4], eax
		call	_ZN9KeyValues10SaveToFileEP15IBaseFileSystemPKcS3_b ; KeyValues::SaveToFile(IBaseFileSystem *,char  const*,char	 const*,bool)
		mov	[esp], ebx	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		add	esp, 130h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN17CBenchmarkResults13StopBenchmarkEv	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bench_end(CCommand  const&)
_ZL9bench_endRK8CCommand proc near	; DATA XREF: _GLOBAL__sub_I_g_BenchmarkResults+C5o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset g_BenchmarkResults
		pop	ebp
		jmp	_ZN17CBenchmarkResults13StopBenchmarkEv	; CBenchmarkResults::StopBenchmark(void)
_ZL9bench_endRK8CCommand endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CBenchmarkResults__SetResultsFilename(int, char *src)
_ZN17CBenchmarkResults18SetResultsFilenameEPKc proc near
					; CODE XREF: CBenchmarkResults::StartBenchmark(CCommand	 const&)+38p

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+8], 100h	; n
		mov	eax, [ebp+src]
		add	ebx, 1
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp], ebx	; s
		mov	dword ptr [esp+8], 100h	; int
		mov	dword ptr [esp+4], offset a_txt	; ".txt"
		call	_Z18V_DefaultExtensionPcPKci ; V_DefaultExtension(char *,char  const*,int)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN17CBenchmarkResults18SetResultsFilenameEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBenchmarkResults::StartBenchmark(CCommand  const&)
_ZN17CBenchmarkResults14StartBenchmarkERK8CCommand proc	near
					; CODE XREF: bench_start(CCommand  const&)+14p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], ebx
		mov	ebx, offset haystack ; "results.txt"
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_0]
		cmp	dword ptr [eax], 1
		jle	short loc_CAB22
		mov	ebx, [eax+40Ch]

loc_CAB22:				; CODE XREF: CBenchmarkResults::StartBenchmark(CCommand	 const&)+1Aj
		mov	[esp], ebx	; haystack
		call	_Z15COM_IsValidPathPKc ; COM_IsValidPath(char  const*)
		test	al, al
		jz	short loc_CAB80
		mov	byte ptr [esi],	1
		mov	[esp+4], ebx	; src
		mov	[esp], esi	; int
		call	_ZN17CBenchmarkResults18SetResultsFilenameEPKc ; CBenchmarkResults::SetResultsFilename(char  const*)
		mov	dword ptr [esp], offset	host_framerate
		fld1
		fdiv	dword ptr ds:host_state+8
		fstp	dword ptr [esp+4]
		call	_ZN6ConVar8SetValueEf ;	ConVar::SetValue(float)
		mov	eax, ds:host_framecount
		mov	[esi+108h], eax
		cvttsd2si eax, ds:realtime
		mov	[esi+104h], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CAB80:				; CODE XREF: CBenchmarkResults::StartBenchmark(CCommand	 const&)+2Cj
		mov	[ebp+arg_4], ebx
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_0], offset aBench_startSIn ; "bench_start %s: invalid path.\n"
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
_ZN17CBenchmarkResults14StartBenchmarkERK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; bench_start(CCommand	const&)
_ZL11bench_startRK8CCommand proc near	; DATA XREF: _GLOBAL__sub_I_g_BenchmarkResults+67o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp], offset	g_BenchmarkResults
		mov	[esp+4], eax
		call	_ZN17CBenchmarkResults14StartBenchmarkERK8CCommand ; CBenchmarkResults::StartBenchmark(CCommand	 const&)
		leave
		retn
_ZL11bench_startRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBenchmarkResults::Upload(void)
_ZN17CBenchmarkResults6UploadEv	proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN17CBenchmarkResults6UploadEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCS_Init(void)
_Z8CCS_Initv	proc near		; CODE XREF: CHostState::Init(void)+60j
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z8CCS_Initv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCS_Shutdown(void)
_Z12CCS_Shutdownv proc near		; CODE XREF: CHostState::State_Shutdown(void)+6p
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z12CCS_Shutdownv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCS_Tick(float)
_Z8CCS_Tickf	proc near		; CODE XREF: CHostState::FrameUpdate(float)+Dp
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z8CCS_Tickf	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; AllocChangeFrameList(int, int)
_Z20AllocChangeFrameListii proc	near	; CODE XREF: CHLTVClientState::CopyNewEntity(CEntityReadInfo &,int,int)+293p
					; SV_PackEntity(int,edict_t *,ServerClass *,CFrameSnapshot *)+5DBp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], 18h
		mov	esi, [ebp+arg_4]
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax], (offset _ZTV16CChangeFrameList+8)
		mov	edi, eax
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		lea	eax, [eax+4]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE8SetCountEi ;	CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)
		test	ebx, ebx
		jle	short loc_CAC6D
		xor	edx, edx
		nop
		lea	esi, [esi+0]

loc_CAC60:				; CODE XREF: AllocChangeFrameList(int,int)+6Bj
		mov	ecx, [edi+4]
		mov	[ecx+edx*4], esi
		add	edx, 1
		cmp	edx, ebx
		jnz	short loc_CAC60

loc_CAC6D:				; CODE XREF: AllocChangeFrameList(int,int)+57j
		add	esp, 1Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z20AllocChangeFrameListii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IChangeFrameList::~IChangeFrameList()
_ZN16IChangeFrameListD2Ev proc near	; DATA XREF: .rodata:`vtable for'IChangeFrameListo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16IChangeFrameList+8)
		pop	ebp
		retn
_ZN16IChangeFrameListD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CChangeFrameList::Release(void)
_ZN16CChangeFrameList7ReleaseEv	proc near ; DATA XREF: .rodata:`vtable for'CChangeFrameListo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_CACA8
		mov	edx, [eax]
		pop	ebp
		mov	eax, [edx+18h]
		jmp	eax
; ---------------------------------------------------------------------------
		align 8

loc_CACA8:				; CODE XREF: CChangeFrameList::Release(void)+8j
		pop	ebp
		retn
_ZN16CChangeFrameList7ReleaseEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CChangeFrameList::GetNumProps(void)
_ZN16CChangeFrameList11GetNumPropsEv proc near
					; DATA XREF: .rodata:`vtable for'CChangeFrameListo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+10h]
		retn
_ZN16CChangeFrameList11GetNumPropsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CChangeFrameList::SetChangeTick(int  const*, int, int)
_ZN16CChangeFrameList13SetChangeTickEPKiii proc	near
					; DATA XREF: .rodata:`vtable for'CChangeFrameListo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	eax, [ebp+arg_8]
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_C]
		test	eax, eax
		jle	short loc_CACF1
		xor	eax, eax
		nop
		lea	esi, [esi+0]

loc_CACE0:				; CODE XREF: CChangeFrameList::SetChangeTick(int  const*,int,int)+2Fj
		mov	ecx, [esi+eax*4]
		add	eax, 1
		mov	edx, [ebx+4]
		cmp	eax, [ebp+arg_8]
		mov	[edx+ecx*4], edi
		jnz	short loc_CACE0

loc_CACF1:				; CODE XREF: CChangeFrameList::SetChangeTick(int  const*,int,int)+14j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CChangeFrameList13SetChangeTickEPKiii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CChangeFrameList::GetPropsChangedAfterTick(int, int *, int)
_ZN16CChangeFrameList24GetPropsChangedAfterTickEiPii proc near
					; DATA XREF: .rodata:`vtable for'CChangeFrameListo

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	ebx, [esi+10h]
		test	ebx, ebx
		jle	short loc_CAD3E
		mov	[ebp+var_10], ebx
		xor	edx, edx
		mov	ebx, ecx
		lea	esi, [esi+0]

loc_CAD28:				; CODE XREF: CChangeFrameList::GetPropsChangedAfterTick(int,int	*,int)+3Cj
		mov	ecx, [esi+4]
		cmp	[ecx+edx*4], edi
		jle	short loc_CAD36
		mov	[ebx+eax*4], edx
		add	eax, 1

loc_CAD36:				; CODE XREF: CChangeFrameList::GetPropsChangedAfterTick(int,int	*,int)+2Ej
		add	edx, 1
		cmp	edx, [ebp+var_10]
		jnz	short loc_CAD28

loc_CAD3E:				; CODE XREF: CChangeFrameList::GetPropsChangedAfterTick(int,int	*,int)+19j
		add	esp, 4
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CChangeFrameList24GetPropsChangedAfterTickEiPii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IChangeFrameList::~IChangeFrameList()
_ZN16IChangeFrameListD0Ev proc near	; DATA XREF: .rodata:`vtable for'IChangeFrameListo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16IChangeFrameList+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16IChangeFrameListD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CChangeFrameList::~CChangeFrameList()
_ZN16CChangeFrameListD2Ev proc near	; DATA XREF: .rodata:`vtable for'CChangeFrameListo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+4]
		mov	dword ptr [ebx], (offset _ZTV16CChangeFrameList+8)
		mov	dword ptr [ebx+10h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebx+4]
		mov	[ebx+14h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV16IChangeFrameList+8)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN16CChangeFrameListD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CChangeFrameList::~CChangeFrameList()
_ZN16CChangeFrameListD0Ev proc near	; DATA XREF: .rodata:`vtable for'CChangeFrameListo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+4]
		mov	dword ptr [ebx], (offset _ZTV16CChangeFrameList+8)
		mov	dword ptr [ebx+10h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebx+4]
		mov	[ebx+14h], eax
		mov	[esp], esi	; void *
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV16IChangeFrameList+8)
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16CChangeFrameListD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<int, CUtlMemory<int, int>>::SetCount(int)
_ZN10CUtlVectorIi10CUtlMemoryIiiEE8SetCountEi proc near
					; CODE XREF: AllocChangeFrameList(int,int)+50p
					; CChangeFrameList::Copy(void)+53p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_CAE3F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_CAE50
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_CAE3F:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)+1Ej
					; CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CAE50:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIiiE4GrowEi ; CUtlMemory<int,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_CAE3F
		test	cl, cl
		jz	short loc_CAE3F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIi10CUtlMemoryIiiEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CChangeFrameList::Copy(void)
_ZN16CChangeFrameList4CopyEv proc near	; DATA XREF: .rodata:`vtable for'CChangeFrameListo

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], 18h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax], (offset _ZTV16CChangeFrameList+8)
		mov	edi, eax
		mov	dword ptr [eax+4], 0
		lea	edx, [edi+4]
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	eax, [ebx+10h]
		mov	[esp], edx
		mov	[esp+4], eax
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE8SetCountEi ;	CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jle	short loc_CAF2B
		xor	edx, edx
		lea	esi, [esi+0]

loc_CAF18:				; CODE XREF: CChangeFrameList::Copy(void)+79j
		mov	ecx, [ebx+4]
		mov	esi, [ecx+edx*4]
		mov	ecx, [edi+4]
		mov	[ecx+edx*4], esi
		add	edx, 1
		cmp	edx, eax
		jnz	short loc_CAF18

loc_CAF2B:				; CODE XREF: CChangeFrameList::Copy(void)+5Dj
		add	esp, 2Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN16CChangeFrameList4CopyEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ClearCheatCommands(void)
_Z18ClearCheatCommandsv	proc near	; CODE XREF: Key_Shutdown(void)+3Ej
		push	ebp
		mov	dword ptr ds:_ZL19s_CheatCodeCommands+0Ch, 0
		mov	ebp, esp
		pop	ebp
		retn
_Z18ClearCheatCommandsv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ResetKeyLogging(void)
_Z15ResetKeyLoggingv proc near
		push	ebp
		mov	ds:_ZL14s_nKeyLogIndex,	0 ; s_nKeyLogIndex
		mov	ebp, esp
		pop	ebp
		retn
_Z15ResetKeyLoggingv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; LogKeyPress(ButtonCode_t)
_Z11LogKeyPress12ButtonCode_t proc near

arg_0		= dword	ptr  8

		mov	edx, ds:_ZL14s_nKeyLogIndex ; s_nKeyLogIndex
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		cmp	edx, 9
		jle	short loc_CAFA0
		nop
		lea	esi, [esi+0]

loc_CAF78:				; CODE XREF: LogKeyPress(ButtonCode_t)+2Cj
		add	eax, 1
		mov	edx, dword ptr ds:_ZL9s_pKeyLog[eax*4] ; s_pKeyLog
		cmp	eax, 9
		mov	ds:dword_28A4BC[eax*4],	edx
		jnz	short loc_CAF78
		mov	dword ptr ds:_ZL9s_pKeyLog+24h,	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CAFA0:				; CODE XREF: LogKeyPress(ButtonCode_t)+11j
		mov	dword ptr ds:_ZL9s_pKeyLog[edx*4], ecx ; s_pKeyLog
		add	edx, 1
		pop	ebp
		mov	ds:_ZL14s_nKeyLogIndex,	edx ; s_nKeyLogIndex
		retn
_Z11LogKeyPress12ButtonCode_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CheckCheatCodes(void)
_Z15CheckCheatCodesv proc near

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, dword ptr ds:_ZL19s_CheatCodeCommands+0Ch
		test	eax, eax
		mov	[ebp+var_24], eax
		jle	short loc_CB04E
		mov	esi, dword ptr ds:_ZL19s_CheatCodeCommands ; s_CheatCodeCommands
		xor	edx, edx
		mov	[ebp+var_1C], 0
		mov	edi, dword ptr ds:developer+1Ch
		mov	eax, ds:_ZL14s_nKeyLogIndex ; s_nKeyLogIndex
		mov	[ebp+var_28], esi
		mov	[ebp+var_2C], edi
		mov	[ebp+var_20], eax
		nop
		lea	esi, [esi+0]

loc_CB000:				; CODE XREF: CheckCheatCodes(void)+8Cj
		mov	ebx, [ebp+var_28]
		add	ebx, edx
		cmp	byte ptr [ebx+20h], 0
		jz	short loc_CB015
		mov	esi, [ebp+var_2C]
		mov	eax, [esi+30h]
		test	eax, eax
		jz	short loc_CB03C

loc_CB015:				; CODE XREF: CheckCheatCodes(void)+49j
		mov	eax, [ebx+24h]
		mov	ecx, [ebp+var_20]
		sub	ecx, eax
		js	short loc_CB03C
		cmp	eax, 0
		jg	short loc_CB030
		jz	short loc_CB069
		jmp	short loc_CB03C
; ---------------------------------------------------------------------------
		align 10h

loc_CB030:				; CODE XREF: CheckCheatCodes(void)+62j
		mov	edi, dword ptr ds:_ZL9s_pKeyLog[ecx*4] ; s_pKeyLog
		cmp	[ebx+28h], edi
		jz	short loc_CB060

loc_CB03C:				; CODE XREF: CheckCheatCodes(void)+53j
					; CheckCheatCodes(void)+5Dj ...
		add	[ebp+var_1C], 1
		add	edx, 0D0h
		mov	eax, [ebp+var_24]
		cmp	[ebp+var_1C], eax
		jnz	short loc_CB000

loc_CB04E:				; CODE XREF: CheckCheatCodes(void)+13j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB060:				; CODE XREF: CheckCheatCodes(void)+7Aj
		xor	esi, esi

loc_CB062:				; CODE XREF: CheckCheatCodes(void)+104j
		add	esi, 1
		cmp	esi, eax
		jnz	short loc_CB0B0

loc_CB069:				; CODE XREF: CheckCheatCodes(void)+64j
		mov	[esp+4], ebx
		add	ebx, 50h
		mov	dword ptr [esp], offset	aCheatCodeSActi	; "Cheat code \"%s\" activated!"
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	dword ptr [esp], offset	aSv_cheats1 ; "sv_cheats 1\n"
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
		mov	[esp], ebx	; src
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
		mov	dword ptr [esp], (offset aConsoleHistory+1Ch) ;	src
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
		mov	ds:_ZL14s_nKeyLogIndex,	0 ; s_nKeyLogIndex
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB0B0:				; CODE XREF: CheckCheatCodes(void)+A7j
		lea	edi, [ecx+esi]
		mov	edi, dword ptr ds:_ZL9s_pKeyLog[edi*4] ; s_pKeyLog
		cmp	[ebx+esi*4+28h], edi
		jnz	loc_CB03C
		jmp	short loc_CB062
_Z15CheckCheatCodesv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ReadCheatCommandsFromFile(char *)
_Z25ReadCheatCommandsFromFilePc	proc near ; CODE XREF: Key_Init(void)+Dp
					; Key_Init(void)+19p

var_20		= dword	ptr -20h
dest		= dword	ptr -1Ch
src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	dword ptr [esp+4], offset aCheat_codes ; "cheat_codes"
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	edx, ds:g_pFullFileSystem
		xor	eax, eax
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp], ebx	; int
		lea	ecx, [edx+4]
		test	edx, edx
		mov	edx, [ebp+src]
		cmovnz	eax, ecx
		mov	[esp+4], eax	; int
		mov	[esp+8], edx	; src
		call	_ZN9KeyValues12LoadFromFileEP15IBaseFileSystemPKcS3_ ; KeyValues::LoadFromFile(IBaseFileSystem *,char  const*,char  const*)
		mov	[esp], ebx
		call	_ZN9KeyValues18GetFirstTrueSubKeyEv ; KeyValues::GetFirstTrueSubKey(void)
		test	eax, eax
		mov	[ebp+var_20], eax
		jz	loc_CB2B6
		lea	esi, [esi+0]

loc_CB138:				; CODE XREF: ReadCheatCommandsFromFile(char *)+1E0j
		mov	esi, dword ptr ds:_ZL19s_CheatCodeCommands+0Ch
		mov	eax, dword ptr ds:_ZL19s_CheatCodeCommands+4
		mov	edx, esi
		cmp	esi, eax
		jge	loc_CB2E8

loc_CB14D:				; CODE XREF: ReadCheatCommandsFromFile(char *)+233j
		add	edx, 1
		mov	eax, dword ptr ds:_ZL19s_CheatCodeCommands ; s_CheatCodeCommands
		imul	ebx, esi, 0D0h
		mov	dword ptr ds:_ZL19s_CheatCodeCommands+0Ch, edx
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	dword ptr ds:_ZL19s_CheatCodeCommands+10h, eax
		jle	short loc_CB198
		add	esi, 1
		imul	edx, 0D0h
		imul	esi, 0D0h
		mov	[esp+8], edx	; n
		lea	edx, [eax+ebx]
		add	eax, esi
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, dword ptr ds:_ZL19s_CheatCodeCommands ; s_CheatCodeCommands

loc_CB198:				; CODE XREF: ReadCheatCommandsFromFile(char *)+9Dj
		add	eax, ebx
		mov	[ebp+dest], eax
		mov	eax, [ebp+var_20]
		mov	[esp], eax
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	edx, [ebp+dest]
		mov	dword ptr [esp+8], 20h ; n
		mov	[esp+4], eax	; src
		mov	[esp], edx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [ebp+var_20]
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], (offset aDev+1) ; src
		mov	[esp], eax	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		mov	edx, [ebp+dest]
		test	eax, eax
		mov	eax, [ebp+var_20]
		setnz	byte ptr [edx+20h]
		mov	dword ptr [edx+24h], 0
		mov	dword ptr [esp+8], offset aEchoCheatCodeH ; "echo \"Cheat code has no command!\""
		mov	dword ptr [esp+4], (offset aSv_allow_wait_+0Eh)	; src
		mov	[esp], eax	; int
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		mov	dword ptr [esp+8], 80h ; n
		mov	[esp+4], eax	; src
		mov	eax, [ebp+dest]
		add	eax, 50h
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [ebp+var_20]
		mov	ebx, [eax+18h]
		test	ebx, ebx
		jnz	short loc_CB237
		jmp	short loc_CB297
; ---------------------------------------------------------------------------
		align 10h

loc_CB230:				; CODE XREF: ReadCheatCommandsFromFile(char *)+17Dj
		mov	ebx, [ebx+14h]
		test	ebx, ebx
		jz	short loc_CB297

loc_CB237:				; CODE XREF: ReadCheatCommandsFromFile(char *)+157j
					; ReadCheatCommandsFromFile(char *)+1C5j
		mov	[esp], ebx
		mov	edi, (offset aEnableDisableS+14h)
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	ecx, 5
		mov	esi, eax
		repe cmpsb
		jnz	short loc_CB230
		mov	eax, ds:g_pInputSystem
		mov	edx, [ebp+dest]
		mov	eax, [eax]
		mov	esi, [edx+24h]
		mov	edi, [eax+74h]
		mov	[esp], ebx	; int
		mov	dword ptr [esp+8], (offset asc_20E578+4) ; int
		mov	dword ptr [esp+4], 0 ; src
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		mov	[esp+4], eax
		mov	eax, ds:g_pInputSystem
		mov	[esp], eax
		call	edi
		mov	edx, [ebp+dest]
		mov	[edx+esi*4+28h], eax
		add	dword ptr [edx+24h], 1
		mov	ebx, [ebx+14h]
		test	ebx, ebx
		jnz	short loc_CB237

loc_CB297:				; CODE XREF: ReadCheatCommandsFromFile(char *)+159j
					; ReadCheatCommandsFromFile(char *)+165j
		mov	edx, [ebp+dest]
		cmp	dword ptr [edx+24h], 1Fh
		jle	short loc_CB2C0

loc_CB2A0:				; CODE XREF: ReadCheatCommandsFromFile(char *)+213j
		mov	eax, [ebp+var_20]
		mov	[esp], eax
		call	_ZN9KeyValues17GetNextTrueSubKeyEv ; KeyValues::GetNextTrueSubKey(void)
		test	eax, eax
		mov	[ebp+var_20], eax
		jnz	loc_CB138

loc_CB2B6:				; CODE XREF: ReadCheatCommandsFromFile(char *)+5Fj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB2C0:				; CODE XREF: ReadCheatCommandsFromFile(char *)+1CEj
		mov	eax, [ebp+var_20]
		mov	[esp], eax
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	dword ptr [esp+8], 20h
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aCheatCodeSHasL	; "Cheat code \"%s\" has less than %i code e"...
		call	_Z10DevWarningPKcz ; DevWarning(char  const*,...)
		jmp	short loc_CB2A0
; ---------------------------------------------------------------------------
		align 4

loc_CB2E8:				; CODE XREF: ReadCheatCommandsFromFile(char *)+77j
		lea	edx, [esi+1]
		mov	dword ptr [esp], offset	_ZL19s_CheatCodeCommands ; s_CheatCodeCommands
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryI15CheatCodeData_tiE4GrowEi ; CUtlMemory<CheatCodeData_t,int>::Grow(int)
		mov	edx, dword ptr ds:_ZL19s_CheatCodeCommands+0Ch
		jmp	loc_CB14D
_Z25ReadCheatCommandsFromFilePc	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CheatCodeData_t, int>::Purge(void)
_ZN10CUtlMemoryI15CheatCodeData_tiE5PurgeEv proc near
					; CODE XREF: CUtlVector<CheatCodeData_t,CUtlMemory<CheatCodeData_t,int>>::~CUtlVector()+14p
					; CUtlVector<CheatCodeData_t,CUtlMemory<CheatCodeData_t,int>>::~CUtlVector()+26j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+8]
		test	edx, edx
		js	short loc_CB34C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_CB345
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_CB345:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_CB34C:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15CheatCodeData_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CheatCodeData_t, CUtlMemory<CheatCodeData_t, int>>::~CUtlVector()
_ZN10CUtlVectorI15CheatCodeData_t10CUtlMemoryIS0_iEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I__Z18ClearCheatCommandsv+27o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15CheatCodeData_tiE5PurgeEv ; CUtlMemory<CheatCodeData_t,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI15CheatCodeData_tiE5PurgeEv ; CUtlMemory<CheatCodeData_t,int>::Purge(void)
_ZN10CUtlVectorI15CheatCodeData_t10CUtlMemoryIS0_iEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CheatCodeData_t, int>::Grow(int)
_ZN10CUtlMemoryI15CheatCodeData_tiE4GrowEi proc	near
					; CODE XREF: ReadCheatCommandsFromFile(char *)+228p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_CB3F4
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_CB400
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_CB3D7
		lea	esi, [esi+0]

loc_CB3C8:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_CB3C8

loc_CB3D7:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Grow(int)+30j
					; CUtlMemory<CheatCodeData_t,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		imul	eax, 0D0h
		test	edx, edx
		jz	short loc_CB425

loc_CB3E6:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Grow(int)+93j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_CB3F4:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB400:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 1
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_CB3D7
		db	66h
		nop

loc_CB410:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_CB410
		mov	edx, [ebx]
		mov	[ebx+4], eax
		imul	eax, 0D0h
		test	edx, edx
		jnz	short loc_CB3E6

loc_CB425:				; CODE XREF: CUtlMemory<CheatCodeData_t,int>::Grow(int)+54j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15CheatCodeData_tiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_BlockSequenceCRCByte(void *src, size_t n, int)
_Z24COM_BlockSequenceCRCBytePhii proc near

dest		= byte ptr -60h
var_5F		= byte ptr -5Fh
var_5E		= byte ptr -5Eh
var_5D		= byte ptr -5Dh
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
src		= dword	ptr  8
n		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	esi, [ebp+arg_8]
		mov	ebx, [ebp+n]
		test	esi, esi
		js	loc_CB4F0

loc_CB457:				; CODE XREF: COM_BlockSequenceCRCByte(uchar *,int,int)+BCj
		lea	ecx, [esi+1]
		mov	edx, 80808081h
		mov	esi, 3Ch
		lea	edi, [ebp+var_20]
		mov	eax, ecx
		mul	edx
		shr	edx, 9
		imul	edx, 3FCh
		sub	ecx, edx
		mov	[esp], ecx
		call	_Z19CRC32_GetTableEntryj ; CRC32_GetTableEntry(uint)
		cmp	ebx, 3Ch
		cmovle	esi, ebx
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+src]
		lea	ebx, [ebp+dest]
		mov	[esp+8], esi	; n
		mov	[esp], ebx	; dest
		mov	[esp+4], eax	; src
		call	memcpy
		movzx	eax, byte ptr [ebp+var_1C]
		mov	[esp], edi
		mov	[ebp+esi+dest],	al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	[ebp+esi+var_5F], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	[ebp+esi+var_5E], al
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	[ebp+esi+var_5D], al
		add	esi, 4
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		mov	[esp+8], esi
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	[esp], edi
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		movzx	eax, [ebp+var_20]
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB4F0:				; CODE XREF: COM_BlockSequenceCRCByte(uchar *,int,int)+11j
		mov	dword ptr [esp], offset	aSequence0InCom	; "sequence < 0, in COM_BlockSequenceCRCBy"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_CB457
_Z24COM_BlockSequenceCRCBytePhii endp

; ---------------------------------------------------------------------------
		jmp	short _Z8CRC_FilePmPKc ; CRC_File(ulong	*,char	const*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRC_File(unsigned long *, char  const*)
_Z8CRC_FilePmPKc proc near		; CODE XREF: .text:000CB501j
					; CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+A1p ...

var_42C		= byte ptr -42Ch
var_41C		= byte ptr -41Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 43Ch
		mov	edi, [ebp+arg_0]
		mov	[esp], edi
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z12COM_OpenFilePKcPPv ; COM_OpenFile(char  const*,void	**)
		mov	ebx, eax
		mov	eax, [ebp+var_1C]
		cmp	ebx, 0FFFFFFFFh
		jz	loc_CB5F0
		test	eax, eax
		jz	loc_CB5F0
		lea	esi, [ebp+var_41C]
		test	ebx, ebx
		jg	short loc_CB5C2
		jmp	loc_CB638
; ---------------------------------------------------------------------------
		align 10h

loc_CB560:				; CODE XREF: CRC_File(ulong *,char  const*)+C8j
		mov	dword ptr [esp+8], 400h
		mov	[esp+4], esi
		mov	[esp], ecx
		call	dword ptr [edx]

loc_CB571:				; CODE XREF: CRC_File(ulong *,char  const*)+D7j
		test	eax, eax
		jle	short loc_CB587
		sub	ebx, eax
		mov	[esp+8], eax
		mov	[esp+4], esi
		mov	[esp], edi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)

loc_CB587:				; CODE XREF: CRC_File(ulong *,char  const*)+63j
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+58h]
		test	al, al
		mov	eax, ds:g_pFileSystem
		jnz	loc_CB668
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+54h]
		test	al, al
		jz	short loc_CB600
		test	ebx, ebx
		mov	eax, [ebp+var_1C]
		jle	short loc_CB638

loc_CB5C2:				; CODE XREF: CRC_File(ulong *,char  const*)+47j
		mov	edx, ds:g_pFileSystem
		cmp	ebx, 400h
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+0Ch], eax
		jg	short loc_CB560
		mov	[esp+8], ebx
		mov	[esp+4], esi
		mov	[esp], ecx
		call	dword ptr [edx]
		jmp	short loc_CB571
; ---------------------------------------------------------------------------
		align 10h

loc_CB5F0:				; CODE XREF: CRC_File(ulong *,char  const*)+31j
					; CRC_File(ulong *,char	 const*)+39j
		xor	eax, eax

loc_CB5F2:				; CODE XREF: CRC_File(ulong *,char  const*)+F5j
					; CRC_File(ulong *,char	 const*)+170j ...
		add	esp, 43Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB600:				; CODE XREF: CRC_File(ulong *,char  const*)+A9j
		mov	edx, [ebp+var_1C]
		test	edx, edx
		jz	short loc_CB5F2
		mov	ecx, ds:g_pFileSystem
		lea	ebx, [ecx+4]
		mov	ecx, [ecx+4]
		mov	[ebp+var_42C], al
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [ecx+0Ch]
		movzx	eax, [ebp+var_42C]
		add	esp, 43Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_CB638:				; CODE XREF: CRC_File(ulong *,char  const*)+49j
					; CRC_File(ulong *,char	 const*)+B0j
		test	eax, eax
		jz	short loc_CB685
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		add	esp, 43Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CB668:				; CODE XREF: CRC_File(ulong *,char  const*)+92j
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp], edx
		mov	[esp+4], ecx
		call	dword ptr [eax+0Ch]
		mov	eax, 1
		jmp	loc_CB5F2
; ---------------------------------------------------------------------------

loc_CB685:				; CODE XREF: CRC_File(ulong *,char  const*)+12Aj
		mov	eax, 1
		jmp	loc_CB5F2
_Z8CRC_FilePmPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRC_MapFile(unsigned long *, char  const*)
_Z11CRC_MapFilePmPKc proc near

var_834		= dword	ptr -834h
var_830		= dword	ptr -830h
var_82C		= dword	ptr -82Ch
var_828		= byte ptr -828h
var_824		= dword	ptr -824h
var_41C		= byte ptr -41Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_1C]
		push	ebx
		sub	esp, 83Ch
		mov	ebx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_Z12COM_OpenFilePKcPPv ; COM_OpenFile(char  const*,void	**)
		mov	edx, [ebp+var_1C]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_CB6C8

loc_CB6B6:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+3Aj
		xor	eax, eax

loc_CB6B8:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+1D5j
					; CRC_MapFile(ulong *,char  const*)+23Aj ...
		add	esp, 83Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CB6C8:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+24j
		test	edx, edx
		jz	short loc_CB6B6
		mov	eax, ds:g_pFileSystem
		lea	ecx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [eax+14h]
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_830], eax
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_828]
		mov	dword ptr [esp+8], 40Ch
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax]
		test	eax, eax
		jz	loc_CB8A0
		mov	eax, [ebp+var_824]
		lea	edi, [ebp+var_41C]
		xor	esi, esi
		mov	[ebp+var_82C], 1
		lea	edx, [eax-13h]
		cmp	edx, 1
		ja	loc_CB810
		test	esi, esi
		jnz	short loc_CB74E

loc_CB740:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+BCj
					; CRC_MapFile(ulong *,char  const*)+247j
		add	[ebp+var_82C], 1
		add	esi, 1
		test	esi, esi
		jz	short loc_CB740

loc_CB74E:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+AEj
		lea	edx, [ebp+var_828]
		mov	eax, esi
		shl	eax, 4
		add	eax, edx
		mov	edx, ds:g_pFileSystem
		mov	ebx, [eax+0Ch]
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	dword ptr [esp+0Ch], 0
		mov	eax, [eax+8]
		mov	[esp], ecx
		add	eax, [ebp+var_830]
		mov	[esp+8], eax
		mov	eax, [ebp+var_1C]
		mov	[esp+4], eax
		call	dword ptr [edx+10h]
		jmp	short loc_CB7D6
; ---------------------------------------------------------------------------
		align 10h

loc_CB790:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+166j
		mov	dword ptr [esp+8], 400h
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax]

loc_CB7A1:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+175j
		test	eax, eax
		jle	short loc_CB7BA
		mov	ecx, [ebp+arg_0]
		sub	ebx, eax
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	[esp], ecx
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)

loc_CB7BA:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+113j
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+54h]
		test	al, al
		jz	loc_CB860

loc_CB7D6:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+FCj
		test	ebx, ebx
		jle	loc_CB8D0
		mov	eax, ds:g_pFileSystem
		cmp	ebx, 400h
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], ecx
		jg	short loc_CB790
		mov	[esp+8], ebx
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax]
		jmp	short loc_CB7A1
; ---------------------------------------------------------------------------
		align 10h

loc_CB810:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+A6j
		mov	edx, ds:g_pFileSystem
		mov	esi, [ebp+var_1C]
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[ebp+var_834], eax
		mov	[esp+4], esi
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	eax, [ebp+var_834]
		mov	[esp+4], ebx
		mov	dword ptr [esp+0Ch], 14h
		mov	dword ptr [esp], offset	aMapSHasIncorre	; "Map [%s] has	incorrect BSP version (%i "...
		mov	[esp+8], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 83Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB860:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+140j
		mov	edx, [ebp+var_1C]
		test	edx, edx
		jz	loc_CB6B8

loc_CB86B:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+257j
		mov	ecx, ds:g_pFileSystem
		lea	ebx, [ecx+4]
		mov	ecx, [ecx+4]
		mov	byte ptr [ebp+var_834],	al
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [ecx+0Ch]
		movzx	eax, byte ptr [ebp+var_834]
		add	esp, 83Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CB8A0:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+82j
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aCouldNotReadBs	; "Could not read BSP header for map [%s]."...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		xor	eax, eax
		jmp	loc_CB6B8
; ---------------------------------------------------------------------------
		align 10h

loc_CB8D0:				; CODE XREF: CRC_MapFile(ulong *,char  const*)+148j
		cmp	[ebp+var_82C], 40h
		jnz	loc_CB740
		mov	edx, [ebp+var_1C]
		mov	eax, 1
		test	edx, edx
		jnz	short loc_CB86B
		jmp	loc_CB6B8
_Z11CRC_MapFilePmPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MD5_MapFile(MD5Value_t *, char  const*)
_Z11MD5_MapFileP10MD5Value_tPKc	proc near
					; CODE XREF: CGameServer::SpawnServer(char *,char *)+877p

var_898		= dword	ptr -898h
var_894		= dword	ptr -894h
var_890		= dword	ptr -890h
var_88C		= dword	ptr -88Ch
var_880		= byte ptr -880h
var_87C		= dword	ptr -87Ch
var_474		= byte ptr -474h
var_74		= byte ptr -74h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_1C]
		push	ebx
		sub	esp, 89Ch
		mov	ebx, [ebp+arg_4]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_Z12COM_OpenFilePKcPPv ; COM_OpenFile(char  const*,void	**)
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_CB920

loc_CB913:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+35j
		xor	eax, eax

loc_CB915:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+1F5j
					; MD5_MapFile(MD5Value_t *,char	 const*)+25Aj ...
		add	esp, 89Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CB920:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+21j
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_CB913
		lea	eax, [ebp+var_74]
		mov	ecx, 16h
		mov	[ebp+var_88C], eax
		lea	edx, [ebp+var_74]
		xor	eax, eax
		mov	edi, [ebp+var_88C]
		rep stosd
		mov	[esp], edx
		call	_Z7MD5InitP12MD5Context_t ; MD5Init(MD5Context_t *)
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+14h]
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_894], eax
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_880]
		mov	dword ptr [esp+8], 40Ch
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax]
		test	eax, eax
		jz	loc_CBB20
		mov	eax, [ebp+var_87C]
		lea	edi, [ebp+var_474]
		xor	esi, esi
		mov	[ebp+var_890], 1
		lea	edx, [eax-13h]
		cmp	edx, 1
		ja	loc_CBA90
		test	esi, esi
		jnz	short loc_CB9CF

loc_CB9C1:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+DDj
					; MD5_MapFile(MD5Value_t *,char	 const*)+267j
		add	[ebp+var_890], 1
		add	esi, 1
		test	esi, esi
		jz	short loc_CB9C1

loc_CB9CF:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+CFj
		lea	edx, [ebp+var_880]
		mov	eax, esi
		shl	eax, 4
		add	eax, edx
		mov	edx, ds:g_pFileSystem
		mov	ebx, [eax+0Ch]
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	dword ptr [esp+0Ch], 0
		mov	eax, [eax+8]
		mov	[esp], ecx
		add	eax, [ebp+var_894]
		mov	[esp+8], eax
		mov	eax, [ebp+var_1C]
		mov	[esp+4], eax
		call	dword ptr [edx+10h]
		jmp	short loc_CBA56
; ---------------------------------------------------------------------------
		align 10h

loc_CBA10:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+186j
		mov	dword ptr [esp+8], 400h
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax]

loc_CBA21:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+195j
		test	eax, eax
		jle	short loc_CBA3A
		lea	ecx, [ebp+var_74]
		sub	ebx, eax
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	[esp], ecx
		call	_Z9MD5UpdateP12MD5Context_tPKhj	; MD5Update(MD5Context_t *,uchar  const*,uint)

loc_CBA3A:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+133j
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+54h]
		test	al, al
		jz	loc_CBAE0

loc_CBA56:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+11Dj
		test	ebx, ebx
		jle	loc_CBB50
		mov	eax, ds:g_pFileSystem
		cmp	ebx, 400h
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], ecx
		jg	short loc_CBA10
		mov	[esp+8], ebx
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax]
		jmp	short loc_CBA21
; ---------------------------------------------------------------------------
		align 10h

loc_CBA90:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+C7j
		mov	edx, ds:g_pFileSystem
		mov	esi, [ebp+var_1C]
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[ebp+var_898], eax
		mov	[esp+4], esi
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	eax, [ebp+var_898]
		mov	[esp+4], ebx
		mov	dword ptr [esp+0Ch], 14h
		mov	dword ptr [esp], offset	aMapSHasIncorre	; "Map [%s] has	incorrect BSP version (%i "...
		mov	[esp+8], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 89Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBAE0:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+160j
		mov	edx, [ebp+var_1C]
		test	edx, edx
		jz	loc_CB915
		mov	ecx, ds:g_pFileSystem
		lea	ebx, [ecx+4]
		mov	ecx, [ecx+4]
		mov	byte ptr [ebp+var_898],	al
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [ecx+0Ch]
		movzx	eax, byte ptr [ebp+var_898]
		add	esp, 89Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBB20:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+A3j
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aCouldNotReadBs	; "Could not read BSP header for map [%s]."...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		xor	eax, eax
		jmp	loc_CB915
; ---------------------------------------------------------------------------
		align 10h

loc_CBB50:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+168j
		cmp	[ebp+var_890], 40h
		jnz	loc_CB9C1
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_CBB7A
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]

loc_CBB7A:				; CODE XREF: MD5_MapFile(MD5Value_t *,char  const*)+272j
		lea	eax, [ebp+var_74]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z8MD5FinalPhP12MD5Context_t ; MD5Final(uchar *,MD5Context_t *)
		mov	eax, 1
		jmp	loc_CB915
_Z11MD5_MapFileP10MD5Value_tPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MD5_Hash_File(unsigned char *, char  const*, bool, unsigned int *)
_Z13MD5_Hash_FilePhPKcbPj proc near

var_480		= byte ptr -480h
var_479		= byte ptr -479h
var_474		= byte ptr -474h
var_74		= byte ptr -74h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 48Ch
		movzx	eax, [ebp+arg_8]
		mov	[ebp+var_479], al
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z12COM_OpenFilePKcPPv ; COM_OpenFile(char  const*,void	**)
		cmp	eax, 0FFFFFFFFh
		mov	ebx, eax
		jnz	short loc_CBBE0

loc_CBBCF:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+45j
		xor	eax, eax

loc_CBBD1:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+115j
		add	esp, 48Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBBE0:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+2Dj
		mov	edx, [ebp+var_1C]
		test	edx, edx
		jz	short loc_CBBCF
		lea	esi, [ebp+var_74]
		xor	eax, eax
		mov	ecx, 16h
		mov	edi, esi
		rep stosd
		mov	[esp], esi
		call	_Z7MD5InitP12MD5Context_t ; MD5Init(MD5Context_t *)
		cmp	[ebp+var_479], 0
		jnz	loc_CBCF0

loc_CBC0A:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+167j
		lea	edi, [ebp+var_474]
		test	ebx, ebx
		jg	short loc_CBC83
		jmp	loc_CBD10
; ---------------------------------------------------------------------------
		align 10h

loc_CBC20:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+FBj
		mov	dword ptr [esp+8], 400h
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax]

loc_CBC31:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+10Aj
		test	eax, eax
		jle	short loc_CBC47
		sub	ebx, eax
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	[esp], esi
		call	_Z9MD5UpdateP12MD5Context_tPKhj	; MD5Update(MD5Context_t *,uchar  const*,uint)

loc_CBC47:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+93j
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+58h]
		test	al, al
		mov	eax, ds:g_pFileSystem
		jnz	loc_CBD50
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+54h]
		test	al, al
		jz	short loc_CBCB0
		test	ebx, ebx
		jle	loc_CBD10

loc_CBC83:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+72j
		mov	eax, ds:g_pFileSystem
		cmp	ebx, 400h
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], ecx
		jg	short loc_CBC20
		mov	[esp+8], ebx
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax]
		jmp	short loc_CBC31
; ---------------------------------------------------------------------------
		align 10h

loc_CBCB0:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+D9j
		mov	edx, [ebp+var_1C]
		test	edx, edx
		jz	loc_CBBD1
		mov	ecx, ds:g_pFileSystem
		lea	ebx, [ecx+4]
		mov	ecx, [ecx+4]
		mov	[ebp+var_480], al
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [ecx+0Ch]
		movzx	eax, [ebp+var_480]
		add	esp, 48Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBCF0:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+64j
		mov	eax, [ebp+arg_C]
		mov	dword ptr [esp+8], 10h
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9MD5UpdateP12MD5Context_tPKhj	; MD5Update(MD5Context_t *,uchar  const*,uint)
		jmp	loc_CBC0A
; ---------------------------------------------------------------------------
		align 10h

loc_CBD10:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+74j
					; MD5_Hash_File(uchar *,char  const*,bool,uint *)+DDj
		mov	edx, [ebp+var_1C]
		test	edx, edx
		jz	short loc_CBD2C
		mov	eax, ds:g_pFileSystem
		lea	ecx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [eax+0Ch]

loc_CBD2C:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+175j
					; MD5_Hash_File(uchar *,char  const*,bool,uint *)+1CAj
		mov	eax, [ebp+arg_0]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_Z8MD5FinalPhP12MD5Context_t ; MD5Final(uchar *,MD5Context_t *)
		add	esp, 48Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBD50:				; CODE XREF: MD5_Hash_File(uchar *,char	 const*,bool,uint *)+C2j
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp], edx
		mov	[esp+4], ecx
		call	dword ptr [eax+0Ch]
		mov	[ebp+var_1C], 0
		jmp	short loc_CBD2C
_Z13MD5_Hash_FilePhPKcbPj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MD5_Hash_Buffer(unsigned char	*, unsigned char  const*, int, bool, unsigned int *)
_Z15MD5_Hash_BufferPhPKhibPj proc near	; CODE XREF: CEngineReplay::MD5_HashBuffer(uchar *,uchar  const*,int,uint *)+26j

var_7C		= dword	ptr -7Ch
var_70		= byte ptr -70h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	ebx, [ebp+arg_8]
		movzx	edx, [ebp+arg_C]
		test	ebx, ebx
		jnz	short loc_CBD98

loc_CBD87:				; CODE XREF: MD5_Hash_Buffer(uchar *,uchar  const*,int,bool,uint *)+2Dj
		add	esp, 8Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CBD98:				; CODE XREF: MD5_Hash_Buffer(uchar *,uchar  const*,int,bool,uint *)+15j
		mov	ecx, [ebp+arg_4]
		test	ecx, ecx
		jz	short loc_CBD87
		lea	esi, [ebp+var_70]
		xor	eax, eax
		mov	ecx, 16h
		mov	edi, esi
		rep stosd
		mov	byte ptr [ebp+var_7C], dl
		mov	[esp], esi
		call	_Z7MD5InitP12MD5Context_t ; MD5Init(MD5Context_t *)
		movzx	edx, byte ptr [ebp+var_7C]
		test	dl, dl
		jnz	short loc_CBE20

loc_CBDC0:				; CODE XREF: MD5_Hash_Buffer(uchar *,uchar  const*,int,bool,uint *)+C7j
		test	ebx, ebx
		jle	short loc_CBDFC
		mov	eax, [ebp+arg_4]
		mov	esi, esi
		lea	edi, [edi+0]

loc_CBDD0:				; CODE XREF: MD5_Hash_Buffer(uchar *,uchar  const*,int,bool,uint *)+8Aj
		cmp	ebx, 400h
		mov	edi, 400h
		mov	[esp+4], eax
		cmovle	edi, ebx
		mov	[ebp+var_7C], eax
		mov	[esp], esi
		mov	[esp+8], edi
		sub	ebx, edi
		call	_Z9MD5UpdateP12MD5Context_tPKhj	; MD5Update(MD5Context_t *,uchar  const*,uint)
		mov	eax, [ebp+var_7C]
		add	eax, edi
		test	ebx, ebx
		jg	short loc_CBDD0

loc_CBDFC:				; CODE XREF: MD5_Hash_Buffer(uchar *,uchar  const*,int,bool,uint *)+52j
		mov	eax, [ebp+arg_0]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_Z8MD5FinalPhP12MD5Context_t ; MD5Final(uchar *,MD5Context_t *)
		add	esp, 8Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBE20:				; CODE XREF: MD5_Hash_Buffer(uchar *,uchar  const*,int,bool,uint *)+4Ej
		mov	eax, [ebp+arg_10]
		mov	dword ptr [esp+8], 10h
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z9MD5UpdateP12MD5Context_tPKhj	; MD5Update(MD5Context_t *,uchar  const*,uint)
		jmp	short loc_CBDC0
_Z15MD5_Hash_BufferPhPKhibPj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::CClientFrame(int)
_ZN12CClientFrameC2Ei proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ebx, 100h
		lea	edi, [edx+0Ch]
		mov	dword ptr [edx], (offset _ZTV12CClientFrame+8)
		test	edi, 1
		jnz	short loc_CBEC0
		test	edi, 2
		jnz	short loc_CBED8

loc_CBE66:				; CODE XREF: CClientFrame::CClientFrame(int)+91j
					; CClientFrame::CClientFrame(int)+A3j
		mov	ecx, ebx
		xor	eax, eax
		shr	ecx, 2
		test	bl, 2
		rep stosd
		jz	short loc_CBE7C
		mov	word ptr [edi],	0
		add	edi, 2

loc_CBE7C:				; CODE XREF: CClientFrame::CClientFrame(int)+32j
		and	ebx, 1
		jz	short loc_CBE84
		mov	byte ptr [edi],	0

loc_CBE84:				; CODE XREF: CClientFrame::CClientFrame(int)+3Fj
		mov	eax, [ebp+arg_4]
		mov	dword ptr [edx+4], 0
		mov	dword ptr [edx+110h], 0
		mov	dword ptr [edx+10Ch], 0
		mov	dword ptr [edx+118h], 0
		mov	[edx+8], eax
		mov	dword ptr [edx+114h], 0
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBEC0:				; CODE XREF: CClientFrame::CClientFrame(int)+1Cj
		lea	edi, [edx+0Dh]
		mov	byte ptr [edx+0Ch], 0
		mov	bx, 0FFh
		test	edi, 2
		jz	short loc_CBE66
		nop
		lea	esi, [esi+0]

loc_CBED8:				; CODE XREF: CClientFrame::CClientFrame(int)+24j
		mov	word ptr [edi],	0
		sub	ebx, 2
		add	edi, 2
		jmp	short loc_CBE66
_ZN12CClientFrameC2Ei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::CClientFrame(void)
_ZN12CClientFrameC2Ev proc near		; CODE XREF: CClientFrameManager::AllocateFrame(void)+1Ep
					; CHLTVFrame::CHLTVFrame(void)+1Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ebx, 100h
		lea	edi, [edx+0Ch]
		mov	dword ptr [edx], (offset _ZTV12CClientFrame+8)
		test	edi, 1
		jnz	short loc_CBF70
		test	edi, 2
		jnz	short loc_CBF88

loc_CBF16:				; CODE XREF: CClientFrame::CClientFrame(void)+91j
					; CClientFrame::CClientFrame(void)+A3j
		mov	ecx, ebx
		xor	eax, eax
		shr	ecx, 2
		test	bl, 2
		rep stosd
		jz	short loc_CBF2C
		mov	word ptr [edi],	0
		add	edi, 2

loc_CBF2C:				; CODE XREF: CClientFrame::CClientFrame(void)+32j
		and	ebx, 1
		jz	short loc_CBF34
		mov	byte ptr [edi],	0

loc_CBF34:				; CODE XREF: CClientFrame::CClientFrame(void)+3Fj
		mov	dword ptr [edx+4], 0
		mov	dword ptr [edx+110h], 0
		mov	dword ptr [edx+10Ch], 0
		mov	dword ptr [edx+8], 0
		mov	dword ptr [edx+118h], 0
		mov	dword ptr [edx+114h], 0
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CBF70:				; CODE XREF: CClientFrame::CClientFrame(void)+1Cj
		lea	edi, [edx+0Dh]
		mov	byte ptr [edx+0Ch], 0
		mov	bx, 0FFh
		test	edi, 2
		jz	short loc_CBF16
		nop
		lea	esi, [esi+0]

loc_CBF88:				; CODE XREF: CClientFrame::CClientFrame(void)+24j
		mov	word ptr [edi],	0
		sub	ebx, 2
		add	edi, 2
		jmp	short loc_CBF16
_ZN12CClientFrameC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::Init(int)
_ZN12CClientFrame4InitEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		pop	ebp
		retn
_ZN12CClientFrame4InitEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::SetSnapshot(CFrameSnapshot *)
_ZN12CClientFrame11SetSnapshotEP14CFrameSnapshot proc near
					; CODE XREF: CClientFrame::~CClientFrame()+1Bp
					; CClientFrame::Init(CFrameSnapshot *)+10j ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_4]
		mov	eax, [esi+118h]
		cmp	eax, ebx
		jz	short loc_CBFF0
		test	ebx, ebx
		jz	short loc_CBFDE
		mov	[esp], ebx
		call	_ZN14CFrameSnapshot12AddReferenceEv ; CFrameSnapshot::AddReference(void)
		mov	eax, [esi+118h]

loc_CBFDE:				; CODE XREF: CClientFrame::SetSnapshot(CFrameSnapshot *)+1Ej
		test	eax, eax
		jz	short loc_CBFEA
		mov	[esp], eax
		call	_ZN14CFrameSnapshot16ReleaseReferenceEv	; CFrameSnapshot::ReleaseReference(void)

loc_CBFEA:				; CODE XREF: CClientFrame::SetSnapshot(CFrameSnapshot *)+30j
		mov	[esi+118h], ebx

loc_CBFF0:				; CODE XREF: CClientFrame::SetSnapshot(CFrameSnapshot *)+1Aj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CClientFrame11SetSnapshotEP14CFrameSnapshot endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::~CClientFrame()
_ZN12CClientFrameD2Ev proc near		; CODE XREF: CClientFrame::~CClientFrame()+Dp
					; .text:0010E6E1p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV12CClientFrame+8)
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN12CClientFrame11SetSnapshotEP14CFrameSnapshot ; CClientFrame::SetSnapshot(CFrameSnapshot *)
		mov	eax, [ebx+110h]
		test	eax, eax
		jz	short loc_CC03C
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	dword ptr [ebx+110h], 0

loc_CC03C:				; CODE XREF: CClientFrame::~CClientFrame()+28j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN12CClientFrameD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CClientFrame___CClientFrame(void *)
_ZN12CClientFrameD0Ev proc near		; DATA XREF: .rodata:`vtable for'CClientFrameo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN12CClientFrameD2Ev ;	CClientFrame::~CClientFrame()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12CClientFrameD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::Init(CFrameSnapshot *)
_ZN12CClientFrame4InitEP14CFrameSnapshot proc near
					; CODE XREF: CGameClient::SetupPackInfo(CFrameSnapshot *)+71p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx+4]
		mov	[eax+8], ecx
		pop	ebp
		jmp	_ZN12CClientFrame11SetSnapshotEP14CFrameSnapshot ; CClientFrame::SetSnapshot(CFrameSnapshot *)
_ZN12CClientFrame4InitEP14CFrameSnapshot endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::CClientFrame(CFrameSnapshot *)
_ZN12CClientFrameC2EP14CFrameSnapshot proc near
					; CODE XREF: CHLTVClientState::ProcessPacketEntities(SVC_PacketEntities	*)+95p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	edx, 100h
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		lea	edi, [ebx+0Ch]
		mov	dword ptr [ebx], (offset _ZTV12CClientFrame+8)
		test	edi, 1
		jnz	short loc_CC138
		test	edi, 2
		jnz	loc_CC150

loc_CC0C7:				; CODE XREF: CClientFrame::CClientFrame(CFrameSnapshot *)+B9j
					; CClientFrame::CClientFrame(CFrameSnapshot *)+CBj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_CC0DD
		mov	word ptr [edi],	0
		add	edi, 2

loc_CC0DD:				; CODE XREF: CClientFrame::CClientFrame(CFrameSnapshot *)+43j
		and	edx, 1
		jz	short loc_CC0E5
		mov	byte ptr [edi],	0

loc_CC0E5:				; CODE XREF: CClientFrame::CClientFrame(CFrameSnapshot *)+50j
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+110h], 0
		mov	dword ptr [ebx+10Ch], 0
		mov	eax, [esi+4]
		mov	dword ptr [ebx+118h], 0
		mov	[ebx+8], eax
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN12CClientFrame11SetSnapshotEP14CFrameSnapshot ; CClientFrame::SetSnapshot(CFrameSnapshot *)
		mov	dword ptr [ebx+114h], 0
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CC138:				; CODE XREF: CClientFrame::CClientFrame(CFrameSnapshot *)+29j
		lea	edi, [ebx+0Dh]
		mov	byte ptr [ebx+0Ch], 0
		mov	dx, 0FFh
		test	edi, 2
		jz	loc_CC0C7
		nop

loc_CC150:				; CODE XREF: CClientFrame::CClientFrame(CFrameSnapshot *)+31j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_CC0C7
_ZN12CClientFrameC2EP14CFrameSnapshot endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::CopyFrame(CClientFrame&)
_ZN12CClientFrame9CopyFrameERS_	proc near
					; CODE XREF: CHLTVServer::AddNewFrame(CClientFrame *)+187p
					; CReplayServer::AddNewFrame(CClientFrame *)+184p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	eax, [ebx+8]
		lea	esi, [ebx+0Ch]
		mov	[edx+8], eax
		mov	eax, [ebx+4]
		mov	[edx+4], eax
		mov	eax, [ebx+118h]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_ZN12CClientFrame11SetSnapshotEP14CFrameSnapshot ; CClientFrame::SetSnapshot(CFrameSnapshot *)
		mov	edx, [ebp+arg_0]
		mov	eax, 100h
		lea	edi, [edx+0Ch]
		test	edi, 1
		jnz	loc_CC2E0

loc_CC1A7:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+192j
		test	edi, 2
		jnz	loc_CC2C8

loc_CC1B3:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+177j
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jz	short loc_CC1CB
		movzx	edx, word ptr [esi]
		mov	[edi], dx
		mov	edx, 2

loc_CC1CB:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+5Ej
		test	al, 1
		jz	short loc_CC1D6
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al

loc_CC1D6:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+6Dj
		mov	eax, [ebx+110h]
		test	eax, eax
		jz	loc_CC26C
		mov	dword ptr [esp], 100h
		call	_Znwj		; operator new(uint)
		test	eax, eax
		mov	edx, eax
		jz	short loc_CC230
		test	al, 1
		mov	edi, eax
		mov	esi, 100h
		jnz	loc_CC330

loc_CC205:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+1DAj
		test	edi, 2
		jnz	loc_CC340

loc_CC211:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+1EBj
		mov	ecx, esi
		xor	eax, eax
		shr	ecx, 2
		test	esi, 2
		rep stosd
		jnz	loc_CC2B0
		and	esi, 1
		jnz	short loc_CC2A8
		nop
		lea	esi, [esi+0]

loc_CC230:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+94j
					; CClientFrame::CopyFrame(CClientFrame&)+14Bj ...
		mov	eax, [ebp+arg_0]
		test	dl, 1
		mov	edi, edx
		mov	[eax+110h], edx
		mov	eax, 100h
		mov	esi, [ebx+110h]
		jnz	loc_CC318

loc_CC24F:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+1C8j
		test	edi, 2
		jnz	loc_CC300

loc_CC25B:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+1AFj
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jnz	short loc_CC290
		test	al, 1
		jnz	short loc_CC278

loc_CC26C:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+7Ej
					; CClientFrame::CopyFrame(CClientFrame&)+13Dj
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CC278:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+10Aj
					; CClientFrame::CopyFrame(CClientFrame&)+13Fj
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CC290:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+106j
		movzx	edx, word ptr [esi]
		test	al, 1
		mov	[edi], dx
		mov	edx, 2
		jz	short loc_CC26C
		jmp	short loc_CC278
; ---------------------------------------------------------------------------
		align 8

loc_CC2A8:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+C9j
					; CClientFrame::CopyFrame(CClientFrame&)+161j
		mov	byte ptr [edi],	0
		jmp	short loc_CC230
; ---------------------------------------------------------------------------
		align 10h

loc_CC2B0:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+C0j
		mov	word ptr [edi],	0
		add	edi, 2
		and	esi, 1
		jz	loc_CC230
		jmp	short loc_CC2A8
; ---------------------------------------------------------------------------
		align 8

loc_CC2C8:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+4Dj
		movzx	edx, word ptr [esi]
		sub	eax, 2
		add	esi, 2
		mov	[edi], dx
		add	edi, 2
		jmp	loc_CC1B3
; ---------------------------------------------------------------------------
		align 10h

loc_CC2E0:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+41j
		movzx	eax, byte ptr [ebx+0Ch]
		lea	esi, [ebx+0Dh]
		add	edi, 1
		mov	[edx+0Ch], al
		mov	eax, 0FFh
		jmp	loc_CC1A7
; ---------------------------------------------------------------------------
		align 10h

loc_CC300:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+F5j
		movzx	edx, word ptr [esi]
		sub	eax, 2
		add	esi, 2
		mov	[edi], dx
		add	edi, 2
		jmp	loc_CC25B
; ---------------------------------------------------------------------------
		align 8

loc_CC318:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+E9j
		movzx	eax, byte ptr [esi]
		add	edi, 1
		add	esi, 1
		mov	[edx], al
		mov	eax, 0FFh
		jmp	loc_CC24F
; ---------------------------------------------------------------------------
		align 10h

loc_CC330:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+9Fj
		mov	byte ptr [eax],	0
		lea	edi, [eax+1]
		mov	si, 0FFh
		jmp	loc_CC205
; ---------------------------------------------------------------------------
		align 10h

loc_CC340:				; CODE XREF: CClientFrame::CopyFrame(CClientFrame&)+ABj
		mov	word ptr [edi],	0
		sub	esi, 2
		add	edi, 2
		jmp	loc_CC211
_ZN12CClientFrame9CopyFrameERS_	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::GetClientFrame(int, bool)
_ZN19CClientFrameManager14GetClientFrameEib proc near
					; CODE XREF: CHLTVClientState::ProcessPacketEntities(SVC_PacketEntities	*)+48p
					; CHLTVDemoRecorder::WriteFrame(CHLTVFrame *)+D3p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	esi
		push	ebx
		mov	ebx, [ebp+arg_4]
		movzx	esi, [ebp+arg_8]
		test	ebx, ebx
		js	short loc_CC394
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+4]
		test	edx, edx
		jz	short loc_CC3A6
		mov	ecx, [edx+8]
		cmp	ebx, ecx
		jg	short loc_CC381
		jmp	short loc_CC398
; ---------------------------------------------------------------------------
		align 4

loc_CC378:				; CODE XREF: CClientFrameManager::GetClientFrame(int,bool)+39j
		mov	ecx, [eax+8]
		cmp	ebx, ecx
		jle	short loc_CC3A0
		mov	edx, eax

loc_CC381:				; CODE XREF: CClientFrameManager::GetClientFrame(int,bool)+21j
		mov	eax, [edx+114h]
		test	eax, eax
		jnz	short loc_CC378

loc_CC38B:				; CODE XREF: CClientFrameManager::GetClientFrame(int,bool)+52j
					; CClientFrameManager::GetClientFrame(int,bool)+58j
		mov	ecx, esi
		xor	eax, eax
		test	cl, cl
		cmovz	eax, edx

loc_CC394:				; CODE XREF: CClientFrameManager::GetClientFrame(int,bool)+10j
					; CClientFrameManager::GetClientFrame(int,bool)+54j
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CC398:				; CODE XREF: CClientFrameManager::GetClientFrame(int,bool)+23j
		mov	eax, edx
		lea	esi, [esi+0]

loc_CC3A0:				; CODE XREF: CClientFrameManager::GetClientFrame(int,bool)+2Dj
		cmp	ebx, ecx
		jnz	short loc_CC38B
		jmp	short loc_CC394
; ---------------------------------------------------------------------------

loc_CC3A6:				; CODE XREF: CClientFrameManager::GetClientFrame(int,bool)+1Aj
		xor	edx, edx
		jmp	short loc_CC38B
_ZN19CClientFrameManager14GetClientFrameEib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::CountClientFrames(void)
_ZN19CClientFrameManager17CountClientFramesEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+0Ch]
		retn
_ZN19CClientFrameManager17CountClientFramesEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::AddClientFrame(CClientFrame *)
_ZN19CClientFrameManager14AddClientFrameEP12CClientFrame proc near
					; CODE XREF: CHLTVServer::AddNewFrame(CClientFrame *)+1A8p
					; CReplayServer::AddNewFrame(CClientFrame *)+1A7p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	ecx, [edx+4]
		test	ecx, ecx
		jz	short loc_CC3F0
		mov	ecx, [edx+8]
		mov	[ecx+114h], eax
		mov	[edx+8], eax
		mov	eax, [edx+0Ch]
		add	eax, 1
		mov	[edx+0Ch], eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CC3F0:				; CODE XREF: CClientFrameManager::AddClientFrame(CClientFrame *)+Ej
		mov	[edx+4], eax
		mov	[edx+8], eax
		mov	eax, 1
		mov	dword ptr [edx+0Ch], 1
		pop	ebp
		retn
_ZN19CClientFrameManager14AddClientFrameEP12CClientFrame endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::AllocateFrame(void)
_ZN19CClientFrameManager13AllocateFrameEv proc near
					; CODE XREF: CGameClient::SetupPackInfo(CFrameSnapshot *)+5Fp

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		add	eax, 10h
		mov	[esp], eax
		call	_ZN14CUtlMemoryPool5AllocEv ; CUtlMemoryPool::Alloc(void)
		test	eax, eax
		jz	short locret_CC436
		mov	[esp], eax
		mov	[ebp+var_C], eax
		call	_ZN12CClientFrameC2Ev ;	CClientFrame::CClientFrame(void)
		mov	eax, [ebp+var_C]

locret_CC436:				; CODE XREF: CClientFrameManager::AllocateFrame(void)+16j
		leave
		retn
_ZN19CClientFrameManager13AllocateFrameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::FreeFrame(CClientFrame *)
_ZN19CClientFrameManager9FreeFrameEP12CClientFrame proc	near
					; CODE XREF: CClientFrameManager::RemoveOldestFrame(void)+21p
					; CClientFrameManager::DeleteClientFrames(int)+3Bp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+8]
		test	al, al
		mov	eax, [ebx]
		jz	short loc_CC480
		mov	[esp], ebx
		add	esi, 10h
		call	dword ptr [eax]
		mov	[ebp+arg_4], ebx
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_0], esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN14CUtlMemoryPool4FreeEPv ; CUtlMemoryPool::Free(void	*)
; ---------------------------------------------------------------------------
		align 10h

loc_CC480:				; CODE XREF: CClientFrameManager::FreeFrame(CClientFrame *)+1Ej
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		mov	eax, [eax+4]
		mov	esp, ebp
		pop	ebp
		jmp	eax
_ZN19CClientFrameManager9FreeFrameEP12CClientFrame endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::RemoveOldestFrame(void)
_ZN19CClientFrameManager17RemoveOldestFrameEv proc near
					; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+93p
					; CGameClient::SetupPackInfo(CFrameSnapshot *)+1BBp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_CC4DA
		mov	edx, [eax+114h]
		mov	[ebx+4], edx
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN19CClientFrameManager9FreeFrameEP12CClientFrame ; CClientFrameManager::FreeFrame(CClientFrame *)
		mov	eax, [ebx+0Ch]
		sub	eax, 1
		test	eax, eax
		mov	[ebx+0Ch], eax
		jnz	short loc_CC4DA
		mov	dword ptr [ebx+8], 0

loc_CC4DA:				; CODE XREF: CClientFrameManager::RemoveOldestFrame(void)+Fj
					; CClientFrameManager::RemoveOldestFrame(void)+31j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN19CClientFrameManager17RemoveOldestFrameEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::DeleteClientFrames(int)
_ZN19CClientFrameManager18DeleteClientFramesEi proc near
					; CODE XREF: CClientFrameManager::~CClientFrameManager()+1Bp
					; CHLTVServer::Clear(void)+C4p	...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		test	esi, esi
		js	short loc_CC568
		mov	eax, [ebx+4]
		mov	dword ptr [ebx+8], 0
		lea	esi, [esi+0]

loc_CC500:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+54j
					; CClientFrameManager::DeleteClientFrames(int)+79j
		test	eax, eax
		jz	short loc_CC540

loc_CC504:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+5Ej
		cmp	esi, [eax+8]
		jle	short loc_CC550
		cmp	[ebx+4], eax
		mov	edi, [eax+114h]
		jz	short loc_CC560

loc_CC514:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+83j
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN19CClientFrameManager9FreeFrameEP12CClientFrame ; CClientFrameManager::FreeFrame(CClientFrame *)
		mov	eax, [ebx+0Ch]
		sub	eax, 1
		test	eax, eax
		mov	[ebx+0Ch], eax
		jz	short loc_CC590
		mov	edx, [ebx+8]
		mov	eax, edi
		test	edx, edx
		jz	short loc_CC500
		test	eax, eax
		mov	[edx+114h], edi
		jnz	short loc_CC504

loc_CC540:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+22j
					; CClientFrameManager::DeleteClientFrames(int)+8Dj
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CC550:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+27j
		mov	[ebx+8], eax
		mov	eax, [eax+114h]
		jmp	short loc_CC500
; ---------------------------------------------------------------------------
		align 10h

loc_CC560:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+32j
		mov	[ebx+4], edi
		jmp	short loc_CC514
; ---------------------------------------------------------------------------
		align 4

loc_CC568:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+11j
		mov	edi, [ebx+0Ch]
		test	edi, edi
		jle	short loc_CC540
		nop

loc_CC570:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+9Dj
		mov	[esp], ebx
		call	_ZN19CClientFrameManager17RemoveOldestFrameEv ;	CClientFrameManager::RemoveOldestFrame(void)
		mov	esi, [ebx+0Ch]
		test	esi, esi
		jg	short loc_CC570
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CC590:				; CODE XREF: CClientFrameManager::DeleteClientFrames(int)+4Bj
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 0
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN19CClientFrameManager18DeleteClientFramesEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::~CClientFrameManager()
_ZN19CClientFrameManagerD2Ev proc near	; CODE XREF: CClientFrameManager::~CClientFrameManager()+Dp
					; CClientState::~CClientState()+F9p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV19CClientFrameManager+8)
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp], ebx
		call	_ZN19CClientFrameManager18DeleteClientFramesEi ; CClientFrameManager::DeleteClientFrames(int)
		add	ebx, 10h
		mov	[ebp+arg_0], ebx
		add	esp, 24h
		pop	ebx
		pop	ebp
		jmp	_ZN14CUtlMemoryPoolD2Ev	; CUtlMemoryPool::~CUtlMemoryPool()
_ZN19CClientFrameManagerD2Ev endp

; ---------------------------------------------------------------------------
		add	ebx, 10h
		mov	[ebp-0Ch], eax
		mov	[esp], ebx
		call	_ZN14CUtlMemoryPoolD2Ev	; CUtlMemoryPool::~CUtlMemoryPool()
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::~CClientFrameManager()
_ZN19CClientFrameManagerD0Ev proc near	; DATA XREF: .rodata:`vtable for'CClientFrameManagero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN19CClientFrameManagerD2Ev ; CClientFrameManager::~CClientFrameManager()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN19CClientFrameManagerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrameManager::CClientFrameManager(void)
_ZN19CClientFrameManagerC2Ev proc near	; CODE XREF: CClientState::CClientState(void)+20p
					; CHLTVServer::CHLTVServer(void)+2Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV19CClientFrameManager+8)
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		add	eax, 10h
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 2
		mov	dword ptr [esp+8], 80h
		mov	dword ptr [esp+4], 11Ch
		mov	[esp], eax
		call	_ZN14CUtlMemoryPoolC2EiiiPKci ;	CUtlMemoryPool::CUtlMemoryPool(int,int,int,char	 const*,int)
		leave
		retn
_ZN19CClientFrameManagerC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientFrame::IsMemPoolAllocated(void)
_ZN12CClientFrame18IsMemPoolAllocatedEv	proc near
					; DATA XREF: .rodata:`vtable for'CClientFrameo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientFrame18IsMemPoolAllocatedEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClockDriftMgr::Clear(void)
_ZN14CClockDriftMgr5ClearEv proc near	; CODE XREF: CBaseClientState::Clear(void)+28p
					; CClockDriftMgr::CClockDriftMgr(void)+4j

arg_0		= dword	ptr  8

		push	ebp
		mov	edx, 40h
		mov	ebp, esp
		push	edi
		mov	edi, [ebp+arg_0]
		test	edi, 1
		mov	dword ptr [edi+48h], 0
		mov	dword ptr [edi+44h], 0
		mov	dword ptr [edi+40h], 0
		jnz	short loc_CC6E8
		test	edi, 2
		jnz	short loc_CC700

loc_CC6C1:				; CODE XREF: CClockDriftMgr::Clear(void)+66j
					; CClockDriftMgr::Clear(void)+7Bj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_CC6D7
		mov	word ptr [edi],	0
		add	edi, 2

loc_CC6D7:				; CODE XREF: CClockDriftMgr::Clear(void)+3Dj
		and	edx, 1
		jz	short loc_CC6DF
		mov	byte ptr [edi],	0

loc_CC6DF:				; CODE XREF: CClockDriftMgr::Clear(void)+4Aj
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CC6E8:				; CODE XREF: CClockDriftMgr::Clear(void)+27j
		mov	byte ptr [edi],	0
		add	edi, 1
		mov	dl, 3Fh
		test	edi, 2
		jz	short loc_CC6C1
		nop
		lea	esi, [esi+0]

loc_CC700:				; CODE XREF: CClockDriftMgr::Clear(void)+2Fj
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	short loc_CC6C1
_ZN14CClockDriftMgr5ClearEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClockDriftMgr::CClockDriftMgr(void)
_ZN14CClockDriftMgrC2Ev	proc near	; CODE XREF: CBaseClientState::CBaseClientState(void)+35p
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_ZN14CClockDriftMgr5ClearEv ; CClockDriftMgr::Clear(void)
_ZN14CClockDriftMgrC2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClockDriftMgr::SetServerTick(int)
_ZN14CClockDriftMgr13SetServerTickEi proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN14CClockDriftMgr13SetServerTickEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClockDriftMgr::GetCurrentClockDifference(void)const
_ZNK14CClockDriftMgr25GetCurrentClockDifferenceEv proc near

arg_0		= dword	ptr  8

		push	ebp
		fldz
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	esi, [esi+0]

loc_CC740:				; CODE XREF: CClockDriftMgr::GetCurrentClockDifference(void)+19j
		fadd	dword ptr [edx+eax*4]
		add	eax, 1
		cmp	eax, 10h
		jnz	short loc_CC740
		fmul	ds:flt_1F3A58
		pop	ebp
		retn
_ZNK14CClockDriftMgr25GetCurrentClockDifferenceEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClockDriftMgr::ShowDebugInfo(float)
_ZN14CClockDriftMgr13ShowDebugInfoEf proc near
					; CODE XREF: CClockDriftMgr::AdjustFrameTime(float)+14p

arg_0		= dword	ptr  8

		mov	eax, dword ptr ds:cl_clock_showdebuginfo+1Ch
		push	ebp
		mov	ebp, esp
		mov	eax, [eax+30h]
		test	eax, eax
		jnz	short loc_CC778
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CC778:				; CODE XREF: CClockDriftMgr::ShowDebugInfo(float)+Dj
		mov	[ebp+arg_0], offset aClockDriftDisa ; "Clock drift disabled.\n"
		pop	ebp
		jmp	Msg
_ZN14CClockDriftMgr13ShowDebugInfoEf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CClockDriftMgr__AdjustFrameTime(int, float)
_ZN14CClockDriftMgr15AdjustFrameTimeEf proc near ; CODE	XREF: Host_AccumulateTime(float)+79p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZN14CClockDriftMgr13ShowDebugInfoEf ; CClockDriftMgr::ShowDebugInfo(float)
		fld	[ebp+arg_4]
		leave
		retn
_ZN14CClockDriftMgr15AdjustFrameTimeEf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CClockDriftMgr__AdjustAverageDifferenceBy(int, float)
_ZN14CClockDriftMgr25AdjustAverageDifferenceByEf proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		fldz
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		lea	esi, [esi+0]

loc_CC7C0:				; CODE XREF: CClockDriftMgr::AdjustAverageDifferenceBy(float)+19j
		fadd	dword ptr [edx+eax*4]
		add	eax, 1
		cmp	eax, 10h
		jnz	short loc_CC7C0
		fmul	ds:flt_1F3A58
		fld	ds:flt_1F318C
		fcomip	st, st(1)
		ja	short loc_CC808
		fld	[ebp+arg_4]
		xor	al, al
		fdiv	dword ptr ds:host_state+8
		fdivrp	st(1), st
		fadd	ds:flt_1EBCFC
		db	66h
		nop

loc_CC7F0:				; CODE XREF: CClockDriftMgr::AdjustAverageDifferenceBy(float)+4Ej
		fld	dword ptr [edx+eax*4]
		fmul	st, st(1)
		fstp	dword ptr [edx+eax*4]
		add	eax, 1
		cmp	eax, 10h
		jnz	short loc_CC7F0
		fstp	st
		jmp	short loc_CC80A
; ---------------------------------------------------------------------------
		align 8

loc_CC808:				; CODE XREF: CClockDriftMgr::AdjustAverageDifferenceBy(float)+29j
		fstp	st

loc_CC80A:				; CODE XREF: CClockDriftMgr::AdjustAverageDifferenceBy(float)+52j
		pop	ebp
		retn
_ZN14CClockDriftMgr25AdjustAverageDifferenceByEf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClockDriftMgr::IsClockCorrectionEnabled(void)
_ZN14CClockDriftMgr24IsClockCorrectionEnabledEv	proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN14CClockDriftMgr24IsClockCorrectionEnabledEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ConnectionClosing(char	const*)
_ZN12CClientState17ConnectionClosingEPKc proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState17ConnectionClosingEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ConnectionCrashed(char	const*)
_ZN12CClientState17ConnectionCrashedEPKc proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState17ConnectionCrashedEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessConnectionlessPacket(netpacket_s *)
_ZThn4_N12CClientState27ProcessConnectionlessPacketEP11netpacket_s proc	near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN12CClientState27ProcessConnectionlessPacketEP11netpacket_s ; CClientState::ProcessConnectionlessPacket(netpacket_s *)
_ZThn4_N12CClientState27ProcessConnectionlessPacketEP11netpacket_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessConnectionlessPacket(netpacket_s	*)
_ZN12CClientState27ProcessConnectionlessPacketEP11netpacket_s proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessConnectionlessPacket(netpacket_s *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState27ProcessConnectionlessPacketEP11netpacket_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::PacketStart(int, int)
_ZN12CClientState11PacketStartEii proc near ; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState11PacketStartEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::PacketEnd(void)
_ZN12CClientState9PacketEndEv proc near	; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState9PacketEndEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::FileReceived(char  const*, unsigned int)
_ZN12CClientState12FileReceivedEPKcj proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState12FileReceivedEPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::FileRequested(char  const*, unsigned int)
_ZN12CClientState13FileRequestedEPKcj proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState13FileRequestedEPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::FileDenied(char	 const*, unsigned int)
_ZN12CClientState10FileDeniedEPKcj proc	near ; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState10FileDeniedEPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::FileSent(char  const*, unsigned	int)
_ZN12CClientState8FileSentEPKcj	proc near ; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState8FileSentEPKcj	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::Disconnect(char	 const*, bool)
_ZN12CClientState10DisconnectEPKcb proc	near ; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState10DisconnectEPKcb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::FullConnect(netadr_s &)
_ZN12CClientState11FullConnectER8netadr_s proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState11FullConnectER8netadr_s endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::SetSignonState(int, int)
_ZN12CClientState14SetSignonStateEii proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState14SetSignonStateEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::InstallStringTableCallback(char	 const*)
_ZN12CClientState26InstallStringTableCallbackEPKc proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState26InstallStringTableCallbackEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ReadEnterPVS(CEntityReadInfo &)
_ZN12CClientState12ReadEnterPVSER15CEntityReadInfo proc	near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState12ReadEnterPVSER15CEntityReadInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ReadLeavePVS(CEntityReadInfo &)
_ZN12CClientState12ReadLeavePVSER15CEntityReadInfo proc	near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState12ReadLeavePVSER15CEntityReadInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ReadDeltaEnt(CEntityReadInfo &)
_ZN12CClientState12ReadDeltaEntER15CEntityReadInfo proc	near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState12ReadDeltaEntER15CEntityReadInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ReadPreserveEnt(CEntityReadInfo	&)
_ZN12CClientState15ReadPreserveEntER15CEntityReadInfo proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState15ReadPreserveEntER15CEntityReadInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ReadDeletions(CEntityReadInfo &)
_ZN12CClientState13ReadDeletionsER15CEntityReadInfo proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState13ReadDeletionsER15CEntityReadInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::GetCDKeyHash(void)
_ZN12CClientState12GetCDKeyHashEv proc near ; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, offset dword_1EC2D0
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState12GetCDKeyHashEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::Clear(void)
_ZN12CClientState5ClearEv proc near	; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState5ClearEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessGameEvent(SVC_GameEvent *)
_ZThn8_N12CClientState16ProcessGameEventEP13SVC_GameEvent proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState16ProcessGameEventEP13SVC_GameEvent ; CClientState::ProcessGameEvent(SVC_GameEvent *)
_ZThn8_N12CClientState16ProcessGameEventEP13SVC_GameEvent endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessGameEvent(SVC_GameEvent *)
_ZN12CClientState16ProcessGameEventEP13SVC_GameEvent proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessGameEvent(SVC_GameEvent *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState16ProcessGameEventEP13SVC_GameEvent endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessUserMessage(SVC_UserMessage *)
_ZThn8_N12CClientState18ProcessUserMessageEP15SVC_UserMessage proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState18ProcessUserMessageEP15SVC_UserMessage ; CClientState::ProcessUserMessage(SVC_UserMessage *)
_ZThn8_N12CClientState18ProcessUserMessageEP15SVC_UserMessage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessUserMessage(SVC_UserMessage *)
_ZN12CClientState18ProcessUserMessageEP15SVC_UserMessage proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessUserMessage(SVC_UserMessage *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState18ProcessUserMessageEP15SVC_UserMessage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessEntityMessage(SVC_EntityMessage *)
_ZThn8_N12CClientState20ProcessEntityMessageEP17SVC_EntityMessage proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState20ProcessEntityMessageEP17SVC_EntityMessage ; CClientState::ProcessEntityMessage(SVC_EntityMessage *)
_ZThn8_N12CClientState20ProcessEntityMessageEP17SVC_EntityMessage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessEntityMessage(SVC_EntityMessage *)
_ZN12CClientState20ProcessEntityMessageEP17SVC_EntityMessage proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessEntityMessage(SVC_EntityMessage *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState20ProcessEntityMessageEP17SVC_EntityMessage endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessBSPDecal(SVC_BSPDecal *)
_ZThn8_N12CClientState15ProcessBSPDecalEP12SVC_BSPDecal	proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState15ProcessBSPDecalEP12SVC_BSPDecal ; CClientState::ProcessBSPDecal(SVC_BSPDecal *)
_ZThn8_N12CClientState15ProcessBSPDecalEP12SVC_BSPDecal	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessBSPDecal(SVC_BSPDecal *)
_ZN12CClientState15ProcessBSPDecalEP12SVC_BSPDecal proc	near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessBSPDecal(SVC_BSPDecal *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState15ProcessBSPDecalEP12SVC_BSPDecal endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessCrosshairAngle(SVC_CrosshairAngle *)
_ZThn8_N12CClientState21ProcessCrosshairAngleEP18SVC_CrosshairAngle proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState21ProcessCrosshairAngleEP18SVC_CrosshairAngle ; CClientState::ProcessCrosshairAngle(SVC_CrosshairAngle *)
_ZThn8_N12CClientState21ProcessCrosshairAngleEP18SVC_CrosshairAngle endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessCrosshairAngle(SVC_CrosshairAngle *)
_ZN12CClientState21ProcessCrosshairAngleEP18SVC_CrosshairAngle proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessCrosshairAngle(SVC_CrosshairAngle *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState21ProcessCrosshairAngleEP18SVC_CrosshairAngle endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessFixAngle(SVC_FixAngle *)
_ZThn8_N12CClientState15ProcessFixAngleEP12SVC_FixAngle	proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState15ProcessFixAngleEP12SVC_FixAngle ; CClientState::ProcessFixAngle(SVC_FixAngle *)
_ZThn8_N12CClientState15ProcessFixAngleEP12SVC_FixAngle	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessFixAngle(SVC_FixAngle *)
_ZN12CClientState15ProcessFixAngleEP12SVC_FixAngle proc	near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessFixAngle(SVC_FixAngle *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState15ProcessFixAngleEP12SVC_FixAngle endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessVoiceData(SVC_VoiceData *)
_ZThn8_N12CClientState16ProcessVoiceDataEP13SVC_VoiceData proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState16ProcessVoiceDataEP13SVC_VoiceData ; CClientState::ProcessVoiceData(SVC_VoiceData *)
_ZThn8_N12CClientState16ProcessVoiceDataEP13SVC_VoiceData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessVoiceData(SVC_VoiceData *)
_ZN12CClientState16ProcessVoiceDataEP13SVC_VoiceData proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessVoiceData(SVC_VoiceData *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState16ProcessVoiceDataEP13SVC_VoiceData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessVoiceInit(SVC_VoiceInit *)
_ZThn8_N12CClientState16ProcessVoiceInitEP13SVC_VoiceInit proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState16ProcessVoiceInitEP13SVC_VoiceInit ; CClientState::ProcessVoiceInit(SVC_VoiceInit *)
_ZThn8_N12CClientState16ProcessVoiceInitEP13SVC_VoiceInit endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessVoiceInit(SVC_VoiceInit *)
_ZN12CClientState16ProcessVoiceInitEP13SVC_VoiceInit proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessVoiceInit(SVC_VoiceInit *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState16ProcessVoiceInitEP13SVC_VoiceInit endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessSetPause(SVC_SetPause *)
_ZThn8_N12CClientState15ProcessSetPauseEP12SVC_SetPause	proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState15ProcessSetPauseEP12SVC_SetPause ; CClientState::ProcessSetPause(SVC_SetPause *)
_ZThn8_N12CClientState15ProcessSetPauseEP12SVC_SetPause	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessSetPause(SVC_SetPause *)
_ZN12CClientState15ProcessSetPauseEP12SVC_SetPause proc	near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessSetPause(SVC_SetPause *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState15ProcessSetPauseEP12SVC_SetPause endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessClassInfo(SVC_ClassInfo *)
_ZThn8_N12CClientState16ProcessClassInfoEP13SVC_ClassInfo proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState16ProcessClassInfoEP13SVC_ClassInfo ; CClientState::ProcessClassInfo(SVC_ClassInfo *)
_ZThn8_N12CClientState16ProcessClassInfoEP13SVC_ClassInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessClassInfo(SVC_ClassInfo *)
_ZN12CClientState16ProcessClassInfoEP13SVC_ClassInfo proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessClassInfo(SVC_ClassInfo *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState16ProcessClassInfoEP13SVC_ClassInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessStringCmd(NET_StringCmd *)
_ZThn8_N12CClientState16ProcessStringCmdEP13NET_StringCmd proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState16ProcessStringCmdEP13NET_StringCmd ; CClientState::ProcessStringCmd(NET_StringCmd *)
_ZThn8_N12CClientState16ProcessStringCmdEP13NET_StringCmd endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessStringCmd(NET_StringCmd *)
_ZN12CClientState16ProcessStringCmdEP13NET_StringCmd proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessStringCmd(NET_StringCmd *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState16ProcessStringCmdEP13NET_StringCmd endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessServerInfo(SVC_ServerInfo *)
_ZThn8_N12CClientState17ProcessServerInfoEP14SVC_ServerInfo proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState17ProcessServerInfoEP14SVC_ServerInfo ; CClientState::ProcessServerInfo(SVC_ServerInfo *)
_ZThn8_N12CClientState17ProcessServerInfoEP14SVC_ServerInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessServerInfo(SVC_ServerInfo *)
_ZN12CClientState17ProcessServerInfoEP14SVC_ServerInfo proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessServerInfo(SVC_ServerInfo *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState17ProcessServerInfoEP14SVC_ServerInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessTick(NET_Tick *)
_ZThn8_N12CClientState11ProcessTickEP8NET_Tick proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState11ProcessTickEP8NET_Tick	; CClientState::ProcessTick(NET_Tick *)
_ZThn8_N12CClientState11ProcessTickEP8NET_Tick endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessTick(NET_Tick *)
_ZN12CClientState11ProcessTickEP8NET_Tick proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessTick(NET_Tick *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState11ProcessTickEP8NET_Tick endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessTempEntities(SVC_TempEntities *)
_ZThn8_N12CClientState19ProcessTempEntitiesEP16SVC_TempEntities	proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState19ProcessTempEntitiesEP16SVC_TempEntities ; CClientState::ProcessTempEntities(SVC_TempEntities *)
_ZThn8_N12CClientState19ProcessTempEntitiesEP16SVC_TempEntities	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessTempEntities(SVC_TempEntities *)
_ZN12CClientState19ProcessTempEntitiesEP16SVC_TempEntities proc	near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessTempEntities(SVC_TempEntities *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState19ProcessTempEntitiesEP16SVC_TempEntities endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessPacketEntities(SVC_PacketEntities *)
_ZThn8_N12CClientState21ProcessPacketEntitiesEP18SVC_PacketEntities proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState21ProcessPacketEntitiesEP18SVC_PacketEntities ; CClientState::ProcessPacketEntities(SVC_PacketEntities *)
_ZThn8_N12CClientState21ProcessPacketEntitiesEP18SVC_PacketEntities endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessPacketEntities(SVC_PacketEntities *)
_ZN12CClientState21ProcessPacketEntitiesEP18SVC_PacketEntities proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessPacketEntities(SVC_PacketEntities *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState21ProcessPacketEntitiesEP18SVC_PacketEntities endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessSounds(SVC_Sounds *)
_ZThn8_N12CClientState13ProcessSoundsEP10SVC_Sounds proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState13ProcessSoundsEP10SVC_Sounds ; CClientState::ProcessSounds(SVC_Sounds *)
_ZThn8_N12CClientState13ProcessSoundsEP10SVC_Sounds endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessSounds(SVC_Sounds *)
_ZN12CClientState13ProcessSoundsEP10SVC_Sounds proc near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessSounds(SVC_Sounds *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState13ProcessSoundsEP10SVC_Sounds endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::ProcessPrefetch(SVC_Prefetch *)
_ZThn8_N12CClientState15ProcessPrefetchEP12SVC_Prefetch	proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientState15ProcessPrefetchEP12SVC_Prefetch ; CClientState::ProcessPrefetch(SVC_Prefetch *)
_ZThn8_N12CClientState15ProcessPrefetchEP12SVC_Prefetch	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ProcessPrefetch(SVC_Prefetch *)
_ZN12CClientState15ProcessPrefetchEP12SVC_Prefetch proc	near
					; CODE XREF: `non-virtual thunk	to'CClientState::ProcessPrefetch(SVC_Prefetch *)+5j
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState15ProcessPrefetchEP12SVC_Prefetch endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::RunFrame(void)
_ZN12CClientState8RunFrameEv proc near	; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState8RunFrameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::HookClientStringTable(char  const*)
_ZN12CClientState21HookClientStringTableEPKc proc near
					; DATA XREF: .rodata:`vtable for'CClientStateo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState21HookClientStringTableEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CL_IsHL2Demo(void)
_Z12CL_IsHL2Demov proc near		; CODE XREF: CL_HL2Demo_MapCheck(char  const*)+14p
					; Host_Changelevel2_f(CCommand	const&):loc_11B528p ...
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z12CL_IsHL2Demov endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CL_IsPortalDemo(void)
_Z15CL_IsPortalDemov proc near		; CODE XREF: CL_PortalDemo_MapCheck(char  const*)+14p
					; SetupMaxPlayers(int):loc_186A18p
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z15CL_IsPortalDemov endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BeginLoadingUpdates(MaterialNonInteractiveMode_t)
_Z19BeginLoadingUpdates28MaterialNonInteractiveMode_t proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z19BeginLoadingUpdates28MaterialNonInteractiveMode_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RefreshScreenIfNecessary(void)
_Z24RefreshScreenIfNecessaryv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z24RefreshScreenIfNecessaryv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; EndLoadingUpdates(void)
_Z17EndLoadingUpdatesv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z17EndLoadingUpdatesv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Con_ColorPrintf(int, char	*format, char arg)
_Z15Con_ColorPrintfRK5ColorPKcz	proc near
					; CODE XREF: Sys_SpewFunc(SpewType_t,char  const*)+22Dp

s		= byte ptr -1008h
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 1014h
		cmp	ds:host_initialized, 0
		jz	short loc_CCC3F
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	[esp], ebx	; s
		call	_Z25HandleRedirectAndDebugLogPKc ; HandleRedirectAndDebugLog(char  const*)

loc_CCC3F:				; CODE XREF: Con_ColorPrintf(Color  const&,char	 const*,...)+11j
		add	esp, 1014h
		pop	ebx
		pop	ebp
		retn
_Z15Con_ColorPrintfRK5ColorPKcz	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Con_NPrintf(int, char *format, char arg)
_Z11Con_NPrintfiPKcz proc near		; CODE XREF: PrintPartialChangeEntsList(void)+3Dp
					; PrintPartialChangeEntsList(void)+51p	...

s		= byte ptr -1008h
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1018h
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	[esp+8], eax	; format
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		leave
		retn
_Z11Con_NPrintfiPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SCR_UpdateScreen(void)
_Z16SCR_UpdateScreenv proc near		; CODE XREF: host_runofftime(CCommand  const&)+5Ep
					; host_runofftime(CCommand  const&)+64j
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z16SCR_UpdateScreenv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SCR_EndLoadingPlaque(void)
_Z20SCR_EndLoadingPlaquev proc near	; CODE XREF: CHostState::State_NewGame(void):loc_11FE0Ap
					; CHostState::State_LoadGame(void)+Ap
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z20SCR_EndLoadingPlaquev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ClientDLL_FrameStageNotify(ClientFrameStage_t)
_Z26ClientDLL_FrameStageNotify18ClientFrameStage_t proc	near
					; CODE XREF: CLocalNetworkBackdoor::StartEntityStateUpdate(void)+64j
					; CLocalNetworkBackdoor::EndEntityStateUpdate(void)+16p ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z26ClientDLL_FrameStageNotify18ClientFrameStage_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ClientDLL_GetAllClasses(void)
_Z23ClientDLL_GetAllClassesv proc near	; CODE XREF: CBaseClientState::FindClientClass(char  const*)+11p
					; CHLTVServer::InitClientRecvTables(void)+Cp ...
		push	ebp
		mov	eax, ds:g_pClientClassHead
		mov	ebp, esp
		pop	ebp
		retn
_Z23ClientDLL_GetAllClassesv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ComputeLightRadius(dworldlight_t *, bool)
_Z18ComputeLightRadiusP13dworldlight_tb	proc near
					; CODE XREF: Mod_LoadWorldlights(CMapLoadHelper	&,bool)+1E2p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		fld	dword ptr [eax+3Ch]
		fldz
		fcomi	st, st(1)
		jnz	short loc_CCD38
		fstp	st(1)
		fld	dword ptr [eax+0Ch]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+14h]
		fxch	st(1)
		fmul	st, st
		fxch	st(2)
		fmul	st, st
		faddp	st(2), st
		fmul	st, st
		faddp	st(1), st
		fsqrt
		fld	dword ptr [eax+48h]
		fcomi	st, st(2)
		jz	short loc_CCD60
		fld	dword ptr [eax+44h]
		fld	st
		fmul	st, st(1)
		fld	ds:flt_1EBD8C
		fmul	st, st(3)
		fld	ds:flt_1F3CA0
		fmulp	st(5), st
		fxch	st(4)
		fsubr	dword ptr [eax+40h]
		fmulp	st(4), st
		fsubrp	st(3), st
		fld	ds:flt_1F3C9C
		fxch	st(4)
		fcomi	st, st(3)
		ja	short loc_CCD40
		fstp	st(4)
		fxch	st(1)
		fxch	st(2)
		fsqrt
		fsubrp	st(1), st
		fxch	st(1)
		fadd	st, st
		fdivp	st(1), st
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		jmp	short loc_CCD58
; ---------------------------------------------------------------------------
		align 4

loc_CCD38:				; CODE XREF: ComputeLightRadius(dworldlight_t *,bool)+Dj
		fstp	st
		jmp	short loc_CCD58
; ---------------------------------------------------------------------------
		align 10h

loc_CCD40:				; CODE XREF: ComputeLightRadius(dworldlight_t *,bool)+5Bj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_CCD58
; ---------------------------------------------------------------------------
		align 10h

loc_CCD50:				; CODE XREF: ComputeLightRadius(dworldlight_t *,bool)+B1j
		fstp	st(1)
		fstp	st(1)
		lea	esi, [esi+0]

loc_CCD58:				; CODE XREF: ComputeLightRadius(dworldlight_t *,bool)+73j
					; ComputeLightRadius(dworldlight_t *,bool)+7Aj	...
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CCD60:				; CODE XREF: ComputeLightRadius(dworldlight_t *,bool)+2Fj
		fstp	st
		fld	dword ptr [eax+44h]
		fld	ds:flt_1F3C9C
		fxch	st(1)
		fcomi	st, st(3)
		fstp	st(3)
		jz	short loc_CCD50
		fstp	st
		fld	ds:flt_1F3CA0
		fmulp	st(1), st
		pop	ebp
		fsub	dword ptr [eax+40h]
		fdivrp	st(1), st
		retn
_Z18ComputeLightRadiusP13dworldlight_tb	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::SendClientInfo(void)
_ZN12CClientState14SendClientInfoEv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState14SendClientInfoEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::SendServerCmdKeyValues(KeyValues *)
_ZN12CClientState22SendServerCmdKeyValuesEP9KeyValues proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState22SendServerCmdKeyValuesEP9KeyValues endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::InstallEngineStringTableCallback(char  const*)
_ZN12CClientState32InstallEngineStringTableCallbackEPKc	proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState32InstallEngineStringTableCallbackEPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::GetTime(void)const
_ZNK12CClientState7GetTimeEv proc near
		push	ebp
		fldz
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12CClientState7GetTimeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::ConsistencyCheck(bool)
_ZN12CClientState16ConsistencyCheckEb proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CClientState16ConsistencyCheckEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::~CClientState()
_ZThn18976_N12CClientStateD1Ev proc near ; DATA	XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4A20h
		jmp	short _ZN12CClientStateD2Ev ; CClientState::~CClientState()
_ZThn18976_N12CClientStateD1Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::~CClientState()
_ZThn8_N12CClientStateD1Ev proc	near	; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientStateD2Ev ; CClientState::~CClientState()
_ZThn8_N12CClientStateD1Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::~CClientState()
_ZThn4_N12CClientStateD1Ev proc	near	; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN12CClientStateD2Ev ; CClientState::~CClientState()
_ZThn4_N12CClientStateD1Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::~CClientState()
_ZN12CClientStateD2Ev proc near		; CODE XREF: `non-virtual thunk	to'CClientState::~CClientState()+8j
					; `non-virtual thunk to'CClientState::~CClientState()+5j ...

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		lea	eax, [ebx+4B7Ch]
		mov	dword ptr [ebx], (offset _ZTV12CClientState+8)
		lea	edi, [ebx+4D7Ch]
		mov	dword ptr [ebx+4], (offset _ZTV12CClientState+100h)
		mov	dword ptr [ebx+8], (offset _ZTV12CClientState+114h)
		mov	esi, edi
		mov	dword ptr [ebx+4A20h], (offset _ZTV12CClientState+198h)
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], ebx
		db	66h
		nop

loc_CCE50:				; CODE XREF: CClientState::~CClientState()+78j
		mov	eax, [esi-8]
		test	eax, eax
		js	short loc_CCE82
		mov	eax, [esi-10h]
		lea	ebx, [edi-10h]
		mov	edx, esi
		sub	edx, edi
		test	eax, eax
		jz	short loc_CCE7A
		mov	[ebp+var_24], edx
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [esi-10h], 0
		mov	edx, [ebp+var_24]

loc_CCE7A:				; CODE XREF: CClientState::~CClientState()+53j
		mov	dword ptr [edx+ebx+4], 0

loc_CCE82:				; CODE XREF: CClientState::~CClientState()+45j
		sub	esi, 10h
		cmp	[ebp+var_1C], esi
		jnz	short loc_CCE50
		mov	ebx, [ebp+var_20]
		lea	eax, [ebx+4B4Ch]
		mov	[esp], eax
		call	_ZN14CUtlLinkedListI10CEventInfoiLb1Ei15CUtlFixedMemoryI19UtlLinkedListElem_tIS0_iEEE9RemoveAllEv ; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)
		mov	eax, [ebx+4B4Ch]
		test	eax, eax
		jnz	short loc_CCEB2
		jmp	short loc_CCED4
; ---------------------------------------------------------------------------
		align 10h

loc_CCEB0:				; CODE XREF: CClientState::~CClientState()+AEj
		mov	eax, esi

loc_CCEB2:				; CODE XREF: CClientState::~CClientState()+93j
		mov	esi, [eax]
		mov	[esp], eax	; ptr
		call	free
		test	esi, esi
		jnz	short loc_CCEB0
		mov	dword ptr [ebx+4B4Ch], 0
		mov	dword ptr [ebx+4B50h], 0

loc_CCED4:				; CODE XREF: CClientState::~CClientState()+95j
		mov	dword ptr [ebx+4AF4h], 0
		lea	esi, [ebx+4AE8h]
		mov	[esp], esi
		call	_ZN10CUtlMemoryI8AddAngleiE5PurgeEv ; CUtlMemory<AddAngle,int>::Purge(void)
		mov	eax, [ebx+4AE8h]
		mov	[ebx+4AF8h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI8AddAngleiE5PurgeEv ; CUtlMemory<AddAngle,int>::Purge(void)
		lea	eax, [ebx+4A20h]
		mov	[esp], eax
		call	_ZN19CClientFrameManagerD2Ev ; CClientFrameManager::~CClientFrameManager()
		mov	[ebp+arg_0], ebx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN16CBaseClientStateD2Ev ; CBaseClientState::~CBaseClientState()
_ZN12CClientStateD2Ev endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN16CBaseClientStateD2Ev ; CBaseClientState::~CBaseClientState()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::~CClientState()
_ZThn18976_N12CClientStateD0Ev proc near ; DATA	XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4A20h
		jmp	short _ZN12CClientStateD0Ev ; CClientState::~CClientState()
_ZThn18976_N12CClientStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::~CClientState()
_ZThn8_N12CClientStateD0Ev proc	near	; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 8
		jmp	short _ZN12CClientStateD0Ev ; CClientState::~CClientState()
_ZThn8_N12CClientStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CClientState::~CClientState()
_ZThn4_N12CClientStateD0Ev proc	near	; DATA XREF: .rodata:`vtable for'CClientStateo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN12CClientStateD0Ev ; CClientState::~CClientState()
_ZThn4_N12CClientStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CClientState___CClientState(void *)
_ZN12CClientStateD0Ev proc near		; CODE XREF: `non-virtual thunk	to'CClientState::~CClientState()+8j
					; `non-virtual thunk to'CClientState::~CClientState()+5j ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN12CClientStateD2Ev ;	CClientState::~CClientState()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN12CClientStateD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientState::CClientState(void)
_ZN12CClientStateC2Ev proc near		; CODE XREF: _GLOBAL__sub_I_g_pSoundServices+62p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		mov	[esp], edi
		call	_ZN16CBaseClientStateC2Ev ; CBaseClientState::CBaseClientState(void)
		lea	eax, [edi+4A20h]
		mov	[ebp+var_24], eax
		mov	[esp], eax
		call	_ZN19CClientFrameManagerC2Ev ; CClientFrameManager::CClientFrameManager(void)
		mov	dword ptr [edi], (offset _ZTV12CClientState+8)
		lea	eax, [edi+4B4Ch]
		mov	dword ptr [edi+4], (offset _ZTV12CClientState+100h)
		mov	dword ptr [edi+8], (offset _ZTV12CClientState+114h)
		mov	dword ptr [edi+4A20h], (offset _ZTV12CClientState+198h)
		mov	dword ptr [edi+4AE8h], 0
		mov	dword ptr [edi+4AECh], 0
		mov	dword ptr [edi+4AF0h], 0
		mov	dword ptr [edi+4AF4h], 0
		mov	dword ptr [edi+4AF8h], 0
		mov	dword ptr [edi+4B4Ch], 0
		mov	dword ptr [edi+4B50h], 0
		mov	dword ptr [edi+4B54h], 0
		mov	[ebp+var_20], eax
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_ZN15CUtlFixedMemoryI19UtlLinkedListElem_tI10CEventInfoiEE4GrowEi ; CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)
		lea	eax, [edi+4B7Ch]
		mov	esi, 1Fh
		mov	dword ptr [edi+4B6Ch], 0
		mov	dword ptr [edi+4B70h], 0
		mov	ebx, eax
		mov	dword ptr [edi+4B58h], 0
		mov	dword ptr [edi+4B5Ch], 0
		mov	dword ptr [edi+4B60h], 0
		mov	dword ptr [edi+4B64h], 0
		mov	dword ptr [edi+4B68h], 0
		mov	dword ptr [edi+4B74h], 0
		mov	[ebp+var_1C], eax
		lea	esi, [esi+0]

loc_CD090:				; CODE XREF: CClientState::CClientState(void)+121j
		mov	[esp], ebx
		call	_ZN10CUtlStringC2Ev ; CUtlString::CUtlString(void)
		sub	esi, 1
		add	ebx, 10h
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_CD090
		lea	ebx, [edi+4DA4h]
		lea	esi, [edi+8DA4h]
		nop

loc_CD0B0:				; CODE XREF: CClientState::CClientState(void)+13Dj
		mov	[esp], ebx
		call	_ZN13CPrecacheItemC2Ev ; CPrecacheItem::CPrecacheItem(void)
		add	ebx, 8
		cmp	ebx, esi
		jnz	short loc_CD0B0
		lea	esi, [edi+9DA4h]
		lea	esi, [esi+0]

loc_CD0C8:				; CODE XREF: CClientState::CClientState(void)+155j
		mov	[esp], ebx
		call	_ZN13CPrecacheItemC2Ev ; CPrecacheItem::CPrecacheItem(void)
		add	ebx, 8
		cmp	ebx, esi
		jnz	short loc_CD0C8
		lea	esi, [edi+19DA4h]
		lea	esi, [esi+0]

loc_CD0E0:				; CODE XREF: CClientState::CClientState(void)+16Dj
		mov	[esp], ebx
		call	_ZN13CPrecacheItemC2Ev ; CPrecacheItem::CPrecacheItem(void)
		add	ebx, 8
		cmp	ebx, esi
		jnz	short loc_CD0E0
		lea	esi, [edi+1ADA4h]
		lea	esi, [esi+0]

loc_CD0F8:				; CODE XREF: CClientState::CClientState(void)+185j
		mov	[esp], ebx
		call	_ZN13CPrecacheItemC2Ev ; CPrecacheItem::CPrecacheItem(void)
		add	ebx, 8
		cmp	ebx, esi
		jnz	short loc_CD0F8
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN12CClientStateC2Ev endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_CD111:				; CODE XREF: .text:000CD1C2j
		mov	[esp], edi
		call	_ZN16CBaseClientStateD2Ev ; CBaseClientState::~CBaseClientState()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		lea	ebx, [edi+4D7Ch]
		mov	esi, eax

loc_CD129:				; CODE XREF: .text:000CD137j
		sub	ebx, 10h
		mov	[esp], ebx
		call	_ZN10CUtlStringD2Ev ; CUtlString::~CUtlString()
		cmp	[ebp-1Ch], ebx
		jnz	short loc_CD129
		mov	ebx, esi

loc_CD13B:				; CODE XREF: .text:000CD175j
					; .text:000CD187j
		mov	eax, [ebp-20h]
		mov	[esp], eax
		call	_ZN14CUtlLinkedListI10CEventInfoiLb1Ei15CUtlFixedMemoryI19UtlLinkedListElem_tIS0_iEEE9RemoveAllEv ; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)
		mov	eax, [edi+4B4Ch]
		test	eax, eax
		jz	short loc_CD18B

loc_CD150:				; CODE XREF: .text:000CD160j
		mov	esi, [eax]
		mov	[esp], eax
		call	free
		test	esi, esi
		jz	short loc_CD1C7
		mov	eax, esi
		jmp	short loc_CD150
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, 4D6h
		sub	eax, esi
		shl	eax, 4
		lea	esi, [edi+eax+0Ch]
		cmp	[ebp-1Ch], esi
		jz	short loc_CD13B

loc_CD177:				; CODE XREF: .text:000CD185j
		sub	esi, 10h
		mov	[esp], esi
		call	_ZN10CUtlStringD2Ev ; CUtlString::~CUtlString()
		cmp	[ebp-1Ch], esi
		jnz	short loc_CD177
		jmp	short loc_CD13B
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_CD18B:				; CODE XREF: .text:000CD14Ej
					; .text:000CD1DBj
		mov	dword ptr [edi+4AF4h], 0
		lea	esi, [edi+4AE8h]
		mov	[esp], esi
		call	_ZN10CUtlMemoryI8AddAngleiE5PurgeEv ; CUtlMemory<AddAngle,int>::Purge(void)
		mov	eax, [edi+4AE8h]
		mov	[edi+4AF8h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI8AddAngleiE5PurgeEv ; CUtlMemory<AddAngle,int>::Purge(void)
		mov	eax, [ebp-24h]
		mov	[esp], eax
		call	_ZN19CClientFrameManagerD2Ev ; CClientFrameManager::~CClientFrameManager()
		jmp	loc_CD111
; ---------------------------------------------------------------------------

loc_CD1C7:				; CODE XREF: .text:000CD15Cj
		mov	dword ptr [edi+4B4Ch], 0
		mov	dword ptr [edi+4B50h], 0
		jmp	short loc_CD18B
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IRecipientFilter::~IRecipientFilter()
_ZN16IRecipientFilterD2Ev proc near	; DATA XREF: .rodata:`vtable for'IRecipientFiltero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16IRecipientFilter+8)
		pop	ebp
		retn
_ZN16IRecipientFilterD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IRecipientFilter::~IRecipientFilter()
_ZN16IRecipientFilterD0Ev proc near	; DATA XREF: .rodata:`vtable for'IRecipientFiltero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16IRecipientFilter+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16IRecipientFilterD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlString::~CUtlString()
_ZN10CUtlStringD2Ev proc near		; CODE XREF: .text:000CD12Fp
					; .text:000CD17Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_CD23C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_CD235
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_CD235:				; CODE XREF: CUtlString::~CUtlString()+15j
		mov	dword ptr [ebx+4], 0

loc_CD23C:				; CODE XREF: CUtlString::~CUtlString()+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlStringD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CEventInfo, int, true,	int, CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo, int>>>::RemoveAll(void)
_ZN14CUtlLinkedListI10CEventInfoiLb1Ei15CUtlFixedMemoryI19UtlLinkedListElem_tIS0_iEEE9RemoveAllEv proc near
					; CODE XREF: CClientState::~CClientState()+86p
					; .text:000CD141p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_0]
		mov	ebx, [edi+20h]
		test	ebx, ebx
		jz	loc_CD438

loc_CD267:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+1EDj
		xor	edx, edx
		mov	eax, edi
		mov	esi, [edi]
		mov	edi, edx
		mov	edx, eax

loc_CD271:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+D8j
		test	esi, esi
		jz	loc_CD33A

loc_CD279:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+E4j
		test	edi, edi
		js	loc_CD340
		cmp	edi, [esi+4]
		jge	loc_CD340
		mov	eax, edi
		shl	eax, 6
		lea	ebx, [esi+eax+8]
		test	ebx, ebx
		jz	loc_CD340
		mov	ecx, [edx+20h]
		test	ecx, ecx
		jz	loc_CD388
		mov	eax, [edx+24h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		js	loc_CD388
		mov	eax, [ecx+4]
		cmp	[ebp+var_1C], eax
		mov	[ebp+var_24], eax
		jge	loc_CD388
		lea	eax, [ecx+8]
		cmp	eax, ebx
		mov	[ebp+var_20], eax
		ja	short loc_CD2DE
		mov	eax, [ebp+var_24]
		shl	eax, 6
		add	eax, [ebp+var_20]
		cmp	ebx, eax
		jb	loc_CD378

loc_CD2DE:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+7Bj
		mov	eax, [ecx]
		test	eax, eax
		jz	loc_CD388
		mov	[ebp+var_20], esi
		mov	[ebp+var_24], ecx
		db	66h
		nop

loc_CD2F0:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+1B4j
		lea	ecx, [eax+8]
		cmp	ecx, ebx
		ja	loc_CD400
		mov	esi, [eax+4]
		shl	esi, 6
		add	ecx, esi
		cmp	ebx, ecx
		jnb	loc_CD400
		mov	esi, [ebp+var_20]
		mov	ecx, [ebp+var_24]

loc_CD311:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+133j
					; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+1A5j ...
		cmp	esi, ecx
		jz	short loc_CD34D

loc_CD315:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+FBj
					; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+100j
		test	esi, esi
		jz	short loc_CD358
		test	edi, edi
		js	short loc_CD358
		cmp	[esi+4], edi
		jle	short loc_CD358
		add	edi, 1
		cmp	edi, [esi+4]
		jl	loc_CD271
		mov	esi, [esi]
		xor	edi, edi
		test	esi, esi
		jnz	loc_CD279

loc_CD33A:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+23j
		test	edi, edi
		jz	short loc_CD358
		db	66h
		nop

loc_CD340:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+2Bj
					; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+34j ...
		mov	eax, [edx+24h]
		mov	[ebp+var_1C], eax
		mov	ecx, [edx+20h]
		cmp	esi, ecx
		jnz	short loc_CD315

loc_CD34D:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+C3j
		cmp	[ebp+var_1C], edi
		jnz	short loc_CD315
		lea	esi, [esi+0]

loc_CD358:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+C7j
					; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+CBj ...
		mov	dword ptr [edx+0Ch], 0
		mov	dword ptr [edx+10h], 0
		mov	dword ptr [edx+18h], 0

loc_CD36D:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+1F3j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_CD378:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+88j
		mov	eax, [ebp+var_1C]
		shl	eax, 6
		add	eax, [ebp+var_20]
		cmp	ebx, eax
		jg	short loc_CD311
		lea	esi, [esi+0]

loc_CD388:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+50j
					; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+5Ej ...
		cmp	ebx, [ebx+38h]
		jz	loc_CD420

loc_CD391:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+1C3j
					; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+1D3j
		mov	eax, [ebx+14h]
		test	eax, eax
		jz	short loc_CD3A6
		mov	[ebp+var_28], edx
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	edx, [ebp+var_28]

loc_CD3A6:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+146j
		mov	dword ptr [ebx+1Ch], (offset _ZTV22CEngineRecipientFilter+8)
		lea	eax, [ebx+24h]
		mov	dword ptr [ebx+30h], 0
		mov	[ebp+var_28], edx
		mov	[esp], eax
		mov	[ebp+var_2C], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	ecx, [ebx+24h]
		mov	[ebx+34h], ecx
		mov	eax, [ebp+var_2C]
		mov	[esp], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	dword ptr [ebx+1Ch], (offset _ZTV16IRecipientFilter+8)
		mov	[ebx+38h], ebx
		mov	edx, [ebp+var_28]
		mov	eax, [edx+14h]
		mov	[ebx+3Ch], eax
		mov	eax, [edx+24h]
		mov	[edx+14h], ebx
		mov	[ebp+var_1C], eax
		mov	ecx, [edx+20h]
		jmp	loc_CD311
; ---------------------------------------------------------------------------
		align 10h

loc_CD400:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+A5j
					; CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+B5j
		mov	eax, [eax]
		test	eax, eax
		jnz	loc_CD2F0
		cmp	ebx, [ebx+38h]
		mov	esi, [ebp+var_20]
		mov	ecx, [ebp+var_24]
		jnz	loc_CD391
		lea	esi, [esi+0]

loc_CD420:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+13Bj
		cmp	ebx, [ebx+3Ch]
		jz	loc_CD391
		mov	eax, [edx+24h]
		mov	[ebp+var_1C], eax
		jmp	loc_CD311
; ---------------------------------------------------------------------------
		align 8

loc_CD438:				; CODE XREF: CUtlLinkedList<CEventInfo,int,true,int,CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>>::RemoveAll(void)+11j
		mov	ecx, [edi+24h]
		test	ecx, ecx
		jnz	loc_CD267
		jmp	loc_CD36D
_ZN14CUtlLinkedListI10CEventInfoiLb1Ei15CUtlFixedMemoryI19UtlLinkedListElem_tIS0_iEEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<AddAngle, int>::Purge(void)
_ZN10CUtlMemoryI8AddAngleiE5PurgeEv proc near ;	CODE XREF: CClientState::~CClientState()+D7p
					; CClientState::~CClientState()+EBp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_CD47C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_CD475
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_CD475:				; CODE XREF: CUtlMemory<AddAngle,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_CD47C:				; CODE XREF: CUtlMemory<AddAngle,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI8AddAngleiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo, int>>::Grow(int)
_ZN15CUtlFixedMemoryI19UtlLinkedListElem_tI10CEventInfoiEE4GrowEi proc near
					; CODE XREF: CClientState::CClientState(void)+A7p

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		test	eax, eax
		jle	short loc_CD4FA
		mov	ebx, [esi+8]
		mov	ecx, [esi+4]
		test	ebx, ebx
		jnz	short loc_CD4B6
		mov	ebx, 1
		test	ecx, ecx
		cmovnz	ebx, ecx

loc_CD4B6:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+1Aj
		cmp	ebx, eax
		jl	short loc_CD508

loc_CD4BA:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+86j
		mov	eax, ebx
		add	ecx, ebx
		shl	eax, 6
		mov	[esi+4], ecx
		add	eax, 8
		mov	[esp], eax	; size
		call	malloc
		test	eax, eax
		jz	short loc_CD524

loc_CD4D3:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+A6j
		mov	dword ptr [eax], 0
		mov	[eax+4], ebx
		mov	ecx, [esi]
		test	ecx, ecx
		jz	short loc_CD520
		mov	edx, [ecx]
		test	edx, edx
		jz	short loc_CD4F8
		nop
		lea	esi, [esi+0]

loc_CD4F0:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+66j
		mov	ecx, edx
		mov	edx, [edx]
		test	edx, edx
		jnz	short loc_CD4F0

loc_CD4F8:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+56j
		mov	[ecx], eax

loc_CD4FA:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+10j
					; CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+92j
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CD508:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+28j
		lea	eax, [ebx+eax-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	ebx
		imul	ebx, eax
		jmp	short loc_CD4BA
; ---------------------------------------------------------------------------
		align 10h

loc_CD520:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+50j
		mov	[esi], eax
		jmp	short loc_CD4FA
; ---------------------------------------------------------------------------

loc_CD524:				; CODE XREF: CUtlFixedMemory<UtlLinkedListElem_t<CEventInfo,int>>::Grow(int)+41j
		mov	[ebp+var_C], eax
		mov	dword ptr [esp], offset	aCutlfixedmemor	; "CUtlFixedMemory overflow!\n"
		call	Error
		mov	eax, [ebp+var_C]
		jmp	short loc_CD4D3
_ZN15CUtlFixedMemoryI19UtlLinkedListElem_tI10CEventInfoiEE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; cmd(CCommand	const&)
_ZL3cmdRK8CCommand proc	near		; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+2B3o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZL3cmdRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl g_exec_CompletionFunc(char *haystack, char *s)
_ZL21g_exec_CompletionFuncPKcPA64_c proc near
					; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+2EBo

haystack	= dword	ptr  8
s		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		cmp	byte ptr ds:_ZGVZL21g_exec_CompletionFuncPKcPA64_cE12execComplete, 0 ; `guard variable for'g_exec_CompletionFunc(char  const*,char (*)[64])::execComplete
		jz	short loc_CD580

loc_CD55F:				; CODE XREF: g_exec_CompletionFunc(char	 const*,char (*)[64])+3Ej
					; g_exec_CompletionFunc(char  const*,char (*)[64])+6Aj
		mov	eax, [ebp+s]
		mov	dword ptr [esp], offset	_ZZL21g_exec_CompletionFuncPKcPA64_cE12execComplete ; int
		mov	[esp+8], eax	; s
		mov	eax, [ebp+haystack]
		mov	[esp+4], eax	; haystack
		call	_ZN25CBaseAutoCompleteFileList18AutoCompletionFuncEPKcPA64_c ; CBaseAutoCompleteFileList::AutoCompletionFunc(char  const*,char (*)[64])
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CD580:				; CODE XREF: g_exec_CompletionFunc(char	 const*,char (*)[64])+Dj
		mov	dword ptr [esp], offset	_ZGVZL21g_exec_CompletionFuncPKcPA64_cE12execComplete ;	`guard variable	for'g_exec_CompletionFunc(char  const*,char (*)[64])::execComplete
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_CD55F
		mov	dword ptr [esp], offset	_ZGVZL21g_exec_CompletionFuncPKcPA64_cE12execComplete ;	`guard variable	for'g_exec_CompletionFunc(char  const*,char (*)[64])::execComplete
		mov	dword ptr ds:_ZZL21g_exec_CompletionFuncPKcPA64_cE12execComplete, offset aExec ; "exec"
		mov	dword ptr ds:_ZZL21g_exec_CompletionFuncPKcPA64_cE12execComplete+4, (offset a_cfg+1)
		mov	dword ptr ds:_ZZL21g_exec_CompletionFuncPKcPA64_cE12execComplete+8, (offset a_cfg+1)
		call	__cxa_guard_release
		jmp	short loc_CD55F
_ZL21g_exec_CompletionFuncPKcPA64_c endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; echo(CCommand	 const&)
_ZL4echoRK8CCommand proc near		; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+213o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	edi, [esi]
		cmp	edi, 1
		jle	short loc_CD607
		mov	ebx, 1
		nop
		lea	esi, [esi+0]

loc_CD5E0:				; CODE XREF: echo(CCommand  const&)+45j
		cmp	[esi], ebx
		mov	eax, (offset asc_20E578+4)
		jle	short loc_CD5F0
		mov	eax, [esi+ebx*4+408h]

loc_CD5F0:				; CODE XREF: echo(CCommand  const&)+27j
		add	ebx, 1
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	off_2015D2
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		cmp	ebx, edi
		jnz	short loc_CD5E0

loc_CD607:				; CODE XREF: echo(CCommand  const&)+11j
		mov	[ebp+arg_0], (offset aConsoleHistory+1Ch)
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
_ZL4echoRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; alias(CCommand  const&)
_ZL5aliasRK8CCommand proc near		; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+263o

var_420		= dword	ptr -420h
src		= dword	ptr -41Ch
var_418		= byte ptr -418h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 42Ch
		mov	edx, [ebp+arg_0]
		mov	esi, [edx]
		cmp	esi, 1
		jz	loc_CD7F4
		jle	loc_CD7CE
		mov	edx, [ebp+arg_0]
		mov	edx, [edx+40Ch]
		mov	[esp], edx	; s
		mov	[ebp+src], edx
		call	strlen
		cmp	eax, 1Fh
		jg	loc_CD7DD

loc_CD660:				; CODE XREF: alias(CCommand  const&)+1B8j
		mov	edx, [ebp+src]
		mov	dword ptr [esp], offset	word_1F3CC2
		mov	[esp+4], edx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	loc_CD85E
		mov	edx, [ebp+src]
		mov	dword ptr [esp], offset	aRoom_type ; "room_type"
		mov	[esp+4], edx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	loc_CD87C
		cmp	esi, 2
		mov	[ebp+var_418], 0
		jle	loc_CD883
		lea	edi, [ebp+var_418]
		mov	ebx, 2
		mov	esi, esi
		lea	edi, [edi+0]

loc_CD6C0:				; CODE XREF: alias(CCommand  const&)+F8j
		mov	edx, [ebp+arg_0]
		mov	eax, (offset asc_20E578+4)
		cmp	[edx], ebx
		jle	short loc_CD6D3
		mov	eax, [edx+ebx*4+408h]

loc_CD6D3:				; CODE XREF: alias(CCommand  const&)+AAj
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 400h	; int
		mov	[esp+4], eax	; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		cmp	ebx, esi
		jz	short loc_CD713
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 400h	; int
		mov	dword ptr [esp+4], (offset asc_1F03F9+3) ; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)

loc_CD713:				; CODE XREF: alias(CCommand  const&)+D1j
		add	ebx, 1
		cmp	ebx, esi
		jnz	short loc_CD6C0

loc_CD71A:				; CODE XREF: alias(CCommand  const&)+269j
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 400h	; int
		mov	dword ptr [esp+4], (offset aConsoleHistory+1Ch)	; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	ebx, ds:_ZL9cmd_alias ;	cmd_alias
		test	ebx, ebx
		jnz	short loc_CD75A
		jmp	loc_CD83B
; ---------------------------------------------------------------------------
		align 10h

loc_CD750:				; CODE XREF: alias(CCommand  const&)+151j
		mov	ebx, [ebx]
		test	ebx, ebx
		jz	loc_CD83B

loc_CD75A:				; CODE XREF: alias(CCommand  const&)+122j
		mov	edx, [ebp+src]
		lea	esi, [ebx+4]
		mov	[esp+4], esi	; s2
		mov	[esp], edx	; s1
		call	strcmp
		test	eax, eax
		jnz	short loc_CD750
		mov	edx, [ebx+24h]
		mov	[esp+4], edi	; s2
		mov	[esp], edx	; s1
		mov	[ebp+var_420], edx
		call	strcmp
		mov	edx, [ebp+var_420]
		test	eax, eax
		jz	short loc_CD7C3
		test	edx, edx
		jz	short loc_CD79E
		mov	[esp], edx	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_CD79E:				; CODE XREF: alias(CCommand  const&)+174j
					; alias(CCommand  const&)+239j
		mov	edx, [ebp+src]
		mov	dword ptr [esp+8], 20h ; n
		mov	[esp], esi	; dest
		mov	[esp+4], edx	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp], edi	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	[ebx+24h], eax

loc_CD7C3:				; CODE XREF: alias(CCommand  const&)+170j
					; alias(CCommand  const&)+1E8j	...
		add	esp, 42Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CD7CE:				; CODE XREF: alias(CCommand  const&)+1Aj
		mov	[ebp+src], (offset asc_20E578+4)
		jmp	loc_CD660
; ---------------------------------------------------------------------------

loc_CD7DD:				; CODE XREF: alias(CCommand  const&)+3Aj
		mov	dword ptr [esp], offset	aAliasNameIsToo	; "Alias name is too long\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 42Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CD7F4:				; CODE XREF: alias(CCommand  const&)+14j
		mov	dword ptr [esp], offset	aCurrentAliasCo	; "Current alias commands:\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ebx, ds:_ZL9cmd_alias ;	cmd_alias
		test	ebx, ebx
		jz	short loc_CD7C3
		lea	esi, [esi+0]

loc_CD810:				; CODE XREF: alias(CCommand  const&)+20Ej
		mov	eax, [ebx+24h]
		mov	dword ptr [esp], offset	aSS_5 ;	"%s : %s\n"
		mov	[esp+8], eax
		lea	eax, [ebx+4]
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_CD810
		add	esp, 42Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CD83B:				; CODE XREF: alias(CCommand  const&)+124j
					; alias(CCommand  const&)+134j
		mov	dword ptr [esp], 28h
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	eax, ds:_ZL9cmd_alias ;	cmd_alias
		lea	esi, [ebx+4]
		mov	ds:_ZL9cmd_alias, ebx ;	cmd_alias
		mov	[ebx], eax
		jmp	loc_CD79E
; ---------------------------------------------------------------------------

loc_CD85E:				; CODE XREF: alias(CCommand  const&)+58j
		xor	eax, eax

loc_CD860:				; CODE XREF: alias(CCommand  const&)+261j
		mov	eax, ds:_ZL22g_pBlacklistedCommands[eax*4] ; g_pBlacklistedCommands
		mov	dword ptr [esp], offset	aCanTAliasS ; "Can't alias %s\n"
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_CD7C3
; ---------------------------------------------------------------------------

loc_CD87C:				; CODE XREF: alias(CCommand  const&)+76j
		mov	eax, 1
		jmp	short loc_CD860
; ---------------------------------------------------------------------------

loc_CD883:				; CODE XREF: alias(CCommand  const&)+86j
		lea	edi, [ebp+var_418]
		jmp	loc_CD71A
_ZL5aliasRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FindAndRemoveExecutionMarker(int)
_ZL28FindAndRemoveExecutionMarkeri proc	near
					; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+6Ep
					; Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+177p ...
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, eax
		push	ebx
		xor	eax, eax
		sub	esp, 10h
		mov	ecx, dword ptr ds:_ZL18g_ExecutionMarkers+0Ch
		test	ecx, ecx
		jle	short loc_CD8C6
		mov	ebx, dword ptr ds:_ZL18g_ExecutionMarkers ; g_ExecutionMarkers
		xor	edx, edx
		cmp	[ebx], esi
		jnz	short loc_CD8BD
		jmp	short loc_CD8D5
; ---------------------------------------------------------------------------
		align 8

loc_CD8B8:				; CODE XREF: FindAndRemoveExecutionMarker(int)+32j
		cmp	[ebx+edx*4], esi
		jz	short loc_CD8D0

loc_CD8BD:				; CODE XREF: FindAndRemoveExecutionMarker(int)+20j
		add	edx, 1
		cmp	edx, ecx
		jnz	short loc_CD8B8

loc_CD8C4:				; CODE XREF: FindAndRemoveExecutionMarker(int)+43j
		xor	eax, eax

loc_CD8C6:				; CODE XREF: FindAndRemoveExecutionMarker(int)+14j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CD8D0:				; CODE XREF: FindAndRemoveExecutionMarker(int)+2Bj
		cmp	edx, 0FFFFFFFFh
		jz	short loc_CD8C4

loc_CD8D5:				; CODE XREF: FindAndRemoveExecutionMarker(int)+22j
		mov	eax, ecx
		sub	eax, edx
		sub	eax, 1
		test	eax, eax
		jle	short loc_CD900
		shl	eax, 2
		mov	[esp+8], eax	; n
		lea	eax, [ebx+edx*4+4]
		mov	[esp+4], eax	; src
		lea	eax, [ebx+edx*4]
		mov	[esp], eax	; dest
		call	memmove
		mov	ecx, dword ptr ds:_ZL18g_ExecutionMarkers+0Ch

loc_CD900:				; CODE XREF: FindAndRemoveExecutionMarker(int)+4Ej
		sub	ecx, 1
		mov	eax, 1
		mov	dword ptr ds:_ZL18g_ExecutionMarkers+0Ch, ecx
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZL28FindAndRemoveExecutionMarkeri endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_SetRptActive(bool)
_Z16Cmd_SetRptActiveb proc near		; CODE XREF: CRPTServer::OnSocketAccepted(int,netadr_s	const&,void **)+2Ej
					; CRPTServer::OnSocketClosed(int,netadr_s  const&,void *)+25p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	ds:_ZL12g_bRPTActive, al ; g_bRPTActive
		retn
_Z16Cmd_SetRptActiveb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_IsRptActive(void)
_Z15Cmd_IsRptActivev proc near		; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&):loc_DB1C2p
					; CCvarUtilities::IsValidToggleCommand(char  const*):loc_DB338p ...
		push	ebp
		movzx	eax, ds:_ZL12g_bRPTActive ; g_bRPTActive
		mov	ebp, esp
		pop	ebp
		retn
_Z15Cmd_IsRptActivev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cbuf_Init(void)
_Z9Cbuf_Initv	proc near		; CODE XREF: Cbuf_Clear(void)+4j
					; Host_Init(bool)+DBp
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer16SetWaitDelayTimeEi	; CCommandBuffer::SetWaitDelayTime(int)
		leave
		retn
_Z9Cbuf_Initv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cbuf_Shutdown(void)
_Z13Cbuf_Shutdownv proc	near		; CODE XREF: Host_Shutdown(void)+219p
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z13Cbuf_Shutdownv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cbuf_Clear(void)
_Z10Cbuf_Clearv	proc near		; CODE XREF: Host_Changelevel(bool,char	 const*,char  const*):loc_1175F0p
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z9Cbuf_Initv	; Cbuf_Init(void)
_Z10Cbuf_Clearv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Cbuf_AddText(char	*src)
_Z12Cbuf_AddTextPKc proc near		; CODE XREF: CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+31p
					; CheckCheatCodes(void)+C3p ...

src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		call	ThreadGetCurrentId
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		cmp	ebx, eax
		jz	short loc_CD9B3
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedAssignIf
		test	al, al
		jz	short loc_CDA10

loc_CD9B3:				; CODE XREF: Cbuf_AddText(char	const*)+15j
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		add	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax

loc_CD9C0:				; CODE XREF: Cbuf_AddText(char	const*)+AAj
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; dest
		mov	[esp+4], eax	; src
		call	_ZN14CCommandBuffer7AddTextEPKci ; CCommandBuffer::AddText(char	 const*,int)
		test	al, al
		jz	short loc_CDA30

loc_CD9DF:				; CODE XREF: Cbuf_AddText(char	const*)+BCj
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CDA09
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange

loc_CDA09:				; CODE XREF: Cbuf_AddText(char	const*)+73j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CDA10:				; CODE XREF: Cbuf_AddText(char	const*)+31j
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)
		jmp	short loc_CD9C0
; ---------------------------------------------------------------------------
		align 10h

loc_CDA30:				; CODE XREF: Cbuf_AddText(char	const*)+5Dj
		mov	dword ptr [esp], offset	aCbuf_addtextBu	; "Cbuf_AddText: buffer	overflow\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	short loc_CD9DF
_Z12Cbuf_AddTextPKc endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CDA6A
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange

loc_CDA6A:				; CODE XREF: .text:000CDA54j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Cbuf_InsertText(char *src)
_Z15Cbuf_InsertTextPKc proc near	; CODE XREF: BindToggle(CCommand  const&)+47p
					; stuffcmds(CCommand  const&)+3D3p ...

src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		call	ThreadGetCurrentId
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		cmp	ebx, eax
		jz	short loc_CDAB3
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedAssignIf
		test	al, al
		jz	short loc_CDB00

loc_CDAB3:				; CODE XREF: Cbuf_InsertText(char  const*)+15j
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		add	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax

loc_CDAC0:				; CODE XREF: Cbuf_InsertText(char  const*)+9Aj
		mov	eax, [ebp+src]
		mov	[esp], eax	; src
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CDAF5
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange

loc_CDAF5:				; CODE XREF: Cbuf_InsertText(char  const*)+5Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CDB00:				; CODE XREF: Cbuf_InsertText(char  const*)+31j
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)
		jmp	short loc_CDAC0
_Z15Cbuf_InsertTextPKc endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CDB48
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange

loc_CDB48:				; CODE XREF: .text:000CDB32j
		mov	[esp], ebx
		call	_Unwind_Resume

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BindToggle(CCommand  const&)
_ZL10BindToggleRK8CCommand proc	near	; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+173o

src		= byte ptr -408h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 424h
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 2
		jle	short loc_CDBA8
		mov	edx, [eax+410h]
		lea	ebx, [ebp+src]
		mov	[esp+10h], edx
		mov	eax, [eax+40Ch]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+8], offset aBindSIncrement ; "bind %s \"incrementvar %s 0 1 1\"\n"
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	[esp], ebx	; src
		call	_Z15Cbuf_InsertTextPKc ; Cbuf_InsertText(char  const*)
		add	esp, 424h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_CDBA8:				; CODE XREF: BindToggle(CCommand  const&)+10j
		mov	dword ptr [esp], offset	aBindtoggleKeyC	; "BindToggle <key> <cvar>: invalid syntax"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 424h
		pop	ebx
		pop	ebp
		retn
_ZL10BindToggleRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; stuffcmds(CCommand  const&)
_ZL9stuffcmdsRK8CCommand proc near	; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+1C3o

var_268		= dword	ptr -268h
var_264		= dword	ptr -264h
var_260		= dword	ptr -260h
s1		= dword	ptr -25Ch
s		= byte ptr -250h
src		= dword	ptr -50h
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3B		= byte ptr -3Bh
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 27Ch
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 1
		jz	short loc_CDBEB
		mov	dword ptr [esp], offset	aStuffcmdsExecu	; "stuffcmds : execute command line parame"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_CDBE0:				; CODE XREF: stuffcmds(CCommand	 const&)+3DDj
					; stuffcmds(CCommand  const&)+3E8j
		add	esp, 27Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CDBEB:				; CODE XREF: stuffcmds(CCommand	 const&)+12j
		lea	ebx, [ebp+src]
		mov	dword ptr [esp+0Ch], 1 ; int
		mov	edi, 1
		mov	dword ptr [esp+8], 0 ; size
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], ebx	; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		nop
		lea	esi, [esi+0]

loc_CDC18:				; CODE XREF: stuffcmds(CCommand	 const&)+13Cj
					; stuffcmds(CCommand  const&)+2A3j ...
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+24h]
		cmp	edi, eax
		jge	loc_CDF67
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		test	eax, eax
		mov	esi, eax
		jz	loc_CDCF9
		movzx	eax, byte ptr [eax]
		cmp	al, 2Dh
		jz	loc_CDEC0
		cmp	al, 2Bh
		jz	loc_CDE70
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		mov	[esp+4], eax	; src
		lea	eax, [ebp+s]
		mov	dword ptr [esp+8], 200h	; n
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		lea	edx, [ebp+s]
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], edx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		lea	eax, [ebp+s]
		mov	[esp], eax
		call	_Z10V_strlowerPc ; V_strlower(char *)
		lea	edx, [ebp+s]
		mov	[esp], edx	; s
		call	_Z18V_GetFileExtensionPKc ; V_GetFileExtension(char  const*)
		test	eax, eax
		mov	[ebp+s1], eax
		jz	short loc_CDCF9
		xor	esi, esi

loc_CDCC4:				; CODE XREF: stuffcmds(CCommand	 const&)+137j
		lea	eax, _ZL18g_FileAssociations[esi*8] ; g_FileAssociations
		mov	[ebp+var_260], eax
		mov	eax, _ZL18g_FileAssociations[esi*8] ; g_FileAssociations
		add	eax, 1
		mov	[esp+4], eax	; s2
		mov	eax, [ebp+s1]
		mov	[esp], eax	; s1
		call	strcmp
		test	eax, eax
		jz	short loc_CDD08

loc_CDCF1:				; CODE XREF: stuffcmds(CCommand	 const&)+18Cj
		add	esi, 1
		cmp	esi, 3
		jnz	short loc_CDCC4

loc_CDCF9:				; CODE XREF: stuffcmds(CCommand	 const&)+82j
					; stuffcmds(CCommand  const&)+100j ...
		add	edi, 1
		jmp	loc_CDC18
; ---------------------------------------------------------------------------
		align 8

loc_CDD08:				; CODE XREF: stuffcmds(CCommand	 const&)+12Fj
		call	CommandLine_Tier0
		mov	[ebp+var_264], eax
		mov	eax, [eax]
		mov	edx, [ebp+var_260]
		mov	eax, [eax+28h]
		mov	[ebp+var_268], eax
		mov	eax, [edx+4]
		mov	dword ptr [esp], offset	aS ; "+%s"
		mov	[esp+4], eax	; arg
		call	_Z2vaPKcz	; va(char  const*,...)
		mov	[esp+4], eax
		mov	eax, [ebp+var_264]
		mov	[esp], eax
		call	[ebp+var_268]
		test	eax, eax
		jnz	short loc_CDCF1
		lea	edx, [ebp+s]
		mov	dword ptr [esp+8], 200h	; n
		mov	[esp+4], edx	; src
		mov	dword ptr [esp], offset	_ZZL28Cmd_TranslateFileAssociationPKcE2sz ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		lea	eax, [ebp+s]
		mov	dword ptr [esp+8], 200h	; int
		mov	[esp+4], eax	; int
		mov	dword ptr [esp], offset	_ZZL28Cmd_TranslateFileAssociationPKcE2sz ; dest
		call	_Z10V_FileBasePKcPci ; V_FileBase(char	const*,char *,int)
		lea	edx, [ebp+s]
		mov	[esp+10h], edx
		mov	edx, [ebp+var_260]
		mov	eax, [edx+4]
		mov	dword ptr [esp+8], offset aSS_3	; "%s %s"
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	dword ptr [esp], offset	_ZZL28Cmd_TranslateFileAssociationPKcE2sz ; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	dword ptr [esp+4], offset _ZZL28Cmd_TranslateFileAssociationPKcE2sz ; src
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9PutStringEPKc ;	CUtlBuffer::PutString(char  const*)
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	short loc_CDE30
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	short loc_CDE30
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebp+var_30]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	short loc_CDE30
		xor	esi, esi
		test	al, 10h
		cmovz	esi, [ebp+var_38]
		lea	esi, [esi+0]

loc_CDDF8:				; CODE XREF: stuffcmds(CCommand	 const&)+24Fj
		sub	esi, 1
		js	short loc_CDE30

loc_CDDFD:				; CODE XREF: stuffcmds(CCommand	 const&)+26Cj
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_CDDF8
		mov	eax, [ebp+var_40]
		mov	edx, [ebx]
		sub	eax, [ebp+var_30]
		mov	byte ptr [edx+eax], 9
		add	[ebp+var_40], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		sub	esi, 1
		jns	short loc_CDDFD
		db	66h
		nop

loc_CDE30:				; CODE XREF: stuffcmds(CCommand	 const&)+213j
					; stuffcmds(CCommand  const&)+21Aj ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	loc_CDCF9
		mov	eax, [ebp+var_40]
		mov	edx, [ebx]
		sub	eax, [ebp+var_30]
		mov	byte ptr [edx+eax], 0Ah
		add	[ebp+var_40], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		add	edi, 1
		jmp	loc_CDC18
; ---------------------------------------------------------------------------
		align 10h

loc_CDE70:				; CODE XREF: stuffcmds(CCommand	 const&)+95j
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+18h]
		test	eax, eax
		jz	short loc_CDEF0
		add	esi, 1
		mov	[esp+8], eax
		mov	[esp+4], esi	; arg
		mov	dword ptr [esp], offset	aSS_6 ;	"%s %s\n"
		call	_Z2vaPKcz	; va(char  const*,...)
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer9PutStringEPKc ;	CUtlBuffer::PutString(char  const*)
		add	edi, 1
		add	edi, 1
		jmp	loc_CDC18
; ---------------------------------------------------------------------------
		align 10h

loc_CDEC0:				; CODE XREF: stuffcmds(CCommand	 const&)+8Dj
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+18h]
		cmp	eax, 1
		sbb	edi, 0FFFFFFFFh
		add	edi, 1
		jmp	loc_CDC18
; ---------------------------------------------------------------------------
		align 10h

loc_CDEF0:				; CODE XREF: stuffcmds(CCommand	 const&)+2CBj
		add	esi, 1
		mov	[esp], ebx	; int
		mov	[esp+4], esi	; src
		call	_ZN10CUtlBuffer9PutStringEPKc ;	CUtlBuffer::PutString(char  const*)
		movzx	eax, byte ptr [ebx+15h]
		test	al, 1
		jz	loc_CDE30
		mov	edx, [ebx+10h]
		test	edx, edx
		jz	loc_CDE30
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebp+var_30]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	loc_CDE30
		xor	esi, esi
		test	al, 10h
		cmovz	esi, [ebp+var_38]

loc_CDF30:				; CODE XREF: stuffcmds(CCommand	 const&)+38Bj
					; stuffcmds(CCommand  const&)+3A5j
		sub	esi, 1
		js	loc_CDE30
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_CDF30
		mov	eax, [ebp+var_40]
		mov	edx, [ebx]
		sub	eax, [ebp+var_30]
		mov	byte ptr [edx+eax], 9
		add	[ebp+var_40], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_CDF30
; ---------------------------------------------------------------------------

loc_CDF67:				; CODE XREF: stuffcmds(CCommand	 const&)+67j
		movzx	eax, [ebp+var_3B]
		test	al, 1
		jnz	short loc_CDFC1

loc_CDF6F:				; CODE XREF: stuffcmds(CCommand	 const&)+406j
					; stuffcmds(CCommand  const&)+414j ...
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jnz	loc_CE013

loc_CDF87:				; CODE XREF: stuffcmds(CCommand	 const&)+46Cj
		cmp	[ebp+var_40], 1
		jle	short loc_CDF98
		mov	eax, [ebp+src]
		mov	[esp], eax	; src
		call	_Z15Cbuf_InsertTextPKc ; Cbuf_InsertText(char  const*)

loc_CDF98:				; CODE XREF: stuffcmds(CCommand	 const&)+3CBj
		mov	edx, [ebp+var_48]
		test	edx, edx
		js	loc_CDBE0
		mov	eax, [ebp+src]
		test	eax, eax
		jz	loc_CDBE0
		mov	[esp], eax	; ptr
		call	free
		add	esp, 27Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CDFC1:				; CODE XREF: stuffcmds(CCommand	 const&)+3ADj
		mov	edx, [ebp+var_40]
		test	edx, edx
		jz	short loc_CDF6F
		sub	edx, 1
		mov	ecx, [ebx]
		sub	edx, [ebp+var_30]
		cmp	byte ptr [ecx+edx], 0Ah
		jnz	short loc_CDF6F
		xor	esi, esi
		test	al, 10h
		cmovz	esi, [ebp+var_38]
		db	66h
		nop

loc_CDFE0:				; CODE XREF: stuffcmds(CCommand	 const&)+437j
					; stuffcmds(CCommand  const&)+451j
		sub	esi, 1
		js	short loc_CDF6F
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_CDFE0
		mov	eax, [ebp+var_40]
		mov	edx, [ebx]
		sub	eax, [ebp+var_30]
		mov	byte ptr [edx+eax], 9
		add	[ebp+var_40], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	short loc_CDFE0
; ---------------------------------------------------------------------------

loc_CE013:				; CODE XREF: stuffcmds(CCommand	 const&)+3C1j
		mov	eax, [ebp+var_40]
		mov	edx, [ebp+src]
		sub	eax, [ebp+var_30]
		mov	byte ptr [edx+eax], 0
		add	[ebp+var_40], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	loc_CDF87
_ZL9stuffcmdsRK8CCommand endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-48h]
		test	eax, eax
		js	short loc_CE049
		mov	edx, [ebp-50h]
		test	edx, edx
		jz	short loc_CE049
		mov	[esp], edx
		call	free

loc_CE049:				; CODE XREF: .text:000CE038j
					; .text:000CE03Fj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short _Z23Cbuf_AddExecutionMarker19ECmdExecutionMarkerPKc ; Cbuf_AddExecutionMarker(ECmdExecutionMarker,char  const*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Cbuf_AddExecutionMarker(int, char	*src)
_Z23Cbuf_AddExecutionMarker19ECmdExecutionMarkerPKc proc near ;	CODE XREF: .text:000CE051j
					; Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+1FAp ...

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jz	short loc_CE0A0
		cmp	eax, 62h
		jz	short loc_CE090

loc_CE073:				; CODE XREF: Cbuf_AddExecutionMarker(ECmdExecutionMarker,char  const*)+37j
					; Cbuf_AddExecutionMarker(ECmdExecutionMarker,char  const*)+47j
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; dest
		mov	[esp+4], eax	; src
		call	_ZN14CCommandBuffer7AddTextEPKci ; CCommandBuffer::AddText(char	 const*,int)
		leave
		retn
; ---------------------------------------------------------------------------

loc_CE090:				; CODE XREF: Cbuf_AddExecutionMarker(ECmdExecutionMarker,char  const*)+11j
		mov	ds:_ZL15s_CommandBuffer+2049h, 1
		jmp	short loc_CE073
; ---------------------------------------------------------------------------
		align 10h

loc_CE0A0:				; CODE XREF: Cbuf_AddExecutionMarker(ECmdExecutionMarker,char  const*)+Cj
		mov	ds:_ZL15s_CommandBuffer+2049h, 0
		jmp	short loc_CE073
_Z23Cbuf_AddExecutionMarker19ECmdExecutionMarkerPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cbuf_HasRoomForExecutionMarkers(int)
_Z31Cbuf_HasRoomForExecutionMarkersi proc near
					; CODE XREF: CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+A9p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		add	eax, dword ptr ds:_ZL18g_ExecutionMarkers+0Ch
		cmp	eax, 7FFh
		setle	al
		retn
_Z31Cbuf_HasRoomForExecutionMarkersi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl IsValidFileExtension(char	*haystack)
_Z20IsValidFileExtensionPKc proc near	; CODE XREF: Cmd_Exec_f(CCommand  const&)+AAp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
haystack	= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+haystack]
		mov	[ebp+var_4], esi
		xor	esi, esi
		test	ebx, ebx
		jz	short loc_CE0F9
		mov	dword ptr [esp+4], offset a_exe	; ".exe"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_CE108

loc_CE0F9:				; CODE XREF: IsValidFileExtension(char	const*)+13j
					; IsValidFileExtension(char  const*)+4Aj ...
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_CE108:				; CODE XREF: IsValidFileExtension(char	const*)+27j
		mov	dword ptr [esp+4], offset a_vbs	; ".vbs"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jnz	short loc_CE0F9
		mov	dword ptr [esp+4], offset a_com	; ".com"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jnz	short loc_CE0F9
		mov	dword ptr [esp+4], offset a_bat	; ".bat"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jnz	short loc_CE0F9
		mov	dword ptr [esp+4], offset a_dll	; ".dll"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jnz	short loc_CE0F9
		mov	dword ptr [esp+4], offset a_ini	; ".ini"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jnz	short loc_CE0F9
		mov	dword ptr [esp+4], offset a_gcf	; ".gcf"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_CE0F9
		mov	dword ptr [esp+4], offset a_sys	; ".sys"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_CE0F9
		mov	dword ptr [esp+4], offset a_blob ; ".blob"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		setz	al
		mov	esi, eax
		jmp	loc_CE0F9
_Z20IsValidFileExtensionPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_Init(void)
_Z8Cmd_Initv	proc near		; CODE XREF: Host_Init(bool)+FCp
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+4], offset _ZL18g_FileAssociations ; g_FileAssociations
		mov	dword ptr [esp], 3
		call	_Z26Sys_CreateFileAssociationsiP19FileAssociationInfo ;	Sys_CreateFileAssociations(int,FileAssociationInfo *)
		leave
		retn
_Z8Cmd_Initv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_Shutdown(void)
_Z12Cmd_Shutdownv proc near		; CODE XREF: Host_Shutdown(void)+200p
		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, ds:_ZL9cmd_alias ;	cmd_alias
		test	eax, eax
		jnz	short loc_CE1FA
		jmp	short loc_CE21E
; ---------------------------------------------------------------------------
		align 8

loc_CE1F8:				; CODE XREF: Cmd_Shutdown(void)+3Cj
		mov	eax, ebx

loc_CE1FA:				; CODE XREF: Cmd_Shutdown(void)+Ej
		mov	ebx, [eax]
		mov	eax, [eax+24h]
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, ds:_ZL9cmd_alias ;	cmd_alias
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		test	ebx, ebx
		mov	ds:_ZL9cmd_alias, ebx ;	cmd_alias
		jnz	short loc_CE1F8

loc_CE21E:				; CODE XREF: Cmd_Shutdown(void)+10j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z12Cmd_Shutdownv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_Dispatch(ConCommandBase  const*, CCommand	 const&)
_Z12Cmd_DispatchPK14ConCommandBaseRK8CCommand proc near
					; CODE XREF: _ZN11CGameClient20ExecuteStringCommandEPKc_part_30+1D0p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	edx, [eax]
		mov	eax, [edx+34h]
		jmp	eax
_Z12Cmd_DispatchPK14ConCommandBaseRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_ForwardToServer(CCommand	const&,	bool)
_Z19Cmd_ForwardToServerRK8CCommandb proc near ;	CODE XREF: unpause(CCommand  const&)+36p
					; setpause(CCommand  const&)+2Ep ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z19Cmd_ForwardToServerRK8CCommandb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_ExecuteCommand(CCommand  const&, cmd_source_t, int)
_Z18Cmd_ExecuteCommandRK8CCommand12cmd_source_ti proc near
					; CODE XREF: _ZL19Cbuf_ExecuteCommandRK8CCommand12cmd_source_t_constprop_60+75p
					; _ZN11CGameClient20ExecuteStringCommandEPKc_part_30+F7p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		cmp	eax, 0
		mov	[ebp+var_20], eax
		jz	loc_CE300
		jle	loc_CE310
		mov	esi, [ebx+408h]
		mov	edi, offset asc_1F3D22 ; "[$&*,`]"
		mov	ecx, 8
		repe cmpsb
		jnz	loc_CE310
		cmp	[ebp+var_20], 3
		jnz	loc_CE368
		mov	eax, [ebx+40Ch]
		movzx	esi, byte ptr [eax]
		mov	dword ptr [esp+8], 0Ah ; base
		mov	dword ptr [esp+4], 0 ; endptr
		mov	eax, [ebx+410h]
		mov	[ebp+var_1C], edx
		mov	[esp], eax	; nptr
		call	strtol
		call	_ZL28FindAndRemoveExecutionMarkeri ; FindAndRemoveExecutionMarker(int)
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE538
		mov	ecx, esi
		cmp	cl, 61h
		jz	loc_CE6DC
		cmp	cl, 62h
		mov	eax, esi
		jz	loc_CE6E8
		cmp	al, 63h
		mov	ecx, esi
		jz	loc_CE6F4
		cmp	cl, 64h
		jz	loc_CE65A
		mov	esi, esi
		lea	edi, [edi+0]

loc_CE300:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+16j
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+2DDj ...
		add	esp, 2Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CE310:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+1Cj
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+34j
		mov	esi, ds:_ZL9cmd_alias ;	cmd_alias
		test	esi, esi
		jz	short loc_CE388
		mov	eax, [ebp+var_20]
		jmp	short loc_CE328
; ---------------------------------------------------------------------------
		align 10h

loc_CE320:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+F8j
		mov	esi, [esi]
		test	esi, esi
		jz	short loc_CE388
		mov	eax, [ebx]

loc_CE328:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+CDj
		lea	ecx, [esi+4]
		test	eax, eax
		mov	edx, (offset asc_20E578+4)
		jle	short loc_CE33A
		mov	edx, [ebx+408h]

loc_CE33A:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+E2j
		mov	[esp+4], ecx
		mov	[esp], edx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_CE320
		mov	eax, [esi+24h]
		mov	[esp], eax	; src
		call	_Z15Cbuf_InsertTextPKc ; Cbuf_InsertText(char  const*)
		add	esp, 2Ch
		xor	edx, edx
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CE368:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+3Ej
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	aWarningInval_0	; "WARNING: INVALID EXECUTION MARKER.\n"
		call	Warning
		mov	edx, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CE388:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+C8j
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+D4j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	ds:cmd_source, eax
		mov	eax, ds:g_pCVar
		mov	cmd_clientslot,	ecx
		mov	esi, [ebx]
		mov	edx, [eax]
		test	esi, esi
		mov	ecx, [edx+28h]
		mov	edx, (offset asc_20E578+4)
		jle	short loc_CE3B4
		mov	edx, [ebx+408h]

loc_CE3B4:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+15Cj
		mov	[esp+4], edx
		mov	[esp], eax
		call	ecx
		mov	[ebp+var_1C], eax
		call	_Z23Host_IsSinglePlayerGamev ; Host_IsSinglePlayerGame(void)
		mov	edx, [ebp+var_1C]
		test	al, al
		jnz	loc_CE630
		mov	eax, ds:g_iFilterCommandsByServerCanExecute
		test	eax, eax
		jle	loc_CE630
		test	edx, edx
		jz	loc_CE5C8
		mov	eax, [edx]
		mov	[esp], edx
		mov	dword ptr [esp+4], 10000000h
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE63A

loc_CE400:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+3E2j
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		call	dword ptr [eax+8]
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE5C8
		mov	eax, ds:g_iFilterCommandsByClientCmdCanExecute
		test	eax, eax
		jle	short loc_CE43A
		mov	eax, [edx]
		mov	[esp], edx
		mov	dword ptr [esp+4], 40000000h
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE565

loc_CE43A:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+1CDj
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+333j
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		call	dword ptr [eax+8]
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE5C8
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp+4], 4
		call	dword ptr [eax+0Ch]
		xor	ecx, ecx
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	short loc_CE479
		cmp	ds:cmd_source, 1
		jz	loc_CE70F

loc_CE479:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+21Aj
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+4C9j
		mov	edi, ds:serverGameClients
		test	edi, edi
		jz	short loc_CE4BA
		cmp	dword ptr ds:sv+4, 1
		jle	loc_CE700
		mov	eax, g_pServerPluginHandler
		mov	esi, ds:cmd_source
		mov	ecx, [eax]
		test	esi, esi
		mov	esi, 0FFFFFFFFh
		cmovz	esi, [ebp+arg_8]
		mov	ecx, [ecx+28h]
		mov	[ebp+var_1C], edx
		mov	[esp+4], esi
		mov	[esp], eax
		call	ecx
		mov	edx, [ebp+var_1C]

loc_CE4BA:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+231j
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+4B2j
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp+4], 4000h
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE681
		call	_Z23Host_IsSinglePlayerGamev ; Host_IsSinglePlayerGame(void)
		mov	edx, [ebp+var_1C]
		test	al, al
		jnz	loc_CE681
		mov	eax, dword ptr ds:sv_cheats+1Ch
		mov	edi, [eax+30h]
		test	edi, edi
		jnz	loc_CE681
		cmp	ds:_ZL12g_bRPTActive, 0	; g_bRPTActive
		jnz	loc_CE681
		mov	esi, ds:g_iFilterCommandsByServerCanExecute
		test	esi, esi
		jnz	loc_CE666

loc_CE513:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+42Bj
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aCanTUseCheatCo	; "Can't use cheat command %s in multiplay"...
		mov	[esp+4], eax
		call	Msg
		xor	edx, edx
		jmp	loc_CE300
; ---------------------------------------------------------------------------
		align 8

loc_CE538:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+78j
		mov	eax, ds:_ZZL21HandleExecutionMarkerPKcS0_E3cnt ; HandleExecutionMarker(char  const*,char  const*)::cnt
		add	eax, 1
		cmp	eax, 2
		mov	ds:_ZZL21HandleExecutionMarkerPKcS0_E3cnt, eax ; HandleExecutionMarker(char  const*,char  const*)::cnt
		jg	loc_CE300
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	aInvalidExecuti	; "Invalid execution marker code.\n"
		call	Warning
		mov	edx, [ebp+var_1C]
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE565:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+1E4j
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	g_ExtraClientCmdCanExecuteCvars
		mov	[esp+4], eax
		call	_ZNK8CUtlDictIiiE4FindEPKc ; CUtlDict<int,int>::Find(char  const*)
		mov	edx, [ebp+var_1C]
		cmp	eax, 0FFFFFFFFh
		jnz	loc_CE43A
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp+4], 4
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_1C]
		test	al, al
		jnz	short loc_CE5C8
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aFcvar_clientcm	; "FCVAR_CLIENTCMD_CAN_EXECUTE prevented r"...
		mov	[esp+4], eax
		call	Warning
		mov	edx, [ebp+var_1C]
		lea	esi, [esi+0]

loc_CE5C8:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+18Fj
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+1C0j ...
		mov	eax, cv
		mov	[ebp+var_1C], edx
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN14CCvarUtilities9IsCommandERK8CCommand ; CCvarUtilities::IsCommand(CCommand	const&)
		mov	edx, [ebp+var_1C]
		test	al, al
		jnz	loc_CE300
		cmp	ds:cmd_source, 1
		jnz	short loc_CE5FF
		xor	edx, edx
		cmp	dword ptr ds:byte_28B880+13Ch, 1
		jg	loc_CE300

loc_CE5FF:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+39Ej
		mov	ecx, [ebx]
		mov	eax, (offset asc_20E578+4)
		test	ecx, ecx
		jle	short loc_CE610
		mov	eax, [ebx+408h]

loc_CE610:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+3B8j
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aUnknownCommand	; "Unknown command \"%s\"\n"
		call	Msg
		xor	edx, edx
		jmp	loc_CE300
; ---------------------------------------------------------------------------
		align 10h

loc_CE630:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+17Aj
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+187j
		test	edx, edx
		jnz	loc_CE400
		jmp	short loc_CE5C8
; ---------------------------------------------------------------------------

loc_CE63A:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+1AAj
		mov	eax, [edx]
		mov	[esp], edx
		nop
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aFcvar_server_c	; "FCVAR_SERVER_CAN_EXECUTE prevented serv"...
		mov	[esp+4], eax
		call	Warning
		xor	edx, edx
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE65A:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+A1j
		sub	ds:g_iFilterCommandsByClientCmdCanExecute, 1
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE666:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+2BDj
		mov	eax, [edx]
		mov	[esp], edx
		mov	dword ptr [esp+4], 10000000h
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE513

loc_CE681:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+282j
					; Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+292j ...
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp+4], 40h
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	short loc_CE6AB
		call	_Z23Host_IsSinglePlayerGamev ; Host_IsSinglePlayerGame(void)
		mov	edx, [ebp+var_1C]
		test	al, al
		jz	loc_CE73B

loc_CE6AB:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+449j
		mov	eax, [edx]
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp+4], 2
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+var_1C]
		test	al, al
		mov	eax, [edx]
		jnz	short loc_CE71E
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		mov	[esp+4], ebx
		call	dword ptr [eax+34h]
		mov	edx, [ebp+var_1C]
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE6DC:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+83j
		add	ds:g_iFilterCommandsByServerCanExecute,	1
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE6E8:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+8Ej
		sub	ds:g_iFilterCommandsByServerCanExecute,	1
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE6F4:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+98j
		add	ds:g_iFilterCommandsByClientCmdCanExecute, 1
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE700:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+23Aj
		test	cl, cl
		jz	loc_CE4BA
		xor	edx, edx
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE70F:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+223j
		movzx	ecx, ds:sv+130h
		xor	ecx, 1
		jmp	loc_CE479
; ---------------------------------------------------------------------------

loc_CE71E:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+475j
		mov	[esp], edx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aUnknownCommand	; "Unknown command \"%s\"\n"
		mov	[esp+4], eax
		call	Msg
		xor	edx, edx
		jmp	loc_CE300
; ---------------------------------------------------------------------------

loc_CE73B:				; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+455j
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aCanTUseCommand	; "Can't use command %s in multiplayer.\n"
		mov	[esp+4], eax
		call	Msg
		xor	edx, edx
		jmp	loc_CE300
_Z18Cmd_ExecuteCommandRK8CCommand12cmd_source_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL19Cbuf_ExecuteCommandRK8CCommand12cmd_source_t_constprop_60 proc near
					; CODE XREF: Cbuf_Execute(void):loc_CE9D0p
					; Cmd_Exec_f(CCommand  const&)+320p
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	eax, ds:g_Telemetry
		test	eax, eax
		jz	short loc_CE7BE
		mov	esi, dword ptr ds:_ZL15s_CommandBuffer+204Ch
		mov	edx, (offset asc_20E578+4)
		mov	ecx, [eax+14h]
		mov	ebx, [eax+0A4h]
		mov	[esp], eax
		test	esi, esi
		mov	esi, (offset _ZL15s_CommandBuffer+2054h)
		cmovnz	edx, esi
		mov	[esp+4], edx
		call	ecx
		mov	dword ptr [esp+0Ch], offset aDotaCommandS ; "(dota/command) %s"
		mov	[esp+10h], eax
		mov	eax, ds:g_Telemetry
		mov	dword ptr [esp+8], offset _ZZL19Cbuf_ExecuteCommandRK8CCommand12cmd_source_tE6tm_fmt ; Cbuf_ExecuteCommand(CCommand  const&,cmd_source_t)::tm_fmt
		mov	dword ptr [esp+4], 2001h
		mov	[esp], eax
		call	ebx

loc_CE7BE:				; CODE XREF: _ZL19Cbuf_ExecuteCommandRK8CCommand12cmd_source_t_constprop_60+Fj
		mov	dword ptr [esp+8], 0FFFFFFFFh
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], (offset _ZL15s_CommandBuffer+204Ch)
		call	_Z18Cmd_ExecuteCommandRK8CCommand12cmd_source_ti ; Cmd_ExecuteCommand(CCommand	const&,cmd_source_t,int)
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZL19Cbuf_ExecuteCommandRK8CCommand12cmd_source_t_constprop_60 endp

; ---------------------------------------------------------------------------
		jmp	short _Z12Cbuf_Executev	; Cbuf_Execute(void)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cbuf_Execute(void)
_Z12Cbuf_Executev proc near		; CODE XREF: .text:000CE7E1j
					; CEngineReplay::Cbuf_Execute(void)+4j	...

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_31		= byte ptr -31h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_CE88F
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCbuf_execute ; "Cbuf_Execute"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ12Cbuf_ExecutevE6tm_fmt ; Cbuf_Execute(void)::tm_fmt
		mov	dword ptr [esp+1Ch], 15Fh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_4 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_CE88F:				; CODE XREF: Cbuf_Execute(void)+2Ej
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	[ebp+var_31]
		jz	short loc_CE8AF
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_CEAD9

loc_CE8AF:				; CODE XREF: Cbuf_Execute(void)+AAj
					; Cbuf_Execute(void)+332j
		mov	eax, ds:g_Telemetry
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		test	eax, eax
		jz	loc_CEB43
		lea	edx, [ebp+var_20]
		mov	dword ptr [esp+28h], offset _ZZ12Cbuf_ExecutevE12__FUNCTION__ ;	"Cbuf_Execute"
		mov	dword ptr [esp+24h], (offset aDFS+9)
		mov	dword ptr [esp+20h], offset _ZZ12Cbuf_ExecutevE6tm_fmt_0 ; Cbuf_Execute(void)::tm_fmt
		mov	dword ptr [esp+1Ch], 160h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_4 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 32h
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	esi, ds:g_Telemetry
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx

loc_CE931:				; CODE XREF: Cbuf_Execute(void)+363j
		call	ThreadInMainThread
		test	al, al
		jnz	short loc_CE953
		mov	dword ptr [esp], offset	aExecutingComma	; "Executing command outside main loop thr"...
		call	Warning
		mov	eax, ds:_ZZ12Cbuf_ExecutevE14__executeCount ; Cbuf_Execute(void)::__executeCount
		test	eax, eax
		jle	loc_CEB27

loc_CE953:				; CODE XREF: Cbuf_Execute(void)+148j
					; Cbuf_Execute(void)+34Ej
		call	ThreadGetCurrentId
		mov	edi, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		cmp	edi, eax
		jz	short loc_CE983
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedAssignIf
		test	al, al
		jz	loc_CEAA0

loc_CE983:				; CODE XREF: Cbuf_Execute(void)+171j
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		add	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax

loc_CE990:				; CODE XREF: Cbuf_Execute(void)+2CAj
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer20IsProcessingCommandsEv ; CCommandBuffer::IsProcessingCommands(void)
		test	al, al
		jnz	short loc_CE9F1
		mov	eax, dword ptr ds:sv_allow_wait_command+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		setnz	al
		cmp	ds:_ZL15s_CommandBuffer+2049h, al
		jz	short loc_CE9BA
		mov	ds:_ZL15s_CommandBuffer+2049h, al

loc_CE9BA:				; CODE XREF: Cbuf_Execute(void)+1C3j
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer23BeginProcessingCommandsEi ; CCommandBuffer::BeginProcessingCommands(int)
		jmp	short loc_CE9D5
; ---------------------------------------------------------------------------

loc_CE9D0:				; CODE XREF: Cbuf_Execute(void)+1F3j
		call	_ZL19Cbuf_ExecuteCommandRK8CCommand12cmd_source_t_constprop_60

loc_CE9D5:				; CODE XREF: Cbuf_Execute(void)+1DEj
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer18DequeueNextCommandEv ; CCommandBuffer::DequeueNextCommand(void)
		test	al, al
		jnz	short loc_CE9D0
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer21EndProcessingCommandsEv ; CCommandBuffer::EndProcessingCommands(void)

loc_CE9F1:				; CODE XREF: Cbuf_Execute(void)+1AEj
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jz	loc_CEAC0

loc_CEA0B:				; CODE XREF: Cbuf_Execute(void)+2E4j
		test	esi, esi
		jz	short loc_CEA3B
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_CEA3B:				; CODE XREF: Cbuf_Execute(void)+21Dj
		cmp	[ebp+var_31], 0
		jz	short loc_CEA66
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_CEA53
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_CEA66

loc_CEA53:				; CODE XREF: Cbuf_Execute(void)+258j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_CEB58

loc_CEA66:				; CODE XREF: Cbuf_Execute(void)+24Fj
					; Cbuf_Execute(void)+261j ...
		test	ebx, ebx
		jz	short loc_CEA96
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_CEA96:				; CODE XREF: Cbuf_Execute(void)+278j
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CEAA0:				; CODE XREF: Cbuf_Execute(void)+18Dj
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)
		jmp	loc_CE990
; ---------------------------------------------------------------------------
		align 10h

loc_CEAC0:				; CODE XREF: Cbuf_Execute(void)+215j
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange
		jmp	loc_CEA0B
; ---------------------------------------------------------------------------

loc_CEAD9:				; CODE XREF: Cbuf_Execute(void)+B9j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCbuf_execute ;	"Cbuf_Execute"
		jz	short loc_CEB13
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCbuf_execute	; "Cbuf_Execute"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_CEB13:				; CODE XREF: Cbuf_Execute(void)+2F4j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_CE8AF
; ---------------------------------------------------------------------------

loc_CEB27:				; CODE XREF: Cbuf_Execute(void)+15Dj
		mov	dword ptr [esp], 0
		call	Plat_IsInDebugSession
		test	al, al
		jnz	short loc_CEB8E

loc_CEB37:				; CODE XREF: Cbuf_Execute(void)+3AAj
		add	ds:_ZZ12Cbuf_ExecutevE14__executeCount,	1 ; Cbuf_Execute(void)::__executeCount
		jmp	loc_CE953
; ---------------------------------------------------------------------------

loc_CEB43:				; CODE XREF: Cbuf_Execute(void)+D4j
		xor	esi, esi
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		jmp	loc_CE931
; ---------------------------------------------------------------------------

loc_CEB58:				; CODE XREF: Cbuf_Execute(void)+270j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_CEB87
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_CEB76:				; CODE XREF: Cbuf_Execute(void)+39Cj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_CEA66
; ---------------------------------------------------------------------------

loc_CEB87:				; CODE XREF: Cbuf_Execute(void)+377j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_CEB76
; ---------------------------------------------------------------------------

loc_CEB8E:				; CODE XREF: Cbuf_Execute(void)+345j
		mov	dword ptr [esp], 5 ; sig
		call	raise
		jmp	short loc_CEB37
_Z12Cbuf_Executev endp

; ---------------------------------------------------------------------------
		mov	edi, eax

loc_CEB9E:				; CODE XREF: .text:000CEC0Cj
					; .text:000CEC1Ej ...
		test	ebx, ebx
		jz	short loc_CEBCE
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_CEBCE:				; CODE XREF: .text:000CEBA0j
		mov	[esp], edi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	edi, eax

loc_CEBD8:				; CODE XREF: .text:000CEC80j
					; .text:000CEC9Aj
		test	esi, esi
		jz	short loc_CEC08
		mov	eax, [ebp-40h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-3Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_CEC08:				; CODE XREF: .text:000CEBDAj
					; .text:000CEC68j
		cmp	byte ptr [ebp-31h], 0
		jz	short loc_CEB9E
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_CEC24
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	loc_CEB9E

loc_CEC24:				; CODE XREF: .text:000CEC15j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jnz	loc_CEB9E
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jz	short loc_CEC55
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_CEC55:				; CODE XREF: .text:000CEC4Bj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_CEB9E
; ---------------------------------------------------------------------------
		mov	edi, eax
		jmp	short loc_CEC08
; ---------------------------------------------------------------------------
		mov	edi, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	loc_CEBD8
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange
		jmp	loc_CEBD8
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Cmd_Exec_f(CCommand  const&)
_Z10Cmd_Exec_fRK8CCommand proc near	; DATA XREF: _GLOBAL__sub_I_g_iFilterCommandsByServerCanExecute+303o

var_412C	= dword	ptr -412Ch
var_4124	= byte ptr -4124h
haystack	= byte ptr -124h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 414Ch
		mov	edi, [ebp+arg_0]
		call	ThreadGetCurrentId
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		cmp	ebx, eax
		jz	short loc_CECDF
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedAssignIf
		test	al, al
		jz	loc_CED9C

loc_CECDF:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+1Dj
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		add	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, [edi]
		cmp	eax, 1
		jle	loc_CEDC1

loc_CECF7:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+11Bj
		cmp	eax, 2
		mov	esi, [edi+40Ch]
		mov	ebx, (offset aProtected+0Eh)
		jz	short loc_CED0D
		mov	ebx, [edi+410h]

loc_CED0D:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+65j
		mov	dword ptr [esp+4], (offset aCheat_0+4)
		mov	[esp], ebx
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	loc_CEDCF
		lea	ebx, [ebp+haystack]
		mov	[esp+0Ch], esi	; arg
		mov	dword ptr [esp+8], offset aTCfgS ; "T:/cfg/%s"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_CED47:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+177j
		mov	[esp], ebx	; haystack
		call	_Z20IsValidFileExtensionPKc ; IsValidFileExtension(char	 const*)
		test	al, al
		jnz	loc_CEE32
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aExecSInvalidFi	; "exec	%s: invalid file type.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_CED67:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+12Dj
					; Cmd_Exec_f(CCommand  const&)+18Dj ...
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CED91
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange

loc_CED91:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+DBj
		add	esp, 414Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CED9C:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+39j
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)
		mov	eax, [edi]
		cmp	eax, 1
		jg	loc_CECF7

loc_CEDC1:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+51j
		mov	dword ptr [esp], offset	aExecFilenamePa	; "exec	<filename> [path id]: execute a	sc"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	short loc_CED67
; ---------------------------------------------------------------------------

loc_CEDCF:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+7Fj
		mov	[esp+0Ch], ebx	; arg
		lea	ebx, [ebp+haystack]
		mov	[esp+10h], esi
		mov	dword ptr [esp+8], offset aSCfgS ; "//%s/cfg/%s"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	dword ptr [esp+8], 104h	; int
		mov	dword ptr [esp+4], offset a_cfg	; ".cfg"
		mov	[esp], ebx	; s
		call	_Z18V_DefaultExtensionPcPKci ; V_DefaultExtension(char *,char  const*,int)
		mov	[esp], ebx	; haystack
		call	_Z15COM_IsValidPathPKc ; COM_IsValidPath(char  const*)
		test	al, al
		jnz	loc_CED47
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aExecSInvalidPa	; "exec	%s: invalid path.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_CED67
; ---------------------------------------------------------------------------

loc_CEE32:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+B1j
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+28h]
		test	al, al
		jz	short loc_CEE8C
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+1Ch]
		cmp	eax, offset loc_100000
		jbe	short loc_CEEF0
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aExecSFileSizeL	; "exec	%s: file size larger than 1 MB!\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_CED67
; ---------------------------------------------------------------------------

loc_CEE8C:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+1B1j
		mov	dword ptr [esp+4], offset word_1F3DAA
		mov	[esp], esi
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		test	eax, eax
		jnz	loc_CED67
		mov	dword ptr [esp+4], offset aJoystick_cfg	; "joystick.cfg"
		mov	[esp], esi
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		test	eax, eax
		jnz	loc_CED67
		mov	dword ptr [esp+4], offset aGame_cfg ; "game.cfg"
		mov	[esp], esi
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		test	eax, eax
		jnz	loc_CED67
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aSNotPresentNot	; "'%s' not present; not executing.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_CED67
; ---------------------------------------------------------------------------
		align 10h

loc_CEEF0:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+1D5j
		lea	eax, [ebp+var_1C]
		mov	dword ptr [esp+8], 4000h
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_4124]
		mov	[ebp+var_412C],	eax
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_Z17COM_LoadStackFilePKcPviRi ;	COM_LoadStackFile(char	const*,void *,int,int &)
		test	eax, eax
		mov	edi, eax
		mov	[ebp+var_20], eax
		jz	loc_CEFE5
		lea	eax, [ebp+var_20]
		mov	[esp], eax
		mov	eax, ds:g_pVCR
		call	dword ptr [eax+38h]
		cmp	edi, [ebp+var_412C]
		jz	short loc_CEF47
		cmp	edi, [ebp+var_20]
		jz	short loc_CEF47
		mov	[esp], edi	; ptr
		call	free

loc_CEF47:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+298j
					; Cmd_Exec_f(CCommand  const&)+29Dj
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aExecingS ; "execing %s\n"
		call	ConDMsg
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer20GetNextCommandHandleEv ; CCommandBuffer::GetNextCommandHandle(void)
		mov	esi, [ebp+var_20]
		mov	ebx, eax
		nop
		lea	esi, [esi+0]

loc_CEF70:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+30Ej
					; Cmd_Exec_f(CCommand  const&)+31Ej
		mov	[esp], esi
		call	_Z13COM_ParseLinePKc ; COM_ParseLine(char  const*)
		mov	dword ptr [esp], offset	com_token ; s
		mov	esi, eax
		call	strlen
		test	eax, eax
		jle	short loc_CEFC7
		mov	dword ptr [esp], offset	com_token ; src
		call	_Z15Cbuf_InsertTextPKc ; Cbuf_InsertText(char  const*)
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_CEFA0:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+325j
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer20GetNextCommandHandleEv ; CCommandBuffer::GetNextCommandHandle(void)
		cmp	ebx, eax
		jz	short loc_CEF70
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; s_CommandBuffer
		call	_ZN14CCommandBuffer18DequeueNextCommandEv ; CCommandBuffer::DequeueNextCommand(void)
		test	al, al
		jz	short loc_CEF70
		call	_ZL19Cbuf_ExecuteCommandRK8CCommand12cmd_source_t_constprop_60
		jmp	short loc_CEFA0
; ---------------------------------------------------------------------------

loc_CEFC7:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+2E8j
		mov	eax, [ebp+var_20]
		cmp	eax, [ebp+var_412C]
		jz	short loc_CEFD6
		cmp	edi, eax
		jz	short loc_CF02E

loc_CEFD6:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+330j
					; Cmd_Exec_f(CCommand  const&)+396j
		call	_Z26UpdateMaterialSystemConfigv	; UpdateMaterialSystemConfig(void)
		nop
		lea	esi, [esi+0]
		jmp	loc_CED67
; ---------------------------------------------------------------------------

loc_CEFE5:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+27Ej
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aExecCouldnTExe	; "exec: couldn't exec %s\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_CED67
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CF026
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange

loc_CF026:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+370j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------

loc_CF02E:				; CODE XREF: Cmd_Exec_f(CCommand  const&)+334j
		mov	[esp], edi	; ptr
		call	free
		jmp	short loc_CEFD6
_Z10Cmd_Exec_fRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CreateExecutionMarker(void)
_ZL21CreateExecutionMarkerv proc near	; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+1Cp
					; Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+2Fp

arg		= byte ptr -1Ch
var_C		= dword	ptr -0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		cmp	ds:_ZL35g_bExecutionMarkerStreamInitialized, 0 ; g_bExecutionMarkerStreamInitialized
		jz	loc_CF0E0
		cmp	dword ptr ds:_ZL18g_ExecutionMarkers+0Ch, 7FFh
		jg	loc_CF112
		lea	esi, [esi+0]

loc_CF068:				; CODE XREF: CreateExecutionMarker(void)+5Dj
					; CreateExecutionMarker(void)+9Bj ...
		mov	dword ptr [esp+8], 40000000h
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL23g_ExecutionMarkerStream ; g_ExecutionMarkerStream
		call	_ZN20CUniformRandomStream9RandomIntEii ; CUniformRandomStream::RandomInt(int,int)
		mov	ecx, dword ptr ds:_ZL18g_ExecutionMarkers+0Ch
		mov	[ebp+var_C], eax
		test	ecx, ecx
		jle	short loc_CF0AC
		mov	ebx, dword ptr ds:_ZL18g_ExecutionMarkers ; g_ExecutionMarkers
		xor	edx, edx
		cmp	eax, [ebx]
		jnz	short loc_CF0A5
		jmp	short loc_CF068
; ---------------------------------------------------------------------------
		align 10h

loc_CF0A0:				; CODE XREF: CreateExecutionMarker(void)+6Aj
		cmp	eax, [ebx+edx*4]
		jz	short loc_CF0D8

loc_CF0A5:				; CODE XREF: CreateExecutionMarker(void)+5Bj
		add	edx, 1
		cmp	edx, ecx
		jnz	short loc_CF0A0

loc_CF0AC:				; CODE XREF: CreateExecutionMarker(void)+4Fj
					; CreateExecutionMarker(void)+9Dj
		lea	eax, [ebp+var_C]
		mov	[esp+4], ecx
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	_ZL18g_ExecutionMarkers	; g_ExecutionMarkers
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE12InsertBeforeEiRKi ;	CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int  const&)
		mov	edx, dword ptr ds:_ZL18g_ExecutionMarkers ; g_ExecutionMarkers
		mov	eax, [edx+eax*4]
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CF0D8:				; CODE XREF: CreateExecutionMarker(void)+63j
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_CF068
		jmp	short loc_CF0AC
; ---------------------------------------------------------------------------
		align 10h

loc_CF0E0:				; CODE XREF: CreateExecutionMarker(void)+Ej
		call	Plat_FloatTime
		mov	dword ptr [esp], offset	_ZL23g_ExecutionMarkerStream ; g_ExecutionMarkerStream
		fstp	dword ptr [ebp+arg]
		mov	eax, dword ptr [ebp+arg]
		mov	[esp+4], eax	; arg
		call	_ZN20CUniformRandomStream7SetSeedEi ; CUniformRandomStream::SetSeed(int)
		mov	ds:_ZL35g_bExecutionMarkerStreamInitialized, 1 ; g_bExecutionMarkerStreamInitialized
		cmp	dword ptr ds:_ZL18g_ExecutionMarkers+0Ch, 7FFh
		jle	loc_CF068

loc_CF112:				; CODE XREF: CreateExecutionMarker(void)+1Ej
		mov	dword ptr [esp], offset	aCreateexecutio	; "CreateExecutionMarker called, but the m"...
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)
		jmp	loc_CF068
_ZL21CreateExecutionMarkerv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Cbuf_AddTextWithMarkers(int, char	*src, int)
_Z23Cbuf_AddTextWithMarkers19ECmdExecutionMarkerPKcS_ proc near
					; CODE XREF: CBaseClientState::InternalProcessStringCmd(NET_StringCmd *,bool)+C8p

var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
arg		= byte ptr -418h
var_218		= byte ptr -218h
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 43Ch
		cmp	dword ptr ds:_ZL18g_ExecutionMarkers+0Ch, 7FDh
		jg	loc_CF300
		call	_ZL21CreateExecutionMarkerv ; CreateExecutionMarker(void)
		lea	esi, [ebp+arg]
		mov	[ebp+var_420], eax
		mov	ebx, esi
		call	_ZL21CreateExecutionMarkerv ; CreateExecutionMarker(void)
		mov	dword ptr [esp+8], offset asc_1F3D22 ; "[$&*,`]"
		mov	[ebp+var_424], eax
		mov	eax, [ebp+var_420]
		mov	dword ptr [esp+4], offset aSCD ; ";%s %c %d;"
		mov	[esp], esi	; s
		mov	[esp+10h], eax
		movsx	eax, byte ptr [ebp+arg_0]
		mov	[esp+0Ch], eax
		call	_Z14V_sprintf_safeILj512EEiRAT__cPKcz
		mov	eax, [ebp+var_424]
		mov	dword ptr [esp+8], offset asc_1F3D22 ; "[$&*,`]"
		mov	dword ptr [esp+4], offset aSCD ; ";%s %c %d;"
		mov	[esp+10h], eax
		movsx	eax, byte ptr [ebp+arg_8]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_218]
		mov	[ebp+var_41C], eax
		mov	[esp], eax	; s
		call	_Z14V_sprintf_safeILj512EEiRAT__cPKcz

loc_CF1CA:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+AEj
		mov	edx, [ebx]
		add	ebx, 4
		lea	eax, [edx-1010101h]
		not	edx
		and	eax, edx
		and	eax, 80808080h
		jz	short loc_CF1CA
		lea	edi, [ebp+var_218]
		mov	edx, eax
		shr	edx, 10h
		test	eax, 8080h
		cmovz	eax, edx
		lea	edx, [ebx+2]
		cmovz	ebx, edx
		add	al, al
		sbb	ebx, 3
		sub	ebx, esi

loc_CF200:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+E4j
		mov	edx, [edi]
		add	edi, 4
		lea	eax, [edx-1010101h]
		not	edx
		and	eax, edx
		and	eax, 80808080h
		jz	short loc_CF200
		mov	edx, eax
		shr	edx, 10h
		test	eax, 8080h
		cmovz	eax, edx
		lea	edx, [edi+2]
		cmovz	edi, edx
		add	al, al
		mov	eax, [ebp+src]
		sbb	edi, 3
		sub	edi, [ebp+var_41C]
		mov	[esp], eax	; s
		call	strlen
		lea	edi, [ebx+edi+3]
		add	edi, eax
		call	ThreadGetCurrentId
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		cmp	ebx, eax
		jz	loc_CF350
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedAssignIf
		test	al, al
		jnz	loc_CF350
		pause
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	_ZNV16CThreadFastMutex4LockEjj ; CThreadFastMutex::Lock(uint,uint)

loc_CF293:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+22Dj
		add	edi, dword ptr ds:_ZL15s_CommandBuffer+2004h
		cmp	edi, dword ptr ds:_ZL15s_CommandBuffer+2044h
		jl	short loc_CF320
		mov	eax, [ebp+var_420]
		call	_ZL28FindAndRemoveExecutionMarkeri ; FindAndRemoveExecutionMarker(int)
		mov	eax, [ebp+var_424]
		call	_ZL28FindAndRemoveExecutionMarkeri ; FindAndRemoveExecutionMarker(int)
		mov	dword ptr [esp], offset	aCbuf_addtextwi	; "Cbuf_AddTextWithMarkers: buffer overflo"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	ebx, ebx

loc_CF2C5:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+214j
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CF30E
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange
		add	esp, 43Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CF300:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+16j
		mov	dword ptr [esp], offset	aCbuf_addtext_0	; "Cbuf_AddTextWithMarkers: execution mark"...
		xor	ebx, ebx
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_CF30E:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+1A9j
		add	esp, 43Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CF320:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+16Fj
		mov	eax, [ebp+arg_0]
		mov	[esp+4], esi	; arg
		mov	[esp], eax	; int
		call	_Z23Cbuf_AddExecutionMarker19ECmdExecutionMarkerPKc ; Cbuf_AddExecutionMarker(ECmdExecutionMarker,char	const*)
		test	al, al
		jnz	short loc_CF368

loc_CF333:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+255j
					; Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+26Ej
		mov	dword ptr [esp], offset	aCbuf_addtextwi	; "Cbuf_AddTextWithMarkers: buffer overflo"...
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)

loc_CF33F:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+270j
		mov	ebx, 1
		jmp	loc_CF2C5
; ---------------------------------------------------------------------------
		align 10h

loc_CF350:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+123j
					; Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+143j
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		add	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		jmp	loc_CF293
; ---------------------------------------------------------------------------
		align 8

loc_CF368:				; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+201j
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp], offset	_ZL15s_CommandBuffer ; dest
		mov	[esp+4], eax	; src
		call	_ZN14CCommandBuffer7AddTextEPKci ; CCommandBuffer::AddText(char	 const*,int)
		test	al, al
		jz	short loc_CF333
		lea	eax, [ebp+var_218]
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_8]
		mov	[esp], eax	; int
		call	_Z23Cbuf_AddExecutionMarker19ECmdExecutionMarkerPKc ; Cbuf_AddExecutionMarker(ECmdExecutionMarker,char	const*)
		test	al, al
		jz	short loc_CF333
		jmp	short loc_CF33F
_Z23Cbuf_AddTextWithMarkers19ECmdExecutionMarkerPKcS_ endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		sub	eax, 1
		mov	dword ptr ds:_ZL20s_CommandBufferMutex+4, eax
		mov	eax, dword ptr ds:_ZL20s_CommandBufferMutex+4
		test	eax, eax
		jnz	short loc_CF3CE
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	_ZL20s_CommandBufferMutex ; s_CommandBufferMutex
		call	ThreadInterlockedExchange

loc_CF3CE:				; CODE XREF: .text:000CF3B8j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Cmd_AddClientCmdCanExecuteVar(char *s)
_Z29Cmd_AddClientCmdCanExecuteVarPKc proc near

var_10		= dword	ptr -10h
s		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+s]
		mov	dword ptr [esp], offset	g_ExtraClientCmdCanExecuteCvars
		mov	[esp+4], ebx
		call	_ZNK8CUtlDictIiiE4FindEPKc ; CUtlDict<int,int>::Find(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_CF408
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_CF408:				; CODE XREF: Cmd_AddClientCmdCanExecuteVar(char	 const*)+1Dj
		mov	[esp], ebx	; s
		call	strdup
		mov	dword ptr [esp], offset	g_ExtraClientCmdCanExecuteCvars
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		mov	[esp+4], eax
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE6InsertERKS4_ ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_Z29Cmd_AddClientCmdCanExecuteVarPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl V_sprintf_safe_512u_(char	*s, char *format, char arg)
_Z14V_sprintf_safeILj512EEiRAT__cPKcz proc near
					; CODE XREF: Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+5Fp
					; Cbuf_AddTextWithMarkers(ECmdExecutionMarker,char  const*,ECmdExecutionMarker)+95p

s		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	[esp+8], eax	; format
		mov	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		leave
		retn
_Z14V_sprintf_safeILj512EEiRAT__cPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<int, CUtlMemory<int, int>>::InsertBefore(int, int	const&)
_ZN10CUtlVectorIi10CUtlMemoryIiiEE12InsertBeforeEiRKi proc near
					; CODE XREF: CreateExecutionMarker(void)+7Ep
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+184p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_CF4D0

loc_CF47F:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int	const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_CF4B6
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_CF4B6:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int	const&)+38j
		add	edi, eax
		jz	short loc_CF4C1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_CF4C1:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int	const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CF4D0:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int	const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIiiE4GrowEi ; CUtlMemory<int,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_CF47F
_ZN10CUtlVectorIi10CUtlMemoryIiiEE12InsertBeforeEiRKi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_TestInLeaf(TraceInfo_t *, int)
_ZL13CM_TestInLeafP11TraceInfo_ti proc near
					; CODE XREF: _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62+B3p
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+3A6p

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		shl	edx, 4
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	ecx, [eax+104h]
		mov	ebx, [eax+11Ch]
		add	edx, [ecx+88h]
		lea	esi, [ebx+ebx*4]
		mov	ebx, [eax+ebx*4+120h]
		mov	esi, [eax+esi*4+128h]
		cmp	word ptr [edx+0Ah], 0
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_34], esi
		jz	loc_CF712
		fldz
		xor	esi, esi
		movaps	xmm2, xmmword ptr ds:Four_Zeros
		jmp	short loc_CF555
; ---------------------------------------------------------------------------
		align 10h

loc_CF540:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+89j
					; CM_TestInLeaf(TraceInfo_t *,int)+A4j
		movzx	ecx, word ptr [edx+0Ah]
		add	esi, 1
		cmp	ecx, esi
		jle	loc_CF710

loc_CF54F:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+216j
		mov	ecx, [eax+104h]

loc_CF555:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+4Bj
		movzx	edi, word ptr [edx+8]
		mov	ebx, [ecx+0A8h]
		mov	ecx, [ecx+98h]
		add	edi, esi
		mov	[ebp+var_30], ebx
		mov	ebx, [ebp+var_34]
		movzx	edi, word ptr [ecx+edi*2]
		lea	ecx, [ebx+edi*4]
		mov	ebx, [ebp+var_2C]
		cmp	ebx, [ecx]
		jz	short loc_CF540
		mov	ebx, [ebp+var_30]
		lea	edi, [ebx+edi*8]
		mov	[ebp+var_30], edi
		mov	edi, [ebp+var_2C]
		mov	ebx, [ebp+var_30]
		mov	[ecx], edi
		mov	ecx, [eax+0FCh]
		test	[ebx], ecx
		jz	short loc_CF540
		movzx	ecx, word ptr [ebx+4]
		cmp	cx, 0FFFFh
		jz	loc_CF759
		test	cx, cx
		jz	loc_CF6EF
		lea	ebx, [eax+24h]
		movzx	ecx, cx
		mov	[ebp+var_24], 0
		lea	edi, [eax+18h]
		test	ecx, ecx
		mov	[ebp+var_40], ebx
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_38], ecx
		jle	loc_CF67C
		mov	ecx, [eax+104h]
		mov	[ebp+var_48], esi
		mov	ebx, [ebp+var_30]
		mov	[ebp+var_4C], edx
		fld	dword ptr [eax]
		mov	[ebp+var_44], eax
		fld	dword ptr [eax+4]
		mov	ecx, [ecx+68h]
		fld	dword ptr [eax+8]
		mov	[ebp+var_3C], ecx
		movzx	ecx, word ptr [ebx+6]
		lea	ebx, ds:0[ecx*8]
		xor	ecx, ecx
		mov	esi, ecx
		nop
		lea	esi, [esi+0]

loc_CF610:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+17Dj
		mov	eax, [ebp+var_3C]
		mov	edx, [eax+ebx]
		xor	eax, eax

loc_CF618:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+144j
		fld	dword ptr [edx+eax]
		fxch	st(4)
		fcomi	st, st(4)
		fstp	st(4)
		ja	loc_CF6D0
		mov	ecx, [edi+eax]
		mov	[ebp+eax+var_24], ecx

loc_CF62E:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+1EAj
		add	eax, 4
		cmp	eax, 0Ch
		jnz	short loc_CF618
		fld	[ebp+var_24]
		fadd	st, st(3)
		fld	[ebp+var_20]
		fadd	st, st(3)
		fld	[ebp+var_1C]
		fadd	st, st(3)
		fxch	st(2)
		fmul	dword ptr [edx]
		fsub	dword ptr [edx+0Ch]
		fxch	st(1)
		fmul	dword ptr [edx+4]
		faddp	st(1), st
		fxch	st(1)
		fmul	dword ptr [edx+8]
		faddp	st(1), st
		fldz
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_CF6E0
		add	esi, 1
		add	ebx, 8
		cmp	[ebp+var_38], esi
		jg	short loc_CF610
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	eax, [ebp+var_44]
		jmp	short loc_CF688
; ---------------------------------------------------------------------------

loc_CF67C:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+E3j
		fstp	st
		jmp	short loc_CF688
; ---------------------------------------------------------------------------

loc_CF680:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+2ACj
		fstp	st
		lea	esi, [esi+0]

loc_CF688:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+18Aj
					; CM_TestInLeaf(TraceInfo_t *,int)+18Ej
		mov	ebx, [ebp+var_30]
		mov	byte ptr [eax+8Ah], 1
		mov	byte ptr [eax+8Bh], 1
		mov	dword ptr [eax+80h], 0
		mov	dword ptr [eax+8Ch], 3F800000h
		mov	edx, [ebx]
		mov	[eax+84h], edx
		jmp	short loc_CF6C0
; ---------------------------------------------------------------------------

loc_CF6B7:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+20Bj
		fstp	st
		lea	esi, [esi+0]

loc_CF6C0:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+1C5j
					; CM_TestInLeaf(TraceInfo_t *,int)+229j ...
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CF6D0:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+131j
		mov	ecx, [ebp+var_40]
		mov	ecx, [ecx+eax]
		mov	[ebp+eax+var_24], ecx
		jmp	loc_CF62E
; ---------------------------------------------------------------------------
		align 10h

loc_CF6E0:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+172j
		fstp	st
		fstp	st
		fstp	st
		mov	esi, [ebp+var_48]
		mov	edx, [ebp+var_4C]
		mov	eax, [ebp+var_44]

loc_CF6EF:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+B7j
		fld	dword ptr [eax+80h]
		fldz
		fcomip	st, st(1)
		fstp	st
		jz	short loc_CF6B7

loc_CF6FD:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+2BEj
		movzx	ecx, word ptr [edx+0Ah]
		add	esi, 1
		cmp	ecx, esi
		jg	loc_CF54F
		fstp	st
		jmp	short loc_CF712
; ---------------------------------------------------------------------------

loc_CF710:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+59j
		fstp	st

loc_CF712:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+3Aj
					; CM_TestInLeaf(TraceInfo_t *,int)+21Ej
		cmp	byte ptr [eax+8Bh], 0
		jnz	short loc_CF6C0
		cmp	word ptr [edx+0Eh], 0
		jz	short loc_CF6C0
		lea	ecx, [eax+54h]
		mov	[esp+18h], ecx
		mov	ecx, [eax+0FCh]
		mov	[esp+8], eax
		mov	[esp+4], edx
		mov	[esp], eax
		mov	[esp+14h], ecx
		lea	ecx, [eax+24h]
		mov	[esp+10h], ecx
		lea	ecx, [eax+18h]
		mov	[esp+0Ch], ecx
		call	_Z17CM_TestInDispTreeP11TraceInfo_tP7cleaf_tRK6VectorS5_S5_iP10CGameTrace ; CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CF759:				; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+AEj
		mov	edi, [ebp+var_30]
		mov	ebx, [eax+104h]
		movups	xmm3, xmmword ptr [eax]
		movups	xmm1, xmmword ptr [eax+18h]
		movzx	ecx, word ptr [edi+6]
		movups	xmm0, xmmword ptr [eax+24h]
		addps	xmm1, xmm3
		addps	xmm0, xmm3
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 4
		add	ecx, [ebx+70h]
		maxps	xmm1, xmmword ptr [ecx]
		minps	xmm0, xmmword ptr [ecx+10h]
		cmpltps	xmm0, xmm1
		andps	xmm0, xmmword ptr ds:g_SIMD_clear_wmask
		cmpeqps	xmm0, xmm2
		movmskps ecx, xmm0
		cmp	ecx, 0Fh
		jz	loc_CF680
		fld	dword ptr [eax+80h]
		fldz
		fcomip	st, st(1)
		fstp	st
		jnz	loc_CF6FD
		fstp	st
		jmp	loc_CF6C0
_ZL13CM_TestInLeafP11TraceInfo_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCollisionBSPData::GetSurfaceAtIndex(unsigned	short)
_ZN17CCollisionBSPData17GetSurfaceAtIndexEt proc near

arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	eax, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		mov	ebp, esp
		movzx	edx, [ebp+arg_4]
		cmp	dx, 0FFFFh
		jz	short loc_CF7E1
		movzx	eax, dx
		mov	edx, [ebp+arg_0]
		shl	eax, 3
		add	eax, [edx+220h]

loc_CF7E1:				; CODE XREF: CCollisionBSPData::GetSurfaceAtIndex(ushort)+10j
		pop	ebp
		retn
_ZN17CCollisionBSPData17GetSurfaceAtIndexEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; PushTraceVisits(TraceInfo_t *)
_Z15PushTraceVisitsP11TraceInfo_t proc near ; CODE XREF: BeginTrace(void)+233p
					; CM_Stab(TraceInfo_t *,Vector	const&,Vector  const&,int)+129p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	eax, [ebx+11Ch]
		lea	ecx, [eax+1]
		add	eax, 49h
		mov	[ebx+11Ch], ecx
		mov	edx, [ebx+eax*4]
		add	edx, 1
		test	edx, edx
		mov	[ebx+eax*4], edx
		jnz	short loc_CF872
		lea	esi, [ecx+ecx*4]
		mov	dword ptr [ebx+eax*4], 1
		shl	esi, 2
		lea	eax, [ebx+esi+120h]
		mov	edx, [eax+14h]
		mov	eax, [eax+8]
		mov	dword ptr [esp+4], 0 ; c
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; s
		call	memset
		lea	eax, [ebx+esi+150h]
		mov	edx, [eax+0Ch]
		mov	eax, [eax]
		mov	dword ptr [esp+4], 0 ; c
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; s
		call	memset

loc_CF872:				; CODE XREF: PushTraceVisits(TraceInfo_t *)+2Cj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z15PushTraceVisitsP11TraceInfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; PopTraceVisits(TraceInfo_t *)
_Z14PopTraceVisitsP11TraceInfo_t proc near
					; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+151p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		sub	dword ptr [eax+11Ch], 1
		pop	ebp
		retn
_Z14PopTraceVisitsP11TraceInfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; EndTrace(TraceInfo_t *&)
_Z8EndTraceRP11TraceInfo_t proc	near	; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+3A1p
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+33Ap ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	esi, [ebp+arg_0]
		mov	eax, [esi]
		sub	dword ptr [eax+11Ch], 1
		mov	dword ptr [esp+4], 10h ; size
		mov	dword ptr [esp], 8 ; alignment
		call	memalign
		mov	ebx, eax
		mov	eax, [esi]
		mov	[ebx+8], eax
		jmp	short loc_CF8CA
; ---------------------------------------------------------------------------
		align 8

loc_CF8C8:				; CODE XREF: EndTrace(TraceInfo_t *&)+6Dj
		pause

loc_CF8CA:				; CODE XREF: EndTrace(TraceInfo_t *&)+2Fj
		mov	eax, dword ptr ds:g_TraceInfoPool+4
		mov	dword ptr [esp], offset	g_TraceInfoPool
		mov	edx, dword ptr ds:g_TraceInfoPool
		mov	[esp+4], ebx
		mov	ecx, eax
		mov	[esp+10h], eax
		add	ecx, 10001h
		mov	[ebx], edx
		mov	[esp+0Ch], edx
		mov	[esp+8], ecx
		call	ThreadInterlockedAssignIf64
		test	al, al
		jz	short loc_CF8C8
		mov	dword ptr [esi], 0
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z8EndTraceRP11TraceInfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_GetVCollide(int)
_Z14CM_GetVCollidei proc near		; CODE XREF: CModelInfo::GetVCollide(int)+9Bj

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		js	short loc_CF932
		cmp	edx, dword ptr ds:g_BSPData+9Ch
		jg	short loc_CF932
		imul	edx, 34h
		add	edx, dword ptr ds:g_BSPData+0A0h
		jz	short loc_CF932
		lea	eax, [edx+28h]

loc_CF932:				; CODE XREF: CM_GetVCollide(int)+Aj
					; CM_GetVCollide(int)+12j ...
		pop	ebp
		retn
_Z14CM_GetVCollidei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_InlineModel(char  const*)
_Z14CM_InlineModelPKc proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		test	ebx, ebx
		jz	loc_CFA08
		mov	edi, offset aMaps_0 ; "maps/"
		mov	ecx, 5
		mov	esi, ebx
		repe cmpsb
		setnbe	al
		setb	dl
		sub	al, dl
		movsx	eax, al
		test	eax, eax
		jz	short loc_CF9E8
		cmp	byte ptr [ebx],	2Ah
		jz	short loc_CF988
		mov	dword ptr [esp], offset	aCm_inlinemodel	; "CM_InlineModel: bad model name!"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_CF988:				; CODE XREF: CM_InlineModel(char  const*)+3Aj
		add	ebx, 1
		mov	dword ptr [esp+8], 0Ah ; base
		mov	[esp], ebx	; nptr
		mov	dword ptr [esp+4], 0 ; arg
		call	strtol
		test	eax, eax
		mov	ebx, eax
		jle	short loc_CF9B1
		cmp	dword ptr ds:g_BSPData+9Ch, eax
		jg	short loc_CF9C3

loc_CF9B1:				; CODE XREF: CM_InlineModel(char  const*)+67j
		mov	dword ptr [esp], offset	aCm_inlinemod_0	; "CM_InlineModel: bad model number!"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		xor	eax, eax
		test	ebx, ebx
		js	short loc_CF9F7

loc_CF9C3:				; CODE XREF: CM_InlineModel(char  const*)+6Fj
		xor	eax, eax
		cmp	ebx, dword ptr ds:g_BSPData+9Ch
		jg	short loc_CF9F7
		imul	eax, ebx, 34h
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		add	eax, dword ptr ds:g_BSPData+0A0h
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CF9E8:				; CODE XREF: CM_InlineModel(char  const*)+35j
		mov	edx, dword ptr ds:g_BSPData+9Ch
		test	edx, edx
		cmovns	eax, dword ptr ds:g_BSPData+0A0h

loc_CF9F7:				; CODE XREF: CM_InlineModel(char  const*)+81j
					; CM_InlineModel(char  const*)+8Bj ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CFA08:				; CODE XREF: CM_InlineModel(char  const*)+14j
		xor	eax, eax
		jmp	short loc_CF9F7
_Z14CM_InlineModelPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_InlineModelNumber(int)
_Z20CM_InlineModelNumberi proc near	; CODE XREF: CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+182p
					; CEngineTrace::ClipRayToBSP(Ray_t  const&,uint,ICollideable *,CGameTrace *)+20p ...

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		js	short loc_CFA2D
		cmp	edx, dword ptr ds:g_BSPData+9Ch
		jg	short loc_CFA2D
		imul	eax, edx, 34h
		add	eax, dword ptr ds:g_BSPData+0A0h

loc_CFA2D:				; CODE XREF: CM_InlineModelNumber(int)+Aj
					; CM_InlineModelNumber(int)+12j
		pop	ebp
		retn
_Z20CM_InlineModelNumberi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_BrushContents_r(CCollisionBSPData *, int)
_Z18CM_BrushContents_rP17CCollisionBSPDatai proc near
					; CODE XREF: CM_BrushContents_r(CCollisionBSPData *,int)+33p
					; CM_InlineModelContents(int)+30p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		test	eax, eax
		js	short loc_CFAB8
		mov	edx, [edi]
		xor	ebx, ebx
		mov	[ebp+var_1C], edx
		lea	esi, [esi+0]

loc_CFA50:				; CODE XREF: CM_BrushContents_r(CCollisionBSPData *,int)+3Fj
		mov	edx, [ebp+var_1C]
		lea	eax, [eax+eax*2]
		lea	esi, [edx+eax*4]
		mov	eax, [esi+4]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z18CM_BrushContents_rP17CCollisionBSPDatai ; CM_BrushContents_r(CCollisionBSPData *,int)
		or	ebx, eax
		mov	eax, [esi+8]
		test	eax, eax
		jns	short loc_CFA50

loc_CFA71:				; CODE XREF: CM_BrushContents_r(CCollisionBSPData *,int)+8Aj
		not	eax
		shl	eax, 4
		add	eax, [edi+88h]
		movzx	edx, word ptr [eax+0Ah]
		test	dx, dx
		jz	short loc_CFAAE
		movzx	ecx, word ptr [eax+8]
		movzx	edx, dx
		mov	esi, [edi+98h]
		mov	edi, [edi+0A8h]
		lea	eax, [ecx+ecx]
		add	ecx, edx
		add	ecx, ecx
		nop

loc_CFAA0:				; CODE XREF: CM_BrushContents_r(CCollisionBSPData *,int)+7Cj
		movzx	edx, word ptr [esi+eax]
		add	eax, 2
		or	ebx, [edi+edx*8]
		cmp	eax, ecx
		jnz	short loc_CFAA0

loc_CFAAE:				; CODE XREF: CM_BrushContents_r(CCollisionBSPData *,int)+53j
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_CFAB8:				; CODE XREF: CM_BrushContents_r(CCollisionBSPData *,int)+11j
		xor	ebx, ebx
		jmp	short loc_CFA71
_Z18CM_BrushContents_rP17CCollisionBSPDatai endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_InlineModelContents(int)
_Z22CM_InlineModelContentsi proc near	; CODE XREF: CModelInfo::GetModelContents(int)+43j

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_0]
		test	edx, edx
		js	short locret_CFAF5
		cmp	edx, dword ptr ds:g_BSPData+9Ch
		jg	short locret_CFAF5
		imul	edx, 34h
		add	edx, dword ptr ds:g_BSPData+0A0h
		jz	short locret_CFAF5
		mov	eax, [edx+24h]
		mov	dword ptr [esp], offset	g_BSPData
		mov	[esp+4], eax
		call	_Z18CM_BrushContents_rP17CCollisionBSPDatai ; CM_BrushContents_r(CCollisionBSPData *,int)

locret_CFAF5:				; CODE XREF: CM_InlineModelContents(int)+Dj
					; CM_InlineModelContents(int)+15j ...
		leave
		retn
_Z22CM_InlineModelContentsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_NumClusters(void)
_Z14CM_NumClustersv proc near		; CODE XREF: Map_VisMark(bool,model_t *)+2F6p
					; SV_ResetPVS(uchar *,int)+12p	...
		push	ebp
		mov	eax, dword ptr ds:g_BSPData+210h
		mov	ebp, esp
		pop	ebp
		retn
_Z14CM_NumClustersv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_EntityString(void)
_Z15CM_EntityStringv proc near		; CODE XREF: Host_Changelevel(bool,char	 const*,char  const*)+17Cp
					; Host_NewGame(char *,bool,bool,char  const*,char  const*,bool):loc_117D81p ...
		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	ecx, dword ptr ds:g_BSPData+0D4h
		test	ecx, ecx
		jz	short loc_CFB38

loc_CFB20:				; CODE XREF: CM_EntityString(void)+73j
		mov	eax, dword ptr ds:g_BSPData+0D0h
		sub	eax, dword ptr ds:g_BSPData+0E4h
		add	eax, dword ptr ds:g_BSPData+0C4h
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CFB38:				; CODE XREF: CM_EntityString(void)+Ej
		mov	eax, ds:g_pFileSystem
		mov	ecx, dword ptr ds:g_BSPData+1FCh
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+18h], 0
		mov	[esp+14h], ecx
		mov	ecx, dword ptr ds:g_BSPData+0C0h
		mov	[esp], edx
		mov	dword ptr [esp+0Ch], (offset g_BSPData+0C4h)
		mov	dword ptr [esp+8], 0
		mov	[esp+10h], ecx
		mov	dword ptr [esp+4], (offset g_BSPData+0FCh)
		call	dword ptr [eax+38h]
		mov	edx, eax
		xor	eax, eax
		test	dl, dl
		jnz	short loc_CFB20
		leave
		retn
_Z15CM_EntityStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_LeafContents(int)
_Z15CM_LeafContentsi proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		mov	eax, [eax]
		retn
_Z15CM_LeafContentsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_LeafCluster(int)
_Z14CM_LeafClusteri proc near		; CODE XREF: Map_VisSetup(model_t *,int,Vector	const*,bool,uint &)+95p
					; CStaticPropMgr::IsPropInPVS(IHandleEntity *,uchar  const*)+5Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		movsx	eax, word ptr [eax+4]
		retn
_Z14CM_LeafClusteri endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_LeafFlags(int)
_Z12CM_LeafFlagsi proc near		; CODE XREF: Map_VisSetup(model_t *,int,Vector	const*,bool,uint &)+6Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		movzx	eax, byte ptr [eax+7]
		sar	al, 1
		movsx	eax, al
		retn
_Z12CM_LeafFlagsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_LeafArea(int)
_Z11CM_LeafAreai proc near		; CODE XREF: SV_AddOriginToPVS(Vector  const&)+1Cp
					; CVEngineServer::GetArea(Vector  const&)+15j ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		movzx	eax, word ptr [eax+6]
		shl	eax, 7
		sar	ax, 7
		cwde
		retn
_Z11CM_LeafAreai endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_FreeMap(void)
_Z10CM_FreeMapv	proc near		; CODE XREF: Host_FreeToLowMark(bool):loc_118270p
					; Host_Shutdown(void)+58p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	g_BSPData
		call	_Z24CollisionBSPData_DestroyP17CCollisionBSPData ; CollisionBSPData_Destroy(CCollisionBSPData *)
		leave
		retn
_Z10CM_FreeMapv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_InitPortalOpenState(CCollisionBSPData *)
_Z22CM_InitPortalOpenStateP17CCollisionBSPData proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+228h]
		test	eax, eax
		jle	short loc_CFC5D
		xor	eax, eax
		lea	esi, [esi+0]

loc_CFC48:				; CODE XREF: CM_InitPortalOpenState(CCollisionBSPData *)+2Bj
		mov	ecx, [edx+22Ch]
		mov	byte ptr [ecx+eax], 0
		add	eax, 1
		cmp	[edx+228h], eax
		jg	short loc_CFC48

loc_CFC5D:				; CODE XREF: CM_InitPortalOpenState(CCollisionBSPData *)+Ej
		pop	ebp
		retn
_Z22CM_InitPortalOpenStateP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_VCollideForModel(int, model_t  const*)
_Z19CM_VCollideForModeliPK7model_t proc	near
					; CODE XREF: CEngineTrace::ClipRayToVPhysics(Ray_t  const&,uint,ICollideable *,studiohdr_t *,CGameTrace	*)+10Ap
					; CModelLoader::DumpVCollideStats(void)+E0p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	eax, [edx+70h]
		cmp	eax, 1
		jz	short loc_CFC80
		cmp	eax, 3
		jz	short loc_CFCA0
		xor	eax, eax

loc_CFC78:				; CODE XREF: CM_VCollideForModel(int,model_t  const*)+25j
					; CM_VCollideForModel(int,model_t  const*)+2Dj	...
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CFC80:				; CODE XREF: CM_VCollideForModel(int,model_t  const*)+Fj
		xor	eax, eax
		sub	ecx, 1
		js	short loc_CFC78
		cmp	ecx, dword ptr ds:g_BSPData+9Ch
		jg	short loc_CFC78
		imul	ecx, 34h
		add	ecx, dword ptr ds:g_BSPData+0A0h
		jz	short loc_CFC78
		lea	eax, [ecx+28h]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CFCA0:				; CODE XREF: CM_VCollideForModel(int,model_t  const*)+14j
		mov	eax, ds:g_pMDLCache
		movzx	edx, word ptr [edx+94h]
		mov	ecx, [eax]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		pop	ebp
		mov	eax, [ecx+30h]
		jmp	eax
_Z19CM_VCollideForModeliPK7model_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PointLeafnumMinDistSqr_r(CCollisionBSPData	*, Vector  const&, int,	float &)
_Z27CM_PointLeafnumMinDistSqr_rP17CCollisionBSPDataRK6VectoriRf	proc near
					; CODE XREF: CFastPointLeafNum::GetLeaf(Vector	const&)+78p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	eax, [ebp+arg_8]
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		test	eax, eax
		js	loc_CFD54
		mov	edx, [ebp+arg_C]
		fld	dword ptr [edx]
		fldz
		jmp	short loc_CFD12
; ---------------------------------------------------------------------------

loc_CFCE0:				; CODE XREF: CM_PointLeafnumMinDistSqr_r(CCollisionBSPData *,Vector  const&,int,float &)+65j
		and	edi, 0FFh
		fld	dword ptr [ecx+edi*4]
		fsub	dword ptr [edx+0Ch]

loc_CFCEC:				; CODE XREF: CM_PointLeafnumMinDistSqr_r(CCollisionBSPData *,Vector  const&,int,float &)+7Ej
		fld	st
		mov	edx, [ebp+arg_C]
		fmul	st, st(1)
		fcomi	st, st(3)
		fcmovnb	st, st(3)
		fstp	st(3)
		fxch	st(2)
		fst	dword ptr [edx]
		fxch	st(1)
		fcomi	st, st(2)
		fstp	st(2)
		ja	short loc_CFD40
		mov	eax, [eax+4]
		test	eax, eax
		js	short loc_CFD50
		fxch	st(1)
		jmp	short loc_CFD12
; ---------------------------------------------------------------------------

loc_CFD10:				; CODE XREF: CM_PointLeafnumMinDistSqr_r(CCollisionBSPData *,Vector  const&,int,float &)+85j
		fxch	st(1)

loc_CFD12:				; CODE XREF: CM_PointLeafnumMinDistSqr_r(CCollisionBSPData *,Vector  const&,int,float &)+1Ej
					; CM_PointLeafnumMinDistSqr_r(CCollisionBSPData	*,Vector  const&,int,float &)+4Ej
		mov	edx, [esi]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	edx, [eax]
		movzx	edi, byte ptr [edx+10h]
		mov	ebx, edi
		cmp	bl, 2
		jbe	short loc_CFCE0
		fld	dword ptr [ecx]
		fmul	dword ptr [edx]
		fsub	dword ptr [edx+0Ch]
		fld	dword ptr [ecx+4]
		fmul	dword ptr [edx+4]
		faddp	st(1), st
		fld	dword ptr [ecx+8]
		fmul	dword ptr [edx+8]
		faddp	st(1), st
		jmp	short loc_CFCEC
; ---------------------------------------------------------------------------

loc_CFD40:				; CODE XREF: CM_PointLeafnumMinDistSqr_r(CCollisionBSPData *,Vector  const&,int,float &)+43j
		mov	eax, [eax+8]
		test	eax, eax
		jns	short loc_CFD10
		fstp	st
		fstp	st
		jmp	short loc_CFD54
; ---------------------------------------------------------------------------
		align 10h

loc_CFD50:				; CODE XREF: CM_PointLeafnumMinDistSqr_r(CCollisionBSPData *,Vector  const&,int,float &)+4Aj
		fstp	st
		fstp	st

loc_CFD54:				; CODE XREF: CM_PointLeafnumMinDistSqr_r(CCollisionBSPData *,Vector  const&,int,float &)+11j
					; CM_PointLeafnumMinDistSqr_r(CCollisionBSPData	*,Vector  const&,int,float &)+8Bj
		pop	ebx
		not	eax
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z27CM_PointLeafnumMinDistSqr_rP17CCollisionBSPDataRK6VectoriRf	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PointLeafnum_r(CCollisionBSPData *, Vector	 const&, int)
_Z17CM_PointLeafnum_rP17CCollisionBSPDataRK6Vectori proc near
					; CODE XREF: CM_PointLeafnum(Vector  const&)+2Ep
					; CM_PointContents(Vector  const&,int)+3Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	eax, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		test	eax, eax
		js	short loc_CFDDA
		mov	edx, [ebp+arg_0]
		fldz
		mov	esi, [edx]
		jmp	short loc_CFD98
; ---------------------------------------------------------------------------
		align 10h

loc_CFD80:				; CODE XREF: CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)+47j
		movzx	ecx, cl
		fld	dword ptr [ebx+ecx*4]
		fsub	dword ptr [eax+0Ch]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		ja	short loc_CFDC8

loc_CFD91:				; CODE XREF: CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)+66j
		mov	eax, [edx+4]
		test	eax, eax
		js	short loc_CFDD8

loc_CFD98:				; CODE XREF: CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)+16j
					; CM_PointLeafnum_r(CCollisionBSPData *,Vector	const&,int)+6Dj
		lea	eax, [eax+eax*2]
		lea	edx, [esi+eax*4]
		mov	eax, [edx]
		movzx	ecx, byte ptr [eax+10h]
		cmp	cl, 2
		jbe	short loc_CFD80
		fld	dword ptr [ebx]
		fmul	dword ptr [eax]
		fsub	dword ptr [eax+0Ch]
		fld	dword ptr [ebx+4]
		fmul	dword ptr [eax+4]
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	dword ptr [eax+8]
		faddp	st(1), st
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_CFD91

loc_CFDC8:				; CODE XREF: CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)+2Fj
		mov	eax, [edx+8]
		test	eax, eax
		jns	short loc_CFD98
		fstp	st
		jmp	short loc_CFDDA
; ---------------------------------------------------------------------------
		align 8

loc_CFDD8:				; CODE XREF: CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)+36j
		fstp	st

loc_CFDDA:				; CODE XREF: CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)+Dj
					; CM_PointLeafnum_r(CCollisionBSPData *,Vector	const&,int)+71j
		pop	ebx
		not	eax
		pop	esi
		pop	ebp
		retn
_Z17CM_PointLeafnum_rP17CCollisionBSPDataRK6Vectori endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PointLeafnum(Vector  const&)
_Z15CM_PointLeafnumRK6Vector proc near	; CODE XREF: CM_GetAreaPortalPlane(Vector  const&,int,VPlane *)+Fp
					; CEngineTrace::GetLeafContainingPoint(Vector  const&)+Aj ...

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, dword ptr ds:g_BSPData+74h
		test	ecx, ecx
		jnz	short loc_CFDF8
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CFDF8:				; CODE XREF: CM_PointLeafnum(Vector  const&)+10j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp], offset	g_BSPData
		mov	[esp+4], eax
		call	_Z17CM_PointLeafnum_rP17CCollisionBSPDataRK6Vectori ; CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)
		leave
		retn
_Z15CM_PointLeafnumRK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_SnapPointToReferenceLeaf_r(int, int, int, float, int)
_Z29CM_SnapPointToReferenceLeaf_rP17CCollisionBSPDataRK6VectorifPS1_ proc near
					; CODE XREF: CM_SnapPointToReferenceLeaf(Vector	 const&,float,Vector*)+3Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_8]
		push	esi
		push	ebx
		mov	esi, [ebp+arg_0]
		fld	[ebp+arg_C]
		mov	ecx, [ebp+arg_10]
		test	edx, edx
		js	loc_CFF13
		fldz
		jmp	short loc_CFE80
; ---------------------------------------------------------------------------
		align 10h

loc_CFE40:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+73j
		mov	ebx, [ebp+arg_4]
		and	edi, 0FFh
		fld	dword ptr [eax+0Ch]
		fld	dword ptr [ebx+edi*4]
		fsub	st, st(1)
		fxch	st(1)
		fsubr	dword ptr [ecx+edi*4]
		fxch	st(2)
		fcomi	st, st(1)
		fstp	st(1)
		ja	short loc_CFED8

loc_CFE5E:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+AFj
		fcomi	st, st(1)
		mov	edx, [edx+4]
		ja	loc_CFF30
		fstp	st(1)
		jmp	short loc_CFE78
; ---------------------------------------------------------------------------
		align 10h

loc_CFE70:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+BFj
		fstp	st
		lea	esi, [esi+0]

loc_CFE78:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+4Bj
					; CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+132j
		test	edx, edx
		js	loc_CFF20

loc_CFE80:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+1Cj
					; CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+E7j
		mov	ebx, [esi]
		lea	edx, [edx+edx*2]
		lea	edx, [ebx+edx*4]
		mov	eax, [edx]
		movzx	edi, byte ptr [eax+10h]
		mov	ebx, edi
		cmp	bl, 2
		jbe	short loc_CFE40
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		mov	ebx, [ebp+arg_4]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax+0Ch]
		fld	st(2)
		fmul	dword ptr [ebx+4]
		fld	dword ptr [ebx]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(3)
		faddp	st(1), st
		fsub	st, st(1)
		fxch	st(4)
		fmul	dword ptr [ecx]
		fsubrp	st(1), st
		fxch	st(2)
		fmul	dword ptr [ecx+4]
		faddp	st(2), st
		fmul	dword ptr [ecx+8]
		faddp	st(1), st
		fxch	st(2)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_CFE5E
		fxch	st(1)
		jmp	short loc_CFEDA
; ---------------------------------------------------------------------------
		align 4

loc_CFED8:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+3Cj
		fxch	st(1)

loc_CFEDA:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+B3j
		fcomi	st, st(1)
		mov	edx, [edx+8]
		jbe	short loc_CFE70
		fadd	st, st(2)
		test	edx, edx
		fld	dword ptr [eax+4]
		fmul	st, st(1)
		fld	dword ptr [eax+8]
		fmul	st, st(2)
		fxch	st(2)
		fmul	dword ptr [eax]
		fsubr	dword ptr [ecx]
		fstp	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fsubrp	st(1), st
		fstp	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		fsubrp	st(1), st
		fstp	dword ptr [ecx+8]
		jns	loc_CFE80
		fstp	st
		fstp	st
		jmp	short loc_CFF24
; ---------------------------------------------------------------------------

loc_CFF13:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+14j
		fstp	st
		jmp	short loc_CFF24
; ---------------------------------------------------------------------------
		align 10h

loc_CFF20:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+5Aj
		fstp	st
		fstp	st

loc_CFF24:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+F1j
					; CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+F5j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_CFF30:				; CODE XREF: CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector  const&,int,float,Vector*)+43j
		fxch	st(1)
		fsubr	st, st(2)
		fld	dword ptr [eax+4]
		fmul	st, st(1)
		fld	dword ptr [eax+8]
		fmul	st, st(2)
		fxch	st(2)
		fmul	dword ptr [eax]
		fadd	dword ptr [ecx]
		fstp	dword ptr [ecx]
		fadd	dword ptr [ecx+4]
		fstp	dword ptr [ecx+4]
		fadd	dword ptr [ecx+8]
		fstp	dword ptr [ecx+8]
		jmp	loc_CFE78
_Z29CM_SnapPointToReferenceLeaf_rP17CCollisionBSPDataRK6VectorifPS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_SnapPointToReferenceLeaf(int, float, int)
_Z27CM_SnapPointToReferenceLeafRK6VectorfPS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, dword ptr ds:g_BSPData+74h
		test	eax, eax
		jnz	short loc_CFF78
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_CFF78:				; CODE XREF: CM_SnapPointToReferenceLeaf(Vector	 const&,float,Vector*)+Dj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp], offset	g_BSPData ; int
		mov	[esp+10h], eax	; int
		mov	eax, [ebp+arg_4]
		mov	[esp+0Ch], eax	; float
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax	; int
		call	_Z29CM_SnapPointToReferenceLeaf_rP17CCollisionBSPDataRK6VectorifPS1_ ; CM_SnapPointToReferenceLeaf_r(CCollisionBSPData *,Vector	 const&,int,float,Vector*)
		leave
		retn
_Z27CM_SnapPointToReferenceLeafRK6VectorfPS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_BoxLeafnums(leafnums_t &, Vector  const&, Vector  const&, int)
_Z14CM_BoxLeafnumsR10leafnums_tRK6VectorS3_i proc near
					; CODE XREF: _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62+5Bp
					; CM_BoxLeafnums(Vector	 const&,Vector	const&,int *,int,int *)+92p

var_1020	= dword	ptr -1020h
var_101C	= dword	ptr -101Ch
var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_1010	= dword	ptr -1010h
var_100C	= dword	ptr -100Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ecx, 0FFFFFFFFh
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1014h
		mov	[ebp+var_1014],	0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_1010],	0
		mov	ebx, [ebp+arg_8]
		mov	[ebp+var_101C],	0
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+arg_C]
		mov	edx, [edi]
		mov	[ebp+var_1020],	ebx
		mov	[ebp+var_1018],	edx
		lea	esi, [esi+0]

loc_D0000:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+110j
					; CM_BoxLeafnums(leafnums_t &,Vector  const&,Vector  const&,int)+14Fj
		test	eax, eax
		js	short loc_D005B

loc_D0004:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+A9j
		mov	ecx, [edi+0Ch]
		lea	edx, [eax+eax*2]
		mov	ebx, [ecx]
		lea	edx, [ebx+edx*4]
		mov	ecx, [edx]
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		fld	dword ptr [esi]
		fmul	st, st(3)
		fsub	dword ptr [ecx+0Ch]
		mov	ecx, [ebp+var_1020]
		fld	dword ptr [esi+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [esi+8]
		fmul	st, st(2)
		faddp	st(1), st
		fxch	st(2)
		fmul	dword ptr [ecx+4]
		fabs
		fxch	st(3)
		fmul	dword ptr [ecx]
		fabs
		faddp	st(3), st
		fmul	dword ptr [ecx+8]
		fabs
		faddp	st(2), st
		fcomi	st, st(1)
		jb	short loc_D00C8
		fstp	st
		fstp	st
		mov	ecx, eax
		mov	eax, [edx+4]
		test	eax, eax
		jns	short loc_D0004

loc_D005B:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+52j
		cmp	[ebp+var_1018],	0FFFFFFFFh
		jz	loc_D0108

loc_D0068:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+15Aj
		mov	ebx, [ebp+var_101C]
		cmp	ebx, [edi+4]
		jge	short loc_D008A
		mov	edx, [ebp+var_101C]
		not	eax
		mov	ebx, [edi+8]
		mov	[ebx+edx*4], eax
		add	edx, 1
		mov	[ebp+var_101C],	edx

loc_D008A:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+C1j
		mov	ebx, [ebp+var_1014]
		cmp	[ebp+var_1010],	ebx
		jz	loc_D0120
		mov	edx, [ebp+var_1010]
		mov	ebx, [edi]
		mov	eax, [ebp+edx*4+var_100C]
		add	edx, 1
		and	edx, 3FFh
		mov	[ebp+var_1018],	ebx
		mov	[ebp+var_1010],	edx
		jmp	loc_D0000
; ---------------------------------------------------------------------------
		align 4

loc_D00C8:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+9Cj
		fxch	st(1)
		fchs
		fcomip	st, st(1)
		fstp	st
		ja	short loc_D00FA
		cmp	[ebp+var_1018],	0FFFFFFFFh
		jz	short loc_D0110

loc_D00DB:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+168j
		mov	ebx, [ebp+var_1014]
		mov	ecx, [edx+4]
		mov	[ebp+ebx*4+var_100C], ecx
		add	ebx, 1
		and	ebx, 3FFh
		mov	[ebp+var_1014],	ebx

loc_D00FA:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+120j
		mov	ecx, eax
		mov	eax, [edx+8]
		jmp	loc_D0000
; ---------------------------------------------------------------------------
		align 8

loc_D0108:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+B2j
		mov	[edi], ecx
		jmp	loc_D0068
; ---------------------------------------------------------------------------
		align 10h

loc_D0110:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+129j
		mov	[edi], eax
		mov	[ebp+var_1018],	eax
		jmp	short loc_D00DB
; ---------------------------------------------------------------------------
		align 10h

loc_D0120:				; CODE XREF: CM_BoxLeafnums(leafnums_t &,Vector	 const&,Vector	const&,int)+E6j
		mov	eax, [ebp+var_101C]
		add	esp, 1014h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z14CM_BoxLeafnumsR10leafnums_tRK6VectorS3_i endp

; ---------------------------------------------------------------------------
		jmp	short _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62	proc near
					; CODE XREF: .text:000D0131j
					; CM_BoxTrace(Ray_t  const&,int,int,bool,CGameTrace &)+425p

var_104C	= dword	ptr -104Ch
var_1048	= byte ptr -1048h
var_1034	= byte ptr -1034h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		fld1
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_1034]
		push	ebx
		mov	ebx, eax
		sub	esp, 105Ch
		mov	[ebp+var_2C], edi
		fld	dword ptr [edx+30h]
		mov	[ebp+var_34], 0FFFFFFFFh
		fadd	st, st(1)
		mov	eax, [eax+104h]
		mov	[ebp+var_30], 400h
		fstp	[ebp+var_24]
		fld	dword ptr [edx+34h]
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_24]
		fadd	st, st(1)
		fstp	[ebp+var_20]
		fadd	dword ptr [edx+38h]
		mov	[esp+8], eax
		lea	eax, [ebp+var_34]
		mov	[esp+0Ch], ecx
		mov	[esp+4], edx
		mov	[esp], eax
		fstp	[ebp+var_1C]
		call	_Z14CM_BoxLeafnumsR10leafnums_tRK6VectorS3_i ; CM_BoxLeafnums(leafnums_t &,Vector  const&,Vector  const&,int)
		test	eax, eax
		mov	[ebp+var_104C],	eax
		jle	short loc_D020A
		mov	[ebp+var_1048],	0
		xor	esi, esi
		jmp	short loc_D01C3
; ---------------------------------------------------------------------------
		align 4

loc_D01B8:				; CODE XREF: _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62+BFj
		add	esi, 1
		cmp	esi, [ebp+var_104C]
		jz	short loc_D0201

loc_D01C3:				; CODE XREF: _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62+73j
		mov	ecx, [edi+esi*4]
		mov	edx, [ebx+104h]
		mov	eax, ecx
		shl	eax, 4
		add	eax, [edx+88h]
		movzx	edx, [ebp+var_1048]
		test	byte ptr [eax],	1
		mov	eax, 1
		cmovnz	eax, edx
		mov	edx, ecx
		mov	[ebp+var_1048],	al
		mov	eax, ebx
		call	_ZL13CM_TestInLeafP11TraceInfo_ti ; CM_TestInLeaf(TraceInfo_t *,int)
		cmp	byte ptr [ebx+8Ah], 0
		jz	short loc_D01B8

loc_D0201:				; CODE XREF: _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62+81j
		cmp	[ebp+var_1048],	0
		jnz	short loc_D022C

loc_D020A:				; CODE XREF: _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62+68j
		mov	byte ptr [ebx+8Bh], 1
		mov	byte ptr [ebx+8Ah], 1
		mov	dword ptr [ebx+80h], 0
		mov	dword ptr [ebx+8Ch], 3F800000h

loc_D022C:				; CODE XREF: _ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62+C8j
		add	esp, 105Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_BoxLeafnums(Vector	 const&, Vector	 const&, int *,	int, int *)
_Z14CM_BoxLeafnumsRK6VectorS1_PiiS2_ proc near
					; CODE XREF: CM_BoxVisible(Vector  const&,Vector  const&,uchar	const*,int)+38p
					; CEngineTrace::SetupLeafAndEntityListBox(Vector  const&,Vector	 const&,CTraceListData &)+4Bp ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 40h
		mov	[ebp+var_2C], 0FFFFFFFFh
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_20], offset g_BSPData
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_10]
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [eax+4]
		mov	[ebp+var_24], ecx
		fadd	st, st(1)
		mov	ecx, [ebp+arg_C]
		fld	dword ptr [edx+8]
		fld	dword ptr [eax+8]
		mov	[ebp+var_28], ecx
		fadd	st, st(1)
		fld	dword ptr [eax]
		fadd	st, st(5)
		mov	eax, dword ptr ds:g_BSPData+0A0h
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fxch	st(1)
		mov	eax, [eax+24h]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_10]
		fst	[ebp+var_1C]
		fxch	st(4)
		fmul	st, st(1)
		mov	[esp+8], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		lea	eax, [ebp+var_2C]
		mov	[esp], eax
		fst	[ebp+var_18]
		fxch	st(2)
		fmulp	st(1), st
		fst	[ebp+var_14]
		fxch	st(3)
		fsubp	st(5), st
		fxch	st(4)
		fstp	[ebp+var_10]
		fxch	st(3)
		fsubp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_C]
		fsubp	st(1), st
		fstp	[ebp+var_8]
		call	_Z14CM_BoxLeafnumsR10leafnums_tRK6VectorS3_i ; CM_BoxLeafnums(leafnums_t &,Vector  const&,Vector  const&,int)
		test	ebx, ebx
		jz	short loc_D02E0
		mov	edx, [ebp+var_2C]
		mov	[ebx], edx

loc_D02E0:				; CODE XREF: CM_BoxLeafnums(Vector  const&,Vector  const&,int *,int,int	*)+99j
		add	esp, 40h
		pop	ebx
		pop	ebp
		retn
_Z14CM_BoxLeafnumsRK6VectorS1_PiiS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PointContents(Vector  const&, int)
_Z16CM_PointContentsRK6Vectori proc near
					; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+DBp

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_24], 0
		mov	edi, dword ptr ds:g_BSPData+7Ch
		test	edi, edi
		jnz	short loc_D0318

loc_D030A:				; CODE XREF: CM_PointContents(Vector  const&,int)+5Dj
					; CM_PointContents(Vector  const&,int)+117j
		mov	eax, [ebp+var_24]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_D0318:				; CODE XREF: CM_PointContents(Vector  const&,int)+18j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [esp], offset	g_BSPData
		mov	eax, [ebp+arg_4]
		mov	[esp+4], edx
		mov	[esp+8], eax
		call	_Z17CM_PointLeafnum_rP17CCollisionBSPDataRK6Vectori ; CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)
		mov	edx, dword ptr ds:g_BSPData+88h
		shl	eax, 4
		add	eax, edx
		mov	[ebp+var_20], eax
		mov	eax, [eax]
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_20]
		cmp	word ptr [eax+0Ah], 0
		jz	short loc_D030A
		mov	[ebp+var_1C], 0
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_D0360:				; CODE XREF: CM_PointContents(Vector  const&,int)+111j
		mov	eax, [ebp+var_20]
		mov	esi, dword ptr ds:g_BSPData+0A8h
		movzx	edx, word ptr [eax+8]
		mov	eax, dword ptr ds:g_BSPData+98h
		add	edx, [ebp+var_1C]
		movzx	ebx, word ptr [eax+edx*2]
		lea	ebx, [esi+ebx*8]
		movzx	esi, word ptr [ebx+4]
		cmp	si, 0FFFFh
		jz	loc_D0410
		xor	eax, eax
		test	si, si
		jz	short loc_D03F0
		movzx	esi, si
		test	esi, esi
		jle	loc_D0448
		mov	edx, [ebp+arg_0]
		xor	ecx, ecx
		mov	edi, dword ptr ds:g_BSPData+68h
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		movzx	edx, word ptr [ebx+6]
		fldz
		shl	edx, 3
		jmp	short loc_D03CA
; ---------------------------------------------------------------------------
		align 10h

loc_D03C0:				; CODE XREF: CM_PointContents(Vector  const&,int)+F4j
		add	ecx, 1
		add	edx, 8
		cmp	ecx, esi
		jge	short loc_D0440

loc_D03CA:				; CODE XREF: CM_PointContents(Vector  const&,int)+C8j
		mov	eax, [edi+edx]
		fld	dword ptr [eax]
		fmul	st, st(4)
		fsub	dword ptr [eax+0Ch]
		fld	dword ptr [eax+4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [eax+8]
		fmul	st, st(3)
		faddp	st(1), st
		fcomip	st, st(1)
		jbe	short loc_D03C0
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		xor	eax, eax

loc_D03F0:				; CODE XREF: CM_PointContents(Vector  const&,int)+9Fj
					; CM_PointContents(Vector  const&,int)+14Ej ...
		mov	edx, [ebp+var_20]
		or	[ebp+var_24], eax
		add	[ebp+var_1C], 1
		movzx	eax, word ptr [edx+0Ah]
		cmp	eax, [ebp+var_1C]
		jg	loc_D0360
		jmp	loc_D030A
; ---------------------------------------------------------------------------
		align 10h

loc_D0410:				; CODE XREF: CM_PointContents(Vector  const&,int)+94j
		movzx	eax, word ptr [ebx+6]
		lea	eax, [eax+eax*2]
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+70h
		lea	edx, [eax+10h]
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_Z12IsPointInBoxRK6VectorS1_S1_	; IsPointInBox(Vector  const&,Vector  const&,Vector  const&)
		mov	edx, eax
		xor	eax, eax
		test	dl, dl
		jnz	short loc_D0448
		jmp	short loc_D03F0
; ---------------------------------------------------------------------------

loc_D0440:				; CODE XREF: CM_PointContents(Vector  const&,int)+D8j
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_D0448:				; CODE XREF: CM_PointContents(Vector  const&,int)+A6j
					; CM_PointContents(Vector  const&,int)+14Cj
		mov	eax, [ebx]
		jmp	short loc_D03F0
_Z16CM_PointContentsRK6Vectori endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_TransformedPointContents(Vector  const&, int, Vector  const&, QAngle  const&)
_Z27CM_TransformedPointContentsRK6VectoriS1_RK6QAngle proc near
					; CODE XREF: CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+142p
					; CPointContentsEnum::EnumElement(IHandleEntity	*)+18Fp

var_68		= dword	ptr -68h
var_58		= dword	ptr -58h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 78h
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		fld	dword ptr [edx]
		fsub	dword ptr [eax]
		fst	[ebp+var_38]
		fld	dword ptr [edx+4]
		fsub	dword ptr [eax+4]
		fst	[ebp+var_34]
		fld	dword ptr [edx+8]
		fsub	dword ptr [eax+8]
		fst	[ebp+var_30]
		fld	dword ptr [ecx]
		fldz
		fcomi	st, st(1)
		fstp	st(1)
		jz	loc_D0540
		fstp	st
		jmp	short loc_D0492
; ---------------------------------------------------------------------------
		align 10h

loc_D0490:				; CODE XREF: CM_TransformedPointContents(Vector	 const&,int,Vector  const&,QAngle  const&)+F5j
		fstp	st

loc_D0492:				; CODE XREF: CM_TransformedPointContents(Vector	 const&,int,Vector  const&,QAngle  const&)+38j
					; CM_TransformedPointContents(Vector  const&,int,Vector	 const&,QAngle	const&)+104j
		lea	eax, [ebp+var_14]
		fstp	[ebp+var_68]
		fxch	st(1)
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_20]
		fstp	[ebp+var_48]
		mov	[esp+8], eax
		lea	eax, [ebp+var_2C]
		fstp	[ebp+var_58]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	_Z12AngleVectorsRK6QAngleP6VectorS3_S3_	; AngleVectors(QAngle  const&,Vector *,Vector *,Vector *)
		fld	[ebp+var_58]
		fld	[ebp+var_28]
		fmul	st, st(1)
		fld	[ebp+var_48]
		fld	[ebp+var_2C]
		fmul	st, st(1)
		faddp	st(2), st
		fld	[ebp+var_68]
		fld	[ebp+var_24]
		fmul	st, st(1)
		faddp	st(3), st
		fxch	st(2)
		fstp	[ebp+var_38]
		fld	[ebp+var_1C]
		fmul	st, st(3)
		fld	[ebp+var_20]
		fmul	st, st(2)
		faddp	st(1), st
		fld	[ebp+var_18]
		fmul	st, st(3)
		faddp	st(1), st
		fchs
		fstp	[ebp+var_34]
		fxch	st(2)
		fmul	[ebp+var_10]
		fxch	st(2)
		fmul	[ebp+var_14]
		faddp	st(2), st
		fmul	[ebp+var_C]
		faddp	st(1), st
		fstp	[ebp+var_30]
		jmp	short loc_D0516
; ---------------------------------------------------------------------------
		align 10h

loc_D0510:				; CODE XREF: CM_TransformedPointContents(Vector	 const&,int,Vector  const&,QAngle  const&)+102j
		fstp	st
		fstp	st
		fstp	st

loc_D0516:				; CODE XREF: CM_TransformedPointContents(Vector	 const&,int,Vector  const&,QAngle  const&)+B7j
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp], offset	g_BSPData
		mov	[esp+8], eax
		lea	eax, [ebp+var_38]
		mov	[esp+4], eax
		call	_Z17CM_PointLeafnum_rP17CCollisionBSPDataRK6Vectori ; CM_PointLeafnum_r(CCollisionBSPData *,Vector  const&,int)
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		mov	eax, [eax]
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D0540:				; CODE XREF: CM_TransformedPointContents(Vector	 const&,int,Vector  const&,QAngle  const&)+30j
		fld	dword ptr [ecx+4]
		fcomip	st, st(1)
		jnz	loc_D0490
		fld	dword ptr [ecx+8]
		fcomip	st, st(1)
		fstp	st
		jz	short loc_D0510
		jmp	loc_D0492
_Z27CM_TransformedPointContentsRK6VectoriS1_RK6QAngle endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IntersectRayWithBoxBrush(TraceInfo_t *, cbrush_t  const*, cboxbrush_t	*)
_Z24IntersectRayWithBoxBrushP11TraceInfo_tPK8cbrush_tP11cboxbrush_t proc near
					; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+2DEp
					; CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+30Ep

var_88		= xmmword ptr -88h
var_78		= xmmword ptr -78h
var_68		= xmmword ptr -68h
var_58		= xmmword ptr -58h
var_48		= xmmword ptr -48h
var_38		= xmmword ptr -38h
var_28		= xmmword ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_4]
		movups	xmm3, xmmword ptr [edx]
		movaps	xmm0, xmmword ptr [ecx+10h]
		movups	xmm2, xmmword ptr [edx+30h]
		subps	xmm0, xmm3
		movaps	xmm1, xmmword ptr [ecx]
		movups	xmm4, xmmword ptr [edx+3Ch]
		subps	xmm1, xmm3
		movaps	xmm3, xmmword ptr ds:Four_Zeros
		addps	xmm0, xmm2
		movaps	xmm7, xmm4
		movaps	xmm6, xmm3
		subps	xmm1, xmm2
		movaps	xmm5, xmm0
		cmpltps	xmm5, xmm3
		cmpltps	xmm6, xmm1
		cmpltps	xmm7, xmm1
		movaps	[ebp+var_58], xmm5
		movaps	xmm5, xmm0
		cmpltps	xmm5, xmm4
		movaps	xmm2, xmm6
		andps	xmm2, xmm7
		movaps	xmm4, xmm5
		movaps	xmm5, [ebp+var_58]
		andps	xmm5, xmm4
		orps	xmm2, xmm5
		andps	xmm2, xmmword ptr ds:g_SIMD_clear_wmask
		movmskps esi, xmm2
		test	esi, esi
		jz	short loc_D05E8

loc_D05DA:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+119j
					; IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+1F6j ...
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D05E8:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+78j
		movups	xmm2, xmmword ptr [edx+48h]
		xorps	xmm4, [ebp+var_58]
		xorps	xmm7, xmm6
		orps	xmm7, xmm4
		movaps	xmm4, xmm2
		movaps	[ebp+var_68], xmm2
		mulps	xmm4, xmm1
		mulps	xmm2, xmm0
		movaps	xmm5, xmm4
		minps	xmm5, xmm2
		maxps	xmm4, xmm2
		movaps	xmm2, xmm7
		andnps	xmm2, xmmword ptr ds:Four_Negative_FLT_MAX
		movaps	[ebp+var_78], xmm2
		andps	xmm5, xmm7
		orps	xmm5, xmm2
		movaps	xmm2, xmm7
		andnps	xmm2, xmmword ptr ds:Four_FLT_MAX
		andps	xmm4, xmm7
		movaps	[ebp+var_88], xmm2
		orps	xmm4, xmm2
		movaps	xmm2, xmm4
		shufps	xmm2, xmm4, 39h
		minps	xmm2, xmm4
		shufps	xmm4, xmm4, 4Eh
		minps	xmm2, xmm4
		movaps	xmm4, xmm5
		shufps	xmm4, xmm5, 39h
		maxps	xmm4, xmm5
		shufps	xmm5, xmm5, 4Eh
		shufps	xmm2, xmm2, 0
		minps	xmm2, xmmword ptr ds:Four_Ones
		maxps	xmm4, xmm5
		shufps	xmm4, xmm4, 0
		maxps	xmm4, xmm3
		cmpltps	xmm2, xmm4
		cmpeqps	xmm2, xmm3
		movmskps esi, xmm2
		cmp	esi, 0Fh
		jnz	loc_D05DA
		movaps	xmm2, ds:xmmword_1F4550
		orps	xmm6, [ebp+var_58]
		andps	xmm6, xmmword ptr ds:g_SIMD_clear_wmask
		movmskps esi, xmm6
		subps	xmm1, xmm2
		addps	xmm0, xmm2
		mulps	xmm1, [ebp+var_68]
		mulps	xmm0, [ebp+var_68]
		movaps	xmm5, xmm1
		movaps	xmm4, xmm1
		cmpleps	xmm5, xmm0
		minps	xmm4, xmm0
		maxps	xmm1, xmm0
		movaps	xmm0, xmm5
		andps	xmm5, xmmword ptr ds:_ZL16g_CubeFaceIndex0 ; g_CubeFaceIndex0
		andps	xmm4, xmm7
		orps	xmm4, [ebp+var_78]
		movaps	xmm2, xmm4
		shufps	xmm2, xmm4, 39h
		andnps	xmm0, xmmword ptr ds:_ZL16g_CubeFaceIndex1 ; g_CubeFaceIndex1
		andps	xmm1, xmm7
		orps	xmm5, xmm0
		orps	xmm1, [ebp+var_88]
		movaps	xmm0, xmm2
		movaps	xmm6, xmm1
		cmpltps	xmm0, xmm4
		shufps	xmm6, xmm1, 39h
		minps	xmm6, xmm1
		shufps	xmm1, xmm1, 4Eh
		maxps	xmm2, xmm4
		shufps	xmm4, xmm4, 4Eh
		movaps	xmm7, xmm0
		andps	xmm0, xmm5
		minps	xmm6, xmm1
		movaps	xmm1, xmm5
		shufps	xmm1, xmm5, 39h
		andnps	xmm7, xmm1
		movaps	xmm1, xmm4
		maxps	xmm4, xmm2
		orps	xmm0, xmm7
		shufps	xmm5, xmm5, 4Eh
		shufps	xmm6, xmm6, 0
		minps	xmm6, xmmword ptr ds:Four_Ones
		cmpltps	xmm1, xmm2
		shufps	xmm4, xmm4, 0
		maxps	xmm4, xmm3
		movaps	[ebp+var_38], xmm6
		movaps	xmm2, xmm1
		andps	xmm0, xmm1
		cmpltps	xmm6, xmm4
		andnps	xmm2, xmm5
		movaps	[ebp+var_28], xmm4
		orps	xmm0, xmm2
		movaps	[ebp+var_48], xmm0
		cmpeqps	xmm6, xmm3
		movmskps edi, xmm6
		cmp	edi, 0Fh
		jnz	loc_D05DA
		test	esi, esi
		mov	eax, dword ptr [ebp+var_48]
		fld	dword ptr [ebp+var_28]
		jz	loc_D0830
		cmp	byte ptr [edx+100h], 0
		jz	short loc_D0781
		fld	dword ptr [edx+8Ch]
		fcomip	st, st(1)
		ja	loc_D0834

loc_D0781:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+211j
		fld	dword ptr [edx+80h]
		fcomip	st, st(1)
		jbe	loc_D086C
		mov	esi, dword ptr ds:vec3_origin
		fstp	dword ptr [edx+80h]
		mov	dword ptr [edx+114h], 0
		mov	[edx+6Ch], esi
		mov	esi, dword ptr ds:vec3_origin+4
		mov	[edx+70h], esi
		mov	esi, dword ptr ds:vec3_origin+8
		mov	[edx+74h], esi
		mov	esi, [edx+104h]
		movzx	edi, word ptr [ecx+eax*2+20h]
		mov	dword ptr [ebp+var_58],	esi
		mov	esi, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		cmp	di, 0FFFFh
		jz	short loc_D07E2
		movzx	esi, di
		mov	edi, dword ptr [ebp+var_58]
		shl	esi, 3
		add	esi, [edi+220h]

loc_D07E2:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+271j
		mov	edi, [esi+4]
		cmp	eax, 2
		mov	esi, [esi]
		mov	[edx+94h], edi
		mov	[edx+90h], esi
		jbe	loc_D08C6
		sub	eax, 3
		lea	esi, ds:0[eax*4]
		mov	ecx, [ecx+esi+10h]
		mov	[edx+78h], ecx
		mov	dword ptr [edx+esi+6Ch], 3F800000h
		mov	byte ptr [edx+7Dh], 0

loc_D0819:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+380j
		mov	[edx+7Ch], al
		mov	eax, [ebx]
		mov	[edx+84h], eax
		mov	eax, 1
		jmp	loc_D05DA
; ---------------------------------------------------------------------------
		align 10h

loc_D0830:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+204j
		fstp	st
		jmp	short loc_D0836
; ---------------------------------------------------------------------------

loc_D0834:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+21Bj
		fstp	st

loc_D0836:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+2D2j
		mov	byte ptr [edx+8Bh], 1
		fld	dword ptr [ebp+var_38]
		mov	eax, [ebx]
		fld1
		fxch	st(1)
		fcomi	st, st(1)
		mov	[edx+84h], eax
		jb	short loc_D087F
		fstp	st
		fstp	st
		mov	byte ptr [edx+8Ah], 1
		xor	eax, eax
		mov	dword ptr [edx+80h], 0
		jmp	loc_D05DA
; ---------------------------------------------------------------------------

loc_D086C:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+229j
		fstp	st
		jmp	short loc_D0878
; ---------------------------------------------------------------------------

loc_D0870:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+32Bj
		fstp	st
		fstp	st
		jmp	short loc_D0878
; ---------------------------------------------------------------------------

loc_D0876:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+33Fj
		fstp	st

loc_D0878:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+30Ej
					; IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+314j
		xor	eax, eax
		jmp	loc_D05DA
; ---------------------------------------------------------------------------

loc_D087F:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+2EEj
		fld	dword ptr [edx+8Ch]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_D0870
		fst	dword ptr [edx+8Ch]
		fld	dword ptr [edx+80h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_D0876
		mov	ecx, _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		fstp	dword ptr [edx+80h]
		xor	eax, eax
		mov	ebx, _ZN17CCollisionBSPData11nullsurfaceE+4
		mov	[edx+90h], ecx
		mov	[edx+94h], ebx
		jmp	loc_D05DA
; ---------------------------------------------------------------------------

loc_D08C6:				; CODE XREF: IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)+296j
		fld	dword ptr [ecx+eax*4]
		mov	ecx, dword ptr ds:_ZZ24IntersectRayWithBoxBrushP11TraceInfo_tPK8cbrush_tP11cboxbrush_tE8signbits[eax*4]	; IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)::signbits
		fchs
		fstp	dword ptr [edx+78h]
		mov	dword ptr [edx+eax*4+6Ch], 0BF800000h
		mov	[edx+7Dh], cl
		jmp	loc_D0819
_Z24IntersectRayWithBoxBrushP11TraceInfo_tPK8cbrush_tP11cboxbrush_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IntersectRayWithBox(Ray_t  const&, VectorAligned  const&, VectorAligned  const&, VectorAligned  const&, CGameTrace *)
_Z19IntersectRayWithBoxRK5Ray_tRK13VectorAlignedS4_S4_P10CGameTrace proc near
					; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+1CBp
					; CEngineTrace::ClipRayToBBox(Ray_t  const&,uint,ICollideable *,CGameTrace *)+36Ep

var_98		= xmmword ptr -98h
var_88		= xmmword ptr -88h
var_78		= xmmword ptr -78h
var_68		= xmmword ptr -68h
var_58		= xmmword ptr -58h
var_48		= xmmword ptr -48h
var_38		= xmmword ptr -38h
var_28		= xmmword ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	edx, [ebp+arg_10]
		mov	ecx, [ebp+arg_0]
		mov	esi, [ebp+arg_C]
		mov	ebx, [ebp+arg_8]
		mov	byte ptr [edx+37h], 0
		movaps	xmm6, xmmword ptr ds:Four_Zeros
		mov	byte ptr [edx+36h], 0
		mov	dword ptr [edx+2Ch], 3F800000h
		movaps	xmm7, xmm6
		movups	xmm4, xmmword ptr [ecx]
		movaps	xmm1, xmmword ptr [esi]
		movups	xmm0, xmmword ptr [ecx+30h]
		subps	xmm1, xmm4
		movaps	xmm2, xmmword ptr [ebx]
		movups	xmm3, xmmword ptr [ecx+10h]
		subps	xmm2, xmm4
		addps	xmm1, xmm0
		movaps	xmm5, xmm3
		subps	xmm2, xmm0
		movaps	xmm4, xmm1
		cmpltps	xmm4, xmm6
		cmpltps	xmm7, xmm2
		cmpltps	xmm5, xmm2
		movaps	[ebp+var_58], xmm4
		movaps	xmm4, xmm1
		cmpltps	xmm4, xmm3
		movaps	xmm0, xmm7
		andps	xmm0, xmm5
		movaps	xmm3, xmm4
		movaps	xmm4, [ebp+var_58]
		andps	xmm4, xmm3
		orps	xmm0, xmm4
		movaps	xmm4, xmmword ptr ds:g_SIMD_clear_wmask
		andps	xmm0, xmm4
		movmskps edi, xmm0
		movaps	[ebp+var_78], xmm4
		test	edi, edi
		jnz	loc_D0A30
		mov	edi, [ebp+arg_4]
		xorps	xmm3, [ebp+var_58]
		xorps	xmm5, xmm7
		orps	xmm5, xmm3
		movaps	xmm0, xmmword ptr [edi]
		movaps	xmm3, xmm0
		movaps	[ebp+var_68], xmm0
		mulps	xmm3, xmm2
		mulps	xmm0, xmm1
		movaps	xmm4, xmm3
		minps	xmm4, xmm0
		maxps	xmm3, xmm0
		movaps	xmm0, xmm5
		andnps	xmm0, xmmword ptr ds:Four_Negative_FLT_MAX
		movaps	[ebp+var_88], xmm0
		andps	xmm4, xmm5
		orps	xmm4, xmm0
		movaps	xmm0, xmm5
		andnps	xmm0, xmmword ptr ds:Four_FLT_MAX
		andps	xmm3, xmm5
		movaps	[ebp+var_98], xmm0
		orps	xmm3, xmm0
		movaps	xmm0, xmm3
		shufps	xmm0, xmm3, 39h
		minps	xmm0, xmm3
		shufps	xmm3, xmm3, 4Eh
		minps	xmm0, xmm3
		movaps	xmm3, xmm4
		shufps	xmm3, xmm4, 39h
		maxps	xmm3, xmm4
		shufps	xmm4, xmm4, 4Eh
		shufps	xmm0, xmm0, 0
		minps	xmm0, xmmword ptr ds:Four_Ones
		maxps	xmm3, xmm4
		shufps	xmm3, xmm3, 0
		maxps	xmm3, xmm6
		cmpltps	xmm0, xmm3
		cmpeqps	xmm0, xmm6
		movmskps edi, xmm0
		cmp	edi, 0Fh
		jnz	short loc_D0A30
		jmp	short loc_D0A40
; ---------------------------------------------------------------------------

loc_D0A23:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+2E6j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		nop
		lea	esi, [esi+0]

loc_D0A30:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+93j
					; IntersectRayWithBox(Ray_t  const&,VectorAligned  const&,VectorAligned	 const&,VectorAligned  const&,CGameTrace *)+12Fj ...
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D0A40:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+131j
		movaps	xmm0, ds:xmmword_1F4550
		orps	xmm7, [ebp+var_58]
		andps	xmm7, [ebp+var_78]
		movmskps edi, xmm7
		subps	xmm2, xmm0
		mov	dword ptr [ebp+var_58],	edi
		addps	xmm1, xmm0
		mulps	xmm2, [ebp+var_68]
		mulps	xmm1, [ebp+var_68]
		movaps	xmm3, xmm2
		movaps	xmm4, xmm2
		minps	xmm3, xmm1
		maxps	xmm2, xmm1
		cmpleps	xmm4, xmm1
		andps	xmm3, xmm5
		orps	xmm3, [ebp+var_88]
		andps	xmm2, xmm5
		orps	xmm2, [ebp+var_98]
		movaps	xmm5, xmm2
		shufps	xmm5, xmm2, 39h
		minps	xmm5, xmm2
		movaps	xmm0, xmm4
		shufps	xmm2, xmm2, 4Eh
		andnps	xmm0, xmmword ptr ds:_ZL16g_CubeFaceIndex1 ; g_CubeFaceIndex1
		andps	xmm4, xmmword ptr ds:_ZL16g_CubeFaceIndex0 ; g_CubeFaceIndex0
		orps	xmm4, xmm0
		movaps	xmm1, xmm4
		minps	xmm5, xmm2
		movaps	xmm2, xmm3
		shufps	xmm1, xmm4, 39h
		shufps	xmm2, xmm3, 39h
		movaps	xmm0, xmm2
		maxps	xmm2, xmm3
		cmpltps	xmm0, xmm3
		shufps	xmm3, xmm3, 4Eh
		shufps	xmm5, xmm5, 0
		minps	xmm5, xmmword ptr ds:Four_Ones
		movaps	xmm7, xmm0
		andps	xmm0, xmm4
		shufps	xmm4, xmm4, 4Eh
		andnps	xmm7, xmm1
		movaps	xmm1, xmm3
		maxps	xmm3, xmm2
		movaps	[ebp+var_38], xmm5
		cmpltps	xmm1, xmm2
		orps	xmm0, xmm7
		shufps	xmm3, xmm3, 0
		maxps	xmm3, xmm6
		movaps	xmm2, xmm1
		andps	xmm0, xmm1
		andnps	xmm2, xmm4
		orps	xmm0, xmm2
		movaps	[ebp+var_48], xmm0
		cmpltps	xmm5, xmm3
		movaps	[ebp+var_28], xmm3
		cmpeqps	xmm5, xmm6
		movmskps edi, xmm5
		cmp	edi, 0Fh
		jnz	loc_D0A30
		mov	edi, dword ptr [ebp+var_58]
		mov	eax, dword ptr [ebp+var_48]
		fld	dword ptr [ebp+var_28]
		test	edi, edi
		jz	short loc_D0B50
		cmp	byte ptr [ecx+40h], 0
		jz	short loc_D0B3A
		fld	dword ptr [edx+38h]
		fcomip	st, st(1)
		ja	short loc_D0B58

loc_D0B3A:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+241j
		fld1
		fcomi	st, st(1)
		jnb	loc_D0C10
		fstp	st
		fstp	st
		xor	eax, eax
		jmp	loc_D0A30
; ---------------------------------------------------------------------------
		align 10h

loc_D0B50:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+23Bj
		fstp	st
		jmp	short loc_D0B60
; ---------------------------------------------------------------------------
		align 8

loc_D0B58:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+248j
		fstp	st
		lea	esi, [esi+0]

loc_D0B60:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+262j
		mov	byte ptr [edx+37h], 1
		fld	dword ptr [ebp+var_38]
		mov	dword ptr [edx+30h], 1
		mov	dword ptr [edx+2Ch], 0
		fld	dword ptr [ecx+20h]
		fadd	dword ptr [ecx]
		fld	dword ptr [ecx+24h]
		fadd	dword ptr [ecx+4]
		fld	dword ptr [ecx+28h]
		fadd	dword ptr [ecx+8]
		fxch	st(2)
		fst	dword ptr [edx]
		fxch	st(1)
		fst	dword ptr [edx+4]
		fxch	st(2)
		fst	dword ptr [edx+8]
		fxch	st(1)
		fst	dword ptr [edx+0Ch]
		fxch	st(2)
		fst	dword ptr [edx+10h]
		fxch	st(1)
		fst	dword ptr [edx+14h]
		fld1
		fxch	st(4)
		fcomi	st, st(4)
		fstp	st(4)
		jb	short loc_D0BC8
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		mov	byte ptr [edx+36h], 1
		mov	eax, 1
		jmp	loc_D0A30
; ---------------------------------------------------------------------------
		align 8

loc_D0BC8:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+2BBj
		fld	dword ptr [edx+38h]
		fxch	st(4)
		mov	eax, 1
		fcomi	st, st(4)
		fstp	st(4)
		jbe	loc_D0A23
		fxch	st(3)
		fst	dword ptr [edx+38h]
		mov	eax, 1
		fld	dword ptr [ecx+14h]
		fmul	st, st(1)
		fld	dword ptr [ecx+18h]
		fmul	st, st(2)
		fxch	st(2)
		fmul	dword ptr [ecx+10h]
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [edx]
		fxch	st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		jmp	loc_D0A30
; ---------------------------------------------------------------------------
		align 10h

loc_D0C10:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+24Ej
		fxch	st(1)
		mov	edi, dword ptr ds:vec3_origin
		cmp	eax, 2
		fstp	dword ptr [edx+2Ch]
		mov	[edx+18h], edi
		mov	edi, dword ptr ds:vec3_origin+4
		mov	[edx+1Ch], edi
		mov	edi, dword ptr ds:vec3_origin+8
		mov	[edx+20h], edi
		jbe	short loc_D0C96
		sub	eax, 3
		mov	ebx, [esi+eax*4]
		mov	[edx+24h], ebx
		fstp	dword ptr [edx+eax*4+18h]
		mov	byte ptr [edx+29h], 0

loc_D0C46:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+3C2j
		mov	[edx+28h], al
		mov	dword ptr [edx+30h], 1
		fld	dword ptr [ecx+20h]
		fadd	dword ptr [ecx]
		fld	dword ptr [ecx+24h]
		fadd	dword ptr [ecx+4]
		fld	dword ptr [ecx+28h]
		fadd	dword ptr [ecx+8]
		fld	dword ptr [edx+2Ch]
		fld1
		fcomip	st, st(1)
		jz	short loc_D0CB4
		fld	dword ptr [ecx+10h]
		mov	eax, 1
		fmul	st, st(1)
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [edx+0Ch]
		fld	dword ptr [ecx+14h]
		fmul	st, st(3)
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [edx+10h]
		fxch	st(1)
		fmul	dword ptr [ecx+18h]
		faddp	st(1), st
		fstp	dword ptr [edx+14h]
		jmp	loc_D0A30
; ---------------------------------------------------------------------------

loc_D0C96:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+343j
		fstp	st
		fld	dword ptr [ebx+eax*4]
		mov	ebx, dword ptr ds:_ZZ19IntersectRayWithBoxRK5Ray_tRK13VectorAlignedS4_S4_P10CGameTraceE8signbits[eax*4]	; IntersectRayWithBox(Ray_t  const&,VectorAligned  const&,VectorAligned	 const&,VectorAligned  const&,CGameTrace *)::signbits
		fchs
		fstp	dword ptr [edx+24h]
		mov	dword ptr [edx+eax*4+18h], 0BF800000h
		mov	[edx+29h], bl
		jmp	short loc_D0C46
; ---------------------------------------------------------------------------

loc_D0CB4:				; CODE XREF: IntersectRayWithBox(Ray_t	const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)+378j
		fstp	st
		fxch	st(2)
		fadd	dword ptr [ecx+10h]
		mov	eax, 1
		fstp	dword ptr [edx+0Ch]
		fadd	dword ptr [ecx+14h]
		fstp	dword ptr [edx+10h]
		fadd	dword ptr [ecx+18h]
		fstp	dword ptr [edx+14h]
		jmp	loc_D0A30
_Z19IntersectRayWithBoxRK5Ray_tRK13VectorAlignedS4_S4_P10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_RayLeafnums_r(int, int, int, float, float, int, int, int, int,	int)
_Z16CM_RayLeafnums_rRK5Ray_tP17CCollisionBSPDataiffRK6VectorS6_PiiRi proc near
					; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+246p
					; CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector  const&,Vector  const&,int *,int,int &)+2E0p ...

var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= xmmword ptr -78h
var_68		= xmmword ptr -68h
var_58		= dword	ptr -58h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ACh
		mov	ecx, [ebp+arg_24]
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		fld	[ebp+arg_C]
		mov	ecx, [ecx]
		mov	ebx, [ebp+arg_14]
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_30], ecx
		mov	ecx, [ebp+arg_20]
		cmp	[ebp+var_30], ecx
		jge	loc_D0DA8
		cmp	byte ptr [eax+40h], 0
		jz	loc_D0DB8
		test	edx, edx
		js	short loc_D0D88
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx]
		mov	[ebp+var_2C], ecx

loc_D0D25:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+A2j
		mov	ecx, [ebp+var_2C]
		lea	edx, [edx+edx*2]
		lea	edi, [ecx+edx*4]
		mov	edx, [edi]
		movzx	ecx, byte ptr [edx+10h]
		cmp	cl, 2
		ja	loc_D0FD0
		movzx	ecx, cl
		fld	dword ptr [edx+0Ch]
		fld	dword ptr [ebx+ecx*4]
		fsub	st, st(1)
		fxch	st(1)
		fsubr	dword ptr [esi+ecx*4]
		fld	dword ptr [eax+ecx*4+30h]
		fxch	st(2)

loc_D0D53:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+325j
		fcomi	st, st(2)
		jbe	short loc_D0D63
		fxch	st(1)
		fcomi	st, st(2)
		ja	loc_D10B0
		fxch	st(1)

loc_D0D63:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+75j
		fld	st(2)
		fchs
		fcomi	st, st(1)
		jbe	loc_D0E28
		fcomip	st, st(2)
		jbe	loc_D0E30
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edi+8]

loc_D0D80:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+3D9j
		test	edx, edx
		jns	short loc_D0D25
		fstp	st
		jmp	short loc_D0D8E
; ---------------------------------------------------------------------------

loc_D0D88:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+3Bj
		fstp	st
		jmp	short loc_D0D8E
; ---------------------------------------------------------------------------

loc_D0D8C:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+DAj
		fstp	st

loc_D0D8E:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+A6j
					; CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector  const&,Vector  const&,int *,int,int &)+AAj ...
		mov	eax, [ebp+var_30]
		not	edx
		mov	ecx, [ebp+arg_1C]
		mov	[ecx+eax*4], edx
		mov	eax, [ebp+arg_24]
		add	dword ptr [eax], 1
		jmp	short loc_D0DAA
; ---------------------------------------------------------------------------
		align 8

loc_D0DA8:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+29j
		fstp	st

loc_D0DAA:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+BFj
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_D0DB8:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+33j
		test	edx, edx
		js	short loc_D0D8C
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx]
		mov	[ebp+var_2C], ecx

loc_D0DC4:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+139j
		mov	ecx, [ebp+var_2C]
		lea	edx, [edx+edx*2]
		lea	edi, [ecx+edx*4]
		mov	edx, [edi]
		movzx	ecx, byte ptr [edx+10h]
		cmp	cl, 2
		ja	loc_D1010
		movzx	ecx, cl
		fld	dword ptr [edx+0Ch]
		fld	dword ptr [ebx+ecx*4]
		fsub	st, st(1)
		fxch	st(1)
		fsubr	dword ptr [esi+ecx*4]
		fld	dword ptr [eax+ecx*4+30h]
		fxch	st(2)

loc_D0DF2:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+37Ej
		fcomi	st, st(2)
		jbe	short loc_D0E02
		fxch	st(1)
		fcomi	st, st(2)
		ja	loc_D10C0
		fxch	st(1)

loc_D0E02:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+114j
		fld	st(2)
		fchs
		fcomi	st, st(1)
		jbe	short loc_D0E38
		fcomip	st, st(2)
		jbe	short loc_D0E40
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edi+8]

loc_D0E17:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+3E9j
		test	edx, edx
		jns	short loc_D0DC4
		fstp	st
		jmp	loc_D0D8E
; ---------------------------------------------------------------------------
		align 8

loc_D0E28:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+89j
		fstp	st
		fxch	st(1)
		jmp	short loc_D0E42
; ---------------------------------------------------------------------------
		align 10h

loc_D0E30:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+91j
		fxch	st(1)
		jmp	short loc_D0E42
; ---------------------------------------------------------------------------
		align 8

loc_D0E38:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+128j
		fstp	st
		fxch	st(1)
		jmp	short loc_D0E42
; ---------------------------------------------------------------------------
		align 10h

loc_D0E40:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+12Cj
		fxch	st(1)

loc_D0E42:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+14Cj
					; CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector  const&,Vector  const&,int *,int,int &)+152j ...
		fcomi	st, st(1)
		jbe	loc_D1068
		fsubr	st, st(1)
		mov	[ebp+var_34], 0
		mov	ecx, 1
		fdivr	ds:flt_1EBCFC
		fld	st(2)
		fadd	st, st(2)
		fadd	ds:flt_1EBF78
		fmul	st, st(1)
		fstp	[ebp+var_2C]
		fxch	st(1)
		fsubrp	st(2), st
		fxch	st(1)
		fadd	ds:flt_1F4548
		fmulp	st(1), st
		fstp	[ebp+var_30]

loc_D0E7E:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+3C1j
					; CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector  const&,Vector  const&,int *,int,int &)+409j
		movss	xmm0, [ebp+var_30]
		xorps	xmm2, xmm2
		mov	edx, [ebp+arg_24]
		maxss	xmm0, xmm2
		movss	xmm1, ds:dword_1EBDA0
		minss	xmm0, xmm1
		movss	[ebp+var_80], xmm0
		fld	[ebp+var_80]
		fld	[ebp+arg_10]
		fsub	st, st(2)
		fld	dword ptr [ebx]
		fld	dword ptr [esi]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+4]
		fld	dword ptr [esi+4]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+8]
		fld	dword ptr [esi+8]
		mov	[esp+24h], edx	; int
		fsub	st, st(1)
		mov	edx, [ebp+arg_20]
		mov	[esp+14h], ebx	; int
		fmul	st, st(3)
		mov	[esp+20h], edx	; int
		mov	edx, [ebp+arg_1C]
		faddp	st(1), st
		mov	[esp+1Ch], edx	; int
		lea	edx, [ebp+var_24]
		mov	[esp+18h], edx	; int
		fstp	[ebp+var_1C]
		fmul	st(1), st
		fxch	st(1)
		fadd	st, st(2)
		fstp	dword ptr [esp+10h] ; float
		fxch	st(1)
		fst	dword ptr [esp+0Ch] ; float
		fxch	st(1)
		mov	ecx, [edi+ecx*4+4]
		fstp	[ebp+var_48]
		fstp	[ebp+var_58]
		mov	[esp], eax	; int
		mov	[ebp+var_4C], eax
		mov	[esp+8], ecx	; int
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_7C], edx
		mov	[esp+4], ecx	; int
		movaps	[ebp+var_78], xmm1
		movaps	[ebp+var_68], xmm2
		call	_Z16CM_RayLeafnums_rRK5Ray_tP17CCollisionBSPDataiffRK6VectorS6_PiiRi ; CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData	*,int,float,float,Vector  const&,Vector	 const&,int *,int,int &)
		movaps	xmm2, [ebp+var_68]
		movss	xmm0, [ebp+var_2C]
		movaps	xmm1, [ebp+var_78]
		maxss	xmm0, xmm2
		mov	ecx, [ebp+arg_24]
		mov	edx, [ebp+var_7C]
		mov	eax, [ebp+var_4C]
		minss	xmm0, xmm1
		movss	[ebp+var_80], xmm0
		fld	[ebp+var_80]
		fld	dword ptr [ebx]
		fld	dword ptr [esi]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+4]
		fld	dword ptr [esi+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+8]
		fld	dword ptr [esi+8]
		mov	[esp+24h], ecx	; int
		fsub	st, st(1)
		mov	ecx, [ebp+arg_20]
		mov	[esp+18h], esi	; int
		mov	[esp+14h], edx	; int
		fmul	st, st(2)
		mov	[esp+20h], ecx	; int
		mov	ecx, [ebp+arg_1C]
		faddp	st(1), st
		mov	[esp+1Ch], ecx	; int
		mov	ecx, [ebp+var_34]
		fstp	[ebp+var_1C]
		fld	[ebp+arg_10]
		fstp	dword ptr [esp+10h] ; float
		fld	[ebp+var_48]
		fmulp	st(1), st
		fld	[ebp+var_58]
		faddp	st(1), st
		fstp	dword ptr [esp+0Ch] ; float
		mov	edx, [edi+ecx*4+4]
		mov	[esp+8], edx	; int
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx	; int
		mov	[esp], eax	; int
		call	_Z16CM_RayLeafnums_rRK5Ray_tP17CCollisionBSPDataiffRK6VectorS6_PiiRi ; CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData	*,int,float,float,Vector  const&,Vector	 const&,int *,int,int &)
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D0FD0:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+57j
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [edx+0Ch]
		fld	dword ptr [ebx+4]
		fmul	st, st(3)
		fld	dword ptr [ebx]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(3)
		faddp	st(1), st
		fsub	st, st(1)
		fxch	st(4)
		fmul	dword ptr [esi]
		fsubrp	st(1), st
		fxch	st(2)
		fmul	dword ptr [esi+4]
		faddp	st(2), st
		fmul	dword ptr [esi+8]
		faddp	st(1), st
		fldz
		fxch	st(2)
		jmp	loc_D0D53
; ---------------------------------------------------------------------------
		align 10h

loc_D1010:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+F6j
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [edx+0Ch]
		fld	dword ptr [ebx]
		fmul	st, st(4)
		fsub	st, st(1)
		fld	dword ptr [ebx+4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [esi]
		fmul	st, st(5)
		fsubrp	st(2), st
		fld	dword ptr [esi+4]
		fmul	st, st(4)
		faddp	st(2), st
		fld	dword ptr [esi+8]
		fmul	st, st(3)
		faddp	st(2), st
		fxch	st(3)
		fmul	dword ptr [eax+34h]
		fabs
		fxch	st(4)
		fmul	dword ptr [eax+30h]
		fabs
		faddp	st(4), st
		fxch	st(1)
		fmul	dword ptr [eax+38h]
		fabs
		faddp	st(3), st
		fxch	st(1)
		jmp	loc_D0DF2
; ---------------------------------------------------------------------------
		align 8

loc_D1068:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+164j
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_D10D0
		fsubr	st(1), st
		fxch	st(1)
		mov	[ebp+var_34], 1
		xor	ecx, ecx
		fdivr	ds:flt_1EBCFC
		fld	st(1)
		fsub	st, st(3)
		fadd	ds:flt_1F4548
		fmul	st, st(1)
		fstp	[ebp+var_2C]
		fxch	st(1)
		faddp	st(2), st
		fxch	st(1)
		fadd	ds:flt_1EBF78
		fmulp	st(1), st
		fstp	[ebp+var_30]
		jmp	loc_D0E7E
; ---------------------------------------------------------------------------
		align 10h

loc_D10B0:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+7Bj
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edi+4]
		jmp	loc_D0D80
; ---------------------------------------------------------------------------
		align 10h

loc_D10C0:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+11Aj
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edi+4]
		jmp	loc_D0E17
; ---------------------------------------------------------------------------
		align 10h

loc_D10D0:				; CODE XREF: CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData *,int,float,float,Vector	const&,Vector  const&,int *,int,int &)+38Cj
		fstp	st
		fstp	st
		fstp	st
		fldz
		mov	[ebp+var_34], 1
		xor	ecx, ecx
		fstp	[ebp+var_2C]
		fld1
		fstp	[ebp+var_30]
		jmp	loc_D0E7E
_Z16CM_RayLeafnums_rRK5Ray_tP17CCollisionBSPDataiffRK6VectorS6_PiiRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_RayLeafnums(Ray_t	const&,	int *, int, int	&)
_Z14CM_RayLeafnumsRK5Ray_tPiiRi	proc near
					; CODE XREF: CEngineTrace::SetupLeafAndEntityListRay(Ray_t  const&,CTraceListData &)+3Dp

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	edx, dword ptr ds:g_BSPData+7Ch
		mov	eax, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_D1108
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_D1108:				; CODE XREF: CM_RayLeafnums(Ray_t  const&,int *,int,int	&)+11j
		fld	dword ptr [eax+10h]
		fadd	dword ptr [eax]
		mov	edx, [ebp+arg_C]
		fstp	[ebp+var_14]
		fld	dword ptr [eax+14h]
		fadd	dword ptr [eax+4]
		fstp	[ebp+var_10]
		fld	dword ptr [eax+18h]
		fadd	dword ptr [eax+8]
		mov	[esp+24h], edx	; int
		mov	edx, [ebp+arg_8]
		mov	[esp+14h], eax	; int
		mov	dword ptr [esp+10h], 3F800000h ; float
		mov	dword ptr [esp+0Ch], 0 ; float
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+20h], edx	; int
		mov	edx, [ebp+arg_4]
		fstp	[ebp+var_C]
		mov	dword ptr [esp+4], offset g_BSPData ; int
		mov	[esp], eax	; int
		mov	[esp+1Ch], edx	; int
		lea	edx, [ebp+var_14]
		mov	[esp+18h], edx	; int
		call	_Z16CM_RayLeafnums_rRK5Ray_tP17CCollisionBSPDataiffRK6VectorS6_PiiRi ; CM_RayLeafnums_r(Ray_t  const&,CCollisionBSPData	*,int,float,float,Vector  const&,Vector	 const&,int *,int,int &)
		leave
		retn
_Z14CM_RayLeafnumsRK5Ray_tPiiRi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_ClearTrace(CGameTrace *)
_Z13CM_ClearTraceP10CGameTrace proc near
					; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+E3p
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+24p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ebx, 54h
		test	dl, 1
		mov	edi, edx
		jnz	short loc_D11D0
		test	edi, 2
		jnz	short loc_D11E0

loc_D118C:				; CODE XREF: CM_ClearTrace(CGameTrace *)+6Ej
					; CM_ClearTrace(CGameTrace *)+7Bj
		mov	ecx, ebx
		xor	eax, eax
		shr	ecx, 2
		test	bl, 2
		rep stosd
		jz	short loc_D11A2
		mov	word ptr [edi],	0
		add	edi, 2

loc_D11A2:				; CODE XREF: CM_ClearTrace(CGameTrace *)+28j
		and	ebx, 1
		jz	short loc_D11AA
		mov	byte ptr [edi],	0

loc_D11AA:				; CODE XREF: CM_ClearTrace(CGameTrace *)+35j
		mov	ebx, _ZN17CCollisionBSPData11nullsurfaceE+4
		mov	dword ptr [edx+2Ch], 3F800000h
		mov	ecx, _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		mov	dword ptr [edx+38h], 0
		mov	[edx+40h], ebx
		mov	[edx+3Ch], ecx
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D11D0:				; CODE XREF: CM_ClearTrace(CGameTrace *)+12j
		lea	edi, [edx+1]
		mov	byte ptr [edx],	0
		mov	bl, 53h
		test	edi, 2
		jz	short loc_D118C

loc_D11E0:				; CODE XREF: CM_ClearTrace(CGameTrace *)+1Aj
		mov	word ptr [edi],	0
		sub	ebx, 2
		add	edi, 2
		jmp	short loc_D118C
_Z13CM_ClearTraceP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_NullVis(CCollisionBSPData *, unsigned char	*)
_Z10CM_NullVisP17CCollisionBSPDataPh proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	edx, [edx+210h]
		add	edx, 7
		sar	edx, 3
		test	edx, edx
		jz	short loc_D121A
		add	edx, eax
		nop
		lea	esi, [esi+0]

loc_D1210:				; CODE XREF: CM_NullVis(CCollisionBSPData *,uchar *)+28j
		mov	byte ptr [eax],	0FFh
		add	eax, 1
		cmp	eax, edx
		jnz	short loc_D1210

loc_D121A:				; CODE XREF: CM_NullVis(CCollisionBSPData *,uchar *)+17j
		pop	ebp
		retn
_Z10CM_NullVisP17CCollisionBSPDataPh endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_DecompressVis(CCollisionBSPData *,	int, int, unsigned char	*)
_Z16CM_DecompressVisP17CCollisionBSPDataiiPh proc near
					; CODE XREF: CM_Vis(uchar *,int,int,int)+40p

var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_C]
		test	eax, eax
		mov	edx, [ecx+210h]
		js	short loc_D1278
		cmp	edx, eax
		jl	short loc_D1278
		mov	esi, [ecx+0B4h]
		test	esi, esi
		jnz	short loc_D12A0

loc_D124A:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+88j
		add	edx, 7
		sar	edx, 3
		test	edx, edx
		jz	short loc_D126A
		lea	eax, [ebx+edx]
		mov	esi, esi
		lea	edi, [edi+0]

loc_D1260:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+48j
		mov	byte ptr [ebx],	0FFh
		add	ebx, 1
		cmp	ebx, eax
		jnz	short loc_D1260

loc_D126A:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+32j
					; CM_DecompressVis(CCollisionBSPData *,int,int,uchar *)+60j ...
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D1278:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+1Aj
					; CM_DecompressVis(CCollisionBSPData *,int,int,uchar *)+1Ej
		add	edx, 7
		sar	edx, 3
		test	edx, edx
		jz	short loc_D126A
		lea	eax, [ebx+edx]
		lea	esi, [esi+0]

loc_D1288:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+70j
		mov	byte ptr [ebx],	0FFh
		add	ebx, 1
		cmp	ebx, eax
		jnz	short loc_D1288
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D12A0:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+28j
		mov	edi, [ecx+0B8h]
		test	edi, edi
		jz	short loc_D124A
		mov	ecx, [ebp+arg_8]
		add	edx, 7
		mov	esi, ebx
		sar	edx, 3
		lea	eax, [ecx+eax*2]
		add	edi, [edi+eax*4+4]
		jz	short loc_D1333
		mov	ecx, ebx
		jmp	short loc_D12D8
; ---------------------------------------------------------------------------
		align 8

loc_D12C8:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+BDj
		mov	[esi], al
		add	esi, 1
		add	edi, 1
		mov	ebx, esi
		sub	ebx, ecx

loc_D12D4:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+D8j
					; CM_DecompressVis(CCollisionBSPData *,int,int,uchar *)+EEj
		cmp	edx, ebx
		jle	short loc_D126A

loc_D12D8:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+A0j
		movzx	eax, byte ptr [edi]
		test	al, al
		jnz	short loc_D12C8
		movzx	eax, byte ptr [edi+1]
		mov	ebx, esi
		add	edi, 2
		sub	ebx, ecx
		mov	[ebp+var_2C], eax
		add	eax, ebx
		cmp	edx, eax
		jl	short loc_D1310

loc_D12F3:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+111j
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_D12D4
		mov	eax, [ebp+var_2C]
		add	eax, esi
		nop

loc_D1300:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+E8j
		mov	byte ptr [esi],	0
		add	esi, 1
		cmp	esi, eax
		jnz	short loc_D1300
		mov	ebx, esi
		sub	ebx, ecx
		jmp	short loc_D12D4
; ---------------------------------------------------------------------------

loc_D1310:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+D1j
		mov	eax, ecx
		mov	[ebp+var_20], edx
		sub	eax, esi
		mov	[ebp+var_24], ecx
		add	eax, edx
		mov	dword ptr [esp], offset	aWarningVisDeco	; "warning: Vis	decompression overrun\n"
		mov	[ebp+var_2C], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_20]
		jmp	short loc_D12F3
; ---------------------------------------------------------------------------

loc_D1333:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+9Cj
		test	edx, edx
		jz	loc_D126A
		add	edx, ebx
		lea	esi, [esi+0]

loc_D1340:				; CODE XREF: CM_DecompressVis(CCollisionBSPData	*,int,int,uchar	*)+128j
		mov	byte ptr [ebx],	0FFh
		add	ebx, 1
		cmp	ebx, edx
		jnz	short loc_D1340
		jmp	loc_D126A
_Z16CM_DecompressVisP17CCollisionBSPDataiiPh endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_Vis(void *s, char arg,	int, int)
_Z6CM_VisPhiii	proc near		; CODE XREF: CM_ClusterPVS(int)+24p
					; Map_VisMark(bool,model_t *)+2F1p ...

s		= dword	ptr  8
arg		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_C]
		mov	ebx, [ebp+s]
		mov	ecx, dword ptr [ebp+arg]
		mov	edx, [ebp+arg_8]
		cmp	eax, 2
		jg	loc_D13F0
		test	ebx, ebx
		jz	loc_D13F0
		test	eax, eax
		js	short loc_D13F0
		cmp	edx, 0FFFFFFFFh
		jz	short loc_D13A0
		mov	[esp+0Ch], ebx
		mov	[esp+8], eax
		mov	[esp+4], edx
		mov	dword ptr [esp], offset	g_BSPData
		call	_Z16CM_DecompressVisP17CCollisionBSPDataiiPh ; CM_DecompressVis(CCollisionBSPData *,int,int,uchar *)

loc_D1395:				; CODE XREF: CM_Vis(uchar *,int,int,int)+AEj
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D13A0:				; CODE XREF: CM_Vis(uchar *,int,int,int)+2Bj
		mov	eax, dword ptr ds:g_BSPData+210h
		add	eax, 7
		sar	eax, 3
		cmp	eax, ecx
		jle	short loc_D13CE
		mov	[esp+8], eax
		mov	[esp+4], ecx	; arg
		mov	dword ptr [esp], offset	aCm_visBufferNo	; "CM_Vis:  buffer not big enough (%i but "...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	eax, dword ptr ds:g_BSPData+210h
		add	eax, 7
		sar	eax, 3

loc_D13CE:				; CODE XREF: CM_Vis(uchar *,int,int,int)+5Dj
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; n
		mov	dword ptr [esp+4], 0 ; c
		call	memset
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D13F0:				; CODE XREF: CM_Vis(uchar *,int,int,int)+16j
					; CM_Vis(uchar *,int,int,int)+1Ej ...
		mov	dword ptr [esp], offset	aCm_visError ; "CM_Vis:	error"
		xor	ebx, ebx
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	short loc_D1395
_Z6CM_VisPhiii	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_ClusterPVSSize(void)
_Z17CM_ClusterPVSSizev proc near
		push	ebp
		mov	eax, 2000h
		mov	ebp, esp
		pop	ebp
		retn
_Z17CM_ClusterPVSSizev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_ClusterPVS(int)
_Z13CM_ClusterPVSi proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+4], 2000h ; arg
		mov	dword ptr [esp], offset	_ZL6pvsrow ; s
		mov	[esp+8], eax	; int
		call	_Z6CM_VisPhiii	; CM_Vis(uchar *,int,int,int)
		leave
		retn
_Z13CM_ClusterPVSi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FloodArea_r(CCollisionBSPData	*, carea_t *, int)
_Z11FloodArea_rP17CCollisionBSPDataP7carea_ti proc near
					; CODE XREF: FloodArea_r(CCollisionBSPData *,carea_t *,int)+8Dp
					; FloodAreaConnections(CCollisionBSPData *)+54p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [edi+224h]
		cmp	[ecx+0Ch], eax
		jz	loc_D14E8

loc_D145E:				; CODE XREF: FloodArea_r(CCollisionBSPData *,carea_t *,int)+C2j
		mov	eax, [ebp+arg_8]
		mov	ebx, [ecx]
		mov	[ecx+8], eax
		mov	eax, [edi+224h]
		test	ebx, ebx
		mov	[ecx+0Ch], eax
		mov	eax, [ecx+4]
		mov	edx, [edi+20Ch]
		jle	short loc_D14D9
		lea	eax, [eax+eax*2]
		xor	esi, esi
		lea	ebx, [edx+eax*4]
		jmp	short loc_D149A
; ---------------------------------------------------------------------------
		align 10h

loc_D1490:				; CODE XREF: FloodArea_r(CCollisionBSPData *,carea_t *,int)+67j
		add	esi, 1
		add	ebx, 0Ch
		cmp	[ecx], esi
		jle	short loc_D14D9

loc_D149A:				; CODE XREF: FloodArea_r(CCollisionBSPData *,carea_t *,int)+44j
					; FloodArea_r(CCollisionBSPData	*,carea_t *,int)+97j
		movzx	eax, word ptr [ebx]
		mov	edx, [edi+22Ch]
		cmp	byte ptr [edx+eax], 0
		jz	short loc_D1490
		mov	eax, [ebp+arg_8]
		add	esi, 1
		mov	[esp+8], eax
		movzx	eax, word ptr [ebx+2]
		add	ebx, 0Ch
		shl	eax, 4
		add	eax, [edi+204h]
		mov	[ebp+var_1C], ecx
		mov	[esp], edi
		mov	[esp+4], eax	; arg
		call	_Z11FloodArea_rP17CCollisionBSPDataP7carea_ti ;	FloodArea_r(CCollisionBSPData *,carea_t	*,int)
		mov	ecx, [ebp+var_1C]
		cmp	[ecx], esi
		jg	short loc_D149A

loc_D14D9:				; CODE XREF: FloodArea_r(CCollisionBSPData *,carea_t *,int)+3Aj
					; FloodArea_r(CCollisionBSPData	*,carea_t *,int)+58j ...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D14E8:				; CODE XREF: FloodArea_r(CCollisionBSPData *,carea_t *,int)+18j
		mov	eax, [ebp+arg_8]
		cmp	[ecx+8], eax
		jz	short loc_D14D9
		mov	[ebp+var_1C], ecx
		mov	dword ptr [esp], offset	aFloodarea_rRef	; "FloodArea_r:	reflooded"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	ecx, [ebp+var_1C]
		jmp	loc_D145E
_Z11FloodArea_rP17CCollisionBSPDataP7carea_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FloodAreaConnections(CCollisionBSPData *)
_Z20FloodAreaConnectionsP17CCollisionBSPData proc near
					; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+DCp
					; CM_SetAreaPortalState(int,int)+41j ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+224h]
		add	edx, 1
		cmp	dword ptr [esi+200h], 1
		mov	[esi+224h], edx
		jle	short loc_D1574
		xor	edi, edi
		mov	ebx, 1
		jmp	short loc_D1546
; ---------------------------------------------------------------------------
		align 10h

loc_D1540:				; CODE XREF: FloodAreaConnections(CCollisionBSPData *)+62j
		mov	edx, [esi+224h]

loc_D1546:				; CODE XREF: FloodAreaConnections(CCollisionBSPData *)+2Bj
		mov	eax, ebx
		shl	eax, 4
		add	eax, [esi+204h]
		cmp	[eax+0Ch], edx
		jz	short loc_D1569
		add	edi, 1
		mov	[esp+4], eax
		mov	[esp+8], edi
		mov	[esp], esi
		call	_Z11FloodArea_rP17CCollisionBSPDataP7carea_ti ;	FloodArea_r(CCollisionBSPData *,carea_t	*,int)

loc_D1569:				; CODE XREF: FloodAreaConnections(CCollisionBSPData *)+44j
		add	ebx, 1
		cmp	[esi+200h], ebx
		jg	short loc_D1540

loc_D1574:				; CODE XREF: FloodAreaConnections(CCollisionBSPData *)+22j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z20FloodAreaConnectionsP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_LoadMap(char *src, char, int)
_Z10CM_LoadMapPKcbPj proc near		; CODE XREF: CModelLoader::Map_LoadModel(model_t *)+8Ap

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
src		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		mov	dword ptr [esp], (offset g_BSPData+4) ;	s1
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		movzx	edi, [ebp+arg_4]
		mov	[esp+4], ebx	; s2
		call	strcmp
		test	eax, eax
		jnz	short loc_D15B3
		mov	eax, edi
		test	al, al
		jnz	short loc_D15E0

loc_D15B3:				; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+2Bj
		mov	dword ptr [esp], offset	g_BSPData
		call	_Z24CollisionBSPData_PreLoadP17CCollisionBSPData ; CollisionBSPData_PreLoad(CCollisionBSPData *)
		test	ebx, ebx
		jz	short loc_D15C8
		cmp	byte ptr [ebx],	0
		jnz	short loc_D1600

loc_D15C8:				; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+41j
		mov	dword ptr [esi], 0
		mov	eax, dword ptr ds:g_BSPData+0A0h
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D15E0:				; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+31j
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	eax, dword ptr ds:g_BSPData+0A0h
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D1600:				; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+46j
		mov	[esp+4], ebx
		mov	dword ptr [esp], 0
		call	_ZN14CMapLoadHelper4InitEP7model_tPKc ;	CMapLoadHelper::Init(model_t *,char  const*)
		mov	dword ptr [esp+4], offset g_BSPData ; int
		mov	[esp], ebx	; src
		call	_Z21CollisionBSPData_LoadPKcP17CCollisionBSPData ; CollisionBSPData_Load(char  const*,CCollisionBSPData	*)
		call	_ZN14CMapLoadHelper8ShutdownEv ; CMapLoadHelper::Shutdown(void)
		mov	dword ptr [esp], offset	g_BSPData
		call	_Z18CM_DispTreeLeafnumP17CCollisionBSPData ; CM_DispTreeLeafnum(CCollisionBSPData *)
		mov	esi, dword ptr ds:g_BSPData+228h
		test	esi, esi
		jle	short loc_D1655
		xor	eax, eax
		lea	esi, [esi+0]

loc_D1640:				; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+D3j
		mov	edx, dword ptr ds:g_BSPData+22Ch
		mov	byte ptr [edx+eax], 0
		add	eax, 1
		cmp	eax, dword ptr ds:g_BSPData+228h
		jl	short loc_D1640

loc_D1655:				; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+B9j
		mov	dword ptr [esp], offset	g_BSPData
		call	_Z20FloodAreaConnectionsP17CCollisionBSPData ; FloodAreaConnections(CCollisionBSPData *)
		mov	eax, dword ptr ds:g_BSPData+0A0h
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z10CM_LoadMapPKcbPj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_SetAreaPortalState(int, int)
_Z21CM_SetAreaPortalStateii proc near	; CODE XREF: CVEngineServer::SetAreaPortalState(int,int)+10j

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		cmp	dword ptr ds:g_BSPData+208h, ebx
		jge	short loc_D16A6
		mov	dword ptr [esp], offset	aPortalnumNumar	; "portalnum > numareaportals"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D16A6:				; CODE XREF: CM_SetAreaPortalState(int,int)+18j
		mov	eax, dword ptr ds:g_BSPData+22Ch
		test	esi, esi
		setnz	byte ptr [eax+ebx]
		mov	[ebp+arg_0], offset g_BSPData
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z20FloodAreaConnectionsP17CCollisionBSPData ; FloodAreaConnections(CCollisionBSPData *)
_Z21CM_SetAreaPortalStateii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_SetAreaPortalStates(int  const*, int  const*, int)
_Z22CM_SetAreaPortalStatesPKiS0_i proc near
					; CODE XREF: CVEngineServer::SetAreaPortalStates(int  const*,int  const*,int)+16j

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		cmp	edi, 0
		jz	short loc_D1748
		jle	short loc_D1730
		xor	ebx, ebx
		jmp	short loc_D1706
; ---------------------------------------------------------------------------
		align 10h

loc_D16F0:				; CODE XREF: CM_SetAreaPortalStates(int	 const*,int  const*,int)+3Fj
					; CM_SetAreaPortalStates(int  const*,int  const*,int)+56j
		mov	edx, [ecx+ebx*4]
		test	edx, edx
		mov	edx, dword ptr ds:g_BSPData+22Ch
		setnz	byte ptr [edx+eax]
		add	ebx, 1
		cmp	ebx, edi
		jz	short loc_D1730

loc_D1706:				; CODE XREF: CM_SetAreaPortalStates(int	 const*,int  const*,int)+1Bj
		mov	eax, [esi+ebx*4]
		cmp	eax, dword ptr ds:g_BSPData+208h
		jle	short loc_D16F0
		mov	[ebp+var_1C], ecx
		mov	dword ptr [esp], offset	aPortalnumNumar	; "portalnum > numareaportals"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	eax, [esi+ebx*4]
		mov	ecx, [ebp+var_1C]
		jmp	short loc_D16F0
; ---------------------------------------------------------------------------
		align 10h

loc_D1730:				; CODE XREF: CM_SetAreaPortalStates(int	 const*,int  const*,int)+17j
					; CM_SetAreaPortalStates(int  const*,int  const*,int)+34j
		mov	[ebp+arg_0], offset g_BSPData
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z20FloodAreaConnectionsP17CCollisionBSPData ; FloodAreaConnections(CCollisionBSPData *)
; ---------------------------------------------------------------------------
		align 8

loc_D1748:				; CODE XREF: CM_SetAreaPortalStates(int	 const*,int  const*,int)+15j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z22CM_SetAreaPortalStatesPKiS0_i endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_AreasConnected(char arg, int)
_Z17CM_AreasConnectedii	proc near	; CODE XREF: CVEngineServer::CheckAreasConnected(int,int)+13p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg		= byte ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, dword ptr ds:_ZL11map_noareas+1Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ebx, dword ptr [ebp+arg]
		mov	esi, [ebp+arg_4]
		mov	ecx, [edx+30h]
		test	ecx, ecx
		jnz	short loc_D17AF
		mov	eax, dword ptr ds:g_BSPData+200h
		cmp	eax, ebx
		jle	short loc_D1781
		cmp	eax, esi
		jg	short loc_D1799

loc_D1781:				; CODE XREF: CM_AreasConnected(int,int)+2Bj
		mov	[esp+0Ch], eax
		mov	[esp+8], esi
		mov	[esp+4], ebx	; arg
		mov	dword ptr [esp], offset	aArea1I2INumare	; "area(1==%i, 2==%i) >= numareas (%i):	 C"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D1799:				; CODE XREF: CM_AreasConnected(int,int)+2Fj
		mov	eax, dword ptr ds:g_BSPData+204h
		shl	esi, 4
		shl	ebx, 4
		mov	edx, [eax+esi+8]
		cmp	[eax+ebx+8], edx
		setz	al

loc_D17AF:				; CODE XREF: CM_AreasConnected(int,int)+22j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z17CM_AreasConnectedii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_WriteAreaBits(int, char arg, int)
_Z16CM_WriteAreaBitsPhii proc near	; CODE XREF: CVEngineServer::GetAreaBits(int,uchar *,int)+16j

var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, dword ptr ds:g_BSPData+200h
		mov	ebx, [ebp+arg_0]
		mov	eax, dword ptr [ebp+arg]
		mov	edi, [ebp+arg_8]
		add	edx, 7
		mov	[ebp+var_1C], edx
		mov	edx, dword ptr ds:_ZL11map_noareas+1Ch
		sar	[ebp+var_1C], 3
		mov	edx, [edx+30h]
		test	edx, edx
		jnz	loc_D18C0
		cmp	eax, 1Fh
		jle	loc_D18A8

loc_D17FC:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+F8j
		test	bl, 1
		mov	edx, ebx
		mov	ecx, 20h
		jnz	loc_D18D4

loc_D180C:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+11Cj
		test	dl, 2
		jnz	loc_D18E1

loc_D1815:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+12Cj
		mov	esi, ecx
		xor	eax, eax
		and	esi, 0FFFFFFFCh

loc_D181C:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+68j
		mov	dword ptr [edx+eax], 0
		add	eax, 4
		cmp	eax, esi
		jb	short loc_D181C
		add	edx, eax
		test	cl, 2
		jz	short loc_D1839
		mov	word ptr [edx],	0
		add	edx, 2

loc_D1839:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+6Fj
		and	ecx, 1
		jz	short loc_D1841
		mov	byte ptr [edx],	0

loc_D1841:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+7Cj
		mov	ecx, dword ptr ds:g_BSPData+204h
		mov	eax, edi
		shl	eax, 4
		mov	esi, [ecx+eax+8]
		mov	eax, dword ptr ds:g_BSPData+200h
		test	eax, eax
		jle	short loc_D18C9
		xor	eax, eax
		mov	[ebp+var_24], ebx
		jmp	short loc_D1866
; ---------------------------------------------------------------------------

loc_D1860:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+D5j
		mov	ecx, dword ptr ds:g_BSPData+204h

loc_D1866:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+9Ej
		mov	edx, eax
		shl	edx, 4
		cmp	[ecx+edx+8], esi
		jz	short loc_D1875
		test	edi, edi
		jnz	short loc_D188C

loc_D1875:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+AFj
		mov	ecx, eax
		mov	ebx, 1
		mov	edx, eax
		and	ecx, 7
		sar	edx, 3
		shl	ebx, cl
		mov	ecx, [ebp+var_24]
		or	[ecx+edx], bl

loc_D188C:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+B3j
		add	eax, 1
		cmp	dword ptr ds:g_BSPData+200h, eax
		jg	short loc_D1860
		mov	eax, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D18A8:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+36j
		mov	[esp+4], eax	; arg
		mov	dword ptr [esp], offset	aCm_writeareabi	; "CM_WriteAreaBits with buffer	% size < 3"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D17FC
; ---------------------------------------------------------------------------
		align 10h

loc_D18C0:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+2Dj
		mov	word ptr [ebx],	0FFFFh
		mov	byte ptr [ebx+2], 0FFh

loc_D18C9:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+97j
		mov	eax, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D18D4:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+46j
		mov	byte ptr [ebx],	0
		lea	edx, [ebx+1]
		mov	cl, 1Fh
		jmp	loc_D180C
; ---------------------------------------------------------------------------

loc_D18E1:				; CODE XREF: CM_WriteAreaBits(uchar *,int,int)+4Fj
		mov	word ptr [edx],	0
		sub	ecx, 2
		add	edx, 2
		jmp	loc_D1815
_Z16CM_WriteAreaBitsPhii endp

; ---------------------------------------------------------------------------
		jmp	short _Z21CM_GetAreaPortalPlaneRK6VectoriP6VPlane ; CM_GetAreaPortalPlane(Vector  const&,int,VPlane *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_GetAreaPortalPlane(Vector	const&,	int, VPlane *)
_Z21CM_GetAreaPortalPlaneRK6VectoriP6VPlane proc near ;	CODE XREF: .text:000D18F1j
					; CVEngineServer::GetAreaPortalPlane(Vector  const&,int,VPlane *)+16j

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z15CM_PointLeafnumRK6Vector ; CM_PointLeafnum(Vector  const&)
		mov	edx, eax
		xor	eax, eax
		test	edx, edx
		js	loc_D19A0
		cmp	edx, dword ptr ds:g_BSPData+84h
		jge	short loc_D19A0
		shl	edx, 4
		add	edx, dword ptr ds:g_BSPData+88h
		movzx	edx, word ptr [edx+6]
		shl	edx, 7
		sar	dx, 7
		movsx	edx, dx
		test	edx, edx
		js	short loc_D19A0
		cmp	edx, dword ptr ds:g_BSPData+200h
		jge	short loc_D19A0
		shl	edx, 4
		add	edx, dword ptr ds:g_BSPData+204h
		mov	esi, [edx]
		test	esi, esi
		jle	short loc_D19A0
		mov	eax, [edx+4]
		mov	edi, dword ptr ds:g_BSPData+20Ch
		lea	edx, [eax+eax*2]
		lea	ecx, [edi+edx*4]
		movzx	edx, word ptr [ecx]
		cmp	edx, [ebp+arg_4]
		jz	short loc_D19B0
		lea	edx, [eax+eax*2+3]
		xor	eax, eax
		shl	edx, 2
		jmp	short loc_D198E
; ---------------------------------------------------------------------------
		align 10h

loc_D1980:				; CODE XREF: CM_GetAreaPortalPlane(Vector  const&,int,VPlane *)+93j
		lea	ecx, [edi+edx]
		add	edx, 0Ch
		movzx	ebx, word ptr [ecx]
		cmp	ebx, [ebp+arg_4]
		jz	short loc_D19B0

loc_D198E:				; CODE XREF: CM_GetAreaPortalPlane(Vector  const&,int,VPlane *)+7Aj
		add	eax, 1
		cmp	eax, esi
		jnz	short loc_D1980
		xor	eax, eax
		mov	esi, esi
		lea	edi, [edi+0]

loc_D19A0:				; CODE XREF: CM_GetAreaPortalPlane(Vector  const&,int,VPlane *)+1Aj
					; CM_GetAreaPortalPlane(Vector	const&,int,VPlane *)+26j ...
		add	esp, 4
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D19B0:				; CODE XREF: CM_GetAreaPortalPlane(Vector  const&,int,VPlane *)+6Fj
					; CM_GetAreaPortalPlane(Vector	const&,int,VPlane *)+8Cj
		mov	eax, [ecx+8]
		mov	ecx, dword ptr ds:g_BSPData+78h
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*4]
		mov	ecx, [ebp+arg_8]
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		add	esp, 4
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z21CM_GetAreaPortalPlaneRK6VectoriP6VPlane endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_HeadnodeVisible(int, unsigned char	 const*, int)
_Z18CM_HeadnodeVisibleiPKhi proc near	; CODE XREF: CM_HeadnodeVisible(int,uchar  const*,int)+3Ep
					; CHLTVServer::EntityPVSCheck(CClientFrame *)+25Cp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edi, dword ptr ds:g_BSPData
		test	eax, eax
		jns	short loc_D1A17
		jmp	short loc_D1A48
; ---------------------------------------------------------------------------
		align 10h

loc_D1A10:				; CODE XREF: CM_HeadnodeVisible(int,uchar  const*,int)+45j
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_D1A48

loc_D1A17:				; CODE XREF: CM_HeadnodeVisible(int,uchar  const*,int)+17j
		mov	edx, [ebp+arg_8]
		lea	eax, [eax+eax*2]
		mov	[esp+4], esi
		lea	ebx, [edi+eax*4]
		mov	[esp+8], edx
		mov	eax, [ebx+4]
		mov	[esp], eax
		call	_Z18CM_HeadnodeVisibleiPKhi ; CM_HeadnodeVisible(int,uchar  const*,int)
		test	al, al
		jz	short loc_D1A10
		mov	eax, 1

loc_D1A3C:				; CODE XREF: CM_HeadnodeVisible(int,uchar  const*,int)+6Cj
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D1A48:				; CODE XREF: CM_HeadnodeVisible(int,uchar  const*,int)+19j
					; CM_HeadnodeVisible(int,uchar	const*,int)+25j
		not	eax
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		movsx	ecx, word ptr [eax+4]
		xor	eax, eax
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_D1A3C
		mov	eax, ecx
		and	ecx, 7
		sar	eax, 3
		movzx	eax, byte ptr [esi+eax]
		add	esp, 1Ch
		pop	ebx
		sar	eax, cl
		pop	esi
		and	eax, 1
		pop	edi
		pop	ebp
		retn
_Z18CM_HeadnodeVisibleiPKhi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_BoxVisible(Vector	const&,	Vector	const&,	unsigned char  const*, int)
_Z13CM_BoxVisibleRK6VectorS1_PKhi proc near
					; CODE XREF: CVEngineServer::CheckBoxInPVS(Vector  const&,Vector  const&,uchar	const*,int)+21p

var_438		= dword	ptr -438h
var_434		= dword	ptr -434h
var_430		= dword	ptr -430h
var_42C		= dword	ptr -42Ch
var_41C		= byte ptr -41Ch
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_1C]
		push	ebx
		lea	esi, [ebp+var_41C]
		sub	esp, 44Ch
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		mov	dword ptr [esp+0Ch], 100h
		mov	ebx, [ebp+arg_C]
		mov	[esp+8], esi
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z14CM_BoxLeafnumsRK6VectorS1_PiiS2_ ; CM_BoxLeafnums(Vector  const&,Vector  const&,int	*,int,int *)
		mov	[ebp+var_42C], eax
		xor	eax, eax
		mov	edx, [ebp+var_42C]
		test	edx, edx
		jle	loc_D1B5D
		mov	edx, ebx
		mov	ecx, edi
		mov	ebx, eax
		jmp	short loc_D1AF7
; ---------------------------------------------------------------------------
		align 10h

loc_D1AE0:				; CODE XREF: CM_BoxVisible(Vector  const&,Vector  const&,uchar	const*,int)+8Ej
		movzx	eax, byte ptr [ecx+eax]
		and	edi, 7
		bt	eax, edi
		jb	short loc_D1B58

loc_D1AEC:				; CODE XREF: CM_BoxVisible(Vector  const&,Vector  const&,uchar	const*,int)+D6j
		add	ebx, 1
		cmp	ebx, [ebp+var_42C]
		jz	short loc_D1B70

loc_D1AF7:				; CODE XREF: CM_BoxVisible(Vector  const&,Vector  const&,uchar	const*,int)+59j
		mov	eax, [esi+ebx*4]
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		movsx	edi, word ptr [eax+4]
		mov	eax, edi
		sar	eax, 3
		cmp	eax, edx
		jle	short loc_D1AE0
		mov	[esp+0Ch], edx
		mov	[esp+8], eax
		mov	[esp+4], edi	; arg
		and	edi, 7
		mov	[ebp+var_430], eax
		mov	[ebp+var_438], edx
		mov	[ebp+var_434], ecx
		mov	dword ptr [esp], offset	aCm_boxvisibleC	; "CM_BoxVisible:  cluster %i, offset %i o"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	ecx, [ebp+var_434]
		mov	eax, [ebp+var_430]
		mov	edx, [ebp+var_438]
		movzx	eax, byte ptr [ecx+eax]
		bt	eax, edi
		jnb	short loc_D1AEC

loc_D1B58:				; CODE XREF: CM_BoxVisible(Vector  const&,Vector  const&,uchar	const*,int)+6Aj
		mov	eax, 1

loc_D1B5D:				; CODE XREF: CM_BoxVisible(Vector  const&,Vector  const&,uchar	const*,int)+4Dj
		add	esp, 44Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D1B70:				; CODE XREF: CM_BoxVisible(Vector  const&,Vector  const&,uchar	const*,int)+75j
		add	esp, 44Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z13CM_BoxVisibleRK6VectorS1_PKhi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_WorldSpaceCenter(ICollideable *, Vector *)
_Z19CM_WorldSpaceCenterP12ICollideableP6Vector proc near
					; CODE XREF: SV_StartSound(IRecipientFilter &,edict_t *,int,char  const*,float,soundlevel_t,int,int,int,Vector	const*,float,int,CUtlVector<Vector,CUtlMemory<Vector,int>> *)+34Ep

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	esi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		fld	dword ptr [esi+4]
		fadd	dword ptr [eax+4]
		fld	dword ptr [esi+8]
		fadd	dword ptr [eax+8]
		fld	dword ptr [esi]
		fadd	dword ptr [eax]
		mov	eax, [ebx]
		mov	[esp], ebx
		fld	ds:flt_1EBAA4
		fmul	st(1), st
		fxch	st(1)
		fstp	[ebp+var_24]
		fmul	st(2), st
		fxch	st(2)
		fstp	[ebp+var_20]
		fmulp	st(1), st
		fstp	[ebp+var_1C]
		call	dword ptr [eax+2Ch]
		fld	dword ptr [eax]
		fld	dword ptr ds:vec3_angle
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D1C00
		fld	dword ptr [eax+4]
		fld	dword ptr ds:vec3_angle+4
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D1C00
		fld	dword ptr [eax+8]
		fld	dword ptr ds:vec3_angle+8
		fcomip	st, st(1)
		fstp	st
		jz	short loc_D1C56
		db	66h
		nop

loc_D1C00:				; CODE XREF: CM_WorldSpaceCenter(ICollideable *,Vector *)+5Ej
					; CM_WorldSpaceCenter(ICollideable *,Vector *)+6Dj
		fld	[ebp+var_24]
		fld	dword ptr ds:vec3_origin
		fcomip	st, st(1)
		fstp	st
		jz	short loc_D1C38

loc_D1C0F:				; CODE XREF: CM_WorldSpaceCenter(ICollideable *,Vector *)+C5j
					; CM_WorldSpaceCenter(ICollideable *,Vector *)+D4j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+30h]
		mov	[esp+8], edi
		mov	[esp+4], eax
		lea	eax, [ebp+var_24]
		mov	[esp], eax
		call	_Z15VectorTransformPKfRK11matrix3x4_tPf	; VectorTransform(float	 const*,matrix3x4_t  const&,float *)

loc_D1C2A:				; CODE XREF: CM_WorldSpaceCenter(ICollideable *,Vector *)+F7j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D1C38:				; CODE XREF: CM_WorldSpaceCenter(ICollideable *,Vector *)+8Dj
		fld	[ebp+var_20]
		fld	dword ptr ds:vec3_origin+4
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D1C0F
		fld	[ebp+var_1C]
		fld	dword ptr ds:vec3_origin+8
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D1C0F

loc_D1C56:				; CODE XREF: CM_WorldSpaceCenter(ICollideable *,Vector *)+7Cj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		fld	dword ptr [eax]
		fadd	[ebp+var_24]
		fstp	dword ptr [edi]
		fld	dword ptr [eax+4]
		fadd	[ebp+var_20]
		fstp	dword ptr [edi+4]
		fld	dword ptr [eax+8]
		fadd	[ebp+var_1C]
		fstp	dword ptr [edi+8]
		jmp	short loc_D1C2A
_Z19CM_WorldSpaceCenterP12ICollideableP6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_WorldAlignBounds(ICollideable *, Vector *,	Vector *)
_Z19CM_WorldAlignBoundsP12ICollideableP6VectorS2_ proc near

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		fld	dword ptr [eax]
		fld	dword ptr ds:vec3_angle
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D1CBB
		fld	dword ptr [eax+4]
		fld	dword ptr ds:vec3_angle+4
		fcomip	st, st(1)
		fstp	st
		jz	loc_D1D48

loc_D1CBB:				; CODE XREF: CM_WorldAlignBounds(ICollideable *,Vector *,Vector	*)+26j
					; CM_WorldAlignBounds(ICollideable *,Vector *,Vector *)+D5j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_1C], edx
		call	dword ptr [eax+0Ch]
		mov	ecx, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_20], ecx
		call	dword ptr [eax+30h]
		mov	edx, [ebp+var_1C]
		mov	[esp+10h], esi
		mov	ecx, [ebp+var_20]
		mov	[esp+0Ch], edi
		mov	[esp], eax
		mov	[esp+8], edx
		mov	[esp+4], ecx
		call	_Z14ITransformAABBRK11matrix3x4_tRK6VectorS4_RS2_S5_ ; ITransformAABB(matrix3x4_t  const&,Vector  const&,Vector	 const&,Vector&,Vector&)
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		fld	dword ptr [edi]
		fsub	dword ptr [eax]
		fstp	dword ptr [edi]
		fld	dword ptr [edi+4]
		fsub	dword ptr [eax+4]
		fstp	dword ptr [edi+4]
		fld	dword ptr [edi+8]
		fsub	dword ptr [eax+8]
		fstp	dword ptr [edi+8]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		fld	dword ptr [esi]
		fsub	dword ptr [eax]
		fstp	dword ptr [esi]
		fld	dword ptr [esi+4]
		fsub	dword ptr [eax+4]
		fstp	dword ptr [esi+4]
		fld	dword ptr [esi+8]
		fsub	dword ptr [eax+8]
		fstp	dword ptr [esi+8]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D1D48:				; CODE XREF: CM_WorldAlignBounds(ICollideable *,Vector *,Vector	*)+35j
		fld	dword ptr [eax+8]
		fld	dword ptr ds:vec3_angle+8
		fcomip	st, st(1)
		fstp	st
		jnz	loc_D1CBB
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	edx, [eax]
		mov	[edi], edx
		mov	edx, [eax+4]
		mov	[edi+4], edx
		mov	eax, [eax+8]
		mov	[edi+8], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	edx, [eax]
		mov	[esi], edx
		mov	edx, [eax+4]
		mov	[esi+4], edx
		mov	eax, [eax+8]
		mov	[esi+8], eax
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19CM_WorldAlignBoundsP12ICollideableP6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_WorldSpaceBounds(ICollideable *, Vector *,	Vector *)
_Z19CM_WorldSpaceBoundsP12ICollideableP6VectorS2_ proc near
					; CODE XREF: SV_TriggerMoved(edict_t *,bool)+93p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		fld	dword ptr [eax]
		fld	dword ptr ds:vec3_angle
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D1DDA
		fld	dword ptr [eax+4]
		fld	dword ptr ds:vec3_angle+4
		fcomip	st, st(1)
		fstp	st
		jz	short loc_D1E28

loc_D1DDA:				; CODE XREF: CM_WorldSpaceBounds(ICollideable *,Vector *,Vector	*)+29j
					; CM_WorldSpaceBounds(ICollideable *,Vector *,Vector *)+95j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_1C], edx
		call	dword ptr [eax+0Ch]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+30h]
		mov	ecx, [ebp+arg_4]
		mov	[esp+10h], esi
		mov	edx, [ebp+var_1C]
		mov	[esp+4], edi
		mov	[esp], eax
		mov	[esp+0Ch], ecx
		mov	[esp+8], edx
		call	_Z13TransformAABBRK11matrix3x4_tRK6VectorS4_RS2_S5_ ; TransformAABB(matrix3x4_t	 const&,Vector	const&,Vector  const&,Vector&,Vector&)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D1E28:				; CODE XREF: CM_WorldSpaceBounds(ICollideable *,Vector *,Vector	*)+38j
		fld	dword ptr [eax+8]
		fld	dword ptr ds:vec3_angle+8
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D1DDA
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+arg_4]
		fld	dword ptr [edi]
		fadd	dword ptr [eax]
		fstp	dword ptr [edx]
		fld	dword ptr [edi+4]
		fadd	dword ptr [eax+4]
		fstp	dword ptr [edx+4]
		fld	dword ptr [edi+8]
		fadd	dword ptr [eax+8]
		fstp	dword ptr [edx+8]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		fld	dword ptr [edi]
		fadd	dword ptr [eax]
		fstp	dword ptr [esi]
		fld	dword ptr [edi+4]
		fadd	dword ptr [eax+4]
		fstp	dword ptr [esi+4]
		fld	dword ptr [edi+8]
		fadd	dword ptr [eax+8]
		fstp	dword ptr [esi+8]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z19CM_WorldSpaceBoundsP12ICollideableP6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_SetupAreaFloodNums(unsigned char *, int *)
_Z21CM_SetupAreaFloodNumsPhPi proc near	; CODE XREF: CGameClient::SetupPackInfo(CFrameSnapshot *)+1B0j

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	edx, dword ptr ds:g_BSPData+200h
		mov	ebx, [ebp+arg_0]
		mov	[eax], edx
		mov	eax, dword ptr ds:g_BSPData+200h
		cmp	eax, 100h
		jg	short loc_D1EF8

loc_D1EC1:				; CODE XREF: CM_SetupAreaFloodNums(uchar *,int *)+69j
		test	eax, eax
		jle	short loc_D1EEC
		xor	eax, eax
		mov	esi, esi
		lea	edi, [edi+0]

loc_D1ED0:				; CODE XREF: CM_SetupAreaFloodNums(uchar *,int *)+4Aj
		mov	edx, eax
		shl	edx, 4
		add	edx, dword ptr ds:g_BSPData+204h
		mov	edx, [edx+8]
		mov	[ebx+eax], dl
		add	eax, 1
		cmp	dword ptr ds:g_BSPData+200h, eax
		jg	short loc_D1ED0

loc_D1EEC:				; CODE XREF: CM_SetupAreaFloodNums(uchar *,int *)+23j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D1EF8:				; CODE XREF: CM_SetupAreaFloodNums(uchar *,int *)+1Fj
		mov	dword ptr [esp], offset	aPbspdataNumare	; "pBSPData->numareas >	MAX_MAP_AREAS"
		call	Error
		mov	eax, dword ptr ds:g_BSPData+200h
		jmp	short loc_D1EC1
_Z21CM_SetupAreaFloodNumsPhPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFastPointLeafNum::CFastPointLeafNum(void)
_ZN17CFastPointLeafNumC2Ev proc	near

arg_0		= dword	ptr  8

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+10h], 0BF800000h
		mov	[eax+4], edx
		mov	[eax+8], edx
		mov	[eax+0Ch], edx
		pop	ebp
		retn
_ZN17CFastPointLeafNumC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFastPointLeafNum::GetLeaf(Vector  const&)
_ZN17CFastPointLeafNum7GetLeafERK6Vector proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		fld	dword ptr [eax]
		fld	dword ptr [ebx+4]
		fsubr	st, st(1)
		fmul	st, st
		fld	dword ptr [eax+4]
		fsub	dword ptr [ebx+8]
		fmul	st, st
		fld	dword ptr [eax+8]
		fsub	dword ptr [ebx+0Ch]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fld	dword ptr [ebx+10h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	short loc_D1F78
		fstp	st
		mov	eax, [ebx]
		add	esp, 10h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D1F78:				; CODE XREF: CFastPointLeafNum::GetLeaf(Vector	const&)+35j
		fstp	dword ptr [ebx+4]
		mov	edx, [eax+4]
		mov	[ebx+8], edx
		mov	edx, [eax+8]
		mov	dword ptr [ebx+10h], 6753C21Ch
		mov	[ebx+0Ch], edx
		lea	edx, [ebx+10h]
		mov	[esp+0Ch], edx
		mov	dword ptr [esp+8], 0
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	g_BSPData
		call	_Z27CM_PointLeafnumMinDistSqr_rP17CCollisionBSPDataRK6VectoriRf	; CM_PointLeafnumMinDistSqr_r(CCollisionBSPData	*,Vector  const&,int,float &)
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	ebp
		retn
_ZN17CFastPointLeafNum7GetLeafERK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IsBoxIntersectingRayNoLowest(float  {__vector}, float	 {__vector}, float  {__vector} const&, float  {__vector} const&, float	{__vector} const&, float  {__vector} const&)
_Z28IsBoxIntersectingRayNoLowestU8__vectorfS_RKS_S1_S1_S1_ proc	near

var_1C		= dword	ptr -1Ch
var_18		= xmmword ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		movaps	xmm4, xmmword ptr ds:Four_Zeros
		mov	eax, [ebp+arg_4]
		movaps	xmm5, xmmword ptr ds:Four_Epsilons
		movaps	xmm3, xmm4
		movaps	xmm7, xmmword ptr ds:g_SIMD_clear_wmask
		subps	xmm3, xmm5
		movaps	xmm2, xmmword ptr [eax]
		mov	eax, [ebp+arg_C]
		cmpleps	xmm3, xmm2
		cmpleps	xmm2, xmm5
		andps	xmm2, xmm3
		movaps	xmm3, xmmword ptr [eax]
		andps	xmm2, xmm7
		mov	eax, [ebp+arg_0]
		subps	xmm0, xmm3
		addps	xmm3, xmm1
		movaps	xmm5, xmmword ptr [eax]
		movaps	xmm1, xmm3
		mov	eax, [ebp+arg_8]
		movaps	xmm6, xmm5
		cmpltps	xmm1, xmm5
		cmpltps	xmm6, xmm0
		subps	xmm0, xmm5
		subps	xmm3, xmm5
		orps	xmm6, xmm1
		movaps	xmm1, xmmword ptr [eax]
		mulps	xmm0, xmm1
		mulps	xmm3, xmm1
		movaps	xmm1, xmm0
		maxps	xmm1, xmm3
		minps	xmm0, xmm3
		movaps	xmm3, xmm6
		andps	xmm3, xmm2
		cmpeqps	xmm3, xmm4
		movaps	[ebp+var_18], xmm1
		fld	dword ptr [ebp+var_18+8]
		fld	dword ptr [ebp+var_18]
		movmskps edx, xmm3
		fld	dword ptr [ebp+var_18+4]
		fxch	st(1)
		movaps	[ebp+var_18], xmm0
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_1C]
		fld	dword ptr [ebp+var_18+8]
		movss	xmm1, [ebp+var_1C]
		fld	dword ptr [ebp+var_18]
		shufps	xmm1, xmm1, 0
		fld	dword ptr [ebp+var_18+4]
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		xor	eax, eax
		cmp	edx, 0Fh
		fstp	[ebp+var_1C]
		movss	xmm0, [ebp+var_1C]
		shufps	xmm0, xmm0, 0
		jz	loc_D20A0
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D20A0:				; CODE XREF: IsBoxIntersectingRayNoLowest(float	 {__vector},float  {__vector},float  {__vector}	const&,float  {__vector} const&,float  {__vector} const&,float	{__vector} const&)+D3j
		andnps	xmm6, xmm2
		movaps	xmm2, xmmword ptr ds:Four_Ones
		movaps	xmm3, xmm1
		leave
		cmpltps	xmm3, xmm0
		cmpltps	xmm1, xmm4
		cmpltps	xmm2, xmm0
		orps	xmm2, xmm1
		orps	xmm3, xmm2
		andnps	xmm6, xmm3
		andps	xmm6, xmm7
		cmpeqps	xmm6, xmm4
		movmskps eax, xmm6
		cmp	eax, 0Fh
		setz	al
		retn
_Z28IsBoxIntersectingRayNoLowestU8__vectorfS_RKS_S1_S1_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_DiscardEntityString(void)
_Z22CM_DiscardEntityStringv proc near
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	ds:g_BSPData+0D8h, 0
		mov	dword ptr [esp], (offset g_BSPData+0C4h)
		mov	dword ptr ds:g_BSPData+0D0h, 0
		mov	dword ptr ds:g_BSPData+0D4h, 0
		mov	dword ptr ds:g_BSPData+0E4h, 0
		mov	dword ptr ds:g_BSPData+0E0h, 0
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		leave
		retn
_Z22CM_DiscardEntityStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_RecursiveHullCheckImpl_true_(float, float, int)
_Z25CM_RecursiveHullCheckImplILb1EEvP11TraceInfo_tiffRK6VectorS4_ proc near
					; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+1D0p
					; CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector	const&,Vector  const&)+244p ...

var_7C		= dword	ptr -7Ch
var_78		= xmmword ptr -78h
var_68		= xmmword ptr -68h
var_58		= dword	ptr -58h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, eax
		push	esi
		push	ebx
		mov	ebx, ecx
		sub	esp, 8Ch
		fld	[ebp+arg_0]
		fld	dword ptr [eax+80h]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		mov	esi, [ebp+arg_8]
		jnb	loc_D21E0
		test	edx, edx
		js	short loc_D21C2
		mov	eax, [eax+104h]
		mov	ecx, [eax]
		mov	[ebp+var_2C], ecx

loc_D2167:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+90j
		mov	ecx, [ebp+var_2C]
		lea	eax, [edx+edx*2]
		lea	edx, [ecx+eax*4]
		mov	eax, [edx]
		movzx	ecx, byte ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		cmp	cl, 2
		ja	short loc_D21F0
		movzx	ecx, cl
		fld	dword ptr [ebx+ecx*4]
		fsub	st, st(1)
		fld	dword ptr [esi+ecx*4]
		fsubrp	st(2), st
		fld	dword ptr [edi+ecx*4+30h]
		fxch	st(1)

loc_D2191:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+F2j
		fcomi	st, st(1)
		jbe	short loc_D21A1
		fxch	st(2)
		fcomi	st, st(1)
		ja	loc_D2388
		fxch	st(2)

loc_D21A1:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+63j
		fld	st(1)
		fchs
		fcomi	st, st(1)
		jbe	loc_D2230
		fcomip	st, st(3)
		jbe	loc_D2240
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edx+8]

loc_D21BE:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+261j
		test	edx, edx
		jns	short loc_D2167

loc_D21C2:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+2Aj
		fld	[ebp+arg_4]
		not	edx
		mov	[esp], edi
		fstp	dword ptr [esp+0Ch]
		fstp	dword ptr [esp+8]
		mov	[esp+4], edx
		call	_Z14CM_TraceToLeafILb1EEvP11TraceInfo_tiff ; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)
		jmp	short loc_D21E2
; ---------------------------------------------------------------------------
		align 10h

loc_D21E0:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+22j
		fstp	st

loc_D21E2:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+ABj
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D21F0:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+4Cj
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [ebx]
		fmul	st, st(3)
		fsub	st, st(4)
		fld	dword ptr [ebx+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fxch	st(3)
		fmul	dword ptr [esi]
		fsubrp	st(4), st
		fxch	st(1)
		fmul	dword ptr [esi+4]
		faddp	st(3), st
		fmul	dword ptr [esi+8]
		faddp	st(2), st
		fldz
		fxch	st(1)
		jmp	loc_D2191
; ---------------------------------------------------------------------------
		align 10h

loc_D2230:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+77j
		fstp	st
		fxch	st(2)
		jmp	short loc_D2242
; ---------------------------------------------------------------------------
		align 10h

loc_D2240:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+7Fj
		fxch	st(2)

loc_D2242:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+104j
		fcomi	st, st(2)
		mov	[ebp+var_2C], edx
		jbe	loc_D23A0
		fsubr	st, st(2)
		mov	[ebp+var_38], 0
		mov	eax, 1
		fdivr	ds:flt_1EBCFC
		fld	st(1)
		fadd	st, st(3)
		fadd	ds:flt_1EBF78
		fmul	st, st(1)
		fstp	[ebp+var_34]
		fxch	st(2)
		fsubrp	st(1), st
		fadd	ds:flt_1F4548
		fmulp	st(1), st
		fstp	[ebp+var_30]

loc_D227F:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+2A7j
					; CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector	const&,Vector  const&)+2C9j
		movss	xmm0, [ebp+var_30]
		xorps	xmm2, xmm2
		mov	ecx, [ebp+var_2C]
		maxss	xmm0, xmm2
		movss	xmm1, ds:dword_1EBDA0
		minss	xmm0, xmm1
		movss	[ebp+var_7C], xmm0
		fld	[ebp+var_7C]
		fld	[ebp+arg_4]
		fsub	st, st(2)
		fld	dword ptr [ebx]
		fld	dword ptr [esi]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+4]
		fld	dword ptr [esi+4]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+8]
		fld	dword ptr [esi+8]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_1C]
		fmul	st(1), st
		fxch	st(1)
		mov	edx, [ecx+eax*4+4]
		mov	ecx, ebx
		movaps	[ebp+var_78], xmm1
		lea	eax, [ebp+var_24]
		movaps	[ebp+var_68], xmm2
		mov	[esp+8], eax	; int
		mov	eax, edi
		fadd	st, st(2)
		fstp	dword ptr [esp+4] ; float
		fxch	st(1)
		fst	dword ptr [esp]	; float
		fxch	st(1)
		fstp	[ebp+var_48]
		fstp	[ebp+var_58]
		call	_Z25CM_RecursiveHullCheckImplILb1EEvP11TraceInfo_tiffRK6VectorS4_ ; CM_RecursiveHullCheckImpl<true>(TraceInfo_t	*,int,float,float,Vector  const&,Vector	 const&)
		movaps	xmm2, [ebp+var_68]
		movss	xmm0, [ebp+var_34]
		movaps	xmm1, [ebp+var_78]
		maxss	xmm0, xmm2
		mov	ecx, [ebp+var_38]
		mov	eax, [ebp+var_2C]
		minss	xmm0, xmm1
		movss	[ebp+var_7C], xmm0
		fld	[ebp+var_7C]
		fld	dword ptr [ebx]
		fld	dword ptr [esi]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+4]
		fld	dword ptr [esi+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+8]
		fld	dword ptr [esi+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_1C]
		fld	[ebp+arg_4]
		mov	edx, [eax+ecx*4+4]
		fstp	dword ptr [esp+4] ; float
		lea	ecx, [ebp+var_24]
		fld	[ebp+var_48]
		mov	eax, edi
		mov	[esp+8], esi	; int
		fmulp	st(1), st
		fld	[ebp+var_58]
		faddp	st(1), st
		fstp	dword ptr [esp]	; float
		call	_Z25CM_RecursiveHullCheckImplILb1EEvP11TraceInfo_tiffRK6VectorS4_ ; CM_RecursiveHullCheckImpl<true>(TraceInfo_t	*,int,float,float,Vector  const&,Vector	 const&)
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D2388:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+69j
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edx+4]
		jmp	loc_D21BE
; ---------------------------------------------------------------------------
		align 10h

loc_D23A0:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+117j
		fxch	st(2)
		fcomi	st, st(2)
		jbe	short loc_D23E0
		fsubr	st(2), st
		fxch	st(2)
		mov	[ebp+var_38], 1
		xor	eax, eax
		fdivr	ds:flt_1EBCFC
		fld	st(2)
		fsub	st, st(2)
		fadd	ds:flt_1F4548
		fmul	st, st(1)
		fstp	[ebp+var_34]
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBF78
		fmulp	st(1), st
		fstp	[ebp+var_30]
		jmp	loc_D227F
; ---------------------------------------------------------------------------
		align 10h

loc_D23E0:				; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+274j
		fstp	st
		fstp	st
		fstp	st
		fldz
		mov	[ebp+var_38], 1
		xor	eax, eax
		fstp	[ebp+var_34]
		fld1
		fstp	[ebp+var_30]
		jmp	loc_D227F
_Z25CM_RecursiveHullCheckImplILb1EEvP11TraceInfo_tiffRK6VectorS4_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CM_RecursiveHullCheckImpl_false_(float, float, int)
_Z25CM_RecursiveHullCheckImplILb0EEvP11TraceInfo_tiffRK6VectorS4_ proc near
					; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+1E0p
					; CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector	 const&,Vector	const&)+254p ...

var_7C		= dword	ptr -7Ch
var_78		= xmmword ptr -78h
var_68		= xmmword ptr -68h
var_58		= dword	ptr -58h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, eax
		push	ebx
		mov	ebx, ecx
		sub	esp, 8Ch
		fld	[ebp+arg_0]
		fld	dword ptr [eax+80h]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		mov	edi, [ebp+arg_8]
		jnb	loc_D24B0
		test	edx, edx
		js	short loc_D2492
		mov	eax, [eax+104h]
		mov	ecx, [eax]
		mov	[ebp+var_2C], ecx

loc_D2437:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+90j
		mov	ecx, [ebp+var_2C]
		lea	eax, [edx+edx*2]
		lea	edx, [ecx+eax*4]
		mov	eax, [edx]
		movzx	ecx, byte ptr [eax+10h]
		fld	dword ptr [eax+0Ch]
		cmp	cl, 2
		ja	short loc_D24C0
		movzx	ecx, cl
		fld	dword ptr [ebx+ecx*4]
		fsub	st, st(1)
		fld	dword ptr [edi+ecx*4]
		fsubrp	st(2), st
		fld	dword ptr [esi+ecx*4+30h]
		fxch	st(1)

loc_D2461:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+10Bj
		fcomi	st, st(1)
		jbe	short loc_D2471
		fxch	st(2)
		fcomi	st, st(1)
		ja	loc_D2668
		fxch	st(2)

loc_D2471:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+63j
		fld	st(1)
		fchs
		fcomi	st, st(1)
		jbe	loc_D2510
		fcomip	st, st(3)
		jbe	loc_D2520
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edx+8]

loc_D248E:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+271j
		test	edx, edx
		jns	short loc_D2437

loc_D2492:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+2Aj
		fld	[ebp+arg_4]
		not	edx
		mov	[esp], esi
		fstp	dword ptr [esp+0Ch]
		fstp	dword ptr [esp+8]
		mov	[esp+4], edx
		call	_Z14CM_TraceToLeafILb0EEvP11TraceInfo_tiff ; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)
		jmp	short loc_D24B2
; ---------------------------------------------------------------------------
		align 10h

loc_D24B0:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+22j
		fstp	st

loc_D24B2:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+ABj
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D24C0:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+4Cj
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [ebx]
		fmul	st, st(3)
		fsub	st, st(4)
		fld	dword ptr [ebx+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [edi]
		fmul	st, st(4)
		fsubrp	st(5), st
		fld	dword ptr [edi+4]
		fmul	st, st(3)
		faddp	st(5), st
		fld	dword ptr [edi+8]
		fmul	st, st(2)
		faddp	st(5), st
		fxch	st(2)
		fmul	dword ptr [esi+34h]
		fabs
		fld	dword ptr [esi+30h]
		fmulp	st(4), st
		fxch	st(3)
		fabs
		faddp	st(3), st
		fld	dword ptr [esi+38h]
		fmulp	st(1), st
		fabs
		faddp	st(2), st
		jmp	loc_D2461
; ---------------------------------------------------------------------------

loc_D2510:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+77j
		fstp	st
		fxch	st(2)
		jmp	short loc_D2522
; ---------------------------------------------------------------------------
		align 10h

loc_D2520:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+7Fj
		fxch	st(2)

loc_D2522:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+114j
		fcomi	st, st(2)
		mov	[ebp+var_2C], edx
		jbe	loc_D2680
		fsubr	st, st(2)
		mov	[ebp+var_38], 0
		mov	eax, 1
		fdivr	ds:flt_1EBCFC
		fld	st(2)
		fadd	st, st(2)
		fadd	ds:flt_1EBF78
		fmul	st, st(1)
		fstp	[ebp+var_34]
		fxch	st(2)
		fsubrp	st(1), st
		fadd	ds:flt_1F4548
		fmulp	st(1), st
		fstp	[ebp+var_30]

loc_D255F:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+2B7j
					; CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector	 const&,Vector	const&)+2D9j
		movss	xmm0, [ebp+var_30]
		xorps	xmm2, xmm2
		mov	ecx, [ebp+var_2C]
		maxss	xmm0, xmm2
		movss	xmm1, ds:dword_1EBDA0
		minss	xmm0, xmm1
		movss	[ebp+var_7C], xmm0
		fld	[ebp+var_7C]
		fld	[ebp+arg_4]
		fsub	st, st(2)
		fld	dword ptr [ebx]
		fld	dword ptr [edi]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+4]
		fld	dword ptr [edi+4]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+8]
		fld	dword ptr [edi+8]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	[ebp+var_1C]
		fmul	st(1), st
		fxch	st(1)
		mov	edx, [ecx+eax*4+4]
		mov	ecx, ebx
		movaps	[ebp+var_78], xmm1
		lea	eax, [ebp+var_24]
		movaps	[ebp+var_68], xmm2
		mov	[esp+8], eax	; int
		mov	eax, esi
		fadd	st, st(2)
		fstp	dword ptr [esp+4] ; float
		fxch	st(1)
		fst	dword ptr [esp]	; float
		fxch	st(1)
		fstp	[ebp+var_48]
		fstp	[ebp+var_58]
		call	_Z25CM_RecursiveHullCheckImplILb0EEvP11TraceInfo_tiffRK6VectorS4_ ; CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)
		movaps	xmm2, [ebp+var_68]
		movss	xmm0, [ebp+var_34]
		movaps	xmm1, [ebp+var_78]
		maxss	xmm0, xmm2
		mov	ecx, [ebp+var_38]
		mov	eax, [ebp+var_2C]
		minss	xmm0, xmm1
		movss	[ebp+var_7C], xmm0
		fld	[ebp+var_7C]
		fld	dword ptr [ebx]
		fld	dword ptr [edi]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_24]
		fld	dword ptr [ebx+4]
		fld	dword ptr [edi+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_20]
		fld	dword ptr [ebx+8]
		fld	dword ptr [edi+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	[ebp+var_1C]
		fld	[ebp+arg_4]
		mov	edx, [eax+ecx*4+4]
		fstp	dword ptr [esp+4] ; float
		lea	ecx, [ebp+var_24]
		fld	[ebp+var_48]
		mov	eax, esi
		mov	[esp+8], edi	; int
		fmulp	st(1), st
		fld	[ebp+var_58]
		faddp	st(1), st
		fstp	dword ptr [esp]	; float
		call	_Z25CM_RecursiveHullCheckImplILb0EEvP11TraceInfo_tiffRK6VectorS4_ ; CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D2668:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+69j
		fstp	st
		fstp	st
		fstp	st
		mov	edx, [edx+4]
		jmp	loc_D248E
; ---------------------------------------------------------------------------
		align 10h

loc_D2680:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+127j
		fxch	st(2)
		fcomi	st, st(2)
		jbe	short loc_D26C0
		fsubr	st(2), st
		fxch	st(2)
		mov	[ebp+var_38], 1
		xor	eax, eax
		fdivr	ds:flt_1EBCFC
		fld	st(2)
		fsub	st, st(2)
		fadd	ds:flt_1F4548
		fmul	st, st(1)
		fstp	[ebp+var_34]
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBF78
		fmulp	st(1), st
		fstp	[ebp+var_30]
		jmp	loc_D255F
; ---------------------------------------------------------------------------
		align 10h

loc_D26C0:				; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+284j
		fstp	st
		fstp	st
		fstp	st
		fldz
		mov	[ebp+var_38], 1
		xor	eax, eax
		fstp	[ebp+var_34]
		fld1
		fstp	[ebp+var_30]
		jmp	loc_D255F
_Z25CM_RecursiveHullCheckImplILb0EEvP11TraceInfo_tiffRK6VectorS4_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_RecursiveHullCheck(TraceInfo_t *, int, float, float)
_Z21CM_RecursiveHullCheckP11TraceInfo_tiff proc	near
					; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+21Dp
					; CM_Stab(TraceInfo_t *,Vector	const&,Vector  const&,int)+149p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], esi
		mov	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_C]
		mov	edx, [ebp+arg_4]
		cmp	byte ptr [eax+100h], 0
		lea	esi, [eax+0Ch]
		mov	[ebp+arg_0], ecx
		mov	ecx, eax
		mov	[ebp+arg_8], esi
		mov	[ebp+arg_4], ebx
		jnz	short loc_D2720
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z25CM_RecursiveHullCheckImplILb0EEvP11TraceInfo_tiffRK6VectorS4_ ; CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)
; ---------------------------------------------------------------------------
		align 10h

loc_D2720:				; CODE XREF: CM_RecursiveHullCheck(TraceInfo_t *,int,float,float)+2Dj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z25CM_RecursiveHullCheckImplILb1EEvP11TraceInfo_tiffRK6VectorS4_ ; CM_RecursiveHullCheckImpl<true>(TraceInfo_t	*,int,float,float,Vector  const&,Vector	 const&)
_Z21CM_RecursiveHullCheckP11TraceInfo_tiff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BeginTrace(void)
_Z10BeginTracev	proc near		; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &):loc_D2AA5p
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+16p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		jmp	short loc_D276B
; ---------------------------------------------------------------------------
		align 10h

loc_D2740:				; CODE XREF: BeginTrace(void)+4Cj
		mov	ebx, [eax]
		sub	ecx, 1
		mov	[esp+0Ch], eax
		mov	[esp+10h], edx
		mov	[esp+8], ecx
		mov	dword ptr [esp], offset	g_TraceInfoPool
		mov	[esp+4], ebx
		call	ThreadInterlockedAssignIf64
		test	al, al
		jnz	loc_D2998
		pause

loc_D276B:				; CODE XREF: BeginTrace(void)+9j
		mov	eax, dword ptr ds:g_TraceInfoPool
		mov	edx, dword ptr ds:g_TraceInfoPool+4
		test	eax, eax
		mov	edi, eax
		mov	ecx, edx
		jnz	short loc_D2740
		mov	dword ptr [esp], 178h
		call	_Znwj		; operator new(uint)
		mov	edx, 128h
		test	al, 1
		mov	ebx, eax
		mov	edi, eax
		mov	dword ptr [eax+128h], 0
		mov	dword ptr [eax+12Ch], 0
		mov	dword ptr [eax+130h], 0
		mov	dword ptr [eax+134h], 0
		mov	dword ptr [eax+138h], 0
		mov	dword ptr [eax+13Ch], 0
		mov	dword ptr [eax+140h], 0
		mov	dword ptr [eax+144h], 0
		mov	dword ptr [eax+148h], 0
		mov	dword ptr [eax+14Ch], 0
		mov	dword ptr [eax+150h], 0
		mov	dword ptr [eax+154h], 0
		mov	dword ptr [eax+158h], 0
		mov	dword ptr [eax+15Ch], 0
		mov	dword ptr [eax+160h], 0
		mov	dword ptr [eax+164h], 0
		mov	dword ptr [eax+168h], 0
		mov	dword ptr [eax+16Ch], 0
		mov	dword ptr [eax+170h], 0
		mov	dword ptr [eax+174h], 0
		jnz	loc_D29B8

loc_D2863:				; CODE XREF: BeginTrace(void)+290j
		test	edi, 2
		jnz	loc_D29A8

loc_D286F:				; CODE XREF: BeginTrace(void)+283j
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jnz	loc_D2980
		and	edx, 1
		jnz	loc_D2978

loc_D288A:				; CODE XREF: BeginTrace(void)+24Bj
					; BeginTrace(void)+25Bj
		mov	dword ptr [ebx+11Ch], 0FFFFFFFFh

loc_D2894:				; CODE XREF: BeginTrace(void)+273j
		mov	eax, dword ptr ds:g_BSPData+0A4h
		lea	edx, [eax+1]
		cmp	[ebx+134h], edx
		jz	loc_D2960
		mov	dword ptr [ebx+120h], 0
		xor	edi, edi
		mov	dword ptr [ebx+124h], 0
		mov	dword ptr [ebx+11Ch], 0FFFFFFFFh

loc_D28C8:				; CODE XREF: BeginTrace(void)+221j
		lea	esi, [edi+edi*4]
		add	eax, 1
		add	edi, 1
		shl	esi, 2
		mov	[esp+4], eax
		lea	edx, [ebx+esi+120h]
		lea	ecx, [edx+8]
		mov	[ebp+var_20], edx
		mov	[esp], ecx
		lea	esi, [ebx+esi+150h]
		mov	[ebp+var_1C], ecx
		call	_ZN10CUtlVectorIj10CUtlMemoryIjiEE8SetCountEi ;	CUtlVector<uint,CUtlMemory<uint,int>>::SetCount(int)
		mov	eax, ds:g_DispCollTreeCount
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIj10CUtlMemoryIjiEE8SetCountEi ;	CUtlVector<uint,CUtlMemory<uint,int>>::SetCount(int)
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_20]
		mov	ecx, [ecx+0Ch]
		mov	eax, [edx+8]
		mov	dword ptr [esp+4], 0 ; c
		shl	ecx, 2
		mov	[esp+8], ecx	; n
		mov	[esp], eax	; s
		call	memset
		mov	edx, [esi+0Ch]
		mov	eax, [esi]
		mov	dword ptr [esp+4], 0 ; c
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; s
		call	memset
		cmp	edi, 2
		jz	short loc_D2960
		mov	eax, dword ptr ds:g_BSPData+0A4h
		jmp	loc_D28C8
; ---------------------------------------------------------------------------
		align 10h

loc_D2960:				; CODE XREF: BeginTrace(void)+172j
					; BeginTrace(void)+21Aj
		mov	[esp], ebx
		call	_Z15PushTraceVisitsP11TraceInfo_t ; PushTraceVisits(TraceInfo_t	*)
		add	esp, 3Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D2978:				; CODE XREF: BeginTrace(void)+154j
					; BeginTrace(void)+261j
		mov	byte ptr [edi],	0
		jmp	loc_D288A
; ---------------------------------------------------------------------------

loc_D2980:				; CODE XREF: BeginTrace(void)+14Bj
		mov	word ptr [edi],	0
		add	edi, 2
		and	edx, 1
		jz	loc_D288A
		jmp	short loc_D2978
; ---------------------------------------------------------------------------
		align 8

loc_D2998:				; CODE XREF: BeginTrace(void)+33j
		mov	ebx, [edi+8]
		mov	[esp], edi	; ptr
		call	free
		jmp	loc_D2894
; ---------------------------------------------------------------------------

loc_D29A8:				; CODE XREF: BeginTrace(void)+139j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_D286F
; ---------------------------------------------------------------------------

loc_D29B8:				; CODE XREF: BeginTrace(void)+12Dj
		mov	byte ptr [eax],	0
		lea	edi, [eax+1]
		mov	dl, 27h
		jmp	loc_D2863
_Z10BeginTracev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_BoxTrace(Ray_t  const&, int, int, bool, CGameTrace	&)
_Z11CM_BoxTraceRK5Ray_tiibR10CGameTrace	proc near
					; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+13Fp
					; CEngineTrace::TraceRay(Ray_t	const&,uint,ITraceFilter *,CGameTrace *)+8Bp

var_48		= dword	ptr -48h
var_41		= byte ptr -41h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		movzx	eax, [ebp+arg_C]
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_40], 0
		mov	esi, [ebp+arg_10]
		mov	[ebp+var_3C], 0
		mov	[ebp+var_41], al
		mov	eax, ds:g_Telemetry+0Ch
		test	eax, eax
		jz	short loc_D2A7C
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aBoxtrace ;	"BoxTrace"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ11CM_BoxTraceRK5Ray_tiibR10CGameTraceE6tm_fmt ; CM_BoxTrace(Ray_t  const&,int,int,bool,CGameTrace &)::tm_fmt
		mov	dword ptr [esp+1Ch], 889h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_5 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx

loc_D2A7C:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+3Bj
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_D2AA5
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_48], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_48], eax
		jz	loc_D2E38

loc_D2AA5:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+BCj
					; CM_BoxTrace(Ray_t  const&,int,int,bool,CGameTrace &)+4B1j
		call	_Z10BeginTracev	; BeginTrace(void)
		mov	[ebp+var_20], eax
		add	eax, 54h
		mov	[esp], eax
		call	_Z13CM_ClearTraceP10CGameTrace ; CM_ClearTrace(CGameTrace *)
		mov	edx, dword ptr ds:g_BSPData+7Ch
		mov	eax, [ebp+var_20]
		test	edx, edx
		mov	dword ptr [eax+104h], offset g_BSPData
		jz	loc_D2CA8
		mov	dword ptr [eax+114h], 0
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+108h], 0
		mov	dword ptr [eax+10Ch], 0
		mov	dword ptr [eax+110h], 0
		mov	[eax+0FCh], edx
		mov	edx, [ebx]
		mov	[eax], edx
		mov	edx, [ebx+4]
		mov	[eax+4], edx
		mov	edx, [ebx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_20]
		fld	dword ptr [ebx+10h]
		fadd	dword ptr [ebx]
		fstp	dword ptr [eax+0Ch]
		fld	dword ptr [ebx+14h]
		fadd	dword ptr [ebx+4]
		fstp	dword ptr [eax+10h]
		fld	dword ptr [ebx+18h]
		fadd	dword ptr [ebx+8]
		fstp	dword ptr [eax+14h]
		fld	dword ptr [ebx+30h]
		fchs
		fstp	dword ptr [eax+18h]
		fld	dword ptr [ebx+34h]
		fchs
		fstp	dword ptr [eax+1Ch]
		fld	dword ptr [ebx+38h]
		fchs
		fstp	dword ptr [eax+20h]
		mov	edx, [ebx+30h]
		fldz
		mov	[eax+24h], edx
		mov	edx, [ebx+34h]
		mov	[eax+28h], edx
		mov	edx, [ebx+38h]
		mov	[eax+2Ch], edx
		mov	edx, [ebx+30h]
		mov	[eax+30h], edx
		mov	edx, [ebx+34h]
		mov	[eax+34h], edx
		mov	edx, [ebx+38h]
		mov	[eax+38h], edx
		mov	edx, [ebx+10h]
		mov	[eax+3Ch], edx
		mov	edx, [ebx+14h]
		mov	[eax+40h], edx
		mov	edx, [ebx+18h]
		mov	[eax+44h], edx
		xor	edx, edx

loc_D2B83:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+1CFj
		fld	dword ptr [ebx+edx+10h]
		fcomi	st, st(1)
		jz	loc_D2DE0
		fdivr	ds:flt_1EBCFC
		fstp	[ebp+edx+var_34]

loc_D2B99:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+41Aj
		add	edx, 4
		cmp	edx, 0Ch
		jnz	short loc_D2B83
		fstp	st
		mov	edx, [ebp+var_34]
		mov	[eax+48h], edx
		mov	edx, [ebp+var_30]
		mov	[eax+4Ch], edx
		mov	edx, [ebp+var_2C]
		mov	[eax+50h], edx
		movzx	edx, byte ptr [ebx+40h]
		mov	[eax+100h], dl
		movzx	edx, byte ptr [ebx+41h]
		mov	[eax+101h], dl
		cmp	byte ptr [ebx+41h], 0
		jz	loc_D2DF0
		mov	edx, [ebp+arg_4]
		mov	dword ptr [esp+0Ch], 3F800000h
		mov	dword ptr [esp+8], 0
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z21CM_RecursiveHullCheckP11TraceInfo_tiff ; CM_RecursiveHullCheck(TraceInfo_t *,int,float,float)

loc_D2BF2:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+42Aj
		cmp	[ebp+var_41], 0
		mov	eax, [ebp+var_20]
		jz	loc_D2CA8
		fld	dword ptr [ebx+20h]
		fadd	dword ptr [ebx]
		fld	dword ptr [ebx+24h]
		fadd	dword ptr [ebx+4]
		fld	dword ptr [ebx+28h]
		fadd	dword ptr [ebx+8]
		fld	dword ptr [eax+80h]
		fld1
		fcomip	st, st(1)
		jz	loc_D2E90
		fld	dword ptr [ebx+10h]
		fmul	st, st(1)
		fadd	st, st(4)
		fstp	dword ptr [eax+60h]
		fld	dword ptr [ebx+14h]
		fmul	st, st(1)
		fadd	st, st(3)
		fstp	dword ptr [eax+64h]
		fmul	dword ptr [ebx+18h]
		fadd	st, st(1)
		fstp	dword ptr [eax+68h]

loc_D2C3C:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+4DAj
		fld	dword ptr [eax+8Ch]
		fldz
		fcomi	st, st(1)
		jz	loc_D2EC0
		fld1
		fcomip	st, st(2)
		jnz	short loc_D2C80
		fstp	dword ptr [eax+80h]
		fxch	st(3)
		fst	dword ptr [eax+60h]
		fxch	st(2)
		fst	dword ptr [eax+64h]
		fxch	st(1)
		mov	byte ptr [eax+8Ah], 1
		mov	byte ptr [eax+8Bh], 1
		fst	dword ptr [eax+68h]
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_D2C82
; ---------------------------------------------------------------------------
		align 10h

loc_D2C80:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+280j
		fstp	st

loc_D2C82:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+2ABj
		fld	dword ptr [ebx+10h]
		fmul	st, st(1)
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [eax+54h]
		fld	dword ptr [ebx+14h]
		fmul	st, st(3)
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [eax+58h]
		fxch	st(1)
		fmul	dword ptr [ebx+18h]
		faddp	st(1), st
		fstp	dword ptr [eax+5Ch]
		lea	esi, [esi+0]

loc_D2CA8:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+FDj
					; CM_BoxTrace(Ray_t  const&,int,int,bool,CGameTrace &)+229j ...
		mov	edx, [eax+54h]
		mov	[esi], edx
		mov	edx, [eax+58h]
		mov	[esi+4], edx
		mov	edx, [eax+5Ch]
		mov	[esi+8], edx
		mov	edx, [eax+60h]
		mov	[esi+0Ch], edx
		mov	edx, [eax+64h]
		mov	[esi+10h], edx
		mov	edx, [eax+68h]
		mov	[esi+14h], edx
		mov	edx, [eax+6Ch]
		mov	[esi+18h], edx
		mov	edx, [eax+70h]
		mov	[esi+1Ch], edx
		mov	edx, [eax+74h]
		mov	[esi+20h], edx
		mov	edx, [eax+78h]
		mov	[esi+24h], edx
		movzx	edx, byte ptr [eax+7Ch]
		mov	[esi+28h], dl
		movzx	edx, byte ptr [eax+7Dh]
		mov	[esi+29h], dl
		movzx	edx, word ptr [eax+7Eh]
		mov	[esi+2Ah], dx
		mov	edx, [eax+80h]
		mov	[esi+2Ch], edx
		mov	edx, [eax+84h]
		mov	[esi+30h], edx
		movzx	edx, word ptr [eax+88h]
		mov	[esi+34h], dx
		movzx	edx, byte ptr [eax+8Ah]
		mov	[esi+36h], dl
		movzx	edx, byte ptr [eax+8Bh]
		mov	[esi+37h], dl
		mov	edx, [eax+8Ch]
		mov	[esi+38h], edx
		mov	ecx, [eax+90h]
		mov	ebx, [eax+94h]
		mov	[esi+3Ch], ecx
		mov	[esi+40h], ebx
		mov	edx, [eax+98h]
		mov	[esi+44h], edx
		movzx	edx, word ptr [eax+9Ch]
		mov	[esi+48h], dx
		mov	edx, [eax+0A0h]
		mov	[esi+4Ch], edx
		mov	eax, [eax+0A4h]
		mov	[esi+50h], eax
		lea	eax, [ebp+var_20]
		mov	[esp], eax
		call	_Z8EndTraceRP11TraceInfo_t ; EndTrace(TraceInfo_t *&)
		cmp	[ebp+var_19], 0
		jz	short loc_D2D9E
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_D2D8F
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		jz	short loc_D2D9E

loc_D2D8F:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+3B3j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_D2E00

loc_D2D9E:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+3AAj
					; CM_BoxTrace(Ray_t  const&,int,int,bool,CGameTrace &)+3BDj ...
		test	edi, edi
		jz	short loc_D2DCE
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_D2DCE:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+3D0j
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D2DE0:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+1B9j
		fstp	st
		mov	[ebp+edx+var_34], 7F7FFFFFh
		jmp	loc_D2B99
; ---------------------------------------------------------------------------
		align 10h

loc_D2DF0:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+1FDj
		mov	ecx, [ebp+arg_4]
		mov	edx, ebx
		call	_ZL18CM_UnsweptBoxTraceP11TraceInfo_tRK5Ray_tii_isra_62
		jmp	loc_D2BF2
; ---------------------------------------------------------------------------
		align 10h

loc_D2E00:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+3CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_D2EB0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D2E22:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+4E5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_D2D9E
; ---------------------------------------------------------------------------
		align 8

loc_D2E38:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+CFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aBoxtrace ; "BoxTrace"
		jz	short loc_D2E72
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aBoxtrace ; "BoxTrace"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D2E72:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+473j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_D2AA5
; ---------------------------------------------------------------------------
		align 10h

loc_D2E90:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+24Aj
		fstp	st
		fld	dword ptr [ebx+10h]
		fadd	st, st(3)
		fstp	dword ptr [eax+60h]
		fld	dword ptr [ebx+14h]
		fadd	st, st(2)
		fstp	dword ptr [eax+64h]
		fld	dword ptr [ebx+18h]
		fadd	st, st(1)
		fstp	dword ptr [eax+68h]
		jmp	loc_D2C3C
; ---------------------------------------------------------------------------
		align 10h

loc_D2EB0:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+43Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_D2E22
; ---------------------------------------------------------------------------
		align 10h

loc_D2EC0:				; CODE XREF: CM_BoxTrace(Ray_t	const&,int,int,bool,CGameTrace &)+276j
		fstp	st
		fstp	st
		fxch	st(2)
		fstp	dword ptr [eax+54h]
		fstp	dword ptr [eax+58h]
		fstp	dword ptr [eax+5Ch]
		jmp	loc_D2CA8
_Z11CM_BoxTraceRK5Ray_tiibR10CGameTrace	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_D2EE1:				; CODE XREF: .text:000D2F1Bj
		test	edi, edi
		jz	short loc_D2F11
		mov	eax, [ebp-40h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-3Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_D2F11:				; CODE XREF: .text:000D2EE3j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D2EE1
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_TransformedBoxTrace(Ray_t	const&,	int, int, Vector  const&, QAngle  const&, CGameTrace &)
_Z22CM_TransformedBoxTraceRK5Ray_tiiRK6VectorRK6QAngleR10CGameTrace proc near
					; CODE XREF: CEngineTrace::ClipRayToBSP(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+5Ap

var_C8		= dword	ptr -0C8h
var_B0		= dword	ptr -0B0h
var_A9		= byte ptr -0A9h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_68		= byte ptr -68h
var_67		= byte ptr -67h
var_54		= byte ptr -54h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0DCh
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+arg_C]
		mov	esi, [ebp+arg_14]
		mov	edx, [ebx+30h]
		fld	dword ptr [ebx+20h]
		fst	[ebp+var_88]
		fld	dword ptr [ebx+24h]
		mov	[ebp+var_78], edx
		mov	edx, [ebx+34h]
		fst	[ebp+var_84]
		fld	dword ptr [ebx+28h]
		fst	[ebp+var_80]
		mov	[ebp+var_74], edx
		mov	edx, [ebx+38h]
		fld	dword ptr [eax]
		fldz
		fcomi	st, st(1)
		fstp	st(1)
		mov	[ebp+var_70], edx
		jz	loc_D3130
		fstp	st
		fxch	st(2)
		jmp	short loc_D2F98
; ---------------------------------------------------------------------------
		align 10h

loc_D2F80:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+215j
		fstp	st
		fxch	st(2)
		jmp	short loc_D2F98
; ---------------------------------------------------------------------------
		align 10h

loc_D2F90:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+222j
		fxch	st(2)
		lea	esi, [esi+0]

loc_D2F98:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+54j
					; CM_TransformedBoxTrace(Ray_t	const&,int,int,Vector  const&,QAngle  const&,CGameTrace	&)+64j
		fadd	dword ptr [ebx]
		lea	edx, [ebp+var_54]
		lea	edi, [ebp+var_A8]
		fstp	[ebp+var_24]
		fadd	dword ptr [ebx+4]
		fstp	[ebp+var_20]
		fadd	dword ptr [ebx+8]
		mov	[esp+4], ecx
		mov	[esp+8], edx
		mov	[esp], eax
		mov	[ebp+var_B0], edx
		fstp	[ebp+var_1C]
		call	_Z11AngleMatrixRK6QAngleRK6VectorR11matrix3x4_t	; AngleMatrix(QAngle  const&,Vector  const&,matrix3x4_t	&)
		mov	edx, [ebp+var_B0]
		lea	eax, [ebp+var_98]
		mov	[esp+8], eax
		lea	eax, [ebx+10h]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z13VectorIRotatePKfRK11matrix3x4_tPf ;	VectorIRotate(float  const*,matrix3x4_t	 const&,float *)
		mov	edx, [ebp+var_B0]
		lea	eax, [ebp+var_24]
		mov	[esp+8], edi
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z16VectorITransformPKfRK11matrix3x4_tPf ; VectorITransform(float  const*,matrix3x4_t  const&,float *)
		mov	[ebp+var_A9], 1
		fld	[ebp+var_A8]
		fsub	dword ptr [ebx+20h]
		fstp	[ebp+var_A8]
		fld	[ebp+var_A4]
		fsub	dword ptr [ebx+24h]
		fstp	[ebp+var_A4]
		fld	[ebp+var_A0]
		fsub	dword ptr [ebx+28h]
		fstp	[ebp+var_A0]

loc_D3034:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+278j
		movzx	eax, byte ptr [ebx+40h]
		mov	[ebp+var_68], al
		movzx	eax, byte ptr [ebx+41h]
		mov	[esp+10h], esi
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[ebp+var_67], al
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		call	_Z11CM_BoxTraceRK5Ray_tiibR10CGameTrace	; CM_BoxTrace(Ray_t  const&,int,int,bool,CGameTrace &)
		fld	dword ptr [esi+2Ch]
		fld1
		fcomi	st, st(1)
		jz	loc_D3248
		cmp	[ebp+var_A9], 0
		jnz	loc_D31A0
		fstp	st
		fld	dword ptr [ebx]
		fadd	dword ptr [ebx+20h]
		fld	dword ptr [ebx+24h]
		fadd	dword ptr [ebx+4]
		fld	dword ptr [ebx+28h]
		fadd	dword ptr [ebx+8]
		jmp	short loc_D309E
; ---------------------------------------------------------------------------
		align 8

loc_D3098:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+2CFj
		fxch	st(3)
		fxch	st(2)
		fxch	st(1)

loc_D309E:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+171j
		fld	dword ptr [ebx+10h]
		fmul	st, st(4)
		fadd	st, st(3)
		fstp	dword ptr [esi+0Ch]
		fld	dword ptr [ebx+14h]
		fmul	st, st(4)
		fadd	st, st(2)
		fstp	dword ptr [esi+10h]
		fxch	st(3)
		fmul	dword ptr [ebx+18h]
		fadd	st, st(3)
		fstp	dword ptr [esi+14h]
		fld	dword ptr [esi+38h]
		fldz
		fcomi	st, st(1)
		jnz	short loc_D30D8
		jmp	loc_D3228
; ---------------------------------------------------------------------------
		align 10h

loc_D30D0:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+2F6j
		fxch	st(2)
		fxch	st(4)
		fxch	st(3)
		fxch	st(2)

loc_D30D8:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+1A3j
		fld1
		fcomip	st, st(2)
		jnz	short loc_D3100
		fstp	dword ptr [esi+2Ch]
		fxch	st(2)
		fst	dword ptr [esi+0Ch]
		fxch	st(1)
		fst	dword ptr [esi+10h]
		fxch	st(3)
		mov	byte ptr [esi+36h], 1
		mov	byte ptr [esi+37h], 1
		fst	dword ptr [esi+14h]
		fxch	st(3)
		fxch	st(1)
		fxch	st(2)
		jmp	short loc_D3102
; ---------------------------------------------------------------------------

loc_D3100:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+1BCj
		fstp	st

loc_D3102:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+1DEj
		fld	dword ptr [ebx+10h]
		fmul	st, st(1)
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [esi]
		fld	dword ptr [ebx+14h]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [esi+4]
		fmul	dword ptr [ebx+18h]
		faddp	st(1), st
		fstp	dword ptr [esi+8]
		add	esp, 0DCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D3130:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+4Aj
		fld	dword ptr [eax+4]
		fcomip	st, st(1)
		jnz	loc_D2F80
		fld	dword ptr [eax+8]
		fcomip	st, st(1)
		fstp	st
		jnz	loc_D2F90
		fstp	st
		fstp	st
		fstp	st
		fld	dword ptr [ebx]
		mov	[ebp+var_A9], 0
		lea	edi, [ebp+var_A8]
		fsub	dword ptr [ecx]
		mov	eax, [ebx+10h]
		fstp	[ebp+var_A8]
		fld	dword ptr [ebx+4]
		mov	[ebp+var_98], eax
		fsub	dword ptr [ecx+4]
		mov	eax, [ebx+14h]
		fstp	[ebp+var_A4]
		fld	dword ptr [ebx+8]
		mov	[ebp+var_94], eax
		fsub	dword ptr [ecx+8]
		mov	eax, [ebx+18h]
		fstp	[ebp+var_A0]
		mov	[ebp+var_90], eax
		jmp	loc_D3034
; ---------------------------------------------------------------------------
		align 10h

loc_D31A0:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+158j
		fstp	st(1)
		mov	eax, [esi+18h]
		mov	[ebp+var_24], eax
		mov	eax, [esi+1Ch]
		mov	[ebp+var_20], eax
		mov	eax, [esi+20h]
		fstp	[ebp+var_C8]
		mov	[ebp+var_1C], eax
		lea	eax, [esi+18h]
		mov	[esp+8], eax
		lea	eax, [ebp+var_54]
		mov	[esp+4], eax
		lea	eax, [ebp+var_24]
		mov	[esp], eax
		call	_Z12VectorRotatePKfRK11matrix3x4_tPf ; VectorRotate(float  const*,matrix3x4_t  const&,float *)
		fld	dword ptr [ebx+20h]
		fadd	dword ptr [ebx]
		fld	dword ptr [ebx+24h]
		fadd	dword ptr [ebx+4]
		fld	dword ptr [ebx+28h]
		fadd	dword ptr [ebx+8]
		fld	dword ptr [esi+2Ch]
		fld	[ebp+var_C8]
		fcomip	st, st(1)
		jnz	loc_D3098
		fstp	st

loc_D31F7:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+33Dj
		fld	dword ptr [ebx+10h]
		fadd	st, st(3)
		fstp	dword ptr [esi+0Ch]
		fld	dword ptr [ebx+14h]
		fadd	st, st(2)
		fstp	dword ptr [esi+10h]
		fld	dword ptr [ebx+18h]
		fadd	st, st(1)
		fstp	dword ptr [esi+14h]
		fld	dword ptr [esi+38h]
		fldz
		fcomi	st, st(1)
		jnz	loc_D30D0
		fstp	st
		fstp	st
		fxch	st(2)
		jmp	short loc_D322E
; ---------------------------------------------------------------------------
		align 8

loc_D3228:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+1A5j
		fstp	st
		fstp	st
		fxch	st(1)

loc_D322E:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+302j
		fstp	dword ptr [esi]
		fstp	dword ptr [esi+4]
		fstp	dword ptr [esi+8]
		add	esp, 0DCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D3248:				; CODE XREF: CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle	 const&,CGameTrace &)+14Bj
		fstp	st
		fstp	st
		fld	dword ptr [ebx]
		fadd	dword ptr [ebx+20h]
		fld	dword ptr [ebx+24h]
		fadd	dword ptr [ebx+4]
		fld	dword ptr [ebx+8]
		fadd	dword ptr [ebx+28h]
		jmp	short loc_D31F7
_Z22CM_TransformedBoxTraceRK5Ray_tiiRK6VectorRK6QAngleR10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_BoxTraceAgainstLeafList(Ray_t  const&, int	*, int,	int, bool, CGameTrace &)
_Z26CM_BoxTraceAgainstLeafListRK5Ray_tPiiibR10CGameTrace proc near
					; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+76p

var_40		= dword	ptr -40h
var_39		= byte ptr -39h
var_38		= dword	ptr -38h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		movzx	ecx, [ebp+arg_10]
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_39], cl
		call	_Z10BeginTracev	; BeginTrace(void)
		mov	[ebp+var_1C], eax
		add	eax, 54h
		mov	[esp], eax
		call	_Z13CM_ClearTraceP10CGameTrace ; CM_ClearTrace(CGameTrace *)
		mov	esi, dword ptr ds:g_BSPData+7Ch
		mov	eax, [ebp+var_1C]
		test	esi, esi
		mov	dword ptr [eax+104h], offset g_BSPData
		jz	loc_D34C8
		mov	dword ptr [eax+114h], 0
		mov	edx, [ebp+arg_C]
		mov	dword ptr [eax+108h], 0
		mov	dword ptr [eax+10Ch], 0
		mov	dword ptr [eax+110h], 0
		mov	[eax+0FCh], edx
		mov	edx, [ebx]
		mov	[eax], edx
		mov	edx, [ebx+4]
		mov	[eax+4], edx
		mov	edx, [ebx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_1C]
		fld	dword ptr [ebx+10h]
		fadd	dword ptr [ebx]
		mov	edx, eax
		fstp	dword ptr [eax+0Ch]
		fld	dword ptr [ebx+14h]
		fadd	dword ptr [ebx+4]
		fstp	dword ptr [eax+10h]
		fld	dword ptr [ebx+18h]
		fadd	dword ptr [ebx+8]
		fstp	dword ptr [eax+14h]
		fld	dword ptr [ebx+30h]
		fchs
		fstp	dword ptr [eax+18h]
		fld	dword ptr [ebx+34h]
		fchs
		fstp	dword ptr [eax+1Ch]
		fld	dword ptr [ebx+38h]
		fchs
		fstp	dword ptr [eax+20h]
		mov	ecx, [ebx+30h]
		fldz
		mov	[eax+24h], ecx
		mov	ecx, [ebx+34h]
		mov	[eax+28h], ecx
		mov	ecx, [ebx+38h]
		mov	[eax+2Ch], ecx
		mov	ecx, [ebx+30h]
		mov	[eax+30h], ecx
		mov	ecx, [ebx+34h]
		mov	[eax+34h], ecx
		mov	ecx, [ebx+38h]
		mov	[eax+38h], ecx
		mov	ecx, [ebx+10h]
		mov	[eax+3Ch], ecx
		mov	ecx, [ebx+14h]
		mov	[eax+40h], ecx
		mov	ecx, [ebx+18h]
		mov	[eax+44h], ecx
		xor	ecx, ecx

loc_D3356:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+112j
		fld	dword ptr [ebx+ecx+10h]
		fcomi	st, st(1)
		jz	loc_D35B0
		fdivr	ds:flt_1EBCFC
		fstp	[ebp+ecx+var_28]

loc_D336C:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+35Aj
		add	ecx, 4
		cmp	ecx, 0Ch
		jnz	short loc_D3356
		fstp	st
		mov	ecx, [ebp+var_28]
		mov	[eax+48h], ecx
		mov	ecx, [ebp+var_24]
		mov	[eax+4Ch], ecx
		mov	ecx, [ebp+var_20]
		mov	[eax+50h], ecx
		movzx	ecx, byte ptr [ebx+40h]
		mov	[eax+100h], cl
		movzx	esi, byte ptr [ebx+41h]
		mov	byte ptr [ebp+var_38], cl
		mov	ecx, esi
		mov	[eax+101h], cl
		cmp	byte ptr [ebx+41h], 0
		jz	loc_D35C0
		mov	ecx, [ebp+arg_8]
		xor	esi, esi
		test	ecx, ecx
		jle	short loc_D340E
		movzx	ecx, byte ptr [ebp+var_38]
		mov	[ebp+var_38], ebx
		mov	ebx, edi
		mov	edi, [ebp+arg_8]
		jmp	short loc_D33DE
; ---------------------------------------------------------------------------
		align 8

loc_D33C8:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+19Aj
		call	_Z14CM_TraceToLeafILb1EEvP11TraceInfo_tiff ; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)
		add	esi, 1
		cmp	esi, edi
		jz	short loc_D3408

loc_D33D4:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+1A6j
		mov	edx, [ebp+var_1C]
		movzx	ecx, byte ptr [edx+100h]

loc_D33DE:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+160j
		mov	dword ptr [esp+0Ch], 3F800000h
		test	cl, cl
		mov	dword ptr [esp+8], 3F800000h
		mov	eax, [ebx+esi*4]
		mov	[esp], edx
		mov	[esp+4], eax
		jnz	short loc_D33C8
		call	_Z14CM_TraceToLeafILb0EEvP11TraceInfo_tiff ; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)
		add	esi, 1
		cmp	esi, edi
		jnz	short loc_D33D4

loc_D3408:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+172j
		mov	ebx, [ebp+var_38]
		mov	eax, [ebp+var_1C]

loc_D340E:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+152j
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+3BEj ...
		cmp	[ebp+var_39], 0
		jz	loc_D34C8
		fld	dword ptr [ebx+20h]
		fadd	dword ptr [ebx]
		fld	dword ptr [ebx+24h]
		fadd	dword ptr [ebx+4]
		fld	dword ptr [ebx+28h]
		fadd	dword ptr [ebx+8]
		fld	dword ptr [eax+80h]
		fld1
		fcomip	st, st(1)
		jz	loc_D3650
		fld	dword ptr [ebx+10h]
		fmul	st, st(1)
		fadd	st, st(4)
		fstp	dword ptr [eax+60h]
		fld	dword ptr [ebx+14h]
		fmul	st, st(1)
		fadd	st, st(3)
		fstp	dword ptr [eax+64h]
		fmul	dword ptr [ebx+18h]
		fadd	st, st(1)
		fstp	dword ptr [eax+68h]

loc_D3455:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+40Aj
		fld	dword ptr [eax+8Ch]
		fldz
		fcomi	st, st(1)
		jz	loc_D3670
		fld1
		fcomip	st, st(2)
		jnz	short loc_D34A0
		fstp	dword ptr [eax+80h]
		fxch	st(3)
		fst	dword ptr [eax+60h]
		fxch	st(2)
		fst	dword ptr [eax+64h]
		fxch	st(1)
		mov	byte ptr [eax+8Ah], 1
		mov	byte ptr [eax+8Bh], 1
		fst	dword ptr [eax+68h]
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_D34A2
; ---------------------------------------------------------------------------
		align 10h

loc_D34A0:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+209j
		fstp	st

loc_D34A2:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+234j
		fld	dword ptr [ebx+10h]
		fmul	st, st(1)
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [eax+54h]
		fld	dword ptr [ebx+14h]
		fmul	st, st(3)
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [eax+58h]
		fxch	st(1)
		fmul	dword ptr [ebx+18h]
		faddp	st(1), st
		fstp	dword ptr [eax+5Ch]
		lea	esi, [esi+0]

loc_D34C8:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+3Ej
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+1B2j ...
		mov	ebx, [ebp+arg_14]
		mov	edx, [eax+54h]
		mov	[ebx], edx
		mov	edx, [eax+58h]
		mov	[ebx+4], edx
		mov	edx, [eax+5Ch]
		mov	[ebx+8], edx
		mov	edx, [eax+60h]
		mov	[ebx+0Ch], edx
		mov	edx, [eax+64h]
		mov	[ebx+10h], edx
		mov	edx, [eax+68h]
		mov	[ebx+14h], edx
		mov	edx, [eax+6Ch]
		mov	[ebx+18h], edx
		mov	edx, [eax+70h]
		mov	[ebx+1Ch], edx
		mov	edx, [eax+74h]
		mov	[ebx+20h], edx
		mov	edx, [eax+78h]
		mov	[ebx+24h], edx
		movzx	edx, byte ptr [eax+7Ch]
		mov	[ebx+28h], dl
		movzx	edx, byte ptr [eax+7Dh]
		mov	[ebx+29h], dl
		movzx	edx, word ptr [eax+7Eh]
		mov	[ebx+2Ah], dx
		mov	edx, [eax+80h]
		mov	[ebx+2Ch], edx
		mov	edx, [eax+84h]
		mov	[ebx+30h], edx
		movzx	edx, word ptr [eax+88h]
		mov	[ebx+34h], dx
		movzx	edx, byte ptr [eax+8Ah]
		mov	[ebx+36h], dl
		movzx	edx, byte ptr [eax+8Bh]
		mov	[ebx+37h], dl
		mov	edx, [eax+8Ch]
		mov	[ebx+38h], edx
		mov	edx, [ebp+arg_14]
		mov	ecx, [eax+90h]
		mov	ebx, [eax+94h]
		mov	[edx+3Ch], ecx
		mov	ecx, [ebp+arg_14]
		mov	[edx+40h], ebx
		mov	edx, [eax+98h]
		mov	[ecx+44h], edx
		movzx	edx, word ptr [eax+9Ch]
		mov	[ecx+48h], dx
		mov	edx, [eax+0A0h]
		mov	[ecx+4Ch], edx
		mov	eax, [eax+0A4h]
		mov	[ecx+50h], eax
		lea	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z8EndTraceRP11TraceInfo_t ; EndTrace(TraceInfo_t *&)
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D35B0:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+FCj
		fstp	st
		mov	[ebp+ecx+var_28], 7F7FFFFFh
		jmp	loc_D336C
; ---------------------------------------------------------------------------
		align 10h

loc_D35C0:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+145j
		mov	esi, [ebp+arg_8]
		test	esi, esi
		jle	short loc_D3624
		xor	esi, esi
		mov	byte ptr [ebp+var_38], 0
		mov	[ebp+var_40], ebx
		jmp	short loc_D35E0
; ---------------------------------------------------------------------------
		align 8

loc_D35D8:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+3B5j
		add	esi, 1
		cmp	esi, [ebp+arg_8]
		jz	short loc_D3617

loc_D35E0:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+370j
		mov	edx, [edi+esi*4]
		mov	ebx, [eax+104h]
		mov	ecx, edx
		shl	ecx, 4
		add	ecx, [ebx+88h]
		mov	ebx, 1
		test	byte ptr [ecx],	1
		movzx	ecx, byte ptr [ebp+var_38]
		cmovnz	ebx, ecx
		mov	byte ptr [ebp+var_38], bl
		call	_ZL13CM_TestInLeafP11TraceInfo_ti ; CM_TestInLeaf(TraceInfo_t *,int)
		mov	eax, [ebp+var_1C]
		cmp	byte ptr [eax+8Ah], 0
		jz	short loc_D35D8

loc_D3617:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+37Ej
		cmp	byte ptr [ebp+var_38], 0
		mov	ebx, [ebp+var_40]
		jnz	loc_D340E

loc_D3624:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+365j
		mov	byte ptr [eax+8Bh], 1
		mov	byte ptr [eax+8Ah], 1
		mov	dword ptr [eax+80h], 0
		mov	dword ptr [eax+8Ch], 3F800000h
		jmp	loc_D340E
; ---------------------------------------------------------------------------
		align 10h

loc_D3650:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+1D3j
		fstp	st
		fld	dword ptr [ebx+10h]
		fadd	st, st(3)
		fstp	dword ptr [eax+60h]
		fld	dword ptr [ebx+14h]
		fadd	st, st(2)
		fstp	dword ptr [eax+64h]
		fld	dword ptr [ebx+18h]
		fadd	st, st(1)
		fstp	dword ptr [eax+68h]
		jmp	loc_D3455
; ---------------------------------------------------------------------------
		align 10h

loc_D3670:				; CODE XREF: CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+1FFj
		fstp	st
		fstp	st
		fxch	st(2)
		fstp	dword ptr [eax+54h]
		fstp	dword ptr [eax+58h]
		fstp	dword ptr [eax+5Ch]
		jmp	loc_D34C8
_Z26CM_BoxTraceAgainstLeafListRK5Ray_tPiiibR10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CTraceInfoPool::~CTraceInfoPool()
_ZN14CTraceInfoPoolD2Ev	proc near	; DATA XREF: _GLOBAL__sub_I_g_BSPData+C4o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		lea	esi, [esi+0]

loc_D36A0:				; CODE XREF: CTraceInfoPool::~CTraceInfoPool()+40j
		pause
		mov	edx, [esi]
		mov	eax, [esi+4]
		test	edx, edx
		mov	ebx, edx
		mov	ecx, eax
		jz	short loc_D36F5
		xor	cx, cx
		mov	[esp+0Ch], edx
		mov	[esp+10h], eax
		mov	dword ptr [esp+4], 0
		mov	[esp+8], ecx
		mov	[esp], esi
		call	ThreadInterlockedAssignIf64
		test	al, al
		jz	short loc_D36A0
		mov	edi, [ebx]
		mov	[esp], ebx	; ptr
		call	free
		test	edi, edi
		jz	short loc_D36F0

loc_D36E0:				; CODE XREF: CTraceInfoPool::~CTraceInfoPool()+5Ej
		mov	ebx, edi
		mov	edi, [ebx]
		mov	[esp], ebx	; ptr
		call	free
		test	edi, edi
		jnz	short loc_D36E0

loc_D36F0:				; CODE XREF: CTraceInfoPool::~CTraceInfoPool()+4Ej
					; CTraceInfoPool::~CTraceInfoPool()+8Ej
		mov	edx, [esi]
		mov	eax, [esi+4]

loc_D36F5:				; CODE XREF: CTraceInfoPool::~CTraceInfoPool()+1Dj
		pause
		test	edx, edx
		mov	ebx, eax
		jz	short loc_D3720
		xor	bx, bx
		mov	[esp+0Ch], edx
		mov	[esp+10h], eax
		mov	dword ptr [esp+4], 0
		mov	[esp+8], ebx
		mov	[esp], esi
		call	ThreadInterlockedAssignIf64
		test	al, al
		jz	short loc_D36F0

loc_D3720:				; CODE XREF: CTraceInfoPool::~CTraceInfoPool()+6Bj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN14CTraceInfoPoolD2Ev	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_D372A:				; CODE XREF: .text:000D3758j
		pause
		mov	edx, [esi]
		mov	eax, [esi+4]
		test	edx, edx
		mov	ecx, eax
		jz	short loc_D375A
		xor	cx, cx
		mov	[esp+0Ch], edx
		mov	[esp+10h], eax
		mov	dword ptr [esp+4], 0
		mov	[esp+8], ecx
		mov	[esp], esi
		call	ThreadInterlockedAssignIf64
		test	al, al
		jz	short loc_D372A

loc_D375A:				; CODE XREF: .text:000D3735j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCollisionBSPData::~CCollisionBSPData()
_ZN17CCollisionBSPDataD2Ev proc	near	; DATA XREF: _GLOBAL__sub_I_g_BSPData+A8o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	[ebp+arg_0], 0C4h
		pop	ebp
		jmp	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
_ZN17CCollisionBSPDataD2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void CM_ClipBoxToBrush<true>(TraceInfo_t *, cbrush_t	const*)
_Z17CM_ClipBoxToBrushILb1EEvP11TraceInfo_tPK8cbrush_t proc near
					; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+213p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		movzx	ecx, word ptr [eax+4]
		cmp	cx, 0FFFFh
		jz	loc_D3A40
		test	cx, cx
		jz	loc_D3970
		mov	ebx, [eax]
		movzx	ecx, cx
		movzx	eax, word ptr [eax+6]
		mov	[ebp+var_24], ebx
		mov	ebx, [edx+104h]
		mov	esi, [ebx+68h]
		mov	[ebp+var_20], ebx
		lea	eax, [esi+eax*8]
		lea	ebx, [eax+ecx*8]
		cmp	eax, ebx
		jnb	loc_D3A68
		fld1
		xor	edi, edi
		xor	esi, esi
		mov	[ebp+var_19], 0
		fld	ds:flt_1EBD94
		jmp	short loc_D382B
; ---------------------------------------------------------------------------
		align 10h

loc_D37E0:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+109j
		fld	ds:flt_1EBF78
		fsubr	st, st(1)
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fxch	st(1)
		fsubrp	st(2), st
		fdivrp	st(1), st
		fcomi	st, st(1)
		jbe	short loc_D3808
		fstp	st(1)
		mov	edi, eax
		jmp	short loc_D3820
; ---------------------------------------------------------------------------
		align 8

loc_D3808:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+7Aj
		fstp	st
		jmp	short loc_D3820
; ---------------------------------------------------------------------------
		align 10h

loc_D3810:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+B5j
		fstp	st
		jmp	short loc_D3820
; ---------------------------------------------------------------------------
		align 8

loc_D3818:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+204j
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_D3820:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+80j
					; CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+8Aj ...
		add	eax, 8
		cmp	ebx, eax
		jbe	loc_D38B0

loc_D382B:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+5Cj
					; CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+12Aj
		mov	ecx, [eax]
		cmp	word ptr [eax+6], 0
		fld	dword ptr [ecx+0Ch]
		jnz	short loc_D3810
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		fld	dword ptr [edx+4]
		fmul	st, st(2)
		fld	dword ptr [edx]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fsub	st, st(4)
		fxch	st(2)
		fmul	dword ptr [edx+10h]
		fxch	st(3)
		fmul	dword ptr [edx+0Ch]
		faddp	st(3), st
		fmul	dword ptr [edx+14h]
		faddp	st(2), st
		fxch	st(1)
		fsubrp	st(2), st
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		jbe	loc_D3980
		fxch	st(2)
		fcomi	st, st(1)
		fstp	st(1)
		ja	loc_D3940
		fxch	st(1)
		mov	esi, 1

loc_D3887:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+20Ej
		fcomi	st, st(1)
		ja	loc_D37E0
		fld	ds:dbl_1F4560
		fadd	st, st(1)
		fxch	st(1)
		fsubrp	st(2), st
		fdivrp	st(1), st
		fxch	st(2)
		fcomi	st, st(2)
		fcmovnbe st, st(2)
		fstp	st(2)
		add	eax, 8
		cmp	ebx, eax
		ja	loc_D382B

loc_D38B0:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+A5j
		mov	eax, esi
		test	al, al
		jz	short loc_D38D0
		fld	dword ptr [edx+8Ch]
		fsub	st, st(1)
		fldz
		fxch	st(1)
		fcomip	st, st(1)
		jbe	loc_D3993
		fstp	st
		fstp	st
		jmp	short loc_D38D2
; ---------------------------------------------------------------------------

loc_D38D0:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+134j
		fstp	st

loc_D38D2:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+14Ej
		mov	ecx, [ebp+var_24]
		mov	byte ptr [edx+8Bh], 1
		cmp	[ebp+var_19], 0
		mov	[edx+84h], ecx
		jz	loc_D3A7A
		fld1
		fcomi	st, st(1)
		jz	short loc_D394A
		fld	dword ptr [edx+8Ch]
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jbe	short loc_D3950
		fxch	st(1)
		fst	dword ptr [edx+8Ch]
		fld	dword ptr [edx+80h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_D3956
		mov	ecx, _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		fstp	dword ptr [edx+80h]
		mov	ebx, _ZN17CCollisionBSPData11nullsurfaceE+4
		mov	[edx+90h], ecx
		mov	[edx+94h], ebx
		jmp	short loc_D3970
; ---------------------------------------------------------------------------
		align 10h

loc_D3940:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+FAj
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_D3970
; ---------------------------------------------------------------------------

loc_D394A:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+170j
		fstp	st
		fstp	st
		jmp	short loc_D3970
; ---------------------------------------------------------------------------

loc_D3950:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+17Ej
		fstp	st
		fstp	st
		jmp	short loc_D3970
; ---------------------------------------------------------------------------

loc_D3956:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+194j
		fstp	st
		jmp	short loc_D3970
; ---------------------------------------------------------------------------

loc_D395A:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+217j
		fstp	st
		fstp	st
		jmp	short loc_D3970
; ---------------------------------------------------------------------------

loc_D3960:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+225j
		fstp	st
		fstp	st
		jmp	short loc_D3970
; ---------------------------------------------------------------------------

loc_D3966:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+22Fj
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_D3970:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+20j
					; CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+1B4j	...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D3980:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+EEj
		fxch	st(1)
		fcomip	st, st(2)
		jnb	loc_D3818
		mov	[ebp+var_19], 1
		jmp	loc_D3887
; ---------------------------------------------------------------------------

loc_D3993:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+144j
		fxch	st(2)
		fcomip	st, st(1)
		jbe	short loc_D395A
		fld	ds:flt_1EBD94
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_D3960
		fld	dword ptr [edx+80h]
		fcomip	st, st(1)
		jbe	short loc_D3966
		fcomi	st, st(1)
		fxch	st(1)
		fstp	[ebp+var_28]
		mov	eax, [ebp+var_28]
		fstp	[ebp+var_28]
		mov	ebx, [ebp+var_28]
		mov	dword ptr [edx+114h], 0
		cmovnb	eax, ebx
		mov	[edx+80h], eax
		mov	eax, [edi]
		mov	ecx, [eax]
		mov	[edx+6Ch], ecx
		mov	ecx, [eax+4]
		mov	[edx+70h], ecx
		mov	ecx, [eax+8]
		mov	[edx+74h], ecx
		mov	ecx, [eax+0Ch]
		mov	[edx+78h], ecx
		movzx	ecx, byte ptr [eax+10h]
		mov	[edx+7Ch], cl
		movzx	ecx, byte ptr [eax+11h]
		mov	[edx+7Dh], cl
		movzx	eax, word ptr [eax+12h]
		mov	[edx+7Eh], ax
		mov	eax, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		movzx	ecx, word ptr [edi+4]
		cmp	cx, 0FFFFh
		jz	short loc_D3A21
		movzx	eax, cx
		mov	ecx, [ebp+var_20]
		shl	eax, 3
		add	eax, [ecx+220h]

loc_D3A21:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+290j
		mov	ebx, [eax+4]
		mov	ecx, [eax]
		mov	[edx+94h], ebx
		mov	ebx, [ebp+var_24]
		mov	[edx+90h], ecx
		mov	[edx+84h], ebx
		jmp	loc_D3970
; ---------------------------------------------------------------------------

loc_D3A40:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+17j
		movzx	ecx, word ptr [eax+6]
		mov	ebx, [edx+104h]
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 4
		add	ecx, [ebx+70h]
		mov	[esp+4], eax
		mov	[esp], edx
		mov	[esp+8], ecx
		call	_Z24IntersectRayWithBoxBrushP11TraceInfo_tPK8cbrush_tP11cboxbrush_t ; IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)
		jmp	loc_D3970
; ---------------------------------------------------------------------------

loc_D3A68:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+46j
		mov	eax, [ebp+var_24]
		mov	byte ptr [edx+8Bh], 1
		mov	[edx+84h], eax
		jmp	short loc_D3A7C
; ---------------------------------------------------------------------------

loc_D3A7A:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+166j
		fstp	st

loc_D3A7C:				; CODE XREF: CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t  const*)+2F8j
		mov	byte ptr [edx+8Ah], 1
		mov	dword ptr [edx+80h], 0
		mov	dword ptr [edx+8Ch], 3F800000h
		jmp	loc_D3970
_Z17CM_ClipBoxToBrushILb1EEvP11TraceInfo_tPK8cbrush_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void CM_TraceToLeaf<true>(TraceInfo_t	*, int,	float, float)
_Z14CM_TraceToLeafILb1EEvP11TraceInfo_tiff proc	near
					; CODE XREF: CM_RecursiveHullCheckImpl<true>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+A6p
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &):loc_D33C8p

var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		mov	[ebp+var_30], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_2C], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_64], 0
		mov	[ebp+var_70], 0
		mov	[ebp+var_6C], 0
		test	eax, eax
		jz	short loc_D3B4D
		lea	edx, [ebp+var_30]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCm_tracetoleaf ; "CM_TraceToLeaf"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ14CM_TraceToLeafILb1EEvP11TraceInfo_tiffE6tm_fmt
		mov	dword ptr [esp+1Ch], 5BFh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_5 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_2C]
		mov	eax, [ebp+var_30]
		mov	[ebp+var_6C], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_70], eax
		mov	[ebp+var_64], edx

loc_D3B4D:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+39j
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		setnz	al
		test	al, al
		mov	[ebp+var_1A], al
		jz	short loc_D3B72
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D402E

loc_D3B72:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+BDj
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+5D7j
		mov	esi, [edi+104h]
		mov	eax, [ebp+arg_4]
		mov	edx, [edi+11Ch]
		mov	ecx, [esi+88h]
		shl	eax, 4
		add	eax, ecx
		movzx	ebx, word ptr [eax+8]
		mov	[ebp+var_4C], eax
		movzx	eax, word ptr [eax+0Ah]
		lea	ecx, [ebx+eax]
		lea	eax, [edx+edx*4]
		mov	edx, [edi+edx*4+120h]
		cmp	ebx, ecx
		mov	eax, [edi+eax*4+128h]
		mov	[ebp+var_3C], edx
		mov	[ebp+var_44], eax
		jge	loc_D3CDF
		lea	eax, [ebx+1]
		add	ecx, 1
		mov	[ebp+var_40], edi
		add	ebx, ebx
		mov	[ebp+var_48], ecx
		mov	edi, eax
		lea	esi, [esi+0]

loc_D3BD0:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+236j
		mov	eax, [esi+0A8h]
		mov	ecx, [ebp+var_44]
		mov	[ebp+var_50], eax
		mov	eax, [esi+98h]
		movzx	edx, word ptr [eax+ebx]
		lea	eax, [ecx+edx*4]
		mov	ecx, [ebp+var_3C]
		cmp	ecx, [eax]
		jz	loc_D3CCD
		mov	ecx, [ebp+var_50]
		lea	edx, [ecx+edx*8]
		mov	ecx, [ebp+var_40]
		mov	[ebp+var_74], edx
		mov	edx, [ebp+var_3C]
		mov	[eax], edx
		mov	eax, [ecx+0FCh]
		mov	ecx, [ebp+var_74]
		mov	edx, eax
		and	edx, [ecx]
		jz	loc_D3CCD
		add	edx, 0FFFFFF80h
		jnz	loc_D3CA6
		test	ah, 20h
		jz	loc_D3CA6
		movzx	eax, word ptr [ecx+4]
		cmp	ax, 0FFFFh
		jz	loc_D3F98
		mov	edx, [ebp+var_74]
		movzx	eax, ax
		test	eax, eax
		mov	[ebp+var_50], eax
		movzx	ecx, word ptr [edx+6]
		mov	edx, [ebp+var_40]
		mov	edx, [edx+104h]
		mov	[ebp+var_58], edx
		mov	edx, [edx+68h]
		mov	[ebp+var_60], edx
		jle	short loc_D3CA6
		movzx	eax, cx
		mov	ecx, [ebp+var_74]
		lea	eax, [edx+eax*8]
		xor	edx, edx
		mov	[ebp+var_5C], eax
		mov	[ebp+var_60], ecx
		lea	esi, [esi+0]

loc_D3C70:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+1FEj
		mov	eax, [ebp+var_5C]
		movzx	ecx, word ptr [eax+edx*8+4]
		mov	eax, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		cmp	cx, 0FFFFh
		jz	short loc_D3C92
		movzx	eax, cx
		mov	ecx, [ebp+var_58]
		shl	eax, 3
		add	eax, [ecx+220h]

loc_D3C92:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+1E1j
		test	byte ptr [eax+6], 80h
		jnz	short loc_D3CCD
		add	edx, 1
		cmp	edx, [ebp+var_50]
		jl	short loc_D3C70
		mov	ecx, [ebp+var_60]
		mov	[ebp+var_74], ecx

loc_D3CA6:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+17Bj
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+184j ...
		mov	eax, [ebp+var_74]
		mov	edx, [ebp+var_40]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z17CM_ClipBoxToBrushILb1EEvP11TraceInfo_tPK8cbrush_t ;	CM_ClipBoxToBrush<true>(TraceInfo_t *,cbrush_t	const*)
		mov	ecx, [ebp+var_40]
		fld	dword ptr [ecx+80h]
		fldz
		fcomip	st, st(1)
		fstp	st
		jz	loc_D3F29

loc_D3CCD:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+14Ej
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+172j ...
		add	edi, 1
		add	ebx, 2
		cmp	edi, [ebp+var_48]
		jnz	loc_D3BD0
		mov	edi, [ebp+var_40]

loc_D3CDF:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+113j
		cmp	byte ptr [edi+8Bh], 0
		jnz	loc_D3F29
		mov	eax, [ebp+var_4C]
		cmp	word ptr [eax+0Eh], 0
		jz	loc_D3F29
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	loc_D4100
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aCm_tracetole_0 ; "CM_TraceToLeafDisps"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ14CM_TraceToLeafILb1EEvP11TraceInfo_tiffE6tm_fmt_0
		mov	dword ptr [esp+1Ch], 61Bh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_5 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_28]
		mov	[ebp+var_54], ecx
		mov	ecx, ds:g_Telemetry+0Ch
		mov	[ebp+var_58], edx
		mov	[ebp+var_50], ecx

loc_D3D87:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+675j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_D3DAB
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D4083

loc_D3DAB:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+2F6j
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+62Cj
		mov	edx, [edi+11Ch]
		lea	eax, [edx+edx*4]
		mov	edx, [edi+edx*4+120h]
		mov	eax, [edi+eax*4+150h]
		mov	[ebp+var_3C], edx
		mov	[ebp+var_40], eax
		mov	eax, [ebp+var_4C]
		cmp	word ptr [eax+0Eh], 0
		jz	loc_D3EC0
		lea	edx, [edi+48h]
		xor	esi, esi
		lea	ecx, [edi+3Ch]
		mov	[ebp+var_44], edx
		mov	[ebp+var_48], ecx
		jmp	short loc_D3E02
; ---------------------------------------------------------------------------
		align 10h

loc_D3DF0:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+390j
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+3A9j ...
		mov	ecx, [ebp+var_4C]
		add	esi, 1
		movzx	eax, word ptr [ecx+0Eh]
		cmp	eax, esi
		jle	loc_D3EC0

loc_D3E02:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+344j
		mov	ecx, [ebp+var_4C]
		mov	eax, [edi+104h]
		movzx	edx, word ptr [ecx+0Ch]
		mov	eax, [eax+0B0h]
		add	edx, esi
		movzx	ebx, word ptr [eax+edx*2]
		lea	eax, [ebx+ebx*2]
		shl	eax, 4
		add	eax, ds:g_pDispBounds
		mov	edx, [eax+24h]
		test	[edi+0FCh], edx
		jz	short loc_D3DF0
		cmp	byte ptr [edi+101h], 0
		jz	short loc_D3E4D
		mov	ecx, [ebp+var_40]
		mov	edx, [eax+20h]
		lea	edx, [ecx+edx*4]
		mov	ecx, [ebp+var_3C]
		cmp	ecx, [edx]
		jz	short loc_D3DF0
		mov	[edx], ecx

loc_D3E4D:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+399j
		mov	edx, [ebp+var_44]
		mov	dword ptr [esp+14h], 3D000000h
		mov	ecx, [ebp+var_48]
		mov	[esp+8], edi
		mov	[esp], eax
		mov	[esp+10h], edx
		lea	edx, [eax+10h]
		mov	[esp+0Ch], ecx
		mov	[esp+4], edx
		call	_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_S1_f ; IsBoxIntersectingRay(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float)
		test	al, al
		jz	loc_D3DF0
		imul	ebx, 0F4h
		mov	eax, [ebp+arg_C]
		mov	[esp], edi
		mov	edx, [ebp+arg_8]
		add	ebx, ds:g_pDispCollTrees
		mov	[esp+0Ch], eax
		mov	[esp+8], edx
		mov	[esp+4], ebx
		call	_Z18CM_TraceToDispTreeILb1EEvP11TraceInfo_tP13CDispCollTreeff ;	CM_TraceToDispTree<true>(TraceInfo_t *,CDispCollTree *,float,float)
		fld	dword ptr [edi+80h]
		fldz
		fcomip	st, st(1)
		fstp	st
		jnz	loc_D3DF0
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_D3EC0:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+330j
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+35Cj
		mov	[esp], edi
		call	_Z22CM_PostTraceToDispTreeP11TraceInfo_t ; CM_PostTraceToDispTree(TraceInfo_t *)
		cmp	[ebp+var_19], 0
		jz	short loc_D3EF3
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_D3EE0
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_D3EF3

loc_D3EE0:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+435j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D40D1

loc_D3EF3:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+42Cj
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+43Ej ...
		mov	eax, [ebp+var_50]
		test	eax, eax
		jz	short loc_D3F29
		mov	edx, [ebp+var_54]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_58]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_50]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D3F29:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+227j
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+246j ...
		cmp	[ebp+var_1A], 0
		jz	short loc_D3F54
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_D3F41
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_D3F54

loc_D3F41:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+496j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D3FFF

loc_D3F54:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+48Dj
					; CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+49Fj ...
		mov	eax, [ebp+var_64]
		test	eax, eax
		jz	short loc_D3F8A
		mov	edx, [ebp+var_6C]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_70]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_64]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D3F8A:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+4B9j
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_D3F98:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+192j
		mov	eax, [ebp+var_40]
		mov	[ebp+var_5C], ecx
		mov	eax, [eax+104h]
		mov	[ebp+var_58], eax
		movzx	eax, word ptr [ecx+6]
		mov	edx, [ebp+var_58]
		lea	eax, [eax+eax*2]
		mov	edx, [edx+70h]
		shl	eax, 4
		add	eax, edx
		xor	edx, edx
		mov	[ebp+var_50], eax
		db	66h
		nop

loc_D3FC0:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+552j
		mov	eax, [ebp+var_50]
		movzx	ecx, word ptr [eax+edx*2+20h]
		mov	eax, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		cmp	cx, 0FFFFh
		jz	short loc_D3FE2
		movzx	eax, cx
		mov	ecx, [ebp+var_58]
		shl	eax, 3
		add	eax, [ecx+220h]

loc_D3FE2:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+531j
		test	byte ptr [eax+6], 80h
		jnz	loc_D3CCD
		add	edx, 1
		cmp	edx, 6
		jnz	short loc_D3FC0
		mov	edx, [ebp+var_5C]
		mov	[ebp+var_74], edx
		jmp	loc_D3CA6
; ---------------------------------------------------------------------------

loc_D3FFF:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+4AEj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_D407C
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D401D:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+5E1j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_D3F54
; ---------------------------------------------------------------------------

loc_D402E:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCm_tracetoleaf	; "CM_TraceToLeaf"
		jz	short loc_D4068
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCm_tracetoleaf ; "CM_TraceToLeaf"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D4068:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+599j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_D3B72
; ---------------------------------------------------------------------------

loc_D407C:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+56Ej
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_D401D
; ---------------------------------------------------------------------------

loc_D4083:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+305j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCm_tracetole_0	; "CM_TraceToLeafDisps"
		jz	short loc_D40BD
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCm_tracetole_0 ; "CM_TraceToLeafDisps"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D40BD:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+5EEj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_D3DAB
; ---------------------------------------------------------------------------

loc_D40D1:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+44Dj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_D411A
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D40EF:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+67Fj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_D3EF3
; ---------------------------------------------------------------------------

loc_D4100:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+26Fj
		mov	[ebp+var_50], 0
		mov	[ebp+var_58], 0
		mov	[ebp+var_54], 0
		jmp	loc_D3D87
; ---------------------------------------------------------------------------

loc_D411A:				; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+640j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_D40EF
_Z14CM_TraceToLeafILb1EEvP11TraceInfo_tiff endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_D4123:				; CODE XREF: .text:000D41B3j
		mov	eax, [ebp-50h]
		test	eax, eax
		jz	short loc_D4159
		mov	edx, [ebp-54h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-58h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-50h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D4159:				; CODE XREF: .text:000D4128j
					; .text:000D41A4j
		lea	eax, [ebp-1Ah]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_D4164:				; CODE XREF: .text:000D41BAj
		mov	edi, [ebp-64h]
		test	edi, edi
		jz	short loc_D419A
		mov	edx, [ebp-6Ch]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-70h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-64h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D419A:				; CODE XREF: .text:000D4169j
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D4159
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	loc_D4123
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D4164
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void CM_ClipBoxToBrush<false>(TraceInfo_t *, cbrush_t	 const*)
_Z17CM_ClipBoxToBrushILb0EEvP11TraceInfo_tPK8cbrush_t proc near
					; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+229p

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_3D		= byte ptr -3Dh
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [ecx+4]
		cmp	ax, 0FFFFh
		jz	loc_D44B0
		test	ax, ax
		jz	loc_D4420
		mov	ebx, [ecx]
		movzx	eax, ax
		movzx	ecx, word ptr [ecx+6]
		mov	[ebp+var_48], ebx
		mov	ebx, [edx+104h]
		mov	esi, [ebx+68h]
		mov	[ebp+var_44], ebx
		lea	ecx, [esi+ecx*8]
		lea	ebx, [ecx+eax*8]
		cmp	ecx, ebx
		jnb	loc_D44D8
		fld	dword ptr [edx+30h]
		xor	edi, edi
		xor	esi, esi
		fld	dword ptr [edx+34h]
		mov	[ebp+var_3D], 0
		fstp	[ebp+var_1C]
		fld	dword ptr [edx+38h]
		fstp	[ebp+var_20]
		fld	dword ptr [edx]
		fstp	[ebp+var_24]
		fld	dword ptr [edx+4]
		fstp	[ebp+var_28]
		fld	dword ptr [edx+8]
		fstp	[ebp+var_2C]
		fld	dword ptr [edx+0Ch]
		fstp	[ebp+var_30]
		fld	dword ptr [edx+10h]
		fstp	[ebp+var_34]
		fld	dword ptr [edx+14h]
		fstp	[ebp+var_38]
		fld1
		fld	ds:flt_1EBD94
		fstp	[ebp+var_3C]
		jmp	short loc_D42A3
; ---------------------------------------------------------------------------
		align 8

loc_D4258:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+153j
		fld	ds:flt_1EBF78
		fsubr	st, st(1)
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fxch	st(2)
		fsubp	st(1), st
		fdivp	st(1), st
		fld	[ebp+var_3C]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_D4288
		mov	edi, ecx
		fstp	[ebp+var_3C]
		jmp	short loc_D4298
; ---------------------------------------------------------------------------
		align 8

loc_D4288:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+B9j
		fstp	st
		jmp	short loc_D4298
; ---------------------------------------------------------------------------
		align 10h

loc_D4290:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+274j
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_D4298:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+C0j
					; CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+CAj
		add	ecx, 8
		cmp	ebx, ecx
		jbe	loc_D4340

loc_D42A3:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+91j
					; CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+174j
		mov	eax, [ecx]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	st(4)
		fmul	st, st(3)
		fabs
		fld	[ebp+var_1C]
		fmul	st, st(3)
		fabs
		faddp	st(1), st
		fadd	dword ptr [eax+0Ch]
		fld	[ebp+var_20]
		fmul	st, st(2)
		fabs
		faddp	st(1), st
		fld	[ebp+var_28]
		fmul	st, st(3)
		fld	[ebp+var_24]
		fmul	st, st(5)
		faddp	st(1), st
		fld	[ebp+var_2C]
		fmul	st, st(3)
		faddp	st(1), st
		fsub	st, st(1)
		fxch	st(3)
		fmul	[ebp+var_34]
		fxch	st(4)
		fmul	[ebp+var_30]
		faddp	st(4), st
		fxch	st(1)
		fmul	[ebp+var_38]
		faddp	st(3), st
		fsubp	st(2), st
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		jbe	loc_D4430
		fxch	st(2)
		fcomi	st, st(1)
		fstp	st(1)
		ja	loc_D4400
		fxch	st(1)
		mov	esi, 1

loc_D4311:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+27Ej
		fcomi	st, st(1)
		ja	loc_D4258
		fld	ds:dbl_1F4560
		fadd	st, st(1)
		fxch	st(2)
		fsubp	st(1), st
		fdivp	st(1), st
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnbe st, st(1)
		fstp	st(1)
		add	ecx, 8
		cmp	ebx, ecx
		ja	loc_D42A3
		fstp	st(1)
		jmp	short loc_D4342
; ---------------------------------------------------------------------------
		align 10h

loc_D4340:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+DDj
		fstp	st(1)

loc_D4342:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+17Cj
		mov	eax, esi
		test	al, al
		jz	loc_D4448
		fld	[ebp+var_3C]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	loc_D4420
		fld	ds:flt_1EBD94
		fld	[ebp+var_3C]
		fcomi	st, st(1)
		fstp	st(1)
		jbe	loc_D440A
		fld	dword ptr [edx+80h]
		fcomip	st, st(1)
		jbe	loc_D440E
		mov	dword ptr [edx+114h], 0
		fldz
		fxch	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fstp	dword ptr [edx+80h]
		mov	eax, [edi]
		mov	ecx, [eax]
		mov	[edx+6Ch], ecx
		mov	ecx, [eax+4]
		mov	[edx+70h], ecx
		mov	ecx, [eax+8]
		mov	[edx+74h], ecx
		mov	ecx, [eax+0Ch]
		mov	[edx+78h], ecx
		movzx	ecx, byte ptr [eax+10h]
		mov	[edx+7Ch], cl
		movzx	ecx, byte ptr [eax+11h]
		mov	[edx+7Dh], cl
		movzx	eax, word ptr [eax+12h]
		mov	[edx+7Eh], ax
		mov	eax, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		movzx	ecx, word ptr [edi+4]
		cmp	cx, 0FFFFh
		jz	short loc_D43E3
		movzx	eax, cx
		mov	ecx, [ebp+var_44]
		shl	eax, 3
		add	eax, [ecx+220h]

loc_D43E3:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+212j
		mov	ebx, [eax+4]
		mov	ecx, [eax]
		mov	[edx+94h], ebx
		mov	ebx, [ebp+var_48]
		mov	[edx+90h], ecx
		mov	[edx+84h], ebx
		jmp	short loc_D4420
; ---------------------------------------------------------------------------
		align 10h

loc_D4400:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+144j
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_D4420
; ---------------------------------------------------------------------------

loc_D440A:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+1A8j
		fstp	st
		jmp	short loc_D4420
; ---------------------------------------------------------------------------

loc_D440E:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+1B6j
		fstp	st
		jmp	short loc_D4420
; ---------------------------------------------------------------------------

loc_D4412:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+2A6j
		fstp	st
		fstp	st
		jmp	short loc_D4420
; ---------------------------------------------------------------------------

loc_D4418:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+2B4j
		fstp	st
		fstp	st
		jmp	short loc_D4420
; ---------------------------------------------------------------------------

loc_D441E:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+2CAj
		fstp	st

loc_D4420:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+20j
					; CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+195j ...
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D4430:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+138j
		fxch	st(1)
		fcomip	st, st(2)
		jnb	loc_D4290
		mov	[ebp+var_3D], 1
		jmp	loc_D4311
; ---------------------------------------------------------------------------
		align 8

loc_D4448:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+186j
		mov	ecx, [ebp+var_48]
		mov	byte ptr [edx+8Bh], 1
		cmp	[ebp+var_3D], 0
		mov	[edx+84h], ecx
		jz	loc_D44EA
		fld1
		fcomi	st, st(1)
		jz	short loc_D4412
		fld	dword ptr [edx+8Ch]
		fxch	st(2)
		fcomi	st, st(2)
		fstp	st(2)
		jbe	short loc_D4418
		fxch	st(1)
		fst	dword ptr [edx+8Ch]
		fld	dword ptr [edx+80h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jb	short loc_D441E
		mov	ecx, _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		fstp	dword ptr [edx+80h]
		mov	ebx, _ZN17CCollisionBSPData11nullsurfaceE+4
		mov	[edx+90h], ecx
		mov	[edx+94h], ebx
		jmp	loc_D4420
; ---------------------------------------------------------------------------
		align 10h

loc_D44B0:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+17j
		movzx	eax, word ptr [ecx+6]
		mov	ebx, [edx+104h]
		lea	eax, [eax+eax*2]
		shl	eax, 4
		add	eax, [ebx+70h]
		mov	[esp+4], ecx
		mov	[esp], edx
		mov	[esp+8], eax
		call	_Z24IntersectRayWithBoxBrushP11TraceInfo_tPK8cbrush_tP11cboxbrush_t ; IntersectRayWithBoxBrush(TraceInfo_t *,cbrush_t  const*,cboxbrush_t *)
		jmp	loc_D4420
; ---------------------------------------------------------------------------

loc_D44D8:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+46j
		mov	eax, [ebp+var_48]
		mov	byte ptr [edx+8Bh], 1
		mov	[edx+84h], eax
		jmp	short loc_D44EC
; ---------------------------------------------------------------------------

loc_D44EA:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+29Cj
		fstp	st

loc_D44EC:				; CODE XREF: CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t  const*)+328j
		mov	byte ptr [edx+8Ah], 1
		mov	dword ptr [edx+80h], 0
		mov	dword ptr [edx+8Ch], 3F800000h
		jmp	loc_D4420
_Z17CM_ClipBoxToBrushILb0EEvP11TraceInfo_tPK8cbrush_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void CM_TraceToLeaf<false>(TraceInfo_t *, int, float,	float)
_Z14CM_TraceToLeafILb0EEvP11TraceInfo_tiff proc	near
					; CODE XREF: CM_RecursiveHullCheckImpl<false>(TraceInfo_t *,int,float,float,Vector  const&,Vector  const&)+A6p
					; CM_BoxTraceAgainstLeafList(Ray_t  const&,int *,int,int,bool,CGameTrace &)+19Cp

var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ACh
		mov	[ebp+var_30], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_2C], 0
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_74], 0
		mov	[ebp+var_80], 0
		mov	[ebp+var_7C], 0
		test	eax, eax
		jz	short loc_D45BD
		lea	edx, [ebp+var_30]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCm_tracetoleaf ; "CM_TraceToLeaf"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ14CM_TraceToLeafILb0EEvP11TraceInfo_tiffE6tm_fmt
		mov	dword ptr [esp+1Ch], 5BFh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_5 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_2C]
		mov	eax, [ebp+var_30]
		mov	[ebp+var_7C], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_80], eax
		mov	[ebp+var_74], edx

loc_D45BD:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+39j
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		setnz	al
		test	al, al
		mov	[ebp+var_1A], al
		jz	short loc_D45E2
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D4AE1

loc_D45E2:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+BDj
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+61Aj
		mov	esi, [edi+104h]
		mov	eax, [ebp+arg_4]
		mov	edx, [edi+11Ch]
		mov	ecx, [esi+88h]
		shl	eax, 4
		add	eax, ecx
		movzx	ebx, word ptr [eax+8]
		mov	[ebp+var_5C], eax
		movzx	eax, word ptr [eax+0Ah]
		lea	ecx, [ebx+eax]
		lea	eax, [edx+edx*4]
		mov	edx, [edi+edx*4+120h]
		cmp	ebx, ecx
		mov	eax, [edi+eax*4+128h]
		mov	[ebp+var_4C], edx
		mov	[ebp+var_54], eax
		jge	loc_D4765
		lea	eax, [ebx+1]
		add	ecx, 1
		mov	[ebp+var_50], edi
		add	ebx, ebx
		mov	[ebp+var_58], ecx
		mov	edi, eax
		lea	esi, [esi+0]

loc_D4640:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+24Cj
		mov	eax, [esi+0A8h]
		mov	ecx, [ebp+var_54]
		mov	[ebp+var_60], eax
		mov	eax, [esi+98h]
		movzx	edx, word ptr [eax+ebx]
		lea	eax, [ecx+edx*4]
		mov	ecx, [ebp+var_4C]
		cmp	ecx, [eax]
		jz	loc_D4753
		mov	ecx, [ebp+var_60]
		lea	edx, [ecx+edx*8]
		mov	ecx, [ebp+var_50]
		mov	[ebp+var_84], edx
		mov	edx, [ebp+var_4C]
		mov	[eax], edx
		mov	eax, [ecx+0FCh]
		mov	ecx, [ebp+var_84]
		mov	edx, eax
		and	edx, [ecx]
		jz	loc_D4753
		add	edx, 0FFFFFF80h
		jnz	loc_D4729
		test	ah, 20h
		jz	loc_D4729
		movzx	eax, word ptr [ecx+4]
		cmp	ax, 0FFFFh
		jz	loc_D4A48
		mov	edx, [ebp+var_84]
		movzx	eax, ax
		test	eax, eax
		mov	[ebp+var_60], eax
		movzx	ecx, word ptr [edx+6]
		mov	edx, [ebp+var_50]
		mov	edx, [edx+104h]
		mov	[ebp+var_68], edx
		mov	edx, [edx+68h]
		mov	[ebp+var_70], edx
		jle	short loc_D4729
		movzx	eax, cx
		mov	ecx, [ebp+var_84]
		lea	eax, [edx+eax*8]
		xor	edx, edx
		mov	[ebp+var_6C], eax
		mov	[ebp+var_70], ecx
		nop
		lea	esi, [esi+0]

loc_D46F0:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+20Ej
		mov	eax, [ebp+var_6C]
		movzx	ecx, word ptr [eax+edx*8+4]
		mov	eax, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		cmp	cx, 0FFFFh
		jz	short loc_D4712
		movzx	eax, cx
		mov	ecx, [ebp+var_68]
		shl	eax, 3
		add	eax, [ecx+220h]

loc_D4712:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+1F1j
		test	byte ptr [eax+6], 80h
		jnz	short loc_D4753
		add	edx, 1
		cmp	edx, [ebp+var_60]
		jl	short loc_D46F0
		mov	ecx, [ebp+var_70]
		mov	[ebp+var_84], ecx

loc_D4729:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+181j
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+18Aj ...
		mov	eax, [ebp+var_84]
		mov	edx, [ebp+var_50]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z17CM_ClipBoxToBrushILb0EEvP11TraceInfo_tPK8cbrush_t ;	CM_ClipBoxToBrush<false>(TraceInfo_t *,cbrush_t	 const*)
		mov	ecx, [ebp+var_50]
		fld	dword ptr [ecx+80h]
		fldz
		fcomip	st, st(1)
		fstp	st
		jz	loc_D49D9

loc_D4753:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+14Ej
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+178j ...
		add	edi, 1
		add	ebx, 2
		cmp	edi, [ebp+var_58]
		jnz	loc_D4640
		mov	edi, [ebp+var_50]

loc_D4765:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+113j
		cmp	byte ptr [edi+8Bh], 0
		jnz	loc_D49D9
		mov	eax, [ebp+var_5C]
		cmp	word ptr [eax+0Eh], 0
		jz	loc_D49D9
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	loc_D4BB3
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aCm_tracetole_0 ; "CM_TraceToLeafDisps"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ14CM_TraceToLeafILb0EEvP11TraceInfo_tiffE6tm_fmt_0
		mov	dword ptr [esp+1Ch], 61Bh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_5 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_28]
		mov	[ebp+var_64], ecx
		mov	ecx, ds:g_Telemetry+0Ch
		mov	[ebp+var_68], edx
		mov	[ebp+var_60], ecx

loc_D480D:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+6B8j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_D4831
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D4B36

loc_D4831:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+30Cj
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+66Fj
		mov	edx, [edi+11Ch]
		lea	eax, [edx+edx*4]
		mov	edx, [edi+edx*4+120h]
		mov	eax, [edi+eax*4+150h]
		mov	[ebp+var_4C], edx
		mov	[ebp+var_50], eax
		mov	eax, [ebp+var_5C]
		cmp	word ptr [eax+0Eh], 0
		jz	loc_D4970
		lea	edx, [edi+48h]
		xor	esi, esi
		lea	ecx, [edi+3Ch]
		mov	[ebp+var_54], edx
		mov	[ebp+var_58], ecx
		jmp	short loc_D4882
; ---------------------------------------------------------------------------
		align 10h

loc_D4870:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+3A0j
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+3B9j ...
		mov	edx, [ebp+var_5C]
		add	esi, 1
		movzx	eax, word ptr [edx+0Eh]
		cmp	eax, esi
		jle	loc_D4970

loc_D4882:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+35Aj
		mov	ecx, [ebp+var_5C]
		mov	eax, [edi+104h]
		movzx	edx, word ptr [ecx+0Ch]
		mov	eax, [eax+0B0h]
		add	edx, esi
		movzx	ebx, word ptr [eax+edx*2]
		lea	eax, [ebx+ebx*2]
		shl	eax, 4
		add	eax, ds:g_pDispBounds
		mov	edx, [eax+24h]
		test	[edi+0FCh], edx
		jz	short loc_D4870
		cmp	byte ptr [edi+101h], 0
		jz	short loc_D48CD
		mov	ecx, [ebp+var_50]
		mov	edx, [eax+20h]
		lea	edx, [ecx+edx*4]
		mov	ecx, [ebp+var_4C]
		cmp	ecx, [edx]
		jz	short loc_D4870
		mov	[edx], ecx

loc_D48CD:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+3A9j
		fld	dword ptr [edi+30h]
		fld	dword ptr [eax+10h]
		fadd	st, st(1)
		mov	edx, [ebp+var_58]
		fstp	[ebp+var_3C]
		fld	dword ptr [edi+34h]
		fld	dword ptr [eax+14h]
		fadd	st, st(1)
		fstp	[ebp+var_38]
		fld	dword ptr [edi+38h]
		fld	dword ptr [eax+18h]
		fadd	st, st(1)
		fstp	[ebp+var_34]
		fxch	st(2)
		fsubr	dword ptr [eax]
		fstp	[ebp+var_48]
		fsubr	dword ptr [eax+4]
		fstp	[ebp+var_44]
		fsubr	dword ptr [eax+8]
		mov	dword ptr [esp+14h], 3D000000h
		mov	eax, [ebp+var_54]
		mov	[esp+0Ch], edx
		mov	[esp+8], edi
		mov	[esp+10h], eax
		lea	eax, [ebp+var_3C]
		mov	[esp+4], eax
		lea	eax, [ebp+var_48]
		fstp	[ebp+var_40]
		mov	[esp], eax
		call	_Z20IsBoxIntersectingRayRK6VectorS1_S1_S1_S1_f ; IsBoxIntersectingRay(Vector  const&,Vector  const&,Vector  const&,Vector  const&,Vector  const&,float)
		test	al, al
		jz	loc_D4870
		imul	ebx, 0F4h
		mov	ecx, [ebp+arg_C]
		mov	[esp], edi
		mov	eax, [ebp+arg_8]
		add	ebx, ds:g_pDispCollTrees
		mov	[esp+0Ch], ecx
		mov	[esp+8], eax
		mov	[esp+4], ebx
		call	_Z18CM_TraceToDispTreeILb0EEvP11TraceInfo_tP13CDispCollTreeff ;	CM_TraceToDispTree<false>(TraceInfo_t *,CDispCollTree *,float,float)
		fld	dword ptr [edi+80h]
		fldz
		fcomip	st, st(1)
		fstp	st
		jnz	loc_D4870
		lea	esi, [esi+0]

loc_D4970:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+346j
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+36Cj
		mov	[esp], edi
		call	_Z22CM_PostTraceToDispTreeP11TraceInfo_t ; CM_PostTraceToDispTree(TraceInfo_t *)
		cmp	[ebp+var_19], 0
		jz	short loc_D49A3
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_D4990
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_D49A3

loc_D4990:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+475j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D4B84

loc_D49A3:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+46Cj
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+47Ej ...
		mov	eax, [ebp+var_60]
		test	eax, eax
		jz	short loc_D49D9
		mov	edx, [ebp+var_64]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_68]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_60]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D49D9:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+23Dj
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+25Cj ...
		cmp	[ebp+var_1A], 0
		jz	short loc_D4A04
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_D49F1
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_D4A04

loc_D49F1:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+4D6j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_D4AB2

loc_D4A04:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+4CDj
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+4DFj ...
		mov	eax, [ebp+var_74]
		test	eax, eax
		jz	short loc_D4A3A
		mov	edx, [ebp+var_7C]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_80]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_74]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D4A3A:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+4F9j
		add	esp, 0ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_D4A48:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+198j
		mov	eax, [ebp+var_50]
		mov	[ebp+var_6C], ecx
		mov	eax, [eax+104h]
		mov	[ebp+var_68], eax
		movzx	eax, word ptr [ecx+6]
		mov	edx, [ebp+var_68]
		lea	eax, [eax+eax*2]
		mov	edx, [edx+70h]
		shl	eax, 4
		add	eax, edx
		xor	edx, edx
		mov	[ebp+var_60], eax
		db	66h
		nop

loc_D4A70:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+592j
		mov	eax, [ebp+var_60]
		movzx	ecx, word ptr [eax+edx*2+20h]
		mov	eax, offset _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		cmp	cx, 0FFFFh
		jz	short loc_D4A92
		movzx	eax, cx
		mov	ecx, [ebp+var_68]
		shl	eax, 3
		add	eax, [ecx+220h]

loc_D4A92:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+571j
		test	byte ptr [eax+6], 80h
		jnz	loc_D4753
		add	edx, 1
		cmp	edx, 6
		jnz	short loc_D4A70
		mov	edx, [ebp+var_6C]
		mov	[ebp+var_84], edx
		jmp	loc_D4729
; ---------------------------------------------------------------------------

loc_D4AB2:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+4EEj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_D4B2F
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D4AD0:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+624j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_D4A04
; ---------------------------------------------------------------------------

loc_D4AE1:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+CCj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCm_tracetoleaf	; "CM_TraceToLeaf"
		jz	short loc_D4B1B
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCm_tracetoleaf ; "CM_TraceToLeaf"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D4B1B:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+5DCj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_D45E2
; ---------------------------------------------------------------------------

loc_D4B2F:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+5B1j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_D4AD0
; ---------------------------------------------------------------------------

loc_D4B36:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+31Bj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCm_tracetole_0	; "CM_TraceToLeafDisps"
		jz	short loc_D4B70
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCm_tracetole_0 ; "CM_TraceToLeafDisps"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D4B70:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+631j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_D4831
; ---------------------------------------------------------------------------

loc_D4B84:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+48Dj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_D4BCD
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_D4BA2:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+6C2j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_D49A3
; ---------------------------------------------------------------------------

loc_D4BB3:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+285j
		mov	[ebp+var_60], 0
		mov	[ebp+var_68], 0
		mov	[ebp+var_64], 0
		jmp	loc_D480D
; ---------------------------------------------------------------------------

loc_D4BCD:				; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+683j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_D4BA2
_Z14CM_TraceToLeafILb0EEvP11TraceInfo_tiff endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_D4BD6:				; CODE XREF: .text:000D4C66j
		mov	eax, [ebp-60h]
		test	eax, eax
		jz	short loc_D4C0C
		mov	edx, [ebp-64h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-68h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-60h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D4C0C:				; CODE XREF: .text:000D4BDBj
					; .text:000D4C57j
		lea	eax, [ebp-1Ah]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_D4C17:				; CODE XREF: .text:000D4C6Dj
		mov	edi, [ebp-74h]
		test	edi, edi
		jz	short loc_D4C4D
		mov	edx, [ebp-7Ch]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-80h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-74h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_D4C4D:				; CODE XREF: .text:000D4C1Cj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D4C0C
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	loc_D4BD6
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D4C17
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<unsigned int, int>::Grow(int)
_ZN10CUtlMemoryIjiE4GrowEi proc	near	; CODE XREF: CUtlVector<uint,CUtlMemory<uint,int>>::SetCount(int)+4Bp
					; CUtlVector<uint,CUtlMemory<uint,int>>::InsertBefore(int,uint	const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_D4CD1
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_D4CE0
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_D4CB7
		lea	esi, [esi+0]

loc_D4CA8:				; CODE XREF: CUtlMemory<uint,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_D4CA8

loc_D4CB7:				; CODE XREF: CUtlMemory<uint,int>::Grow(int)+30j
					; CUtlMemory<uint,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_D4D02

loc_D4CC3:				; CODE XREF: CUtlMemory<uint,int>::Grow(int)+90j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_D4CD1:				; CODE XREF: CUtlMemory<uint,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D4CE0:				; CODE XREF: CUtlMemory<uint,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_D4CB7
		db	66h
		nop

loc_D4CF0:				; CODE XREF: CUtlMemory<uint,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_D4CF0
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_D4CC3

loc_D4D02:				; CODE XREF: CUtlMemory<uint,int>::Grow(int)+51j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIjiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned int, CUtlMemory<unsigned int, int>>::SetCount(int)
_ZN10CUtlVectorIj10CUtlMemoryIjiEE8SetCountEi proc near	; CODE XREF: BeginTrace(void)+1C2p
					; BeginTrace(void)+1D3p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_D4D4F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_D4D60
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_D4D4F:				; CODE XREF: CUtlVector<uint,CUtlMemory<uint,int>>::SetCount(int)+1Ej
					; CUtlVector<uint,CUtlMemory<uint,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D4D60:				; CODE XREF: CUtlVector<uint,CUtlMemory<uint,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIjiE4GrowEi ; CUtlMemory<uint,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_D4D4F
		test	cl, cl
		jz	short loc_D4D4F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIj10CUtlMemoryIjiEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_Init(CCollisionBSPData *)
_Z21CollisionBSPData_InitP17CCollisionBSPData proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+84h], 1
		mov	dword ptr [eax+0B8h], 0
		mov	dword ptr [eax+200h], 1
		mov	dword ptr [eax+210h], 1
		mov	dword ptr [eax+214h], offset aEmpty ; "**empty**"
		mov	dword ptr [eax+218h], 0
		mov	eax, 1
		pop	ebp
		retn
_Z21CollisionBSPData_InitP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_Destroy(CCollisionBSPData *)
_Z24CollisionBSPData_DestroyP17CCollisionBSPData proc near ; CODE XREF:	CM_FreeMap(void)+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+9Ch]
		test	eax, eax
		jle	short loc_D4E5D
		xor	edi, edi
		xor	esi, esi
		lea	esi, [esi+0]

loc_D4E30:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+4Bj
		mov	eax, ds:physcollision
		add	esi, 1
		mov	ecx, [ebx+0A0h]
		mov	edx, [eax]
		mov	[esp], eax
		add	ecx, edi
		add	edi, 34h
		add	ecx, 28h
		mov	[esp+4], ecx
		call	dword ptr [edx+98h]
		cmp	[ebx+9Ch], esi
		jg	short loc_D4E30

loc_D4E5D:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+14j
		mov	[esp], ebx
		call	_Z26DispCollTrees_FreeLeafListP17CCollisionBSPData ; DispCollTrees_FreeLeafList(CCollisionBSPData *)
		call	_Z25CM_DestroyDispPhysCollidev ; CM_DestroyDispPhysCollide(void)
		mov	eax, ds:g_pDispCollTrees
		mov	[esp], eax
		call	_Z18DispCollTrees_FreeP13CDispCollTree ; DispCollTrees_Free(CDispCollTree *)
		mov	edi, [ebx+78h]
		mov	ds:g_pDispCollTrees, 0
		mov	ds:g_pDispBounds, 0
		mov	ds:g_DispCollTreeCount,	0
		test	edi, edi
		jz	short loc_D4EA3
		mov	dword ptr [ebx+78h], 0

loc_D4EA3:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+8Aj
		mov	esi, [ebx+21Ch]
		test	esi, esi
		jz	short loc_D4EB7
		mov	dword ptr [ebx+21Ch], 0

loc_D4EB7:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+9Bj
		mov	ecx, [ebx+220h]
		test	ecx, ecx
		jz	short loc_D4ECB
		mov	dword ptr [ebx+220h], 0

loc_D4ECB:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+AFj
		mov	edx, [ebx+20Ch]
		test	edx, edx
		jz	short loc_D4EDF
		mov	dword ptr [ebx+20Ch], 0

loc_D4EDF:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+C3j
		mov	eax, [ebx+22Ch]
		test	eax, eax
		jz	short loc_D4EF3
		mov	dword ptr [ebx+22Ch], 0

loc_D4EF3:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+D7j
		mov	eax, [ebx+204h]
		test	eax, eax
		jz	short loc_D4F07
		mov	dword ptr [ebx+204h], 0

loc_D4F07:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+EBj
		mov	eax, [ebx+0CCh]
		mov	dword ptr [ebx+0D0h], 0
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+0E4h], 0
		mov	dword ptr [ebx+0E0h], 0
		test	eax, eax
		mov	byte ptr [ebx+0D8h], 0
		js	short loc_D4F66
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jz	short loc_D4F5C
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx+0C4h], 0

loc_D4F5C:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+138j
		mov	dword ptr [ebx+0C8h], 0

loc_D4F66:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+12Ej
		mov	eax, [ebx+0A8h]
		test	eax, eax
		jz	short loc_D4F7A
		mov	dword ptr [ebx+0A8h], 0

loc_D4F7A:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+15Ej
		mov	eax, [ebx+0B0h]
		test	eax, eax
		jz	short loc_D4F8E
		mov	dword ptr [ebx+0B0h], 0

loc_D4F8E:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+172j
		mov	eax, [ebx+0A0h]
		test	eax, eax
		jz	short loc_D4FA2
		mov	dword ptr [ebx+0A0h], 0

loc_D4FA2:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+186j
		mov	edi, [ebx+98h]
		test	edi, edi
		jz	short loc_D4FB6
		mov	dword ptr [ebx+98h], 0

loc_D4FB6:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+19Aj
		mov	esi, [ebx+88h]
		test	esi, esi
		jz	short loc_D4FCA
		mov	dword ptr [ebx+88h], 0

loc_D4FCA:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+1AEj
		mov	ecx, [ebx+80h]
		test	ecx, ecx
		jz	short loc_D4FDE
		mov	dword ptr [ebx+80h], 0

loc_D4FDE:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+1C2j
		mov	edx, [ebx+68h]
		test	edx, edx
		jz	short loc_D4FEC
		mov	dword ptr [ebx+68h], 0

loc_D4FEC:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+1D3j
		mov	eax, [ebx+0B8h]
		test	eax, eax
		jz	short loc_D5000
		mov	dword ptr [ebx+0B8h], 0

loc_D5000:				; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+1E4j
		mov	dword ptr [ebx+74h], 0
		mov	dword ptr [ebx+64h], 0
		mov	dword ptr [ebx+90h], 0
		mov	dword ptr [ebx+8Ch], 0
		mov	dword ptr [ebx+7Ch], 0
		mov	dword ptr [ebx+84h], 0
		mov	dword ptr [ebx+0A4h], 0
		mov	dword ptr [ebx+0ACh], 0
		mov	dword ptr [ebx+94h], 0
		mov	dword ptr [ebx+200h], 0
		mov	dword ptr [ebx+218h], 0
		mov	dword ptr [ebx+224h], 0
		mov	dword ptr [ebx+208h], 0
		mov	dword ptr [ebx+210h], 0
		mov	dword ptr [ebx+9Ch], 0
		mov	dword ptr [ebx+0B4h], 0
		mov	dword ptr [ebx+0BCh], 0
		mov	dword ptr [ebx+228h], 0
		mov	byte ptr [ebx+4], 0
		mov	dword ptr [ebx], 0
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z24CollisionBSPData_DestroyP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_GetCollisionTree(int)
_Z33CollisionBSPData_GetCollisionTreei proc near
					; CODE XREF: CDispInfo::TestRay(Ray_t  const&,float,float,float	&,Vector2D *,Vector2D *)+2Bp

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		js	short loc_D50E0
		cmp	edx, ds:g_DispCollTreeCount
		jge	short loc_D50E0
		imul	eax, edx, 0F4h
		add	eax, ds:g_pDispCollTrees

loc_D50E0:				; CODE XREF: CollisionBSPData_GetCollisionTree(int)+Aj
					; CollisionBSPData_GetCollisionTree(int)+12j
		pop	ebp
		retn
_Z33CollisionBSPData_GetCollisionTreei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LinkPhysics(void)
_Z28CollisionBSPData_LinkPhysicsv proc near ; CODE XREF: CModelLoader::Init(void)+49p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	ecx, ds:physprop
		test	ecx, ecx
		jz	short loc_D5108

locret_D5100:				; CODE XREF: CollisionBSPData_LinkPhysics(void)+58j
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D5108:				; CODE XREF: CollisionBSPData_LinkPhysics(void)+Ej
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	aVphysicssurfac	; "VPhysicsSurfaceProps001"
		call	ds:g_AppSystemFactory
		mov	dword ptr [esp+4], 0 ; arg
		mov	ds:physprop, eax
		mov	dword ptr [esp], offset	aVphysicscollis	; "VPhysicsCollision007"
		call	ds:g_AppSystemFactory
		mov	edx, ds:physprop
		mov	ds:physcollision, eax
		test	edx, edx
		jz	short loc_D514A
		test	eax, eax
		jnz	short locret_D5100

loc_D514A:				; CODE XREF: CollisionBSPData_LinkPhysics(void)+54j
		mov	dword ptr [esp], offset	aCollisionbspda	; "CollisionBSPData_PreLoad: Can't link ph"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		leave
		retn
_Z28CollisionBSPData_LinkPhysicsv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_PreLoad(CCollisionBSPData *)
_Z24CollisionBSPData_PreLoadP17CCollisionBSPData proc near
					; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+3Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+84h], 1
		mov	dword ptr [eax+0B8h], 0
		mov	dword ptr [eax+200h], 1
		mov	dword ptr [eax+210h], 1
		mov	dword ptr [eax+214h], offset aEmpty ; "**empty**"
		mov	dword ptr [eax+218h], 0
		pop	ebp
		retn
_Z24CollisionBSPData_PreLoadP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadTextures(CCollisionBSPData *)
_Z29CollisionBSPData_LoadTexturesP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+5Ap

var_398		= dword	ptr -398h
var_394		= dword	ptr -394h
var_390		= dword	ptr -390h
var_38C		= dword	ptr -38Ch
var_37C		= dword	ptr -37Ch
var_25C		= dword	ptr -25Ch
var_13C		= dword	ptr -13Ch
var_19		= byte ptr -19h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_37C]
		push	ebx
		sub	esp, 3ACh
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esp+4], 2 ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_25C]
		mov	dword ptr [esp+4], 2Bh ; arg
		mov	[esp], edx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	ecx, [ebp+var_25C]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	ebx, eax
		mov	dword ptr [esp+4], 2Ch ; arg
		lea	eax, [ebp+var_13C]
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_13C]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 3
		jz	short loc_D522F
		mov	dword ptr [esp], offset	aCmod_loadtextu	; "CMod_LoadTextures: funny lump size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D522F:				; CODE XREF: CollisionBSPData_LoadTextures(CCollisionBSPData *)+71j
		lea	ecx, [ebp+var_13C]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[ebp+var_398], eax
		lea	eax, [ebp+var_37C]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		lea	edx, [ebp+var_37C]
		mov	[ebp+var_38C], eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 1Fh
		jz	short loc_D5275
		mov	dword ptr [esp], offset	aCmod_loadtextu	; "CMod_LoadTextures: funny lump size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5275:				; CODE XREF: CollisionBSPData_LoadTextures(CCollisionBSPData *)+B7j
		lea	ecx, [ebp+var_37C]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		shr	eax, 5
		test	eax, eax
		mov	[ebp+var_394], eax
		jz	loc_D546D
		cmp	[ebp+var_394], 800h
		jle	short loc_D52AC
		mov	dword ptr [esp], offset	aMapHasTooManyT	; "Map has too many textures"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D52AC:				; CODE XREF: CollisionBSPData_LoadTextures(CCollisionBSPData *)+EEj
					; CollisionBSPData_LoadTextures(CCollisionBSPData *)+2C9j
		mov	eax, [ebp+var_394]
		mov	dword ptr [esp+4], 1
		shl	eax, 3
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	[esi+220h], eax
		mov	eax, [ebp+var_394]
		lea	edx, [ebp+var_25C]
		mov	[esi+218h], eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	[esi+21Ch], eax
		lea	ecx, [ebp+var_25C]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, [esi+21Ch]
		mov	[esp+4], ebx	; src
		mov	[esp+8], eax	; n
		mov	[esp], edx	; dest
		call	memcpy
		mov	ebx, [ebp+var_394]
		test	ebx, ebx
		jz	loc_D5438
		xor	ebx, ebx
		jmp	short loc_D534E
; ---------------------------------------------------------------------------
		align 8

loc_D5338:				; CODE XREF: CollisionBSPData_LoadTextures(CCollisionBSPData *)+210j
					; CollisionBSPData_LoadTextures(CCollisionBSPData *)+223j ...
		add	[ebp+var_38C], 20h
		add	ebx, 1
		cmp	[ebp+var_394], ebx
		jz	loc_D5438

loc_D534E:				; CODE XREF: CollisionBSPData_LoadTextures(CCollisionBSPData *)+17Fj
		mov	ecx, [ebp+var_38C]
		lea	eax, ds:0[ebx*8]
		mov	[ebp+var_390], eax
		add	eax, [esi+220h]
		mov	edx, [ecx+0Ch]
		mov	ecx, [ebp+var_398]
		mov	edx, [ecx+edx*4]
		add	edx, [esi+21Ch]
		mov	word ptr [eax+4], 0
		mov	word ptr [eax+6], 0
		mov	[eax], edx
		mov	eax, ds:materials
		mov	edx, [eax]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aWorldTextures ; "World textures"
		mov	ecx, [esi+220h]
		mov	ecx, [ecx+ebx*8]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+11Ch]
		test	eax, eax
		mov	edi, eax
		jz	loc_D5338
		mov	eax, [eax]
		mov	[esp], edi
		call	dword ptr [eax+0A8h]
		test	al, al
		jnz	loc_D5338
		mov	eax, [edi]
		lea	ecx, [ebp+var_19]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	dword ptr [esp+4], offset aSurfaceprop ; "$surfaceprop"
		mov	[esp], edi
		call	dword ptr [eax+2Ch]
		cmp	[ebp+var_19], 0
		jz	loc_D5338
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		mov	ecx, eax
		mov	eax, ds:physprop
		mov	edi, [esi+220h]
		mov	edx, [eax]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+10h]
		mov	edx, [ebp+var_390]
		mov	[edi+edx+4], ax
		jmp	loc_D5338
; ---------------------------------------------------------------------------
		align 8

loc_D5438:				; CODE XREF: CollisionBSPData_LoadTextures(CCollisionBSPData *)+177j
					; CollisionBSPData_LoadTextures(CCollisionBSPData *)+198j
		lea	ecx, [ebp+var_13C]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	eax, [ebp+var_25C]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	edx, [ebp+var_37C]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 3ACh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D546D:				; CODE XREF: CollisionBSPData_LoadTextures(CCollisionBSPData *)+DEj
		mov	dword ptr [esp], offset	aMapWithNoTextu	; "Map with no textures"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D52AC
_Z29CollisionBSPData_LoadTexturesP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_D5480:				; CODE XREF: .text:000D54B4j
		lea	edx, [ebp-37Ch]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-13Ch]
		mov	ebx, eax
		mov	[esp], ecx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()

loc_D54A6:				; CODE XREF: .text:000D54B8j
		lea	eax, [ebp-25Ch]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		jmp	short loc_D5480
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D54A6
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *, CMapLoadHelper &)
_Z36CollisionBSPData_LoadLeafs_Version_0P17CCollisionBSPDataR14CMapLoadHelper proc near
					; CODE XREF: CollisionBSPData_LoadLeafs(CCollisionBSPData *)+3Bp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[esp], edi
		mov	ebx, eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 24924925h
		mov	ecx, eax
		shr	eax, 3
		mul	edx
		imul	edx, 38h
		cmp	ecx, edx
		jnz	loc_D5640

loc_D54F8:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+18Cj
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	ecx, 24924925h
		shr	eax, 3
		mul	ecx
		test	edx, edx
		mov	[ebp+var_20], edx
		jz	loc_D5658
		cmp	[ebp+var_20], 10000h
		jle	short loc_D552A
		mov	dword ptr [esp], offset	aMapHasTooManyP	; "Map has too many planes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D552A:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+5Cj
		mov	eax, [ebp+var_20]
		mov	dword ptr [esp+4], 1
		add	eax, 1
		shl	eax, 4
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebp+var_20]
		xor	ecx, ecx
		mov	[esi+88h], eax
		mov	dword ptr [esi+210h], 0
		mov	[esi+84h], edx
		jmp	short loc_D5569
; ---------------------------------------------------------------------------

loc_D5560:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+11Aj
		mov	eax, [esi+88h]
		add	ebx, 38h

loc_D5569:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+9Ej
		mov	edx, ecx
		shl	edx, 4
		add	eax, edx
		mov	edx, [ebx]
		mov	[eax], edx
		movsx	edx, word ptr [ebx+4]
		mov	[ebp+var_1C], edx
		mov	[eax+4], dx
		movzx	edx, word ptr [eax+6]
		movzx	edi, word ptr [ebx+6]
		and	dx, 0FE00h
		and	di, 1FFh
		or	edx, edi
		mov	[eax+6], dx
		movzx	edi, byte ptr [ebx+7]
		movzx	edx, byte ptr [eax+7]
		and	edi, 0FFFFFFFEh
		and	edx, 1
		or	edx, edi
		mov	[eax+7], dl
		movzx	edx, word ptr [ebx+18h]
		mov	[eax+8], dx
		movzx	edx, word ptr [ebx+1Ah]
		mov	word ptr [eax+0Eh], 0
		mov	[eax+0Ah], dx
		mov	eax, [ebp+var_1C]
		cmp	eax, [esi+210h]
		jl	short loc_D55D4
		add	eax, 1
		mov	[esi+210h], eax

loc_D55D4:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+109j
		add	ecx, 1
		cmp	[ebp+var_20], ecx
		jnz	short loc_D5560
		mov	eax, [esi+88h]

loc_D55E2:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+1D2j
		cmp	dword ptr [eax], 1
		jz	short loc_D55F3
		mov	dword ptr [esp], offset	aMapLeaf0IsNotC	; "Map leaf 0 is not CONTENTS_SOLID"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D55F3:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+125j
		mov	dword ptr [esi+90h], 0
		mov	eax, [esi+84h]
		mov	[esi+8Ch], eax
		shl	eax, 4
		add	eax, [esi+88h]
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		add	dword ptr [esi+84h], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D5640:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+32j
		mov	dword ptr [esp], offset	aCollisionbsp_0	; "CollisionBSPData_LoadLeafs: funny lump "...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D54F8
; ---------------------------------------------------------------------------
		align 8

loc_D5658:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper &)+4Fj
		mov	dword ptr [esp], offset	aMapWithNoLeafs	; "Map with no leafs"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], 10h
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	dword ptr [esi+84h], 0
		mov	[esi+88h], eax
		mov	dword ptr [esi+210h], 0
		jmp	loc_D55E2
_Z36CollisionBSPData_LoadLeafs_Version_0P17CCollisionBSPDataR14CMapLoadHelper endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *, CMapLoadHelper &)
_Z36CollisionBSPData_LoadLeafs_Version_1P17CCollisionBSPDataR14CMapLoadHelper proc near
					; CODE XREF: CollisionBSPData_LoadLeafs(CCollisionBSPData *)+77p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[esp], edi
		mov	ebx, eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 1Fh
		jnz	loc_D5810

loc_D56C9:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+17Cj
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	[ebp+var_20], eax
		shr	[ebp+var_20], 5
		mov	edi, [ebp+var_20]
		test	edi, edi
		jz	loc_D5828
		cmp	[ebp+var_20], 10000h
		jle	short loc_D56F8
		mov	dword ptr [esp], offset	aMapHasTooManyP	; "Map has too many planes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D56F8:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+4Aj
		mov	eax, [ebp+var_20]
		mov	dword ptr [esp+4], 1
		add	eax, 1
		shl	eax, 4
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebp+var_20]
		xor	ecx, ecx
		mov	[esi+88h], eax
		mov	dword ptr [esi+210h], 0
		mov	[esi+84h], edx
		jmp	short loc_D5739
; ---------------------------------------------------------------------------
		align 10h

loc_D5730:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+10Aj
		mov	eax, [esi+88h]
		add	ebx, 20h

loc_D5739:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+8Cj
		mov	edx, ecx
		shl	edx, 4
		add	eax, edx
		mov	edx, [ebx]
		mov	[eax], edx
		movsx	edx, word ptr [ebx+4]
		mov	[ebp+var_1C], edx
		mov	[eax+4], dx
		movzx	edx, word ptr [eax+6]
		movzx	edi, word ptr [ebx+6]
		and	dx, 0FE00h
		and	di, 1FFh
		or	edx, edi
		mov	[eax+6], dx
		movzx	edi, byte ptr [ebx+7]
		movzx	edx, byte ptr [eax+7]
		and	edi, 0FFFFFFFEh
		and	edx, 1
		or	edx, edi
		mov	[eax+7], dl
		movzx	edx, word ptr [ebx+18h]
		mov	[eax+8], dx
		movzx	edx, word ptr [ebx+1Ah]
		mov	word ptr [eax+0Eh], 0
		mov	[eax+0Ah], dx
		mov	eax, [ebp+var_1C]
		cmp	eax, [esi+210h]
		jl	short loc_D57A4
		add	eax, 1
		mov	[esi+210h], eax

loc_D57A4:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+F9j
		add	ecx, 1
		cmp	[ebp+var_20], ecx
		jnz	short loc_D5730
		mov	eax, [esi+88h]

loc_D57B2:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+1C2j
		cmp	dword ptr [eax], 1
		jz	short loc_D57C3
		mov	dword ptr [esp], offset	aMapLeaf0IsNotC	; "Map leaf 0 is not CONTENTS_SOLID"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D57C3:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+115j
		mov	dword ptr [esi+90h], 0
		mov	eax, [esi+84h]
		mov	[esi+8Ch], eax
		shl	eax, 4
		add	eax, [esi+88h]
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		add	dword ptr [esi+84h], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D5810:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+23j
		mov	dword ptr [esp], offset	aCollisionbsp_0	; "CollisionBSPData_LoadLeafs: funny lump "...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D56C9
; ---------------------------------------------------------------------------
		align 8

loc_D5828:				; CODE XREF: CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper &)+3Dj
		mov	dword ptr [esp], offset	aMapWithNoLeafs	; "Map with no leafs"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], 10h
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	dword ptr [esi+84h], 0
		mov	[esi+88h], eax
		mov	dword ptr [esi+210h], 0
		jmp	loc_D57B2
_Z36CollisionBSPData_LoadLeafs_Version_1P17CCollisionBSPDataR14CMapLoadHelper endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadLeafs(CCollisionBSPData *)
_Z26CollisionBSPData_LoadLeafsP17CCollisionBSPData proc	near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+86p

var_128		= dword	ptr -128h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 138h
		mov	[ebp+var_8], ebx
		lea	ebx, [ebp+var_128]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esp+4], 0Ah ; arg
		mov	[esp], ebx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], ebx
		call	_ZNK14CMapLoadHelper11LumpVersionEv ; CMapLoadHelper::LumpVersion(void)
		test	eax, eax
		jnz	short loc_D58C8
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z36CollisionBSPData_LoadLeafs_Version_0P17CCollisionBSPDataR14CMapLoadHelper ;	CollisionBSPData_LoadLeafs_Version_0(CCollisionBSPData *,CMapLoadHelper	&)

loc_D58B0:				; CODE XREF: CollisionBSPData_LoadLeafs(CCollisionBSPData *)+69j
					; CollisionBSPData_LoadLeafs(CCollisionBSPData *)+7Cj
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D58C8:				; CODE XREF: CollisionBSPData_LoadLeafs(CCollisionBSPData *)+32j
		cmp	eax, 1
		jz	short loc_D58E0
		mov	dword ptr [esp], offset	aUnknownLump_le	; "Unknown LUMP_LEAFS version\n"
		call	Error
		jmp	short loc_D58B0
; ---------------------------------------------------------------------------
		align 10h

loc_D58E0:				; CODE XREF: CollisionBSPData_LoadLeafs(CCollisionBSPData *)+5Bj
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z36CollisionBSPData_LoadLeafs_Version_1P17CCollisionBSPDataR14CMapLoadHelper ;	CollisionBSPData_LoadLeafs_Version_1(CCollisionBSPData *,CMapLoadHelper	&)
		jmp	short loc_D58B0
_Z26CollisionBSPData_LoadLeafsP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], esi
		call	_Unwind_Resume

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadLeafBrushes(CCollisionBSPData *)
_Z32CollisionBSPData_LoadLeafBrushesP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+9Ap

var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_138]
		push	ebx
		sub	esp, 14Ch
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esp+4], 11h ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	ebx, eax
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 1
		jz	short loc_D5953
		mov	dword ptr [esp], offset	aCmod_loadleafb	; "CMod_LoadLeafBrushes: funny lump size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5953:				; CODE XREF: CollisionBSPData_LoadLeafBrushes(CCollisionBSPData	*)+45j
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		shr	eax, 1
		mov	[ebp+var_13C], eax
		jz	loc_D59F0
		cmp	[ebp+var_13C], 10000h
		jle	short loc_D5987
		mov	dword ptr [esp], offset	aMapHasTooManyL	; "Map has too many leafbrushes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5987:				; CODE XREF: CollisionBSPData_LoadLeafBrushes(CCollisionBSPData	*)+79j
					; CollisionBSPData_LoadLeafBrushes(CCollisionBSPData *)+FCj
		mov	edi, [ebp+var_13C]
		mov	dword ptr [esp+4], 0
		add	edi, edi
		mov	[esp], edi
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebp+var_13C]
		mov	[esi+98h], eax
		test	edx, edx
		mov	[esi+94h], edx
		jz	short loc_D59D5
		xor	edx, edx
		jmp	short loc_D59C6
; ---------------------------------------------------------------------------
		align 10h

loc_D59C0:				; CODE XREF: CollisionBSPData_LoadLeafBrushes(CCollisionBSPData	*)+D3j
		mov	eax, [esi+98h]

loc_D59C6:				; CODE XREF: CollisionBSPData_LoadLeafBrushes(CCollisionBSPData	*)+B7j
		movzx	ecx, word ptr [ebx+edx]
		mov	[eax+edx], cx
		add	edx, 2
		cmp	edi, edx
		jnz	short loc_D59C0

loc_D59D5:				; CODE XREF: CollisionBSPData_LoadLeafBrushes(CCollisionBSPData	*)+B3j
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D59F0:				; CODE XREF: CollisionBSPData_LoadLeafBrushes(CCollisionBSPData	*)+69j
		mov	dword ptr [esp], offset	aMapWithNoPlane	; "Map with no planes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	short loc_D5987
_Z32CollisionBSPData_LoadLeafBrushesP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		lea	edx, [ebp-138h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadPlanes(CCollisionBSPData	*)
_Z27CollisionBSPData_LoadPlanesP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+AEp

var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_138]
		push	ebx
		sub	esp, 14Ch
		mov	dword ptr [esp+4], 1 ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		lea	ecx, [ebp+var_138]
		mov	[ebp+var_140], eax
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 0CCCCCCCDh
		mov	ecx, eax
		mul	edx
		shr	edx, 4
		lea	eax, [edx+edx*4]
		shl	eax, 2
		cmp	ecx, eax
		jz	short loc_D5A86
		mov	dword ptr [esp], offset	aCollisionbsp_1	; "CollisionBSPData_LoadPlanes:	funny lump"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5A86:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+58j
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	ecx, 0CCCCCCCDh
		mul	ecx
		shr	edx, 4
		test	edx, edx
		mov	[ebp+var_13C], edx
		jz	loc_D5B79
		cmp	[ebp+var_13C], 10000h
		jle	short loc_D5AC4
		mov	dword ptr [esp], offset	aMapHasTooManyP	; "Map has too many planes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5AC4:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+96j
					; CollisionBSPData_LoadPlanes(CCollisionBSPData	*)+165j
		mov	edx, [ebp+var_13C]
		mov	dword ptr [esp+4], 1
		lea	eax, [edx+edx*4]
		shl	eax, 2
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebp+var_13C]
		mov	ecx, [ebp+arg_0]
		test	edx, edx
		mov	[ecx+78h], eax
		mov	[ecx+74h], edx
		jz	short loc_D5B60
		mov	edx, [ebp+var_140]
		xor	esi, esi
		nop
		lea	esi, [esi+0]

loc_D5B00:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+127j
		mov	ecx, edx
		xor	ebx, ebx
		sub	ecx, [ebp+var_140]
		add	eax, ecx
		xor	ecx, ecx

loc_D5B0E:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+102j
		fld	dword ptr [edx+ecx*4]
		fst	dword ptr [eax+ecx*4]
		fldz
		fcomip	st, st(1)
		fstp	st
		ja	short loc_D5B50

loc_D5B1C:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+139j
		add	ecx, 1
		cmp	ecx, 3
		jnz	short loc_D5B0E
		mov	ecx, [edx+0Ch]
		add	esi, 1
		cmp	[ebp+var_13C], esi
		mov	[eax+0Ch], ecx
		mov	ecx, [edx+10h]
		mov	[eax+11h], bl
		mov	[eax+10h], cl
		jz	short loc_D5B60
		mov	ecx, [ebp+arg_0]
		add	edx, 14h
		mov	eax, [ecx+78h]
		jmp	short loc_D5B00
; ---------------------------------------------------------------------------
		align 10h

loc_D5B50:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+FAj
		mov	edi, 1
		shl	edi, cl
		or	ebx, edi
		jmp	short loc_D5B1C
; ---------------------------------------------------------------------------
		align 10h

loc_D5B60:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+D1j
					; CollisionBSPData_LoadPlanes(CCollisionBSPData	*)+11Cj
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D5B79:				; CODE XREF: CollisionBSPData_LoadPlanes(CCollisionBSPData *)+86j
		mov	dword ptr [esp], offset	aMapWithNoPlane	; "Map with no planes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D5AC4
_Z27CollisionBSPData_LoadPlanesP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		lea	edx, [ebp-138h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadBrushes(CCollisionBSPData *)
_Z28CollisionBSPData_LoadBrushesP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+C2p

var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_138]
		push	ebx
		sub	esp, 13Ch
		mov	edi, [ebp+arg_0]
		mov	dword ptr [esp+4], 12h ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	ebx, eax
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 0AAAAAAABh
		mov	ecx, eax
		mul	edx
		shr	edx, 3
		lea	eax, [edx+edx*2]
		shl	eax, 2
		cmp	ecx, eax
		jz	short loc_D5C15
		mov	dword ptr [esp], offset	aCmod_loadbrush	; "CMod_LoadBrushes: funny lump	size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5C15:				; CODE XREF: CollisionBSPData_LoadBrushes(CCollisionBSPData *)+57j
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	esi, 0AAAAAAABh
		mul	esi
		mov	esi, edx
		shr	esi, 3
		cmp	esi, 2000h
		jle	short loc_D5C43
		mov	dword ptr [esp], offset	aMapHasTooManyB	; "Map has too many brushes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5C43:				; CODE XREF: CollisionBSPData_LoadBrushes(CCollisionBSPData *)+85j
		lea	eax, ds:0[esi*8]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		test	esi, esi
		mov	[edi+0A8h], eax
		mov	[edi+0A4h], esi
		jz	short loc_D5C95
		xor	edx, edx
		jmp	short loc_D5C76
; ---------------------------------------------------------------------------
		align 10h

loc_D5C70:				; CODE XREF: CollisionBSPData_LoadBrushes(CCollisionBSPData *)+E3j
		mov	eax, [edi+0A8h]

loc_D5C76:				; CODE XREF: CollisionBSPData_LoadBrushes(CCollisionBSPData *)+BCj
		mov	ecx, [ebx]
		lea	eax, [eax+edx*8]
		add	edx, 1
		mov	[eax+6], cx
		mov	ecx, [ebx+4]
		mov	[eax+4], cx
		mov	ecx, [ebx+8]
		add	ebx, 0Ch
		cmp	esi, edx
		mov	[eax], ecx
		jnz	short loc_D5C70

loc_D5C95:				; CODE XREF: CollisionBSPData_LoadBrushes(CCollisionBSPData *)+B8j
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 13Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z28CollisionBSPData_LoadBrushesP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		lea	edx, [ebp-138h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadBrushSides(CCollisionBSPData *, CUtlVector<unsigned short, CUtlMemory<unsigned short, int>> &)
_Z31CollisionBSPData_LoadBrushSidesP17CCollisionBSPDataR10CUtlVectorIt10CUtlMemoryItiEE	proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+DAp

var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_138]
		push	ebx
		sub	esp, 15Ch
		mov	dword ptr [esp+4], 13h ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		lea	ecx, [ebp+var_138]
		mov	[ebp+var_150], eax
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 7
		jz	short loc_D5D24
		mov	dword ptr [esp], offset	aCmod_loadbru_0	; "CMod_LoadBrushSides:	funny lump size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D5D24:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+46j
		lea	ebx, [ebp+var_138]
		mov	[esp], ebx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		cmp	eax, 80007h
		ja	loc_D60BF
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0A4h]
		test	eax, eax
		jle	loc_D60DC

loc_D5D4E:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+406j
		mov	[ebp+var_140], 0
		xor	edi, edi
		mov	[ebp+var_144], 0
		jmp	short loc_D5D97
; ---------------------------------------------------------------------------
		align 10h

loc_D5D70:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+EFj
					; CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+113j ...
		movzx	edx, word ptr [ebp+var_13C]
		cmp	edx, eax
		jz	loc_D5E1A
		mov	ebx, [ebp+arg_0]
		add	edi, 1
		add	[ebp+var_140], edx
		cmp	[ebx+0A4h], edi
		jle	loc_D5E39

loc_D5D97:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+94j
					; CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+163j
		mov	esi, [ebp+arg_0]
		lea	ecx, ds:0[edi*8]
		add	ecx, [esi+0A8h]
		mov	ebx, [esi+78h]
		movzx	eax, word ptr [ecx+4]
		mov	word ptr [ebp+var_13C],	ax
		xor	eax, eax
		cmp	word ptr [ebp+var_13C],	6
		jnz	short loc_D5D70
		movzx	edx, word ptr [ecx+6]
		mov	esi, [ebp+var_150]
		mov	[ebp+var_148], edx
		movzx	esi, word ptr [esi+edx*8]
		lea	edx, [esi+esi*4]
		mov	[ebp+var_14C], esi
		cmp	byte ptr [ebx+edx*4+10h], 2
		ja	short loc_D5D70
		mov	esi, [ebp+var_150]
		mov	al, 1
		mov	edx, [ebp+var_148]
		lea	edx, [esi+edx*8]
		mov	esi, edx
		nop
		lea	esi, [esi+0]

loc_D5E00:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+148j
		movzx	edx, word ptr [esi+eax*8]
		lea	edx, [edx+edx*4]
		cmp	byte ptr [ebx+edx*4+10h], 2
		ja	loc_D5D70
		add	eax, 1
		cmp	eax, 6
		jnz	short loc_D5E00

loc_D5E1A:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+A9j
		mov	ebx, [ebp+arg_0]
		mov	word ptr [ecx+4], 0FFFFh
		add	edi, 1
		add	[ebp+var_144], 1
		cmp	[ebx+0A4h], edi
		jg	loc_D5D97

loc_D5E39:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+C1j
		mov	eax, [ebp+var_140]
		shl	eax, 3

loc_D5E42:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+422j
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+var_144]
		mov	[esi+68h], eax
		lea	eax, [ebx+ebx*2]
		mov	dword ptr [esp+4], 0
		shl	eax, 4
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	ebx, [ebp+var_140]
		mov	[esi+70h], eax
		mov	eax, [esi+0A4h]
		mov	[esi+64h], ebx
		mov	ebx, [ebp+var_144]
		test	eax, eax
		mov	[esi+6Ch], ebx
		jle	loc_D5FF8
		mov	[ebp+var_144], 0
		mov	[ebp+var_154], 0
		mov	[ebp+var_14C], 0
		lea	esi, [esi+0]

loc_D5EB8:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+322j
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+var_14C]
		mov	ebx, [ebx+0A8h]
		shl	esi, 3
		add	esi, ebx
		movzx	edx, word ptr [esi+4]
		mov	[ebp+var_148], esi
		cmp	dx, 0FFFFh
		jz	loc_D6018
		mov	ebx, [ebp+var_148]
		test	dx, dx
		movzx	esi, word ptr [ebp+var_144]
		movzx	eax, word ptr [ebx+6]
		mov	[ebx+6], si
		jz	loc_D5FDC
		mov	ebx, [ebp+var_144]
		movzx	eax, ax
		mov	[ebp+var_13C], 0
		mov	esi, [ebp+var_150]
		shl	ebx, 3
		mov	[ebp+var_140], ebx
		lea	ebx, [esi+eax*8]
		jmp	short loc_D5F76
; ---------------------------------------------------------------------------
		align 4

loc_D5F28:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+2CDj
					; CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+2DBj
		test	edi, edi
		mov	eax, 0FFFFFFFFh
		js	short loc_D5F3A
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		movzx	eax, word ptr [eax+edi*2]

loc_D5F3A:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+25Fj
		mov	[esi+4], ax
		xor	eax, eax
		cmp	word ptr [ebx+6], 0
		setnz	al
		add	ebx, 8
		add	[ebp+var_13C], 1
		mov	[esi+6], ax
		mov	esi, [ebp+var_148]
		add	[ebp+var_144], 1
		add	[ebp+var_140], 8
		movzx	eax, word ptr [esi+4]
		cmp	eax, [ebp+var_13C]
		jle	short loc_D5FDC

loc_D5F76:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+253j
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+var_140]
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		add	esi, [eax+68h]
		movzx	eax, word ptr [ebx]
		lea	eax, [eax+eax*4]
		shl	eax, 2
		add	eax, [edx+78h]
		mov	[esi], eax
		movsx	edi, word ptr [ebx+2]
		cmp	edi, [ecx+0Ch]
		jl	short loc_D5F28
		mov	dword ptr [esp], offset	aBadBrushsideTe	; "Bad brushside texinfo"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D5F28
; ---------------------------------------------------------------------------

loc_D5FB0:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+384j
		fstp	st
		mov	esi, [ebp+var_148]
		mov	word ptr [edi+2Ch], 0
		movzx	eax, word ptr [ebp+var_154]
		mov	word ptr [edi+2Eh], 0
		add	[ebp+var_154], 1
		mov	word ptr [esi+4], 0FFFFh
		mov	[esi+6], ax

loc_D5FDC:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+228j
					; CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+2A4j
		add	[ebp+var_14C], 1
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+var_14C]
		cmp	[ebx+0A4h], esi
		jg	loc_D5EB8

loc_D5FF8:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+1C1j
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D6018:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+20Aj
		mov	esi, [ebp+var_154]
		fld1
		mov	ebx, [ebp+arg_0]
		lea	edi, [esi+esi*2]
		mov	esi, [ebx+78h]
		shl	edi, 4
		add	edi, [ebx+70h]
		mov	[ebp+var_13C], esi
		xor	esi, esi
		jmp	short loc_D605A
; ---------------------------------------------------------------------------
		align 10h

loc_D6040:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+3D4j
		fstp	st
		mov	edx, [edx+0Ch]
		mov	[edi+ebx+10h], edx
		mov	[edi+eax*2+26h], cx

loc_D604E:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+3DEj
					; CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+3EDj
		add	esi, 1
		cmp	esi, 6
		jz	loc_D5FB0

loc_D605A:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+367j
		mov	ebx, [ebp+var_148]
		mov	edx, [ebp+var_150]
		mov	ecx, [ebp+var_13C]
		movzx	eax, word ptr [ebx+6]
		add	eax, esi
		lea	eax, [edx+eax*8]
		movzx	edx, word ptr [eax]
		movsx	eax, word ptr [eax+2]
		lea	edx, [edx+edx*4]
		lea	edx, [ecx+edx*4]
		test	eax, eax
		mov	ecx, 0FFFFh
		js	short loc_D6094
		mov	ebx, [ebp+arg_4]
		mov	ecx, [ebx]
		movzx	ecx, word ptr [ecx+eax*2]

loc_D6094:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+3B9j
		movzx	eax, byte ptr [edx+10h]
		fld	dword ptr [edx+eax*4]
		lea	ebx, ds:0[eax*4]
		fcomi	st, st(1)
		jz	short loc_D6040
		fld1
		fchs
		fcomip	st, st(1)
		fstp	st
		jnz	short loc_D604E
		fld	dword ptr [edx+0Ch]
		fchs
		fstp	dword ptr [edi+eax*4]
		mov	[edi+eax*2+20h], cx
		jmp	short loc_D604E
; ---------------------------------------------------------------------------

loc_D60BF:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+67j
		mov	dword ptr [esp], offset	aMapHasTooManyP	; "Map has too many planes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0A4h]
		test	eax, eax
		jg	loc_D5D4E

loc_D60DC:				; CODE XREF: CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+78j
		mov	[ebp+var_140], 0
		xor	eax, eax
		mov	[ebp+var_144], 0
		jmp	loc_D5E42
_Z31CollisionBSPData_LoadBrushSidesP17CCollisionBSPDataR10CUtlVectorIt10CUtlMemoryItiEE	endp

; ---------------------------------------------------------------------------
		lea	edx, [ebp-138h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadSubmodels(CCollisionBSPData *)
_Z30CollisionBSPData_LoadSubmodelsP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+EEp

var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_138]
		push	ebx
		sub	esp, 14Ch
		mov	dword ptr [esp+4], 0Eh ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		lea	ecx, [ebp+var_138]
		mov	ebx, eax
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 0AAAAAAABh
		mov	ecx, eax
		mul	edx
		shr	edx, 5
		lea	eax, [edx+edx*2]
		shl	eax, 4
		cmp	ecx, eax
		jz	short loc_D6172
		mov	dword ptr [esp], offset	aCmod_loadsubmo	; "CMod_LoadSubmodels: funny lump size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D6172:				; CODE XREF: CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+54j
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	ecx, 0AAAAAAABh
		mul	ecx
		shr	edx, 5
		test	edx, edx
		mov	[ebp+var_13C], edx
		jz	loc_D625B
		cmp	[ebp+var_13C], 400h
		jle	short loc_D61B0
		mov	dword ptr [esp], offset	aMapHasTooManyM	; "Map has too many models"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D61B0:				; CODE XREF: CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+92j
					; CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+157j
		imul	eax, [ebp+var_13C], 34h
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebp+var_13C]
		mov	ecx, [ebp+arg_0]
		test	edx, edx
		mov	[ecx+0A0h], eax
		mov	[ecx+9Ch], edx
		jz	short loc_D6242
		xor	edi, edi
		xor	esi, esi
		mov	edx, eax
		fld1
		nop
		lea	esi, [esi+0]

loc_D61F0:				; CODE XREF: CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+126j
		add	edx, edi
		xor	eax, eax

loc_D61F4:				; CODE XREF: CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+104j
		fld	dword ptr [ebx+eax]
		fsub	st, st(1)
		fstp	dword ptr [edx+eax]
		fld	dword ptr [ebx+eax+0Ch]
		fadd	st, st(1)
		fstp	dword ptr [edx+eax+0Ch]
		mov	ecx, [ebx+eax+18h]
		mov	[edx+eax+18h], ecx
		add	eax, 4
		cmp	eax, 0Ch
		jnz	short loc_D61F4
		add	esi, 1
		mov	eax, [ebx+24h]
		add	edi, 34h
		cmp	[ebp+var_13C], esi
		mov	[edx+24h], eax
		jz	short loc_D6240
		mov	ecx, [ebp+arg_0]
		add	ebx, 30h
		mov	edx, [ecx+0A0h]
		jmp	short loc_D61F0
; ---------------------------------------------------------------------------
		align 10h

loc_D6240:				; CODE XREF: CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+118j
		fstp	st

loc_D6242:				; CODE XREF: CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+CEj
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D625B:				; CODE XREF: CollisionBSPData_LoadSubmodels(CCollisionBSPData *)+82j
		mov	dword ptr [esp], offset	aMapWithNoModel	; "Map with no models"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D61B0
_Z30CollisionBSPData_LoadSubmodelsP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		lea	edx, [ebp-138h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadNodes(CCollisionBSPData *)
_Z26CollisionBSPData_LoadNodesP17CCollisionBSPData proc	near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+102p

var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_138]
		push	ebx
		sub	esp, 14Ch
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esp+4], 5 ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	ebx, eax
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 1Fh
		jz	short loc_D62E3
		mov	dword ptr [esp], offset	aCollisionbsp_2	; "CollisionBSPData_LoadNodes: funny lump "...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D62E3:				; CODE XREF: CollisionBSPData_LoadNodes(CCollisionBSPData *)+45j
		lea	edx, [ebp+var_138]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		shr	eax, 5
		test	eax, eax
		mov	[ebp+var_13C], eax
		jz	loc_D63A8
		cmp	[ebp+var_13C], 10000h
		jle	short loc_D631A
		mov	dword ptr [esp], offset	aMapHasTooManyN	; "Map has too many nodes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D631A:				; CODE XREF: CollisionBSPData_LoadNodes(CCollisionBSPData *)+7Cj
					; CollisionBSPData_LoadNodes(CCollisionBSPData *)+124j
		mov	edx, [ebp+var_13C]
		mov	dword ptr [esp+4], 1
		lea	eax, [edx+edx*2+12h]
		shl	eax, 2
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebp+var_13C]
		mov	[esi+80h], eax
		mov	[esi], eax
		test	edx, edx
		mov	[esi+7Ch], edx
		jz	short loc_D638A
		xor	edi, edi
		xor	ecx, ecx
		jmp	short loc_D635E
; ---------------------------------------------------------------------------
		align 8

loc_D6358:				; CODE XREF: CollisionBSPData_LoadNodes(CCollisionBSPData *)+F8j
		mov	eax, [esi+80h]

loc_D635E:				; CODE XREF: CollisionBSPData_LoadNodes(CCollisionBSPData *)+C0j
		mov	edx, [ebx]
		add	eax, edi
		add	ecx, 1
		add	edi, 0Ch
		lea	edx, [edx+edx*4]
		shl	edx, 2
		add	edx, [esi+78h]
		mov	[eax], edx
		mov	edx, [ebx+4]
		mov	[eax+4], edx
		mov	edx, [ebx+8]
		add	ebx, 20h
		cmp	[ebp+var_13C], ecx
		mov	[eax+8], edx
		jnz	short loc_D6358

loc_D638A:				; CODE XREF: CollisionBSPData_LoadNodes(CCollisionBSPData *)+BAj
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D63A8:				; CODE XREF: CollisionBSPData_LoadNodes(CCollisionBSPData *)+6Cj
		mov	dword ptr [esp], offset	aMapHasNoNodes ; "Map has no nodes"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D631A
_Z26CollisionBSPData_LoadNodesP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		lea	edx, [ebp-138h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short _Z26CollisionBSPData_LoadAreasP17CCollisionBSPData ; CollisionBSPData_LoadAreas(CCollisionBSPData	*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadAreas(CCollisionBSPData *)
_Z26CollisionBSPData_LoadAreasP17CCollisionBSPData proc	near ; CODE XREF: .text:000D63D1j
					; CollisionBSPData_Load(char  const*,CCollisionBSPData *)+116p

var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_138]
		push	ebx
		sub	esp, 13Ch
		mov	[esp], eax	; int
		mov	edi, [ebp+arg_0]
		mov	dword ptr [esp+4], 14h ; arg
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	ebx, eax
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 7
		jz	short loc_D6433
		mov	dword ptr [esp], offset	aCmod_loadareas	; "CMod_LoadAreas: funny lump size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D6433:				; CODE XREF: CollisionBSPData_LoadAreas(CCollisionBSPData *)+45j
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	esi, eax
		shr	esi, 3
		cmp	esi, 100h
		jle	short loc_D645A
		mov	dword ptr [esp], offset	aMapHasTooManyA	; "Map has too many areas"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D645A:				; CODE XREF: CollisionBSPData_LoadAreas(CCollisionBSPData *)+6Cj
		mov	eax, esi
		mov	dword ptr [esp+4], 1
		shl	eax, 4
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		test	esi, esi
		mov	[edi+204h], eax
		mov	[edi+200h], esi
		jz	short loc_D64B6
		xor	edx, edx
		jmp	short loc_D648E
; ---------------------------------------------------------------------------
		align 8

loc_D6488:				; CODE XREF: CollisionBSPData_LoadAreas(CCollisionBSPData *)+D4j
		mov	eax, [edi+204h]

loc_D648E:				; CODE XREF: CollisionBSPData_LoadAreas(CCollisionBSPData *)+A1j
		mov	ecx, edx
		shl	ecx, 4
		add	eax, ecx
		mov	ecx, [ebx+edx*8]
		mov	[eax], ecx
		mov	ecx, [ebx+edx*8+4]
		add	edx, 1
		mov	dword ptr [eax+0Ch], 0
		cmp	esi, edx
		mov	dword ptr [eax+8], 0
		mov	[eax+4], ecx
		jnz	short loc_D6488

loc_D64B6:				; CODE XREF: CollisionBSPData_LoadAreas(CCollisionBSPData *)+9Dj
		lea	eax, [ebp+var_138]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 13Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z26CollisionBSPData_LoadAreasP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-138h]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadAreaPortals(CCollisionBSPData *)
_Z32CollisionBSPData_LoadAreaPortalsP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+12Ap

src		= dword	ptr -13Ch
var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_138]
		push	ebx
		sub	esp, 14Ch
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esp+4], 15h ; arg
		mov	[esp], edi	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[ebp+src], eax
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 0AAAAAAABh
		mov	ecx, eax
		mul	edx
		shr	edx, 3
		lea	eax, [edx+edx*2]
		shl	eax, 2
		cmp	ecx, eax
		jz	short loc_D654D
		mov	dword ptr [esp], offset	aCmod_loadareap	; "CMod_LoadAreaPortals: funny lump size"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D654D:				; CODE XREF: CollisionBSPData_LoadAreaPortals(CCollisionBSPData	*)+4Fj
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	ebx, 0AAAAAAABh
		mul	ebx
		mov	ebx, edx
		shr	ebx, 3
		cmp	ebx, 400h
		jle	short loc_D6575
		mov	dword ptr [esp], offset	aMapHasTooMan_0	; "Map has too many area portals"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D6575:				; CODE XREF: CollisionBSPData_LoadAreaPortals(CCollisionBSPData	*)+77j
		add	ebx, 1
		mov	[esi+228h], ebx
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [esi+228h]
		mov	[esi+22Ch], eax
		test	edx, edx
		jle	short loc_D65BD
		xor	edx, edx
		jmp	short loc_D65AE
; ---------------------------------------------------------------------------
		align 8

loc_D65A8:				; CODE XREF: CollisionBSPData_LoadAreaPortals(CCollisionBSPData	*)+CBj
		mov	eax, [esi+22Ch]

loc_D65AE:				; CODE XREF: CollisionBSPData_LoadAreaPortals(CCollisionBSPData	*)+B0j
		mov	byte ptr [eax+edx], 0
		add	edx, 1
		cmp	[esi+228h], edx
		jg	short loc_D65A8

loc_D65BD:				; CODE XREF: CollisionBSPData_LoadAreaPortals(CCollisionBSPData	*)+ACj
		lea	eax, [ebx+ebx*2]
		mov	[esi+208h], ebx
		shl	eax, 2
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	[esi+20Ch], eax
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, [esi+20Ch]
		mov	[esp+8], eax	; n
		mov	eax, [ebp+src]
		mov	[esp], edx	; dest
		mov	[esp+4], eax	; src
		call	memcpy
		mov	[esp], edi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z32CollisionBSPData_LoadAreaPortalsP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadVisibility(CCollisionBSPData *)
_Z31CollisionBSPData_LoadVisibilityP17CCollisionBSPData	proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+13Ep

var_138		= dword	ptr -138h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 148h
		mov	[ebp+var_C], ebx
		lea	ebx, [ebp+var_138]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	dword ptr [esp+4], 4 ; arg
		mov	[esp], ebx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], ebx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	[edi+0B4h], eax
		mov	[esp], ebx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		cmp	eax, 1000000h
		jle	short loc_D6684
		mov	dword ptr [esp], offset	aMapHasTooLarge	; "Map has too large visibility	lump"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D6684:				; CODE XREF: CollisionBSPData_LoadVisibility(CCollisionBSPData *)+46j
		mov	[esp], ebx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	eax, eax
		mov	esi, eax
		jnz	short loc_D66B8
		mov	dword ptr [edi+0B8h], 0

loc_D669C:				; CODE XREF: CollisionBSPData_LoadVisibility(CCollisionBSPData *)+BCj
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D66B8:				; CODE XREF: CollisionBSPData_LoadVisibility(CCollisionBSPData *)+60j
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	[edi+0B8h], eax
		mov	[esp], ebx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	edx, [edi+0B8h]
		mov	[esp+8], esi	; n
		mov	[esp+4], eax	; src
		mov	[esp], edx	; dest
		call	memcpy
		jmp	short loc_D669C
_Z31CollisionBSPData_LoadVisibilityP17CCollisionBSPData	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], esi
		call	_Unwind_Resume

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadEntityString(CCollisionBSPData *)
_Z33CollisionBSPData_LoadEntityStringP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+152p

var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 158h
		mov	[ebp+var_8], esi
		lea	esi, [ebp+var_138]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 0 ; arg
		mov	[esp], esi	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	[ebx+0BCh], eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edi, eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelper10LumpOffsetEv ; CMapLoadHelper::LumpOffset(void)
		mov	[ebp+var_13C], eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelper11GetDiskNameEv ; CMapLoadHelper::GetDiskName(void)
		mov	edx, [ebx+0D4h]
		test	edx, edx
		jnz	short loc_D67A0

loc_D6763:				; CODE XREF: CollisionBSPData_LoadEntityString(CCollisionBSPData *)+D7j
					; CollisionBSPData_LoadEntityString(CCollisionBSPData *)+10Bj
		mov	[ebx+0C0h], edi
		mov	[esp+4], eax	; src
		lea	eax, [ebx+0FCh]
		mov	[esp], eax	; dest
		call	strcpy
		mov	eax, [ebp+var_13C]
		mov	[ebx+1FCh], eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D67A0:				; CODE XREF: CollisionBSPData_LoadEntityString(CCollisionBSPData *)+61j
		mov	ecx, [ebx+0CCh]
		mov	dword ptr [ebx+0D0h], 0
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+0E4h], 0
		mov	dword ptr [ebx+0E0h], 0
		test	ecx, ecx
		mov	byte ptr [ebx+0D8h], 0
		js	short loc_D6763
		mov	edx, [ebx+0C4h]
		test	edx, edx
		jz	short loc_D6801
		mov	[ebp+var_140], eax
		mov	[esp], edx	; ptr
		call	free
		mov	dword ptr [ebx+0C4h], 0
		mov	eax, [ebp+var_140]

loc_D6801:				; CODE XREF: CollisionBSPData_LoadEntityString(CCollisionBSPData *)+E1j
		mov	dword ptr [ebx+0C8h], 0
		jmp	loc_D6763
_Z33CollisionBSPData_LoadEntityStringP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadPhysics(CCollisionBSPData *)
_Z28CollisionBSPData_LoadPhysicsP17CCollisionBSPData proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+166p

var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, 1Dh
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 15Ch
		cmp	ds:g_iServerGameDLLVersion, 4
		jg	loc_D6940

loc_D684E:				; CODE XREF: CollisionBSPData_LoadPhysics(CCollisionBSPData *)+123j
					; CollisionBSPData_LoadPhysics(CCollisionBSPData *)+13Aj
		lea	edi, [ebp+var_138]
		mov	[esp+4], edx	; arg
		mov	[esp], edi	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	eax, eax
		mov	[esp], edi
		jz	loc_D6928
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[ebp+var_144], eax
		mov	ebx, eax

loc_D6880:				; CODE XREF: CollisionBSPData_LoadPhysics(CCollisionBSPData *)+D8j
		mov	edx, [ebx+8]
		mov	esi, [ebx+4]
		mov	eax, [ebx]
		mov	[ebp+var_13C], edx
		mov	edx, [ebx+0Ch]
		add	ebx, 10h
		test	esi, esi
		jle	short loc_D68F2
		mov	ecx, ds:physcollision
		imul	eax, 34h
		mov	ecx, [ecx]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_0]
		mov	dword ptr [esp+14h], 0
		mov	[esp+0Ch], ebx
		mov	[ebp+var_140], ecx
		mov	ecx, [ebp+var_13C]
		add	ecx, esi
		mov	[esp+10h], ecx
		mov	ecx, ds:physcollision
		add	eax, [edx+0A0h]
		mov	[esp], ecx
		add	eax, 28h
		mov	[esp+4], eax
		mov	eax, [ebp+var_140]
		call	dword ptr [eax+94h]
		add	ebx, esi
		add	ebx, [ebp+var_13C]

loc_D68F2:				; CODE XREF: CollisionBSPData_LoadPhysics(CCollisionBSPData *)+66j
		mov	[esp], edi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, ebx
		sub	edx, [ebp+var_144]
		cmp	edx, eax
		jg	short loc_D690E
		test	esi, esi
		jg	loc_D6880

loc_D690E:				; CODE XREF: CollisionBSPData_LoadPhysics(CCollisionBSPData *)+D4j
		mov	[esp], edi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D6928:				; CODE XREF: CollisionBSPData_LoadPhysics(CCollisionBSPData *)+3Dj
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D6940:				; CODE XREF: CollisionBSPData_LoadPhysics(CCollisionBSPData *)+18j
		mov	dword ptr [esp], 31h
		call	_ZN14CMapLoadHelper8LumpSizeEi ; CMapLoadHelper::LumpSize(int)
		mov	edx, 31h
		test	eax, eax
		jg	loc_D684E
		mov	dword ptr [esp], offset	aLegacyGameDllM	; "Legacy game DLL may not support terrain"...
		call	_Z10DevWarningPKcz ; DevWarning(char  const*,...)
		mov	edx, 1Dh
		jmp	loc_D684E
_Z28CollisionBSPData_LoadPhysicsP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short _Z29CollisionBSPData_LoadDispInfoP17CCollisionBSPData ; CollisionBSPData_LoadDispInfo(CCollisionBSPData *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadDispInfo(CCollisionBSPData *)
_Z29CollisionBSPData_LoadDispInfoP17CCollisionBSPData proc near	; CODE XREF: .text:000D6981j
					; CollisionBSPData_Load(char  const*,CCollisionBSPData *)+17Ap

var_27EC	= dword	ptr -27ECh
var_27E8	= dword	ptr -27E8h
var_27E4	= dword	ptr -27E4h
var_27E0	= dword	ptr -27E0h
var_27DC	= dword	ptr -27DCh
var_27D8	= dword	ptr -27D8h
var_27D4	= dword	ptr -27D4h
var_27D0	= dword	ptr -27D0h
var_27CC	= dword	ptr -27CCh
var_27C8	= dword	ptr -27C8h
var_27C4	= dword	ptr -27C4h
var_27C0	= dword	ptr -27C0h
var_27BC	= dword	ptr -27BCh
var_27B8	= byte ptr -27B8h
var_1124	= byte ptr -1124h
var_D24		= byte ptr -0D24h
var_D14		= dword	ptr -0D14h
var_D10		= dword	ptr -0D10h
var_B98		= dword	ptr -0B98h
var_B78		= dword	ptr -0B78h
var_B74		= dword	ptr -0B74h
var_B70		= dword	ptr -0B70h
var_B1C		= dword	ptr -0B1Ch
var_9FC		= dword	ptr -9FCh
var_8DC		= dword	ptr -8DCh
var_7BC		= dword	ptr -7BCh
var_69C		= dword	ptr -69Ch
var_57C		= dword	ptr -57Ch
var_45C		= dword	ptr -45Ch
var_33C		= dword	ptr -33Ch
var_21C		= dword	ptr -21Ch
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_4C		= byte ptr -4Ch
var_19		= byte ptr -19h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 280Ch
		mov	dword ptr [esp], 1Ah
		call	_ZN14CMapLoadHelper8LumpSizeEi ; CMapLoadHelper::LumpSize(int)
		mov	ecx, 0BA2E8BA3h
		mul	ecx
		shr	edx, 7
		test	edx, edx
		mov	[ebp+var_27D4],	edx
		jnz	short loc_D69C4

loc_D69BC:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+886j
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D69C4:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+2Aj
		lea	ecx, [ebp+var_B1C]
		mov	dword ptr [esp+4], 3 ; arg
		lea	esi, [ebp+var_B1C]
		mov	[esp], ecx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[ebp+var_27BC],	eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 0AAAAAAABh
		mov	ecx, eax
		mul	edx
		shr	edx, 3
		lea	eax, [edx+edx*2]
		shl	eax, 2
		cmp	ecx, eax
		jnz	loc_D719E

loc_D6A10:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+81Aj
		lea	edx, [ebp+var_9FC]
		mov	dword ptr [esp+4], 0Ch ; arg
		mov	[esp], edx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	ecx, [ebp+var_9FC]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		lea	esi, [ebp+var_9FC]
		mov	[ebp+var_27C0],	eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 3
		jnz	loc_D718D

loc_D6A50:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+809j
		lea	eax, [ebp+var_8DC]
		mov	dword ptr [esp+4], 0Dh ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_8DC]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		lea	ecx, [ebp+var_8DC]
		mov	[ebp+var_27E0],	eax
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		test	al, 3
		jnz	loc_D717C

loc_D6A90:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+7F8j
		mov	eax, ds:g_pMaterialSystemHardwareConfig
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0D8h]
		test	eax, eax
		jnz	loc_D71C0

loc_D6AA8:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+83Ej
		mov	eax, 7

loc_D6AAD:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+849j
		lea	esi, [ebp+var_7BC]
		mov	[esp+4], eax	; arg
		mov	[esp], esi	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[ebp+var_27DC],	eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	ecx, eax
		mov	edx, 24924925h
		shr	eax, 3
		mul	edx
		imul	edx, 38h
		cmp	ecx, edx
		jnz	loc_D716B

loc_D6AEC:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+7E7j
		lea	ecx, [ebp+var_7BC]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	ecx, [ebp+var_27DC]
		mov	ebx, eax
		test	ecx, ecx
		jz	loc_D71DE
		lea	esi, [ebp+var_69C]
		mov	dword ptr [esp+4], 6 ; arg
		mov	[esp], esi	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	[ebp+var_27E8],	eax
		mov	[esp], esi
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 38E38E39h
		mov	ecx, eax
		mul	edx
		shr	edx, 4
		lea	eax, [edx+edx*8]
		shl	eax, 3
		cmp	ecx, eax
		jnz	loc_D71AF

loc_D6B50:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+82Bj
		mov	edx, [ebp+var_27D4]
		mov	ds:g_DispCollTreeCount,	edx
		mov	[esp], edx
		call	_Z19DispCollTrees_Alloci ; DispCollTrees_Alloc(int)
		mov	ds:g_pDispCollTrees, eax
		mov	eax, ds:g_DispCollTreeCount
		mov	dword ptr [esp+4], 0
		lea	eax, [eax+eax*2]
		shl	eax, 4
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		shr	ebx, 3
		mov	ecx, eax
		mov	esi, 24924925h
		mov	eax, ebx
		mov	ds:g_pDispBounds, ecx
		mul	esi
		mov	ebx, edx
		mov	edx, [ebp+var_27D4]
		add	edx, edx
		lea	eax, [edx+0Fh]
		and	eax, 0FFFFFFF0h
		add	eax, 1Eh
		and	eax, 0FFFFFF0h
		sub	esp, eax
		lea	esi, [esp+27h]
		mov	[esp+8], edx	; n
		and	esi, 0FFFFFFF0h
		mov	dword ptr [esp+4], 0FFh	; c
		mov	[ebp+var_27D8],	esi
		mov	[esp], esi	; s
		call	memset
		test	ebx, ebx
		jz	short loc_D6C0F
		mov	edx, [ebp+var_27DC]
		xor	eax, eax
		mov	esi, [ebp+var_27D4]
		mov	edi, [ebp+var_27D8]
		nop
		lea	esi, [esi+0]

loc_D6BF0:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+27Dj
		movzx	ecx, word ptr [edx+0Ch]
		cmp	cx, 0FFFFh
		jz	short loc_D6C05
		movsx	ecx, cx
		cmp	esi, ecx
		jle	short loc_D6C05
		mov	[edi+ecx*2], ax

loc_D6C05:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+268j
					; CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+26Fj
		add	eax, 1
		add	edx, 38h
		cmp	ebx, eax
		jnz	short loc_D6BF0

loc_D6C0F:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+245j
		lea	eax, [ebp+var_57C]
		mov	dword ptr [esp+4], 1Ah ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_45C]
		mov	dword ptr [esp+4], 21h ; arg
		mov	[esp], edx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	ecx, [ebp+var_33C]
		mov	dword ptr [esp+4], 30h ; arg
		mov	[esp], ecx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[ebp+var_27CC],	0
		xor	esi, esi
		mov	[ebp+var_27D0],	0
		mov	[ebp+var_27C8],	0
		lea	esi, [esi+0]

loc_D6C78:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+55Ej
		mov	eax, [ebp+var_27D8]
		movzx	edi, word ptr [eax+esi*2]
		cmp	di, 0FFFFh
		jz	loc_D6EDE
		lea	edx, [ebp+var_FC]
		mov	dword ptr [esp+8], 0B0h
		lea	ecx, [ebp+var_57C]
		mov	[esp+0Ch], edx
		mov	[esp+4], esi
		mov	[esp], ecx
		call	_ZN14CMapLoadHelper15LoadLumpElementEiiPv ; CMapLoadHelper::LoadLumpElement(int,int,void *)
		mov	ecx, [ebp+var_E8]
		mov	ebx, 1
		mov	edx, [ebp+var_27C8]
		lea	eax, [ebp+var_27B8]
		mov	[esp+0Ch], eax
		shl	ebx, cl
		lea	ecx, [ebp+var_45C]
		add	ebx, 1
		imul	ebx, ebx
		mov	[esp], ecx
		lea	eax, [ebx+ebx*4]
		shl	eax, 2
		mov	[esp+8], eax
		lea	eax, [edx+edx*4]
		shl	eax, 2
		mov	[esp+4], eax
		call	_ZN14CMapLoadHelper12LoadLumpDataEiiPv ; CMapLoadHelper::LoadLumpData(int,int,void *)
		mov	ecx, [ebp+var_E8]
		mov	eax, 1
		add	[ebp+var_27C8],	ebx
		lea	ebx, [ebp+var_1124]
		mov	[esp+0Ch], ebx
		shl	eax, cl
		shl	eax, cl
		lea	edx, [eax+eax]
		shl	eax, 2
		mov	[esp+8], eax
		mov	eax, [ebp+var_27D0]
		lea	ecx, [ebp+var_33C]
		mov	[ebp+var_27C4],	edx
		mov	[esp], ecx
		add	eax, eax
		mov	[esp+4], eax
		call	_ZN14CMapLoadHelper12LoadLumpDataEiiPv ; CMapLoadHelper::LoadLumpData(int,int,void *)
		mov	eax, [ebp+var_27C4]
		lea	edx, [ebp+var_D24]
		mov	[esp], edx
		add	[ebp+var_27D0],	eax
		call	_ZN13CCoreDispInfoC2Ev ; CCoreDispInfo::CCoreDispInfo(void)
		mov	eax, [ebp+var_FC]
		lea	ecx, [ebp+var_27B8]
		mov	[esp+14h], ebx
		mov	[esp+10h], ecx
		mov	[ebp+var_B78], eax
		mov	eax, [ebp+var_F8]
		mov	[ebp+var_B74], eax
		mov	eax, [ebp+var_F4]
		mov	[ebp+var_B70], eax
		mov	eax, [ebp+var_DC]
		mov	[ebp+var_B98], eax
		mov	eax, [ebp+var_E0]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_E4]
		mov	[esp+8], eax
		mov	eax, [ebp+var_E8]
		mov	[esp+4], eax
		lea	eax, [ebp+var_D24]
		mov	[esp], eax
		call	_ZN13CCoreDispInfo12InitDispInfoEiifPK9CDispVertPK8CDispTri ; CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)
		movzx	edi, di
		imul	ebx, edi, 38h
		mov	[ebp+var_D14], edi
		add	ebx, [ebp+var_27DC]
		movzx	eax, word ptr [ebx+8]
		cmp	ax, 4
		jg	loc_D6ED0
		jz	loc_D7158

loc_D6DE8:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+7D6j
		test	ax, ax
		jle	short loc_D6E5E
		xor	eax, eax
		mov	edi, [ebp+var_27E0]
		mov	[ebp+var_27C4],	esi
		jmp	short loc_D6E31
; ---------------------------------------------------------------------------
		align 10h

loc_D6E00:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+4B2j
		mov	esi, [ebp+var_27C0]
		movzx	ecx, word ptr [esi+ecx*4]

loc_D6E0A:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+4C1j
		mov	esi, [ebp+var_27BC]
		lea	ecx, [ecx+ecx*2]
		add	eax, 1
		lea	ecx, [esi+ecx*4]
		mov	esi, [ecx]
		mov	[edx], esi
		mov	esi, [ecx+4]
		mov	[edx+4], esi
		mov	ecx, [ecx+8]
		mov	[edx+8], ecx
		movsx	edx, word ptr [ebx+8]
		cmp	edx, eax
		jle	short loc_D6E58

loc_D6E31:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+46Bj
		mov	edx, [ebx+4]
		add	edx, eax
		mov	ecx, [edi+edx*4]
		lea	edx, [eax+eax*2]
		lea	edx, [ebp+edx*4+var_4C]
		test	ecx, ecx
		jns	short loc_D6E00
		mov	esi, [ebp+var_27C0]
		neg	ecx
		movzx	ecx, word ptr [esi+ecx*4+2]
		jmp	short loc_D6E0A
; ---------------------------------------------------------------------------
		align 8

loc_D6E58:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+49Fj
		mov	esi, [ebp+var_27C4]

loc_D6E5E:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+45Bj
		xor	eax, eax
		mov	[ebp+var_27C4],	ebx

loc_D6E66:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+502j
		lea	ecx, [eax+eax*2]
		add	eax, 1
		lea	edx, [ebp+var_4C]
		shl	ecx, 2
		lea	ebx, [ebp+ecx+var_D14]
		add	edx, ecx
		cmp	eax, 4
		mov	edi, [edx]
		lea	ecx, [ebx+8]
		mov	[ebx+8], edi
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ecx+4], ebx
		mov	[ecx+8], edx
		jnz	short loc_D6E66
		lea	edi, [ebp+var_D14]
		mov	ebx, [ebp+var_27C4]
		mov	[esp], edi
		call	_ZN16CCoreDispSurface23FindSurfPointStartIndexEv ; CCoreDispSurface::FindSurfPointStartIndex(void)
		mov	[esp], edi
		call	_ZN16CCoreDispSurface19AdjustSurfPointDataEv ; CCoreDispSurface::AdjustSurfPointData(void)
		imul	edi, esi, 0F4h
		add	edi, ds:g_pDispCollTrees
		cmp	[ebp+var_D10], 4
		mov	dword ptr [edi+28h], 0
		jz	loc_D6FB0

loc_D6ED0:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+44Cj
		lea	eax, [ebp+var_D24]
		mov	[esp], eax
		call	_ZN13CCoreDispInfoD2Ev ; CCoreDispInfo::~CCoreDispInfo()

loc_D6EDE:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+2F6j
					; CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+7BEj
		add	[ebp+var_27CC],	30h
		add	esi, 1
		cmp	[ebp+var_27D4],	esi
		jg	loc_D6C78
		lea	ebx, [ebp+var_21C]
		mov	dword ptr [esp+4], 1Ch ; arg
		mov	[esp], ebx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	[esp], ebx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	[esp+4], eax
		mov	[esp], esi
		call	_Z24CM_CreateDispPhysCollideP11dphysdisp_ti ; CM_CreateDispPhysCollide(dphysdisp_t *,int)
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	edx, [ebp+var_33C]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	ecx, [ebp+var_45C]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	esi, [ebp+var_57C]
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	eax, [ebp+var_69C]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	edx, [ebp+var_7BC]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	esi, [ebp+var_8DC]
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	edx, [ebp+var_9FC]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	esi, [ebp+var_B1C]
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D6FB0:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+53Aj
		lea	eax, [ebp+var_D24]
		mov	[esp], eax
		call	_ZN13CCoreDispInfo6CreateEv ; CCoreDispInfo::Create(void)
		mov	eax, [edi]
		lea	edx, [ebp+var_D24]
		mov	[esp], edi
		mov	[esp+4], edx
		call	dword ptr [eax]
		mov	eax, [edi+10h]
		mov	ecx, [edi+20h]
		mov	edx, [edi+0Ch]
		mov	[ebp+var_27E4],	eax
		mov	eax, [ebp+var_27CC]
		mov	[ebp+var_27C4],	ecx
		mov	ecx, [edi+4]
		mov	[ebp+var_27EC],	edx
		mov	edx, [edi+8]
		add	eax, ds:g_pDispBounds
		mov	[eax], ecx
		mov	ecx, [ebp+var_27E4]
		mov	[eax+4], edx
		mov	edx, [ebp+var_27EC]
		mov	[eax+20h], ecx
		mov	[eax+8], edx
		mov	edx, [edi+1Ch]
		mov	ecx, [edi+14h]
		mov	[ebp+var_27E4],	edx
		mov	edx, [edi+18h]
		mov	[eax+10h], ecx
		mov	ecx, [ebp+var_27C4]
		mov	[eax+14h], edx
		mov	edx, [ebp+var_27E4]
		mov	[eax+24h], ecx
		mov	[eax+18h], edx
		mov	edx, [ebp+var_27E8]
		movsx	eax, word ptr [ebx+0Ah]
		lea	eax, [eax+eax*8]
		mov	eax, [edx+eax*8+44h]
		test	eax, eax
		js	loc_D7140
		mov	ecx, ds:materials
		mov	ebx, [ecx]
		mov	dword ptr [esp+10h], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aWorldTextures ; "World textures"
		mov	edx, [ecx+220h]
		mov	eax, [edx+eax*8]
		mov	[esp+4], eax
		mov	eax, ds:materials
		mov	[esp], eax
		call	dword ptr [ebx+11Ch]
		test	eax, eax
		mov	ebx, eax
		jz	loc_D7140
		mov	eax, [eax]
		mov	[esp], ebx
		call	dword ptr [eax+0A8h]
		test	al, al
		jnz	loc_D7140
		mov	eax, [ebx]
		lea	ecx, [ebp+var_19]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], ecx
		mov	dword ptr [esp+4], offset aSurfaceprop ; "$surfaceprop"
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		cmp	[ebp+var_19], 0
		jz	short loc_D7117
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		mov	[ebp+var_27C4],	eax
		mov	eax, ds:physprop
		mov	ecx, [ebp+var_27C4]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+10h]
		mov	[edi+6Ch], ax
		mov	eax, ds:physprop
		mov	ecx, [ebp+var_27C4]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+10h]
		mov	[edi+6Eh], ax

loc_D7117:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+741j
		mov	eax, [ebx]
		lea	edx, [ebp+var_19]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	dword ptr [esp+4], offset aSurfaceprop2	; "$surfaceprop2"
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		cmp	[ebp+var_19], 0
		jnz	loc_D721B

loc_D7140:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+6BDj
					; CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+705j ...
		lea	ecx, [ebp+var_D24]
		mov	[esp], ecx
		call	_ZN13CCoreDispInfoD2Ev ; CCoreDispInfo::~CCoreDispInfo()
		jmp	loc_D6EDE
; ---------------------------------------------------------------------------
		align 8

loc_D7158:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+452j
		mov	[ebp+var_D10], 4
		movzx	eax, word ptr [ebx+8]
		jmp	loc_D6DE8
; ---------------------------------------------------------------------------

loc_D716B:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+156j
		mov	dword ptr [esp], offset	aCmod_loaddispi	; "CMod_LoadDispInfo: bad face lump size!"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D6AEC
; ---------------------------------------------------------------------------

loc_D717C:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+FAj
		mov	dword ptr [esp], offset	aCmod_loaddis_0	; "CMod_LoadDispInfo: bad surf edge lump s"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D6A90
; ---------------------------------------------------------------------------

loc_D718D:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+BAj
		mov	dword ptr [esp], offset	aCmod_loaddis_1	; "CMod_LoadDispInfo: bad edge lump size!"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D6A50
; ---------------------------------------------------------------------------

loc_D719E:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+7Aj
		mov	dword ptr [esp], offset	aCmod_loaddis_2	; "CMod_LoadDispInfo: bad vertex lump size"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D6A10
; ---------------------------------------------------------------------------

loc_D71AF:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+1BAj
		mov	dword ptr [esp], offset	aCmod_loaddis_3	; "CMod_LoadDispInfo: bad texinfo lump siz"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D6B50
; ---------------------------------------------------------------------------

loc_D71C0:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+112j
		mov	dword ptr [esp], 3Ah
		call	_ZN14CMapLoadHelper8LumpSizeEi ; CMapLoadHelper::LumpSize(int)
		test	eax, eax
		jle	loc_D6AA8
		mov	eax, 3Ah
		jmp	loc_D6AAD
; ---------------------------------------------------------------------------

loc_D71DE:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+174j
		lea	ecx, [ebp+var_7BC]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	eax, [ebp+var_8DC]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	ecx, [ebp+var_9FC]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	eax, [ebp+var_B1C]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		jmp	loc_D69BC
; ---------------------------------------------------------------------------

loc_D721B:				; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+7AAj
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		mov	ecx, eax
		mov	eax, ds:physprop
		mov	edx, [eax]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+10h]
		mov	[edi+6Eh], ax
		jmp	loc_D7140
_Z29CollisionBSPData_LoadDispInfoP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_D7241:				; CODE XREF: .text:000D72BBj
		lea	esi, [ebp-45Ch]
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()

loc_D724F:				; CODE XREF: .text:000D72F0j
		lea	eax, [ebp-57Ch]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()

loc_D725D:				; CODE XREF: .text:000D72F7j
		lea	edx, [ebp-69Ch]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()

loc_D726B:				; CODE XREF: .text:000D7300j
		lea	ecx, [ebp-7BCh]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()

loc_D7279:				; CODE XREF: .text:000D72E3j
		lea	esi, [ebp-8DCh]
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()

loc_D7287:				; CODE XREF: .text:000D72DFj
		lea	eax, [ebp-9FCh]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()

loc_D7295:				; CODE XREF: .text:000D72E7j
		lea	edx, [ebp-0B1Ch]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_D72AD:				; CODE XREF: .text:000D72CDj
					; .text:000D72DBj
		lea	ecx, [ebp-33Ch]
		mov	[esp], ecx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		jmp	short loc_D7241
; ---------------------------------------------------------------------------
		lea	edx, [ebp-0D24h]
		mov	ebx, eax
		mov	[esp], edx
		call	_ZN13CCoreDispInfoD2Ev ; CCoreDispInfo::~CCoreDispInfo()
		jmp	short loc_D72AD
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	ebx, esi
		jmp	short loc_D72AD
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D7287
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D7279
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_D7295
; ---------------------------------------------------------------------------
		mov	ebx, eax
		nop
		lea	esi, [esi+0]
		jmp	loc_D724F
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	loc_D725D
; ---------------------------------------------------------------------------
		mov	ebx, eax
		db	66h
		nop
		jmp	loc_D726B
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CollisionBSPData_LoadTexinfo(CCollisionBSPData *, CUtlVector<unsigned	short, CUtlMemory<unsigned short, int>>	&)
_Z28CollisionBSPData_LoadTexinfoP17CCollisionBSPDataR10CUtlVectorIt10CUtlMemoryItiEE proc near
					; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+72p

var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_13C		= dword	ptr -13Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+var_13C]
		push	ebx
		sub	esp, 15Ch
		mov	edi, [ebp+arg_0]
		mov	dword ptr [esp+4], 6 ; arg
		mov	esi, [ebp+arg_4]
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_13C]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpBaseEv ; CMapLoadHelper::LumpBase(void)
		mov	ebx, eax
		lea	eax, [ebp+var_13C]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	edx, 38E38E39h
		mov	ecx, eax
		mul	edx
		shr	edx, 4
		lea	eax, [edx+edx*8]
		shl	eax, 3
		cmp	ecx, eax
		jz	short loc_D7378
		mov	dword ptr [esp], offset	aCollisionbsp_3	; "CollisionBSPData_LoadTexinfo: funny lum"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D7378:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+5Aj
		lea	edx, [ebp+var_13C]
		mov	[esp], edx
		call	_ZN14CMapLoadHelper8LumpSizeEv ; CMapLoadHelper::LumpSize(void)
		mov	ecx, 38E38E39h
		mul	ecx
		shr	edx, 4
		test	edx, edx
		mov	[ebp+var_14C], edx
		jz	loc_D74A8
		cmp	[ebp+var_14C], 3000h
		jg	loc_D7490

loc_D73AE:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+18Cj
					; CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+1A4j
		mov	edx, [ebp+var_14C]
		mov	dword ptr [esi+0Ch], 0
		cmp	edx, [esi+4]
		jle	short loc_D73F0
		mov	eax, [esi+8]
		test	eax, eax
		js	short loc_D73F0
		mov	eax, [esi]
		mov	edx, [ebp+var_14C]
		test	eax, eax
		mov	[esi+4], edx
		jz	loc_D74B9
		add	edx, edx
		mov	[esp], eax	; ptr
		mov	[esp+4], edx	; size
		call	realloc
		mov	[esi], eax
		jmp	short loc_D73F2
; ---------------------------------------------------------------------------
		align 10h

loc_D73F0:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+AEj
					; CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+B5j
		mov	eax, [esi]

loc_D73F2:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+DAj
					; CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+1BBj
		mov	[esi+10h], eax
		mov	eax, [ebp+var_14C]
		test	eax, eax
		jz	short loc_D7470
		xor	edx, edx
		mov	eax, esi
		mov	esi, edx
		mov	edx, eax
		jmp	short loc_D7450
; ---------------------------------------------------------------------------
		align 10h

loc_D7410:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+150j
		shl	eax, 3

loc_D7413:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+15Aj
		add	eax, [edi+220h]
		add	esi, 1
		mov	ecx, [ebx+40h]
		add	ebx, 48h
		or	[eax+6], cx
		lea	eax, [ebp+var_1A]
		mov	[esp+8], eax
		mov	eax, [edx+0Ch]
		mov	[esp], edx
		mov	[ebp+var_150], edx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIt10CUtlMemoryItiEE12InsertBeforeEiRKt ;	CUtlVector<ushort,CUtlMemory<ushort,int>>::InsertBefore(int,ushort  const&)
		cmp	[ebp+var_14C], esi
		mov	edx, [ebp+var_150]
		jz	short loc_D7470

loc_D7450:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+F7j
		mov	eax, [ebx+44h]
		mov	[ebp+var_1A], ax
		movzx	eax, ax
		cmp	eax, [edi+218h]
		jl	short loc_D7410
		mov	[ebp+var_1A], 0
		xor	eax, eax
		jmp	short loc_D7413
; ---------------------------------------------------------------------------
		align 10h

loc_D7470:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+EDj
					; CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)+13Ej
		lea	edx, [ebp+var_13C]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D7490:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+98j
		mov	dword ptr [esp], offset	aMapHasTooManyS	; "Map has too many surfaces"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D73AE
; ---------------------------------------------------------------------------
		align 8

loc_D74A8:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+88j
		mov	dword ptr [esp], offset	aMapWithNoTexin	; "Map with no texinfo"
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		jmp	loc_D73AE
; ---------------------------------------------------------------------------

loc_D74B9:				; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+C4j
		mov	eax, [ebp+var_14C]
		add	eax, eax
		mov	[esp], eax	; size
		call	malloc
		mov	[esi], eax
		jmp	loc_D73F2
_Z28CollisionBSPData_LoadTexinfoP17CCollisionBSPDataR10CUtlVectorIt10CUtlMemoryItiEE endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-13Ch]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CollisionBSPData_Load(char *src, int)
_Z21CollisionBSPData_LoadPKcP17CCollisionBSPData proc near
					; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+9Bp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
src		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+var_1C]
		sub	esp, 30h
		mov	[ebp+var_1C], 0
		mov	eax, [ebp+src]
		mov	[ebp+var_18], 0
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_14], 0
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 0
		mov	[esp+4], eax	; src
		lea	eax, [ebx+4]
		mov	dword ptr [esp+8], 60h ; n
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp], offset	aCollisionbsp_4	; "  CollisionBSPData_LoadTextures"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z29CollisionBSPData_LoadTexturesP17CCollisionBSPData ;	CollisionBSPData_LoadTextures(CCollisionBSPData	*)
		mov	dword ptr [esp], offset	aCollisionbsp_5	; "  CollisionBSPData_LoadTexinfo"
		call	COM_TimestampedLog
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z28CollisionBSPData_LoadTexinfoP17CCollisionBSPDataR10CUtlVectorIt10CUtlMemoryItiEE ; CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>> &)
		mov	dword ptr [esp], offset	aCollisionbsp_6	; "  CollisionBSPData_LoadLeafs"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z26CollisionBSPData_LoadLeafsP17CCollisionBSPData ; CollisionBSPData_LoadLeafs(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbsp_7	; "  CollisionBSPData_LoadLeafBrushes"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z32CollisionBSPData_LoadLeafBrushesP17CCollisionBSPData ; CollisionBSPData_LoadLeafBrushes(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbsp_8	; "  CollisionBSPData_LoadPlanes"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z27CollisionBSPData_LoadPlanesP17CCollisionBSPData ; CollisionBSPData_LoadPlanes(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbsp_9	; "  CollisionBSPData_LoadBrushes"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z28CollisionBSPData_LoadBrushesP17CCollisionBSPData ; CollisionBSPData_LoadBrushes(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbs_10	; "  CollisionBSPData_LoadBrushSides"
		call	COM_TimestampedLog
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_Z31CollisionBSPData_LoadBrushSidesP17CCollisionBSPDataR10CUtlVectorIt10CUtlMemoryItiEE	; CollisionBSPData_LoadBrushSides(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)
		mov	dword ptr [esp], offset	aCollisionbs_11	; "  CollisionBSPData_LoadSubmodels"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z30CollisionBSPData_LoadSubmodelsP17CCollisionBSPData ; CollisionBSPData_LoadSubmodels(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbsp_8	; "  CollisionBSPData_LoadPlanes"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z26CollisionBSPData_LoadNodesP17CCollisionBSPData ; CollisionBSPData_LoadNodes(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbs_12	; "  CollisionBSPData_LoadAreas"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z26CollisionBSPData_LoadAreasP17CCollisionBSPData ; CollisionBSPData_LoadAreas(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbs_13	; "  CollisionBSPData_LoadAreaPortals"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z32CollisionBSPData_LoadAreaPortalsP17CCollisionBSPData ; CollisionBSPData_LoadAreaPortals(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbs_14	; "  CollisionBSPData_LoadVisibility"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z31CollisionBSPData_LoadVisibilityP17CCollisionBSPData	; CollisionBSPData_LoadVisibility(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbs_15	; "  CollisionBSPData_LoadEntityString"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z33CollisionBSPData_LoadEntityStringP17CCollisionBSPData ; CollisionBSPData_LoadEntityString(CCollisionBSPData	*)
		mov	dword ptr [esp], offset	aCollisionbs_16	; "  CollisionBSPData_LoadPhysics"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z28CollisionBSPData_LoadPhysicsP17CCollisionBSPData ; CollisionBSPData_LoadPhysics(CCollisionBSPData *)
		mov	dword ptr [esp], offset	aCollisionbs_17	; "  CollisionBSPData_LoadDispInfo"
		call	COM_TimestampedLog
		mov	[esp], ebx
		call	_Z29CollisionBSPData_LoadDispInfoP17CCollisionBSPData ;	CollisionBSPData_LoadDispInfo(CCollisionBSPData	*)
		mov	[esp], esi
		mov	[ebp+var_10], 0
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	eax, [ebp+var_1C]
		mov	[esp], esi
		mov	[ebp+var_C], eax
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		add	esp, 30h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z21CollisionBSPData_LoadPKcP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [ebp-10h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	eax, [ebp-1Ch]
		mov	[esp], esi
		mov	[ebp-0Ch], eax
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<unsigned short, int>::Purge(void)
_ZN10CUtlMemoryItiE5PurgeEv proc near	; CODE XREF: CollisionBSPData_Load(char	 const*,CCollisionBSPData *)+189p
					; CollisionBSPData_Load(char  const*,CCollisionBSPData *)+197p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_D76EC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_D76E5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_D76E5:				; CODE XREF: CUtlMemory<ushort,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_D76EC:				; CODE XREF: CUtlMemory<ushort,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryItiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<unsigned short, int>::Grow(int)
_ZN10CUtlMemoryItiE4GrowEi proc	near	; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::InsertBefore(int,ushort	 const&)+7Cp
					; CUtlVector<ushort,CUtlMemory<ushort,int>>::GrowVector(int)+27p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_D7760
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_D7770
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_D7747
		lea	esi, [esi+0]

loc_D7738:				; CODE XREF: CUtlMemory<ushort,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_D7738

loc_D7747:				; CODE XREF: CUtlMemory<ushort,int>::Grow(int)+30j
					; CUtlMemory<ushort,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		add	eax, eax
		test	edx, edx
		jz	short loc_D7791

loc_D7752:				; CODE XREF: CUtlMemory<ushort,int>::Grow(int)+8Fj
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_D7760:				; CODE XREF: CUtlMemory<ushort,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D7770:				; CODE XREF: CUtlMemory<ushort,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 10h
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_D7747
		db	66h
		nop

loc_D7780:				; CODE XREF: CUtlMemory<ushort,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_D7780
		mov	edx, [ebx]
		mov	[ebx+4], eax
		add	eax, eax
		test	edx, edx
		jnz	short loc_D7752

loc_D7791:				; CODE XREF: CUtlMemory<ushort,int>::Grow(int)+50j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryItiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned short, CUtlMemory<unsigned short,	int>>::InsertBefore(int, unsigned short	 const&)
_ZN10CUtlVectorIt10CUtlMemoryItiEE12InsertBeforeEiRKt proc near
					; CODE XREF: CollisionBSPData_LoadTexinfo(CCollisionBSPData *,CUtlVector<ushort,CUtlMemory<ushort,int>>	&)+12Dp
					; Map_VisMark(bool,model_t *)+4FAp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_D7820

loc_D77CF:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::InsertBefore(int,ushort	 const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, [esi+esi]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_D7801
		add	edx, edx
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*2+2]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_D7801:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::InsertBefore(int,ushort	 const&)+34j
		add	edi, eax
		jz	short loc_D780E
		mov	eax, [ebp+arg_8]
		movzx	eax, word ptr [eax]
		mov	[edi], ax

loc_D780E:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::InsertBefore(int,ushort	 const&)+53j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D7820:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::InsertBefore(int,ushort	 const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryItiE4GrowEi ; CUtlMemory<ushort,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_D77CF
_ZN10CUtlVectorIt10CUtlMemoryItiEE12InsertBeforeEiRKt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispCollTrees_FreeLeafList(CCollisionBSPData *)
_Z26DispCollTrees_FreeLeafListP17CCollisionBSPData proc	near
					; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+50p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+0B0h]
		test	edx, edx
		jz	short loc_D7864
		mov	dword ptr [eax+0B0h], 0
		mov	dword ptr [eax+0ACh], 0

loc_D7864:				; CODE XREF: DispCollTrees_FreeLeafList(CCollisionBSPData *)+Ej
		pop	ebp
		retn
_Z26DispCollTrees_FreeLeafListP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PhysCollideForDisp(int)
_Z21CM_PhysCollideForDispi proc	near	; CODE XREF: CModelInfo::GetCollideForVirtualTerrain(int)+Aj

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		js	short loc_D788C
		cmp	edx, ds:g_DispCollTreeCount
		jge	short loc_D788C
		mov	eax, dword ptr ds:_ZL13g_TerrainList ; g_TerrainList
		mov	eax, [eax+edx*4]

loc_D788C:				; CODE XREF: CM_PhysCollideForDisp(int)+Aj
					; CM_PhysCollideForDisp(int)+12j
		pop	ebp
		retn
_Z21CM_PhysCollideForDispi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_SurfacepropsForDisp(int)
_Z22CM_SurfacepropsForDispi proc near	; CODE XREF: CModelInfo::GetSurfacepropsForVirtualTerrain(int)+Aj

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		imul	eax, [ebp+arg_0], 0F4h
		pop	ebp
		add	eax, ds:g_pDispCollTrees
		movsx	eax, word ptr [eax+6Ch]
		retn
_Z22CM_SurfacepropsForDispi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PreStab(TraceInfo_t *, cleaf_t *, Vector &, int, int &)
_Z10CM_PreStabP11TraceInfo_tP7cleaf_tR6VectoriRi proc near
					; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+1DFp

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_C]
		cmp	word ptr [edi+0Eh], 0
		jz	loc_D79B0
		mov	eax, [edx+104h]
		movzx	ebx, word ptr [edi+0Ch]
		mov	esi, [ebp+arg_8]
		mov	eax, [eax+0B0h]
		movzx	eax, word ptr [eax+ebx*2]
		imul	eax, 0F4h
		add	eax, ds:g_pDispCollTrees
		mov	ebx, [eax+60h]
		mov	[esi], ebx
		mov	ebx, [eax+64h]
		mov	[esi+4], ebx
		mov	ebx, [ebp+arg_10]
		mov	eax, [eax+68h]
		mov	[esi+8], eax
		mov	dword ptr [ebx], 1
		cmp	word ptr [edi+0Eh], 0
		jz	loc_D79B0
		lea	ebx, [edx+24h]
		xor	esi, esi
		mov	[ebp+var_1C], ebx
		lea	ebx, [edx+18h]
		mov	[ebp+var_20], ebx
		jmp	short loc_D7933
; ---------------------------------------------------------------------------
		align 4

loc_D7928:				; CODE XREF: CM_PreStab(TraceInfo_t *,cleaf_t *,Vector &,int,int &)+A8j
					; CM_PreStab(TraceInfo_t *,cleaf_t *,Vector &,int,int &)+DDj
		movzx	eax, word ptr [edi+0Eh]
		add	esi, 1
		cmp	eax, esi
		jle	short loc_D79B0

loc_D7933:				; CODE XREF: CM_PreStab(TraceInfo_t *,cleaf_t *,Vector &,int,int &)+73j
		mov	eax, [edx+104h]
		movzx	ebx, word ptr [edi+0Ch]
		mov	eax, [eax+0B0h]
		add	ebx, esi
		movzx	ebx, word ptr [eax+ebx*2]
		imul	ebx, 0F4h
		add	ebx, ds:g_pDispCollTrees
		test	[ebx+20h], ecx
		jz	short loc_D7928
		movzx	eax, byte ptr [edx+100h]
		mov	[esp+4], edx
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], ecx
		mov	[esp], ebx
		mov	[esp+10h], eax
		mov	eax, [ebp+var_1C]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_20]
		mov	[esp+8], eax
		call	_ZN13CDispCollTree13PointInBoundsERK6VectorS2_S2_b ; CDispCollTree::PointInBounds(Vector  const&,Vector	 const&,Vector	const&,bool)
		mov	edx, [ebp+var_24]
		test	al, al
		mov	ecx, [ebp+var_28]
		jz	short loc_D7928
		mov	eax, [ebx+60h]
		mov	edx, [ebp+arg_8]
		mov	[edx], eax
		mov	eax, [ebx+64h]
		mov	[edx+4], eax
		mov	eax, [ebx+68h]
		mov	[edx+8], eax
		mov	eax, [ebx+20h]
		mov	ebx, [ebp+arg_10]
		mov	[ebx], eax
		nop
		lea	esi, [esi+0]

loc_D79B0:				; CODE XREF: CM_PreStab(TraceInfo_t *,cleaf_t *,Vector &,int,int &)+17j
					; CM_PreStab(TraceInfo_t *,cleaf_t *,Vector &,int,int &)+5Fj ...
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z10CM_PreStabP11TraceInfo_tP7cleaf_tR6VectoriRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_Stab(TraceInfo_t *, Vector	 const&, Vector	 const&, int)
_Z7CM_StabP11TraceInfo_tRK6VectorS3_i proc near
					; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+1FCp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		fldz
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, _ZN17CCollisionBSPData11nullsurfaceE+4
		mov	esi, _ZN17CCollisionBSPData11nullsurfaceE ; CCollisionBSPData::nullsurface
		mov	edx, [ebp+arg_8]
		mov	dword ptr [ebx+80h], 3F800000h
		mov	eax, [ebp+arg_4]
		mov	[ebx+94h], edi
		mov	edi, [ebx+10h]
		mov	[ebx+90h], esi
		mov	esi, [ebx+14h]
		fst	dword ptr [ebx+8Ch]
		mov	byte ptr [ebx+8Bh], 0
		mov	byte ptr [ebx+8Ah], 0
		mov	dword ptr [ebx+114h], 0
		mov	ecx, [edx]
		mov	[ebx+108h], ecx
		mov	ecx, [edx+4]
		mov	[ebx+10Ch], ecx
		mov	ecx, [edx+8]
		mov	[ebx+110h], ecx
		mov	ecx, [ebx+0Ch]
		fld	dword ptr [eax]
		fst	dword ptr [ebx]
		fld	dword ptr [eax+4]
		fst	dword ptr [ebx+4]
		fld	dword ptr [eax+8]
		fst	dword ptr [ebx+8]
		fld	ds:flt_1F4CDC
		fld	dword ptr [edx]
		fmul	st, st(1)
		fadd	dword ptr [eax]
		fld	dword ptr [edx+4]
		fmul	st, st(2)
		fadd	dword ptr [eax+4]
		fxch	st(2)
		fmul	dword ptr [edx+8]
		fadd	dword ptr [eax+8]
		fxch	st(1)
		fst	dword ptr [ebx+0Ch]
		fxch	st(2)
		fst	dword ptr [ebx+10h]
		fxch	st(1)
		fst	dword ptr [ebx+14h]
		fxch	st(2)
		fsubrp	st(5), st
		fsubrp	st(3), st
		fsubrp	st(1), st
		fxch	st(2)
		fst	dword ptr [ebx+3Ch]
		fxch	st(1)
		fst	dword ptr [ebx+40h]
		fxch	st(2)
		fst	dword ptr [ebx+44h]
		fxch	st(1)
		fcomi	st, st(3)
		fstp	st(3)
		jz	loc_D7B30
		fld1
		fdivrp	st(3), st
		fldz
		fcomip	st, st(2)
		jz	loc_D7B50
		fxch	st(1)
		jmp	short loc_D7AB2
; ---------------------------------------------------------------------------
		align 10h

loc_D7AB0:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+17Ej
		fxch	st(2)

loc_D7AB2:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+E5j
		fdivr	ds:flt_1EBCFC
		fldz
		fcomip	st, st(2)
		jz	loc_D7B70
		fxch	st(1)
		jmp	short loc_D7AD2
; ---------------------------------------------------------------------------
		align 10h

loc_D7AD0:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+19Cj
		fxch	st(1)

loc_D7AD2:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+104j
		fdivr	ds:flt_1EBCFC
		fxch	st(2)

loc_D7ADA:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+1BAj
		fstp	dword ptr [ebx+48h]
		fstp	dword ptr [ebx+4Ch]
		fstp	dword ptr [ebx+50h]
		mov	[ebp+var_1C], ecx
		mov	[esp], ebx
		call	_Z15PushTraceVisitsP11TraceInfo_t ; PushTraceVisits(TraceInfo_t	*)
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 3F800000h
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		call	_Z21CM_RecursiveHullCheckP11TraceInfo_tiff ; CM_RecursiveHullCheck(TraceInfo_t *,int,float,float)
		mov	[esp], ebx
		call	_Z14PopTraceVisitsP11TraceInfo_t ; PopTraceVisits(TraceInfo_t *)
		mov	ecx, [ebp+var_1C]
		mov	[ebx+10h], edi
		mov	[ebx+14h], esi
		mov	[ebx+0Ch], ecx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D7B30:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+CFj
		fstp	st(2)
		fxch	st(1)
		fld	ds:flt_1F4CD8
		fldz
		fcomip	st, st(3)
		jnz	loc_D7AB0
		fstp	st(2)
		jmp	short loc_D7B52
; ---------------------------------------------------------------------------
		align 10h

loc_D7B50:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+DDj
		fstp	st(1)

loc_D7B52:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+186j
		fld	ds:flt_1F4CD8
		fldz
		fcomip	st, st(2)
		jnz	loc_D7AD0
		fstp	st(1)
		jmp	short loc_D7B72
; ---------------------------------------------------------------------------
		align 10h

loc_D7B70:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+FCj
		fstp	st(1)

loc_D7B72:				; CODE XREF: CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)+1A4j
		fld	ds:flt_1F4CD8
		fxch	st(2)
		jmp	loc_D7ADA
_Z7CM_StabP11TraceInfo_tRK6VectorS3_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_TestInDispTree(TraceInfo_t	*, cleaf_t *, Vector  const&, Vector  const&, Vector  const&, int, CGameTrace *)
_Z17CM_TestInDispTreeP11TraceInfo_tP7cleaf_tRK6VectorS5_S5_iP10CGameTrace proc near
					; CODE XREF: CM_TestInLeaf(TraceInfo_t *,int)+25Cp

var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		fld	dword ptr [eax]
		fldz
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [ecx+8]
		fxch	st(6)
		fcomi	st, st(5)
		jz	loc_D7DD0
		fstp	st(5)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		fxch	st(4)
		jmp	short loc_D7BF0
; ---------------------------------------------------------------------------
		align 10h

loc_D7BC0:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+254j
		fstp	st(5)
		fxch	st(1)
		fxch	st(2)
		fxch	st(3)
		jmp	short loc_D7BF0
; ---------------------------------------------------------------------------

loc_D7BCA:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+25Ej
		fstp	st(5)
		fxch	st(1)
		fxch	st(2)
		fxch	st(4)
		fxch	st(3)
		jmp	short loc_D7BF0
; ---------------------------------------------------------------------------

loc_D7BD6:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+268j
		fstp	st(5)
		fxch	st(1)
		fxch	st(3)
		fxch	st(2)
		fxch	st(4)
		fxch	st(2)
		jmp	short loc_D7BF0
; ---------------------------------------------------------------------------

loc_D7BE4:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+272j
		fstp	st(5)
		fxch	st(2)
		fxch	st(4)
		fxch	st(1)
		fxch	st(3)
		db	66h
		nop

loc_D7BF0:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+3Bj
					; CM_TestInDispTree(TraceInfo_t	*,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace	*)+48j	...
		mov	ecx, [ebp+arg_8]
		mov	eax, [edx+11Ch]
		cmp	word ptr [edi+0Eh], 0
		fld	dword ptr [ecx]
		fadd	st(1), st
		fxch	st(1)
		fstp	[ebp+var_40]
		fld	dword ptr [ecx+4]
		fadd	st(5), st
		fxch	st(5)
		fstp	[ebp+var_3C]
		fld	dword ptr [ecx+8]
		lea	ecx, [eax+eax*4]
		fadd	st(4), st
		fxch	st(4)
		mov	ecx, [edx+ecx*4+150h]
		mov	eax, [edx+eax*4+120h]
		fstp	[ebp+var_38]
		faddp	st(2), st
		fxch	st(1)
		mov	[ebp+var_50], ecx
		mov	[ebp+var_4C], eax
		fstp	[ebp+var_34]
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_30]
		faddp	st(1), st
		fstp	[ebp+var_2C]
		jz	loc_D7D40
		xor	ebx, ebx
		mov	[ebp+var_5C], edi
		jmp	short loc_D7C6A
; ---------------------------------------------------------------------------
		align 8

loc_D7C58:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+115j
					; CM_TestInDispTree(TraceInfo_t	*,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace	*)+128j ...
		mov	ecx, [ebp+var_5C]
		add	ebx, 1
		movzx	eax, word ptr [ecx+0Eh]
		cmp	eax, ebx
		jle	loc_D7D28

loc_D7C6A:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+D0j
		mov	esi, [ebp+var_5C]
		mov	eax, [edx+104h]
		mov	edi, [ebp+arg_14]
		movzx	ecx, word ptr [esi+0Ch]
		mov	eax, [eax+0B0h]
		add	ecx, ebx
		movzx	esi, word ptr [eax+ecx*2]
		lea	eax, [esi+esi*2]
		shl	eax, 4
		add	eax, ds:g_pDispBounds
		test	[eax+24h], edi
		jz	short loc_D7C58
		mov	edi, [ebp+var_50]
		mov	ecx, [eax+20h]
		lea	ecx, [edi+ecx*4]
		mov	edi, [ebp+var_4C]
		mov	[ebp+var_58], ecx
		cmp	edi, [ecx]
		jz	short loc_D7C58
		mov	[ecx], edi
		lea	ecx, [eax+10h]
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_40]
		mov	[esp+8], eax
		lea	eax, [ebp+var_34]
		mov	[ebp+var_54], edx
		mov	[esp+4], eax
		mov	[esp], ecx
		call	_Z20IsBoxIntersectingBoxRK6VectorS1_S1_S1_ ; IsBoxIntersectingBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&)
		mov	edx, [ebp+var_54]
		test	al, al
		jz	short loc_D7C58
		imul	esi, 0F4h
		lea	eax, [ebp+var_40]
		lea	edi, [ebp+var_34]
		mov	[esp+4], eax
		mov	[esp+8], edi
		add	esi, ds:g_pDispCollTrees
		mov	[esp], esi
		call	_ZN13CDispCollTree22AABBTree_IntersectAABBERK6VectorS2_	; CDispCollTree::AABBTree_IntersectAABB(Vector	const&,Vector  const&)
		mov	edx, [ebp+var_54]
		test	al, al
		jz	loc_D7C58
		mov	edx, [ebp+arg_18]
		mov	byte ptr [edx+37h], 1
		mov	byte ptr [edx+36h], 1
		mov	dword ptr [edx+2Ch], 0
		mov	dword ptr [edx+38h], 0
		mov	eax, [esi+20h]
		mov	[edx+30h], eax
		jmp	loc_D7DBE
; ---------------------------------------------------------------------------
		align 8

loc_D7D28:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+E4j
		mov	edi, ecx
		jmp	short loc_D7D40
; ---------------------------------------------------------------------------

loc_D7D2C:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+27Ej
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		nop
		lea	esi, [esi+0]

loc_D7D40:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+C5j
					; CM_TestInDispTree(TraceInfo_t	*,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace	*)+1AAj
		mov	ebx, [ebp+arg_14]
		lea	eax, [ebp+var_1C]
		mov	[esp], edx
		mov	[esp+10h], eax
		mov	[ebp+var_54], edx
		mov	[esp+4], edi
		mov	[esp+0Ch], ebx
		lea	ebx, [ebp+var_28]
		mov	[esp+8], ebx
		call	_Z10CM_PreStabP11TraceInfo_tP7cleaf_tR6VectoriRi ; CM_PreStab(TraceInfo_t *,cleaf_t *,Vector &,int,int &)
		mov	edx, [ebp+var_54]
		mov	[esp+8], ebx
		mov	eax, [ebp+var_1C]
		mov	esi, [ebp+arg_8]
		mov	[esp], edx
		mov	[esp+0Ch], eax
		mov	[esp+4], esi
		call	_Z7CM_StabP11TraceInfo_tRK6VectorS3_i ;	CM_Stab(TraceInfo_t *,Vector  const&,Vector  const&,int)
		mov	edx, [ebp+var_54]
		mov	ecx, [edx+114h]
		test	ecx, ecx
		jnz	loc_D7E18

loc_D7D92:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+29Fj
		mov	byte ptr [edx+8Bh], 0
		mov	byte ptr [edx+8Ah], 0
		mov	dword ptr [edx+84h], 0
		mov	dword ptr [edx+80h], 3F800000h
		mov	dword ptr [edx+8Ch], 0

loc_D7DBE:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+19Fj
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D7DD0:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+2Bj
		fxch	st(4)
		fcomi	st, st(5)
		jnz	loc_D7BC0
		fxch	st(3)
		fcomi	st, st(5)
		jnz	loc_D7BCA
		fxch	st(2)
		fcomi	st, st(5)
		jnz	loc_D7BD6
		fxch	st(1)
		fcomi	st, st(5)
		jnz	loc_D7BE4
		fxch	st(6)
		fcomi	st, st(5)
		fstp	st(5)
		jz	loc_D7D2C
		fxch	st(2)
		fxch	st(4)
		fxch	st(5)
		fxch	st(1)
		fxch	st(3)
		jmp	loc_D7BF0
; ---------------------------------------------------------------------------
		align 8

loc_D7E18:				; CODE XREF: CM_TestInDispTree(TraceInfo_t *,cleaf_t *,Vector  const&,Vector  const&,Vector  const&,int,CGameTrace *)+20Cj
		cmp	byte ptr [edx+8Bh], 0
		jz	loc_D7D92
		mov	byte ptr [edx+8Ah], 1
		mov	dword ptr [edx+80h], 0
		mov	dword ptr [edx+8Ch], 0
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z17CM_TestInDispTreeP11TraceInfo_tP7cleaf_tRK6VectorS5_S5_iP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PostStab(TraceInfo_t *)
_Z11CM_PostStabP11TraceInfo_t proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+114h]
		test	edx, edx
		jz	short loc_D7E69
		cmp	byte ptr [eax+8Bh], 0
		jnz	short loc_D7EA0

loc_D7E69:				; CODE XREF: CM_PostStab(TraceInfo_t *)+Ej
		mov	byte ptr [eax+8Bh], 0
		mov	byte ptr [eax+8Ah], 0
		mov	dword ptr [eax+84h], 0
		mov	dword ptr [eax+80h], 3F800000h
		mov	dword ptr [eax+8Ch], 0
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D7EA0:				; CODE XREF: CM_PostStab(TraceInfo_t *)+17j
		mov	byte ptr [eax+8Ah], 1
		mov	dword ptr [eax+80h], 0
		mov	dword ptr [eax+8Ch], 0
		pop	ebp
		retn
_Z11CM_PostStabP11TraceInfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_PostTraceToDispTree(TraceInfo_t *)
_Z22CM_PostTraceToDispTreeP11TraceInfo_t proc near
					; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+423p
					; CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+463p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+114h]
		test	ecx, ecx
		jz	short loc_D7EFE
		fld	dword ptr [eax+40h]
		fmul	dword ptr [eax+70h]
		fld	dword ptr [eax+3Ch]
		fmul	dword ptr [eax+6Ch]
		faddp	st(1), st
		fld	dword ptr [eax+44h]
		fmul	dword ptr [eax+74h]
		faddp	st(1), st
		fldz
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jbe	short loc_D7EFE
		mov	byte ptr [eax+8Bh], 1
		mov	byte ptr [eax+8Ah], 1

loc_D7EFE:				; CODE XREF: CM_PostTraceToDispTree(TraceInfo_t	*)+Ej
					; CM_PostTraceToDispTree(TraceInfo_t *)+2Ej
		pop	ebp
		retn
_Z22CM_PostTraceToDispTreeP11TraceInfo_t endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_DestroyDispPhysCollide(void)
_Z25CM_DestroyDispPhysCollidev proc near
					; CODE XREF: CollisionBSPData_Destroy(CCollisionBSPData	*)+55p
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	dword ptr ds:_ZL16g_VirtualTerrain+14h,	0
		mov	dword ptr [esp], (offset _ZL16g_VirtualTerrain+8)
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, dword ptr ds:_ZL16g_VirtualTerrain+8
		mov	dword ptr ds:_ZL16g_VirtualTerrain+18h,	eax
		mov	eax, dword ptr ds:_ZL16g_VirtualTerrain+4
		test	eax, eax
		jz	short loc_D7F39
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_D7F39:				; CODE XREF: CM_DestroyDispPhysCollide(void)+2Fj
		mov	dword ptr ds:_ZL16g_VirtualTerrain+4, 0
		mov	ebx, dword ptr ds:_ZL13g_TerrainList+0Ch
		sub	ebx, 1
		js	short loc_D7F7D
		lea	esi, ds:0[ebx*4]
		lea	esi, [esi+0]

loc_D7F58:				; CODE XREF: CM_DestroyDispPhysCollide(void)+7Bj
		mov	ecx, dword ptr ds:_ZL13g_TerrainList ; g_TerrainList
		sub	ebx, 1
		mov	eax, ds:physcollision
		mov	ecx, [ecx+esi]
		sub	esi, 4
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+44h]
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_D7F58

loc_D7F7D:				; CODE XREF: CM_DestroyDispPhysCollide(void)+4Cj
		mov	dword ptr [esp], offset	_ZL13g_TerrainList ; g_TerrainList
		mov	dword ptr ds:_ZL13g_TerrainList+0Ch, 0
		call	_ZN10CUtlMemoryIP12CPhysCollideiE5PurgeEv ; CUtlMemory<CPhysCollide *,int>::Purge(void)
		mov	eax, dword ptr ds:_ZL13g_TerrainList ; g_TerrainList
		mov	dword ptr ds:_ZL13g_TerrainList+10h, eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z25CM_DestroyDispPhysCollidev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_DispTreeLeafnum(CCollisionBSPData *)
_Z18CM_DispTreeLeafnumP17CCollisionBSPData proc	near
					; CODE XREF: CM_LoadMap(char  const*,bool,uint *)+ACp

var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_5E		= word ptr -5Eh
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	ebx, ds:g_DispCollTreeCount
		mov	edi, [ebp+arg_0]
		test	ebx, ebx
		jz	loc_D8297
		mov	eax, [edi+84h]
		test	eax, eax
		jle	short loc_D7FFC
		xor	eax, eax
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_D7FE0:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+4Aj
		mov	edx, eax
		add	eax, 1
		shl	edx, 4
		add	edx, [edi+88h]
		mov	word ptr [edx+0Eh], 0
		cmp	[edi+84h], eax
		jg	short loc_D7FE0

loc_D7FFC:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+22j
		mov	[ebp+var_4C], 0
		lea	esi, [ebp+var_40]
		mov	[ebp+var_48], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_58], edi
		mov	[ebp+var_50], 1000h
		mov	dword ptr [esp], 2000h ; size
		call	malloc
		mov	[ebp+var_20], 0
		mov	[ebp+var_54], eax
		mov	[ebp+var_44], eax
		lea	eax, [ebp+var_2C]
		mov	[esp], eax
		mov	[esp+4], ebx
		call	_ZN10CUtlVectorIt10CUtlMemoryItiEE10GrowVectorEi ; CUtlVector<ushort,CUtlMemory<ushort,int>>::GrowVector(int)
		lea	edx, [ebp+var_2C]
		mov	[esp+8], ebx
		mov	[esp], edx
		mov	dword ptr [esp+4], 0
		call	_ZN10CUtlVectorIt10CUtlMemoryItiEE18ShiftElementsRightEii ; CUtlVector<ushort,CUtlMemory<ushort,int>>::ShiftElementsRight(int,int)
		mov	eax, ds:g_DispCollTreeCount
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE8SetCountEi ;	CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)
		mov	eax, ds:g_DispCollTreeCount
		test	eax, eax
		jle	short loc_D80F7
		lea	ebx, [ebp+var_58]
		xor	eax, eax
		lea	esi, [esi+0]

loc_D80B8:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+126j
		mov	edx, [ebx+2Ch]
		mov	word ptr [edx+eax*2], 0
		mov	edx, [ebx+18h]
		mov	dword ptr [edx+eax*4], 0FFFFFFFFh
		add	eax, 1
		mov	edx, ds:g_DispCollTreeCount
		cmp	eax, edx
		jl	short loc_D80B8
		test	edx, edx
		jle	short loc_D80F7
		xor	esi, esi
		db	66h
		nop

loc_D80E0:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+145j
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN16CDispLeafBuilder28BuildLeafListForDisplacementEi ;	CDispLeafBuilder::BuildLeafListForDisplacement(int)
		add	esi, 1
		cmp	ds:g_DispCollTreeCount,	esi
		jg	short loc_D80E0

loc_D80F7:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+FDj
					; CM_DispTreeLeafnum(CCollisionBSPData *)+12Aj
		mov	eax, [ebp+var_48]
		mov	dword ptr [esp+4], 0
		add	eax, eax
		mov	[esp], eax
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebp+var_58]
		mov	[edi+0B0h], eax
		mov	[ebp+var_64], eax
		mov	eax, [edx+84h]
		test	eax, eax
		jle	short loc_D8144
		xor	eax, eax
		lea	esi, [esi+0]

loc_D8128:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+192j
		mov	ecx, eax
		add	eax, 1
		shl	ecx, 4
		add	ecx, [edx+88h]
		mov	word ptr [ecx+0Eh], 0
		cmp	eax, [edx+84h]
		jl	short loc_D8128

loc_D8144:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+170j
		mov	eax, [ebp+var_48]
		test	eax, eax
		jle	short loc_D8172
		mov	esi, [ebp+var_54]
		lea	ebx, [ebp+var_58]
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_D8158:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+1C0j
		movzx	eax, word ptr [esi+ecx*2]
		add	ecx, 1
		shl	eax, 4
		add	eax, [edx+88h]
		add	word ptr [eax+0Eh], 1
		cmp	ecx, [ebx+10h]
		jl	short loc_D8158

loc_D8172:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+199j
		mov	edi, [edx+84h]
		test	edi, edi
		jle	short loc_D81A4
		xor	ebx, ebx
		xor	ecx, ecx

loc_D8180:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+1F2j
		mov	eax, ecx
		add	ecx, 1
		shl	eax, 4
		add	eax, [edx+88h]
		mov	[eax+0Ch], bx
		add	bx, [eax+0Eh]
		mov	word ptr [eax+0Eh], 0
		cmp	ecx, [edx+84h]
		jl	short loc_D8180

loc_D81A4:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+1CAj
		mov	esi, [ebp+var_20]
		test	esi, esi
		jle	loc_D8234
		mov	[ebp+var_68], 0
		lea	ebx, [ebp+var_58]
		lea	esi, [esi+0]

loc_D81C0:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+282j
		mov	eax, [ebx+2Ch]
		mov	edi, [ebp+var_68]
		movzx	eax, word ptr [eax+edi*2]
		test	eax, eax
		mov	[ebp+var_5C], eax
		jz	short loc_D8228
		movzx	eax, word ptr [ebp+var_68]
		shl	edi, 2
		xor	edx, edx
		mov	[ebp+var_6C], edi
		mov	[ebp+var_5E], ax
		lea	esi, [esi+0]

loc_D81E8:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+276j
		mov	eax, [ebx+18h]
		mov	ecx, edx
		add	edx, 1
		mov	esi, [ebp+var_6C]
		mov	edi, [ebp+var_64]
		add	ecx, [eax+esi]
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+ecx*2]
		mov	ecx, [ebp+var_58]
		shl	eax, 4
		add	eax, [ecx+88h]
		movzx	esi, word ptr [eax+0Ch]
		movzx	ecx, word ptr [eax+0Eh]
		add	ecx, esi
		movzx	esi, [ebp+var_5E]
		mov	[edi+ecx*2], si
		add	word ptr [eax+0Eh], 1
		cmp	[ebp+var_5C], edx
		jg	short loc_D81E8

loc_D8228:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+21Fj
		add	[ebp+var_68], 1
		mov	edi, [ebp+var_68]
		cmp	edi, [ebx+38h]
		jl	short loc_D81C0

loc_D8234:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+1F9j
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_20], 0
		mov	[esp], eax
		lea	esi, [ebp+var_40]
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		lea	edx, [ebp+var_2C]
		mov	[esp], edx
		lea	ebx, [ebp+var_54]
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	[ebp+var_34], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp+var_40]
		mov	[esp], esi
		mov	[ebp+var_30], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	[ebp+var_48], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	eax, [ebp+var_54]
		mov	[esp], ebx
		mov	[ebp+var_44], eax
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)

loc_D8297:				; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+14j
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z18CM_DispTreeLeafnumP17CCollisionBSPData endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-20h], 0
		lea	edi, [ebp-40h]
		mov	esi, eax
		lea	eax, [ebp-2Ch]
		mov	[esp], eax
		lea	ebx, [ebp-54h]
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	eax, [ebp-2Ch]
		lea	edx, [ebp-2Ch]
		mov	[esp], edx
		mov	[ebp-1Ch], eax
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	dword ptr [ebp-34h], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp-40h]
		mov	[esp], edi
		mov	[ebp-30h], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	dword ptr [ebp-48h], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	eax, [ebp-54h]
		mov	[esp], ebx
		mov	[ebp-44h], eax
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CM_CreateDispPhysCollide(dphysdisp_t *, int)
_Z24CM_CreateDispPhysCollideP11dphysdisp_ti proc near
					; CODE XREF: CollisionBSPData_LoadDispInfo(CCollisionBSPData *)+593p

var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	loc_D8450
		mov	eax, ds:g_DispCollTreeCount
		mov	dword ptr [esp], (offset _ZL16g_VirtualTerrain+8)
		xor	esi, esi
		lea	edi, [ebx+2]
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE8SetCountEi ;	CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)
		cmp	word ptr [ebx],	0
		jz	short loc_D838B
		xor	edx, edx
		xor	ecx, ecx
		xor	eax, eax
		jmp	short loc_D8367
; ---------------------------------------------------------------------------
		align 10h

loc_D8350:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+63j
		mov	[esi+edx], ecx
		add	edx, 4
		movzx	esi, word ptr [ebx+eax*2+2]
		add	eax, 1
		add	ecx, esi
		movzx	esi, word ptr [ebx]
		cmp	eax, esi
		jge	short loc_D8389

loc_D8367:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+3Aj
					; CM_CreateDispPhysCollide(dphysdisp_t *,int)+77j
		cmp	word ptr [ebx+eax*2+2],	0FFFFh
		mov	esi, dword ptr ds:_ZL16g_VirtualTerrain+8
		jnz	short loc_D8350
		mov	dword ptr [esi+edx], 0FFFFFFFFh
		add	eax, 1
		add	edx, 4
		movzx	esi, word ptr [ebx]
		cmp	eax, esi
		jl	short loc_D8367

loc_D8389:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+55j
		mov	esi, ecx

loc_D838B:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+32j
		mov	[esp], esi
		call	_Znaj		; operator new[](uint)
		mov	dword ptr ds:_ZL16g_VirtualTerrain+4, eax
		movzx	edx, word ptr [ebx]
		mov	[esp+8], esi	; n
		mov	[esp], eax	; dest
		lea	edx, [edi+edx*2]
		mov	[esp+4], edx	; src
		call	memcpy

loc_D83AE:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+14Aj
		mov	eax, ds:g_DispCollTreeCount
		mov	dword ptr [esp], offset	_ZL13g_TerrainList ; g_TerrainList
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP12CPhysCollide10CUtlMemoryIS1_iEE8SetCountEi ;	CUtlVector<CPhysCollide	*,CUtlMemory<CPhysCollide *,int>>::SetCount(int)
		mov	eax, ds:g_DispCollTreeCount
		test	eax, eax
		jle	short loc_D8448
		xor	edi, edi
		xor	ebx, ebx
		xor	esi, esi
		jmp	short loc_D83F8
; ---------------------------------------------------------------------------
		align 8

loc_D83D8:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+F6j
		mov	eax, dword ptr ds:_ZL13g_TerrainList ; g_TerrainList
		mov	dword ptr [eax+edi], 0

loc_D83E4:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+132j
		add	esi, 1
		add	ebx, 0F4h
		add	edi, 4
		cmp	ds:g_DispCollTreeCount,	esi
		jle	short loc_D8448

loc_D83F8:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+C2j
		mov	eax, ebx
		add	eax, ds:g_pDispCollTrees
		jz	short loc_D8408
		test	byte ptr [eax+2Ch], 2
		jnz	short loc_D83D8

loc_D8408:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+F0j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_24], offset _ZL16g_VirtualTerrain ; g_VirtualTerrain
		mov	edx, dword ptr ds:_ZL13g_TerrainList ; g_TerrainList
		mov	[ebp+var_20], esi
		test	eax, eax
		mov	eax, ds:physcollision
		setle	[ebp+var_1C]
		add	edx, edi
		mov	[ebp+var_30], edx
		lea	edx, [ebp+var_24]
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+0BCh]
		mov	edx, [ebp+var_30]
		mov	[edx], eax
		jmp	short loc_D83E4
; ---------------------------------------------------------------------------
		align 8

loc_D8448:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+BAj
					; CM_CreateDispPhysCollide(dphysdisp_t *,int)+E6j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D8450:				; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+Ej
		mov	dword ptr ds:_ZL16g_VirtualTerrain+4, 0
		jmp	loc_D83AE
_Z24CM_CreateDispPhysCollideP11dphysdisp_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CVirtualTerrain::GetWorldspaceBounds(void *, Vector *, Vector	*)
_ZN15CVirtualTerrain19GetWorldspaceBoundsEPvP6VectorS2_	proc near
					; DATA XREF: .rodata:`vtable for'CVirtualTerraino

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], ebx
		mov	ebx, ds:g_pDispBounds
		mov	[ebp+var_4], esi
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_C]
		lea	eax, [eax+eax*2]
		shl	eax, 4
		add	ebx, eax
		mov	esi, [ebx]
		mov	[ecx], esi
		mov	esi, [ebx+4]
		add	eax, ds:g_pDispBounds
		mov	[ecx+4], esi
		mov	ebx, [ebx+8]
		mov	[ecx+8], ebx
		mov	ecx, [eax+10h]
		mov	[edx], ecx
		mov	ecx, [eax+14h]
		mov	[edx+4], ecx
		mov	eax, [eax+18h]
		mov	[edx+8], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN15CVirtualTerrain19GetWorldspaceBoundsEPvP6VectorS2_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CVirtualTerrain__GetTrianglesInSphere(int, int, int, float, int)
_ZN15CVirtualTerrain20GetTrianglesInSphereEPvRK6VectorfP25virtualmeshtrianglelist_t proc near
					; DATA XREF: .rodata:`vtable for'CVirtualTerraino

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_10]
		mov	dword ptr [esp+10h], 0C00h ; __int16
		lea	eax, [ebx+4]
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_C]
		mov	[esp+8], eax	; float
		mov	eax, [ebp+arg_8]
		mov	[esp+4], eax	; int
		imul	eax, [ebp+arg_4], 0F4h
		add	eax, ds:g_pDispCollTrees
		mov	[esp], eax	; int
		call	_ZN13CDispCollTree24AABBTree_GetTrisInSphereERK6VectorfPti ; CDispCollTree::AABBTree_GetTrisInSphere(Vector  const&,float,ushort *,int)
		mov	[ebx], eax
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN15CVirtualTerrain20GetTrianglesInSphereEPvRK6VectorfP25virtualmeshtrianglelist_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CVirtualTerrain::GetVirtualMesh(void *, virtualmeshlist_t *)
_ZN15CVirtualTerrain14GetVirtualMeshEPvP17virtualmeshlist_t proc near
					; DATA XREF: .rodata:`vtable for'CVirtualTerraino

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		imul	eax, esi, 0F4h
		mov	[esp+4], ebx
		add	eax, ds:g_pDispCollTrees
		mov	[esp], eax
		call	_ZN13CDispCollTree18GetVirtualMeshListEP17virtualmeshlist_t ; CDispCollTree::GetVirtualMeshList(virtualmeshlist_t *)
		mov	dword ptr [ebx+14h], 0
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_D855D
		mov	edx, [edi+8]
		mov	edx, [edx+esi*4]
		test	edx, edx
		js	short loc_D855D
		add	eax, edx
		mov	[ebx+14h], eax

loc_D855D:				; CODE XREF: CVirtualTerrain::GetVirtualMesh(void *,virtualmeshlist_t *)+3Cj
					; CVirtualTerrain::GetVirtualMesh(void *,virtualmeshlist_t *)+46j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN15CVirtualTerrain14GetVirtualMeshEPvP17virtualmeshlist_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void CM_TraceToDispTree<true>(TraceInfo_t *, CDispCollTree *,	float, float)
_Z18CM_TraceToDispTreeILb1EEvP11TraceInfo_tP13CDispCollTreeff proc near
					; CODE XREF: CM_TraceToLeaf<true>(TraceInfo_t *,int,float,float)+3FFp

var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_18		= byte ptr -18h
var_17		= byte ptr -17h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 70h
		mov	[ebp+var_17], 1
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_28], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_18], 1
		mov	eax, [ebx+8]
		mov	edx, [ebx+4]
		mov	ecx, [ebx]
		mov	[ebp+var_50], eax
		mov	eax, [ebx+44h]
		mov	[ebp+var_54], edx
		mov	edx, [ebx+40h]
		mov	[ebp+var_58], ecx
		mov	ecx, [ebx+3Ch]
		mov	dword ptr [esp+10h], 1
		mov	[ebp+var_40], eax
		lea	eax, [ebx+54h]
		mov	[esp+0Ch], eax
		lea	eax, [ebx+48h]
		mov	[esp+8], eax
		lea	eax, [ebp+var_58]
		mov	[ebp+var_48], ecx
		mov	[ebp+var_44], edx
		mov	[esp+4], eax
		mov	[esp], esi
		call	_ZN13CDispCollTree12AABBTree_RayERK5Ray_tRK6VectorP10CBaseTraceb ; CDispCollTree::AABBTree_Ray(Ray_t  const&,Vector  const&,CBaseTrace *,bool)
		test	al, al
		jz	short loc_D8621
		mov	dword ptr [ebx+114h], 1
		test	byte ptr [ebx+88h], 10h
		mov	eax, [esi+20h]
		mov	dword ptr [ebx+90h], offset aDisplacement ; "**displacement**"
		mov	word ptr [ebx+96h], 0
		mov	[ebx+84h], eax
		jnz	short loc_D8630
		movzx	eax, word ptr [esi+6Ch]
		mov	[ebx+94h], ax

loc_D8621:				; CODE XREF: CM_TraceToDispTree<true>(TraceInfo_t *,CDispCollTree *,float,float)+75j
		add	esp, 70h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D8630:				; CODE XREF: CM_TraceToDispTree<true>(TraceInfo_t *,CDispCollTree *,float,float)+A4j
		movzx	eax, word ptr [esi+6Eh]
		mov	[ebx+94h], ax
		add	esp, 70h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z18CM_TraceToDispTreeILb1EEvP11TraceInfo_tP13CDispCollTreeff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void CM_TraceToDispTree<false>(TraceInfo_t *,	CDispCollTree *, float,	float)
_Z18CM_TraceToDispTreeILb0EEvP11TraceInfo_tP13CDispCollTreeff proc near
					; CODE XREF: CM_TraceToLeaf<false>(TraceInfo_t *,int,float,float)+446p

var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_18		= byte ptr -18h
var_17		= byte ptr -17h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 60h
		mov	[ebp+var_17], 1
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_18], 0
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+8]
		mov	edx, [ebx+4]
		mov	ecx, [ebx]
		mov	[ebp+var_50], eax
		mov	eax, [ebx+44h]
		mov	[ebp+var_54], edx
		mov	edx, [ebx+40h]
		mov	[ebp+var_58], ecx
		mov	ecx, [ebx+3Ch]
		mov	[ebp+var_40], eax
		mov	eax, [ebx+38h]
		mov	[ebp+var_44], edx
		mov	edx, [ebx+34h]
		mov	[ebp+var_48], ecx
		mov	ecx, [ebx+30h]
		mov	[esp], esi
		mov	[ebp+var_20], eax
		lea	eax, [ebx+54h]
		mov	[esp+0Ch], eax
		lea	eax, [ebx+48h]
		mov	[esp+8], eax
		lea	eax, [ebp+var_58]
		mov	[ebp+var_28], ecx
		mov	[ebp+var_24], edx
		mov	[esp+4], eax
		call	_ZN13CDispCollTree18AABBTree_SweepAABBERK5Ray_tRK6VectorP10CBaseTrace ;	CDispCollTree::AABBTree_SweepAABB(Ray_t	 const&,Vector	const&,CBaseTrace *)
		test	al, al
		jz	short loc_D86F6
		mov	dword ptr [ebx+114h], 1
		test	byte ptr [ebx+88h], 10h
		mov	eax, [esi+20h]
		mov	dword ptr [ebx+90h], offset aDisplacement ; "**displacement**"
		mov	word ptr [ebx+96h], 0
		mov	[ebx+84h], eax
		jnz	short loc_D8700
		movzx	eax, word ptr [esi+6Ch]
		mov	[ebx+94h], ax

loc_D86F6:				; CODE XREF: CM_TraceToDispTree<false>(TraceInfo_t *,CDispCollTree *,float,float)+6Aj
		add	esp, 60h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D8700:				; CODE XREF: CM_TraceToDispTree<false>(TraceInfo_t *,CDispCollTree *,float,float)+99j
		movzx	eax, word ptr [esi+6Eh]
		mov	[ebx+94h], ax
		add	esp, 60h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z18CM_TraceToDispTreeILb0EEvP11TraceInfo_tP13CDispCollTreeff endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CVirtualTerrain::~CVirtualTerrain()
_ZN15CVirtualTerrainD2Ev proc near	; DATA XREF: _GLOBAL__sub_I_g_DispCollTreeCount+41o

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+8]
		mov	dword ptr [ebx], (offset _ZTV15CVirtualTerrain+8)
		mov	dword ptr [ebx+14h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebx+8]
		mov	[ebx+18h], eax
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_0], esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
_ZN15CVirtualTerrainD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CPhysCollide *, int>::Purge(void)
_ZN10CUtlMemoryIP12CPhysCollideiE5PurgeEv proc near
					; CODE XREF: CM_DestroyDispPhysCollide(void)+8Ep
					; CUtlVector<CPhysCollide *,CUtlMemory<CPhysCollide *,int>>::~CUtlVector()+14p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_D878C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_D8785
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_D8785:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_D878C:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP12CPhysCollideiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CPhysCollide *, CUtlMemory<CPhysCollide *,	int>>::~CUtlVector()
_ZN10CUtlVectorIP12CPhysCollide10CUtlMemoryIS1_iEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_DispCollTreeCount+C1o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIP12CPhysCollideiE5PurgeEv ; CUtlMemory<CPhysCollide *,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryIP12CPhysCollideiE5PurgeEv ; CUtlMemory<CPhysCollide *,int>::Purge(void)
_ZN10CUtlVectorIP12CPhysCollide10CUtlMemoryIS1_iEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned short, CUtlMemory<unsigned short,	int>>::ShiftElementsRight(int, int)
_ZN10CUtlVectorIt10CUtlMemoryItiEE18ShiftElementsRightEii proc near
					; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+E0p
					; CDispLeafBuilder::BuildLeafListForDisplacement(int)+1E3p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	eax, [ebx+0Ch]
		sub	eax, ecx
		sub	eax, edx
		test	eax, eax
		jg	short loc_D87F0

loc_D87E8:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::ShiftElementsRight(int,int)+22j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D87F0:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::ShiftElementsRight(int,int)+16j
		test	edx, edx
		jle	short loc_D87E8
		mov	ebx, [ebx]
		add	eax, eax
		add	edx, ecx
		mov	[ebp+arg_8], eax
		lea	eax, [ebx+ecx*2]
		mov	[ebp+arg_4], eax
		lea	eax, [ebx+edx*2]
		pop	ebx
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	memmove
_ZN10CUtlVectorIt10CUtlMemoryItiEE18ShiftElementsRightEii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned short, CUtlMemory<unsigned short,	int>>::GrowVector(int)
_ZN10CUtlVectorIt10CUtlMemoryItiEE10GrowVectorEi proc near
					; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+C9p
					; CDispLeafBuilder::BuildLeafListForDisplacement(int)+1C3p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		add	eax, esi
		cmp	eax, edx
		jle	short loc_D8841
		sub	eax, edx
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryItiE4GrowEi ; CUtlMemory<ushort,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		add	eax, esi

loc_D8841:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::GrowVector(int)+1Cj
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIt10CUtlMemoryItiEE10GrowVectorEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispLeafBuilder::BuildLeafListForDisplacement(int)
_ZN16CDispLeafBuilder28BuildLeafListForDisplacementEi proc near
					; CODE XREF: CM_DispTreeLeafnum(CCollisionBSPData *)+137p

var_104C	= dword	ptr -104Ch
var_1048	= dword	ptr -1048h
var_1044	= dword	ptr -1044h
var_1040	= dword	ptr -1040h
var_103C	= dword	ptr -103Ch
var_1030	= dword	ptr -1030h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 105Ch
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		imul	eax, ecx, 0F4h
		add	eax, ds:g_pDispCollTrees
		jz	loc_D89C0
		mov	ebx, [eax+28h]
		test	ebx, ebx
		jz	loc_D89C0
		mov	[ebp+var_103C],	0
		mov	esi, [edx+10h]
		mov	ebx, [edx+18h]
		mov	[ebx+ecx*4], esi
		lea	ebx, [ecx+ecx]
		mov	esi, 1
		mov	[ebp+var_1044],	ebx
		mov	ebx, [edx+2Ch]
		mov	word ptr [ebx+ecx*2], 0
		mov	ecx, [edx]
		mov	ecx, [ecx+0A0h]
		mov	edi, [ecx+24h]
		mov	ecx, [eax+4]
		mov	[ebp+var_1030],	edi
		mov	[ebp+var_30], ecx
		mov	ecx, [eax+8]
		mov	[ebp+var_2C], ecx
		mov	ecx, [eax+0Ch]
		mov	[ebp+var_28], ecx
		mov	ecx, [eax+14h]
		mov	[ebp+var_24], ecx
		mov	ecx, [eax+18h]
		mov	eax, [eax+1Ch]
		mov	[ebp+var_20], ecx
		mov	[ebp+var_1C], eax
		jmp	short loc_D88FF
; ---------------------------------------------------------------------------

loc_D88F0:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+133j
					; CDispLeafBuilder::BuildLeafListForDisplacement(int)+20Dj
		cmp	esi, ebx
		jz	loc_D89C0

loc_D88F8:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+15Aj
		mov	edi, [ebp+ebx*4+var_1030]

loc_D88FF:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+8Ej
		mov	ebx, [ebp+var_103C]
		add	ebx, 1
		mov	eax, ebx
		sar	eax, 1Fh
		shr	eax, 16h
		add	ebx, eax
		and	ebx, 3FFh
		sub	ebx, eax
		test	edi, edi
		mov	[ebp+var_103C],	ebx
		js	loc_D8A00
		mov	eax, [edx]
		lea	edi, [edi+edi*2]
		mov	ecx, [eax]
		lea	edi, [ecx+edi*4]
		mov	eax, [edi]
		movzx	ecx, byte ptr [eax+10h]
		cmp	cl, 2
		ja	loc_D89D0
		fld	dword ptr [eax+0Ch]
		movzx	ecx, cl
		xor	eax, eax
		fld	[ebp+ecx*4+var_30]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_D8970
		fld	[ebp+ecx*4+var_24]
		fxch	st(1)
		mov	eax, 2
		fcomip	st, st(1)
		fstp	st
		jnb	short loc_D8999
		jmp	short loc_D8972
; ---------------------------------------------------------------------------
		align 10h

loc_D8970:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+F3j
		fstp	st

loc_D8972:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+106j
					; CDispLeafBuilder::BuildLeafListForDisplacement(int)+215j
		mov	ecx, [edi+4]
		mov	[ebp+esi*4+var_1030], ecx
		add	esi, 1
		mov	ecx, esi
		sar	ecx, 1Fh
		shr	ecx, 16h
		add	esi, ecx
		and	esi, 3FFh
		sub	esi, ecx

loc_D8991:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+199j
		test	eax, eax
		jz	loc_D88F0

loc_D8999:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+104j
		mov	eax, [edi+8]
		mov	[ebp+esi*4+var_1030], eax
		add	esi, 1
		mov	eax, esi
		sar	eax, 1Fh
		shr	eax, 16h
		add	esi, eax
		and	esi, 3FFh
		sub	esi, eax
		cmp	esi, ebx
		jnz	loc_D88F8

loc_D89C0:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+1Ej
					; CDispLeafBuilder::BuildLeafListForDisplacement(int)+29j ...
		add	esp, 105Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D89D0:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+DBj
		mov	[esp+8], eax
		lea	ecx, [ebp+var_30]
		lea	eax, [ebp+var_24]
		mov	[ebp+var_1048],	edx
		mov	[esp+4], eax
		mov	[esp], ecx
		call	_Z14BoxOnPlaneSidePKfS0_PK8cplane_t ; BoxOnPlaneSide(float  const*,float  const*,cplane_t  const*)
		mov	edx, [ebp+var_1048]
		test	al, 1
		jnz	short loc_D8A72
		and	eax, 2
		jmp	short loc_D8991
; ---------------------------------------------------------------------------
		align 10h

loc_D8A00:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+C2j
		mov	ecx, [edx+10h]
		lea	eax, [edx+4]
		mov	[ebp+var_1048],	edx
		mov	[esp], eax
		mov	[ebp+var_104C],	eax
		mov	dword ptr [esp+4], 1
		mov	[ebp+var_1040],	ecx
		call	_ZN10CUtlVectorIt10CUtlMemoryItiEE10GrowVectorEi ; CUtlVector<ushort,CUtlMemory<ushort,int>>::GrowVector(int)
		mov	eax, [ebp+var_104C]
		mov	dword ptr [esp+8], 1
		mov	ecx, [ebp+var_1040]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	_ZN10CUtlVectorIt10CUtlMemoryItiEE18ShiftElementsRightEii ; CUtlVector<ushort,CUtlMemory<ushort,int>>::ShiftElementsRight(int,int)
		mov	eax, [ebp+var_1040]
		mov	edx, [ebp+var_1048]
		add	eax, eax
		add	eax, [edx+4]
		jz	short loc_D8A60
		not	edi
		mov	[eax], di

loc_D8A60:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+1F9j
		mov	eax, [ebp+var_1044]
		add	eax, [edx+2Ch]
		add	word ptr [eax],	1
		jmp	loc_D88F0
; ---------------------------------------------------------------------------

loc_D8A72:				; CODE XREF: CDispLeafBuilder::BuildLeafListForDisplacement(int)+194j
		and	eax, 2
		jmp	loc_D8972
_ZN16CDispLeafBuilder28BuildLeafListForDisplacementEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CPhysCollide *, int>::Grow(int)
_ZN10CUtlMemoryIP12CPhysCollideiE4GrowEi proc near
					; CODE XREF: CUtlVector<CPhysCollide *,CUtlMemory<CPhysCollide *,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_D8AD0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_D8AE0
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_D8AB6
		lea	esi, [esi+0]

loc_D8AB0:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_D8AB0

loc_D8AB6:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Grow(int)+2Aj
					; CUtlMemory<CPhysCollide *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_D8B13

loc_D8AC2:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_D8AD0:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D8AE0:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_D8AB6
		lea	esi, [esi+0]

loc_D8AF8:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_D8AF8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_D8AC2

loc_D8B13:				; CODE XREF: CUtlMemory<CPhysCollide *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP12CPhysCollideiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CPhysCollide *, CUtlMemory<CPhysCollide *,	int>>::SetCount(int)
_ZN10CUtlVectorIP12CPhysCollide10CUtlMemoryIS1_iEE8SetCountEi proc near
					; CODE XREF: CM_CreateDispPhysCollide(dphysdisp_t *,int)+AEp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_D8B5F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_D8B70
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_D8B5F:				; CODE XREF: CUtlVector<CPhysCollide *,CUtlMemory<CPhysCollide *,int>>::SetCount(int)+1Ej
					; CUtlVector<CPhysCollide *,CUtlMemory<CPhysCollide *,int>>::SetCount(int)+6Ej	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D8B70:				; CODE XREF: CUtlVector<CPhysCollide *,CUtlMemory<CPhysCollide *,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIP12CPhysCollideiE4GrowEi ; CUtlMemory<CPhysCollide *,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_D8B5F
		test	cl, cl
		jz	short loc_D8B5F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIP12CPhysCollide10CUtlMemoryIS1_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_ExplainDisconnection(char, char *format, char	arg)
_Z24COM_ExplainDisconnectionbPKcz proc near
					; CODE XREF: _ZN16CBaseClientState14CheckForResendEv_part_28+1A7p
					; CBaseClientState::ProcessConnectionlessPacket(netpacket_s *)+5D0p ...

dest		= dword	ptr -808h
src		= byte ptr -408h
arg_0		= byte ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	eax, [ebp+arg]
		lea	ebx, [ebp+src]
		sub	esp, 810h
		movzx	esi, [ebp+arg_0]
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], ebx	; src
		mov	dword ptr [esp], offset	gszDisconnectReason ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, esi
		mov	ds:gfExtendedError, 1
		test	al, al
		jz	short loc_D8C45
		cmp	ds:gszDisconnectReason,	23h
		jz	short loc_D8C50

loc_D8C31:				; CODE XREF: COM_ExplainDisconnection(bool,char	 const*,...)+87j
					; COM_ExplainDisconnection(bool,char  const*,...)+9Bj
		mov	dword ptr [esp+4], offset gszDisconnectReason
		mov	dword ptr [esp], offset	off_20DC96
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_D8C45:				; CODE XREF: COM_ExplainDisconnection(bool,char	 const*,...)+56j
		add	esp, 810h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D8C50:				; CODE XREF: COM_ExplainDisconnection(bool,char	 const*,...)+5Fj
		mov	eax, ds:g_pVGuiLocalize
		test	eax, eax
		jz	short loc_D8C31
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset gszDisconnectReason
		mov	[esp], eax
		call	dword ptr [edx+8]
		test	eax, eax
		jz	short loc_D8C31
		lea	esi, [ebp+dest]
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp], esi	; dest
		mov	[esp+4], eax	; src
		call	wcsncpy
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	dword ptr [esp+8], 100h
		call	_ZN9ILocalize20ConvertUnicodeToANSIEPKwPci ; ILocalize::ConvertUnicodeToANSI(wchar_t  const*,char *,int)
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	off_20DC96
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 810h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z24COM_ExplainDisconnectionbPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_ExtendedExplainDisconnection(char, char *format, char	arg)
_Z32COM_ExtendedExplainDisconnectionbPKcz proc near

src		= byte ptr -408h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 418h
		lea	eax, [ebp+arg]
		mov	[ebp+var_4], esi
		movzx	esi, [ebp+arg_0]
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	[ebp+var_8], ebx
		lea	ebx, [ebp+src]
		mov	dword ptr [esp+4], 400h	; maxlen
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	dword ptr [esp+8], 100h	; n
		mov	[esp+4], ebx	; src
		mov	dword ptr [esp], offset	gszExtendedDisconnectReason ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, esi
		test	al, al
		jz	short loc_D8D29
		mov	dword ptr [esp+4], offset gszExtendedDisconnectReason
		mov	dword ptr [esp], offset	off_20DC96
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_D8D29:				; CODE XREF: COM_ExtendedExplainDisconnection(bool,char	 const*,...)+53j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z32COM_ExtendedExplainDisconnectionbPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_Parse(char  const*)
_Z9COM_ParsePKc	proc near		; CODE XREF: VOX_ParseLineCommands(char	*,int)+1D7p
					; COM_ParseFile(char  const*,char *,int)+Dp ...

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	eax, offset _ZL10g_BreakSet_0 ;	g_BreakSet
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, offset _ZL25g_BreakSetIncludingColons_0 ; g_BreakSetIncludingColons
		push	ebx
		sub	esp, 8
		mov	ds:com_token, 0
		cmp	ds:com_ignorecolons, 0
		mov	edx, [ebp+arg_0]
		cmovnz	esi, eax
		test	edx, edx
		jz	short loc_D8DA5
		movzx	eax, byte ptr [edx]
		db	66h
		nop

loc_D8D70:				; CODE XREF: COM_Parse(char  const*)+45j
					; COM_Parse(char  const*)+49j ...
		cmp	al, 20h
		mov	ecx, eax
		jbe	short loc_D8D98
		cmp	al, 2Fh
		jnz	short loc_D8DAF
		cmp	byte ptr [edx+1], 2Fh
		jnz	short loc_D8DF7

loc_D8D80:				; CODE XREF: COM_Parse(char  const*)+4Fj
		add	edx, 1
		cmp	al, 0Ah
		jz	short loc_D8D70
		test	al, al
		jz	short loc_D8D70
		movzx	eax, byte ptr [edx+1]
		jmp	short loc_D8D80
; ---------------------------------------------------------------------------
		align 8

loc_D8D98:				; CODE XREF: COM_Parse(char  const*)+34j
		test	al, al
		jz	short loc_D8DA5
		movzx	eax, byte ptr [edx+1]
		add	edx, 1
		jmp	short loc_D8D70
; ---------------------------------------------------------------------------

loc_D8DA5:				; CODE XREF: COM_Parse(char  const*)+29j
					; COM_Parse(char  const*)+5Aj
		add	esp, 8
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D8DAF:				; CODE XREF: COM_Parse(char  const*)+38j
		cmp	al, 22h
		jnz	loc_D8E3F
		movzx	ecx, byte ptr [edx+1]
		lea	eax, [edx+2]
		xor	edx, edx
		cmp	cl, 22h
		jz	short loc_D8DE8
		test	cl, cl
		jnz	short loc_D8DD5
		jmp	short loc_D8DE8
; ---------------------------------------------------------------------------
		align 10h

loc_D8DD0:				; CODE XREF: COM_Parse(char  const*)+A6j
		cmp	cl, 22h
		jz	short loc_D8DE8

loc_D8DD5:				; CODE XREF: COM_Parse(char  const*)+87j
		mov	ds:com_token[edx], cl
		add	edx, 1
		movzx	ecx, byte ptr [eax]
		add	eax, 1
		test	cl, cl
		jnz	short loc_D8DD0

loc_D8DE8:				; CODE XREF: COM_Parse(char  const*)+83j
					; COM_Parse(char  const*)+89j ...
		mov	ds:com_token[edx], 0
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D8DF7:				; CODE XREF: COM_Parse(char  const*)+3Ej
		mov	[ebp+var_14], 2Fh

loc_D8DFE:				; CODE XREF: COM_Parse(char  const*)+105j
		lea	edi, [edx+1]
		xor	ebx, ebx
		mov	[ebp+var_10], edi
		mov	edi, [ebp+var_14]
		cmp	byte ptr [esi+edi], 0
		jnz	short loc_D8E47
		nop

loc_D8E10:				; CODE XREF: COM_Parse(char  const*)+EEj
		mov	eax, [ebp+var_10]
		mov	ds:com_token[ebx], cl
		add	eax, ebx
		add	ebx, 1
		movzx	ecx, byte ptr [edx+ebx]
		movzx	edi, cl
		cmp	byte ptr [esi+edi], 0
		jnz	short loc_D8E30
		cmp	cl, 20h
		ja	short loc_D8E10

loc_D8E30:				; CODE XREF: COM_Parse(char  const*)+E9j
		mov	ds:com_token[ebx], 0
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_D8E3F:				; CODE XREF: COM_Parse(char  const*)+71j
		movzx	ebx, al
		mov	[ebp+var_14], ebx
		jmp	short loc_D8DFE
; ---------------------------------------------------------------------------

loc_D8E47:				; CODE XREF: COM_Parse(char  const*)+CDj
		mov	ds:com_token, al
		mov	eax, [ebp+var_10]
		mov	ds:com_token+1,	0
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z9COM_ParsePKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_AddNoise(unsigned	char *,	int, int)
_Z12COM_AddNoisePhii proc near

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jle	short loc_D8ECE
		mov	eax, [ebp+arg_4]
		xor	ebx, ebx
		sub	eax, 1
		mov	[ebp+var_1C], eax
		nop
		lea	esi, [esi+0]

loc_D8E80:				; CODE XREF: COM_AddNoise(uchar	*,int,int)+6Cj
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp], 0
		mov	[esp+4], eax
		call	RandomInt
		mov	dword ptr [esp+4], 7
		mov	edi, eax
		mov	dword ptr [esp], 0
		call	RandomInt
		mov	esi, eax
		mov	eax, [ebp+arg_0]
		add	eax, edi
		movzx	ecx, byte ptr [eax]
		movzx	edi, cl
		mov	edx, ecx
		or	edx, esi
		test	edi, esi
		jz	short loc_D8EC4
		mov	edx, esi
		not	edx
		and	edx, ecx

loc_D8EC4:				; CODE XREF: COM_AddNoise(uchar	*,int,int)+5Cj
		add	ebx, 1
		mov	[eax], dl
		cmp	ebx, [ebp+arg_8]
		jnz	short loc_D8E80

loc_D8ECE:				; CODE XREF: COM_AddNoise(uchar	*,int,int)+Ej
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z12COM_AddNoisePhii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_ParseLine(char  const*)
_Z13COM_ParseLinePKc proc near		; CODE XREF: Cmd_Exec_f(CCommand  const&)+2D3p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_0]
		push	ebx
		mov	ds:com_token, 0
		test	esi, esi
		jz	short loc_D8F47
		movsx	ecx, byte ptr [esi]
		lea	edi, [esi+1]
		xor	edx, edx
		lea	esi, [esi+0]

loc_D8F00:				; CODE XREF: COM_ParseLine(char	 const*)+76j
		mov	ds:com_token[edx], cl
		lea	ebx, [edi+edx]
		add	edx, 1
		movsx	ecx, byte ptr [esi+edx]
		mov	eax, ebx
		cmp	ecx, 1Fh
		ja	short loc_D8F50
		cmp	ecx, 9
		jz	short loc_D8F50

loc_D8F1C:				; CODE XREF: COM_ParseLine(char	 const*)+78j
		test	ecx, ecx
		mov	ds:com_token[edx], 0
		jz	short loc_D8F47
		movsx	edx, byte ptr [ebx]
		cmp	edx, 1Fh
		jle	short loc_D8F43
		jmp	short loc_D8F49
; ---------------------------------------------------------------------------
		align 8

loc_D8F38:				; CODE XREF: COM_ParseLine(char	 const*)+65j
		add	eax, 1
		movsx	edx, byte ptr [eax]
		cmp	edx, 1Fh
		jg	short loc_D8F49

loc_D8F43:				; CODE XREF: COM_ParseLine(char	 const*)+4Dj
		test	edx, edx
		jnz	short loc_D8F38

loc_D8F47:				; CODE XREF: COM_ParseLine(char	 const*)+12j
					; COM_ParseLine(char  const*)+45j
		xor	eax, eax

loc_D8F49:				; CODE XREF: COM_ParseLine(char	 const*)+4Fj
					; COM_ParseLine(char  const*)+61j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D8F50:				; CODE XREF: COM_ParseLine(char	 const*)+35j
					; COM_ParseLine(char  const*)+3Aj
		cmp	edx, 3FFh
		jnz	short loc_D8F00
		jmp	short loc_D8F1C
_Z13COM_ParseLinePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_TokenWaiting(char	 const*)
_Z16COM_TokenWaitingPKc	proc near	; CODE XREF: BuildGeneralMapList(CUtlVector<maplist_map_t,CUtlMemory<maplist_map_t,int>> *,bool,char  const*,char *,int	*)+303p
					; BuildGeneralMapList(CUtlVector<maplist_map_t,CUtlMemory<maplist_map_t,int>> *,bool,char  const*,char *,int *)+31Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		movzx	ebx, byte ptr [esi]
		cmp	bl, 0Ah
		jz	short loc_D8F9D

loc_D8F73:				; CODE XREF: COM_TokenWaiting(char  const*)+3Bj
		test	bl, bl
		jz	short loc_D8F9D
		movzx	ebx, bl
		mov	[esp], ebx	; int
		call	isspace
		test	eax, eax
		jz	short loc_D8FB0
		mov	[esp], ebx	; int
		call	isalnum
		test	eax, eax
		jnz	short loc_D8FB0
		add	esi, 1
		movzx	ebx, byte ptr [esi]
		cmp	bl, 0Ah
		jnz	short loc_D8F73

loc_D8F9D:				; CODE XREF: COM_TokenWaiting(char  const*)+11j
					; COM_TokenWaiting(char	 const*)+15j
		add	esp, 10h
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D8FB0:				; CODE XREF: COM_TokenWaiting(char  const*)+24j
					; COM_TokenWaiting(char	 const*)+30j
		add	esp, 10h
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z16COM_TokenWaitingPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; tmpstr512(void)
_Z9tmpstr512v	proc near		; CODE XREF: CNetworkStringFilenameDict::String(int)+Cp
		mov	eax, ds:_ZZ9tmpstr512vE9curstring ; tmpstr512(void)::curstring
		push	ebp
		mov	ebp, esp
		pop	ebp
		add	eax, 1
		and	eax, 1Fh
		mov	ds:_ZZ9tmpstr512vE9curstring, eax ; tmpstr512(void)::curstring
		shl	eax, 9
		add	eax, offset _ZZ9tmpstr512vE6string ; tmpstr512(void)::string
		retn
_Z9tmpstr512v	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl va(char *format, char arg)
_Z2vaPKcz	proc near		; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+501p
					; stuffcmds(CCommand  const&)+172p ...

format		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 14h
		mov	ebx, ds:_ZZ9tmpstr512vE9curstring ; tmpstr512(void)::curstring
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	dword ptr [esp+4], 200h	; maxlen
		add	ebx, 1
		and	ebx, 1Fh
		mov	[esp+8], eax	; format
		mov	ds:_ZZ9tmpstr512vE9curstring, ebx ; tmpstr512(void)::curstring
		shl	ebx, 9
		add	ebx, offset _ZZ9tmpstr512vE6string ; tmpstr512(void)::string
		mov	[esp], ebx	; s
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_Z2vaPKcz	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; vstr(Vector &)
_Z4vstrR6Vector	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	eax, [ebp+arg_0]
		mov	ebx, ds:_ZZ9tmpstr512vE9curstring ; tmpstr512(void)::curstring
		fld	dword ptr [eax+8]
		fstp	qword ptr [esp+1Ch]
		add	ebx, 1
		and	ebx, 1Fh
		mov	ds:_ZZ9tmpstr512vE9curstring, ebx ; tmpstr512(void)::curstring
		shl	ebx, 9
		fld	dword ptr [eax+4]
		add	ebx, offset _ZZ9tmpstr512vE6string ; tmpstr512(void)::string
		fstp	qword ptr [esp+14h]
		fld	dword ptr [eax]
		mov	[esp], ebx	; s
		fstp	qword ptr [esp+0Ch] ; arg
		mov	dword ptr [esp+8], offset a_2f_2f_2f ; "%.2f %.2f %.2f"
		mov	dword ptr [esp+4], 200h	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 34h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_Z4vstrR6Vector	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_CheckGameDirectory(char  const*)
_Z22COM_CheckGameDirectoryPKc proc near	; CODE XREF: CBaseClientState::ProcessServerInfo(SVC_ServerInfo	*)+308p

var_10C		= dword	ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 128h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		test	ebx, ebx
		jz	short loc_D90AB
		cmp	byte ptr [ebx],	0
		jnz	short loc_D90D0

loc_D90AB:				; CODE XREF: COM_CheckGameDirectory(char  const*)+14j
		mov	dword ptr [esp], offset	aServerDidnTSpe	; "Server didn't specify a gamedir, assumi"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, 1

loc_D90BC:				; CODE XREF: COM_CheckGameDirectory(char  const*)+73j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D90D0:				; CODE XREF: COM_CheckGameDirectory(char  const*)+19j
		lea	esi, [ebp+var_10C]
		mov	dword ptr [esp+8], 104h	; int
		mov	[esp+4], esi	; int
		mov	dword ptr [esp], offset	com_gamedir ; dest
		call	_Z10V_FileBasePKcPci ; V_FileBase(char	const*,char *,int)
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		mov	edx, eax
		mov	eax, 1
		test	edx, edx
		jz	short loc_D90BC
		mov	[esp+8], ebx
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aCom_checkgamed	; "COM_CheckGameDirectory: game	directorie"...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ebx, [ebp+var_8]
		xor	eax, eax
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z22COM_CheckGameDirectoryPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_FindFile(char  const*, void **)
_Z12COM_FindFilePKcPPv proc near	; CODE XREF: COM_OpenFile(char	const*,void **)+4j
					; COM_LoadFile(char  const*,int,int *)+28p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset modes	; "rb"
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	[ebx], eax
		jz	short loc_D9188
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[ebp+arg_4], eax
		mov	[ebp+arg_0], ecx
		mov	eax, [edx+18h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 8

loc_D9188:				; CODE XREF: COM_FindFile(char	const*,void **)+36j
		add	esp, 14h
		mov	eax, 0FFFFFFFFh
		pop	ebx
		pop	ebp
		retn
_Z12COM_FindFilePKcPPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_OpenFile(char  const*, void **)
_Z12COM_OpenFilePKcPPv proc near	; CODE XREF: CRC_File(ulong *,char  const*)+24p
					; CRC_MapFile(ulong *,char  const*)+19p ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z12COM_FindFilePKcPPv ; COM_FindFile(char  const*,void	**)
_Z12COM_OpenFilePKcPPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_CreatePath(char *src)
_Z14COM_CreatePathPKc proc near		; CODE XREF: COM_WriteFile(char	 const*,void *,int)+50p
					; COM_CopyFile(char  const*,char  const*)+46p ...

dest		= byte ptr -218h
var_217		= byte ptr -217h
src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+dest]
		push	ebx
		sub	esp, 21Ch
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 200h	; n
		mov	[esp], edi	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		movzx	ebx, [ebp+var_217]
		test	bl, bl
		jz	short loc_D921B
		lea	esi, [ebp+var_217]
		jmp	short loc_D91FF
; ---------------------------------------------------------------------------
		align 10h

loc_D91F0:				; CODE XREF: COM_CreatePath(char  const*)+52j
		cmp	bl, 2Fh
		jz	short loc_D9204
		add	esi, 1
		movzx	ebx, byte ptr [esi]
		test	bl, bl
		jz	short loc_D921B

loc_D91FF:				; CODE XREF: COM_CreatePath(char  const*)+3Aj
					; COM_CreatePath(char  const*)+69j
		cmp	bl, 5Ch
		jnz	short loc_D91F0

loc_D9204:				; CODE XREF: COM_CreatePath(char  const*)+43j
		mov	byte ptr [esi],	0
		mov	[esp], edi	; src
		call	_Z9Sys_mkdirPKc	; Sys_mkdir(char  const*)
		mov	[esi], bl
		add	esi, 1
		movzx	ebx, byte ptr [esi]
		test	bl, bl
		jnz	short loc_D91FF

loc_D921B:				; CODE XREF: COM_CreatePath(char  const*)+32j
					; COM_CreatePath(char  const*)+4Dj
		add	esp, 21Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z14COM_CreatePathPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_WriteFile(char *arg, int, int)
_Z13COM_WriteFilePKcPvi	proc near

arg		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg]
		mov	[esp], esi	; s
		call	strlen
		lea	edx, [eax+2]
		add	eax, 20h
		and	eax, 0FFFFFFF0h
		sub	esp, eax
		lea	ebx, [esp+1Fh]
		mov	[esp+4], edx	; maxlen
		and	ebx, 0FFFFFFF0h
		mov	[esp+0Ch], esi	; arg
		mov	dword ptr [esp+8], (offset aDFS+9) ; format
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], ebx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	[esp], ebx	; src
		call	_Z14COM_CreatePathPKc ;	COM_CreatePath(char  const*)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset byte_1F0284
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	esi, eax
		jz	short loc_D92F0
		mov	ecx, [ebp+arg_8]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_4]
		mov	[esp+0Ch], esi
		mov	[esp], edx
		mov	[esp+4], ecx
		call	dword ptr [eax+4]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D92F0:				; CODE XREF: COM_WriteFile(char	 const*,void *,int)+7Ej
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aCom_writefileF	; "COM_WriteFile: failed on %s\n"
		call	Warning
		lea	esp, [ebp-8]
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z13COM_WriteFilePKcPvi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_CopyFile(int,	char *src)
_Z12COM_CopyFilePKcS0_ proc near	; CODE XREF: CEngineReplay::CopyFile(char  const*,char	const*)+10j
					; CVEngineServer::CopyFile(char	 const*,char  const*)+10j

var_101C	= dword	ptr -101Ch
var_1018	= byte ptr -1018h
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 102Ch
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+arg_0]
		mov	esi, [ebp+src]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset modes	; "rb"
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	edi, eax
		jz	loc_D947D
		mov	[esp], esi	; src
		call	_Z14COM_CreatePathPKc ;	COM_CreatePath(char  const*)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edx
		mov	dword ptr [esp+8], offset byte_1F0284
		mov	[esp+4], esi
		call	dword ptr [eax+8]
		mov	[ebp+var_101C],	eax
		test	eax, eax
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], edi
		mov	[esp], edx
		jz	loc_D9490
		call	dword ptr [eax+18h]
		test	eax, eax
		mov	ebx, eax
		jle	loc_D9448
		lea	esi, [ebp+var_1018]
		nop
		lea	esi, [esi+0]

loc_D93B8:				; CODE XREF: COM_CopyFile(char	const*,char  const*)+FDj
		mov	eax, ds:g_pFileSystem
		cmp	ebx, 0FFFh
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], edi
		jbe	short loc_D9418
		mov	[esp], edx
		mov	dword ptr [esp+8], 1000h
		mov	[esp+4], esi
		call	dword ptr [eax]
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_101C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+8], 1000h
		mov	[esp+0Ch], ecx
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+4]
		sub	ebx, 1000h
		jnz	short loc_D93B8
		jmp	short loc_D9448
; ---------------------------------------------------------------------------
		align 8

loc_D9418:				; CODE XREF: COM_CopyFile(char	const*,char  const*)+BDj
		mov	[esp], edx
		mov	[esp+8], ebx
		mov	[esp+4], esi
		call	dword ptr [eax]
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_101C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+8], ebx
		mov	[esp+0Ch], ecx
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+4]

loc_D9448:				; CODE XREF: COM_CopyFile(char	const*,char  const*)+97j
					; COM_CopyFile(char  const*,char  const*)+FFj
		mov	eax, ds:g_pFileSystem
		mov	ebx, 1
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_101C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]

loc_D947D:				; CODE XREF: COM_CopyFile(char	const*,char  const*)+3Dj
					; COM_CopyFile(char  const*,char  const*)+183j
		add	esp, 102Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9490:				; CODE XREF: COM_CopyFile(char	const*,char  const*)+8Aj
		call	dword ptr [eax+0Ch]
		jmp	short loc_D947D
_Z12COM_CopyFilePKcS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_ExpandFilename(char *dest, size_t n)
_Z18COM_ExpandFilenamePci proc near

var_11C		= dword	ptr -11Ch
src		= byte ptr -10Ch
dest		= dword	ptr  8
n		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+src]
		sub	esp, 130h
		mov	eax, ds:g_pFileSystem
		mov	ebx, [ebp+dest]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 104h
		mov	[esp+8], esi
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+80h]
		test	eax, eax
		jz	short loc_D9500
		mov	eax, [ebp+n]
		mov	[esp+4], esi	; src
		mov	[esp], ebx	; dest
		mov	[esp+8], eax	; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, 1

loc_D94F0:				; CODE XREF: COM_ExpandFilename(char *,int)+64j
					; COM_ExpandFilename(char *,int)+69j
		add	esp, 130h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9500:				; CODE XREF: COM_ExpandFilename(char *,int)+36j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_D94F0
		cmp	byte ptr [ebx],	2Ah
		jz	short loc_D94F0
		mov	[esp+4], ebx
		mov	[ebp+var_11C], eax
		mov	dword ptr [esp], offset	aCom_expandfile	; "COM_ExpandFilename: can't find %s\n"
		call	Warning
		mov	eax, [ebp+var_11C]
		add	esp, 130h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z18COM_ExpandFilenamePci endp

; ---------------------------------------------------------------------------
		jmp	short _Z12COM_FileSizePKc ; COM_FileSize(char  const*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_FileSize(char  const*)
_Z12COM_FileSizePKc proc near		; CODE XREF: .text:000D9531j
					; CModelLoader::GetModelFileSize(char  const*)+87p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+arg_0]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+1Ch]
		leave
		retn
_Z12COM_FileSizePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_CloseFile(void *)
_Z13COM_CloseFilePv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+arg_0]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		leave
		retn
_Z13COM_CloseFilePv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_LoadFile(char	*dest, int, int)
_Z12COM_LoadFilePKciPi proc near	; CODE XREF: COM_LoadStackFile(char  const*,void *,int,int &)+21j
					; TextMessageInit+38p

var_AC		= dword	ptr -0ACh
arg		= dword	ptr -9Ch
var_1C		= dword	ptr -1Ch
dest		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		mov	edi, [ebp+arg_8]
		test	edi, edi
		jz	short loc_D95A9
		mov	dword ptr [edi], 0

loc_D95A9:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+11j
		lea	eax, [ebp+var_1C]
		xor	ebx, ebx
		mov	[esp+4], eax
		mov	eax, [ebp+dest]
		mov	[esp], eax
		call	_Z12COM_FindFilePKcPPv ; COM_FindFile(char  const*,void	**)
		mov	edx, [ebp+var_1C]
		mov	esi, eax
		test	edx, edx
		jz	short loc_D9628
		mov	eax, [ebp+dest]
		lea	ebx, [ebp+arg]
		mov	dword ptr [esp+8], 80h ; int
		mov	[esp+4], ebx	; arg
		mov	[esp], eax	; dest
		call	_Z10V_FileBasePKcPci ; V_FileBase(char	const*,char *,int)
		cmp	[ebp+arg_4], 5	; switch 6 cases
		lea	edx, [esi+1]
		jbe	short loc_D9638

loc_D95EC:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+ABj
					; DATA XREF: .rodata:off_1F507Co
		mov	dword ptr [esp], offset	aCom_loadfileBa	; jumptable 000D963B default case
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)

loc_D95F8:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+ABj
					; COM_LoadFile(char  const*,int,int *)+DEj
					; DATA XREF: ...
		mov	eax, [ebp+dest]	; jumptable 000D963B cases 2,3
		mov	dword ptr [esp], offset	aCom_loadfileNo	; "COM_LoadFile: not enough space for %s"
		xor	ebx, ebx
		mov	[esp+4], eax	; arg
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		lea	esi, [esi+0]

loc_D9628:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+34j
					; COM_LoadFile(char  const*,int,int *)+126j
		add	esp, 0CCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_D9638:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+5Aj
		mov	eax, [ebp+arg_4]
		jmp	ds:off_1F507C[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		align 8

loc_D9648:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+ABj
					; DATA XREF: .rodata:off_1F507Co
		cmp	ds:loadsize, esi ; jumptable 000D963B case 4
		mov	ebx, ds:loadbuf
		jg	short loc_D966C

loc_D9656:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+ABj
					; DATA XREF: .rodata:off_1F507Co
		mov	[esp], edx	; jumptable 000D963B case 5
		mov	[ebp+var_AC], edx
		call	malloc
		mov	edx, [ebp+var_AC]
		mov	ebx, eax

loc_D966C:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+C4j
					; COM_LoadFile(char  const*,int,int *)+162j
		test	ebx, ebx
		jz	short loc_D95F8	; jumptable 000D963B cases 2,3
		mov	eax, ds:g_pFileSystem
		mov	ecx, [eax]
		mov	[esp+8], edx
		mov	eax, [ebp+var_1C]
		mov	[esp+0Ch], esi
		mov	[esp+4], ebx
		mov	[esp+10h], eax
		mov	eax, ds:g_pFileSystem
		mov	[esp], eax
		call	dword ptr [ecx+118h]
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		test	edi, edi
		mov	byte ptr [ebx+esi], 0
		jz	loc_D9628
		mov	[edi], esi
		add	esp, 0CCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D96D0:				; CODE XREF: COM_LoadFile(char	const*,int,int *)+ABj
					; DATA XREF: .rodata:off_1F507Co
		mov	[esp+4], ebx	; jumptable 000D963B case 1
		mov	[esp], edx
		mov	[ebp+var_AC], edx
		mov	dword ptr [esp+8], 1
		call	_Z14Hunk_AllocNameiPKcb	; Hunk_AllocName(int,char  const*,bool)
		mov	edx, [ebp+var_AC]
		mov	ebx, eax
		jmp	loc_D966C
_Z12COM_LoadFilePKciPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_CopyFileChunk(void *, void *, int)
_Z17COM_CopyFileChunkPvS_i proc	near

var_418		= byte ptr -418h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_418]
		push	ebx
		sub	esp, 41Ch
		mov	ebx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		cmp	ebx, 400h
		jle	short loc_D978B

loc_D9720:				; CODE XREF: COM_CopyFileChunk(void *,void *,int)+70j
		mov	eax, ds:g_pFileSystem
		sub	ebx, 400h
		mov	ecx, [ebp+arg_4]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+8], 400h
		mov	[esp+0Ch], ecx
		mov	[esp], edx
		mov	[esp+4], esi
		call	dword ptr [eax]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], edi
		mov	dword ptr [esp+8], 400h
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+4]
		cmp	ebx, 400h
		jg	short loc_D9720
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]
		sub	eax, 401h
		and	eax, 0FFFFFC00h
		neg	eax
		lea	ebx, [edx+eax-400h]

loc_D978B:				; CODE XREF: COM_CopyFileChunk(void *,void *,int)+1Ej
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+arg_4]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+8], ebx
		mov	[esp+0Ch], ecx
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], edi
		mov	[esp+8], ebx
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+4]
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+arg_4]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+20h]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+20h]
		add	esp, 41Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z17COM_CopyFileChunkPvS_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_LoadStackFile(char  const*, void *, int, int &)
_Z17COM_LoadStackFilePKcPviRi proc near	; CODE XREF: Cmd_Exec_f(CCommand  const&)+272p

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_4], 4
		mov	ds:loadbuf, eax
		mov	eax, [ebp+arg_8]
		mov	ds:loadsize, eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], eax
		pop	ebp
		jmp	_Z12COM_LoadFilePKciPi ; COM_LoadFile(char  const*,int,int *)
_Z17COM_LoadStackFilePKcPviRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_ShutdownFileSystem(void)
_Z22COM_ShutdownFileSystemv proc near	; CODE XREF: CDedicatedServerAPI::ModShutdown(void)+BFj
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z22COM_ShutdownFileSystemv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_Shutdown(void)
_Z12COM_Shutdownv proc near		; CODE XREF: Host_Shutdown(void)+1C6p
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z12COM_Shutdownv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_StringCopy(char *src)
_Z14COM_StringCopyPKc proc near		; CODE XREF: alias(CCommand  const&)+19Bp
					; DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState *)+109p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	[esp], ebx	; s
		call	strlen
		lea	esi, [eax+1]
		mov	[esp], esi
		call	_Znaj		; operator new[](uint)
		mov	[esp+8], esi	; n
		mov	edi, eax
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z14COM_StringCopyPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_StringFree(char  const*)
_Z14COM_StringFreePKc proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_D98B0
		pop	ebp
		jmp	_ZdaPv		; operator delete[](void *)
; ---------------------------------------------------------------------------

loc_D98B0:				; CODE XREF: COM_StringFree(char  const*)+8j
		pop	ebp
		retn
_Z14COM_StringFreePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_GetModDirectory(void)
_Z19COM_GetModDirectoryv proc near	; CODE XREF: CEngineReplay::GetModDir(void)+4j
					; OverrideMaterialSystemConfig(MaterialSystem_Config_t &):loc_12D3C0p ...
		push	ebp
		mov	edx, offset _ZZ19COM_GetModDirectoryvE6modDir ;	COM_GetModDirectory(void)::modDir
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h

loc_D98CD:				; CODE XREF: COM_GetModDirectory(void)+21j
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_D98CD
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		sbb	edx, 3
		cmp	edx, offset _ZZ19COM_GetModDirectoryvE6modDir ;	COM_GetModDirectory(void)::modDir
		jz	short loc_D9910

loc_D9903:				; CODE XREF: COM_GetModDirectory(void)+154j
		add	esp, 10h
		mov	eax, offset _ZZ19COM_GetModDirectoryvE6modDir ;	COM_GetModDirectory(void)::modDir
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9910:				; CODE XREF: COM_GetModDirectory(void)+41j
		call	CommandLine_Tier0
		mov	ebx, eax
		mov	eax, [eax]
		mov	esi, [eax+18h]
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aHl2 ; "hl2"
		mov	dword ptr [esp+4], offset aDefaultgamedir ; "-defaultgamedir"
		mov	[esp], eax
		call	dword ptr [edx+18h]
		mov	[esp], ebx
		mov	[esp+8], eax
		mov	dword ptr [esp+4], offset aGame_0 ; "-game"
		call	esi
		mov	dword ptr [esp+8], 104h	; n
		mov	ebx, eax
		mov	[esp+4], eax	; src
		mov	dword ptr [esp], offset	_ZZ19COM_GetModDirectoryvE6modDir ; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], 2Fh ; c
		mov	dword ptr [esp], offset	_ZZ19COM_GetModDirectoryvE6modDir ; s
		call	strchr
		test	eax, eax
		jz	short loc_D99F8

loc_D997C:				; CODE XREF: COM_GetModDirectory(void)+14Ej
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	dword ptr [esp], offset	_ZZ19COM_GetModDirectoryvE6modDir ; s
		call	_Z14V_StripLastDirPci ;	V_StripLastDir(char *,int)
		mov	edx, offset _ZZ19COM_GetModDirectoryvE6modDir ;	COM_GetModDirectory(void)::modDir

loc_D9995:				; CODE XREF: COM_GetModDirectory(void)+E9j
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_D9995
		mov	ecx, eax
		mov	dword ptr [esp], offset	_ZZ19COM_GetModDirectoryvE6modDir ; dest
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		mov	eax, 104h
		sbb	edx, 3
		sub	edx, offset _ZZ19COM_GetModDirectoryvE6modDir ;	COM_GetModDirectory(void)::modDir
		sub	eax, edx
		add	ebx, edx
		mov	[esp+8], eax	; n
		mov	[esp+4], ebx	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		add	esp, 10h
		mov	eax, offset _ZZ19COM_GetModDirectoryvE6modDir ;	COM_GetModDirectory(void)::modDir
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D99F8:				; CODE XREF: COM_GetModDirectory(void)+BAj
		mov	dword ptr [esp+4], 5Ch ; c
		mov	dword ptr [esp], offset	_ZZ19COM_GetModDirectoryvE6modDir ; s
		call	strchr
		test	eax, eax
		jnz	loc_D997C
		jmp	loc_D9903
_Z19COM_GetModDirectoryv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_DXLevelToString(int)
_Z19COM_DXLevelToStringi proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	eax, ds:g_pMaterialSystemHardwareConfig
		mov	ebx, [ebp+arg_0]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+84h]
		test	eax, eax
		jz	loc_D9AE8
		mov	dword ptr [esp+4], offset aNvfx	; "nvfx"
		mov	[esp], eax
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		test	eax, eax
		jz	loc_D9AE8
		mov	esi, 1

loc_D9A60:				; CODE XREF: COM_DXLevelToString(int)+CAj
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aDxlevel ; "-dxlevel"
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		test	eax, eax
		jz	loc_D9B20
		cmp	ebx, 51h
		mov	eax, (offset aGamemode8_1+0Bh)
		jz	short loc_D9AB0
		jle	short loc_D9AC0
		cmp	ebx, 52h
		jz	loc_D9B30
		cmp	ebx, 5Ah
		lea	esi, [esi+0]
		jz	short loc_D9B00

loc_D9AA2:				; CODE XREF: COM_DXLevelToString(int)+BDj
					; COM_DXLevelToString(int)+D8j
		mov	eax, offset aUnknown ; "UNKNOWN"
		mov	esi, esi
		lea	edi, [edi+0]

loc_D9AB0:				; CODE XREF: COM_DXLevelToString(int)+6Dj
					; COM_DXLevelToString(int)+A8j	...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9AC0:				; CODE XREF: COM_DXLevelToString(int)+6Fj
		cmp	ebx, 46h
		mov	eax, (offset aGamemode7_0+0Bh)
		jz	short loc_D9AB0
		jg	short loc_D9AF0
		test	ebx, ebx
		mov	eax, offset aDefault ; "default"
		jz	short loc_D9AB0
		cmp	ebx, 3Ch
		mov	eax, (offset aGamemode6_0+0Bh)
		jnz	short loc_D9AA2
		jmp	short loc_D9AB0
; ---------------------------------------------------------------------------
		align 8

loc_D9AE8:				; CODE XREF: COM_DXLevelToString(int)+1Dj
					; COM_DXLevelToString(int)+35j
		xor	esi, esi
		jmp	loc_D9A60
; ---------------------------------------------------------------------------
		align 10h

loc_D9AF0:				; CODE XREF: COM_DXLevelToString(int)+AAj
		cmp	ebx, 50h
		mov	eax, (offset aGamemode8_0+0Bh)
		jnz	short loc_D9AA2
		jmp	short loc_D9AB0
; ---------------------------------------------------------------------------
		align 10h

loc_D9B00:				; CODE XREF: COM_DXLevelToString(int)+80j
		mov	edx, esi
		mov	eax, offset a9_0HalfPrecisi ; "9.0 (half-precision)"
		test	dl, dl
		mov	edx, offset a9_0FullPrecisi ; "9.0 (full-precision)"
		cmovz	eax, edx
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9B20:				; CODE XREF: COM_DXLevelToString(int)+5Fj
		sub	ebx, 3Ch
		cmp	ebx, 1Eh	; switch 31 cases
		jbe	short loc_D9B50

loc_D9B28:				; CODE XREF: COM_DXLevelToString(int):loc_D9B50j
					; DATA XREF: .rodata:off_1F5094o
		mov	eax, offset aGamemode ;	jumptable 000D9B50 default case
		jmp	short loc_D9AB0
; ---------------------------------------------------------------------------
		align 10h

loc_D9B30:				; CODE XREF: COM_DXLevelToString(int)+74j
		mov	edx, esi
		mov	eax, offset a8_1WithSome9_0 ; "8.1 with	some 9.0 (half-precision)"
		test	dl, dl
		mov	edx, offset a8_1WithSome9_1 ; "8.1 with	some 9.0 (full-precision)"
		cmovz	eax, edx
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9B50:				; CODE XREF: COM_DXLevelToString(int)+106j
		jmp	ds:off_1F5094[ebx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_D9B60:				; CODE XREF: COM_DXLevelToString(int):loc_D9B50j
					; DATA XREF: .rodata:off_1F5094o
		mov	edx, esi	; jumptable 000D9B50 case 30
		mov	eax, offset aGamemode9_0Hal ; "gamemode	- 9.0 (half-precision)"
		test	dl, dl
		mov	edx, offset aGamemode9_0Ful ; "gamemode	- 9.0 (full-precision)"
		cmovz	eax, edx
		jmp	loc_D9AB0
; ---------------------------------------------------------------------------
		align 10h

loc_D9B80:				; CODE XREF: COM_DXLevelToString(int):loc_D9B50j
					; DATA XREF: .rodata:off_1F5094o
		mov	edx, esi	; jumptable 000D9B50 case 22
		mov	eax, offset aGamemode8_1Wit ; "gamemode	- 8.1 with some	9.0 (half-prec"...
		test	dl, dl
		mov	edx, offset aGamemode8_1W_0 ; "gamemode	- 8.1 with some	9.0 (full-prec"...
		cmovz	eax, edx
		jmp	loc_D9AB0
; ---------------------------------------------------------------------------
		align 10h

loc_D9BA0:				; CODE XREF: COM_DXLevelToString(int):loc_D9B50j
					; DATA XREF: .rodata:off_1F5094o
		mov	eax, offset aGamemode8_1 ; jumptable 000D9B50 case 21
		jmp	loc_D9AB0
; ---------------------------------------------------------------------------
		align 10h

loc_D9BB0:				; CODE XREF: COM_DXLevelToString(int):loc_D9B50j
					; DATA XREF: .rodata:off_1F5094o
		mov	eax, offset aGamemode8_0 ; jumptable 000D9B50 case 20
		jmp	loc_D9AB0
; ---------------------------------------------------------------------------
		align 10h

loc_D9BC0:				; CODE XREF: COM_DXLevelToString(int):loc_D9B50j
					; DATA XREF: .rodata:off_1F5094o
		mov	eax, offset aGamemode7_0 ; jumptable 000D9B50 case 10
		jmp	loc_D9AB0
; ---------------------------------------------------------------------------
		align 10h

loc_D9BD0:				; CODE XREF: COM_DXLevelToString(int):loc_D9B50j
					; DATA XREF: .rodata:off_1F5094o
		mov	eax, offset aGamemode6_0 ; jumptable 000D9B50 case 0
		jmp	loc_D9AB0
_Z19COM_DXLevelToStringi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_FormatSeconds(int)
_Z17COM_FormatSecondsi proc near	; CODE XREF: _ZN11CHLTVClient20ExecuteStringCommandEPKc_part_11+2B1p
					; _ZN11CHLTVClient20ExecuteStringCommandEPKc_part_11+375p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, 88888889h
		push	ebx
		sub	esp, 20h
		mov	ebx, [ebp+arg_0]
		mov	eax, ebx
		imul	esi
		mov	eax, ebx
		sar	eax, 1Fh
		lea	ecx, [edx+ebx]
		sar	ecx, 5
		sub	ecx, eax
		test	ecx, ecx
		jle	short loc_D9C58
		imul	eax, ecx, -3Ch
		add	ebx, eax
		mov	eax, ecx
		imul	esi
		mov	eax, ecx
		sar	eax, 1Fh
		add	edx, ecx
		sar	edx, 5
		sub	edx, eax
		jz	short loc_D9C58
		imul	eax, edx, -3Ch
		mov	[esp+14h], ebx
		mov	[esp+0Ch], edx	; arg
		mov	dword ptr [esp+8], offset a2i02i02i ; "%2i:%02i:%02i"
		add	ecx, eax
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp+10h], ecx
		mov	dword ptr [esp], offset	_ZZ17COM_FormatSecondsiE6string	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 20h
		mov	eax, offset _ZZ17COM_FormatSecondsiE6string ; COM_FormatSeconds(int)::string
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_D9C58:				; CODE XREF: COM_FormatSeconds(int)+23j
					; COM_FormatSeconds(int)+3Aj
		mov	[esp+10h], ebx
		mov	[esp+0Ch], ecx	; arg
		mov	dword ptr [esp+8], (offset a2i02i02i+4)	; format
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	dword ptr [esp], offset	_ZZ17COM_FormatSecondsiE6string	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		add	esp, 20h
		mov	eax, offset _ZZ17COM_FormatSecondsiE6string ; COM_FormatSeconds(int)::string
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z17COM_FormatSecondsi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_LogString(int, char *s)
_Z13COM_LogStringPKcS0_	proc near	; CODE XREF: CBaseClient::EndTrace(bf_write &)+142p
					; COM_Log(char *,char  const*,...)+42p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, ds:g_pFileSystem
		mov	[ebp+var_8], esi
		mov	[ebp+var_C], ebx
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+s]
		test	eax, eax
		jz	loc_D9D30
		test	ecx, ecx
		mov	edx, offset aHllog_txt ; "hllog.txt"
		cmovnz	edx, ecx
		lea	ecx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset aAT ;	"a+t"
		mov	[esp+4], edx
		mov	[esp], ecx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	ebx, eax
		jz	short loc_D9D30
		mov	edi, ds:g_pFileSystem
		mov	[esp], esi	; s
		call	strlen
		mov	edx, [edi+4]
		lea	ecx, [edi+4]
		mov	[esp+0Ch], ebx
		mov	[esp+4], esi
		mov	[esp+8], eax
		mov	[esp], ecx
		call	dword ptr [edx+4]
		mov	eax, ds:g_pFileSystem
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[ebp+s], ebx
		mov	[ebp+arg_0], edx
		mov	ebx, [ebp+var_C]
		mov	eax, [eax+0Ch]
		mov	esp, ebp
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_D9D30:				; CODE XREF: COM_LogString(char	 const*,char  const*)+1Cj
					; COM_LogString(char  const*,char  const*)+50j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z13COM_LogStringPKcS0_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_Log(int, char	*format, char arg)
_Z7COM_LogPcPKcz proc near

s		= byte ptr -2008h
arg_0		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 2014h
		mov	ecx, ds:g_pFileSystem
		test	ecx, ecx
		jz	short loc_D9D87
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+4], 2000h ; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	eax, [ebp+arg_0]
		mov	[esp+4], ebx	; s
		mov	[esp], eax	; int
		call	_Z13COM_LogStringPKcS0_	; COM_LogString(char  const*,char  const*)

loc_D9D87:				; CODE XREF: COM_Log(char *,char  const*,...)+12j
		add	esp, 2014h
		pop	ebx
		pop	ebp
		retn
_Z7COM_LogPcPKcz endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_CompareFileTime(char  const*, char  const*, int *)
_Z19COM_CompareFileTimePKcS0_Pi	proc near
					; CODE XREF: CVEngineServer::CompareFileTime(char  const*,char	const*,int *)+16j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_4]
		test	ebx, ebx
		jz	short loc_D9DB2
		mov	dword ptr [ebx], 0

loc_D9DB2:				; CODE XREF: COM_CompareFileTime(char  const*,char  const*,int *)+1Aj
		test	esi, esi
		jnz	short loc_D9DD0

loc_D9DB6:				; CODE XREF: COM_CompareFileTime(char  const*,char  const*,int *)+42j
		xor	esi, esi

loc_D9DB8:				; CODE XREF: COM_CompareFileTime(char  const*,char  const*,int *)+88j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9DD0:				; CODE XREF: COM_CompareFileTime(char  const*,char  const*,int *)+24j
		test	eax, eax
		jz	short loc_D9DB6
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	dword ptr [esp+8], 0
		mov	[esp], ecx
		mov	[esp+4], eax
		call	dword ptr [edx+34h]
		mov	edi, eax
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], esi
		mov	dword ptr [esp+8], 0
		mov	esi, 1
		mov	[esp], edx
		call	dword ptr [eax+34h]
		test	ebx, ebx
		jz	short loc_D9DB8
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z19Sys_CompareFileTimell ; Sys_CompareFileTime(long,long)
		mov	[ebx], eax
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z19COM_CompareFileTimePKcS0_Pi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_GetGameDir(char *dest, size_t	n)
_Z14COM_GetGameDirPci proc near		; CODE XREF: COM_SetupLogDir(char  const*)+20p
					; CVEngineServer::GetGameDir(char *,int)+10j

dest		= dword	ptr  8
n		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+dest]
		test	eax, eax
		jz	short locret_D9E64
		mov	edx, [ebp+n]
		mov	dword ptr [esp+4], offset com_gamedir ;	src
		mov	[esp], eax	; dest
		mov	[esp+8], edx	; n
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

locret_D9E64:				; CODE XREF: COM_GetGameDir(char *,int)+Bj
		leave
		retn
_Z14COM_GetGameDirPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_SetupLogDir(char arg)
_Z15COM_SetupLogDirPKc proc near	; CODE XREF: COM_InitFilesystem(char  const*)+101p
					; CGameServer::SpawnServer(char	*,char *)+60p

dest		= byte ptr -324h
s		= byte ptr -220h
var_11C		= byte ptr -11Ch
arg		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+dest]
		push	ebx
		sub	esp, 33Ch
		mov	edi, dword ptr [ebp+arg]
		mov	[esp], eax	; dest
		mov	dword ptr [esp+4], 104h	; n
		call	_Z14COM_GetGameDirPci ;	COM_GetGameDir(char *,int)
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aLogdir ; "LOGDIR"
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+20h]
		test	edi, edi
		jz	loc_D9FC0
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aUselogdir ; "-uselogdir"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jz	loc_D9FC0
		lea	esi, [ebp+s]
		xor	ebx, ebx
		jmp	short loc_D9EF7
; ---------------------------------------------------------------------------
		align 8

loc_D9EE8:				; CODE XREF: COM_SetupLogDir(char  const*)+C2j
		add	ebx, 1
		cmp	ebx, 2710h
		jz	loc_D9FF8

loc_D9EF7:				; CODE XREF: COM_SetupLogDir(char  const*)+6Fj
		mov	[esp+10h], ebx
		mov	[esp+0Ch], edi	; arg
		mov	dword ptr [esp+8], offset aLogsS04i ; "logs/%s/%04i"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], esi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aGame_1 ; "GAME"
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+48h]
		test	al, al
		jnz	short loc_D9EE8

loc_D9F34:				; CODE XREF: COM_SetupLogDir(char  const*)+1ACj
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aGame_1 ; "GAME"
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+44h]
		cmp	ds:_ZZ15COM_SetupLogDirPKcE9pathsetup, 0 ; COM_SetupLogDir(char	 const*)::pathsetup
		jnz	loc_D9FE7
		lea	ecx, [ebp+dest]
		mov	dword ptr [esp+8], offset aSS_7	; "%s/%s"
		lea	ebx, [ebp+var_11C]
		mov	[esp+10h], esi
		mov	[esp+0Ch], ecx	; arg
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	ds:_ZZ15COM_SetupLogDirPKcE9pathsetup, 1 ; COM_SetupLogDir(char	 const*)::pathsetup
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aLogdir ; "LOGDIR"
		mov	[esp], eax
		call	dword ptr [edx+1Ch]
		add	esp, 33Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_D9FC0:				; CODE XREF: COM_SetupLogDir(char  const*)+44j
					; COM_SetupLogDir(char	const*)+61j
		mov	eax, ds:g_pFileSystem
		lea	ecx, [ebp+dest]
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], offset aLogdir ; "LOGDIR"
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+1Ch]

loc_D9FE7:				; CODE XREF: COM_SetupLogDir(char  const*)+E4j
		add	esp, 33Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_D9FF8:				; CODE XREF: COM_SetupLogDir(char  const*)+81j
		mov	dword ptr [esp+10h], 0
		mov	[esp+0Ch], edi	; arg
		mov	dword ptr [esp+8], offset aLogsS04i ; "logs/%s/%04i"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], esi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_D9F34
_Z15COM_SetupLogDirPKc endp

; ---------------------------------------------------------------------------
		jmp	short _Z18COM_InitFilesystemPKc	; COM_InitFilesystem(char  const*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_InitFilesystem(char  const*)
_Z18COM_InitFilesystemPKc proc near	; CODE XREF: .text:000DA021j
					; CDedicatedServerAPI::ModInit(ModInfo_t &)+6Fp

var_214		= dword	ptr -214h
var_20C		= dword	ptr -20Ch
src		= byte ptr -208h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	ebx, [ebp+var_214]
		sub	esp, 220h
		mov	esi, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN18CFSSearchPathsInitC2Ev ; CFSSearchPathsInit::CFSSearchPathsInit(void)
		mov	eax, ds:g_pFileSystem
		test	esi, esi
		mov	[ebp+var_214], esi
		mov	[ebp+var_20C], eax
		jz	loc_DA1C8

loc_DA065:				; CODE XREF: COM_InitFilesystem(char  const*)+1A3j
		mov	[esp], ebx
		call	_Z26FileSystem_LoadSearchPathsR18CFSSearchPathsInit ; FileSystem_LoadSearchPaths(CFSSearchPathsInit &)
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	dword ptr [esp+4], offset aModinfo ; "ModInfo"
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	edx, ds:g_pFileSystem
		xor	eax, eax
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp], ebx	; int
		lea	ecx, [edx+4]
		test	edx, edx
		cmovnz	eax, ecx
		mov	[esp+4], eax	; int
		call	_ZN9KeyValues12LoadFromFileEP15IBaseFileSystemPKcS3_ ; KeyValues::LoadFromFile(IBaseFileSystem *,char  const*,char  const*)
		test	al, al
		jnz	loc_DA140

loc_DA0BF:				; CODE XREF: COM_InitFilesystem(char  const*)+160j
					; COM_InitFilesystem(char  const*)+18Cj
		mov	[esp], ebx	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		lea	eax, [ebp+src]
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	[esp+8], eax	; src
		mov	dword ptr [esp+4], 104h	; n
		mov	dword ptr [esp], offset	com_gamedir ; s
		call	_Z18V_MakeAbsolutePathPciPKcS1_	; V_MakeAbsolutePath(char *,int,char  const*,char  const*)
		mov	eax, dword ptr ds:host_parms
		mov	dword ptr [esp+8], 104h	; n
		mov	dword ptr [esp], offset	com_basedir ; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp], offset	com_basedir
		call	_Z10V_strlowerPc ; V_strlower(char *)
		mov	dword ptr [esp+4], 2Fh
		mov	dword ptr [esp], offset	com_basedir
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	dword ptr [esp], 0 ; arg
		call	_Z15COM_SetupLogDirPKc ; COM_SetupLogDir(char  const*)
		add	esp, 220h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_DA140:				; CODE XREF: COM_InitFilesystem(char  const*)+89j
		mov	dword ptr [esp+8], offset aSingleplayer_o ; "singleplayer_only"
		mov	dword ptr [esp+4], (offset aInvalidBlockTy+0Eh)	; src
		mov	[esp], ebx	; int
		call	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
		mov	dword ptr [esp+4], offset aSingleplayer_o ; "singleplayer_only"
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_DA198
		mov	dword ptr [esp], offset	aEnablingWhitel	; "Enabling whitelist file tracking in fil"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	dword ptr [edx+174h]
		jmp	loc_DA0BF
; ---------------------------------------------------------------------------
		align 4

loc_DA198:				; CODE XREF: COM_InitFilesystem(char  const*)+13Aj
		mov	dword ptr [esp], offset	aDisablingWhite	; "Disabling whitelist file tracking in	fi"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+174h]
		jmp	loc_DA0BF
; ---------------------------------------------------------------------------
		align 8

loc_DA1C8:				; CODE XREF: COM_InitFilesystem(char  const*)+2Fj
		mov	eax, dword ptr ds:host_parms+8
		mov	[ebp+var_214], eax
		jmp	loc_DA065
_Z18COM_InitFilesystemPKc endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_ParseFile(int, char *dest, size_t n)
_Z13COM_ParseFilePKcPci	proc near	; CODE XREF: CVEngineServer::ParseFile(char  const*,char *,int)+16j

arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch
n		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z9COM_ParsePKc	; COM_Parse(char  const*)
		mov	dword ptr [esp+4], offset com_token ; src
		mov	ebx, eax
		mov	eax, [ebp+n]
		mov	[esp+8], eax	; n
		mov	eax, [ebp+dest]
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_Z13COM_ParseFilePKcPci	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; COM_Init(void)
_Z8COM_Initv	proc near		; CODE XREF: Host_Init(bool)+146p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+4], offset asc_1ED267 ; "{}()'"
		mov	dword ptr [esp], offset	_ZL10g_BreakSet_0 ; g_BreakSet
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		mov	dword ptr [esp+4], offset asc_1ED26D ; "{}()':"
		mov	dword ptr [esp], offset	_ZL25g_BreakSetIncludingColons_0 ; g_BreakSetIncludingColons
		call	_Z17CharacterSetBuildP14characterset_tPKc ; CharacterSetBuild(characterset_t *,char  const*)
		leave
		retn
_Z8COM_Initv	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_IsValidPath(char *haystack)
_Z15COM_IsValidPathPKc proc near	; CODE XREF: CBenchmarkResults::StartBenchmark(CCommand	 const&)+25p
					; Cmd_Exec_f(CCommand  const&)+170p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
haystack	= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+haystack]
		mov	[ebp+var_4], esi
		xor	esi, esi
		test	ebx, ebx
		jz	short loc_DA295
		mov	[esp], ebx	; s
		call	strlen
		test	eax, eax
		jle	short loc_DA295
		mov	dword ptr [esp+4], offset asc_1F4E0E ; "\\\\"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_DA2A8

loc_DA295:				; CODE XREF: COM_IsValidPath(char  const*)+13j
					; COM_IsValidPath(char	const*)+1Fj ...
		mov	eax, esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_DA2A8:				; CODE XREF: COM_IsValidPath(char  const*)+33j
		mov	dword ptr [esp+4], 3Ah ; c
		mov	[esp], ebx	; s
		call	strchr
		test	eax, eax
		jnz	short loc_DA295
		mov	dword ptr [esp+4], (offset aSourcetvReconn+17h)	; needle
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		setz	al
		mov	esi, eax
		jmp	short loc_DA295
_Z15COM_IsValidPathPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_BufferToBufferCompress(void *dest, int, void *src, size_t size)
_Z26COM_BufferToBufferCompressPcPjPKcj proc near
					; CODE XREF: CEngineReplay::LZSS_Compress(char *,uint *,char  const*,uint)+1Ej
					; CNetworkStringTableContainer::WriteBaselines(bf_write	&)+19Cp ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
dest		= dword	ptr  8
arg_4		= dword	ptr  0Ch
src		= dword	ptr  10h
size		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, [ebp+dest]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+size]
		mov	esi, [ebp+src]
		mov	[ebp+var_4], edi
		mov	[esp], eax	; dest
		mov	[esp+8], ebx	; n
		mov	[esp+4], esi	; src
		call	memcpy
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_20], 1000h
		mov	[esp+0Ch], eax	; int
		lea	eax, [ebp+var_28]
		mov	[ebp+var_1C], 0
		mov	[esp+8], ebx	; size
		mov	[esp+4], esi	; int
		mov	[esp], eax	; int
		call	_ZN5CLZSS8CompressEPhiPj ; CLZSS::Compress(uchar *,int,uint *)
		test	eax, eax
		mov	edi, eax
		jz	short loc_DA345
		mov	edx, [ebp+var_1C]
		test	edx, edx
		jnz	short loc_DA370

loc_DA33D:				; CODE XREF: COM_BufferToBufferCompress(char *,uint *,char  const*,uint)+95j
		mov	[esp], edi	; ptr
		call	free

loc_DA345:				; CODE XREF: COM_BufferToBufferCompress(char *,uint *,char  const*,uint)+54j
		mov	eax, [ebp+dest]
		mov	[esp+8], ebx	; n
		mov	[esp+4], esi	; src
		mov	[esp], eax	; dest
		call	memcpy
		mov	eax, [ebp+arg_4]
		mov	[eax], ebx
		xor	eax, eax

loc_DA35F:				; CODE XREF: COM_BufferToBufferCompress(char *,uint *,char  const*,uint)+C2j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA370:				; CODE XREF: COM_BufferToBufferCompress(char *,uint *,char  const*,uint)+5Bj
		mov	eax, [ebp+arg_4]
		cmp	edx, [eax]
		ja	short loc_DA33D
		mov	eax, [ebp+dest]
		mov	[esp+8], edx	; n
		mov	[ebp+var_2C], edx
		mov	[esp+4], edi	; src
		mov	[esp], eax	; dest
		call	memcpy
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+var_2C]
		mov	[eax], edx
		mov	[esp], edi	; ptr
		call	free
		mov	eax, 1
		jmp	short loc_DA35F
_Z26COM_BufferToBufferCompressPcPjPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl COM_BufferToBufferDecompress(void	*dest, int, void *src, size_t n)
_Z28COM_BufferToBufferDecompressPcPjPKcj proc near
					; CODE XREF: CBaseClientState::ProcessCreateStringTable(SVC_CreateStringTable *)+262p
					; CEngineReplay::LZSS_Decompress(char *,uint *,char  const*,uint)+1Ej ...

var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
dest		= dword	ptr  8
arg_4		= dword	ptr  0Ch
src		= dword	ptr  10h
n		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		lea	eax, [ebp+var_24]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+n]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_1C], 1000h
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN5CLZSS12IsCompressedEPh ; CLZSS::IsCompressed(uchar *)
		test	al, al
		jnz	short loc_DA430
		mov	eax, [edi]
		mov	[esp+8], esi	; n
		cmp	eax, esi
		jb	short loc_DA410
		mov	eax, [ebp+dest]
		mov	[esp+4], ebx	; src
		mov	[esp], eax	; dest
		call	memcpy
		mov	[edi], esi
		mov	eax, 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA410:				; CODE XREF: COM_BufferToBufferDecompress(char *,uint *,char  const*,uint)+3Aj
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aNet_buffertobu	; "NET_BufferToBufferDecompress	with impro"...
		call	Warning
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA430:				; CODE XREF: COM_BufferToBufferDecompress(char *,uint *,char  const*,uint)+30j
		lea	eax, [ebp+var_24]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN5CLZSS13GetActualSizeEPh ; CLZSS::GetActualSize(uchar *)
		mov	edx, [edi]
		cmp	eax, edx
		jbe	short loc_DA470
		mov	[esp+8], eax
		mov	[esp+4], edx
		mov	dword ptr [esp], offset	aNet_buffertobu	; "NET_BufferToBufferDecompress	with impro"...
		call	Warning
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA470:				; CODE XREF: COM_BufferToBufferDecompress(char *,uint *,char  const*,uint)+93j
		mov	eax, [ebp+dest]
		mov	[esp+4], ebx
		mov	[esp+0Ch], edx
		mov	[esp+8], eax
		lea	eax, [ebp+var_24]
		mov	[esp], eax
		call	_ZN5CLZSS14SafeUncompressEPhS0_j ; CLZSS::SafeUncompress(uchar *,uchar *,uint)
		mov	[edi], eax
		mov	eax, 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z28COM_BufferToBufferDecompressPcPjPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogManager::~ConsoleLogManager()
_ZN17ConsoleLogManagerD2Ev proc	near	; DATA XREF: GetConsoleLogManager(void)+56o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN17ConsoleLogManagerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetConsoleLogManager(void)
_Z20GetConsoleLogManagerv proc near	; CODE XREF: GetConsoleLogFileData(CUtlBuffer &)+6p
					; Con_DebugLog(char  const*,...)+30p ...
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		cmp	byte ptr ds:_ZGVZ20GetConsoleLogManagervE6object, 0 ; `guard variable for'GetConsoleLogManager(void)::object
		jz	short loc_DA4D0

locret_DA4BF:				; CODE XREF: GetConsoleLogManager(void)+2Ej
		leave
		mov	eax, offset _ZZ20GetConsoleLogManagervE6object ; GetConsoleLogManager(void)::object
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA4D0:				; CODE XREF: GetConsoleLogManager(void)+Dj
		mov	dword ptr [esp], offset	_ZGVZ20GetConsoleLogManagervE6object ; `guard variable for'GetConsoleLogManager(void)::object
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short locret_DA4BF
		mov	dword ptr [esp], offset	_ZGVZ20GetConsoleLogManagervE6object ; `guard variable for'GetConsoleLogManager(void)::object
		mov	ds:_ZZ20GetConsoleLogManagervE6object, 0 ; GetConsoleLogManager(void)::object
		call	__cxa_guard_release
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZZ20GetConsoleLogManagervE6object ; GetConsoleLogManager(void)::object
		mov	dword ptr [esp], offset	_ZN17ConsoleLogManagerD2Ev ; ConsoleLogManager::~ConsoleLogManager()
		call	__cxa_atexit
		mov	eax, offset _ZZ20GetConsoleLogManagervE6object ; GetConsoleLogManager(void)::object
		leave
		retn
_Z20GetConsoleLogManagerv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogManager::ConsoleLogManager(void)
_ZN17ConsoleLogManagerC2Ev proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		pop	ebp
		retn
_ZN17ConsoleLogManagerC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogManager::CloseFileIfOpen(void)
_ZN17ConsoleLogManager15CloseFileIfOpenEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_DA55C
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	dword ptr [ebx], 0

loc_DA55C:				; CODE XREF: ConsoleLogManager::CloseFileIfOpen(void)+Ej
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN17ConsoleLogManager15CloseFileIfOpenEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogManager::GetConsoleLogFilename(void)const
_ZNK17ConsoleLogManager21GetConsoleLogFilenameEv proc near
					; CODE XREF: ConsoleLogManager::GetConsoleLogFileHandleForAppend(void)+23p
					; ConsoleLogManager::ReadConsoleLogFile(CUtlBuffer &)+2Fp ...
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		sub	esp, 14h
		test	ds:con_logfile+15h, 10h
		jnz	short loc_DA597
		mov	eax, dword ptr ds:con_logfile+1Ch
		mov	ebx, [eax+24h]
		mov	eax, (offset asc_20E578+4)
		test	ebx, ebx
		cmovz	ebx, eax

loc_DA597:				; CODE XREF: ConsoleLogManager::GetConsoleLogFilename(void)+13j
		mov	[esp], ebx	; haystack
		call	_Z15COM_IsValidPathPKc ; COM_IsValidPath(char  const*)
		test	al, al
		mov	eax, offset aConsole_log ; "console.log"
		cmovz	ebx, eax
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZNK17ConsoleLogManager21GetConsoleLogFilenameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogManager::GetConsoleLogFileHandleForAppend(void)
_ZN17ConsoleLogManager32GetConsoleLogFileHandleForAppendEv proc	near
					; CODE XREF: Con_DebugLog(char	const*,...)+38p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_DA5E0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA5E0:				; CODE XREF: ConsoleLogManager::GetConsoleLogFileHandleForAppend(void)+Ej
		mov	[esp], ebx
		call	_ZNK17ConsoleLogManager21GetConsoleLogFilenameEv ; ConsoleLogManager::GetConsoleLogFilename(void)
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], (offset aD1_town_01a+0Ah)
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+8]
		mov	[ebx], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN17ConsoleLogManager32GetConsoleLogFileHandleForAppendEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogManager::ReadConsoleLogFile(CUtlBuffer &)
_ZN17ConsoleLogManager18ReadConsoleLogFileER10CUtlBuffer proc near
					; CODE XREF: GetConsoleLogFileData(CUtlBuffer &)+15p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_DA64C
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	dword ptr [ebx], 0

loc_DA64C:				; CODE XREF: ConsoleLogManager::ReadConsoleLogFile(CUtlBuffer &)+Ej
		mov	[esp], ebx
		call	_ZNK17ConsoleLogManager21GetConsoleLogFilenameEv ; ConsoleLogManager::GetConsoleLogFilename(void)
		mov	edx, ds:g_pFullFileSystem
		mov	ebx, [ebp+arg_4]
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	dword ptr [esp+18h], 0
		mov	[esp+0Ch], ebx
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], offset aGame_1 ; "GAME"
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+38h]
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN17ConsoleLogManager18ReadConsoleLogFileER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogManager::RemoveConsoleLogFile(void)
_ZN17ConsoleLogManager20RemoveConsoleLogFileEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_DA6CD
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	dword ptr [esi], 0

loc_DA6CD:				; CODE XREF: ConsoleLogManager::RemoveConsoleLogFile(void)+Fj
		mov	eax, ds:g_pFileSystem
		mov	eax, [eax]
		mov	ebx, [eax+3Ch]
		mov	[esp], esi
		call	_ZNK17ConsoleLogManager21GetConsoleLogFilenameEv ; ConsoleLogManager::GetConsoleLogFilename(void)
		mov	dword ptr [esp+8], offset aGame_1 ; "GAME"
		mov	[esp+4], eax
		mov	eax, ds:g_pFileSystem
		mov	[esp], eax
		call	ebx
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN17ConsoleLogManager20RemoveConsoleLogFileEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Con_Init(void)
_Z8Con_Initv	proc near		; CODE XREF: Host_Init(bool)+BAp
		push	ebp
		mov	ebp, esp
		mov	ds:con_debuglog, 0
		pop	ebp
		mov	ds:con_debuglogmapprefixed, 0
		mov	ds:con_initialized, 1
		retn
_Z8Con_Initv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Con_Shutdown(void)
_Z12Con_Shutdownv proc near		; CODE XREF: Host_Shutdown(void)+232p
		push	ebp
		mov	ebp, esp
		mov	ds:con_initialized, 0
		pop	ebp
		retn
_Z12Con_Shutdownv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetConsoleLogFileData(CUtlBuffer &)
_Z21GetConsoleLogFileDataR10CUtlBuffer proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		call	_Z20GetConsoleLogManagerv ; GetConsoleLogManager(void)
		mov	edx, [ebp+arg_0]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZN17ConsoleLogManager18ReadConsoleLogFileER10CUtlBuffer ; ConsoleLogManager::ReadConsoleLogFile(CUtlBuffer &)
		leave
		retn
_Z21GetConsoleLogFileDataR10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Con_DebugLog(char	*format, char arg)
_Z12Con_DebugLogPKcz proc near		; CODE XREF: HandleRedirectAndDebugLog(char  const*)+3Bp

var_104C	= dword	ptr -104Ch
s		= byte ptr -1044h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
format		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	eax, [ebp+arg]
		push	ebx
		lea	ebx, [ebp+s]
		sub	esp, 107Ch
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		call	_Z20GetConsoleLogManagerv ; GetConsoleLogManager(void)
		mov	[esp], eax
		call	_ZN17ConsoleLogManager32GetConsoleLogFileHandleForAppendEv ; ConsoleLogManager::GetConsoleLogFileHandleForAppend(void)
		test	eax, eax
		mov	esi, eax
		jz	loc_DA83B
		cmp	ds:con_debuglogmapprefixed, 0
		jnz	loc_DA850

loc_DA7A4:				; CODE XREF: Con_DebugLog(char	const*,...)+111j
					; Con_DebugLog(char  const*,...)+149j
		mov	eax, dword ptr ds:_ZL13con_timestamp+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jz	short loc_DA7D6
		cmp	_ZZ12Con_DebugLogPKczE13needTimestamp, 0 ; Con_DebugLog(char  const*,...)::needTimestamp
		jnz	loc_DA8A0

loc_DA7BD:				; CODE XREF: Con_DebugLog(char	const*,...)+22Cj
		mov	dword ptr [esp+4], (offset aConsoleHistory+1Ch)
		mov	[esp], ebx
		call	_Z9V_stristrPcPKc ; V_stristr(char *,char  const*)
		test	eax, eax
		setnz	_ZZ12Con_DebugLogPKczE13needTimestamp ;	Con_DebugLog(char  const*,...)::needTimestamp

loc_DA7D6:				; CODE XREF: Con_DebugLog(char	const*,...)+5Ej
		mov	edi, ds:g_pFileSystem
		mov	edx, ebx

loc_DA7DE:				; CODE XREF: Con_DebugLog(char	const*,...)+A2j
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_DA7DE
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		mov	eax, [edi+4]
		mov	[esp+0Ch], esi
		lea	ecx, [edi+4]
		sbb	edx, 3
		mov	[esp+4], ebx
		sub	edx, ebx
		mov	[esp], ecx
		mov	[esp+8], edx
		call	dword ptr [eax+4]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+20h]

loc_DA83B:				; CODE XREF: Con_DebugLog(char	const*,...)+41j
		add	esp, 107Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA850:				; CODE XREF: Con_DebugLog(char	const*,...)+4Ej
		call	_Z19MapReslistGeneratorv ; MapReslistGenerator(void)
		mov	[esp], eax
		call	_ZN20CMapReslistGenerator9LogPrefixEv ;	CMapReslistGenerator::LogPrefix(void)
		test	eax, eax
		mov	edi, eax
		jz	loc_DA7A4
		mov	edx, ds:g_pFileSystem
		mov	[esp], eax	; s
		mov	[ebp+var_104C],	edx
		call	strlen
		mov	edx, [ebp+var_104C]
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+0Ch], esi
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	[esp], ecx
		call	dword ptr [edx+4]
		jmp	loc_DA7A4
; ---------------------------------------------------------------------------
		align 10h

loc_DA8A0:				; CODE XREF: Con_DebugLog(char	const*,...)+67j
		lea	eax, [ebp+var_44]
		mov	[esp], eax
		mov	eax, ds:g_pVCR
		call	dword ptr [eax+5Ch]
		mov	eax, [ebp+var_44]
		mov	dword ptr [esp+8], offset a02i02i04i02i02 ; "%02i/%02i/%04i - %02i:%02i:%02i"
		mov	dword ptr [esp+4], 80h ; maxlen
		mov	dword ptr [esp], offset	_ZZL18GetTimestampStringvE6string ; s
		mov	[esp+20h], eax
		mov	eax, [ebp+var_40]
		mov	[esp+1Ch], eax
		mov	eax, [ebp+var_3C]
		mov	[esp+18h], eax
		mov	eax, [ebp+var_30]
		add	eax, 76Ch
		mov	[esp+14h], eax
		mov	eax, [ebp+var_38]
		mov	[esp+10h], eax
		mov	eax, [ebp+var_34]
		add	eax, 1
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edi, ds:g_pFileSystem
		mov	edx, offset _ZZL18GetTimestampStringvE6string ;	GetTimestampString(void)::string

loc_DA907:				; CODE XREF: Con_DebugLog(char	const*,...)+1CBj
		mov	ecx, [edx]
		add	edx, 4
		lea	eax, [ecx-1010101h]
		not	ecx
		and	eax, ecx
		and	eax, 80808080h
		jz	short loc_DA907
		mov	ecx, eax
		shr	ecx, 10h
		test	eax, 8080h
		cmovz	eax, ecx
		lea	ecx, [edx+2]
		cmovz	edx, ecx
		add	al, al
		mov	eax, [edi+4]
		mov	[esp+0Ch], esi
		lea	ecx, [edi+4]
		sbb	edx, 3
		mov	dword ptr [esp+4], offset _ZZL18GetTimestampStringvE6string ; GetTimestampString(void)::string
		sub	edx, offset _ZZL18GetTimestampStringvE6string ;	GetTimestampString(void)::string
		mov	[esp], ecx
		mov	[esp+8], edx
		call	dword ptr [eax+4]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], esi
		mov	dword ptr [esp+8], 2
		mov	dword ptr [esp+4], (offset a_3f_0+5)
		mov	[esp], edx
		call	dword ptr [eax+4]
		jmp	loc_DA7BD
_Z12Con_DebugLogPKcz endp

; ---------------------------------------------------------------------------
		jmp	short _Z25HandleRedirectAndDebugLogPKc ; HandleRedirectAndDebugLog(char	 const*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl HandleRedirectAndDebugLog(char s)
_Z25HandleRedirectAndDebugLogPKc proc near
					; CODE XREF: Con_ColorPrintf(Color  const&,char	 const*,...)+3Ap
					; .text:000DA981j ...

s		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, dword ptr [ebp+s]
		call	_Z17SV_RedirectActivev ; SV_RedirectActive(void)
		test	al, al
		jnz	short loc_DA9D8
		cmp	ds:con_debuglog, 0
		jnz	short loc_DA9C0

loc_DA9AC:				; CODE XREF: HandleRedirectAndDebugLog(char  const*)+40j
		movzx	eax, ds:con_initialized
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DA9C0:				; CODE XREF: HandleRedirectAndDebugLog(char  const*)+1Aj
		mov	[esp+4], ebx	; arg
		mov	dword ptr [esp], (offset aDFS+9) ; format
		call	_Z12Con_DebugLogPKcz ; Con_DebugLog(char  const*,...)
		jmp	short loc_DA9AC
; ---------------------------------------------------------------------------
		align 8

loc_DA9D8:				; CODE XREF: HandleRedirectAndDebugLog(char  const*)+11j
		mov	[esp], ebx	; s
		call	_Z18SV_RedirectAddTextPKc ; SV_RedirectAddText(char  const*)
		add	esp, 14h
		xor	eax, eax
		pop	ebx
		pop	ebp
		retn
_Z25HandleRedirectAndDebugLogPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Con_Print(char s)
_Z9Con_PrintPKc	proc near

s		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, dword ptr [ebp+s]
		test	ebx, ebx
		jz	short loc_DAA03
		cmp	byte ptr [ebx],	0
		jnz	short loc_DAA10

loc_DAA03:				; CODE XREF: Con_Print(char  const*)+Cj
					; Con_Print(char  const*)+2Aj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DAA10:				; CODE XREF: Con_Print(char  const*)+11j
		mov	[esp], ebx	; s
		call	_Z25HandleRedirectAndDebugLogPKc ; HandleRedirectAndDebugLog(char  const*)
		test	al, al
		jz	short loc_DAA03
		mov	[esp+4], ebx
		mov	dword ptr [esp], (offset aDFS+9)
		call	Msg
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z9Con_PrintPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Con_Printf(char *format, char arg)
_Z10Con_PrintfPKcz proc	near		; CODE XREF: Con_SafePrintf(char  const*,...)+40p

s		= byte ptr -1008h
format		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 1014h
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp], ebx	; s
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	eax, dword ptr ds:vcr_verbose+1Ch
		mov	edx, [eax+30h]
		test	edx, edx
		jnz	short loc_DAAA0

loc_DAA7A:				; CODE XREF: Con_Printf(char  const*,...)+76j
		mov	[esp], ebx	; s
		call	_Z25HandleRedirectAndDebugLogPKc ; HandleRedirectAndDebugLog(char  const*)
		test	al, al
		jz	short loc_DAA96
		mov	[esp+4], ebx
		mov	dword ptr [esp], (offset aDFS+9)
		call	Msg

loc_DAA96:				; CODE XREF: Con_Printf(char  const*,...)+44j
		add	esp, 1014h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DAAA0:				; CODE XREF: Con_Printf(char  const*,...)+38j
		mov	eax, ds:g_pVCR
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aCon_printf ; "Con_Printf"
		call	dword ptr [eax+8Ch]
		jmp	short loc_DAA7A
_Z10Con_PrintfPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Con_DPrintf(char *format,	char arg)
_Z11Con_DPrintfPKcz proc near

s		= byte ptr -1008h
format		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 1014h
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	[esp+4], ebx
		mov	dword ptr [esp], (offset aDFS+9)
		mov	ds:_ZL15g_fIsDebugPrint, 1 ; g_fIsDebugPrint
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	ds:_ZL15g_fIsDebugPrint, 0 ; g_fIsDebugPrint
		add	esp, 1014h
		pop	ebx
		pop	ebp
		retn
_Z11Con_DPrintfPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl Con_SafePrintf(char *format, char	arg)
_Z14Con_SafePrintfPKcz proc near

s		= byte ptr -1008h
format		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 1014h
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	[esp+4], ebx	; arg
		mov	dword ptr [esp], (offset aDFS+9) ; format
		mov	ds:_ZL15g_fIsDebugPrint, 1 ; g_fIsDebugPrint
		call	_Z10Con_PrintfPKcz ; Con_Printf(char  const*,...)
		mov	ds:_ZL15g_fIsDebugPrint, 0 ; g_fIsDebugPrint
		add	esp, 1014h
		pop	ebx
		pop	ebp
		retn
_Z14Con_SafePrintfPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConsoleLogFileCallback(IConVar *, char  const*, float)
_Z22ConsoleLogFileCallbackP7IConVarPKcf	proc near
					; DATA XREF: _GLOBAL__sub_I_con_debuglog+A0o

s		= byte ptr -114h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 120h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	[esp+4], eax
		lea	eax, [ebp+var_10]
		mov	[esp], eax
		call	_ZN9ConVarRefC2EPKc ; ConVarRef::ConVarRef(char	 const*)
		mov	eax, [ebp+var_C]
		mov	ebx, [eax+24h]
		call	_Z20GetConsoleLogManagerv ; GetConsoleLogManager(void)
		mov	esi, eax
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_DABD4
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	dword ptr [esi], 0

loc_DABD4:				; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+36j
		mov	[esp], ebx	; haystack
		call	_Z15COM_IsValidPathPKc ; COM_IsValidPath(char  const*)
		test	al, al
		jz	short loc_DAC20
		mov	[esp], ebx	; s
		call	_Z18V_GetFileExtensionPKc ; V_GetFileExtension(char  const*)
		test	eax, eax
		mov	esi, eax
		jz	short loc_DAC54
		mov	dword ptr [esp+4], (offset aConsole_log+8)
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_DAC40

loc_DAC02:				; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+D2j
		mov	[esp], ebx	; haystack
		call	_Z15COM_IsValidPathPKc ; COM_IsValidPath(char  const*)
		test	al, al
		jz	short loc_DAC80
		mov	ds:con_debuglog, 1

loc_DAC15:				; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+FCj
					; ConsoleLogFileCallback(IConVar *,char	 const*,float)+11Ej
		add	esp, 120h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DAC20:				; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+5Ej
		mov	eax, [ebp+var_10]
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aConsole_log ; "console.log"
		mov	[esp], eax
		call	dword ptr [edx]
		add	esp, 120h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DAC40:				; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+80j
		mov	dword ptr [esp+4], (offset a_txt+1)
		mov	[esp], esi
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_DAC02

loc_DAC54:				; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+6Cj
		mov	[esp+8], ebx	; arg
		lea	ebx, [ebp+s]
		mov	dword ptr [esp+4], offset aS_log ; "%s.log"
		mov	[esp], ebx	; s
		call	_Z14V_sprintf_safeILj260EEiRAT__cPKcz
		mov	eax, [ebp+var_10]
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx]
		jmp	short loc_DAC15
; ---------------------------------------------------------------------------
		align 10h

loc_DAC80:				; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+8Cj
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aCondebug ; "-condebug"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		setnz	ds:con_debuglog
		jmp	loc_DAC15
_Z22ConsoleLogFileCallbackP7IConVarPKcf	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl V_sprintf_safe_260u_(char	*s, char *format, char arg)
_Z14V_sprintf_safeILj260EEiRAT__cPKcz proc near
					; CODE XREF: ConsoleLogFileCallback(IConVar *,char  const*,float)+E9p

s		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+arg]
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	[esp+8], eax	; format
		mov	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		leave
		retn
_Z14V_sprintf_safeILj260EEiRAT__cPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; __CreateCCvarQueryICvarQuery_interface(void)
_ZL38__CreateCCvarQueryICvarQuery_interfacev proc near ; DATA XREF: _GLOBAL__sub_I_cv+57o
		push	ebp
		mov	eax, offset _ZL11s_CvarQuery ; s_CvarQuery
		mov	ebp, esp
		pop	ebp
		retn
_ZL38__CreateCCvarQueryICvarQuery_interfacev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ConCommandBaseLessFunc(ConCommandBase	 const*	const&,	ConCommandBase	const* const&)
_ZL22ConCommandBaseLessFuncRKPK14ConCommandBaseS3_ proc	near
					; DATA XREF: CCvarUtilities::CvarList(CCommand	const&)+118o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+14h]
		mov	ebx, eax
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+14h]
		movzx	edx, byte ptr [ebx]
		cmp	dl, 2Bh
		jz	short loc_DAD40
		cmp	dl, 2Dh
		jz	short loc_DAD40
		movzx	edx, byte ptr [eax]
		cmp	dl, 2Bh
		jnz	short loc_DAD4B

loc_DAD28:				; CODE XREF: ConCommandBaseLessFunc(ConCommandBase  const* const&,ConCommandBase  const* const&)+59j
					; ConCommandBaseLessFunc(ConCommandBase	 const*	const&,ConCommandBase  const* const&)+5Ej
		add	eax, 1

loc_DAD2B:				; CODE XREF: ConCommandBaseLessFunc(ConCommandBase  const* const&,ConCommandBase  const* const&)+60j
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		add	esp, 14h
		pop	ebx
		shr	eax, 1Fh
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_DAD40:				; CODE XREF: ConCommandBaseLessFunc(ConCommandBase  const* const&,ConCommandBase  const* const&)+29j
					; ConCommandBaseLessFunc(ConCommandBase	 const*	const&,ConCommandBase  const* const&)+2Ej
		movzx	edx, byte ptr [eax]
		add	ebx, 1
		cmp	dl, 2Bh
		jz	short loc_DAD28

loc_DAD4B:				; CODE XREF: ConCommandBaseLessFunc(ConCommandBase  const* const&,ConCommandBase  const* const&)+36j
		cmp	dl, 2Dh
		jz	short loc_DAD28
		jmp	short loc_DAD2B
_ZL22ConCommandBaseLessFuncRKPK14ConCommandBaseS3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL19StripTabsAndReturnsPKcPci_constprop_49 proc near
					; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+3ECp
					; CCvarUtilities::CvarList(CCommand  const&)+78Fp
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [eax+1]
		mov	eax, 27h
		push	ebx
		mov	ebx, edx
		mov	byte ptr [edx],	0
		nop
		lea	esi, [esi+0]

loc_DAD78:				; CODE XREF: _ZL19StripTabsAndReturnsPKcPci_constprop_49+56j
		movzx	ecx, byte ptr [esi-1]
		test	cl, cl
		jnz	short loc_DAD90

loc_DAD80:				; CODE XREF: _ZL19StripTabsAndReturnsPKcPci_constprop_49+37j
		mov	byte ptr [ebx],	0
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DAD90:				; CODE XREF: _ZL19StripTabsAndReturnsPKcPci_constprop_49+1Ej
		mov	edi, ebx
		sub	edi, edx
		cmp	edi, 7Eh
		jg	short loc_DAD80
		cmp	cl, 0Dh
		jz	short loc_DADC0
		cmp	cl, 0Ah
		jz	short loc_DADC0
		cmp	cl, 9
		jz	short loc_DADC0
		cmp	cl, 22h
		cmovz	ecx, eax
		mov	[ebx], cl

loc_DADB0:				; CODE XREF: _ZL19StripTabsAndReturnsPKcPci_constprop_49+63j
		add	ebx, 1
		add	esi, 1
		jmp	short loc_DAD78
; ---------------------------------------------------------------------------
		align 10h

loc_DADC0:				; CODE XREF: _ZL19StripTabsAndReturnsPKcPci_constprop_49+3Cj
					; _ZL19StripTabsAndReturnsPKcPci_constprop_49+41j ...
		mov	byte ptr [ebx],	20h
		jmp	short loc_DADB0
_ZL19StripTabsAndReturnsPKcPci_constprop_49 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CCvarUtilities__SetDirect(int, int, char *s)
_ZN14CCvarUtilities9SetDirectEP6ConVarPKc proc near
					; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+1A3p

var_141C	= dword	ptr -141Ch
pwcs		= dword	ptr -1418h
wc		= dword	ptr -0C18h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
arg_4		= dword	ptr  0Ch
s		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 142Ch
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+s]
		mov	eax, [esi]
		mov	dword ptr [esp+4], 200h
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_DADFF
		cmp	ds:sv+130h, 0
		jnz	short loc_DAE35

loc_DADFF:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+24j
		mov	eax, [esi]
		mov	dword ptr [esp+4], 400h
		mov	edi, ebx
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DAE70

loc_DAE15:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+197j
		mov	eax, [esi]
		mov	dword ptr [esp+4], 1000h
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		mov	eax, [esi]
		jnz	short loc_DAE40
		mov	[esp+4], edi
		mov	[esp], esi
		call	dword ptr [eax+2Ch]

loc_DAE35:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+2Dj
		add	esp, 142Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_DAE40:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+59j
		mov	ebx, [eax+30h]
		mov	[esp], edi	; nptr
		mov	dword ptr [esp+4], 0 ; endptr
		call	strtod
		mov	[esp], esi
		fstp	dword ptr [esp+4]
		call	ebx
		add	esp, 142Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DAE70:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+43j
		lea	edi, [ebp+pwcs]
		mov	dword ptr [esp+8], 800h	; int
		mov	[esp+4], edi	; pwcs
		mov	[esp], ebx	; s
		call	_Z15V_UTF8ToUnicodePKcPwi ; V_UTF8ToUnicode(char  const*,wchar_t *,int)
		lea	eax, [ebp+wc]
		mov	[ebp+wc], 0
		mov	[ebp+var_141C],	eax
		jmp	short loc_DAECD
; ---------------------------------------------------------------------------
		align 8

loc_DAEA8:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+101j
		mov	[esp], ebx	; wc
		call	iswcntrl
		test	eax, eax
		jnz	short loc_DAECA
		cmp	ebx, 7Eh
		jz	short loc_DAECA
		mov	eax, [ebp+var_141C]
		mov	[eax], ebx
		add	eax, 4
		mov	[ebp+var_141C],	eax

loc_DAECA:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+E2j
					; CCvarUtilities::SetDirect(ConVar *,char  const*)+E7j
		add	edi, 4

loc_DAECD:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+D0j
		mov	ebx, [edi]
		test	ebx, ebx
		jnz	short loc_DAEA8
		mov	eax, [ebp+var_141C]
		mov	dword ptr [eax], 0
		lea	eax, [ebp+wc]
		mov	[esp], eax	; s
		call	wcslen
		test	eax, eax
		jz	short loc_DAF1F
		mov	eax, [ebp+wc]
		lea	ebx, [ebp+wc]
		test	eax, eax
		jz	short loc_DAF1F
		lea	esi, [esi+0]

loc_DAF08:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+14Dj
		mov	[esp], eax	; wc
		call	iswspace
		test	eax, eax
		jz	short loc_DAF47
		add	ebx, 4
		jz	short loc_DAF1F
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_DAF08

loc_DAF1F:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+11Fj
					; CCvarUtilities::SetDirect(ConVar *,char  const*)+12Fj ...
		lea	eax, [ebp+wc]
		mov	dword ptr [esp+8], 1FFh	; n
		mov	dword ptr [esp+4], offset src ;	"#"
		mov	[esp], eax	; dest
		call	wcsncpy
		mov	[ebp+var_41C], 0

loc_DAF47:				; CODE XREF: CCvarUtilities::SetDirect(ConVar *,char  const*)+142j
		lea	edi, [ebp+var_418]
		mov	dword ptr [esp+8], 400h	; n
		lea	eax, [ebp+wc]
		mov	[esp+4], edi	; s
		mov	[esp], eax	; pwcs
		call	_Z15V_UnicodeToUTF8PKwPci ; V_UnicodeToUTF8(wchar_t  const*,char *,int)
		jmp	loc_DAE15
_ZN14CCvarUtilities9SetDirectEP6ConVarPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::IsCommand(CCommand  const&)
_ZN14CCvarUtilities9IsCommandERK8CCommand proc near
					; CODE XREF: Cmd_ExecuteCommand(CCommand  const&,cmd_source_t,int)+387p

var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
dest		= byte ptr -418h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 42Ch
		mov	esi, [ebp+arg_4]
		mov	eax, [esi]
		cmp	eax, 0
		mov	[ebp+var_41C], eax
		jz	loc_DB120
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	ecx, [edx+30h]
		mov	edx, (offset asc_20E578+4)
		jle	short loc_DAFA9
		mov	edx, [esi+408h]

loc_DAFA9:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+31j
		mov	[esp+4], edx
		xor	edi, edi
		mov	[esp], eax
		call	ecx
		test	eax, eax
		mov	ebx, eax
		jz	loc_DB120
		mov	eax, [eax]
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	loc_DB120
		cmp	[ebp+var_41C], 1
		jz	loc_DB1B0
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 40h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 400000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 4000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_DB038
		call	_Z23Host_IsSinglePlayerGamev ; Host_IsSinglePlayerGame(void)
		test	al, al
		db	66h
		nop
		jnz	short loc_DB038
		mov	eax, dword ptr ds:sv_cheats+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jz	loc_DB1C2
		lea	esi, [esi+0]

loc_DB038:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+A5j
					; CCvarUtilities::IsCommand(CCommand  const&)+B0j ...
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 2000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	loc_DB130

loc_DB050:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+1C7j
					; CCvarUtilities::IsCommand(CCommand  const&)+1CDj ...
		mov	edi, [esi+4]
		mov	eax, 0FFFFFFFFh
		mov	edx, (offset asc_20E578+4)
		test	edi, edi
		jz	loc_DB183
		lea	ecx, [esi+edi]
		lea	edx, [ecx+8]
		mov	[ebp+var_424], ecx
		mov	[esp], edx	; s
		mov	[ebp+var_420], edx
		call	strlen
		cmp	byte ptr [esi+edi+8], 22h
		mov	edx, [ebp+var_420]
		mov	ecx, [ebp+var_424]
		jnz	loc_DB180
		lea	esi, [ebp+dest]
		add	ecx, 9
		mov	[ebp+var_420], eax
		mov	[esp+4], ecx	; src
		mov	dword ptr [esp+8], 400h	; n
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [ebp+var_420]
		mov	ecx, 1
		sub	eax, 2

loc_DB0C7:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+23Bj
		mov	edx, esi
		add	edx, eax
		jb	short loc_DB0EF
		cmp	[ebp+eax+dest],	20h
		jle	short loc_DB0E5
		jmp	short loc_DB0EF
; ---------------------------------------------------------------------------
		align 10h

loc_DB0E0:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+17Dj
		cmp	byte ptr [edx],	20h
		jg	short loc_DB0EF

loc_DB0E5:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+165j
		mov	byte ptr [edx],	0
		sub	edx, 1
		cmp	edx, esi
		jnb	short loc_DB0E0

loc_DB0EF:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+15Bj
					; CCvarUtilities::IsCommand(CCommand  const&)+167j ...
		test	cl, cl
		jz	short loc_DB100
		cmp	edx, esi
		jb	short loc_DB100
		cmp	byte ptr [edx],	22h
		jnz	short loc_DB100
		mov	byte ptr [edx],	0
		nop

loc_DB100:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+181j
					; CCvarUtilities::IsCommand(CCommand  const&)+185j ...
		mov	eax, [ebp+arg_0]
		mov	[esp+8], esi	; s
		mov	edi, 1
		mov	[esp+4], ebx	; int
		mov	[esp], eax	; int
		call	_ZN14CCvarUtilities9SetDirectEP6ConVarPKc ; CCvarUtilities::SetDirect(ConVar *,char  const*)
		nop
		lea	esi, [esi+0]

loc_DB120:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+1Cj
					; CCvarUtilities::IsCommand(CCommand  const&)+48j ...
		add	esp, 42Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DB130:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+DAj
		cmp	dword ptr ds:sv+4, 1
		jg	loc_DB050
		jz	loc_DB050
		cmp	ds:cmd_source, 1
		jnz	loc_DB050
		cmp	dword ptr ds:byte_28B880+13Ch, 1
		jle	loc_DB050
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	edi, 1
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aCanTChangeRepl	; "Can't change replicated ConVar %s from "...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	short loc_DB120
; ---------------------------------------------------------------------------
		align 10h

loc_DB180:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+120j
		sub	eax, 1

loc_DB183:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+EFj
		lea	esi, [ebp+dest]
		mov	[ebp+var_420], eax
		mov	dword ptr [esp+8], 400h	; n
		mov	[esp+4], edx	; src
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		xor	ecx, ecx
		mov	eax, [ebp+var_420]
		jmp	loc_DB0C7
; ---------------------------------------------------------------------------

loc_DB1B0:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+6Dj
		mov	[esp], ebx
		mov	edi, 1
		call	_Z23ConVar_PrintDescriptionPK14ConCommandBase ;	ConVar_PrintDescription(ConCommandBase	const*)
		jmp	loc_DB120
; ---------------------------------------------------------------------------

loc_DB1C2:				; CODE XREF: CCvarUtilities::IsCommand(CCommand	 const&)+BCj
		call	_Z15Cmd_IsRptActivev ; Cmd_IsRptActive(void)
		test	al, al
		jnz	loc_DB038
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	edi, 1
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aCanTUseCheatCv	; "Can't use cheat cvar %s in multiplayer,"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_DB120
_ZN14CCvarUtilities9IsCommandERK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::IsValidToggleCommand(char  const*)
_ZN14CCvarUtilities20IsValidToggleCommandEPKc proc near
					; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+4Ep

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	eax, ds:g_pCVar
		mov	esi, [ebp+arg_4]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], esi
		call	dword ptr [edx+30h]
		test	eax, eax
		mov	ebx, eax
		jz	loc_DB318
		mov	eax, [eax]
		mov	dword ptr [esp+4], 2
		xor	esi, esi
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_DB248

loc_DB23C:				; CODE XREF: CCvarUtilities::IsValidToggleCommand(char	const*)+5Aj
					; CCvarUtilities::IsValidToggleCommand(char  const*)+C0j ...
		add	esp, 10h
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_DB248:				; CODE XREF: CCvarUtilities::IsValidToggleCommand(char	const*)+3Aj
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 10h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DB23C
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 40h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 400000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 4000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_DB2A9
		call	_Z23Host_IsSinglePlayerGamev ; Host_IsSinglePlayerGame(void)
		test	al, al
		jnz	short loc_DB2A9
		mov	eax, dword ptr ds:sv_cheats+1Ch
		mov	edx, [eax+30h]
		test	edx, edx
		jz	loc_DB338

loc_DB2A9:				; CODE XREF: CCvarUtilities::IsValidToggleCommand(char	const*)+8Ej
					; CCvarUtilities::IsValidToggleCommand(char  const*)+97j ...
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 2000h
		mov	esi, 1
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	loc_DB23C
		cmp	dword ptr ds:sv+4, 1
		jg	loc_DB23C
		jz	loc_DB23C
		cmp	ds:cmd_source, 1
		jnz	loc_DB23C
		cmp	dword ptr ds:byte_28B880+13Ch, 1
		jle	loc_DB23C
		mov	eax, [ebx]
		mov	[esp], ebx
		xor	esi, esi
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aCanTChangeRepl	; "Can't change replicated ConVar %s from "...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_DB23C
; ---------------------------------------------------------------------------
		align 8

loc_DB318:				; CODE XREF: CCvarUtilities::IsValidToggleCommand(char	const*)+20j
		mov	[esp+4], esi
		xor	esi, esi
		mov	dword ptr [esp], offset	aSIsNotAValidCv	; "%s is not a valid cvar\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 10h
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_DB338:				; CODE XREF: CCvarUtilities::IsValidToggleCommand(char	const*)+A3j
		call	_Z15Cmd_IsRptActivev ; Cmd_IsRptActive(void)
		test	al, al
		jnz	loc_DB2A9
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aCanTUseCheatCv	; "Can't use cheat cvar %s in multiplayer,"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_DB23C
_ZN14CCvarUtilities20IsValidToggleCommandEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::WriteVariables(CUtlBuffer &)
_ZN14CCvarUtilities14WriteVariablesER10CUtlBuffer proc near

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, ds:g_pCVar
		mov	edi, [ebp+arg_4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+40h]
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_DB3A6
		jmp	short loc_DB410
; ---------------------------------------------------------------------------
		align 8

loc_DB398:				; CODE XREF: CCvarUtilities::WriteVariables(CUtlBuffer &)+40j
					; CCvarUtilities::WriteVariables(CUtlBuffer &)+54j
		mov	[esp], ebx
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_DB410

loc_DB3A6:				; CODE XREF: CCvarUtilities::WriteVariables(CUtlBuffer &)+1Dj
					; CCvarUtilities::WriteVariables(CUtlBuffer &)+9Dj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+8]
		test	al, al
		jnz	short loc_DB398
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 80h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_DB398
		test	byte ptr [ebx+15h], 10h
		mov	esi, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jnz	short loc_DB3E1
		mov	eax, [ebx+1Ch]
		mov	esi, [eax+24h]
		mov	eax, (offset asc_20E578+4)
		test	esi, esi
		cmovz	esi, eax

loc_DB3E1:				; CODE XREF: CCvarUtilities::WriteVariables(CUtlBuffer &)+5Fj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	[esp+0Ch], esi
		mov	[esp+8], eax	; arg
		mov	dword ptr [esp+4], offset aSS_8	; "%s \"%s\"\n"
		mov	[esp], edi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	[esp], ebx
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_DB3A6
		nop

loc_DB410:				; CODE XREF: CCvarUtilities::WriteVariables(CUtlBuffer &)+1Fj
					; CCvarUtilities::WriteVariables(CUtlBuffer &)+34j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN14CCvarUtilities14WriteVariablesER10CUtlBuffer endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::CountVariablesWithFlags(int)
_ZN14CCvarUtilities23CountVariablesWithFlagsEi proc near

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, ds:g_pCVar
		mov	edi, [ebp+arg_4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+40h]
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_DB456
		jmp	short loc_DB481
; ---------------------------------------------------------------------------
		align 8

loc_DB448:				; CODE XREF: CCvarUtilities::CountVariablesWithFlags(int)+40j
		mov	[esp], ebx
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_DB481

loc_DB456:				; CODE XREF: CCvarUtilities::CountVariablesWithFlags(int)+1Fj
					; CCvarUtilities::CountVariablesWithFlags(int)+5Fj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+8]
		test	al, al
		jnz	short loc_DB448
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], edi
		call	dword ptr [eax+0Ch]
		mov	[esp], ebx
		cmp	al, 1
		sbb	esi, 0FFFFFFFFh
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_DB456

loc_DB481:				; CODE XREF: CCvarUtilities::CountVariablesWithFlags(int)+21j
					; CCvarUtilities::CountVariablesWithFlags(int)+34j
		add	esp, 1Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN14CCvarUtilities23CountVariablesWithFlagsEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::CvarHelp(CCommand  const&)
_ZN14CCvarUtilities8CvarHelpERK8CCommand proc near ; CODE XREF:	help(CCommand  const&)+15p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax], 2
		jnz	short loc_DB4D0
		mov	ebx, [eax+40Ch]
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jz	short loc_DB4E8
		mov	[ebp+arg_0], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_Z23ConVar_PrintDescriptionPK14ConCommandBase ;	ConVar_PrintDescription(ConCommandBase	const*)
; ---------------------------------------------------------------------------
		align 10h

loc_DB4D0:				; CODE XREF: CCvarUtilities::CvarHelp(CCommand	const&)+Dj
		mov	[ebp+arg_0], offset aUsageHelpCvarn ; "Usage:  help <cvarname>\n"
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
; ---------------------------------------------------------------------------
		align 8

loc_DB4E8:				; CODE XREF: CCvarUtilities::CvarHelp(CCommand	const&)+28j
		mov	[ebp+arg_4], ebx
		mov	[ebp+arg_0], offset aHelpNoCvarOrCo ; "help:  no cvar or command named %s\n"
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
_ZN14CCvarUtilities8CvarHelpERK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; help(CCommand	 const&)
_ZL4helpRK8CCommand proc near		; DATA XREF: _GLOBAL__sub_I_cv+12Do

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		mov	eax, cv
		mov	[esp], eax
		call	_ZN14CCvarUtilities8CvarHelpERK8CCommand ; CCvarUtilities::CvarHelp(CCommand  const&)
		leave
		retn
_ZL4helpRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::CvarDifferences(CCommand  const&)
_ZN14CCvarUtilities15CvarDifferencesERK8CCommand proc near
					; CODE XREF: differences(CCommand  const&)+15p
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+40h]
		test	eax, eax
		mov	ebx, eax
		jz	loc_DB5E0
		mov	edi, (offset asc_20E578+4)
		jmp	short loc_DB562
; ---------------------------------------------------------------------------
		align 10h

loc_DB550:				; CODE XREF: CCvarUtilities::CvarDifferences(CCommand  const&)+4Cj
					; CCvarUtilities::CvarDifferences(CCommand  const&)+60j ...
		mov	[esp], ebx
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jz	loc_DB5E0

loc_DB562:				; CODE XREF: CCvarUtilities::CvarDifferences(CCommand  const&)+25j
					; CCvarUtilities::CvarDifferences(CCommand  const&)+B8j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+8]
		test	al, al
		jnz	short loc_DB550
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 2
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DB550
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 10h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DB550
		test	byte ptr [ebx+15h], 10h
		mov	esi, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jnz	short loc_DB5AC
		mov	eax, [ebx+1Ch]
		mov	esi, [eax+24h]
		test	esi, esi
		cmovz	esi, edi

loc_DB5AC:				; CODE XREF: CCvarUtilities::CvarDifferences(CCommand  const&)+7Fj
		mov	[esp], ebx
		call	_ZNK6ConVar10GetDefaultEv ; ConVar::GetDefault(void)
		mov	[esp+4], esi
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jz	short loc_DB550
		mov	[esp], ebx
		call	_Z23ConVar_PrintDescriptionPK14ConCommandBase ;	ConVar_PrintDescription(ConCommandBase	const*)
		mov	[esp], ebx
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	ebx, eax
		jnz	short loc_DB562
		lea	esi, [esi+0]

loc_DB5E0:				; CODE XREF: CCvarUtilities::CvarDifferences(CCommand  const&)+1Aj
					; CCvarUtilities::CvarDifferences(CCommand  const&)+3Cj
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN14CCvarUtilities15CvarDifferencesERK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; differences(CCommand	const&)
_ZL11differencesRK8CCommand proc near	; DATA XREF: _GLOBAL__sub_I_cv+17Do

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		mov	eax, cv
		mov	[esp], eax
		call	_ZN14CCvarUtilities15CvarDifferencesERK8CCommand ; CCvarUtilities::CvarDifferences(CCommand  const&)
		leave
		retn
_ZL11differencesRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::CvarToggle(CCommand  const&)
_ZN14CCvarUtilities10CvarToggleERK8CCommand proc near
					; CODE XREF: toggle(CCommand  const&)+15p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edx, [esi]
		cmp	edx, 1
		mov	[ebp+var_1C], edx
		jle	loc_DB730
		mov	eax, ds:g_pCVar
		mov	ecx, [esi+40Ch]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+30h]
		cmp	dword ptr [esi], 1
		mov	[ebp+var_20], eax
		mov	eax, (offset asc_20E578+4)
		jle	short loc_DB657
		mov	eax, [esi+40Ch]

loc_DB657:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+3Fj
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN14CCvarUtilities20IsValidToggleCommandEPKc ;	CCvarUtilities::IsValidToggleCommand(char  const*)
		test	al, al
		jz	loc_DB718
		cmp	[ebp+var_1C], 2
		jz	loc_DB743
		mov	eax, [ebp+var_20]
		mov	ebx, 2
		mov	edx, [esi]
		mov	edi, [eax+14h]
		mov	[ebp+var_24], edx
		and	edi, 1000h
		nop
		lea	esi, [esi+0]

loc_DB690:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+C3j
		cmp	[ebp+var_24], ebx
		mov	edx, (offset asc_20E578+4)
		jle	short loc_DB6A1
		mov	edx, [esi+ebx*4+408h]

loc_DB6A1:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+88j
		test	edi, edi
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jnz	short loc_DB6BD
		mov	ecx, [ebp+var_20]
		mov	eax, [ecx+1Ch]
		mov	ecx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, ecx

loc_DB6BD:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+98j
		mov	[esp+4], edx	; s2
		mov	[esp], eax	; s1
		call	strcmp
		test	eax, eax
		jz	short loc_DB6D5
		add	ebx, 1
		cmp	[ebp+var_1C], ebx
		jg	short loc_DB690

loc_DB6D5:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+BBj
		add	ebx, 1
		mov	edx, [ebp+var_20]
		mov	eax, 2
		cmp	[ebp+var_1C], ebx
		cmovle	ebx, eax
		mov	eax, [edx]
		cmp	ebx, [ebp+var_24]
		mov	edx, [eax+2Ch]
		mov	eax, (offset asc_20E578+4)
		jl	short loc_DB720

loc_DB6F5:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+117j
		mov	[esp+4], eax
		mov	eax, [ebp+var_20]
		mov	[esp], eax
		call	edx

loc_DB701:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+14Fj
		mov	eax, [ebp+var_20]
		mov	[ebp+arg_0], eax
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z23ConVar_PrintDescriptionPK14ConCommandBase ;	ConVar_PrintDescription(ConCommandBase	const*)
; ---------------------------------------------------------------------------
		align 8

loc_DB718:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+55j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_DB720:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+E3j
		mov	eax, [esi+ebx*4+408h]
		jmp	short loc_DB6F5
; ---------------------------------------------------------------------------
		align 10h

loc_DB730:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+17j
		mov	[ebp+arg_0], offset aUsageToggleCva ; "Usage:  toggle <cvarname> [value1] [val"...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
; ---------------------------------------------------------------------------

loc_DB743:				; CODE XREF: CCvarUtilities::CvarToggle(CCommand  const&)+5Fj
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+1Ch]
		mov	eax, [ecx]
		mov	ebx, [edx+30h]
		xor	edx, edx
		mov	[esp], ecx
		test	ebx, ebx
		setz	dl
		mov	[esp+4], edx
		call	dword ptr [eax+34h]
		jmp	short loc_DB701
_ZN14CCvarUtilities10CvarToggleERK8CCommand endp

; ---------------------------------------------------------------------------
		jmp	short _ZL6toggleRK8CCommand ; toggle(CCommand  const&)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; toggle(CCommand  const&)
_ZL6toggleRK8CCommand proc near		; CODE XREF: .text:000DB761j
					; DATA XREF: _GLOBAL__sub_I_cv+1CDo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		mov	eax, cv
		mov	[esp], eax
		call	_ZN14CCvarUtilities10CvarToggleERK8CCommand ; CCvarUtilities::CvarToggle(CCommand  const&)
		leave
		retn
_ZL6toggleRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::CvarFindFlags_f(CCommand  const&)
_ZN14CCvarUtilities15CvarFindFlags_fERK8CCommand proc near
					; CODE XREF: findflags(CCommand	 const&)+15p

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax], 1
		jle	loc_DB84A
		mov	edi, [eax+40Ch]
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+40h]
		test	eax, eax
		mov	esi, eax
		jnz	short loc_DB7DA
		jmp	loc_DB890
; ---------------------------------------------------------------------------
		align 8

loc_DB7C8:				; CODE XREF: CCvarUtilities::CvarFindFlags_f(CCommand  const&)+5Cj
					; CCvarUtilities::CvarFindFlags_f(CCommand  const&)+75j ...
		mov	[esp], esi
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	esi, eax
		jz	loc_DB890

loc_DB7DA:				; CODE XREF: CCvarUtilities::CvarFindFlags_f(CCommand  const&)+2Cj
		mov	eax, [esi]
		mov	dword ptr [esp+4], 2
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DB7C8
		mov	eax, [esi]
		mov	dword ptr [esp+4], 10h
		mov	ebx, offset _ZL13g_ConVarFlags ; g_ConVarFlags
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DB7C8
		jmp	short loc_DB81B
; ---------------------------------------------------------------------------
		align 10h

loc_DB810:				; CODE XREF: CCvarUtilities::CvarFindFlags_f(CCommand  const&)+9Bj
					; CCvarUtilities::CvarFindFlags_f(CCommand  const&)+AEj ...
		add	ebx, 0Ch
		cmp	ebx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DB7C8

loc_DB81B:				; CODE XREF: CCvarUtilities::CvarFindFlags_f(CCommand  const&)+77j
		mov	edx, [ebx]
		mov	eax, [esi]
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_DB810
		mov	eax, [ebx+4]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		test	eax, eax
		jz	short loc_DB810
		mov	[esp], esi
		call	_Z23ConVar_PrintDescriptionPK14ConCommandBase ;	ConVar_PrintDescription(ConCommandBase	const*)
		jmp	short loc_DB810
; ---------------------------------------------------------------------------

loc_DB84A:				; CODE XREF: CCvarUtilities::CvarFindFlags_f(CCommand  const&)+Fj
		mov	dword ptr [esp], offset	aUsageFindflags	; "Usage:  findflags <string>\n"
		mov	ebx, (offset _ZL13g_ConVarFlags+4)
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	dword ptr [esp], offset	aAvailableFlags	; "Available flags to search for: \n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	esi, esi
		lea	edi, [edi+0]

loc_DB870:				; CODE XREF: CCvarUtilities::CvarFindFlags_f(CCommand  const&)+FBj
		mov	eax, [ebx]
		add	ebx, 0Ch
		mov	dword ptr [esp], offset	aS_0 ; "   - %s\n"
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		cmp	ebx, (offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4)
		jnz	short loc_DB870
		lea	esi, [esi+0]

loc_DB890:				; CODE XREF: CCvarUtilities::CvarFindFlags_f(CCommand  const&)+2Ej
					; CCvarUtilities::CvarFindFlags_f(CCommand  const&)+44j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN14CCvarUtilities15CvarFindFlags_fERK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; findflags(CCommand  const&)
_ZL9findflagsRK8CCommand proc near	; DATA XREF: _GLOBAL__sub_I_cv+8Do

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		mov	eax, cv
		mov	[esp], eax
		call	_ZN14CCvarUtilities15CvarFindFlags_fERK8CCommand ; CCvarUtilities::CvarFindFlags_f(CCommand  const&)
		leave
		retn
_ZL9findflagsRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ConVarNetworkChangeCallback(int, char *s2, float)
_ZL27ConVarNetworkChangeCallbackP7IConVarPKcf proc near
					; DATA XREF: CCvarQuery::Init(void)+10o
					; CCvarQuery::Shutdown(void)+Do

var_4C		= dword	ptr -4Ch
var_44		= dword	ptr -44h
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
s2		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		lea	ebx, [ebp+var_20]
		sub	esp, 5Ch
		mov	esi, [ebp+arg_0]
		mov	[esp], ebx
		mov	edi, [ebp+s2]
		mov	[esp+4], esi
		call	_ZN9ConVarRefC2EP7IConVar ; ConVarRef::ConVarRef(IConVar *)
		test	edi, edi
		jz	loc_DBA88
		mov	eax, [ebp+var_1C]
		mov	[esp+4], edi	; s2
		mov	eax, [eax+24h]
		mov	[esp], eax	; s1
		call	strcmp
		test	eax, eax
		jz	loc_DB9E8

loc_DB900:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+1D5j
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 200h
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jz	short loc_DB995
		cmp	dword ptr ds:byte_28B880+13Ch, 1
		jle	short loc_DB995
		mov	eax, [ebx+4]
		mov	edi, [eax+24h]
		mov	eax, [ebx]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	[esp+8], edi	; int
		lea	edi, [ebp+var_44]
		mov	[esp+4], eax	; src
		mov	[esp], edi	; int
		call	_ZN13NET_SetConVarC2EPKcS1_ ; NET_SetConVar::NET_SetConVar(char	 const*,char  const*)
		mov	eax, dword ptr ds:byte_28B880+10h
		mov	edx, [eax]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx+0A4h]
		lea	edi, [ebp+var_34]
		mov	[ebp+var_44], (offset _ZTV13NET_SetConVar+8)
		mov	[ebp+var_28], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	eax, [ebp+var_34]
		mov	[esp], edi
		mov	[ebp+var_24], eax
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	[ebp+var_44], (offset _ZTV11INetMessage+8)

loc_DB995:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+55j
					; ConVarNetworkChangeCallback(IConVar *,char  const*,float)+5Ej
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 100h
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	short loc_DB9F0

loc_DB9AC:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+152j
					; ConVarNetworkChangeCallback(IConVar *,char  const*,float)+1C0j
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 2000h
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jz	short loc_DB9E8
		cmp	dword ptr ds:sv+4, 1
		jle	short loc_DB9E8
		mov	eax, [ebx+4]
		lea	ecx, [esi-18h]
		mov	edx, [eax+24h]
		xor	eax, eax
		test	esi, esi
		cmovnz	eax, ecx
		mov	[esp], eax	; int
		mov	[esp+4], edx	; arg
		call	_Z24SV_ReplicateConVarChangePK6ConVarPKc ; SV_ReplicateConVarChange(ConVar  const*,char	 const*)

loc_DB9E8:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+3Aj
					; ConVarNetworkChangeCallback(IConVar *,char  const*,float)+101j ...
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_DB9F0:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+EAj
		mov	edx, ds:g_GameEventManager
		mov	eax, [edx]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aServer_cvar ; "server_cvar"
		mov	[esp], edx
		call	dword ptr [eax+1Ch]
		test	eax, eax
		mov	edi, eax
		jz	short loc_DB9AC
		mov	eax, [eax]
		mov	eax, [eax+34h]
		mov	[ebp+var_4C], eax
		mov	eax, [ebx]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	dword ptr [esp+4], offset aCvarname ; "cvarname"
		mov	[esp+8], eax
		mov	[esp], edi
		call	[ebp+var_4C]
		mov	eax, [ebx]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 20h
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		mov	eax, [edi]
		jz	short loc_DBAA0
		mov	dword ptr [esp+8], offset aProtected ; "***PROTECTED***"
		mov	dword ptr [esp+4], offset aCvarvalue ; "cvarvalue"
		mov	[esp], edi
		call	dword ptr [eax+34h]

loc_DBA66:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+1F8j
		mov	edx, ds:g_GameEventManager
		mov	eax, [edx]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+20h]
		jmp	loc_DB9AC
; ---------------------------------------------------------------------------
		align 4

loc_DBA88:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+20j
		mov	eax, [ebp+var_1C]
		fld	dword ptr [eax+2Ch]
		fld	[ebp+arg_8]
		fcomip	st, st(1)
		fstp	st
		jnz	loc_DB900
		jmp	loc_DB9E8
; ---------------------------------------------------------------------------

loc_DBAA0:				; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+18Ej
		mov	edx, [ebx+4]
		mov	edx, [edx+24h]
		mov	dword ptr [esp+4], offset aCvarvalue ; "cvarvalue"
		mov	[esp], edi
		mov	[esp+8], edx
		call	dword ptr [eax+34h]
		jmp	short loc_DBA66
_ZL27ConVarNetworkChangeCallbackP7IConVarPKcf endp

; ---------------------------------------------------------------------------
		lea	ebx, [ebp-34h]
		mov	esi, eax
		mov	dword ptr [ebp-44h], (offset _ZTV13NET_SetConVar+8)
		mov	dword ptr [ebp-28h], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	eax, [ebp-34h]
		mov	[esp], ebx
		mov	[ebp-24h], eax
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarUtilities::CvarList(CCommand  const&)
_ZN14CCvarUtilities8CvarListERK8CCommand proc near
					; CODE XREF: cvarlist(CCommand	const&)+15p

var_7A8		= dword	ptr -7A8h
var_7A4		= dword	ptr -7A4h
var_7A0		= dword	ptr -7A0h
var_79C		= dword	ptr -79Ch
var_798		= dword	ptr -798h
var_794		= dword	ptr -794h
var_78D		= byte ptr -78Dh
var_78C		= dword	ptr -78Ch
var_788		= dword	ptr -788h
var_780		= dword	ptr -780h
var_77C		= dword	ptr -77Ch
var_778		= byte ptr -778h
s		= byte ptr -378h
var_278		= byte ptr -278h
var_178		= byte ptr -178h
var_F8		= byte ptr -0F8h
var_78		= byte ptr -78h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7BCh
		mov	esi, [ebp+arg_4]
		mov	ebx, [esi]
		cmp	ebx, 2
		mov	edx, ebx
		jz	loc_DC438

loc_DBB0C:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+97Bj
		cmp	edx, 1
		mov	eax, (offset asc_20E578+4)
		jle	short loc_DBB1C
		mov	eax, [esi+40Ch]

loc_DBB1C:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+24j
		mov	dword ptr [esp+4], (offset aConsole_log+8)
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	loc_DBBBE
		cmp	ebx, 2
		jle	loc_DBBBE
		cmp	dword ptr [esi], 2
		mov	eax, (offset asc_20E578+4)
		jg	loc_DBCF7

loc_DBB4B:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+20Dj
		lea	edi, [ebp+s]
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], (offset aDFS+9) ; format
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	[esp], edi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset byte_1F0284
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	[ebp+var_798], eax
		jz	loc_DC4A3
		cmp	ebx, 4
		jz	loc_DC470
		mov	[ebp+var_78D], 1
		xor	ebx, ebx
		mov	[ebp+var_794], 0
		jmp	short loc_DBBF6
; ---------------------------------------------------------------------------

loc_DBBBE:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+3Ej
					; CCvarUtilities::CvarList(CCommand  const&)+47j
		mov	[ebp+var_794], (offset asc_20E578+4)
		xor	ebx, ebx
		cmp	dword ptr [esi], 1
		jle	short loc_DBBE5
		mov	esi, [esi+40Ch]
		mov	[esp], esi	; s
		mov	[ebp+var_794], esi
		call	strlen
		mov	ebx, eax

loc_DBBE5:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+DDj
		mov	[ebp+var_798], 0
		mov	[ebp+var_78D], 0

loc_DBBF6:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+CCj
					; CCvarUtilities::CvarList(CCommand  const&)+9AEj
		mov	dword ptr [esp], offset	aCvarList ; "cvar list\n--------------\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	edx, ds:g_pCVar
		mov	[ebp+var_38], offset _ZL22ConCommandBaseLessFuncRKPK14ConCommandBaseS3_	; ConCommandBaseLessFunc(ConCommandBase	 const*	const&,ConCommandBase  const* const&)
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0FFFFh
		mov	[ebp+var_26], 0
		mov	[ebp+var_24], 0FFFFh
		mov	[ebp+var_22], 0FFFFh
		mov	[ebp+var_20], 0
		mov	eax, [edx]
		mov	[esp], edx
		lea	edx, [ebp+var_38]
		mov	[ebp+var_78C], edx
		call	dword ptr [eax+40h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	loc_DBD02
		lea	edx, [ebp+var_38]
		mov	[ebp+var_78C], edx
		lea	esi, [ebp+var_1C]
		jmp	short loc_DBC86
; ---------------------------------------------------------------------------
		align 10h

loc_DBC70:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+1A8j
					; CCvarUtilities::CvarList(CCommand  const&)+1BFj ...
		mov	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_ZNK14ConCommandBase7GetNextEv ; ConCommandBase::GetNext(void)
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	loc_DBD0B

loc_DBC86:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+17Bj
		mov	edx, [eax]
		mov	dword ptr [esp+4], 2
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		test	al, al
		jnz	short loc_DBC70
		mov	eax, [ebp+var_1C]
		mov	edx, [eax]
		mov	dword ptr [esp+4], 10h
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		test	al, al
		jnz	short loc_DBC70
		mov	edi, [ebp+var_794]
		test	edi, edi
		jz	short loc_DBCE0
		mov	eax, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+14h]
		mov	ecx, [ebp+var_794]
		mov	[esp+8], ebx
		mov	[esp], eax
		mov	[esp+4], ecx
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jnz	short loc_DBC70

loc_DBCE0:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+1C9j
		mov	eax, [ebp+var_78C]
		mov	[esp+4], esi
		mov	[esp], eax
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE6InsertES4_ ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)
		jmp	loc_DBC70
; ---------------------------------------------------------------------------

loc_DBCF7:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+55j
		mov	eax, [esi+410h]
		jmp	loc_DBB4B
; ---------------------------------------------------------------------------

loc_DBD02:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+169j
		lea	ebx, [ebp+var_38]
		mov	[ebp+var_78C], ebx

loc_DBD0B:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+190j
		cmp	[ebp+var_78D], 0
		jz	loc_DBDB5
		mov	[ebp+var_778], 0
		lea	esi, [ebp+var_78]
		xor	ebx, ebx
		lea	edi, [ebp+var_778]
		lea	esi, [esi+0]

loc_DBD30:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+288j
		lea	eax, [ebx+ebx*2]
		mov	dword ptr [esp+8], offset aS_1 ; "\"%s\","
		mov	eax, (_ZL13g_ConVarFlags+4)[eax*4]
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp], esi	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 400h	; int
		mov	[esp+4], esi	; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		add	ebx, 1
		cmp	ebx, 10h
		jnz	short loc_DBD30
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_798]
		mov	edx, [eax]
		mov	dword ptr [esp+18h], offset aHelpText ;	"Help Text"
		mov	[esp+14h], edi
		mov	dword ptr [esp+10h], (offset aClc_respondc_0+0Fh)
		mov	dword ptr [esp+0Ch], offset aName_0 ; "Name"
		mov	dword ptr [esp+8], offset aSSSS	; "\"%s\",\"%s\",%s,\"%s\"\n"
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+60h]

loc_DBDB5:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+222j
		movzx	edi, [ebp+var_28]
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+var_78C]
		jmp	short loc_DBE10
; ---------------------------------------------------------------------------
		align 10h

loc_DBDD0:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+327j
					; CCvarUtilities::CvarList(CCommand  const&)+343j ...
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DBDE4
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_DBDE4:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+2E9j
		cmp	word ptr [eax],	0FFFFh
		jz	loc_DBE87
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_DBE67

loc_DBDF9:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+392j
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DBE0D
		lea	edx, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	edx, [esi+edx*4]

loc_DBE0D:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+312j
		movzx	edi, word ptr [edx]

loc_DBE10:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+2D6j
		movzx	esi, di
		test	al, al
		mov	edx, esi
		jnz	short loc_DBDD0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_7A0], esi
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_7A0]
		test	eax, eax
		jz	short loc_DBDD0
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_7A0]
		jmp	loc_DBDD0
; ---------------------------------------------------------------------------

loc_DBE67:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+307j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DC3EF

loc_DBE7B:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+926j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DBDF9
; ---------------------------------------------------------------------------

loc_DBE87:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+2F8j
		cmp	esi, 0FFFFh
		mov	ebx, edx
		jz	loc_DC056
		lea	esi, [ebp+var_78]
		nop
		lea	esi, [esi+0]

loc_DBEA0:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+560j
		lea	eax, [ebx+ebx*2]
		mov	[ebp+var_780], ebx
		mov	ebx, [ebp+var_78C]
		shl	eax, 2
		add	eax, [ebx+4]
		mov	eax, [eax+8]
		mov	[ebp+var_1C], eax
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8]
		test	al, al
		jz	loc_DC110
		mov	edi, [ebp+var_1C]
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+18h]
		lea	edx, [ebp+var_178]
		call	_ZL19StripTabsAndReturnsPKcPci_constprop_49
		mov	ebx, eax
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+14h]
		mov	[esp+10h], ebx
		mov	dword ptr [esp+0Ch], (offset asc_20E578+4) ; arg
		mov	dword ptr [esp+8], (offset aDem_consolecmd+0Bh)
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	a40s8s16sS ; "%-40s : %-8s : %-16s : %s\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		cmp	[ebp+var_78D], 0
		jz	loc_DC02F
		mov	[ebp+s], 0
		mov	ebx, 10h
		nop
		lea	esi, [esi+0]

loc_DBF30:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+47Dj
		mov	dword ptr [esp+8], (offset aS_1+4) ; format
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp], esi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		lea	eax, [ebp+s]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 100h	; int
		mov	[esp+4], esi	; int
		mov	[esp], eax	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		sub	ebx, 1
		jnz	short loc_DBF30
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+14h]
		lea	ebx, [ebp+var_278]
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], (offset aDFS+9) ; format
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	[ebp+var_788], ebx
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		movzx	eax, [ebp+var_278]
		cmp	al, 2Dh
		jz	loc_DC3C0
		cmp	al, 2Bh
		jz	loc_DC3C0

loc_DBFB6:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+8FAj
		mov	eax, ds:g_pFileSystem
		mov	eax, [eax]
		mov	eax, [eax+60h]
		mov	[ebp+var_77C], eax
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+18h]
		lea	edi, [ebp+var_F8]
		mov	[ebp+var_F8], 0
		add	eax, 1
		mov	edx, edi

loc_DBFE0:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+60Aj
		movzx	ecx, byte ptr [eax-1]
		test	cl, cl
		jnz	loc_DC0E0

loc_DBFEC:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+5F7j
		lea	eax, [ebp+s]
		mov	byte ptr [edx],	0
		mov	ebx, [ebp+var_788]
		mov	[esp+14h], eax
		mov	eax, [ebp+var_798]
		mov	[esp+18h], edi
		mov	dword ptr [esp+10h], (offset aDem_consolecmd+0Bh)
		mov	[esp+0Ch], ebx
		mov	[esp+4], eax
		mov	eax, ds:g_pFileSystem
		mov	dword ptr [esp+8], offset aSSSS	; "\"%s\",\"%s\",%s,\"%s\"\n"
		mov	[esp], eax
		call	[ebp+var_77C]

loc_DC02F:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+426j
					; CCvarUtilities::CvarList(CCommand  const&)+7D3j ...
		mov	ebx, [ebp+var_780]
		mov	[esp+4], ebx
		mov	ebx, [ebp+var_78C]
		mov	[esp], ebx
		call	_ZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11NextInorderEt ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)
		movzx	ebx, ax
		cmp	ebx, 0FFFFh
		jnz	loc_DBEA0

loc_DC056:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+39Fj
		mov	eax, [ebp+var_794]
		test	eax, eax
		jz	short loc_DC06F
		mov	ebx, [ebp+var_794]
		cmp	byte ptr [ebx],	0
		jnz	loc_DC41B

loc_DC06F:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+56Ej
		movzx	eax, [ebp+var_26]
		mov	dword ptr [esp], offset	a3iTotalConvars	; "--------------\n%3i total convars/concom"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_DC083:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+943j
		cmp	[ebp+var_78D], 0
		jz	short loc_DC0A7
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_798]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]

loc_DC0A7:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+59Aj
		mov	ebx, [ebp+var_78C]
		mov	[esp], ebx
		lea	ebx, [ebp+var_34]
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv ; CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)
		mov	[ebp+var_24], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Purge(void)
		mov	[ebp+var_22], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Purge(void)

loc_DC0D4:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+9C3j
		add	esp, 7BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DC0E0:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+4F6j
		mov	ebx, edx
		sub	ebx, edi
		cmp	ebx, 7Eh
		jg	loc_DBFEC
		cmp	cl, 22h
		jz	short loc_DC100
		mov	[edx], cl
		add	edx, 1

loc_DC0F7:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+616j
		add	eax, 1
		jmp	loc_DBFE0
; ---------------------------------------------------------------------------
		align 10h

loc_DC100:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+600j
		mov	byte ptr [edx],	27h
		add	edx, 1
		jmp	short loc_DC0F7
; ---------------------------------------------------------------------------
		align 10h

loc_DC110:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+3D5j
		mov	ebx, [ebp+var_1C]
		mov	[ebp+var_F8], 0
		mov	[ebp+var_778], 0
		mov	[ebp+var_77C], ebx
		xor	ebx, ebx
		jmp	loc_DC1C6
; ---------------------------------------------------------------------------
		align 10h

loc_DC130:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+6FBj
		mov	eax, [edi+8]
		mov	dword ptr [esp+8], (offset aSNumIS+0Ah)	; format
		mov	dword ptr [esp+4], 20h ; maxlen
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		lea	edx, [ebp+s]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		lea	eax, [ebp+var_F8]
		mov	dword ptr [esp+8], 80h ; int
		mov	[esp+4], edx	; int
		mov	[esp], eax	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	eax, [edi+4]
		mov	dword ptr [esp+8], offset aS_1 ; "\"%s\","
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp], esi	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_DC19C:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+719j
		lea	edi, [ebp+var_778]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; arg
		mov	dword ptr [esp+8], 400h	; int
		mov	[esp+4], esi	; int
		mov	[esp], edi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		add	ebx, 1
		cmp	ebx, 10h
		jz	short loc_DC210

loc_DC1C6:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+639j
		mov	ecx, [ebp+var_77C]
		lea	eax, [ebx+ebx*2]
		lea	edi, _ZL13g_ConVarFlags[eax*4] ; g_ConVarFlags
		mov	eax, _ZL13g_ConVarFlags[eax*4] ; g_ConVarFlags
		mov	edx, [ecx]
		mov	[esp], ecx
		mov	[esp+4], eax
		call	dword ptr [edx+0Ch]
		test	al, al
		jnz	loc_DC130
		mov	dword ptr [esp+8], (offset aS_1+4) ; format
		mov	dword ptr [esp+4], 40h ; maxlen
		mov	[esp], esi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	short loc_DC19C
; ---------------------------------------------------------------------------
		align 10h

loc_DC210:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+6D4j
		mov	ebx, [ebp+var_77C]
		mov	eax, [ebx+1Ch]
		movss	xmm0, dword ptr	[eax+2Ch]
		mov	edx, [eax+30h]
		cvttss2si eax, xmm0
		cmp	edx, eax
		jz	loc_DC390
		movss	[ebp+var_7A4], xmm0
		lea	ebx, [ebp+var_278]
		fld	[ebp+var_7A4]
		mov	dword ptr [esp+8], offset a8_3f	; "%-8.3f"
		fstp	qword ptr [esp+0Ch] ; arg
		mov	dword ptr [esp+4], 20h ; maxlen
		mov	[ebp+var_788], ebx
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_DC263:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+8C8j
		mov	ebx, [ebp+var_77C]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		lea	ebx, [ebp+var_178]
		mov	edx, ebx
		mov	[ebp+var_7A8], ebx
		call	_ZL19StripTabsAndReturnsPKcPci_constprop_49
		mov	edx, [ebp+var_77C]
		mov	ebx, eax
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+14h]
		mov	[esp+10h], ebx
		mov	ebx, [ebp+var_788]
		lea	edx, [ebp+var_F8]
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	a40s8s16sS ; "%-40s : %-8s : %-16s : %s\n"
		mov	[esp+8], ebx
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		cmp	[ebp+var_78D], 0
		jz	loc_DC02F
		mov	eax, ds:g_pFileSystem
		mov	ebx, [ebp+var_77C]
		mov	eax, [eax]
		mov	eax, [eax+60h]
		mov	[ebp+var_79C], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		lea	ecx, [eax+1]
		mov	[ebp+var_178], 0
		lea	eax, [ebp+var_178]
		mov	esi, esi
		lea	edi, [edi+0]

loc_DC300:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+88Aj
		movzx	edx, byte ptr [ecx-1]
		test	dl, dl
		jnz	short loc_DC360

loc_DC308:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+87Bj
		mov	ebx, [ebp+var_77C]
		mov	byte ptr [eax],	0
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_798]
		lea	edx, [ebp+var_178]
		mov	ebx, [ebp+var_788]
		mov	[esp+18h], edx
		mov	[esp+14h], edi
		mov	dword ptr [esp+8], offset aSSSS	; "\"%s\",\"%s\",%s,\"%s\"\n"
		mov	[esp+4], eax
		mov	eax, ds:g_pFileSystem
		mov	[esp+10h], ebx
		mov	[esp], eax
		call	[ebp+var_79C]
		jmp	loc_DC02F
; ---------------------------------------------------------------------------
		align 10h

loc_DC360:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+816j
		mov	ebx, eax
		sub	ebx, [ebp+var_7A8]
		cmp	ebx, 7Eh
		jg	short loc_DC308
		cmp	dl, 22h
		jz	short loc_DC380
		mov	[eax], dl
		add	eax, 1

loc_DC377:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+896j
		add	ecx, 1
		jmp	short loc_DC300
; ---------------------------------------------------------------------------
		align 10h

loc_DC380:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+880j
		mov	byte ptr [eax],	27h
		add	eax, 1
		jmp	short loc_DC377
; ---------------------------------------------------------------------------
		align 10h

loc_DC390:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+737j
		lea	ebx, [ebp+var_278]
		mov	[esp+0Ch], edx	; arg
		mov	dword ptr [esp+8], offset a8i ;	"%-8i"
		mov	dword ptr [esp+4], 20h ; maxlen
		mov	[ebp+var_788], ebx
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_DC263
; ---------------------------------------------------------------------------
		align 10h

loc_DC3C0:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+4B8j
					; CCvarUtilities::CvarList(CCommand  const&)+4C0j
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+14h]
		mov	ebx, [ebp+var_788]
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aS_2 ; "'%s'"
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		jmp	loc_DBFB6
; ---------------------------------------------------------------------------

loc_DC3EF:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+385j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DBE7B
; ---------------------------------------------------------------------------

loc_DC41B:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+579j
		movzx	eax, [ebp+var_26]
		mov	[esp+8], ebx
		mov	dword ptr [esp], offset	a3iConvarsConco	; "--------------\n%3i convars/concommands "...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_DC083
; ---------------------------------------------------------------------------

loc_DC438:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+16j
		mov	dword ptr [esp+4], (offset a3_6?+4)
		mov	eax, [esi+40Ch]
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		test	eax, eax
		jnz	short loc_DC469
		mov	dword ptr [esp], offset	aCvarlistLogLog	; "cvarlist:  [log logfile] [ partial ]\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 7BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_DC469:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+960j
		mov	edx, [esi]
		jmp	loc_DBB0C
; ---------------------------------------------------------------------------

loc_DC470:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+B3j
		mov	[ebp+var_794], (offset asc_20E578+4)
		xor	ebx, ebx
		cmp	dword ptr [esi], 3
		jle	short loc_DC497
		mov	esi, [esi+414h]
		mov	[esp], esi	; s
		mov	[ebp+var_794], esi
		call	strlen
		mov	ebx, eax

loc_DC497:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+98Fj
		mov	[ebp+var_78D], 1
		jmp	loc_DBBF6
; ---------------------------------------------------------------------------

loc_DC4A3:				; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+AAj
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aCouldnTOpenSFo	; "Couldn't open '%s' for writing!\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_DC0D4
_ZN14CCvarUtilities8CvarListERK8CCommand endp

; ---------------------------------------------------------------------------
		mov	ebx, [ebp-78Ch]
		mov	esi, eax
		mov	[esp], ebx
		lea	ebx, [ebp-34h]
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv ; CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)
		mov	word ptr [ebp-24h], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Purge(void)
		mov	word ptr [ebp-22h], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Purge(void)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; cvarlist(CCommand  const&)
_ZL8cvarlistRK8CCommand	proc near	; DATA XREF: _GLOBAL__sub_I_cv+DDo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		mov	eax, cv
		mov	[esp], eax
		call	_ZN14CCvarUtilities8CvarListERK8CCommand ; CCvarUtilities::CvarList(CCommand  const&)
		leave
		retn
_ZL8cvarlistRK8CCommand	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarQuery::Connect(void * (*)(char  const*, int *))
_ZN10CCvarQuery7ConnectEPFPvPKcPiE proc	near ; DATA XREF: .rodata:`vtable for'CCvarQueryo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp+4], 0
		mov	dword ptr [esp], offset	aVenginecvar004	; "VEngineCvar004"
		call	[ebp+arg_4]
		mov	edx, eax
		xor	eax, eax
		test	edx, edx
		jz	short locret_DC544
		mov	ecx, [ebp+arg_0]
		mov	eax, [edx]
		mov	[esp], edx
		mov	[esp+4], ecx
		call	dword ptr [eax+6Ch]
		mov	eax, 1

locret_DC544:				; CODE XREF: CCvarQuery::Connect(void *	(*)(char  const*,int *))+1Ej
		leave
		retn
_ZN10CCvarQuery7ConnectEPFPvPKcPiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarQuery::Init(void)
_ZN10CCvarQuery4InitEv proc near	; DATA XREF: .rodata:`vtable for'CCvarQueryo
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+4], offset _ZL27ConVarNetworkChangeCallbackP7IConVarPKcf	; ConVarNetworkChangeCallback(IConVar *,char  const*,float)
		call	dword ptr [edx+48h]
		mov	eax, 1
		leave
		retn
_ZN10CCvarQuery4InitEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarQuery::Shutdown(void)
_ZN10CCvarQuery8ShutdownEv proc	near	; DATA XREF: .rodata:`vtable for'CCvarQueryo
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:g_pCVar
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset _ZL27ConVarNetworkChangeCallbackP7IConVarPKcf	; ConVarNetworkChangeCallback(IConVar *,char  const*,float)
		mov	[esp], eax
		call	dword ptr [edx+4Ch]
		leave
		retn
_ZN10CCvarQuery8ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseAppSystem<ICvarQuery>::Disconnect(void)
_ZN14CBaseAppSystemI10ICvarQueryE10DisconnectEv	proc near
					; DATA XREF: .rodata:`vtable for'CCvarQueryo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN14CBaseAppSystemI10ICvarQueryE10DisconnectEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseAppSystem<ICvarQuery>::Connect(void * (*)(char  const*, int *))
_ZN14CBaseAppSystemI10ICvarQueryE7ConnectEPFPvPKcPiE proc near
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN14CBaseAppSystemI10ICvarQueryE7ConnectEPFPvPKcPiE endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseAppSystem<ICvarQuery>::QueryInterface(char  const*)
_ZN14CBaseAppSystemI10ICvarQueryE14QueryInterfaceEPKc proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN14CBaseAppSystemI10ICvarQueryE14QueryInterfaceEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseAppSystem<ICvarQuery>::Init(void)
_ZN14CBaseAppSystemI10ICvarQueryE4InitEv proc near
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN14CBaseAppSystemI10ICvarQueryE4InitEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBaseAppSystem<ICvarQuery>::Shutdown(void)
_ZN14CBaseAppSystemI10ICvarQueryE8ShutdownEv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN14CBaseAppSystemI10ICvarQueryE8ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarQuery::QueryInterface(char  const*)
_ZN10CCvarQuery14QueryInterfaceEPKc proc near ;	DATA XREF: .rodata:`vtable for'CCvarQueryo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+4], offset aVcvarquery001 ; "VCvarQuery001"
		mov	[esp], eax
		call	_Z9V_stricmpPKcS0_ ; V_stricmp(char  const*,char  const*)
		xor	edx, edx
		test	eax, eax
		cmovz	edx, [ebp+arg_0]
		leave
		mov	eax, edx
		retn
_ZN10CCvarQuery14QueryInterfaceEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CCvarQuery::AreConVarsLinkable(ConVar	 const*, ConVar	 const*)
_ZN10CCvarQuery18AreConVarsLinkableEPK6ConVarS2_ proc near
					; DATA XREF: .rodata:`vtable for'CCvarQueryo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 2000h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	edi, eax
		mov	eax, [esi]
		mov	dword ptr [esp+4], 2000h
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		mov	edx, edi
		test	dl, dl
		jz	short loc_DC690
		test	al, al
		jnz	short loc_DC6E0

loc_DC661:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+72j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aBothConvarsMus	; "Both	ConVars	must be	marked FCVAR_REPLI"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	eax, eax

loc_DC67B:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+A1j
					; CCvarQuery::AreConVarsLinkable(ConVar	 const*,ConVar	const*)+BDj ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DC690:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+3Bj
		test	al, al
		jnz	short loc_DC661
		mov	eax, [esi]
		mov	dword ptr [esp+4], 8
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DC718
		mov	eax, [esi]
		mov	dword ptr [esp+4], 4
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		mov	edx, eax
		mov	eax, 1
		test	dl, dl
		jz	short loc_DC67B
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aParentCvarInSe	; "Parent cvar in server.dll not allowed ("...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	eax, eax
		jmp	short loc_DC67B
; ---------------------------------------------------------------------------
		align 10h

loc_DC6E0:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+3Fj
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 20h
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jz	short loc_DC740

loc_DC6F4:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+132j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aFcvar_replicat	; "FCVAR_REPLICATED can't also be FCVAR_PR"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	eax, eax
		jmp	loc_DC67B
; ---------------------------------------------------------------------------
		align 8

loc_DC718:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+86j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aParentCvarInCl	; "Parent cvar in client.dll not allowed ("...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ebx, [ebp+var_C]
		xor	eax, eax
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DC740:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+D2j
		mov	eax, [esi]
		mov	dword ptr [esp+4], 20h
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DC6F4
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+8]
		test	al, al
		jz	short loc_DC77F

loc_DC760:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+169j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aFcvar_replic_0	; "FCVAR_REPLICATED not	valid on ConComman"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	eax, eax
		jmp	loc_DC67B
; ---------------------------------------------------------------------------

loc_DC77F:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+13Ej
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+8]
		test	al, al
		jnz	short loc_DC760
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DC7BD

loc_DC79F:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+1AFj
		mov	eax, [ebx]
		mov	dword ptr [esp+4], 8
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DC7F0
		mov	eax, 1
		jmp	loc_DC67B
; ---------------------------------------------------------------------------

loc_DC7BD:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+17Dj
		mov	eax, [esi]
		mov	dword ptr [esp+4], 8
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		test	al, al
		jnz	short loc_DC79F

loc_DC7D1:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+1EFj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	dword ptr [esp], offset	aForFcvar_repli	; "For FCVAR_REPLICATED, ConVar	must be	de"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		xor	eax, eax
		jmp	loc_DC67B
; ---------------------------------------------------------------------------

loc_DC7F0:				; CODE XREF: CCvarQuery::AreConVarsLinkable(ConVar  const*,ConVar  const*)+191j
		mov	eax, [esi]
		mov	dword ptr [esp+4], 4
		mov	[esp], esi
		call	dword ptr [eax+0Ch]
		mov	edx, eax
		mov	eax, 1
		test	dl, dl
		jnz	loc_DC67B
		jmp	short loc_DC7D1
_ZN10CCvarQuery18AreConVarsLinkableEPK6ConVarS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ConCommandBase  const*, unsigned short, bool (*)(ConCommandBase  const* const&, ConCommandBase  const* const&), CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,	unsigned short>, unsigned short>>::NextInorder(unsigned	short)const
_ZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11NextInorderEt proc near
					; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+552p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 2Ch
		movzx	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		movzx	edx, di
		cmp	edx, [esi+8]
		jnb	short loc_DC843
		cmp	di, [esi+16h]
		jbe	short loc_DC850

loc_DC843:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+1Bj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+CBj ...
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DC850:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+21j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DCB30

loc_DC85D:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+324j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+354j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DC871
		mov	ecx, [esi+4]
		lea	eax, [edx+edx*2]
		lea	eax, [ecx+eax*4]

loc_DC871:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+46j
		cmp	di, [eax]
		jz	loc_DCBE0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	loc_DC9B0

loc_DC889:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+1B1j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+404j
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DC89D
		mov	ebx, [esi+4]
		lea	ecx, [edx+edx*2]
		lea	ecx, [ebx+ecx*4]

loc_DC89D:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+72j
		cmp	word ptr [ecx+2], 0FFFFh
		jz	loc_DC9E0
		test	al, al
		jz	loc_DCBB0

loc_DC8B0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+3B1j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+466j
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DC8C4
		mov	edi, [esi+4]
		lea	ecx, [edx+edx*2]
		lea	ecx, [edi+ecx*4]

loc_DC8C4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+99j
		movzx	ebx, word ptr [ecx+2]
		jmp	short loc_DC916
; ---------------------------------------------------------------------------
		align 10h

loc_DC8D0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+F8j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+108j ...
		cmp	bx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DC8E7
		mov	ecx, [esi+4]
		movzx	eax, bx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_DC8E7:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+B9j
		cmp	word ptr [eax],	0FFFFh
		jz	loc_DC843
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_DC960

loc_DC8FC:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+157j
		cmp	bx, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DC913
		movzx	ebx, bx
		lea	edx, [ebx+ebx*2]
		mov	ebx, [esi+4]
		lea	edx, [ebx+edx*4]

loc_DC913:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+E5j
		movzx	ebx, word ptr [edx]

loc_DC916:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+A8j
		test	al, al
		jnz	short loc_DC8D0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_DC8D0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DC8D0
; ---------------------------------------------------------------------------
		align 10h

loc_DC960:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+DAj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_DC980

loc_DC970:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+187j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	short loc_DC8FC
; ---------------------------------------------------------------------------
		align 10h

loc_DC980:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+14Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	short loc_DC970
; ---------------------------------------------------------------------------
		align 10h

loc_DC9B0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+63j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	loc_DCBF0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DC889
; ---------------------------------------------------------------------------
		align 10h

loc_DC9E0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+82j
		test	al, al
		jz	loc_DCC30

loc_DC9E8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+42Dj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+49Fj
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DC9FC
		lea	ecx, [edx+edx*2]
		mov	edx, [esi+4]
		lea	ecx, [edx+ecx*4]

loc_DC9FC:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+1D1j
		movzx	ebx, word ptr [ecx+4]
		jmp	short loc_DCA6F
; ---------------------------------------------------------------------------
		align 8

loc_DCA08:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+251j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+26Aj
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DCA1F
		mov	ecx, [esi+4]
		movzx	edx, di
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_DCA1F:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+1F1j
		test	al, al
		movzx	edx, word ptr [edx+4]
		jz	short loc_DCA90

loc_DCA27:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+284j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+2B0j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DCA3E
		movzx	edx, dx
		lea	eax, [edx+edx*2]
		mov	edx, [esi+4]
		lea	eax, [edx+eax*4]

loc_DCA3E:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+210j
		cmp	di, [eax+2]
		jnz	loc_DC843
		cmp	bx, 0FFFFh
		jz	loc_DCBE0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_DCAD8

loc_DCA5D:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+2D3j
		mov	edi, [esi+4]
		movzx	edx, bx
		lea	edx, [edx+edx*2]
		lea	edx, [edi+edx*4]
		mov	edi, ebx
		movzx	ebx, word ptr [edx+4]

loc_DCA6F:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+1E0j
		test	al, al
		jnz	short loc_DCA08
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_DCB00

loc_DCA83:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+307j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DCA08
; ---------------------------------------------------------------------------
		align 10h

loc_DCA90:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+205j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_DCA27
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_DCA27
; ---------------------------------------------------------------------------
		align 4

loc_DCAD8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+23Bj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DCB80

loc_DCAEC:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+387j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DCA5D
; ---------------------------------------------------------------------------
		align 10h

loc_DCB00:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+261j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DCA83
; ---------------------------------------------------------------------------
		align 10h

loc_DCB30:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+37j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	loc_DC85D
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_DC85D
; ---------------------------------------------------------------------------
		align 10h

loc_DCB80:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+2C6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DCAEC
; ---------------------------------------------------------------------------
		align 10h

loc_DCBB0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+8Aj
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	loc_DCC52
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DC8B0
; ---------------------------------------------------------------------------
		align 10h

loc_DCBE0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+54j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+22Cj
		mov	ebx, 0FFFFFFFFh
		jmp	loc_DC843
; ---------------------------------------------------------------------------
		align 10h

loc_DCBF0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+1A4j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_DC889
; ---------------------------------------------------------------------------
		align 10h

loc_DCC30:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+1C2j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_DCC8B
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DC9E8
; ---------------------------------------------------------------------------

loc_DCC52:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+3A4j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_DC8B0
; ---------------------------------------------------------------------------

loc_DCC8B:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NextInorder(ushort)+424j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_DC9E8
_ZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11NextInorderEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE5PurgeEv proc near
					; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+5D1p
					; CCvarUtilities::CvarList(CCommand  const&)+5DFp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_DCCFC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_DCCF5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_DCCF5:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_DCCFC:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ConCommandBase  const*, unsigned short, bool (*)(ConCommandBase  const* const&, ConCommandBase  const* const&), CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,	unsigned short>, unsigned short>>::RemoveAll(void)
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv proc	near
					; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+5C3p
					; .text:000DC4C6p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		movzx	ecx, word ptr [esi+16h]
		cmp	cx, 0FFFFh
		jz	short loc_DCD74
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_DCD68
		xor	edx, edx
		xor	edi, edi
		lea	esi, [esi+0]

loc_DCD38:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+51j
		cmp	edi, eax
		mov	ebx, edi
		jnb	short loc_DCD43
		cmp	di, cx
		jbe	short loc_DCD80

loc_DCD43:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+2Cj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+9Aj
		cmp	bx, cx
		jz	short loc_DCD68
		mov	eax, [esi+8]
		add	ebx, 1
		movzx	ebx, bx
		cmp	ebx, eax
		jnb	short loc_DCD68
		add	edi, 1
		add	edx, 0Ch
		cmp	edi, 0FFFFh
		jnz	short loc_DCD38
		nop
		lea	esi, [esi+0]

loc_DCD68:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+1Bj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+36j ...
		mov	word ptr [esi+10h], 0FFFFh
		mov	word ptr [esi+12h], 0

loc_DCD74:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+14j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DCD80:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+31j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DCDB0

loc_DCD89:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+B4j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+E0j
		mov	ecx, [esi+4]
		add	ecx, edx
		cmp	bx, [ecx]
		jz	short loc_DCDA6
		movzx	eax, word ptr [esi+14h]
		mov	[ecx+2], ax
		mov	eax, [esi+4]
		mov	[eax+edx], bx
		mov	[esi+14h], bx

loc_DCDA6:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+81j
		movzx	ecx, word ptr [esi+16h]
		jmp	short loc_DCD43
; ---------------------------------------------------------------------------
		align 10h

loc_DCDB0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RemoveAll(void)+77j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_DCD89
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	short loc_DCD89
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl NET_SetConVar__NET_SetConVar(int,	char *src, int)
_ZN13NET_SetConVarC2EPKcS1_ proc near	; CODE XREF: ConVarNetworkChangeCallback(IConVar *,char	 const*,float)+7Ep
					; SV_ReplicateConVarChange(ConVar  const*,char	const*)+44p

dest		= byte ptr -210h
var_10C		= byte ptr -10Ch
arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+dest]
		sub	esp, 230h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+src]
		mov	byte ptr [ebx+4], 1
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx], (offset _ZTV13NET_SetConVar+8)
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 0
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		mov	[esp], esi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	eax, [ebp+arg_8]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp+4], eax	; src
		lea	eax, [ebp+var_10C]
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+8], esi
		mov	eax, [ebx+1Ch]
		add	ebx, 10h
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIN13NET_SetConVar6cvar_sE10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<NET_SetConVar::cvar_s,CUtlMemory<NET_SetConVar::cvar_s,int>>::InsertBefore(int,NET_SetConVar::cvar_s const&)
		add	esp, 230h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN13NET_SetConVarC2EPKcS1_ endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx+1Ch], 0
		lea	esi, [ebx+10h]
		mov	[ebp-21Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	edx, [ebx+10h]
		mov	[ebx+20h], edx
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN13NET_SetConVar6cvar_sEiE5PurgeEv ; CUtlMemory<NET_SetConVar::cvar_s,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV11INetMessage+8)
		mov	eax, [ebp-21Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE4GrowEi	proc near
					; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+9Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_DCF65
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_DCF70
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_DCF16
		lea	esi, [esi+0]

loc_DCF10:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_DCF10

loc_DCF16:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_DCF48
		test	ax, ax
		jz	short loc_DCF88
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_DCF65
		cmp	esi, ecx
		jge	short loc_DCF48
		lea	esi, [esi+0]

loc_DCF30:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_DCF30
		lea	esi, [esi+0]

loc_DCF48:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_DCF98
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_DCF65:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DCF70:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_DCF16
; ---------------------------------------------------------------------------
		align 8

loc_DCF88:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_DCF48
		jmp	short loc_DCF65
; ---------------------------------------------------------------------------
		align 4

loc_DCF98:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,ushort>,ushort>::Grow(int)+75j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE4GrowEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ConCommandBase  const*, unsigned short, bool (*)(ConCommandBase  const* const&, ConCommandBase  const* const&), CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,	unsigned short>, unsigned short>>::NewNode(void)
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv proc near
					; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+8Cp
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+19Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		movzx	eax, word ptr [ebx+14h]
		cmp	ax, 0FFFFh
		jz	short loc_DCFF0
		mov	edx, [ebx+4]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*2]
		movzx	ecx, word ptr [edx+ecx*4+2]
		mov	[ebx+18h], edx
		mov	[ebx+14h], cx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DCFF0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+17j
		movzx	ecx, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	esi, cx
		cmp	esi, edx
		jb	short loc_DD028
		test	edx, edx
		jz	short loc_DD03F
		xor	ecx, ecx
		xor	eax, eax
		cmp	edx, ecx
		jbe	short loc_DD03F
		lea	esi, [esi+0]

loc_DD010:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+8Dj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+CAj	...
		mov	edx, [ebx+4]
		mov	[ebx+16h], ax
		mov	[ebx+18h], edx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_DD028:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+4Cj
		add	ecx, 1
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi
		cmp	edx, ecx
		ja	short loc_DD010

loc_DD03F:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+50j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+58j
		lea	eax, [ebx+4]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIPK14ConCommandBasetEtE4GrowEi	; CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>::Grow(int)
		movzx	eax, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	ecx, ax
		cmp	ecx, edx
		jnb	short loc_DD090
		lea	ecx, [eax+1]
		mov	eax, 0FFFFFFFFh
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi

loc_DD078:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+EDj
		cmp	ecx, edx
		jb	short loc_DD010

loc_DD07C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+E7j
		mov	[ebp+var_C], eax
		mov	dword ptr [esp], offset	aCutlrbtreeOver	; "CUtlRBTree overflow!\n"
		call	Error
		mov	eax, [ebp+var_C]
		jmp	short loc_DD010
; ---------------------------------------------------------------------------

loc_DD090:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)+AEj
		test	edx, edx
		mov	eax, 0FFFFFFFFh
		jz	short loc_DD07C
		xor	ecx, ecx
		xor	eax, eax
		jmp	short loc_DD078
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ConCommandBase  const*, unsigned short, bool (*)(ConCommandBase  const* const&, ConCommandBase  const* const&), CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,	unsigned short>, unsigned short>>::RotateLeft(unsigned short)
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt proc near
					; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+289p
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+717p

var_30		= dword	ptr -30h
var_29		= byte ptr -29h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	al, al
		mov	[ebp+var_29], al
		jz	loc_DD300

loc_DD0C2:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+27Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+471j
		cmp	si, 0FFFFh
		mov	[ebp+var_30], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD0E5
		mov	ecx, [ebx+4]
		movzx	edx, si
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_30], edx
		add	ecx, edx

loc_DD0E5:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+32j
		cmp	[ebp+var_29], 0
		movzx	edi, word ptr [ecx+2]
		jz	loc_DD2C0

loc_DD0F3:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+431j
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		jz	loc_DD2EB

loc_DD100:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+245j
		movzx	ecx, di
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 2
		mov	[ebp+var_1C], ecx
		add	ecx, edx

loc_DD10E:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+257j
		movzx	ecx, word ptr [ecx]
		mov	eax, [ebp+var_30]
		cmp	[ebp+var_29], 0
		mov	[edx+eax+2], cx
		jz	loc_DD280

loc_DD123:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+1EEj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+21Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD134
		mov	eax, [ebp+var_1C]
		add	eax, [ebx+4]

loc_DD134:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+8Cj
		cmp	word ptr [eax],	0FFFFh
		jz	short loc_DD165
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DD360

loc_DD147:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+2CEj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+2FBj
		cmp	di, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD15A
		mov	eax, [ebp+var_1C]
		add	eax, ecx

loc_DD15A:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+B3j
		movzx	eax, word ptr [eax]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+4], si

loc_DD165:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+98j
		cmp	di, 0FFFFh
		jz	short loc_DD19C
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DD3A0

loc_DD178:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+30Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+33Bj
		cmp	si, 0FFFFh
		jz	loc_DD410
		mov	ecx, [ebx+4]
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], ecx
		add	eax, ecx

loc_DD18D:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+37Bj
		movzx	eax, word ptr [eax+4]
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	[ecx+edx+4], ax

loc_DD19C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+C9j
		cmp	si, [ebx+10h]
		jz	loc_DD270
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_DD3E0
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD1C6

loc_DD1C0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+364j
		mov	eax, [ebp+var_30]
		add	eax, [ebx+4]

loc_DD1C6:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+11Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+36Aj
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_DD328

loc_DD1D2:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+4B4j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD1E9

loc_DD1DD:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+2B2j
		movzx	eax, dx
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]

loc_DD1E9:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+13Bj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+2B8j
		cmp	si, [eax]
		jnz	short loc_DD240
		test	cl, cl
		jz	loc_DD420

loc_DD1F6:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+38Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+3BBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD209
		mov	eax, [ebp+var_30]
		add	eax, ecx

loc_DD209:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+162j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4], di

loc_DD214:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+1C7j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+1D4j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	edx, [ebp+var_1C]
		mov	[eax+edx], si
		jz	short loc_DD22F
		mov	eax, [ebx+4]
		mov	ecx, [ebp+var_30]
		mov	[eax+ecx+4], di

loc_DD22F:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+182j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DD240:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+14Cj
		test	cl, cl
		jz	loc_DD460

loc_DD248:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+3CEj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+3FBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD25B
		mov	eax, [ebp+var_30]
		add	eax, ecx

loc_DD25B:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+1B4j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+2], di
		jmp	short loc_DD214
; ---------------------------------------------------------------------------
		align 10h

loc_DD270:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+100j
		mov	[ebx+10h], di
		jmp	short loc_DD214
; ---------------------------------------------------------------------------
		align 10h

loc_DD280:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+7Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD123
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD123
; ---------------------------------------------------------------------------

loc_DD2C0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+4Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DD4A0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		cmp	di, 0FFFFh
		mov	[ebp+var_29], al
		mov	edx, [ebx+4]
		jnz	loc_DD100

loc_DD2EB:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+5Aj
		mov	[ebp+var_1C], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DD10E
; ---------------------------------------------------------------------------
		align 10h

loc_DD300:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+1Cj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DD4E0
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], dl
		jmp	loc_DD0C2
; ---------------------------------------------------------------------------
		align 8

loc_DD328:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+12Cj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_DD520
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_DD1DD
		jmp	loc_DD1E9
; ---------------------------------------------------------------------------
		align 10h

loc_DD360:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+A1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD147
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD147
; ---------------------------------------------------------------------------

loc_DD3A0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+D2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD178
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD178
; ---------------------------------------------------------------------------

loc_DD3E0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+10Fj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DD560

loc_DD3F4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+4E7j
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_DD1C0
		jmp	loc_DD1C6
; ---------------------------------------------------------------------------
		align 10h

loc_DD410:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+DCj
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_20], edx
		jmp	loc_DD18D
; ---------------------------------------------------------------------------

loc_DD420:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+150j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD1F6
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD1F6
; ---------------------------------------------------------------------------

loc_DD460:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD248
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD248
; ---------------------------------------------------------------------------

loc_DD4A0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+22Ej
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], dl
		jmp	loc_DD0F3
; ---------------------------------------------------------------------------
		align 10h

loc_DD4E0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+26Ej
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], cl
		jmp	loc_DD0C2
; ---------------------------------------------------------------------------
		align 10h

loc_DD520:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+29Cj
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_DD1D2
; ---------------------------------------------------------------------------
		align 10h

loc_DD560:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateLeft(ushort)+34Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD3F4
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ConCommandBase  const*, unsigned short, bool (*)(ConCommandBase  const* const&, ConCommandBase  const* const&), CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,	unsigned short>, unsigned short>>::RotateRight(unsigned	short)
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt proc near
					; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+4ECp
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+607p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	al, al
		jz	loc_DD7F0

loc_DD5AF:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+27Bj
		cmp	si, 0FFFFh
		mov	[ebp+var_38], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD5D2
		mov	ecx, [ebx+4]
		movzx	edx, si
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_38], edx
		add	ecx, edx

loc_DD5D2:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+2Fj
		test	al, al
		movzx	edi, word ptr [ecx]
		jz	loc_DD7B0

loc_DD5DD:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+22Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+25Bj
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		jz	loc_DD990
		movzx	eax, di
		lea	ecx, [eax+eax*2]
		shl	ecx, 2
		mov	eax, ecx
		mov	[ebp+var_34], ecx
		add	eax, edx

loc_DD5FA:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+40Cj
		movzx	eax, word ptr [eax+2]
		mov	ecx, [ebp+var_38]
		mov	[edx+ecx], ax
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DD770

loc_DD612:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+1EEj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+21Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD623
		mov	eax, [ebp+var_34]
		add	eax, [ebx+4]

loc_DD623:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+8Bj
		cmp	word ptr [eax+2], 0FFFFh
		jz	short loc_DD656
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DD848

loc_DD637:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+2C6j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+2F3j
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD64A
		mov	eax, [ebp+var_34]
		add	eax, edx

loc_DD64A:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+B3j
		movzx	eax, word ptr [eax+2]
		lea	eax, [eax+eax*2]
		mov	[edx+eax*4+4], si

loc_DD656:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+98j
		cmp	di, 0FFFFh
		jz	short loc_DD68D
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DD890

loc_DD669:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+30Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+33Bj
		cmp	si, 0FFFFh
		jz	loc_DD900
		mov	edx, [ebx+4]
		mov	eax, [ebp+var_38]
		mov	[ebp+var_1C], edx
		add	eax, edx

loc_DD67E:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+37Bj
		movzx	eax, word ptr [eax+4]
		mov	edx, [ebp+var_1C]
		mov	ecx, [ebp+var_34]
		mov	[edx+ecx+4], ax

loc_DD68D:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+CAj
		cmp	si, [ebx+10h]
		jz	loc_DD760
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_DD8D0
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD6B7

loc_DD6B1:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+364j
		mov	eax, [ebp+var_38]
		add	eax, [ebx+4]

loc_DD6B7:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+11Fj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+36Aj
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_DD810

loc_DD6C3:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+47Cj
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD6DA

loc_DD6CE:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+2AAj
		movzx	eax, dx
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]

loc_DD6DA:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+13Cj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+2B0j
		cmp	si, [eax+2]
		jnz	short loc_DD730
		test	cl, cl
		jz	loc_DD910

loc_DD6E8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+38Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+3BBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD6FB
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_DD6FB:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+164j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+2], di

loc_DD707:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+1C6j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+1D4j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	ecx, [ebp+var_34]
		mov	[eax+ecx+2], si
		jz	short loc_DD723
		mov	eax, [ebx+4]
		mov	edx, [ebp+var_38]
		mov	[eax+edx+4], di

loc_DD723:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+186j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DD730:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+14Ej
		test	cl, cl
		jz	loc_DD950

loc_DD738:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+3CEj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+3FBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DD74B
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_DD74B:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+1B4j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4], di
		jmp	short loc_DD707
; ---------------------------------------------------------------------------
		align 10h

loc_DD760:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+101j
		mov	[ebx+10h], di
		jmp	short loc_DD707
; ---------------------------------------------------------------------------
		align 10h

loc_DD770:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+7Cj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD612
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD612
; ---------------------------------------------------------------------------

loc_DD7B0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+47j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD5DD
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD5DD
; ---------------------------------------------------------------------------

loc_DD7F0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+19j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DD9A8

loc_DD804:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+43Fj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DD5AF
; ---------------------------------------------------------------------------

loc_DD810:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+12Dj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_DD9D8
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_DD6CE
		jmp	loc_DD6DA
; ---------------------------------------------------------------------------
		align 4

loc_DD848:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+A1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD637
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD637
; ---------------------------------------------------------------------------
		align 10h

loc_DD890:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+D3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD669
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD669
; ---------------------------------------------------------------------------

loc_DD8D0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+110j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DDA18

loc_DD8E4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+4AFj
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_DD6B1
		jmp	loc_DD6B7
; ---------------------------------------------------------------------------
		align 10h

loc_DD900:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+DDj
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DD67E
; ---------------------------------------------------------------------------

loc_DD910:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+152j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD6E8
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD6E8
; ---------------------------------------------------------------------------

loc_DD950:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DD738
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD738
; ---------------------------------------------------------------------------

loc_DD990:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+54j
		mov	[ebp+var_34], 0BFFF4h
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DD5FA
; ---------------------------------------------------------------------------
		align 8

loc_DD9A8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+26Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD804
; ---------------------------------------------------------------------------
		align 8

loc_DD9D8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+294j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_DD6C3
; ---------------------------------------------------------------------------
		align 8

loc_DDA18:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)+34Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DD8E4
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ConCommandBase  const*, unsigned short, bool (*)(ConCommandBase  const* const&, ConCommandBase  const* const&), CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,	unsigned short>, unsigned short>>::InsertRebalance(unsigned short)
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE15InsertRebalanceEt proc near
					; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+E4p

var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	edi, [ebp+arg_4]

loc_DDA60:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+1BAj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+28Ej ...
		movzx	eax, word ptr [ebx+10h]
		cmp	di, ax
		jz	short loc_DDABD
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_DDDC0

loc_DDA78:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+38Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDA8F
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_DDA8F:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+31j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_DDD80

loc_DDA9B:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+33Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+36Bj
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDAB2
		movzx	esi, si
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_DDAB2:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+54j
		cmp	word ptr [eax+6], 0
		jz	short loc_DDAE0
		movzx	eax, word ptr [ebx+10h]

loc_DDABD:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+17j
		mov	ecx, [ebx+4]
		movzx	eax, ax
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		mov	word ptr [eax+6], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DDAE0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+67j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	loc_DDD10

loc_DDAEF:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+2DBj
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDB06
		mov	esi, [ebx+4]
		movzx	edx, di
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]

loc_DDB06:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+A8j
		movzx	edx, word ptr [edx+4]
		test	al, al
		mov	[ebp+var_1A], dx
		movzx	esi, dx
		jz	loc_DDCE8

loc_DDB19:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+2B3j
		cmp	[ebp+var_1A], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDB2E
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*4]

loc_DDB2E:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+D3j
		movzx	edx, word ptr [edx+4]
		test	al, al
		mov	[ebp+var_1C], dx
		jz	loc_DDD60

loc_DDB3E:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+32Bj
		cmp	[ebp+var_1A], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDB53
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*4]

loc_DDB53:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+F8j
		test	al, al
		movzx	ecx, word ptr [edx+4]
		jz	loc_DDD30

loc_DDB5F:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+301j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+5C4j
		cmp	cx, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDB76
		movzx	ecx, cx
		lea	edx, [ecx+ecx*2]
		mov	ecx, [ebx+4]
		lea	edx, [ecx+edx*4]

loc_DDB76:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+118j
		movzx	ecx, [ebp+var_1A]
		cmp	cx, [edx]
		jnz	loc_DDC10
		test	al, al
		jz	loc_DDEA0

loc_DDB8B:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+46Bj
		cmp	[ebp+var_1C], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDBA4
		movzx	edx, [ebp+var_1C]
		mov	ecx, [ebx+4]
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_DDBA4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+145j
		test	al, al
		movzx	edx, word ptr [edx+2]
		jz	loc_DDE00

loc_DDBB0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+3C4j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+3F4j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDBC7
		mov	ecx, [ebx+4]
		movzx	eax, dx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_DDBC7:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+169j
		cmp	word ptr [eax+6], 0
		jnz	loc_DDEC0

loc_DDBD2:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+208j
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		movzx	edx, dx
		lea	eax, [esi+eax*4]
		mov	word ptr [eax+6], 1
		lea	eax, [edx+edx*2]
		mov	edi, [ebx+4]
		lea	eax, [edi+eax*4]
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	word ptr [eax+6], 0
		movzx	edi, [ebp+var_1C]
		jmp	loc_DDA60
; ---------------------------------------------------------------------------
		align 10h

loc_DDC10:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+12Dj
		test	al, al
		jz	loc_DDDE0

loc_DDC18:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+3ABj
		cmp	[ebp+var_1C], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDC31
		movzx	edx, [ebp+var_1C]
		mov	ecx, [ebx+4]
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_DDC31:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+1D2j
		test	al, al
		movzx	edx, word ptr [edx]
		jz	loc_DDE50

loc_DDC3C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+414j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+444j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDC53
		mov	ecx, [ebx+4]
		movzx	eax, dx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_DDC53:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+1F5j
		cmp	word ptr [eax+6], 0
		jz	loc_DDBD2
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_DE138

loc_DDC6D:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+703j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDC84
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_DDC84:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+226j
		test	dl, dl
		movzx	ecx, word ptr [eax+4]
		jz	loc_DE0E8

loc_DDC90:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+6ACj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+6DCj
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDCA7
		mov	edx, [ebx+4]
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		lea	eax, [edx+eax*4]

loc_DDCA7:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+249j
		cmp	di, [eax]
		jz	loc_DE050
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_DDCB9:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+660j
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	esi, [ebx+4]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	word ptr [edx+6], 0
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase	 const*	const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase	 const*,ushort>,ushort>>::RotateLeft(ushort)
		jmp	loc_DDA60
; ---------------------------------------------------------------------------
		align 8

loc_DDCE8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+C3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DDF80

loc_DDCFC:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+557j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDB19
; ---------------------------------------------------------------------------
		align 10h

loc_DDD10:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+99j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DDFB0

loc_DDD24:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+587j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDAEF
; ---------------------------------------------------------------------------

loc_DDD30:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+109j
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jnz	loc_DDFE0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDB5F
; ---------------------------------------------------------------------------
		align 10h

loc_DDD60:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+E8j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DDF50

loc_DDD74:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+527j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDB3E
; ---------------------------------------------------------------------------

loc_DDD80:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+45j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DDA9B
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DDA9B
; ---------------------------------------------------------------------------

loc_DDDC0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+22j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE020

loc_DDDD4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+5F7j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDA78
; ---------------------------------------------------------------------------

loc_DDDE0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+1C2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE0B8

loc_DDDF4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+68Fj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDC18
; ---------------------------------------------------------------------------

loc_DDE00:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+15Aj
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jz	loc_DDBB0
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_20]
		jmp	loc_DDBB0
; ---------------------------------------------------------------------------
		align 10h

loc_DDE50:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+1E6j
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jz	loc_DDC3C
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_20]
		jmp	loc_DDC3C
; ---------------------------------------------------------------------------
		align 10h

loc_DDEA0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+135j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE240

loc_DDEB4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+817j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDB8B
; ---------------------------------------------------------------------------

loc_DDEC0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+17Cj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_DE218

loc_DDECF:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+7E3j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDEE6
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_DDEE6:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+488j
		test	dl, dl
		movzx	ecx, word ptr [eax+4]
		jz	loc_DE1C8

loc_DDEF2:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+78Cj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+7BCj
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DDF09
		mov	edx, [ebx+4]
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		lea	eax, [edx+eax*4]

loc_DDF09:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+4ABj
		cmp	di, [eax+2]
		jz	loc_DE160
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_DDF1C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+770j
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	esi, [ebx+4]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	word ptr [edx+6], 0
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt ;	CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)
		jmp	loc_DDA60
; ---------------------------------------------------------------------------
		align 10h

loc_DDF50:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+31Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DDD74
; ---------------------------------------------------------------------------
		align 10h

loc_DDF80:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+2A6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DDCFC
; ---------------------------------------------------------------------------
		align 10h

loc_DDFB0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+2CEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DDD24
; ---------------------------------------------------------------------------
		align 10h

loc_DDFE0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+2F4j
		mov	[ebp+var_20], ecx
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ecx, [ebp+var_20]
		jmp	loc_DDB5F
; ---------------------------------------------------------------------------
		align 10h

loc_DE020:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+37Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DDDD4
; ---------------------------------------------------------------------------
		align 10h

loc_DE050:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+25Aj
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt ;	CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::RotateRight(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_DE340

loc_DE06B:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+90Bj
		cmp	[ebp+var_1A], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE080
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_DE080:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+625j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_DE300

loc_DE08C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+8BEj
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+8EBj
		cmp	si, 0FFFFh
		jz	loc_DE39E
		mov	edi, [ebx+4]
		movzx	esi, si
		lea	eax, [esi+esi*2]
		lea	eax, [edi+eax*4]
		mov	edx, eax

loc_DE0A4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+95Bj
		movzx	edx, word ptr [edx+4]
		movzx	edi, [ebp+var_1A]
		mov	[ebp+var_1C], dx
		jmp	loc_DDCB9
; ---------------------------------------------------------------------------
		align 4

loc_DE0B8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+39Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DDDF4
; ---------------------------------------------------------------------------
		align 8

loc_DE0E8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+23Aj
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jz	loc_DDC90
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_20]
		jmp	loc_DDC90
; ---------------------------------------------------------------------------
		align 8

loc_DE138:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+217j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE270

loc_DE14C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+847j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDC6D
; ---------------------------------------------------------------------------
		align 10h

loc_DE160:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+4BDj
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase	 const*	const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase	 const*,ushort>,ushort>>::RotateLeft(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_DE2E0

loc_DE17B:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+8ABj
		cmp	[ebp+var_1A], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE190
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_DE190:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+735j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_DE2A0

loc_DE19C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+85Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+88Bj
		cmp	si, 0FFFFh
		jz	loc_DE38C
		mov	edi, [ebx+4]
		movzx	esi, si
		lea	edx, [esi+esi*2]
		lea	edx, [edi+edx*4]
		mov	eax, edx

loc_DE1B4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+949j
		movzx	edx, word ptr [edx+4]
		movzx	edi, [ebp+var_1A]
		mov	[ebp+var_1C], dx
		jmp	loc_DDF1C
; ---------------------------------------------------------------------------
		align 4

loc_DE1C8:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+49Cj
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jz	loc_DDEF2
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_20]
		jmp	loc_DDEF2
; ---------------------------------------------------------------------------
		align 8

loc_DE218:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+479j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE360

loc_DE22C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+937j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DDECF
; ---------------------------------------------------------------------------
		align 10h

loc_DE240:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+45Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DDEB4
; ---------------------------------------------------------------------------
		align 10h

loc_DE270:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+6F6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE14C
; ---------------------------------------------------------------------------
		align 10h

loc_DE2A0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+746j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DE19C
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE19C
; ---------------------------------------------------------------------------

loc_DE2E0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+725j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE3B0

loc_DE2F4:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+987j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DE17B
; ---------------------------------------------------------------------------

loc_DE300:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+636j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DE08C
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE08C
; ---------------------------------------------------------------------------

loc_DE340:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+615j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE3DC

loc_DE354:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+9B3j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DE06B
; ---------------------------------------------------------------------------

loc_DE360:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+7D6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE22C
; ---------------------------------------------------------------------------

loc_DE38C:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+750j
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, 0BFFF4h
		jmp	loc_DE1B4
; ---------------------------------------------------------------------------

loc_DE39E:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+640j
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, 0BFFF4h
		jmp	loc_DE0A4
; ---------------------------------------------------------------------------

loc_DE3B0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+89Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE2F4
; ---------------------------------------------------------------------------

loc_DE3DC:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)+8FEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE354
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE15InsertRebalanceEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<ConCommandBase  const*, unsigned short, bool (*)(ConCommandBase  const* const&, ConCommandBase  const* const&), CUtlMemory<UtlRBTreeNode_t<ConCommandBase	const*,	unsigned short>, unsigned short>>::Insert(ConCommandBase  const* const&)
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE6InsertES4_ proc near
					; CODE XREF: CCvarUtilities::CvarList(CCommand	const&)+1FDp

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	esi, word ptr [ebx+10h]
		cmp	si, 0FFFFh
		mov	[ebp+var_1A], si
		jnz	short loc_DE453
		jmp	loc_DE5A9
; ---------------------------------------------------------------------------
		align 10h

loc_DE430:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+67j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DE520

loc_DE43D:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+11Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+14Bj
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+edi*4]
		mov	edi, 1
		cmp	ax, 0FFFFh
		jz	short loc_DE496

loc_DE44F:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+84j
		mov	[ebp+var_1A], ax

loc_DE453:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+18j
		movzx	eax, [ebp+var_1A]
		lea	edi, [eax+eax*2]
		mov	eax, [ebx+4]
		lea	esi, ds:0[edi*4]
		add	eax, esi
		add	eax, 8
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jnz	short loc_DE430
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard	variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DE560

loc_DE486:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+15Ej
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+18Bj
		mov	eax, [ebx+4]
		xor	edi, edi
		movzx	eax, word ptr [eax+esi+2]
		cmp	ax, 0FFFFh
		jnz	short loc_DE44F

loc_DE496:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+3Dj
		mov	[ebp+var_28], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)
		movzx	esi, [ebp+var_1A]
		movzx	edx, ax
		mov	ecx, eax
		lea	eax, [edx+edx*2]
		shl	eax, 2
		mov	[ebp+var_20], eax
		add	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	[eax+4], si
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0
		jz	loc_DE5D9
		mov	eax, edi
		mov	esi, [ebp+var_28]
		test	al, al
		mov	eax, [ebx+4]
		jnz	loc_DE5A0
		mov	[eax+esi+2], cx

loc_DE4EA:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+194j
					; CUtlRBTree<ConCommandBase  const*,ushort,bool	(*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+1CDj
		mov	[ebp+var_24], ecx
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE15InsertRebalanceEt ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::InsertRebalance(ushort)
		mov	eax, [ebp+var_20]
		add	word ptr [ebx+12h], 1
		add	eax, [ebx+4]
		mov	ecx, [ebp+var_24]
		cmp	eax, 0FFFFFFF8h
		jz	short loc_DE514
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebx]
		mov	[eax+8], edx

loc_DE514:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+FAj
		add	esp, 2Ch
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DE520:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+27j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DE43D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE43D
; ---------------------------------------------------------------------------

loc_DE560:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+70j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_DE486
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; `guard variable for'CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel,	0FFFFh ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase	 const*	const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE486
; ---------------------------------------------------------------------------

loc_DE5A0:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+CFj
		mov	[eax+esi], cx
		jmp	loc_DE4EA
; ---------------------------------------------------------------------------

loc_DE5A9:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+1Aj
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv ; CUtlRBTree<ConCommandBase  const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::NewNode(void)
		movzx	edx, ax
		mov	ecx, eax
		lea	eax, [edx+edx*2]
		shl	eax, 2
		mov	[ebp+var_20], eax
		add	eax, [ebx+4]
		mov	word ptr [eax+4], 0FFFFh
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0

loc_DE5D9:				; CODE XREF: CUtlRBTree<ConCommandBase	const*,ushort,bool (*)(ConCommandBase  const* const&,ConCommandBase  const* const&),CUtlMemory<UtlRBTreeNode_t<ConCommandBase  const*,ushort>,ushort>>::Insert(ConCommandBase  const* const&)+BFj
		mov	[ebx+10h], cx
		jmp	loc_DE4EA
_ZN10CUtlRBTreeIPK14ConCommandBasetPFbRKS2_S4_E10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE6InsertES4_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Draw_DecalMax(void)
_Z13Draw_DecalMaxv proc	near
		push	ebp
		mov	eax, ds:g_nMaxDecals
		mov	ebp, esp
		pop	ebp
		retn
_Z13Draw_DecalMaxv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Draw_DecalMaterial(int)
_Z18Draw_DecalMateriali	proc near	; CODE XREF: R_DecalGetMaterialAndSize(int,IMaterial *&,float &,float &)+10p

arg_0		= dword	ptr  8

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		js	short loc_DE643
		cmp	edx, dword ptr ds:g_DecalLookup+0Ch
		jge	short loc_DE643
		mov	ecx, dword ptr ds:g_DecalLookup
		mov	edx, [ecx+edx*4]
		test	edx, edx
		js	short loc_DE643
		movzx	ecx, word ptr ds:g_DecalDictionary+8
		cmp	edx, ecx
		jge	short loc_DE643
		mov	ecx, dword ptr ds:g_DecalDictionary+4
		movzx	edx, dx
		lea	edx, [edx+edx*4]
		lea	edx, [ecx+edx*4]
		cmp	edx, 0FFFFFFF4h
		jz	short loc_DE643
		mov	eax, [edx+0Ch]

loc_DE643:				; CODE XREF: Draw_DecalMaterial(int)+Aj
					; Draw_DecalMaterial(int)+12j ...
		pop	ebp
		retn
_Z18Draw_DecalMateriali	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Draw_DecalNameFromIndex(int)
_Z23Draw_DecalNameFromIndexi proc near
		push	ebp
		mov	eax, (offset asc_20E578+4)
		mov	ebp, esp
		pop	ebp
		retn
_Z23Draw_DecalNameFromIndexi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Decal_Shutdown(void)
_Z14Decal_Shutdownv proc near		; CODE XREF: Decal_Init(void)+4j
					; Host_Shutdown(void)+7Dp
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		movzx	esi, word ptr ds:g_DecalDictionary+10h
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	short loc_DE6C6
; ---------------------------------------------------------------------------
		align 10h

loc_DE680:				; CODE XREF: Decal_Shutdown(void)+6Dj
					; Decal_Shutdown(void)+7Dj ...
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE697
		mov	ecx, dword ptr ds:g_DecalDictionary+4
		lea	eax, [ebx+ebx*4]
		lea	eax, [ecx+eax*4]

loc_DE697:				; CODE XREF: Decal_Shutdown(void)+29j
		cmp	word ptr [eax],	0FFFFh
		jz	loc_DE730
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	short loc_DE710

loc_DE6AC:				; CODE XREF: Decal_Shutdown(void)+CBj
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE6C3
		lea	eax, [ebx+ebx*4]
		mov	ebx, dword ptr ds:g_DecalDictionary+4
		lea	eax, [ebx+eax*4]

loc_DE6C3:				; CODE XREF: Decal_Shutdown(void)+55j
		movzx	esi, word ptr [eax]

loc_DE6C6:				; CODE XREF: Decal_Shutdown(void)+17j
		movzx	ebx, si
		test	dl, dl
		mov	edi, ebx
		jnz	short loc_DE680
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_DE680
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE680
; ---------------------------------------------------------------------------
		align 10h

loc_DE710:				; CODE XREF: Decal_Shutdown(void)+4Aj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DE7B0

loc_DE724:				; CODE XREF: Decal_Shutdown(void)+177j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DE6AC
; ---------------------------------------------------------------------------

loc_DE730:				; CODE XREF: Decal_Shutdown(void)+3Bj
		cmp	ebx, 0FFFFh
		jz	short loc_DE776
		nop
		lea	esi, [esi+0]

loc_DE740:				; CODE XREF: Decal_Shutdown(void)+114j
		mov	edx, dword ptr ds:g_DecalDictionary+4
		lea	eax, [edi+edi*4]
		lea	eax, [edx+eax*4]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_DE75B
		mov	[esp], eax
		call	_Z17GL_UnloadMaterialP9IMaterial ; GL_UnloadMaterial(IMaterial *)

loc_DE75B:				; CODE XREF: Decal_Shutdown(void)+F1j
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	g_DecalDictionary
		call	_ZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE11NextInorderEt ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)
		movzx	edi, ax
		cmp	edi, 0FFFFh
		jnz	short loc_DE740

loc_DE776:				; CODE XREF: Decal_Shutdown(void)+D6j
		mov	dword ptr [esp], offset	g_DecalLookup
		mov	dword ptr ds:g_DecalLookup+0Ch,	0
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, dword ptr ds:g_DecalLookup
		mov	dword ptr [esp], offset	g_DecalDictionary
		mov	dword ptr ds:g_DecalLookup+10h,	eax
		call	_ZN10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE9RemoveAllEv ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void	*,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DE7B0:				; CODE XREF: Decal_Shutdown(void)+BEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE724
_Z14Decal_Shutdownv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Decal_Init(void)
_Z10Decal_Initv	proc near		; CODE XREF: Host_Init(bool)+39Ep
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z14Decal_Shutdownv ; Decal_Shutdown(void)
_Z10Decal_Initv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDefOps<void *>::LessFunc(void * const&, void	* const&)
_ZN7CDefOpsIPvE8LessFuncERKS0_S3_ proc near
					; DATA XREF: _GLOBAL__sub_I_g_DecalDictionary+66o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		pop	ebp
		mov	ecx, [eax]
		cmp	[edx], ecx
		setb	al
		retn
_ZN7CDefOpsIPvE8LessFuncERKS0_S3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<void *, DecalEntry, unsigned short>::Node_t, unsigned short, CUtlMap<void *, DecalEntry, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *, DecalEntry,	unsigned short>::Node_t, unsigned short>, unsigned short>>::NextInorder(unsigned short)const
_ZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE11NextInorderEt proc near
					; CODE XREF: Decal_Shutdown(void)+106p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, 0FFFFFFFFh
		sub	esp, 2Ch
		movzx	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		movzx	edx, di
		cmp	edx, [esi+8]
		jnb	short loc_DE833
		cmp	di, [esi+16h]
		jbe	short loc_DE840

loc_DE833:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+1Bj
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+CBj ...
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DE840:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+21j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_DEB20

loc_DE84D:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+324j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+354j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE861
		mov	ecx, [esi+4]
		lea	eax, [edx+edx*4]
		lea	eax, [ecx+eax*4]

loc_DE861:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+46j
		cmp	di, [eax]
		jz	loc_DEBD0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	loc_DE9A0

loc_DE879:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+1B1j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+404j
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE88D
		mov	ebx, [esi+4]
		lea	ecx, [edx+edx*4]
		lea	ecx, [ebx+ecx*4]

loc_DE88D:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+72j
		cmp	word ptr [ecx+2], 0FFFFh
		jz	loc_DE9D0
		test	al, al
		jz	loc_DEBA0

loc_DE8A0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+3B1j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+466j
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE8B4
		mov	edi, [esi+4]
		lea	ecx, [edx+edx*4]
		lea	ecx, [edi+ecx*4]

loc_DE8B4:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+99j
		movzx	ebx, word ptr [ecx+2]
		jmp	short loc_DE906
; ---------------------------------------------------------------------------
		align 10h

loc_DE8C0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+F8j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+108j ...
		cmp	bx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE8D7
		mov	ecx, [esi+4]
		movzx	eax, bx
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*4]

loc_DE8D7:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+B9j
		cmp	word ptr [eax],	0FFFFh
		jz	loc_DE833
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_DE950

loc_DE8EC:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+157j
		cmp	bx, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE903
		movzx	ebx, bx
		lea	edx, [ebx+ebx*4]
		mov	ebx, [esi+4]
		lea	edx, [ebx+edx*4]

loc_DE903:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+E5j
		movzx	ebx, word ptr [edx]

loc_DE906:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+A8j
		test	al, al
		jnz	short loc_DE8C0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_DE8C0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DE8C0
; ---------------------------------------------------------------------------
		align 10h

loc_DE950:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+DAj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_DE970

loc_DE960:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+187j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	short loc_DE8EC
; ---------------------------------------------------------------------------
		align 10h

loc_DE970:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+14Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	short loc_DE960
; ---------------------------------------------------------------------------
		align 10h

loc_DE9A0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+63j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	loc_DEBE0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DE879
; ---------------------------------------------------------------------------
		align 10h

loc_DE9D0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+82j
		test	al, al
		jz	loc_DEC20

loc_DE9D8:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+42Dj
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+49Fj
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DE9EC
		lea	ecx, [edx+edx*4]
		mov	edx, [esi+4]
		lea	ecx, [edx+ecx*4]

loc_DE9EC:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+1D1j
		movzx	ebx, word ptr [ecx+4]
		jmp	short loc_DEA5F
; ---------------------------------------------------------------------------
		align 8

loc_DE9F8:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+251j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+26Aj
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DEA0F
		mov	ecx, [esi+4]
		movzx	edx, di
		lea	edx, [edx+edx*4]
		lea	edx, [ecx+edx*4]

loc_DEA0F:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+1F1j
		test	al, al
		movzx	edx, word ptr [edx+4]
		jz	short loc_DEA80

loc_DEA17:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+284j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+2B0j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DEA2E
		movzx	edx, dx
		lea	eax, [edx+edx*4]
		mov	edx, [esi+4]
		lea	eax, [edx+eax*4]

loc_DEA2E:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+210j
		cmp	di, [eax+2]
		jnz	loc_DE833
		cmp	bx, 0FFFFh
		jz	loc_DEBD0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	short loc_DEAC8

loc_DEA4D:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+2D3j
		mov	edi, [esi+4]
		movzx	edx, bx
		lea	edx, [edx+edx*4]
		lea	edx, [edi+edx*4]
		mov	edi, ebx
		movzx	ebx, word ptr [edx+4]

loc_DEA5F:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+1E0j
		test	al, al
		jnz	short loc_DE9F8
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	short loc_DEAF0

loc_DEA73:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+307j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DE9F8
; ---------------------------------------------------------------------------
		align 10h

loc_DEA80:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+205j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_DEA17
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_DEA17
; ---------------------------------------------------------------------------
		align 4

loc_DEAC8:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+23Bj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_DEB70

loc_DEADC:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+387j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DEA4D
; ---------------------------------------------------------------------------
		align 10h

loc_DEAF0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+261j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DEA73
; ---------------------------------------------------------------------------
		align 10h

loc_DEB20:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+37j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	loc_DE84D
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_DE84D
; ---------------------------------------------------------------------------
		align 10h

loc_DEB70:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+2C6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		call	__cxa_guard_release
		jmp	loc_DEADC
; ---------------------------------------------------------------------------
		align 10h

loc_DEBA0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+8Aj
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	loc_DEC42
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DE8A0
; ---------------------------------------------------------------------------
		align 10h

loc_DEBD0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+54j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+22Cj
		mov	ebx, 0FFFFFFFFh
		jmp	loc_DE833
; ---------------------------------------------------------------------------
		align 10h

loc_DEBE0:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+1A4j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_DE879
; ---------------------------------------------------------------------------
		align 10h

loc_DEC20:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+1C2j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_DEC7B
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_DE9D8
; ---------------------------------------------------------------------------

loc_DEC42:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+3A4j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_DE8A0
; ---------------------------------------------------------------------------

loc_DEC7B:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::NextInorder(ushort)+424j
		mov	[ebp+var_1C], edx
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_1C]
		jmp	loc_DE9D8
_ZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE11NextInorderEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<void *, DecalEntry, unsigned short>::Node_t, unsigned short, CUtlMap<void *, DecalEntry, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *, DecalEntry,	unsigned short>::Node_t, unsigned short>, unsigned short>>::RemoveAll(void)
_ZN10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE9RemoveAllEv proc near
					; CODE XREF: Decal_Shutdown(void)+13Dp
					; CUtlMap<void *,DecalEntry,ushort>::~CUtlMap()+15p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		movzx	ecx, word ptr [esi+16h]
		cmp	cx, 0FFFFh
		jz	short loc_DED24
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_DED18
		xor	edx, edx
		xor	edi, edi
		lea	esi, [esi+0]

loc_DECE8:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+51j
		cmp	edi, eax
		mov	ebx, edi
		jnb	short loc_DECF3
		cmp	di, cx
		jbe	short loc_DED30

loc_DECF3:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+2Cj
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+9Aj
		cmp	bx, cx
		jz	short loc_DED18
		mov	eax, [esi+8]
		add	ebx, 1
		movzx	ebx, bx
		cmp	ebx, eax
		jnb	short loc_DED18
		add	edi, 1
		add	edx, 14h
		cmp	edi, 0FFFFh
		jnz	short loc_DECE8
		nop
		lea	esi, [esi+0]

loc_DED18:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+1Bj
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+36j ...
		mov	word ptr [esi+10h], 0FFFFh
		mov	word ptr [esi+12h], 0

loc_DED24:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+14j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DED30:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+31j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_DED60

loc_DED39:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+B4j
					; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+E0j
		mov	ecx, [esi+4]
		add	ecx, edx
		cmp	bx, [ecx]
		jz	short loc_DED56
		movzx	eax, word ptr [esi+14h]
		mov	[ecx+2], ax
		mov	eax, [esi+4]
		mov	[eax+edx], bx
		mov	[esi+14h], bx

loc_DED56:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+81j
		movzx	ecx, word ptr [esi+16h]
		jmp	short loc_DECF3
; ---------------------------------------------------------------------------
		align 10h

loc_DED60:				; CODE XREF: CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+77j
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_DED39
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+2, 0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel+4, 0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE5LinksEtE10s_Sentinel ; `guard variable for'CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void *,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	short loc_DED39
_ZN10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *, DecalEntry, unsigned short>::Node_t, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPv10DecalEntrytE6Node_tEtEtE5PurgeEv proc near
					; CODE XREF: CUtlMap<void *,DecalEntry,ushort>::~CUtlMap()+23p
					; CUtlMap<void *,DecalEntry,ushort>::~CUtlMap()+3Aj

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_DEDDC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_DEDD5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_DEDD5:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_DEDDC:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPv10DecalEntrytE6Node_tEtEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMap<void *, DecalEntry, unsigned short>::~CUtlMap()
_ZN7CUtlMapIPv10DecalEntrytED2Ev proc near ; DATA XREF:	_GLOBAL__sub_I_g_DecalDictionary+41o

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	[esp], ebx
		lea	esi, [ebx+4]
		call	_ZN10CUtlRBTreeIN7CUtlMapIPv10DecalEntrytE6Node_tEtNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_tEtEE9RemoveAllEv ; CUtlRBTree<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort,CUtlMap<void	*,DecalEntry,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)
		mov	word ptr [ebx+14h], 0FFFFh
		mov	[esp], esi
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPv10DecalEntrytE6Node_tEtEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>::Purge(void)
		mov	word ptr [ebx+16h], 0FFFFh
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_0], esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapIPv10DecalEntrytE6Node_tEtEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CUtlMap<void *,DecalEntry,ushort>::Node_t,ushort>,ushort>::Purge(void)
_ZN7CUtlMapIPv10DecalEntrytED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; R_DoDecalSHClip(CDecalVert *,	CDecalVert *, decal_t *, int, Vector  const&)
_Z15R_DoDecalSHClipP10CDecalVertS0_P7decal_tiRK6Vector proc near
					; CODE XREF: R_DecalVertsClip(CDecalVert *,decal_t *,msurface2_t *,IMaterial *)+7Ap
					; CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+2B6p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	edx, offset g_DecalClipVerts
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_C]
		mov	eax, [ebp+arg_0]
		test	ecx, ecx
		cmovnz	edx, [ebp+arg_4]
		test	ebx, ebx
		mov	[ebp+arg_4], edx
		jle	loc_DF6BC
		mov	ecx, [ebp+arg_C]
		lea	edi, [eax+10h]
		mov	[ebp+var_2C], 0
		lea	esi, [eax+18h]
		mov	edx, offset _ZL17g_DecalClipVerts2 ; g_DecalClipVerts2
		xor	ebx, ebx
		fld1
		sub	ecx, 1
		shl	ecx, 5
		add	ecx, eax
		jmp	short loc_DEEA9
; ---------------------------------------------------------------------------
		align 10h

loc_DEE80:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+83j
		fld	dword ptr [ecx+14h]
		fxch	st(1)
		fcomi	st, st(1)
		ja	loc_DEFB0
		fstp	st(1)
		fstp	st(1)

loc_DEE91:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+138j
					; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector  const&)+177j	...
		add	ebx, 1
		add	eax, 20h
		add	edi, 20h
		add	esi, 20h
		cmp	ebx, [ebp+arg_C]
		jz	loc_DF030
		mov	ecx, [ebp+var_30]

loc_DEEA9:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+49j
		fld	dword ptr [eax+14h]
		fxch	st(1)
		mov	[ebp+var_30], eax
		fcomi	st, st(1)
		jbe	short loc_DEE80
		fld	dword ptr [ecx+14h]
		fxch	st(1)
		fcomi	st, st(1)
		ja	loc_DEF70
		fld	st
		fsub	st, st(2)
		fxch	st(3)
		fsubrp	st(2), st
		fxch	st(2)
		fdivrp	st(1), st
		fld	dword ptr [ecx]
		fld	dword ptr [eax]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	dword ptr [ecx+4]
		fld	dword ptr [eax+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	dword ptr [ecx+8]
		fld	dword ptr [eax+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		fld	dword ptr [ecx+18h]
		fld	dword ptr [eax+18h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+18h]
		fld	dword ptr [ecx+1Ch]
		fld	dword ptr [eax+1Ch]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+1Ch]
		fld	dword ptr [ecx+10h]
		fld	dword ptr [eax+10h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+10h]
		fld	dword ptr [ecx+14h]
		fld	dword ptr [eax+14h]
		fsub	st, st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx+14h]
		mov	ecx, [eax]
		mov	[edx+20h], ecx
		mov	ecx, [eax+4]
		mov	[edx+24h], ecx
		mov	ecx, [eax+8]
		mov	[edx+28h], ecx
		mov	ecx, [eax+0Ch]
		mov	[edx+2Ch], ecx
		mov	ecx, [edi]
		mov	[edx+30h], ecx
		mov	ecx, [edi+4]
		mov	[edx+34h], ecx
		mov	ecx, [esi]
		mov	[edx+38h], ecx
		mov	ecx, [esi+4]
		add	[ebp+var_2C], 2
		mov	[edx+3Ch], ecx
		add	edx, 40h
		jmp	loc_DEE91
; ---------------------------------------------------------------------------
		align 10h

loc_DEF70:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+8Cj
		fstp	st(1)
		fstp	st(1)
		mov	ecx, [eax]
		add	[ebp+var_2C], 1
		mov	[edx], ecx
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	ecx, [eax+8]
		mov	[edx+8], ecx
		mov	ecx, [eax+0Ch]
		mov	[edx+0Ch], ecx
		mov	ecx, [edi]
		mov	[edx+10h], ecx
		mov	ecx, [edi+4]
		mov	[edx+14h], ecx
		mov	ecx, [esi]
		mov	[edx+18h], ecx
		mov	ecx, [esi+4]
		mov	[edx+1Ch], ecx
		add	edx, 20h
		jmp	loc_DEE91
; ---------------------------------------------------------------------------
		align 10h

loc_DEFB0:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+57j
		add	[ebp+var_2C], 1
		fld	st
		fsub	st, st(3)
		fxch	st(3)
		fsubp	st(2), st
		fxch	st(2)
		fdivrp	st(1), st
		fld	dword ptr [eax]
		fld	dword ptr [ecx]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	dword ptr [eax+4]
		fld	dword ptr [ecx+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [ecx+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		fld	dword ptr [eax+18h]
		fld	dword ptr [ecx+18h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+18h]
		fld	dword ptr [eax+1Ch]
		fld	dword ptr [ecx+1Ch]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+1Ch]
		fld	dword ptr [eax+10h]
		fld	dword ptr [ecx+10h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+10h]
		fld	dword ptr [eax+14h]
		fld	dword ptr [ecx+14h]
		fsub	st, st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx+14h]
		add	edx, 20h
		jmp	loc_DEE91
; ---------------------------------------------------------------------------
		align 10h

loc_DF030:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+70j
		fstp	st
		mov	edx, [ebp+var_2C]
		test	edx, edx
		jz	loc_DF6BC
		mov	eax, [ebp+var_2C]
		xor	esi, esi
		xor	ecx, ecx
		fldz
		shl	eax, 5
		lea	ebx, (g_DecalClipVerts+5E0h)[eax]
		mov	eax, offset g_DecalClipVerts
		jmp	short loc_DF0BE
; ---------------------------------------------------------------------------
		align 10h

loc_DF060:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+29Ej
		fld	dword ptr [ebx+10h]
		fcomi	st, st(2)
		jbe	loc_DF498
		fstp	st
		mov	ebx, dword ptr ds:_ZL17g_DecalClipVerts2[edi] ;	g_DecalClipVerts2
		fstp	dword ptr [eax+10h]
		add	esi, 1
		mov	[eax], ebx
		mov	ebx, [edx+4]
		mov	[eax+4], ebx
		mov	ebx, [edx+8]
		mov	[eax+8], ebx
		mov	ebx, [edx+0Ch]
		mov	[eax+0Ch], ebx
		mov	ebx, [edx+14h]
		mov	[eax+14h], ebx
		mov	ebx, [edx+18h]
		mov	[eax+18h], ebx
		mov	ebx, [edx+1Ch]
		mov	[eax+1Ch], ebx
		add	eax, 20h
		jmp	short loc_DF0B0
; ---------------------------------------------------------------------------
		align 8

loc_DF0A8:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+2A5j
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_DF0B0:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+272j
					; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector  const&)+70Cj
		add	ecx, 1
		cmp	ecx, [ebp+var_2C]
		jz	loc_DF160

loc_DF0BC:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+321j
		mov	ebx, edx

loc_DF0BE:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+224j
		mov	edi, ecx
		shl	edi, 5
		lea	edx, _ZL17g_DecalClipVerts2[edi] ; g_DecalClipVerts2
		fld	dword ptr [edx+10h]
		fcomi	st, st(1)
		ja	short loc_DF060
		fld	dword ptr [ebx+10h]
		fcomi	st, st(2)
		jbe	short loc_DF0A8
		fld	st(1)
		add	ecx, 1
		add	esi, 1
		fsub	st, st(1)
		fdivr	st, st(2)
		fld	dword ptr ds:_ZL17g_DecalClipVerts2[edi] ; g_DecalClipVerts2
		fld	dword ptr [ebx]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [eax]
		fld	dword ptr [edx+4]
		fld	dword ptr [ebx+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [eax+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [eax+8]
		fld	dword ptr [edx+18h]
		fld	dword ptr [ebx+18h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [eax+18h]
		fld	dword ptr [edx+1Ch]
		fld	dword ptr [ebx+1Ch]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [eax+1Ch]
		fxch	st(1)
		fsub	st, st(2)
		fmul	st, st(1)
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [eax+10h]
		fld	dword ptr [edx+14h]
		fld	dword ptr [ebx+14h]
		fsub	st, st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [eax+14h]
		add	eax, 20h
		cmp	ecx, [ebp+var_2C]
		jnz	loc_DF0BC
		fstp	st
		jmp	short loc_DF162
; ---------------------------------------------------------------------------
		align 10h

loc_DF160:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+286j
		fstp	st

loc_DF162:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+329j
		test	esi, esi
		jz	loc_DF6BC
		mov	eax, esi
		mov	[ebp+var_2C], 0
		mov	edx, offset _ZL17g_DecalClipVerts2 ; g_DecalClipVerts2
		fld1
		shl	eax, 5
		xor	ecx, ecx
		lea	ebx, _ZL12vec4_invalid_17[eax] ; vec4_invalid
		jmp	short loc_DF1AE
; ---------------------------------------------------------------------------
		align 10h

loc_DF190:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+390j
		fld	dword ptr [ebx+10h]
		fxch	st(1)
		fcomi	st, st(1)
		ja	loc_DF590
		fstp	st(1)
		fstp	st(1)

loc_DF1A1:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+752j
					; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector  const&)+7D9j
		add	ecx, 1
		cmp	ecx, esi
		jz	loc_DF288

loc_DF1AC:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+44Aj
		mov	ebx, eax

loc_DF1AE:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+355j
		mov	edi, ecx
		shl	edi, 5
		lea	eax, g_DecalClipVerts[edi]
		fld	dword ptr [eax+10h]
		fxch	st(1)
		fcomi	st, st(1)
		jbe	short loc_DF190
		fld	dword ptr [ebx+10h]
		fxch	st(1)
		fcomi	st, st(1)
		ja	loc_DF548
		add	[ebp+var_2C], 2
		fld	st(2)
		add	ecx, 1
		fsub	st, st(2)
		fld	st(1)
		fsub	st, st(3)
		fdiv	st, st(1)
		fld	dword ptr ds:g_DecalClipVerts[edi]
		fld	dword ptr [ebx]
		fld	st(1)
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	dword ptr [ebx+4]
		fld	dword ptr [eax+4]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	dword ptr [ebx+8]
		fld	dword ptr [eax+8]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		fld	dword ptr [ebx+18h]
		fld	dword ptr [eax+18h]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	dword ptr [edx+18h]
		fld	dword ptr [ebx+1Ch]
		fld	dword ptr [eax+1Ch]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	dword ptr [edx+1Ch]
		fxch	st(2)
		fmul	st, st(1)
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [edx+10h]
		fld	dword ptr [ebx+14h]
		fld	dword ptr [eax+14h]
		fld	st
		mov	ebx, [eax+0Ch]
		fsub	st, st(2)
		fmulp	st(5), st
		fxch	st(4)
		mov	[edx+2Ch], ebx
		faddp	st(1), st
		fstp	dword ptr [edx+14h]
		fstp	dword ptr [edx+20h]
		fld	dword ptr [eax+4]
		fstp	dword ptr [edx+24h]
		fld	dword ptr [eax+8]
		fstp	dword ptr [edx+28h]
		fxch	st(2)
		fstp	dword ptr [edx+30h]
		fstp	dword ptr [edx+34h]
		fld	dword ptr [eax+18h]
		fstp	dword ptr [edx+38h]
		fld	dword ptr [eax+1Ch]
		fstp	dword ptr [edx+3Ch]
		add	edx, 40h
		cmp	ecx, esi
		jnz	loc_DF1AC
		fstp	st
		jmp	short loc_DF28A
; ---------------------------------------------------------------------------
		align 8

loc_DF288:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+376j
		fstp	st

loc_DF28A:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+452j
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	loc_DF6BC
		mov	eax, [ebp+var_2C]
		xor	ebx, ebx
		xor	ecx, ecx
		mov	edx, [ebp+arg_4]
		fldz
		shl	eax, 5
		lea	esi, (g_DecalClipVerts+5E0h)[eax]
		jmp	short loc_DF316
; ---------------------------------------------------------------------------
		align 10h

loc_DF2B0:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+4FBj
		fxch	st(1)
		fcomi	st, st(2)
		jbe	loc_DF610
		fstp	st
		fstp	st
		mov	esi, dword ptr ds:_ZL17g_DecalClipVerts2[edi] ;	g_DecalClipVerts2
		add	ebx, 1
		mov	[edx], esi
		mov	esi, [eax+4]
		mov	[edx+4], esi
		mov	esi, [eax+8]
		mov	[edx+8], esi
		mov	esi, [eax+0Ch]
		mov	[edx+0Ch], esi
		mov	esi, [eax+10h]
		mov	[edx+10h], esi
		mov	esi, [eax+14h]
		mov	[edx+14h], esi
		mov	esi, [eax+18h]
		mov	[edx+18h], esi
		mov	esi, [eax+1Ch]
		mov	[edx+1Ch], esi
		add	edx, 20h
		jmp	short loc_DF308
; ---------------------------------------------------------------------------
		align 10h

loc_DF300:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+501j
		fstp	st
		fstp	st
		lea	esi, [esi+0]

loc_DF308:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+4C6j
					; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector  const&)+887j
		add	ecx, 1
		cmp	ecx, [ebp+var_2C]
		jz	loc_DF3C0

loc_DF314:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+57Dj
		mov	esi, eax

loc_DF316:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+47Aj
		mov	edi, ecx
		shl	edi, 5
		lea	eax, _ZL17g_DecalClipVerts2[edi] ; g_DecalClipVerts2
		fld	dword ptr [eax+14h]
		fld	dword ptr [esi+14h]
		fxch	st(1)
		fcomi	st, st(2)
		ja	short loc_DF2B0
		fxch	st(1)
		fcomi	st, st(2)
		jbe	short loc_DF300
		fsubr	st, st(1)
		add	ecx, 1
		add	ebx, 1
		fdivp	st(1), st
		fld	dword ptr ds:_ZL17g_DecalClipVerts2[edi] ; g_DecalClipVerts2
		fld	dword ptr [esi]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	dword ptr [eax+4]
		fld	dword ptr [esi+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [esi+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		fld	dword ptr [eax+18h]
		fld	dword ptr [esi+18h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+18h]
		fld	dword ptr [eax+1Ch]
		fld	dword ptr [esi+1Ch]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+1Ch]
		fld	dword ptr [eax+10h]
		fld	dword ptr [esi+10h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+10h]
		fld	dword ptr [eax+14h]
		fld	dword ptr [esi+14h]
		fsub	st, st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx+14h]
		add	edx, 20h
		cmp	ecx, [ebp+var_2C]
		jnz	loc_DF314
		fstp	st
		jmp	short loc_DF3C2
; ---------------------------------------------------------------------------
		align 10h

loc_DF3C0:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+4DEj
		fstp	st

loc_DF3C2:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+585j
		mov	edx, [ebp+arg_8]
		test	ebx, ebx
		mov	[edx+4Eh], bx
		jz	loc_DF6D1
		mov	esi, [ebp+arg_4]
		xor	edx, edx
		mov	ecx, [ebp+arg_10]
		fld	ds:flt_1EC10C
		mov	eax, esi
		lea	esi, [esi+0]

loc_DF3E8:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+5DEj
		fld	dword ptr [ecx]
		add	edx, 1
		fmul	st, st(1)
		fadd	dword ptr [eax]
		fstp	dword ptr [eax]
		fld	dword ptr [ecx+4]
		fmul	st, st(1)
		fadd	dword ptr [eax+4]
		fstp	dword ptr [eax+4]
		fld	dword ptr [ecx+8]
		fmul	st, st(1)
		fadd	dword ptr [eax+8]
		fstp	dword ptr [eax+8]
		add	eax, 20h
		cmp	edx, ebx
		jl	short loc_DF3E8
		fstp	st
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+0Ch]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+1Ch]
		test	al, al
		jz	short loc_DF486
		mov	edx, [ebp+arg_8]
		lea	ecx, [ebp+var_28]
		mov	eax, [edx+0Ch]
		mov	edx, [eax]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+20h]
		mov	edx, [ebp+arg_8]
		lea	ecx, [ebp+var_20]
		mov	eax, [edx+0Ch]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+24h]
		xor	eax, eax
		fld	[ebp+var_28]
		fld	[ebp+var_20]
		fld	[ebp+var_24]
		fld	[ebp+var_1C]
		lea	esi, [esi+0]

loc_DF460:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+64Cj
		fld	dword ptr [esi+10h]
		add	eax, 1
		fmul	st, st(3)
		fadd	st, st(4)
		fstp	dword ptr [esi+10h]
		fld	dword ptr [esi+14h]
		fmul	st, st(1)
		fadd	st, st(2)
		fstp	dword ptr [esi+14h]
		add	esi, 20h
		cmp	eax, ebx
		jl	short loc_DF460
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_DF486:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+5F2j
					; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector  const&)+89Cj	...
		mov	eax, [ebp+arg_4]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_DF498:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+235j
		fld	st
		add	esi, 2
		fsub	st, st(2)
		fdivr	st, st(1)
		fld	dword ptr ds:_ZL17g_DecalClipVerts2[edi] ; g_DecalClipVerts2
		fld	dword ptr [ebx]
		fld	st(1)
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fstp	dword ptr [eax]
		fld	dword ptr [edx+4]
		fld	dword ptr [ebx+4]
		fld	st(1)
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fstp	dword ptr [eax+4]
		fld	dword ptr [ebx+8]
		fld	dword ptr [edx+8]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fstp	dword ptr [eax+8]
		fld	dword ptr [ebx+18h]
		fld	dword ptr [edx+18h]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fstp	dword ptr [eax+18h]
		fld	dword ptr [ebx+1Ch]
		fld	dword ptr [edx+1Ch]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fstp	dword ptr [eax+1Ch]
		fld	st(4)
		fsub	st, st(4)
		fmul	st, st(3)
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [eax+10h]
		fld	dword ptr [ebx+14h]
		fld	dword ptr [edx+14h]
		fld	st
		mov	ebx, [edx+0Ch]
		fsub	st, st(2)
		fmulp	st(4), st
		fxch	st(3)
		mov	[eax+2Ch], ebx
		faddp	st(1), st
		fstp	dword ptr [eax+14h]
		fstp	dword ptr [eax+20h]
		fxch	st(1)
		fstp	dword ptr [eax+24h]
		fld	dword ptr [edx+8]
		fstp	dword ptr [eax+28h]
		fxch	st(1)
		fstp	dword ptr [eax+30h]
		fstp	dword ptr [eax+34h]
		fld	dword ptr [edx+18h]
		fstp	dword ptr [eax+38h]
		fld	dword ptr [edx+1Ch]
		fstp	dword ptr [eax+3Ch]
		add	eax, 40h
		jmp	loc_DF0B0
; ---------------------------------------------------------------------------
		align 8

loc_DF548:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+399j
		fstp	st(1)
		fxch	st(1)
		mov	ebx, dword ptr ds:g_DecalClipVerts[edi]
		fstp	dword ptr [edx+10h]
		add	[ebp+var_2C], 1
		mov	[edx], ebx
		mov	ebx, [eax+4]
		mov	[edx+4], ebx
		mov	ebx, [eax+8]
		mov	[edx+8], ebx
		mov	ebx, [eax+0Ch]
		mov	[edx+0Ch], ebx
		mov	ebx, [eax+14h]
		mov	[edx+14h], ebx
		mov	ebx, [eax+18h]
		mov	[edx+18h], ebx
		mov	ebx, [eax+1Ch]
		mov	[edx+1Ch], ebx
		add	edx, 20h
		jmp	loc_DF1A1
; ---------------------------------------------------------------------------
		align 10h

loc_DF590:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+367j
		fxch	st(1)
		add	[ebp+var_2C], 1
		fsub	st, st(2)
		fld	st(1)
		fsub	st, st(3)
		fdiv	st, st(1)
		fld	dword ptr ds:g_DecalClipVerts[edi]
		fld	dword ptr [ebx]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	dword ptr [eax+4]
		fld	dword ptr [ebx+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [ebx+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		fld	dword ptr [eax+18h]
		fld	dword ptr [ebx+18h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+18h]
		fld	dword ptr [eax+1Ch]
		fld	dword ptr [ebx+1Ch]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+1Ch]
		fmul	st(1), st
		fxch	st(1)
		faddp	st(3), st
		fxch	st(2)
		fstp	dword ptr [edx+10h]
		fld	dword ptr [eax+14h]
		fld	dword ptr [ebx+14h]
		fsub	st, st(1)
		fmulp	st(3), st
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [edx+14h]
		add	edx, 20h
		jmp	loc_DF1A1
; ---------------------------------------------------------------------------
		align 10h

loc_DF610:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+484j
		fsubr	st(1), st
		add	ebx, 2
		fdivrp	st(1), st
		fld	dword ptr [esi]
		fld	dword ptr ds:_ZL17g_DecalClipVerts2[edi] ; g_DecalClipVerts2
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx]
		fld	dword ptr [esi+4]
		fld	dword ptr [eax+4]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		fld	dword ptr [esi+8]
		fld	dword ptr [eax+8]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+8]
		fld	dword ptr [esi+18h]
		fld	dword ptr [eax+18h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+18h]
		fld	dword ptr [esi+1Ch]
		fld	dword ptr [eax+1Ch]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+1Ch]
		fld	dword ptr [esi+10h]
		fld	dword ptr [eax+10h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edx+10h]
		fld	dword ptr [esi+14h]
		fld	dword ptr [eax+14h]
		fsub	st, st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edx+14h]
		mov	esi, dword ptr ds:_ZL17g_DecalClipVerts2[edi] ;	g_DecalClipVerts2
		mov	[edx+20h], esi
		mov	esi, [eax+4]
		mov	[edx+24h], esi
		mov	esi, [eax+8]
		mov	[edx+28h], esi
		mov	esi, [eax+0Ch]
		mov	[edx+2Ch], esi
		mov	esi, [eax+10h]
		mov	[edx+30h], esi
		mov	esi, [eax+14h]
		mov	[edx+34h], esi
		mov	esi, [eax+18h]
		mov	[edx+38h], esi
		mov	esi, [eax+1Ch]
		mov	[edx+3Ch], esi
		add	edx, 40h
		jmp	loc_DF308
; ---------------------------------------------------------------------------

loc_DF6BC:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+22j
					; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector  const&)+207j	...
		mov	edx, [ebp+arg_8]
		mov	[ebp+arg_4], 0
		mov	word ptr [edx+4Eh], 0
		jmp	loc_DF486
; ---------------------------------------------------------------------------

loc_DF6D1:				; CODE XREF: R_DoDecalSHClip(CDecalVert	*,CDecalVert *,decal_t *,int,Vector  const&)+59Bj
		mov	[ebp+arg_4], 0
		jmp	loc_DF486
_Z15R_DoDecalSHClipP10CDecalVertS0_P7decal_tiRK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; R_SetupDecalVertsForMSurface(decal_t *, msurface2_t *, Vector	*, CDecalVert *)
_Z28R_SetupDecalVertsForMSurfaceP7decal_tP11msurface2_tP6VectorP10CDecalVert proc near
					; CODE XREF: R_DecalVertsClip(CDecalVert *,decal_t *,msurface2_t *,IMaterial *)+53p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 18h
		mov	edx, [ebp+arg_4]
		mov	ebx, dword ptr ds:host_state+4
		mov	ecx, [ebp+arg_0]
		fld	ds:flt_1EBAA4
		mov	edi, [edx+8]
		mov	esi, [ebx+8Ch]
		fld	dword ptr [ecx+2Ch]
		cmp	byte ptr [edx+3], 0
		fsubr	st, st(1)
		fxch	st(1)
		mov	eax, [ebp+arg_8]
		lea	edi, [esi+edi*2]
		movzx	esi, byte ptr [edx+3]
		fsub	dword ptr [ecx+30h]
		mov	[ebp+var_10], esi
		jz	loc_DF7C7
		fld	dword ptr [eax]
		xor	ecx, ecx
		fld	dword ptr [eax+4]
		fstp	[ebp+var_14]
		fld	dword ptr [eax+8]
		fstp	[ebp+var_18]
		fld	dword ptr [eax+0Ch]
		fstp	[ebp+var_1C]
		fld	dword ptr [eax+10h]
		fstp	[ebp+var_20]
		fld	dword ptr [eax+14h]
		mov	eax, [ebp+arg_C]
		fstp	[ebp+var_24]
		lea	esi, [eax+18h]
		jmp	short loc_DF756
; ---------------------------------------------------------------------------
		align 10h

loc_DF750:				; CODE XREF: R_SetupDecalVertsForMSurface(decal_t *,msurface2_t	*,Vector *,CDecalVert *)+DDj
		mov	ebx, dword ptr ds:host_state+4

loc_DF756:				; CODE XREF: R_SetupDecalVertsForMSurface(decal_t *,msurface2_t	*,Vector *,CDecalVert *)+6Dj
		movzx	edx, word ptr [edi+ecx*2]
		add	ecx, 1
		lea	edx, [edx+edx*2]
		shl	edx, 2
		add	edx, [ebx+20h]
		fld	dword ptr [edx]
		fst	dword ptr [eax]
		fld	dword ptr [edx+4]
		fst	dword ptr [eax+4]
		fld	dword ptr [edx+8]
		mov	edx, eax
		fst	dword ptr [eax+8]
		sub	edx, [ebp+arg_C]
		fld	[ebp+var_14]
		fmul	st, st(2)
		fld	st(4)
		fmul	st, st(4)
		faddp	st(1), st
		fld	[ebp+var_18]
		fmul	st, st(2)
		faddp	st(1), st
		fadd	st, st(6)
		fstp	dword ptr [eax+10h]
		fxch	st(1)
		fmul	[ebp+var_20]
		fxch	st(2)
		fmul	[ebp+var_1C]
		faddp	st(2), st
		fmul	[ebp+var_24]
		faddp	st(1), st
		fadd	st, st(2)
		fstp	dword ptr [eax+14h]
		add	eax, 20h
		cmp	ecx, [ebp+var_10]
		mov	dword ptr [edx+esi], 0
		mov	dword ptr [edx+esi+4], 0
		jnz	short loc_DF750
		fstp	st
		fstp	st
		fstp	st
		jmp	short loc_DF7D0
; ---------------------------------------------------------------------------

loc_DF7C7:				; CODE XREF: R_SetupDecalVertsForMSurface(decal_t *,msurface2_t	*,Vector *,CDecalVert *)+3Fj
		fstp	st
		fstp	st
		nop
		lea	esi, [esi+0]

loc_DF7D0:				; CODE XREF: R_SetupDecalVertsForMSurface(decal_t *,msurface2_t	*,Vector *,CDecalVert *)+E5j
		add	esp, 18h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z28R_SetupDecalVertsForMSurfaceP7decal_tP11msurface2_tP6VectorP10CDecalVert endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; R_DecalComputeBasis(Vector  const&, Vector  const*, Vector*)
_Z19R_DecalComputeBasisRK6VectorPS0_PS_	proc near
					; CODE XREF: R_SetupDecalTextureSpaceBasis(decal_t *,Vector &,IMaterial	*,Vector*,float	*)+2Cp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		fld	dword ptr [ecx]
		fst	dword ptr [eax+18h]
		fld	dword ptr [ecx+4]
		test	edx, edx
		fst	dword ptr [eax+1Ch]
		fld	dword ptr [ecx+8]
		fst	dword ptr [eax+20h]
		jz	short loc_DF864
		fld	dword ptr [edx+4]
		fmul	st, st(1)
		fld	dword ptr [edx+8]
		fmul	st, st(3)
		fsubp	st(1), st
		fst	dword ptr [eax+0Ch]
		fld	dword ptr [edx+8]
		fmul	st, st(4)
		fld	dword ptr [edx]
		fmul	st, st(3)
		fsubp	st(1), st
		fst	dword ptr [eax+10h]
		fld	dword ptr [edx]
		fmul	st, st(4)
		fld	dword ptr [edx+4]
		fmul	st, st(6)
		fsubp	st(1), st
		fst	dword ptr [eax+14h]
		fld	st(1)
		fmul	st, st(2)
		fstp	[ebp+var_C]
		fld	st(2)
		fmul	st, st(3)
		fadd	[ebp+var_C]
		fstp	[ebp+var_C]
		fld	st
		fmul	st, st(1)
		fst	[ebp+var_10]
		fld	[ebp+var_C]
		faddp	st(1), st
		fld	ds:dbl_1EBDB0
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_DF9C0
		fstp	st
		fstp	st
		fstp	st

loc_DF864:				; CODE XREF: R_DecalComputeBasis(Vector	 const&,Vector	const*,Vector*)+22j
		fld	dword ptr [ecx+8]
		fabs
		fld	ds:flt_1F591C
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_DF970
		fld	st
		xor	edx, edx
		mov	dword ptr [eax+14h], 0BF800000h
		fmul	st, st(3)
		mov	[eax+0Ch], edx
		mov	[eax+10h], edx
		mov	[ebp+var_C], edx
		fld	st(2)
		fchs
		fld	st(3)
		fmulp	st(3), st
		fmul	st(3), st
		fld	st(4)
		fmul	st, st(5)
		fsub	st(4), st
		fld	st(2)
		fmul	st, st(3)
		fstp	[ebp+var_10]
		fldz
		fld	st(5)
		fmul	st, st(6)
		fstp	[ebp+var_14]

loc_DF8B1:				; CODE XREF: R_DecalComputeBasis(Vector	 const&,Vector	const*,Vector*)+1D3j
		fld	st(2)
		movss	xmm4, ds:dword_1EBD40
		fmul	st, st(3)
		faddp	st(2), st
		fld	ds:flt_1EBD04
		fadd	st(2), st
		fxch	st(2)
		fadd	[ebp+var_C]
		fstp	[ebp+var_18]
		mov	edx, [ebp+var_18]
		movd	xmm1, edx
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		movss	[ebp+var_18], xmm0
		fld	[ebp+var_18]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [eax]
		fxch	st(6)
		fmul	st, st(2)
		fstp	dword ptr [eax+4]
		fxch	st(5)
		fmulp	st(1), st
		fstp	dword ptr [eax+8]
		fld	st(1)
		fmul	st, st(2)
		fadd	[ebp+var_14]
		faddp	st(4), st
		fxch	st(3)
		fadd	[ebp+var_10]
		fstp	[ebp+var_18]
		mov	edx, [ebp+var_18]
		movd	xmm3, edx
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_18], xmm0
		fld	[ebp+var_18]
		fmul	st(3), st
		fxch	st(3)
		fstp	dword ptr [eax+0Ch]
		fmul	st, st(2)
		fstp	dword ptr [eax+10h]
		fmulp	st(1), st
		fstp	dword ptr [eax+14h]
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DF970:				; CODE XREF: R_DecalComputeBasis(Vector	 const&,Vector	const*,Vector*)+95j
		fld	st
		xor	edx, edx
		mov	dword ptr [eax], 3F800000h
		fchs
		mov	[eax+4], edx
		fld	st(2)
		mov	[eax+8], edx
		fmul	st, st(3)
		mov	[ebp+var_10], edx
		fst	[ebp+var_14]
		fxch	st(2)
		fmul	st, st(1)
		fsubp	st(2), st
		fld	st(2)
		fmul	st, st(4)
		fld	st(1)
		fmulp	st(5), st
		fld	st(4)
		fmul	st, st(5)
		fstp	[ebp+var_C]
		fchs
		fldz
		fld	st(1)
		fmul	st, st(2)
		fxch	st(1)
		fxch	st(3)
		fxch	st(4)
		fxch	st(2)
		fxch	st(6)
		jmp	loc_DF8B1
; ---------------------------------------------------------------------------
		align 10h

loc_DF9C0:				; CODE XREF: R_DecalComputeBasis(Vector	 const&,Vector	const*,Vector*)+78j
		fld	st
		movss	xmm4, ds:dword_1EBD40
		fmul	st, st(5)
		fld	st(2)
		fmul	st, st(5)
		fsubp	st(1), st
		fld	st(3)
		fmulp	st(5), st
		fld	st(1)
		fmul	st, st(7)
		fsubp	st(5), st
		fxch	st(6)
		fmul	st, st(2)
		fxch	st(5)
		fmul	st, st(3)
		fsubp	st(5), st
		fld	st(5)
		fmul	st, st(6)
		fld	st(4)
		fmul	st, st(5)
		fstp	[ebp+var_1C]
		fld	st(5)
		fmul	st, st(6)
		fstp	[ebp+var_14]
		fadd	[ebp+var_1C]
		fld	ds:flt_1EBD04
		fadd	st(1), st
		fxch	st(1)
		fadd	[ebp+var_14]
		fstp	[ebp+var_18]
		mov	edx, [ebp+var_18]
		movd	xmm1, edx
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		movss	[ebp+var_18], xmm0
		fld	[ebp+var_18]
		fmul	st(7), st
		fxch	st(7)
		fstp	dword ptr [eax]
		fxch	st(4)
		fmul	st, st(6)
		fstp	dword ptr [eax+4]
		fxch	st(4)
		fmulp	st(5), st
		fxch	st(4)
		fstp	dword ptr [eax+8]
		fxch	st(1)
		fadd	[ebp+var_C]
		fadd	[ebp+var_10]
		fstp	[ebp+var_18]
		mov	edx, [ebp+var_18]
		movd	xmm3, edx
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_18], xmm0
		fld	[ebp+var_18]
		fmul	st(1), st
		fxch	st(1)
		fstp	dword ptr [eax+0Ch]
		fmul	st(2), st
		fxch	st(2)
		fstp	dword ptr [eax+10h]
		fmulp	st(1), st
		fstp	dword ptr [eax+14h]
		leave
		retn
_Z19R_DecalComputeBasisRK6VectorPS0_PS_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; R_SetupDecalTextureSpaceBasis(decal_t	*, Vector &, IMaterial *, Vector*, float *)
_Z29R_SetupDecalTextureSpaceBasisP7decal_tR6VectorP9IMaterialPS1_Pf proc near
					; CODE XREF: R_SetupDecalClip(CDecalVert *&,decal_t *,Vector &,IMaterial *,Vector*,float *)+2Ap

var_38		= dword	ptr -38h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_C]
		mov	esi, [ebp+arg_8]
		test	byte ptr [edi+54h], 80h
		lea	edx, [edi+20h]
		mov	[esp+8], ebx
		cmovnz	eax, edx
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z19R_DecalComputeBasisRK6VectorPS0_PS_	; R_DecalComputeBasis(Vector  const&,Vector  const*,Vector*)
		test	byte ptr [edi+55h], 10h
		jz	loc_DFB90
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+10h]
		lea	edx, [eax+3Fh]
		test	eax, eax
		cmovns	edx, eax
		mov	eax, [esi]
		mov	[esp], esi
		sar	edx, 6
		mov	[ebp+var_38], edx
		call	dword ptr [eax+14h]
		mov	edx, [ebp+var_38]
		lea	ecx, [eax+3Fh]
		test	eax, eax
		cmovs	eax, ecx
		sar	eax, 6
		mov	[ebp+var_1C], edx
		cmp	edx, eax
		fild	[ebp+var_1C]
		mov	[ebp+var_1C], eax
		setle	al
		fild	[ebp+var_1C]
		test	al, al
		mov	eax, [esi]
		fcmove	st, st(1)
		fstp	st(1)
		fld	dword ptr [edi+34h]
		mov	[esp], esi
		fstp	[ebp+var_20]
		fstp	[ebp+var_38]
		call	dword ptr [eax+10h]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_10]
		fild	[ebp+var_1C]
		fdivr	[ebp+var_20]
		fstp	dword ptr [eax]
		mov	eax, [esi]
		fld	dword ptr [edi+34h]
		mov	[esp], esi
		fstp	[ebp+var_20]
		call	dword ptr [eax+14h]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_10]
		fild	[ebp+var_1C]
		fld	[ebp+var_20]
		fdivrp	st(1), st
		fst	dword ptr [eax+4]
		fld1
		fld	[ebp+var_38]
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_DFBD0
		mov	eax, [ebp+arg_10]
		fld	st
		fmul	dword ptr [eax]
		fst	dword ptr [eax]
		fxch	st(1)
		fmulp	st(2), st
		fxch	st(1)
		fstp	dword ptr [eax+4]
		jmp	short loc_DFBD6
; ---------------------------------------------------------------------------
		align 10h

loc_DFB90:				; CODE XREF: R_SetupDecalTextureSpaceBasis(decal_t *,Vector &,IMaterial	*,Vector*,float	*)+35j
		mov	eax, [esi]
		fld	dword ptr [edi+34h]
		mov	[esp], esi
		fstp	[ebp+var_20]
		call	dword ptr [eax+10h]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_10]
		fild	[ebp+var_1C]
		fdivr	[ebp+var_20]
		fstp	dword ptr [eax]
		mov	eax, [esi]
		fld	dword ptr [edi+34h]
		mov	[esp], esi
		fstp	[ebp+var_20]
		call	dword ptr [eax+14h]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_10]
		fild	[ebp+var_1C]
		fdivr	[ebp+var_20]
		fstp	dword ptr [eax+4]
		jmp	short loc_DFBD4
; ---------------------------------------------------------------------------
		align 10h

loc_DFBD0:				; CODE XREF: R_SetupDecalTextureSpaceBasis(decal_t *,Vector &,IMaterial	*,Vector*,float	*)+C5j
		fstp	st
		fstp	st

loc_DFBD4:				; CODE XREF: R_SetupDecalTextureSpaceBasis(decal_t *,Vector &,IMaterial	*,Vector*,float	*)+119j
		fld	dword ptr [eax]

loc_DFBD6:				; CODE XREF: R_SetupDecalTextureSpaceBasis(decal_t *,Vector &,IMaterial	*,Vector*,float	*)+D9j
		fld	dword ptr [ebx]
		fmul	st, st(1)
		mov	eax, [ebp+arg_10]
		fstp	dword ptr [ebx]
		fld	dword ptr [ebx+4]
		fmul	st, st(1)
		fstp	dword ptr [ebx+4]
		fmul	dword ptr [ebx+8]
		fstp	dword ptr [ebx+8]
		fld	dword ptr [eax+4]
		fld	dword ptr [ebx+0Ch]
		fmul	st, st(1)
		fstp	dword ptr [ebx+0Ch]
		fld	dword ptr [ebx+10h]
		fmul	st, st(1)
		fstp	dword ptr [ebx+10h]
		fmul	dword ptr [ebx+14h]
		fstp	dword ptr [ebx+14h]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z29R_SetupDecalTextureSpaceBasisP7decal_tR6VectorP9IMaterialPS1_Pf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; R_SetupDecalClip(CDecalVert *&, decal_t *, Vector &, IMaterial *, Vector*, float *)
_Z16R_SetupDecalClipRP10CDecalVertP7decal_tR6VectorP9IMaterialPS4_Pf proc near
					; CODE XREF: R_DecalVertsClip(CDecalVert *,decal_t *,msurface2_t *,IMaterial *)+3Bp
					; CDispInfo::NotifyAddDecal(decal_t *,float)+15Ep

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	eax, [ebp+arg_14]
		mov	ebx, [ebp+arg_10]
		mov	esi, [ebp+arg_4]
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+0Ch], ebx
		mov	[esp], esi
		mov	[esp+8], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+4], eax
		call	_Z29R_SetupDecalTextureSpaceBasisP7decal_tR6VectorP9IMaterialPS1_Pf ; R_SetupDecalTextureSpaceBasis(decal_t *,Vector &,IMaterial *,Vector*,float *)
		fld	dword ptr [esi+14h]
		fld	dword ptr [esi+18h]
		fld	dword ptr [esi+1Ch]
		fld	dword ptr [ebx+4]
		fmul	st, st(2)
		fld	dword ptr [ebx]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ebx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [esi+2Ch]
		fxch	st(1)
		fmul	dword ptr [ebx+10h]
		fxch	st(2)
		fmul	dword ptr [ebx+0Ch]
		faddp	st(2), st
		fmul	dword ptr [ebx+14h]
		faddp	st(1), st
		fstp	dword ptr [esi+30h]
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z16R_SetupDecalClipRP10CDecalVertP7decal_tR6VectorP9IMaterialPS4_Pf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; R_DecalVertsClip(CDecalVert *, decal_t *, msurface2_t	*, IMaterial *)
_Z16R_DecalVertsClipP10CDecalVertP7decal_tP11msurface2_tP9IMaterial proc near

var_44		= byte ptr -44h
var_20		= byte ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		lea	eax, [ebp+var_20]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_4], edi
		lea	edi, [ebp+var_44]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[esp+10h], edi
		mov	[esp+0Ch], eax
		mov	eax, [ebx+4]
		mov	[esp+4], esi
		mov	[esp+8], eax
		lea	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z16R_SetupDecalClipRP10CDecalVertP7decal_tR6VectorP9IMaterialPS4_Pf ; R_SetupDecalClip(CDecalVert *&,decal_t *,Vector &,IMaterial *,Vector*,float *)
		mov	[esp+8], edi
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	dword ptr [esp+0Ch], offset g_DecalClipVerts
		call	_Z28R_SetupDecalVertsForMSurfaceP7decal_tP11msurface2_tP6VectorP10CDecalVert ; R_SetupDecalVertsForMSurface(decal_t *,msurface2_t *,Vector *,CDecalVert	*)
		mov	eax, [ebx+4]
		mov	[esp+10h], eax
		mov	eax, [ebx]
		mov	[esp+8], esi
		mov	dword ptr [esp], offset	g_DecalClipVerts
		shr	eax, 18h
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		call	_Z15R_DoDecalSHClipP10CDecalVertS0_P7decal_tiRK6Vector ; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector	 const&)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z16R_DecalVertsClipP10CDecalVertP7decal_tP11msurface2_tP9IMaterial endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::CDemoFile(void)
_ZN9CDemoFileC2Ev proc near		; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+55p
					; CHLTVDemoRecorder::CHLTVDemoRecorder(void)+1Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+534h], 0
		mov	byte ptr [eax+538h], 1
		mov	byte ptr [eax+539h], 0
		pop	ebp
		retn
_ZN9CDemoFileC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteSequenceInfo(int,	char arg, int)
_ZN9CDemoFile17WriteSequenceInfoEii proc near
					; CODE XREF: CHLTVDemoRecorder::WriteMessages(uchar,bf_write &)+A3p
					; CReplayDemoRecorder::WriteMessages(uchar,bf_write &)+A3p

var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edx, dword ptr [ebp+arg]
		mov	[ebp+var_C], ebx
		mov	edi, [ebp+arg_8]
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	loc_DFE40
		mov	[ebp+var_20], edx
		mov	[ebp+var_2C], edx
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		mov	edx, [ebp+var_2C]
		test	al, al
		jz	short loc_DFDBD
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jz	loc_DFE98
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	short loc_DFDAF
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]

loc_DFDAF:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+59j
					; CDemoFile::WriteSequenceInfo(int,int)+173j
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_DFDBD:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+43j
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	loc_DFE64

loc_DFDCD:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+12Ej
		mov	[ebp+var_1C], edi
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	loc_DFE88
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jz	loc_DFEB0
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	short loc_DFE22
		movzx	eax, byte ptr [ebp+var_1C+3]
		mov	byte ptr [ebp+var_20], al
		movzx	eax, byte ptr [ebp+var_1C+2]
		mov	byte ptr [ebp+var_20+1], al
		movzx	eax, byte ptr [ebp+var_1C+1]
		mov	byte ptr [ebp+var_20+2], al
		movzx	eax, byte ptr [ebp+var_1C]
		mov	byte ptr [ebp+var_20+3], al
		mov	eax, [ebp+var_20]
		mov	[edx], eax
		mov	eax, [ebx+10h]

loc_DFE22:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+CCj
					; CDemoFile::WriteSequenceInfo(int,int)+18Bj
		add	eax, 4
		mov	[ebx+10h], eax
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_0], ebx
		mov	edi, [ebp+var_4]
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
; ---------------------------------------------------------------------------
		align 10h

loc_DFE40:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+22j
		mov	[esp], ebx	; int
		mov	[esp+8], edx	; arg
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jz	loc_DFDCD

loc_DFE64:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+97j
		mov	[ebp+arg_8], edi
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_0], ebx
		mov	edi, [ebp+var_4]
		mov	dword ptr [ebp+arg], (offset aD_1+1)
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
; ---------------------------------------------------------------------------
		align 8

loc_DFE88:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+B2j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_DFE98:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+4Cj
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		mov	[ecx+eax], edx
		mov	eax, [ebx+10h]
		jmp	loc_DFDAF
; ---------------------------------------------------------------------------
		align 10h

loc_DFEB0:				; CODE XREF: CDemoFile::WriteSequenceInfo(int,int)+BFj
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		mov	[edx+eax], edi
		mov	eax, [ebx+10h]
		jmp	loc_DFE22
_ZN9CDemoFile17WriteSequenceInfoEii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::ReadSequenceInfo(int &, int &)
_ZN9CDemoFile16ReadSequenceInfoERiS0_ proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+2DAp

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	esi, [ebp+arg_0]
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	short loc_DFF40
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_E0010
		mov	edx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, edx
		jz	loc_E0020
		sub	eax, [ebx+20h]
		lea	ecx, [ebp+var_10]
		add	eax, [ebx]
		cmovz	eax, ecx
		mov	ecx, [ebp+var_10]
		mov	[ebp+var_C], ecx
		movzx	ecx, byte ptr [eax+3]
		mov	byte ptr [ebp+var_C], cl
		movzx	ecx, byte ptr [eax+2]
		mov	byte ptr [ebp+var_C+1],	cl
		movzx	ecx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_C+2],	cl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_C+3],	al
		mov	eax, [ebp+var_C]

loc_DFF2D:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+167j
		add	edx, 4
		mov	[ebx+0Ch], edx
		mov	[ebp+var_10], eax
		jmp	short loc_DFF61
; ---------------------------------------------------------------------------
		align 10h

loc_DFF40:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+15j
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	eax, [ebp+var_10]

loc_DFF61:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+76j
					; CDemoFile::ReadSequenceInfo(int &,int	&)+159j
		mov	edx, [ebp+arg_4]
		mov	[edx], eax
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	short loc_DFFE0
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		xor	edx, edx
		test	al, al
		jz	short loc_DFFCC
		mov	ecx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, ecx
		jz	loc_E0030
		sub	eax, [ebx+20h]
		lea	edx, [ebp+var_C]
		add	eax, [ebx]
		cmovz	eax, edx
		mov	edx, [ebp+var_C]
		mov	[ebp+var_10], edx
		movzx	edx, byte ptr [eax+3]
		mov	byte ptr [ebp+var_10], dl
		movzx	edx, byte ptr [eax+2]
		mov	byte ptr [ebp+var_10+1], dl
		movzx	edx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_10+2], dl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_10+3], al
		mov	edx, [ebp+var_10]

loc_DFFC6:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+177j
		add	ecx, 4
		mov	[ebx+0Ch], ecx

loc_DFFCC:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+C6j
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_DFFE0:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+B0j
		lea	eax, [ebp+var_C]
		mov	[esp], ebx
		mov	[ebp+var_C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E0010:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+29j
		mov	[ebp+var_10], 0
		xor	eax, eax
		jmp	loc_DFF61
; ---------------------------------------------------------------------------
		align 10h

loc_E0020:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+38j
		sub	eax, [ebx+20h]
		add	eax, [ebx]
		mov	eax, [eax]
		jmp	loc_DFF2D
; ---------------------------------------------------------------------------
		align 10h

loc_E0030:				; CODE XREF: CDemoFile::ReadSequenceInfo(int &,int &)+D1j
		sub	eax, [ebx+20h]
		add	eax, [ebx]
		mov	edx, [eax]
		jmp	short loc_DFFC6
_ZN9CDemoFile16ReadSequenceInfoERiS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::WriteCmdInfo(democmdinfo_t	&)
_ZN9CDemoFile12WriteCmdInfoER13democmdinfo_t proc near
					; CODE XREF: CHLTVDemoRecorder::WriteMessages(uchar,bf_write &)+8Ap
					; CReplayDemoRecorder::WriteMessages(uchar,bf_write &)+8Ap

src		= byte ptr -54h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ecx, 13h
		mov	ebp, esp
		sub	esp, 68h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+src]
		mov	[ebp+var_4], edi
		lea	edi, [ebp+src]
		rep movsd
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+8], 4Ch ; n
		mov	eax, [eax+534h]
		mov	[esp], eax	; int
		call	_ZN10CUtlBuffer3PutEPKvi ; CUtlBuffer::Put(void	 const*,int)
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CDemoFile12WriteCmdInfoER13democmdinfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__ReadCmdInfo(int, void *dest)
_ZN9CDemoFile11ReadCmdInfoER13democmdinfo_t proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+2C4p

arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+dest]
		mov	dword ptr [esp+8], 4Ch ; n
		mov	[esp+4], eax	; dest
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+534h]
		mov	[esp], eax	; int
		call	_ZN10CUtlBuffer3GetEPvi	; CUtlBuffer::Get(void *,int)
		leave
		retn
_ZN9CDemoFile11ReadCmdInfoER13democmdinfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteCmdHeader(int, int, char arg)
_ZN9CDemoFile14WriteCmdHeaderEhi proc near
					; CODE XREF: CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+48p
					; CDemoFile::WriteStringTables(bf_write	*,int)+4Fp ...

var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, dword ptr ds:dbg_demofile+1Ch
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	edi, dword ptr [ebp+arg]
		movzx	ecx, byte ptr [ebp+arg_4]
		mov	edx, [eax+30h]
		test	edx, edx
		jnz	loc_E0210

loc_E00E9:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+163j
		mov	ebx, [esi+534h]
		movzx	edx, cl
		mov	[ebp+var_2C], edx
		test	byte ptr [ebx+15h], 1
		jnz	loc_E01F0
		mov	[ebp+var_30], cl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		movzx	ecx, [ebp+var_30]
		test	al, al
		jnz	loc_E0240

loc_E011E:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+147j
					; CDemoFile::WriteCmdHeader(uchar,int)+197j
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	short loc_E01A8
		mov	[ebp+var_20], edi
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_E0189
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jz	loc_E0230
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	short loc_E017B
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]

loc_E017B:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+95j
					; CDemoFile::WriteCmdHeader(uchar,int)+17Bj
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_E0189:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+7Fj
		mov	eax, dword ptr ds:dbg_demofile+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jnz	short loc_E01C8

loc_E0195:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+106j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E01A8:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+68j
		mov	[esp+8], edi	; arg
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		mov	eax, dword ptr ds:dbg_demofile+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jz	short loc_E0195

loc_E01C8:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+D3j
		mov	edx, [ebp+var_2C]
		mov	[ebp+arg_4], edi
		mov	[ebp+arg_0], offset aTickICmdS ; "tick %i, cmd %s \n"
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	eax, ds:_ZZN9CDemoFile14WriteCmdHeaderEhiE7cmdname[edx*4] ; CDemoFile::WriteCmdHeader(uchar,int)::cmdname
		mov	dword ptr [ebp+arg], eax
		mov	esp, ebp
		pop	ebp
		jmp	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
; ---------------------------------------------------------------------------

loc_E01F0:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+39j
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+4], (offset aSU+3) ; format
		mov	[esp], ebx	; int
		mov	[esp+8], edx	; arg
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		jmp	loc_E011E
; ---------------------------------------------------------------------------
		align 10h

loc_E0210:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+23j
		mov	[ebp+var_30], cl
		mov	dword ptr [esp], offset	asc_20791C ; "---------------------------------------"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		movzx	ecx, [ebp+var_30]
		jmp	loc_E00E9
; ---------------------------------------------------------------------------
		align 10h

loc_E0230:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+88j
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		mov	[edx+eax], edi
		mov	eax, [ebx+10h]
		jmp	loc_E017B
; ---------------------------------------------------------------------------

loc_E0240:				; CODE XREF: CDemoFile::WriteCmdHeader(uchar,int)+58j
		mov	eax, [ebx+10h]
		mov	edx, [ebx]
		sub	eax, [ebx+20h]
		mov	[edx+eax], cl
		add	dword ptr [ebx+10h], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)
		jmp	loc_E011E
_ZN9CDemoFile14WriteCmdHeaderEhi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::ReadCmdHeader(unsigned char &, int	&)
_ZN9CDemoFile13ReadCmdHeaderERhRi proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+ABp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	short loc_E02E0
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_E0368
		mov	edx, [ebx+0Ch]
		mov	ecx, [ebx]
		mov	eax, edx
		add	edx, 1
		sub	eax, [ebx+20h]
		movzx	eax, byte ptr [ecx+eax]
		mov	byte ptr [ebp+var_1C], al
		mov	[ebx+0Ch], edx
		mov	[edi], al
		mov	ebx, [esi+534h]
		test	ebx, ebx
		jnz	short loc_E030B
		lea	esi, [esi+0]

loc_E02C0:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+A9j
					; CDemoFile::ReadCmdHeader(uchar &,int &)+AFj
		mov	dword ptr [esp], offset	aMissingEndTagI	; "Missing end tag in demo file.\n"
		call	ConDMsg
		mov	byte ptr [edi],	7
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E02E0:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+1Fj
		lea	eax, [ebp+var_1C]
		mov	byte ptr [ebp+var_1C], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aSU+3)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		movzx	eax, byte ptr [ebp+var_1C]

loc_E02FF:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+10Ej
		mov	[edi], al
		mov	ebx, [esi+534h]
		test	ebx, ebx
		jz	short loc_E02C0

loc_E030B:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+5Aj
		cmp	byte ptr [ebx+14h], 0
		jnz	short loc_E02C0
		lea	edx, [eax-1]
		cmp	dl, 7
		ja	short loc_E0370
		test	byte ptr [ebx+15h], 1
		jnz	short loc_E0398
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		xor	edx, edx
		test	al, al
		jz	short loc_E0351
		mov	ecx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, ecx
		jnz	loc_E03C0
		sub	eax, [ebx+20h]
		add	eax, [ebx]
		mov	edx, [eax]

loc_E034B:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+18Fj
		add	ecx, 4
		mov	[ebx+0Ch], ecx

loc_E0351:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+D3j
		mov	eax, [ebp+arg_8]
		mov	[eax], edx

loc_E0356:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+15Ej
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E0368:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+33j
		mov	byte ptr [ebp+var_1C], 0
		xor	eax, eax
		jmp	short loc_E02FF
; ---------------------------------------------------------------------------

loc_E0370:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+B7j
		movzx	eax, al
		mov	dword ptr [esp], offset	aUnexepctedComm	; "Unexepcted command token [%d] in .demo "...
		mov	[esp+4], eax
		call	ConDMsg
		mov	byte ptr [edi],	7
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E0398:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+BDj
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		jmp	short loc_E0356
; ---------------------------------------------------------------------------

loc_E03C0:				; CODE XREF: CDemoFile::ReadCmdHeader(uchar &,int &)+DEj
		sub	eax, [ebx+20h]
		lea	edx, [ebp+var_20]
		add	eax, [ebx]
		cmovz	eax, edx
		mov	edx, [ebp+var_20]
		mov	[ebp+var_1C], edx
		movzx	edx, byte ptr [eax+3]
		mov	byte ptr [ebp+var_1C], dl
		movzx	edx, byte ptr [eax+2]
		mov	byte ptr [ebp+var_1C+1], dl
		movzx	edx, byte ptr [eax+1]
		mov	byte ptr [ebp+var_1C+2], dl
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_1C+3], al
		mov	edx, [ebp+var_1C]
		jmp	loc_E034B
_ZN9CDemoFile13ReadCmdHeaderERhRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::GetCurPos(bool)
_ZN9CDemoFile9GetCurPosEb proc near	; CODE XREF: CHLTVDemoRecorder::WriteMessages(uchar,bf_write &)+E0p
					; CHLTVDemoRecorder::WriteSignonData(void)+28p	...

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		movzx	ecx, [ebp+arg_4]
		mov	edx, [eax+534h]
		xor	eax, eax
		test	edx, edx
		jz	short loc_E0423
		cmp	byte ptr [edx+14h], 0
		jnz	short loc_E0423
		test	cl, cl
		jnz	short loc_E0428
		mov	eax, [edx+10h]

loc_E0423:				; CODE XREF: CDemoFile::GetCurPos(bool)+14j
					; CDemoFile::GetCurPos(bool)+1Aj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_E0428:				; CODE XREF: CDemoFile::GetCurPos(bool)+1Ej
		mov	eax, [edx+0Ch]
		pop	ebp
		retn
_ZN9CDemoFile9GetCurPosEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::SeekTo(int, bool)
_ZN9CDemoFile6SeekToEib	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	[ebp+arg_4], 0
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [ebp+arg_8], 0
		mov	[ebp+arg_8], edx
		mov	eax, [eax+534h]
		mov	[ebp+arg_0], eax
		jnz	short loc_E0460
		pop	ebp
		jmp	_ZN10CUtlBuffer7SeekPutENS_10SeekType_tEi ; CUtlBuffer::SeekPut(CUtlBuffer::SeekType_t,int)
; ---------------------------------------------------------------------------
		align 10h

loc_E0460:				; CODE XREF: CDemoFile::SeekTo(int,bool)+20j
		pop	ebp
		jmp	_ZN10CUtlBuffer7SeekGetENS_10SeekType_tEi ; CUtlBuffer::SeekGet(CUtlBuffer::SeekType_t,int)
_ZN9CDemoFile6SeekToEib	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__ReadRawData(int, void *dest, int)
_ZN9CDemoFile11ReadRawDataEPci proc near
					; CODE XREF: CDemoFile::ReadStringTables(bf_read *)+26p
					; CDemoFile::ReadStringTables(bf_read *)+43p ...

var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
arg		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+dest]
		mov	[ebp+var_C], ebx
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	short loc_E04F0
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_E0580
		mov	edx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, edx
		jz	loc_E0590
		sub	eax, [ebx+20h]
		lea	ecx, [ebp+var_20]
		add	eax, [ebx]
		cmovz	eax, ecx
		movzx	ecx, byte ptr [eax+3]
		mov	byte ptr [ebp+arg], cl
		movzx	ecx, byte ptr [eax+2]
		mov	byte ptr [ebp+arg+1], cl
		movzx	ecx, byte ptr [eax+1]
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+arg+2], cl
		mov	byte ptr [ebp+arg+3], al
		mov	eax, [ebp+arg]

loc_E04E1:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+128j
		add	edx, 4
		mov	[ebx+0Ch], edx
		mov	[ebp+var_20], eax
		jmp	short loc_E0511
; ---------------------------------------------------------------------------
		align 10h

loc_E04F0:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+1Fj
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	eax, [ebp+var_20]

loc_E0511:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+7Aj
					; CDemoFile::ReadRawData(char *,int)+119j
		cmp	[ebp+arg_8], eax
		setl	dl
		jl	loc_E0608

loc_E051D:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+19Aj
		test	edi, edi
		jz	short loc_E05A0
		test	dl, dl
		jnz	loc_E05C8
		mov	[esp+8], eax	; arg
		mov	[esp+4], edi	; dest
		mov	edx, [esi+534h]
		mov	[ebp+var_2C], eax
		mov	[esp], edx	; int
		call	_ZN10CUtlBuffer3GetEPvi	; CUtlBuffer::Get(void *,int)
		mov	edx, [esi+534h]
		mov	eax, [ebp+var_2C]
		test	edx, edx
		jz	short loc_E0555
		cmp	byte ptr [edx+14h], 0
		jz	short loc_E056E

loc_E0555:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+DDj
		mov	dword ptr [esp+4], offset aErrorReadingDe ; "Error reading demo	message	data.\n"
		mov	dword ptr [esp], 1 ; char
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		mov	eax, 0FFFFFFFFh

loc_E056E:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+E3j
					; CDemoFile::ReadRawData(char *,int)+150j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E0580:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+33j
		mov	[ebp+var_20], 0
		xor	eax, eax
		jmp	short loc_E0511
; ---------------------------------------------------------------------------
		align 10h

loc_E0590:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+42j
		sub	eax, [ebx+20h]
		mov	ecx, [ebx]
		mov	eax, [ecx+eax]
		jmp	loc_E04E1
; ---------------------------------------------------------------------------
		align 10h

loc_E05A0:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+AFj
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 1
		mov	edx, [esi+534h]
		mov	[ebp+var_2C], eax
		mov	[esp], edx
		call	_ZN10CUtlBuffer7SeekGetENS_10SeekType_tEi ; CUtlBuffer::SeekGet(CUtlBuffer::SeekType_t,int)
		mov	eax, [ebp+var_2C]
		jmp	short loc_E056E
; ---------------------------------------------------------------------------
		align 8

loc_E05C8:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+B3j
		mov	[esp+4], eax
		mov	[ebp+var_2C], eax
		mov	dword ptr [esp], offset	aCdemofileReadr	; "CDemoFile::ReadRawData: buffer overflow"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, [ebp+var_2C]
		mov	dword ptr [esp+4], 1
		mov	[esp+8], eax
		mov	eax, [esi+534h]
		mov	[esp], eax
		call	_ZN10CUtlBuffer7SeekGetENS_10SeekType_tEi ; CUtlBuffer::SeekGet(CUtlBuffer::SeekType_t,int)
		mov	eax, 0FFFFFFFFh
		jmp	loc_E056E
; ---------------------------------------------------------------------------
		align 8

loc_E0608:				; CODE XREF: CDemoFile::ReadRawData(char *,int)+A7j
		test	edi, edi
		jz	loc_E051D
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aCdemofileRea_0	; "CDemoFile::ReadRawData: buffe overflow "...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, 0FFFFFFFFh
		jmp	loc_E056E
_ZN9CDemoFile11ReadRawDataEPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::ReadStringTables(bf_read *)
_ZN9CDemoFile16ReadStringTablesEP7bf_read proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+117p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		test	edx, edx
		jz	short loc_E0660
		mov	eax, [edx+8]
		sub	eax, [edx+0Ch]
		sar	eax, 3
		mov	[esp+8], eax	; int
		mov	eax, [edx]
		mov	[esp], ecx	; int
		mov	[esp+4], eax	; dest
		call	_ZN9CDemoFile11ReadRawDataEPci ; CDemoFile::ReadRawData(char *,int)
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E0660:				; CODE XREF: CDemoFile::ReadStringTables(bf_read *)+Ej
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], 0 ; dest
		mov	[esp], ecx	; int
		call	_ZN9CDemoFile11ReadRawDataEPci ; CDemoFile::ReadRawData(char *,int)
		leave
		retn
_ZN9CDemoFile16ReadStringTablesEP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::ReadNetworkDataTables(bf_read *)
_ZN9CDemoFile21ReadNetworkDataTablesEP7bf_read proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+1C3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		test	edx, edx
		jz	short loc_E06B0
		mov	eax, [edx+8]
		sub	eax, [edx+0Ch]
		sar	eax, 3
		mov	[esp+8], eax	; int
		mov	eax, [edx]
		mov	[esp], ecx	; int
		mov	[esp+4], eax	; dest
		call	_ZN9CDemoFile11ReadRawDataEPci ; CDemoFile::ReadRawData(char *,int)
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E06B0:				; CODE XREF: CDemoFile::ReadNetworkDataTables(bf_read *)+Ej
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], 0 ; dest
		mov	[esp], ecx	; int
		call	_ZN9CDemoFile11ReadRawDataEPci ; CDemoFile::ReadRawData(char *,int)
		leave
		retn
_ZN9CDemoFile21ReadNetworkDataTablesEP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::ReadConsoleCommand(void)
_ZN9CDemoFile18ReadConsoleCommandEv proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+243p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+8], 400h	; int
		mov	dword ptr [esp+4], offset _ZZN9CDemoFile18ReadConsoleCommandEvE9cmdstring ; dest
		mov	[esp], eax	; int
		call	_ZN9CDemoFile11ReadRawDataEPci ; CDemoFile::ReadRawData(char *,int)
		mov	eax, offset _ZZN9CDemoFile18ReadConsoleCommandEvE9cmdstring ; CDemoFile::ReadConsoleCommand(void)::cmdstring
		leave
		retn
_ZN9CDemoFile18ReadConsoleCommandEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__ReadUserCmd(int, void *dest, int)
_ZN9CDemoFile11ReadUserCmdEPcRi	proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+233p

var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
dest		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	ebx, [esi+534h]
		test	byte ptr [ebx+15h], 1
		jnz	short loc_E0780
		mov	dword ptr [esp+4], 4
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckGetEi ; CUtlBuffer::CheckGet(int)
		test	al, al
		jz	loc_E07D0
		mov	ecx, [ebx+0Ch]
		test	byte ptr [ebx+34h], 1
		mov	eax, ecx
		jz	loc_E07E0
		sub	eax, [ebx+20h]
		lea	edx, [ebp+var_20]
		add	eax, [ebx]
		cmovz	eax, edx
		movzx	edx, byte ptr [eax+3]
		mov	byte ptr [ebp+var_1C], dl
		movzx	edx, byte ptr [eax+2]
		mov	byte ptr [ebp+var_1C+1], dl
		movzx	edx, byte ptr [eax+1]
		movzx	eax, byte ptr [eax]
		mov	byte ptr [ebp+var_1C+2], dl
		mov	byte ptr [ebp+var_1C+3], al
		mov	edx, [ebp+var_1C]

loc_E0771:				; CODE XREF: CDemoFile::ReadUserCmd(char *,int &)+E7j
		add	ecx, 4
		mov	[ebx+0Ch], ecx
		mov	[ebp+var_20], edx
		jmp	short loc_E07A1
; ---------------------------------------------------------------------------
		align 10h

loc_E0780:				; CODE XREF: CDemoFile::ReadUserCmd(char *,int &)+1Fj
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		mov	[esp+8], eax
		mov	dword ptr [esp+4], (offset aD_1+1)
		mov	[esp], ebx
		call	_ZN10CUtlBuffer5ScanfEPKcz ; CUtlBuffer::Scanf(char  const*,...)
		mov	edx, [ebp+var_20]

loc_E07A1:				; CODE XREF: CDemoFile::ReadUserCmd(char *,int &)+7Aj
					; CDemoFile::ReadUserCmd(char *,int &)+D9j
		mov	eax, [edi]
		mov	[esp], esi	; int
		mov	[ebp+var_2C], edx
		mov	[esp+8], eax	; int
		mov	eax, [ebp+dest]
		mov	[esp+4], eax	; dest
		call	_ZN9CDemoFile11ReadRawDataEPci ; CDemoFile::ReadRawData(char *,int)
		mov	[edi], eax
		mov	edx, [ebp+var_2C]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		mov	eax, edx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E07D0:				; CODE XREF: CDemoFile::ReadUserCmd(char *,int &)+33j
		mov	[ebp+var_20], 0
		xor	edx, edx
		jmp	short loc_E07A1
; ---------------------------------------------------------------------------
		align 10h

loc_E07E0:				; CODE XREF: CDemoFile::ReadUserCmd(char *,int &)+42j
		sub	eax, [ebx+20h]
		add	eax, [ebx]
		mov	edx, [eax]
		jmp	short loc_E0771
_ZN9CDemoFile11ReadUserCmdEPcRi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteRawData(int, int,	char arg)
_ZN9CDemoFile12WriteRawDataEPKci proc near
					; CODE XREF: CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+AEj
					; CDemoFile::WriteStringTables(bf_write	*,int)+71j ...

var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	esi, dword ptr [ebp+arg]
		mov	ebx, [edi+534h]
		mov	[ebp+var_2C], eax
		test	byte ptr [ebx+15h], 1
		jnz	loc_E08A0
		mov	[ebp+var_20], esi
		mov	dword ptr [esp+4], 4 ; src
		mov	[esp], ebx
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_E087A
		test	byte ptr [ebx+34h], 1
		mov	eax, [ebx+10h]
		jz	loc_E08C0
		mov	edx, eax
		sub	edx, [ebx+20h]
		add	edx, [ebx]
		jz	short loc_E086C
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [ebx+10h]

loc_E086C:				; CODE XREF: CDemoFile::WriteRawData(char  const*,int)+56j
					; CDemoFile::WriteRawData(char	const*,int)+DBj
		add	eax, 4
		mov	[ebx+10h], eax
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_E087A:				; CODE XREF: CDemoFile::WriteRawData(char  const*,int)+40j
					; CDemoFile::WriteRawData(char	const*,int)+C4j
		mov	eax, [ebp+var_2C]
		mov	dword ptr [ebp+arg], esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_4], eax
		mov	eax, [edi+534h]
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_0], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlBuffer3PutEPKvi ; CUtlBuffer::Put(void	 const*,int)
; ---------------------------------------------------------------------------
		align 10h

loc_E08A0:				; CODE XREF: CDemoFile::WriteRawData(char  const*,int)+25j
		mov	[esp+8], esi	; arg
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp], ebx	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		jmp	short loc_E087A
; ---------------------------------------------------------------------------
		align 10h

loc_E08C0:				; CODE XREF: CDemoFile::WriteRawData(char  const*,int)+49j
		sub	eax, [ebx+20h]
		mov	edx, [ebx]
		mov	[edx+eax], esi
		mov	eax, [ebx+10h]
		jmp	short loc_E086C
_ZN9CDemoFile12WriteRawDataEPKci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteUserCmd(int, char	arg, int, char,	int)
_ZN9CDemoFile12WriteUserCmdEiPKchi proc	near

var_2D		= byte ptr -2Dh
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], esi
		mov	edi, dword ptr [ebp+arg]
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_2C], eax
		movzx	eax, [ebp+arg_C]
		mov	[ebp+var_2D], al
		mov	eax, [ebx+534h]
		test	eax, eax
		jz	loc_E0988
		cmp	byte ptr [eax+14h], 0
		jnz	short loc_E0988
		mov	[esp+8], edx	; arg
		mov	dword ptr [esp+4], 5 ; int
		mov	[esp], ebx	; int
		call	_ZN9CDemoFile14WriteCmdHeaderEhi ; CDemoFile::WriteCmdHeader(uchar,int)
		mov	esi, [ebx+534h]
		test	byte ptr [esi+15h], 1
		jnz	short loc_E0998
		mov	[ebp+var_20], edi
		mov	dword ptr [esp+4], 4 ; int
		mov	[esp], esi
		call	_ZN10CUtlBuffer8CheckPutEi ; CUtlBuffer::CheckPut(int)
		test	al, al
		jz	short loc_E0962
		test	byte ptr [esi+34h], 1
		mov	eax, [esi+10h]
		jnz	short loc_E09B0
		sub	eax, [esi+20h]
		mov	edx, [esi]
		mov	[edx+eax], edi
		mov	eax, [esi+10h]

loc_E0954:				; CODE XREF: CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+E7j
					; CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+10Dj
		add	eax, 4
		mov	[esi+10h], eax
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer18AddNullTerminationEv ;	CUtlBuffer::AddNullTermination(void)

loc_E0962:				; CODE XREF: CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+6Ej
					; CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+DCj
		movzx	eax, [ebp+var_2D]
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_8], eax
		mov	eax, [ebp+var_2C]
		mov	dword ptr [ebp+arg], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN9CDemoFile12WriteRawDataEPKci ; CDemoFile::WriteRawData(char	 const*,int)
; ---------------------------------------------------------------------------
		align 8

loc_E0988:				; CODE XREF: CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+2Dj
					; CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+37j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_E0998:				; CODE XREF: CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+57j
		mov	[esp+8], edi	; arg
		mov	dword ptr [esp+4], (offset aD_1+1) ; format
		mov	[esp], esi	; int
		call	_ZN10CUtlBuffer6PrintfEPKcz ; CUtlBuffer::Printf(char  const*,...)
		jmp	short loc_E0962
; ---------------------------------------------------------------------------
		align 10h

loc_E09B0:				; CODE XREF: CDemoFile::WriteUserCmd(int,char  const*,uchar,int)+77j
		mov	edx, eax
		sub	edx, [esi+20h]
		add	edx, [esi]
		jz	short loc_E0954
		movzx	eax, byte ptr [ebp+var_20+3]
		mov	byte ptr [ebp+var_1C], al
		movzx	eax, byte ptr [ebp+var_20+2]
		mov	byte ptr [ebp+var_1C+1], al
		movzx	eax, byte ptr [ebp+var_20+1]
		mov	byte ptr [ebp+var_1C+2], al
		movzx	eax, byte ptr [ebp+var_20]
		mov	byte ptr [ebp+var_1C+3], al
		mov	eax, [ebp+var_1C]
		mov	[edx], eax
		mov	eax, [esi+10h]
		jmp	loc_E0954
_ZN9CDemoFile12WriteUserCmdEiPKchi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteStringTables(int,	int, char arg)
_ZN9CDemoFile17WriteStringTablesEP8bf_writei proc near
					; CODE XREF: CHLTVDemoRecorder::RecordStringTables(void)+93p
					; CReplayDemoRecorder::RecordStringTables(void)+66p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	edx, dword ptr [ebp+arg]
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+534h]
		test	eax, eax
		jz	short loc_E0A15
		cmp	byte ptr [eax+14h], 0
		jz	short loc_E0A30

loc_E0A15:				; CODE XREF: CDemoFile::WriteStringTables(bf_write *,int)+1Dj
		mov	[ebp+arg_0], offset aCdemofileWrite ; "CDemoFile::WriteStringTables: Haven't o"...
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
; ---------------------------------------------------------------------------
		align 10h

loc_E0A30:				; CODE XREF: CDemoFile::WriteStringTables(bf_write *,int)+23j
		mov	[esp], ebx	; int
		mov	[esp+8], edx	; arg
		mov	dword ptr [esp+4], 8 ; int
		call	_ZN9CDemoFile14WriteCmdHeaderEhi ; CDemoFile::WriteCmdHeader(uchar,int)
		mov	eax, [esi+0Ch]
		add	eax, 7
		sar	eax, 3
		mov	dword ptr [ebp+arg], eax
		mov	eax, [esi]
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_4], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN9CDemoFile12WriteRawDataEPKci ; CDemoFile::WriteRawData(char	 const*,int)
_ZN9CDemoFile17WriteStringTablesEP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteNetworkDataTables(int, int, char arg)
_ZN9CDemoFile22WriteNetworkDataTablesEP8bf_writei proc near
					; CODE XREF: CHLTVDemoRecorder::RecordServerClasses(ServerClass	*)+92p
					; CReplayDemoRecorder::RecordServerClasses(ServerClass *)+92p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	edx, dword ptr [ebp+arg]
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+534h]
		test	eax, eax
		jz	short loc_E0A95
		cmp	byte ptr [eax+14h], 0
		jz	short loc_E0AB0

loc_E0A95:				; CODE XREF: CDemoFile::WriteNetworkDataTables(bf_write	*,int)+1Dj
		mov	[ebp+arg_0], offset aCdemofileWri_0 ; "CDemoFile::WriteNetworkDataTables: Have"...
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
; ---------------------------------------------------------------------------
		align 10h

loc_E0AB0:				; CODE XREF: CDemoFile::WriteNetworkDataTables(bf_write	*,int)+23j
		mov	[esp], ebx	; int
		mov	[esp+8], edx	; arg
		mov	dword ptr [esp+4], 6 ; int
		call	_ZN9CDemoFile14WriteCmdHeaderEhi ; CDemoFile::WriteCmdHeader(uchar,int)
		mov	eax, [esi+0Ch]
		add	eax, 7
		sar	eax, 3
		mov	dword ptr [ebp+arg], eax
		mov	eax, [esi]
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_4], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN9CDemoFile12WriteRawDataEPKci ; CDemoFile::WriteRawData(char	 const*,int)
_ZN9CDemoFile22WriteNetworkDataTablesEP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteConsoleCommand(int, char *s, char	arg)
_ZN9CDemoFile19WriteConsoleCommandEPKci	proc near
					; CODE XREF: CHLTVDemoRecorder::RecordCommand(char  const*)+4Ep
					; CReplayDemoRecorder::RecordCommand(char  const*)+6Bp

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
s		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+s]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, dword ptr [ebp+arg]
		test	ebx, ebx
		jz	short loc_E0B70
		cmp	byte ptr [ebx],	0
		jz	short loc_E0B70
		mov	eax, [esi+534h]
		test	eax, eax
		jz	short loc_E0B70
		cmp	byte ptr [eax+14h], 0
		jnz	short loc_E0B70
		mov	[esp], ebx	; s
		call	strlen
		add	eax, 1
		cmp	eax, 3FFh
		jg	short loc_E0B80
		mov	[esp+8], edi	; arg
		mov	[esp], esi	; int
		mov	[ebp+var_1C], eax
		mov	dword ptr [esp+4], 4 ; int
		call	_ZN9CDemoFile14WriteCmdHeaderEhi ; CDemoFile::WriteCmdHeader(uchar,int)
		mov	eax, [ebp+var_1C]
		mov	[ebp+s], ebx
		mov	[ebp+arg_0], esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	dword ptr [ebp+arg], eax
		mov	esp, ebp
		pop	ebp
		jmp	_ZN9CDemoFile12WriteRawDataEPKci ; CDemoFile::WriteRawData(char	 const*,int)
; ---------------------------------------------------------------------------
		align 10h

loc_E0B70:				; CODE XREF: CDemoFile::WriteConsoleCommand(char  const*,int)+1Aj
					; CDemoFile::WriteConsoleCommand(char  const*,int)+1Fj	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E0B80:				; CODE XREF: CDemoFile::WriteConsoleCommand(char  const*,int)+41j
		mov	[ebp+arg_0], offset aCdemofileWri_1 ; "CDemoFile::WriteConsoleCommand: command"...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
_ZN9CDemoFile19WriteConsoleCommandEPKci	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::WriteDemoHeader(void)
_ZN9CDemoFile15WriteDemoHeaderEv proc near
					; CODE XREF: CHLTVDemoRecorder::StopRecording(void)+7Cp
					; _ZN17CHLTVDemoRecorder14StartRecordingEPKcb_part_46+14Ep ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		cmp	byte ptr [ebx+538h], 0
		jz	short loc_E0BFE
		mov	eax, dword ptr ds:dbg_demofile+1Ch
		lea	esi, [ebx+104h]
		mov	ecx, [eax+30h]
		test	ecx, ecx
		jnz	short loc_E0C08

loc_E0BC6:				; CODE XREF: CDemoFile::WriteDemoHeader(void)+17Cj
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	eax, [ebx+534h]
		mov	[esp], eax
		call	_ZN10CUtlBuffer7SeekPutENS_10SeekType_tEi ; CUtlBuffer::SeekPut(CUtlBuffer::SeekType_t,int)
		mov	dword ptr [esp+8], 430h	; n
		mov	[esp+4], esi	; src
		mov	eax, [ebx+534h]
		mov	[esp], eax	; int
		call	_ZN10CUtlBuffer3PutEPKvi ; CUtlBuffer::Put(void	 const*,int)

loc_E0BFE:				; CODE XREF: CDemoFile::WriteDemoHeader(void)+12j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_E0C08:				; CODE XREF: CDemoFile::WriteDemoHeader(void)+24j
		mov	dword ptr [esp], (offset aConsoleHistory+1Ch)
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aDemofilestampS	; "	demofilestamp: %s\n"
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, [ebx+10Ch]
		mov	dword ptr [esp+4], 3
		mov	dword ptr [esp], offset	aDemoprotocolSh	; "	demoprotocol (should be	%i): %i\n"
		mov	[esp+8], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, [ebx+110h]
		mov	dword ptr [esp+4], 16h
		mov	dword ptr [esp], offset	aNetworkprotoco	; "	networkprotocol	(should	be %i):	%i"...
		mov	[esp+8], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		lea	eax, [ebx+114h]
		mov	dword ptr [esp], offset	aServernameS ; "     servername: %s\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		lea	eax, [ebx+218h]
		mov	dword ptr [esp], offset	aClientnameS ; "     clientname: %s\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		lea	eax, [ebx+31Ch]
		mov	dword ptr [esp], offset	aMapnameS ; "	  mapname: %s\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		lea	eax, [ebx+420h]
		mov	dword ptr [esp], offset	aGamedirectoryS	; "	gamedirectory: %s\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		fld	dword ptr [ebx+524h]
		mov	dword ptr [esp], offset	aPlayback_timeF	; "	playback_time: %f\n"
		fstp	qword ptr [esp+4]
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, [ebx+528h]
		mov	dword ptr [esp], offset	aPlayback_ticks	; "	playback_ticks:	%i\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, [ebx+52Ch]
		mov	dword ptr [esp], offset	aPlayback_frame	; "	playback_frames: %i\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	eax, [ebx+530h]
		mov	dword ptr [esp], offset	aSignonlengthI ; "     signonlength: %i\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	dword ptr [esp], (offset aConsoleHistory+1Ch)
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_E0BC6
_ZN9CDemoFile15WriteDemoHeaderEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::ReadDemoHeader(void)
_ZN9CDemoFile14ReadDemoHeaderEv	proc near
					; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+94p
					; CHLTVServer::StartPlayback(char  const*,bool)+6Bp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	edx, 430h
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		lea	esi, [ebx+104h]
		test	esi, 1
		mov	[ebp+var_1C], esi
		mov	edi, esi
		jnz	loc_E0E48
		test	edi, 2
		jnz	loc_E0E68

loc_E0D64:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+12Dj
					; CDemoFile::ReadDemoHeader(void)+143j
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_E0D7A
		mov	word ptr [edi],	0
		add	edi, 2

loc_E0D7A:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+40j
		and	edx, 1
		jz	short loc_E0D82
		mov	byte ptr [edi],	0

loc_E0D82:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+4Dj
		mov	eax, [ebx+534h]
		test	eax, eax
		jz	loc_E0E30
		cmp	byte ptr [eax+14h], 0
		jnz	loc_E0E30
		mov	[esp], eax
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		call	_ZN10CUtlBuffer7SeekGetENS_10SeekType_tEi ; CUtlBuffer::SeekGet(CUtlBuffer::SeekType_t,int)
		mov	dword ptr [esp+8], 430h	; n
		mov	[esp+4], esi	; dest
		mov	eax, [ebx+534h]
		mov	[esp], eax	; int
		call	_ZN10CUtlBuffer3GetEPvi	; CUtlBuffer::Get(void *,int)
		mov	ecx, [ebx+534h]
		mov	edx, [ebx+110h]
		mov	eax, [ebx+10Ch]
		cmp	byte ptr [ecx+14h], 0
		mov	[ebp+var_20], edx
		jnz	short loc_E0E30
		mov	edi, offset aHl2demo ; "HL2DEMO"
		mov	ecx, 8
		repe cmpsb
		jnz	loc_E0E80
		cmp	[ebp+var_20], 0Bh
		jle	loc_E0EA0
		lea	edx, [eax-2]
		cmp	edx, 1
		jbe	short loc_E0E37
		mov	dword ptr [esp+8], 3
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aErrorDemoFileP	; "ERROR: demo file protocol %i	outdated, "...
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	[ebp+var_1C], 0
		jmp	short loc_E0E37
; ---------------------------------------------------------------------------
		align 10h

loc_E0E30:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+5Aj
					; CDemoFile::ReadDemoHeader(void)+64j ...
		mov	[ebp+var_1C], 0

loc_E0E37:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+D9j
					; CDemoFile::ReadDemoHeader(void)+FAj ...
		mov	eax, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E0E48:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+22j
		lea	edi, [ebx+105h]
		mov	byte ptr [ebx+104h], 0
		mov	dl, 2Fh
		test	edi, 2
		jz	loc_E0D64
		nop
		lea	esi, [esi+0]

loc_E0E68:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+2Ej
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_E0D64
; ---------------------------------------------------------------------------
		align 10h

loc_E0E80:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+C3j
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aSHasInvalidDem	; "%s has invalid demo header ID.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	[ebp+var_1C], 0
		jmp	short loc_E0E37
; ---------------------------------------------------------------------------
		align 10h

loc_E0EA0:				; CODE XREF: CDemoFile::ReadDemoHeader(void)+CDj
		mov	eax, [ebp+var_20]
		mov	dword ptr [esp+8], 16h
		mov	dword ptr [esp], offset	aErrorDemoNetwo	; "ERROR: demo network protocol	%i outdate"...
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	[ebp+var_1C], 0
		jmp	loc_E0E37
_ZN9CDemoFile14ReadDemoHeaderEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__WriteFileBytes(int, int, size_t n)
_ZN9CDemoFile14WriteFileBytesEPvi proc near

var_41C		= dword	ptr -41Ch
src		= byte ptr -418h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
n		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+src]
		push	ebx
		sub	esp, 42Ch
		mov	ebx, [ebp+n]
		mov	edi, [ebp+arg_4]
		cmp	ebx, 400h
		jle	short loc_E0F6D
		mov	[ebp+var_41C], edi
		mov	edi, [ebp+arg_0]
		lea	esi, [esi+0]

loc_E0F00:				; CODE XREF: CDemoFile::WriteFileBytes(void *,int)+7Cj
		mov	eax, ds:g_pFileSystem
		sub	ebx, 400h
		mov	ecx, [ebp+var_41C]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+8], 400h
		mov	[esp+0Ch], ecx
		mov	[esp], edx
		mov	[esp+4], esi
		call	dword ptr [eax]
		mov	dword ptr [esp+8], 400h	; n
		mov	[esp+4], esi	; src
		mov	eax, [edi+534h]
		mov	[esp], eax	; int
		call	_ZN10CUtlBuffer3PutEPKvi ; CUtlBuffer::Put(void	 const*,int)
		cmp	ebx, 400h
		jg	short loc_E0F00
		mov	eax, [ebp+n]
		mov	edx, [ebp+n]
		mov	edi, [ebp+var_41C]
		sub	eax, 401h
		and	eax, 0FFFFFC00h
		neg	eax
		lea	ebx, [edx+eax-400h]

loc_E0F6D:				; CODE XREF: CDemoFile::WriteFileBytes(void *,int)+1Ej
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], edi
		mov	[esp], edx
		mov	[esp+8], ebx
		mov	[esp+4], esi
		call	dword ptr [eax]
		mov	ecx, [ebp+arg_0]
		mov	[esp+8], ebx	; n
		mov	[esp+4], esi	; src
		mov	eax, [ecx+534h]
		mov	[esp], eax	; int
		call	_ZN10CUtlBuffer3PutEPKvi ; CUtlBuffer::Put(void	 const*,int)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+20h]
		add	esp, 42Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDemoFile14WriteFileBytesEPvi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::IsOpen(void)
_ZN9CDemoFile6IsOpenEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+534h]
		xor	eax, eax
		test	edx, edx
		jz	short loc_E0FE9
		cmp	byte ptr [edx+14h], 0
		setz	al

loc_E0FE9:				; CODE XREF: CDemoFile::IsOpen(void)+10j
		pop	ebp
		retn
_ZN9CDemoFile6IsOpenEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::Close(void)
_ZN9CDemoFile5CloseEv proc near		; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+11Dp
					; CDemoFile::~CDemoFile()+17j ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		cmp	byte ptr [ebx+539h], 0
		mov	esi, [ebx+534h]
		jz	short loc_E1040
		test	esi, esi
		jz	short loc_E1022
		mov	[esp], esi
		call	_ZN16CUtlStreamBufferD2Ev ; CUtlStreamBuffer::~CUtlStreamBuffer()
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)

loc_E1022:				; CODE XREF: CDemoFile::Close(void)+20j
					; CDemoFile::Close(void)+52j ...
		mov	dword ptr [ebx+534h], 0
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E1040:				; CODE XREF: CDemoFile::Close(void)+1Cj
		test	esi, esi
		jz	short loc_E1022
		mov	eax, [esi+8]
		test	eax, eax
		js	short loc_E1066
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_E105F
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [esi], 0

loc_E105F:				; CODE XREF: CDemoFile::Close(void)+5Fj
		mov	dword ptr [esi+4], 0

loc_E1066:				; CODE XREF: CDemoFile::Close(void)+59j
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)
		jmp	short loc_E1022
_ZN9CDemoFile5CloseEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDemoFile__Open(char *dest, char *src, char, char, int size, char)
_ZN9CDemoFile4OpenEPKcbbib proc	near	; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+84p
					; CHLTVDemoRecorder::StartRecording(char  const*,bool)+44p ...

var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
dest		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h
size		= dword	ptr  18h
arg_14		= byte ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, [ebp+arg_8]
		mov	ebx, [ebp+dest]
		movzx	esi, [ebp+arg_14]
		mov	[ebp+var_1A], al
		movzx	eax, [ebp+arg_C]
		mov	[ebp+var_19], al
		mov	eax, [ebx+534h]
		test	eax, eax
		jz	short loc_E10A2
		cmp	byte ptr [eax+14h], 0
		jz	loc_E11A0

loc_E10A2:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+26j
		lea	edi, [ebx+104h]
		mov	byte ptr [ebx],	0
		mov	edx, 430h
		test	edi, 1
		jnz	loc_E1280

loc_E10BC:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+21Fj
		test	edi, 2
		jnz	loc_E1268

loc_E10C8:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+203j
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jnz	loc_E1220
		and	edx, 1
		jnz	loc_E1200

loc_E10E3:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+1BBj
		cmp	[ebp+var_19], 0
		mov	eax, esi
		mov	[ebx+538h], al
		jnz	loc_E11C0

loc_E10F5:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+1A1j
		mov	dword ptr [esp], 44h
		call	_Znwj		; operator new(uint)
		cmp	[ebp+var_1A], 1
		mov	dword ptr [esp+10h], 0 ; char
		mov	edi, eax
		mov	dword ptr [esp+8], 0 ; s
		mov	[esp], edi	; int
		sbb	eax, eax
		not	eax
		and	eax, 8
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+src]
		mov	[esp+4], eax	; src
		call	_ZN16CUtlStreamBufferC2EPKcS1_ib ; CUtlStreamBuffer::CUtlStreamBuffer(char  const*,char	 const*,int,bool)
		mov	[ebx+534h], edi
		mov	byte ptr [ebx+539h], 1

loc_E113E:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+186j
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN10CUtlBuffer12SetBigEndianEb	; CUtlBuffer::SetBigEndian(bool)
		mov	eax, [ebx+534h]
		test	eax, eax
		jz	short loc_E1162
		cmp	byte ptr [eax+14h], 0
		jz	loc_E1238

loc_E1162:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+E6j
		cmp	[ebp+var_1A], 0
		mov	edx, offset aWriting ; "writing"
		mov	eax, offset aReading ; "reading"
		mov	dword ptr [esp], offset	aCdemofileOpenC	; "CDemoFile::Open: couldn't open file %s "...
		cmovz	eax, edx
		mov	[esp+8], eax
		mov	eax, [ebp+src]
		mov	[esp+4], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	[esp], ebx
		call	_ZN9CDemoFile5CloseEv ;	CDemoFile::Close(void)
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E11A0:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+2Cj
		mov	dword ptr [esp], offset	aCdemofileOpenF	; "CDemoFile::Open: file already open.\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E11C0:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+7Fj
					; CDemoFile::Open(char	const*,bool,bool,int,bool)+19Fj
		mov	dword ptr [esp], 38h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	edi, eax
		mov	eax, [ebp+size]
		mov	[esp], edi	; int
		mov	[esp+8], eax	; size
		mov	[esp+4], eax	; int
		call	_ZN10CUtlBufferC2Eiii ;	CUtlBuffer::CUtlBuffer(int,int,int)
		mov	[ebx+534h], edi
		mov	byte ptr [ebx+539h], 0
		jmp	loc_E113E
; ---------------------------------------------------------------------------
		align 10h

loc_E1200:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+6Dj
					; CDemoFile::Open(char	const*,bool,bool,int,bool)+1C1j
		mov	byte ptr [edi],	0
		mov	eax, esi
		cmp	[ebp+var_19], 0
		mov	[ebx+538h], al
		jnz	short loc_E11C0
		jmp	loc_E10F5
; ---------------------------------------------------------------------------
		align 10h

loc_E1220:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+64j
		mov	word ptr [edi],	0
		add	edi, 2
		and	edx, 1
		jz	loc_E10E3
		jmp	short loc_E1200
; ---------------------------------------------------------------------------
		align 8

loc_E1238:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+ECj
		mov	eax, [ebp+src]
		test	eax, eax
		jz	short loc_E1256
		mov	eax, [ebp+src]
		mov	dword ptr [esp+8], 104h	; n
		mov	[esp], ebx	; dest
		mov	[esp+4], eax	; src
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)

loc_E1256:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+1CDj
		add	esp, 3Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E1268:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+52j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_E10C8
; ---------------------------------------------------------------------------
		align 10h

loc_E1280:				; CODE XREF: CDemoFile::Open(char  const*,bool,bool,int,bool)+46j
		mov	byte ptr [ebx+104h], 0
		lea	edi, [ebx+105h]
		mov	dl, 2Fh
		jmp	loc_E10BC
_ZN9CDemoFile4OpenEPKcbbib endp

; ---------------------------------------------------------------------------

loc_E1294:				; CODE XREF: .text:000E12A6j
		mov	ebx, eax
		mov	[esp], edi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short loc_E1294
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::~CDemoFile()
_ZN9CDemoFileD2Ev proc near		; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+D7p
					; .text:00103F69p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+534h]
		test	eax, eax
		jz	short loc_E12D0
		cmp	byte ptr [eax+14h], 0
		jnz	short loc_E12D0
		pop	ebp
		jmp	_ZN9CDemoFile5CloseEv ;	CDemoFile::Close(void)
; ---------------------------------------------------------------------------
		align 10h

loc_E12D0:				; CODE XREF: CDemoFile::~CDemoFile()+Ej
					; CDemoFile::~CDemoFile()+14j
		pop	ebp
		retn
_ZN9CDemoFileD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::GetSize(void)
_ZN9CDemoFile7GetSizeEv	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+534h]
		mov	eax, [eax+1Ch]
		retn
_ZN9CDemoFile7GetSizeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDemoFile::GetProtocolVersion(void)
_ZN9CDemoFile18GetProtocolVersionEv proc near
					; CODE XREF: CHLTVServer::GetProtocolVersion(void)+26j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+110h]
		retn
_ZN9CDemoFile18GetProtocolVersionEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DevShotGenerator_Usage(void)
_Z22DevShotGenerator_Usagev proc near	; CODE XREF: CDevShotGenerator::BuildMapList(void):loc_E1430p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	aMakedevshotsUs	; "-makedevshots usage:\n"
		call	Msg
		mov	dword ptr [esp], offset	aUsedevshotsfil	; "  [ -usedevshotsfile	filename ] -- get "...
		call	Msg
		mov	dword ptr [esp], offset	aStartmapMapnam	; "  [ -startmap mapname ] -- restart gene"...
		call	Msg
		mov	dword ptr [esp], offset	aCondebugPrepen	; "  [ -condebug ] -- prepend console.log "...
		call	Msg
		mov	dword ptr [esp], offset	aMapMapnameGene	; "  [ +map mapname ] -- generate devshots"...
		call	Msg
		leave
		retn
_Z22DevShotGenerator_Usagev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DevShotGenerator_Init(void)
_Z21DevShotGenerator_Initv proc	near
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aMakedevshots	; "-makedevshots"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jnz	short loc_E1388
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E1388:				; CODE XREF: DevShotGenerator_Init(void)+1Dj
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aUsedevshotsf_0 ; "-usedevshotsfile"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	ds:g_DevShotGenerator, 1
		test	eax, eax
		setnz	ds:g_DevShotGenerator+8
		leave
		retn
_Z21DevShotGenerator_Initv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DevShotGenerator_Shutdown(void)
_Z25DevShotGenerator_Shutdownv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z25DevShotGenerator_Shutdownv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DevShotGenerator(void)
_Z16DevShotGeneratorv proc near		; CODE XREF: Host_Init(bool):loc_117370p
		push	ebp
		mov	eax, offset g_DevShotGenerator
		mov	ebp, esp
		pop	ebp
		retn
_Z16DevShotGeneratorv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDevShotGenerator::CDevShotGenerator(void)
_ZN17CDevShotGeneratorC2Ev proc	near	; CODE XREF: _GLOBAL__sub_I__Z22DevShotGenerator_Usagev+28p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	byte ptr [eax+8], 0
		mov	byte ptr [eax],	0
		mov	dword ptr [eax+4], 0
		pop	ebp
		retn
_ZN17CDevShotGeneratorC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDevShotGenerator::BuildMapList(void)
_ZN17CDevShotGenerator12BuildMapListEv proc near
					; CODE XREF: DevShotGenerator_BuildMapList(void)+Dp
					; CDevShotGenerator::StartDevShotGeneration(void)+10p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		cmp	byte ptr [ebx],	0
		jnz	short loc_E1430

loc_E1424:				; CODE XREF: CDevShotGenerator::BuildMapList(void)+8Cj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E1430:				; CODE XREF: CDevShotGenerator::BuildMapList(void)+12j
		call	_Z22DevShotGenerator_Usagev ; DevShotGenerator_Usage(void)
		mov	[ebp+var_C], 0
		call	CommandLine_Tier0
		lea	ecx, [ebp+var_C]
		mov	edx, [eax]
		mov	[esp+8], ecx
		mov	dword ptr [esp+4], offset aUsedevshotsf_0 ; "-usedevshotsfile"
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	esi, [ebp+var_C]
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aUsedevshotsf_0 ; "-usedevshotsfile"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		lea	edx, [ebx+4]
		mov	dword ptr [esp+0Ch], (offset aMakedevshots+5)
		test	eax, eax
		mov	[esp+10h], edx
		setnz	al
		mov	[esp+8], esi
		movzx	eax, al
		mov	[esp+4], eax
		lea	eax, [ebx+0Ch]
		mov	[esp], eax
		call	_Z19BuildGeneralMapListP10CUtlVectorI13maplist_map_t10CUtlMemoryIS0_iEEbPKcPcPi	; BuildGeneralMapList(CUtlVector<maplist_map_t,CUtlMemory<maplist_map_t,int>> *,bool,char  const*,char *,int *)
		test	al, al
		jnz	short loc_E1424
		mov	byte ptr [ebx],	0
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN17CDevShotGenerator12BuildMapListEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DevShotGenerator_BuildMapList(void)
_Z29DevShotGenerator_BuildMapListv proc	near
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	g_DevShotGenerator
		call	_ZN17CDevShotGenerator12BuildMapListEv ; CDevShotGenerator::BuildMapList(void)
		leave
		retn
_Z29DevShotGenerator_BuildMapListv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDevShotGenerator::EnableDevShotGeneration(bool)
_ZN17CDevShotGenerator23EnableDevShotGenerationEb proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	byte ptr [eax],	1
		mov	[eax+8], dl
		pop	ebp
		retn
_ZN17CDevShotGenerator23EnableDevShotGenerationEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDevShotGenerator::Shutdown(void)
_ZN17CDevShotGenerator8ShutdownEv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN17CDevShotGenerator8ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDevShotGenerator::StartDevShotGeneration(void)
_ZN17CDevShotGenerator22StartDevShotGenerationEv proc near ; CODE XREF:	Host_Init(bool)+5C8p

var_114		= dword	ptr -114h
src		= byte ptr -10Fh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 124h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN17CDevShotGenerator12BuildMapListEv ; CDevShotGenerator::BuildMapList(void)
		mov	eax, [ebx+4]
		shl	eax, 6
		add	eax, [ebx+0Ch]
		mov	dword ptr [esp+4], offset aMapS	; "map %s\n"
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_114]
		mov	[esp], eax	; int
		call	_ZN8CFmtStrNILi256EEC2EPKcz ; CFmtStrN<256>::CFmtStrN(char  const*,...)
		lea	eax, [ebp+src]
		mov	[esp], eax	; src
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
		add	dword ptr [ebx+4], 1
		add	esp, 124h
		pop	ebx
		pop	ebp
		retn
_ZN17CDevShotGenerator22StartDevShotGenerationEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDevShotGenerator::NextMap(void)
_ZN17CDevShotGenerator7NextMapEv proc near ; CODE XREF:	CL_DevShots_NextMap(void)+Dp

var_114		= dword	ptr -114h
src		= byte ptr -10Fh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 124h
		mov	ebx, [ebp+arg_0]
		cmp	byte ptr [ebx],	0
		jz	short loc_E15B0
		mov	eax, [ebx+4]
		test	eax, eax
		js	short loc_E15C0
		cmp	eax, [ebx+18h]
		jge	short loc_E15C0
		shl	eax, 6
		add	eax, [ebx+0Ch]
		mov	dword ptr [esp+4], offset aMapS	; "map %s\n"
		mov	[esp+8], eax	; arg
		lea	eax, [ebp+var_114]
		mov	[esp], eax	; int
		call	_ZN8CFmtStrNILi256EEC2EPKcz ; CFmtStrN<256>::CFmtStrN(char  const*,...)
		lea	eax, [ebp+src]
		mov	[esp], eax	; src
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
		add	dword ptr [ebx+4], 1

loc_E15B0:				; CODE XREF: CDevShotGenerator::NextMap(void)+10j
		add	esp, 124h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E15C0:				; CODE XREF: CDevShotGenerator::NextMap(void)+17j
					; CDevShotGenerator::NextMap(void)+1Cj
		mov	dword ptr [esp], offset	aQuit_0	; "quit\n"
		call	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
		add	esp, 124h
		pop	ebx
		pop	ebp
		retn
_ZN17CDevShotGenerator7NextMapEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CL_DevShots_NextMap(void)
_Z19CL_DevShots_NextMapv proc near	; DATA XREF: _GLOBAL__sub_I__Z22DevShotGenerator_Usagev+61o
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	g_DevShotGenerator
		call	_ZN17CDevShotGenerator7NextMapEv ; CDevShotGenerator::NextMap(void)
		leave
		retn
_Z19CL_DevShots_NextMapv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFmtStrN<256>::InitQuietTruncation(void)
_ZN8CFmtStrNILi256EE19InitQuietTruncationEv proc near
					; DATA XREF: .rodata:`vtable for'CFmtStrN<256>o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+4], 1
		pop	ebp
		retn
_ZN8CFmtStrNILi256EE19InitQuietTruncationEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CFmtStrN_256___CFmtStrN(int, char	*format, char arg)
_ZN8CFmtStrNILi256EEC2EPKcz proc near	; CODE XREF: CDevShotGenerator::StartDevShotGeneration(void)+33p
					; CDevShotGenerator::NextMap(void)+39p	...

var_9		= dword	ptr -9
arg_0		= dword	ptr  8
format		= dword	ptr  0Ch
arg		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 34h
		mov	byte ptr [ebp+var_9], 0
		mov	ebx, [ebp+arg_0]
		lea	edx, [ebp+var_9]
		mov	dword ptr [ebx], (offset _ZTV8CFmtStrNILi256EE+8)
		mov	byte ptr [ebx+4], 1
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		mov	[esp+10h], edx	; int
		mov	dword ptr [esp+4], 100h	; maxlen
		mov	[esp+8], eax	; format
		lea	eax, [ebx+5]
		mov	[esp], eax	; s
		call	_Z14V_vsnprintfRetPciPKcS_Pb ; V_vsnprintfRet(char *,int,char  const*,char *,bool *)
		cmp	byte ptr [ebp+var_9], 0
		jz	short loc_E1670
		cmp	byte ptr [ebx+4], 0
		jnz	short loc_E1670
		mov	edx, ds:_ZZN8CFmtStrNILi256EEC1EPKczE10scAsserted ; CFmtStrN<256>::CFmtStrN(char  const*,...)::scAsserted
		cmp	edx, 4
		jg	short loc_E1670
		add	edx, 1
		mov	ds:_ZZN8CFmtStrNILi256EEC1EPKczE10scAsserted, edx ; CFmtStrN<256>::CFmtStrN(char  const*,...)::scAsserted

loc_E1670:				; CODE XREF: CFmtStrN<256>::CFmtStrN(char  const*,...)+44j
					; CFmtStrN<256>::CFmtStrN(char	const*,...)+4Aj ...
		mov	[ebx+108h], eax
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_ZN8CFmtStrNILi256EEC2EPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<maplist_map_t, int>::Purge(void)
_ZN10CUtlMemoryI13maplist_map_tiE5PurgeEv proc near
					; CODE XREF: CDevShotGenerator::~CDevShotGenerator()+1Cp
					; CDevShotGenerator::~CDevShotGenerator()+33j ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_E16AC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E16A5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_E16A5:				; CODE XREF: CUtlMemory<maplist_map_t,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_E16AC:				; CODE XREF: CUtlMemory<maplist_map_t,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI13maplist_map_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDevShotGenerator::~CDevShotGenerator()
_ZN17CDevShotGeneratorD2Ev proc	near	; DATA XREF: _GLOBAL__sub_I__Z22DevShotGenerator_Usagev+3Do

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+0Ch]
		mov	dword ptr [ebx+18h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI13maplist_map_tiE5PurgeEv ; CUtlMemory<maplist_map_t,int>::Purge(void)
		mov	eax, [ebx+0Ch]
		mov	[ebx+1Ch], eax
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_0], esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN10CUtlMemoryI13maplist_map_tiE5PurgeEv ; CUtlMemory<maplist_map_t,int>::Purge(void)
_ZN17CDevShotGeneratorD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZN13CIndexBuilderD2Ev_isra_19 proc near ; CODE	XREF: .text:000E23A2p
					; .text:000E2A5Cp ...
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		sub	esp, 14h
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_E1725
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jz	short loc_E1725
		mov	eax, [ebx]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]

loc_E1725:				; CODE XREF: _ZN13CIndexBuilderD2Ev_isra_19+Dj
					; _ZN13CIndexBuilderD2Ev_isra_19+19j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN13CIndexBuilderD2Ev_isra_19 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::UpdateBoundingBox(void)
_ZN9CDispInfo17UpdateBoundingBoxEv proc	near
					; CODE XREF: UpdateDispBBoxes(model_t *,int)+33p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ecx, 6753C21Ch
		mov	eax, 0E753C21Ch
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8
		mov	edx, [ebp+arg_0]
		mov	esi, [edx+1DCh]
		mov	[edx+8], ecx
		mov	[edx+0Ch], ecx
		mov	[edx+10h], ecx
		mov	[edx+14h], eax
		mov	[edx+18h], eax
		mov	[edx+1Ch], eax
		mov	ebx, [esi+30h]
		test	ebx, ebx
		jle	loc_E180A
		mov	ebx, [edx+34h]
		mov	edi, [edx+88h]
		mov	[ebp+var_14], eax
		fld	[ebp+var_14]
		mov	[ebp+var_14], ecx
		xor	ecx, ecx
		fld	st
		fld	st(1)
		mov	[ebp+var_10], ebx
		xor	ebx, ebx
		fld	[ebp+var_14]
		fld	st
		fld	st(1)
		jmp	short loc_E179A
; ---------------------------------------------------------------------------
		align 10h

loc_E1790:				; CODE XREF: CDispInfo::UpdateBoundingBox(void)+CCj
		fxch	st(5)
		fxch	st(4)
		fxch	st(3)
		fxch	st(2)
		fxch	st(1)

loc_E179A:				; CODE XREF: CDispInfo::UpdateBoundingBox(void)+5Dj
		lea	eax, [edi+ebx]
		fld	dword ptr [eax]
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fst	dword ptr [edx+8]
		fld	dword ptr [eax+4]
		fcomi	st, st(2)
		fcmovnb	st, st(2)
		fstp	st(2)
		fxch	st(1)
		fst	dword ptr [edx+0Ch]
		fld	dword ptr [eax+8]
		fcomi	st, st(3)
		fcmovnb	st, st(3)
		fstp	st(3)
		fxch	st(2)
		fst	dword ptr [edx+10h]
		fld	dword ptr [eax]
		fxch	st(4)
		fcomi	st, st(4)
		fcmovb	st, st(4)
		fstp	st(4)
		fxch	st(3)
		fst	dword ptr [edx+14h]
		fld	dword ptr [eax+4]
		fxch	st(5)
		fcomi	st, st(5)
		fcmovb	st, st(5)
		fstp	st(5)
		fxch	st(4)
		fst	dword ptr [edx+18h]
		fld	dword ptr [eax+8]
		fxch	st(6)
		fcomi	st, st(6)
		fcmovb	st, st(6)
		fstp	st(6)
		fxch	st(5)
		add	ecx, 1
		add	ebx, [ebp+var_10]
		fst	dword ptr [edx+1Ch]
		cmp	ecx, [esi+30h]
		jl	short loc_E1790
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st
		fstp	st

loc_E180A:				; CODE XREF: CDispInfo::UpdateBoundingBox(void)+33j
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDispInfo17UpdateBoundingBoxEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::TestAddDecalTri(int, unsigned short, CDispDecal *)
_ZN9CDispInfo15TestAddDecalTriEitP10CDispDecal proc near
					; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+EEp

var_B0		= dword	ptr -0B0h
var_AA		= word ptr -0AAh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_80		= byte ptr -80h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0CCh
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		movzx	edx, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		movzx	edi, byte ptr [ebx+0E4h]
		mov	eax, [ebx+0D8h]
		mov	[ebp+var_AA], dx
		mov	edx, esi
		mov	ecx, [ecx+14h]
		imul	edx, edi
		mov	[ebp+var_9C], ecx
		movzx	ecx, word ptr [eax+edx*2]
		lea	edx, [esi+1]
		add	esi, 2
		imul	edx, edi
		imul	esi, edi
		movzx	edx, word ptr [eax+edx*2]
		movzx	eax, word ptr [eax+esi*2]
		mov	esi, [ebx+34h]
		sub	cx, [ebx+2Ch]
		sub	dx, [ebx+2Ch]
		sub	ax, [ebx+2Ch]
		mov	[ebp+var_90], esi
		mov	esi, [ebx+88h]
		mov	edi, [ebp+var_90]
		mov	[ebp+var_1E], cx
		movzx	ecx, cx
		mov	[ebp+var_1C], dx
		movzx	edx, dx
		imul	edx, [ebp+var_90]
		mov	[ebp+var_1A], ax
		movzx	eax, ax
		imul	eax, [ebp+var_90]
		imul	edi, ecx
		add	edx, esi
		add	eax, esi
		add	edi, esi
		fld	dword ptr [edi]
		fld	dword ptr [edx]
		fsub	st, st(1)
		fstp	[ebp+var_94]
		fld	dword ptr [edi+4]
		fld	dword ptr [edx+4]
		fsub	st, st(1)
		fld	dword ptr [edi+8]
		fst	[ebp+var_8C]
		mov	edi, [ebp+arg_C]
		fsubr	dword ptr [edx+8]
		mov	edx, [ebp+var_9C]
		fld	dword ptr [eax]
		fsub	st, st(4)
		fld	dword ptr [eax+4]
		fsub	st, st(4)
		fst	[ebp+var_98]
		fld	[ebp+var_8C]
		fsubr	dword ptr [eax+8]
		fxch	st(1)
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(5)
		fsubp	st(1), st
		fxch	st(1)
		fmul	[ebp+var_94]
		fxch	st(3)
		fmul	st, st(2)
		fsubp	st(3), st
		fxch	st(1)
		fmulp	st(3), st
		fld	[ebp+var_98]
		fmul	[ebp+var_94]
		fsubp	st(3), st
		fld	st
		fmul	st, st(1)
		fld	st(2)
		fmul	st, st(3)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_B0]
		mov	eax, [ebp+var_B0]
		movd	xmm0, eax
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		subss	xmm0, xmm2
		mulss	xmm0, ds:dword_1EBD40
		mulss	xmm1, xmm0
		movss	[ebp+var_B0], xmm1
		fld	[ebp+var_B0]
		fxch	st(4)
		fsubr	dword ptr [edx+18h]
		fmulp	st(2), st
		fld	dword ptr [edx+14h]
		fsub	st, st(5)
		fmulp	st(1), st
		faddp	st(1), st
		fld	[ebp+var_8C]
		fsubr	dword ptr [edx+1Ch]
		fmulp	st(2), st
		faddp	st(1), st
		fmulp	st(1), st
		fld	dword ptr [edi+44h]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		jnb	loc_E1BF0
		fld	dword ptr [edi+20h]
		fld	dword ptr [edi+24h]
		fld	dword ptr [edi+28h]
		fstp	[ebp+var_8C]
		mov	edx, [ebx+50h]
		fld	dword ptr [edi+2Ch]
		fstp	[ebp+var_94]
		mov	eax, [ebx+0A4h]
		fld	dword ptr [edi+30h]
		fstp	[ebp+var_98]
		fld	dword ptr [edi+34h]
		mov	[ebp+var_A4], edx
		xor	edx, edx
		fstp	[ebp+var_A0]
		mov	[ebp+var_A8], eax
		fld	ds:flt_1EBAA4
		fxch	st(3)

loc_E1A02:				; CODE XREF: CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+27Ej
		lea	edi, [ebp+var_80]
		mov	eax, edx
		add	edx, 1
		shl	eax, 5
		add	eax, edi
		mov	edi, [ebp+var_90]
		fst	dword ptr [eax]
		imul	edi, ecx
		imul	ecx, [ebp+var_A4]
		add	edi, esi
		fld	dword ptr [edi+4]
		add	ecx, [ebp+var_A8]
		fst	dword ptr [eax+4]
		cmp	edx, 3
		fld	dword ptr [edi+8]
		fst	dword ptr [eax+8]
		fld	[ebp+var_98]
		fmul	st, st(2)
		mov	edi, [ecx]
		mov	ecx, [ecx+4]
		mov	[eax+18h], edi
		mov	[eax+1Ch], ecx
		mov	ecx, [ebp+var_9C]
		fsub	dword ptr [ecx+30h]
		fadd	st, st(6)
		fld	[ebp+var_A0]
		fmul	st, st(2)
		faddp	st(1), st
		fld	[ebp+var_94]
		fmul	st, st(4)
		faddp	st(1), st
		fxch	st(2)
		fmul	st, st(4)
		fsub	dword ptr [ecx+2Ch]
		fadd	st, st(6)
		fxch	st(1)
		fmul	[ebp+var_8C]
		faddp	st(1), st
		fxch	st(2)
		fmul	st, st(4)
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [eax+10h]
		fstp	dword ptr [eax+14h]
		jz	short loc_E1AA8
		movzx	ecx, [ebp+edx*2+var_1E]
		mov	eax, [ebp+var_90]
		imul	eax, ecx
		fld	dword ptr [esi+eax]
		jmp	loc_E1A02
; ---------------------------------------------------------------------------
		align 8

loc_E1AA8:				; CODE XREF: CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+26Bj
		fstp	st
		fstp	st
		fstp	st
		mov	esi, [ebp+var_9C]
		lea	edi, [ebp+var_80]
		mov	dword ptr [esp+10h], offset vec3_origin
		mov	dword ptr [esp+0Ch], 3
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		mov	[esp+8], esi
		call	_Z15R_DoDecalSHClipP10CDecalVertS0_P7decal_tiRK6Vector ; R_DoDecalSHClip(CDecalVert *,CDecalVert *,decal_t *,int,Vector	 const&)
		mov	[ebp+var_98], eax
		movzx	eax, word ptr [esi+4Eh]
		cmp	eax, 2
		jle	loc_E1BF2
		mov	[ebp+var_94], 6
		cmp	eax, 6
		cmovg	eax, [ebp+var_94]
		mov	[esp], ebx
		mov	[ebp+var_94], eax
		mov	[esp+8], eax
		movzx	eax, [ebp+var_AA]
		mov	[esp+4], eax
		call	_ZN9CDispInfo25AllocateDispDecalFragmentEti ; CDispInfo::AllocateDispDecalFragment(ushort,int)
		mov	ecx, [ebp+var_98]
		mov	[ebp+var_90], 0
		mov	edx, [ebp+var_98]
		mov	[ebp+var_8C], eax
		add	ecx, 10h
		lea	edi, [edx+18h]
		lea	esi, [esi+0]

loc_E1B48:				; CODE XREF: CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+399j
		mov	ebx, [ebp+var_90]
		mov	eax, [ebp+var_8C]
		add	[ebp+var_90], 1
		shl	ebx, 5
		mov	esi, ebx
		add	esi, [eax+5]
		mov	eax, [edx]
		mov	[esi], eax
		mov	eax, [edx+4]
		mov	[esi+4], eax
		mov	eax, [edx+8]
		mov	[esi+8], eax
		mov	eax, [ebp+var_8C]
		mov	esi, ebx
		add	esi, [eax+5]
		mov	eax, [ecx]
		mov	[esi+10h], eax
		mov	eax, [ecx+4]
		add	ecx, 20h
		mov	[esi+14h], eax
		mov	esi, edx
		mov	eax, [ebp+var_8C]
		sub	esi, [ebp+var_98]
		add	edx, 20h
		add	ebx, [eax+5]
		mov	eax, [esi+edi]
		mov	[ebx+18h], eax
		mov	esi, [esi+edi+4]
		mov	[ebx+1Ch], esi
		mov	ebx, [ebp+var_90]
		cmp	[ebp+var_94], ebx
		jg	short loc_E1B48
		mov	eax, [ebp+var_8C]
		movzx	edx, byte ptr [ebp+var_94]
		mov	esi, [ebp+var_9C]
		mov	ecx, [ebp+arg_C]
		mov	[eax+4], dl
		movzx	edx, dl
		mov	[eax], esi
		add	[ecx+0Eh], dx
		movzx	edx, word ptr [ecx+10h]
		movzx	eax, byte ptr [eax+4]
		lea	eax, [edx+eax-2]
		mov	[ecx+10h], ax
		jmp	short loc_E1BF2
; ---------------------------------------------------------------------------
		align 10h

loc_E1BF0:				; CODE XREF: CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+193j
		fstp	st

loc_E1BF2:				; CODE XREF: CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+2C8j
					; CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+3CDj
		add	esp, 0CCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDispInfo15TestAddDecalTriEitP10CDispDecal endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::TestAddDecalTri(int, unsigned short, CDispShadowDecal *)
_ZN9CDispInfo15TestAddDecalTriEitP16CDispShadowDecal proc near
					; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+BDp
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo15TestAddDecalTriEitP16CDispShadowDecal endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::CullDecals(int, CDispDecal	**, int, CDispDecal **,	int &)
_ZN9CDispInfo10CullDecalsEiPP10CDispDecaliS2_Ri	proc near

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8
		mov	esi, [ebp+arg_C]
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		test	esi, esi
		mov	dword ptr [eax], 0
		jle	short loc_E1C69
		mov	ebx, ecx
		mov	edx, 1
		shl	edx, cl
		shr	ebx, 5
		xor	ecx, ecx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_14], edx
		nop
		lea	esi, [esi+0]

loc_E1C48:				; CODE XREF: CDispInfo::CullDecals(int,CDispDecal **,int,CDispDecal **,int &)+57j
		mov	esi, [edi+ecx*4]
		mov	ebx, [ebp+var_14]
		mov	edx, [ebp+var_10]
		test	[esi+edx*4], ebx
		jz	short loc_E1C61
		mov	edx, [eax]
		mov	ebx, [ebp+arg_10]
		mov	[ebx+edx*4], esi
		add	dword ptr [eax], 1

loc_E1C61:				; CODE XREF: CDispInfo::CullDecals(int,CDispDecal **,int,CDispDecal **,int &)+44j
		add	ecx, 1
		cmp	ecx, [ebp+arg_C]
		jnz	short loc_E1C48

loc_E1C69:				; CODE XREF: CDispInfo::CullDecals(int,CDispDecal **,int,CDispDecal **,int &)+1Dj
		add	esp, 8
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDispInfo10CullDecalsEiPP10CDispDecaliS2_Ri	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::SpecifyDynamicMesh(void)
_ZN9CDispInfo18SpecifyDynamicMeshEv proc near

var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_204		= byte ptr -204h
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_154		= byte ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= byte ptr -148h
var_144		= dword	ptr -144h
var_138		= byte ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_110		= dword	ptr -110h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A4		= byte ptr -0A4h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 22Ch
		mov	eax, ds:materials
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+188h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	loc_E22A0
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8]
		mov	eax, [ebp+var_1C]

loc_E1CB2:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+622j
		mov	edx, [eax]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	dword ptr [edx+0E0h]
		mov	[ebp+var_148], 0
		lea	ebx, [ebp+var_204]
		mov	esi, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_150], 0
		mov	[ebp+var_134], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_12C], 0
		mov	edi, [eax+20h]
		mov	[ebp+var_124], 0
		mov	eax, [eax+1DCh]
		mov	[ebp+var_120], 0
		mov	[ebp+var_11C], 0FFFFFFFFh
		mov	[ebp+var_118], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_24], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_5C], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_C4], 0FFFFFFFFh
		mov	eax, [eax+30h]
		mov	[ebp+var_150], esi
		mov	[ebp+var_14C], 2
		mov	[ebp+var_20C], eax
		mov	eax, [esi]
		mov	dword ptr [esp+4], 2
		mov	[esp], esi
		call	dword ptr [eax+30h]
		mov	eax, [ebp+var_150]
		mov	ecx, [ebp+var_20C]
		mov	edx, [eax]
		mov	[esp+0Ch], ebx
		mov	[esp+8], edi
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+4Ch]
		lea	eax, [esi+4]
		mov	[ebp+var_130], edi
		mov	ecx, 29h
		mov	[ebp+var_134], eax
		mov	eax, [ebp+var_168]
		mov	[ebp+var_6C], esi
		mov	esi, ebx
		mov	edx, [ebp+var_C4]
		mov	[ebp+var_12C], 0
		mov	[ebp+var_114], 0
		mov	[ebp+var_214], eax
		mov	[ebp+var_128], eax
		mov	eax, [ebp+var_160]
		mov	[ebp+var_124], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_68], 0
		mov	[ebp+var_144], eax
		movzx	eax, [ebp+var_154]
		mov	[ebp+var_138], al
		lea	eax, [ebp+var_110]
		mov	edi, eax
		rep movsd
		cmp	[ebp+var_C0], 1
		mov	ecx, [ebp+var_20C]
		sbb	eax, eax
		not	eax
		mov	[ebp+var_64], ecx
		and	eax, 2
		cmp	edx, 0FFFFFFFFh
		cmovz	edx, [ebp+var_C4]
		mov	[ebp+var_C0], eax
		cmp	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_C4], edx
		jz	loc_E2280

loc_E1E7D:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+619j
		mov	eax, [ebp+var_B0]
		mov	[ebp+var_5C], 0
		lea	esi, [ebp+var_84]
		mov	edx, [ebp+var_BC]
		mov	[ebp+var_54], eax
		lea	eax, [ebp+var_A4]
		mov	[ebp+var_58], edx
		lea	esi, [esi+0]

loc_E1EA8:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+232j
		mov	ecx, [eax]
		mov	[eax+54h], ecx
		add	eax, 4
		cmp	eax, esi
		jnz	short loc_E1EA8
		mov	eax, [ebp+var_AC]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_30], eax
		mov	eax, [ecx+1DCh]
		mov	edi, [eax+30h]
		test	edi, edi
		jle	loc_E203B
		mov	esi, [ebp+arg_0]
		xor	ecx, ecx
		mov	[ebp+var_20C], edi
		lea	esi, [esi+0]

loc_E1EE0:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+3B5j
		mov	eax, ecx
		shl	eax, 6
		add	eax, [esi+108h]
		mov	edi, [eax]
		mov	[edx], edi
		mov	edi, [eax+4]
		mov	[edx+4], edi
		mov	edi, [eax+8]
		mov	[edx+8], edi
		mov	edi, [eax+30h]
		mov	edx, [ebp+var_50]
		mov	[edx], edi
		mov	edi, [eax+34h]
		mov	[edx+4], edi
		mov	edi, [eax+38h]
		mov	edx, [ebp+var_4C]
		mov	[edx], edi
		mov	edi, [eax+3Ch]
		mov	[edx+4], edi
		mov	edi, [esi+30h]
		mov	edx, [ebp+var_48]
		mov	[edx], edi
		mov	dword ptr [edx+4], 0
		mov	edi, [eax+0Ch]
		mov	edx, [ebx+1B0h]
		mov	[edx], edi
		mov	edi, [eax+10h]
		mov	[edx+4], edi
		mov	edi, [eax+14h]
		mov	[edx+8], edi
		mov	edx, [ebp+var_D8]
		mov	edi, [eax+18h]
		imul	edx, [ebp+var_5C]
		add	edx, [ebp+var_84]
		mov	[edx], edi
		mov	edi, [eax+1Ch]
		mov	[edx+4], edi
		mov	edi, [eax+20h]
		mov	[edx+8], edi
		mov	edx, [ebp+var_D4]
		mov	edi, [eax+24h]
		imul	edx, [ebp+var_5C]
		add	edx, [ebp+var_80]
		mov	[edx], edi
		mov	edi, [eax+28h]
		mov	[edx+4], edi
		mov	eax, [eax+2Ch]
		mov	[edx+8], eax
		mov	eax, [ebp+var_5C]
		add	eax, 1
		cmp	eax, [ebp+var_60]
		mov	[ebp+var_5C], eax
		jle	short loc_E1F8D
		mov	[ebp+var_60], eax

loc_E1F8D:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+308j
		mov	eax, [ebx+1B0h]
		add	ecx, 1
		mov	edx, [ebx+1ACh]
		add	eax, [ebp+var_104]
		add	edx, [ebp+var_110]
		mov	[ebp+var_54], eax
		mov	eax, [ebp+var_100]
		mov	[ebp+var_58], edx
		add	[ebp+var_30], eax
		mov	eax, [ebx+1B4h]
		add	eax, [ebp+var_F8]
		mov	[ebp+var_50], eax
		mov	eax, [ebx+1B8h]
		add	eax, [ebp+var_F4]
		mov	[ebp+var_4C], eax
		mov	eax, [ebx+1BCh]
		add	eax, [ebp+var_F0]
		mov	[ebp+var_48], eax
		mov	eax, [ebx+1C0h]
		add	eax, [ebp+var_EC]
		mov	[ebp+var_44], eax
		mov	eax, [ebx+1C4h]
		add	eax, [ebp+var_E8]
		mov	[ebp+var_40], eax
		mov	eax, [ebx+1C8h]
		add	eax, [ebp+var_E4]
		mov	[ebp+var_3C], eax
		mov	eax, [ebx+1CCh]
		add	eax, [ebp+var_E0]
		mov	[ebp+var_38], eax
		mov	eax, [ebx+1D0h]
		add	eax, [ebp+var_DC]
		cmp	ecx, [ebp+var_20C]
		mov	[ebp+var_34], eax
		jnz	loc_E1EE0

loc_E203B:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+24Bj
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+20h]
		test	esi, esi
		jle	short loc_E2097
		mov	eax, [ebp+var_124]
		xor	edx, edx
		mov	esi, [ebp+arg_0]

loc_E2050:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+415j
		mov	ecx, [ebp+var_128]
		mov	edi, [esi+0F4h]
		sub	cx, [esi+2Ch]
		add	cx, [edi+edx*2]
		mov	edi, [ebp+var_144]
		mov	[edi+eax*2], cx
		movzx	eax, [ebp+var_138]
		add	eax, [ebp+var_124]
		cmp	eax, [ebp+var_12C]
		mov	[ebp+var_124], eax
		jle	short loc_E208F
		mov	[ebp+var_12C], eax

loc_E208F:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+407j
		add	edx, 1
		cmp	[esi+20h], edx
		jg	short loc_E2050

loc_E2097:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+3C3j
		cmp	[ebp+var_148], 0
		jnz	loc_E2178
		mov	ecx, [ebp+var_12C]
		mov	eax, [ebp+var_60]

loc_E20AD:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+522j
					; CDispInfo::SpecifyDynamicMesh(void)+5E1j ...
		mov	edx, [ebp+var_150]
		mov	esi, [edx]
		mov	[esp+0Ch], ebx
		mov	[esp+8], ecx
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [esi+58h]
		mov	eax, [ebp+var_150]
		mov	[ebp+var_134], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_C4], 0FFFFFFFFh
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp], eax
		call	dword ptr [edx+34h]
		mov	[ebp+var_150], 0
		mov	eax, [ebp+var_6C]
		test	eax, eax
		jz	short loc_E2132
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	loc_E21C0

loc_E2132:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+4A0j
					; CDispInfo::SpecifyDynamicMesh(void)+54Bj
		mov	eax, [ebp+var_134]
		test	eax, eax
		jz	short loc_E2148
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	short loc_E21B0

loc_E2148:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+4BAj
					; CDispInfo::SpecifyDynamicMesh(void)+53Ej
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_E2166
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_E2166
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_E2166:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+4CDj
					; CDispInfo::SpecifyDynamicMesh(void)+4DCj
		add	esp, 22Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E2178:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+41Ej
		mov	edi, [ebp+var_14C]
		mov	eax, [ebp+var_60]
		lea	ecx, [edi-4]
		cmp	ecx, 4		; switch 5 cases
		mov	edx, eax
		jbe	loc_E2278

loc_E218F:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+637j
					; CDispInfo::SpecifyDynamicMesh(void)+640j ...
		movzx	esi, [ebp+var_138] ; jumptable 000E2278	default	case
		mov	ecx, esi
		test	cl, cl
		jnz	short loc_E21D0

loc_E219C:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+575j
		mov	ecx, [ebp+var_12C]
		jmp	loc_E20AD
; ---------------------------------------------------------------------------
		align 10h

loc_E21B0:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+4C6j
		mov	eax, [ebp+var_134]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	short loc_E2148
; ---------------------------------------------------------------------------

loc_E21C0:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+4ACj
		mov	eax, [ebp+var_6C]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	loc_E2132
; ---------------------------------------------------------------------------

loc_E21D0:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+51Aj
		mov	ecx, [ebp+var_124]
		mov	[ebp+var_20C], ecx
		mov	ecx, [ebp+var_130]
		sub	ecx, [ebp+var_20C]
		cmp	edx, ecx
		cmovle	ecx, edx
		test	ecx, ecx
		mov	[ebp+var_210], ecx
		jz	short loc_E219C
		mov	edx, [ebp+var_20C]
		cmp	edi, 8		; switch 9 cases
		mov	ecx, [ebp+var_144]
		lea	edx, [ecx+edx*2]
		jbe	loc_E22DD

loc_E220F:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+660j
					; DATA XREF: .rodata:off_1F5FFCo
		mov	eax, [ebp+var_128] ; jumptable 000E22E0	default	case
		mov	[esp], edx
		mov	ecx, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], ecx
		call	_Z29GenerateSequentialIndexBufferPtii ;	GenerateSequentialIndexBuffer(ushort *,int,int)

loc_E222B:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+6BAj
					; CDispInfo::SpecifyDynamicMesh(void)+6DBj ...
		mov	eax, [ebp+var_124]
		movzx	esi, [ebp+var_138]
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_60]

loc_E2241:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+660j
					; CDispInfo::SpecifyDynamicMesh(void)+699j
					; DATA XREF: ...
		mov	ecx, esi	; jumptable 000E22E0 cases 0,8
		movzx	edx, cl
		mov	ecx, [ebp+var_12C]
		imul	edx, [ebp+var_210]
		add	edx, [ebp+var_20C]
		cmp	edx, ecx
		mov	[ebp+var_124], edx
		jle	loc_E20AD
		mov	[ebp+var_12C], edx
		mov	ecx, edx
		jmp	loc_E20AD
; ---------------------------------------------------------------------------
		align 8

loc_E2278:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+509j
		jmp	ds:off_1F5FE8[ecx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_E2280:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+1F7j
		mov	eax, [ebp+var_164]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_214]
		mov	[ebp+var_24], eax
		jmp	loc_E1E7D
; ---------------------------------------------------------------------------
		align 10h

loc_E22A0:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+21j
		xor	eax, eax
		jmp	loc_E1CB2
; ---------------------------------------------------------------------------

loc_E22A7:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void):loc_E2278j
					; DATA XREF: .rodata:off_1F5FE8o
		lea	edx, [eax+eax*2] ; jumptable 000E2278 case 3
		add	edx, edx
		lea	ecx, [edx+3]
		test	edx, edx
		cmovs	edx, ecx
		sar	edx, 2
		jmp	loc_E218F	; jumptable 000E2278 default case
; ---------------------------------------------------------------------------

loc_E22BC:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void):loc_E2278j
					; DATA XREF: .rodata:off_1F5FE8o
		lea	edx, [eax+eax*2-6] ; jumptable 000E2278	case 2
		jmp	loc_E218F	; jumptable 000E2278 default case
; ---------------------------------------------------------------------------

loc_E22C5:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void):loc_E2278j
					; DATA XREF: .rodata:off_1F5FE8o
		lea	edx, [eax+eax]	; jumptable 000E2278 case 1
		jmp	loc_E218F	; jumptable 000E2278 default case
; ---------------------------------------------------------------------------

loc_E22CD:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void):loc_E2278j
					; DATA XREF: .rodata:off_1F5FE8o
		lea	edx, [eax+eax-2] ; jumptable 000E2278 case 0
		jmp	loc_E218F	; jumptable 000E2278 default case
; ---------------------------------------------------------------------------

loc_E22D6:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void):loc_E2278j
					; DATA XREF: .rodata:off_1F5FE8o
		xor	edx, edx	; jumptable 000E2278 case 4
		jmp	loc_E218F	; jumptable 000E2278 default case
; ---------------------------------------------------------------------------

loc_E22DD:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+589j
		lea	esi, [esi+0]
		jmp	ds:off_1F5FFC[edi*4] ; switch jump

loc_E22E7:				; DATA XREF: .rodata:off_1F5FFCo
		mov	eax, [ebp+var_128] ; jumptable 000E22E0	case 7
		mov	[esp], edx
		mov	[esp+8], eax
		mov	eax, [ebp+var_210]
		mov	[esp+4], eax
		call	_Z23GenerateQuadIndexBufferPtii	; GenerateQuadIndexBuffer(ushort *,int,int)
		mov	edx, [ebp+var_124]
		movzx	esi, [ebp+var_138]
		mov	eax, [ebp+var_60]
		mov	[ebp+var_20C], edx
		jmp	loc_E2241	; jumptable 000E22E0 cases 0,8
; ---------------------------------------------------------------------------

loc_E231E:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+660j
					; DATA XREF: .rodata:off_1F5FFCo
		mov	eax, [ebp+var_128] ; jumptable 000E22E0	case 6
		mov	[esp], edx
		mov	ecx, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], ecx
		call	_Z26GeneratePolygonIndexBufferPtii ; GeneratePolygonIndexBuffer(ushort *,int,int)
		jmp	loc_E222B
; ---------------------------------------------------------------------------

loc_E233F:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+660j
					; DATA XREF: .rodata:off_1F5FFCo
		mov	eax, [ebp+var_128] ; jumptable 000E22E0	case 5
		mov	[esp], edx
		mov	ecx, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], ecx
		call	_Z27GenerateLineLoopIndexBufferPtii ; GenerateLineLoopIndexBuffer(ushort *,int,int)
		jmp	loc_E222B
; ---------------------------------------------------------------------------

loc_E2360:				; CODE XREF: CDispInfo::SpecifyDynamicMesh(void)+660j
					; DATA XREF: .rodata:off_1F5FFCo
		mov	eax, [ebp+var_128] ; jumptable 000E22E0	case 4
		mov	[esp], edx
		mov	ecx, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], ecx
		call	_Z28GenerateLineStripIndexBufferPtii ; GenerateLineStripIndexBuffer(ushort *,int,int)
		jmp	loc_E222B
_ZN9CDispInfo18SpecifyDynamicMeshEv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_E2392
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_E2392:				; CODE XREF: .text:000E2388j
					; .text:000E23B2j ...
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-134h]
		call	_ZN13CIndexBuilderD2Ev_isra_19

loc_E23A7:				; CODE XREF: .text:000E23C0j
					; .text:000E23C4j
		lea	eax, [ebp-1Ch]
		mov	[esp], eax
		call	_ZN20CMatRenderContextPtrD2Ev ;	CMatRenderContextPtr::~CMatRenderContextPtr()
		jmp	short loc_E2392
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN12CMeshBuilderD2Ev ;	CMeshBuilder::~CMeshBuilder()
		mov	ebx, esi
		jmp	short loc_E23A7
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_E23A7
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_E2392
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		jmp	short loc_E2392
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::SpecifyWalkableDynamicMesh(void)
_ZN9CDispInfo26SpecifyWalkableDynamicMeshEv proc near

var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_204		= byte ptr -204h
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_154		= byte ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= byte ptr -148h
var_144		= dword	ptr -144h
var_138		= byte ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_110		= dword	ptr -110h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A4		= byte ptr -0A4h
var_84		= byte ptr -84h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 22Ch
		mov	eax, ds:materials
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+188h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	loc_E2970
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8]
		mov	eax, [ebp+var_1C]

loc_E2412:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+592j
		mov	edx, [eax]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+0E0h]
		mov	[ebp+var_148], 0
		lea	ebx, [ebp+var_204]
		mov	esi, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_150], 0
		mov	[ebp+var_134], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_12C], 0
		mov	edi, [eax+23Ch]
		mov	[ebp+var_124], 0
		mov	eax, [eax+1DCh]
		mov	[ebp+var_120], 0
		mov	[ebp+var_11C], 0FFFFFFFFh
		mov	[ebp+var_118], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_24], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_5C], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_C4], 0FFFFFFFFh
		mov	eax, [eax+30h]
		mov	[ebp+var_150], esi
		mov	[ebp+var_14C], 2
		mov	[ebp+var_210], eax
		mov	eax, [esi]
		mov	dword ptr [esp+4], 2
		mov	[esp], esi
		call	dword ptr [eax+30h]
		mov	eax, [ebp+var_150]
		mov	ecx, [ebp+var_210]
		mov	edx, [eax]
		mov	[esp+0Ch], ebx
		mov	[esp+8], edi
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+4Ch]
		lea	eax, [esi+4]
		mov	[ebp+var_130], edi
		mov	ecx, 29h
		mov	[ebp+var_134], eax
		mov	eax, [ebp+var_168]
		mov	[ebp+var_6C], esi
		mov	esi, ebx
		mov	edx, [ebp+var_C4]
		mov	[ebp+var_12C], 0
		mov	[ebp+var_114], 0
		mov	[ebp+var_214], eax
		mov	[ebp+var_128], eax
		mov	eax, [ebp+var_160]
		mov	[ebp+var_124], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_68], 0
		mov	[ebp+var_144], eax
		movzx	eax, [ebp+var_154]
		mov	[ebp+var_138], al
		lea	eax, [ebp+var_110]
		mov	edi, eax
		rep movsd
		cmp	[ebp+var_C0], 1
		mov	ecx, [ebp+var_210]
		sbb	eax, eax
		not	eax
		mov	[ebp+var_64], ecx
		and	eax, 2
		cmp	edx, 0FFFFFFFFh
		cmovz	edx, [ebp+var_C4]
		mov	[ebp+var_C0], eax
		cmp	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_C4], edx
		jz	loc_E2950

loc_E25E0:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+589j
		mov	edx, [ebp+var_B0]
		mov	[ebp+var_5C], 0
		lea	esi, [ebp+var_84]
		mov	eax, [ebp+var_BC]
		mov	[ebp+var_54], edx
		lea	edx, [ebp+var_A4]
		mov	[ebp+var_58], eax
		lea	esi, [esi+0]

loc_E2608:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+232j
		mov	ecx, [edx]
		mov	[edx+54h], ecx
		add	edx, 4
		cmp	edx, esi
		jnz	short loc_E2608
		mov	edx, [ebp+var_AC]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_30], edx
		mov	edx, [ecx+1DCh]
		mov	edi, [edx+30h]
		test	edi, edi
		jle	loc_E2711
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_E2638:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+32Bj
		mov	esi, [ebp+arg_0]
		mov	edx, ecx
		shl	edx, 6
		add	edx, [esi+108h]
		mov	esi, [edx]
		mov	[eax], esi
		mov	esi, [edx+4]
		mov	[eax+4], esi
		mov	edx, [edx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_5C]
		add	eax, 1
		cmp	eax, [ebp+var_60]
		mov	[ebp+var_5C], eax
		jle	short loc_E2667
		mov	[ebp+var_60], eax

loc_E2667:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+282j
		mov	edx, [ebx+1B0h]
		add	ecx, 1
		mov	eax, [ebx+1ACh]
		add	edx, [ebp+var_104]
		add	eax, [ebp+var_110]
		mov	[ebp+var_54], edx
		mov	edx, [ebp+var_100]
		mov	[ebp+var_58], eax
		add	[ebp+var_30], edx
		mov	edx, [ebx+1B4h]
		add	edx, [ebp+var_F8]
		mov	[ebp+var_50], edx
		mov	edx, [ebx+1B8h]
		add	edx, [ebp+var_F4]
		mov	[ebp+var_4C], edx
		mov	edx, [ebx+1BCh]
		add	edx, [ebp+var_F0]
		mov	[ebp+var_48], edx
		mov	edx, [ebx+1C0h]
		add	edx, [ebp+var_EC]
		mov	[ebp+var_44], edx
		mov	edx, [ebx+1C4h]
		add	edx, [ebp+var_E8]
		mov	[ebp+var_40], edx
		mov	edx, [ebx+1C8h]
		add	edx, [ebp+var_E4]
		mov	[ebp+var_3C], edx
		mov	edx, [ebx+1CCh]
		add	edx, [ebp+var_E0]
		mov	[ebp+var_38], edx
		mov	edx, [ebx+1D0h]
		add	edx, [ebp+var_DC]
		cmp	ecx, edi
		mov	[ebp+var_34], edx
		jnz	loc_E2638

loc_E2711:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+24Bj
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+23Ch]
		test	esi, esi
		jle	short loc_E2776
		mov	eax, [ebp+var_124]
		xor	edx, edx
		mov	ecx, [ebp+arg_0]
		lea	esi, [esi+0]

loc_E2730:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+394j
		mov	esi, [ecx+240h]
		mov	edi, [ebp+var_128]
		add	di, [esi+edx*2]
		mov	esi, [ebp+var_144]
		mov	[esi+eax*2], di
		movzx	eax, [ebp+var_138]
		add	eax, [ebp+var_124]
		cmp	eax, [ebp+var_12C]
		mov	[ebp+var_124], eax
		jle	short loc_E276B
		mov	[ebp+var_12C], eax

loc_E276B:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+383j
		add	edx, 1
		cmp	[ecx+23Ch], edx
		jg	short loc_E2730

loc_E2776:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+33Cj
		cmp	[ebp+var_148], 0
		jnz	loc_E2850
		mov	ecx, [ebp+var_12C]
		mov	eax, [ebp+var_60]

loc_E278C:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+49Aj
					; CDispInfo::SpecifyWalkableDynamicMesh(void)+551j ...
		mov	edx, [ebp+var_150]
		mov	esi, [edx]
		mov	[esp+0Ch], ebx
		mov	[esp+8], ecx
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [esi+58h]
		mov	eax, [ebp+var_150]
		mov	[ebp+var_134], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_C4], 0FFFFFFFFh
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp], eax
		call	dword ptr [edx+34h]
		mov	[ebp+var_150], 0
		mov	eax, [ebp+var_6C]
		test	eax, eax
		jz	short loc_E2811
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	loc_E2890

loc_E2811:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+41Fj
					; CDispInfo::SpecifyWalkableDynamicMesh(void)+4BBj
		mov	eax, [ebp+var_134]
		test	eax, eax
		jz	short loc_E2827
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	short loc_E2880

loc_E2827:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+439j
					; CDispInfo::SpecifyWalkableDynamicMesh(void)+4AEj
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_E2845
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_E2845
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_E2845:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+44Cj
					; CDispInfo::SpecifyWalkableDynamicMesh(void)+45Bj
		add	esp, 22Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_E2850:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+39Dj
		mov	edi, [ebp+var_14C]
		mov	eax, [ebp+var_60]
		lea	ecx, [edi-4]
		cmp	ecx, 4		; switch 5 cases
		mov	edx, eax
		jbe	loc_E2948

loc_E2867:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+5A7j
					; CDispInfo::SpecifyWalkableDynamicMesh(void)+5B0j ...
		movzx	esi, [ebp+var_138] ; jumptable 000E2948	default	case
		mov	ecx, esi
		test	cl, cl
		jnz	short loc_E28A0

loc_E2874:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+4E5j
		mov	ecx, [ebp+var_12C]
		jmp	loc_E278C
; ---------------------------------------------------------------------------
		align 10h

loc_E2880:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+445j
		mov	eax, [ebp+var_134]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	short loc_E2827
; ---------------------------------------------------------------------------

loc_E2890:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+42Bj
		mov	eax, [ebp+var_6C]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	loc_E2811
; ---------------------------------------------------------------------------

loc_E28A0:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+492j
		mov	ecx, [ebp+var_124]
		mov	[ebp+var_20C], ecx
		mov	ecx, [ebp+var_130]
		sub	ecx, [ebp+var_20C]
		cmp	edx, ecx
		cmovle	ecx, edx
		test	ecx, ecx
		mov	[ebp+var_210], ecx
		jz	short loc_E2874
		mov	edx, [ebp+var_20C]
		cmp	edi, 8		; switch 9 cases
		mov	ecx, [ebp+var_144]
		lea	edx, [ecx+edx*2]
		jbe	loc_E29AD

loc_E28DF:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F6034o
		mov	eax, [ebp+var_128] ; jumptable 000E29B0	default	case
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z29GenerateSequentialIndexBufferPtii ;	GenerateSequentialIndexBuffer(ushort *,int,int)

loc_E28FB:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+5F3j
					; CDispInfo::SpecifyWalkableDynamicMesh(void)+614j ...
		mov	eax, [ebp+var_124]
		movzx	esi, [ebp+var_138]
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_60]

loc_E2911:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F6034o
		mov	ecx, esi	; jumptable 000E29B0 cases 0,8
		movzx	edx, cl
		mov	ecx, [ebp+var_12C]
		imul	edx, [ebp+var_210]
		add	edx, [ebp+var_20C]
		cmp	edx, ecx
		mov	[ebp+var_124], edx
		jle	loc_E278C
		mov	[ebp+var_12C], edx
		mov	ecx, edx
		jmp	loc_E278C
; ---------------------------------------------------------------------------
		align 8

loc_E2948:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+481j
		jmp	ds:off_1F6020[ecx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_E2950:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+1FAj
		mov	eax, [ebp+var_164]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_214]
		mov	[ebp+var_24], eax
		jmp	loc_E25E0
; ---------------------------------------------------------------------------
		align 10h

loc_E2970:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+21j
		xor	eax, eax
		jmp	loc_E2412
; ---------------------------------------------------------------------------

loc_E2977:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void):loc_E2948j
					; DATA XREF: .rodata:off_1F6020o
		lea	edx, [eax+eax*2] ; jumptable 000E2948 case 3
		add	edx, edx
		lea	ecx, [edx+3]
		test	edx, edx
		cmovs	edx, ecx
		sar	edx, 2
		jmp	loc_E2867	; jumptable 000E2948 default case
; ---------------------------------------------------------------------------

loc_E298C:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void):loc_E2948j
					; DATA XREF: .rodata:off_1F6020o
		lea	edx, [eax+eax*2-6] ; jumptable 000E2948	case 2
		jmp	loc_E2867	; jumptable 000E2948 default case
; ---------------------------------------------------------------------------

loc_E2995:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void):loc_E2948j
					; DATA XREF: .rodata:off_1F6020o
		lea	edx, [eax+eax]	; jumptable 000E2948 case 1
		jmp	loc_E2867	; jumptable 000E2948 default case
; ---------------------------------------------------------------------------

loc_E299D:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void):loc_E2948j
					; DATA XREF: .rodata:off_1F6020o
		lea	edx, [eax+eax-2] ; jumptable 000E2948 case 0
		jmp	loc_E2867	; jumptable 000E2948 default case
; ---------------------------------------------------------------------------

loc_E29A6:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void):loc_E2948j
					; DATA XREF: .rodata:off_1F6020o
		xor	edx, edx	; jumptable 000E2948 case 4
		jmp	loc_E2867	; jumptable 000E2948 default case
; ---------------------------------------------------------------------------

loc_E29AD:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+4F9j
		lea	esi, [esi+0]
		jmp	ds:off_1F6034[edi*4] ; switch jump

loc_E29B7:				; DATA XREF: .rodata:off_1F6034o
		mov	eax, [ebp+var_128] ; jumptable 000E29B0	case 7
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z23GenerateQuadIndexBufferPtii	; GenerateQuadIndexBuffer(ushort *,int,int)
		jmp	loc_E28FB
; ---------------------------------------------------------------------------

loc_E29D8:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F6034o
		mov	eax, [ebp+var_128] ; jumptable 000E29B0	case 6
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z26GeneratePolygonIndexBufferPtii ; GeneratePolygonIndexBuffer(ushort *,int,int)
		jmp	loc_E28FB
; ---------------------------------------------------------------------------

loc_E29F9:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F6034o
		mov	eax, [ebp+var_128] ; jumptable 000E29B0	case 5
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z27GenerateLineLoopIndexBufferPtii ; GenerateLineLoopIndexBuffer(ushort *,int,int)
		jmp	loc_E28FB
; ---------------------------------------------------------------------------

loc_E2A1A:				; CODE XREF: CDispInfo::SpecifyWalkableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F6034o
		mov	eax, [ebp+var_128] ; jumptable 000E29B0	case 4
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z28GenerateLineStripIndexBufferPtii ; GenerateLineStripIndexBuffer(ushort *,int,int)
		jmp	loc_E28FB
_ZN9CDispInfo26SpecifyWalkableDynamicMeshEv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_E2A4C
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_E2A4C:				; CODE XREF: .text:000E2A42j
					; .text:000E2A6Cj ...
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-134h]
		call	_ZN13CIndexBuilderD2Ev_isra_19

loc_E2A61:				; CODE XREF: .text:000E2A7Aj
					; .text:000E2A7Ej
		lea	eax, [ebp-1Ch]
		mov	[esp], eax
		call	_ZN20CMatRenderContextPtrD2Ev ;	CMatRenderContextPtr::~CMatRenderContextPtr()
		jmp	short loc_E2A4C
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN12CMeshBuilderD2Ev ;	CMeshBuilder::~CMeshBuilder()
		mov	ebx, esi
		jmp	short loc_E2A61
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_E2A61
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_E2A4C
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		jmp	short loc_E2A4C
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::SpecifyBuildableDynamicMesh(void)
_ZN9CDispInfo27SpecifyBuildableDynamicMeshEv proc near

var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_204		= byte ptr -204h
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_154		= byte ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= byte ptr -148h
var_144		= dword	ptr -144h
var_138		= byte ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_110		= dword	ptr -110h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A4		= byte ptr -0A4h
var_84		= byte ptr -84h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 22Ch
		mov	eax, ds:materials
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+188h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	loc_E3030
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8]
		mov	eax, [ebp+var_1C]

loc_E2AD2:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+592j
		mov	edx, [eax]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+0E0h]
		mov	[ebp+var_148], 0
		lea	ebx, [ebp+var_204]
		mov	esi, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_150], 0
		mov	[ebp+var_134], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_12C], 0
		mov	edi, [eax+244h]
		mov	[ebp+var_124], 0
		mov	eax, [eax+1DCh]
		mov	[ebp+var_120], 0
		mov	[ebp+var_11C], 0FFFFFFFFh
		mov	[ebp+var_118], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_24], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_5C], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_C4], 0FFFFFFFFh
		mov	eax, [eax+30h]
		mov	[ebp+var_150], esi
		mov	[ebp+var_14C], 2
		mov	[ebp+var_210], eax
		mov	eax, [esi]
		mov	dword ptr [esp+4], 2
		mov	[esp], esi
		call	dword ptr [eax+30h]
		mov	eax, [ebp+var_150]
		mov	ecx, [ebp+var_210]
		mov	edx, [eax]
		mov	[esp+0Ch], ebx
		mov	[esp+8], edi
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+4Ch]
		lea	eax, [esi+4]
		mov	[ebp+var_130], edi
		mov	ecx, 29h
		mov	[ebp+var_134], eax
		mov	eax, [ebp+var_168]
		mov	[ebp+var_6C], esi
		mov	esi, ebx
		mov	edx, [ebp+var_C4]
		mov	[ebp+var_12C], 0
		mov	[ebp+var_114], 0
		mov	[ebp+var_214], eax
		mov	[ebp+var_128], eax
		mov	eax, [ebp+var_160]
		mov	[ebp+var_124], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_68], 0
		mov	[ebp+var_144], eax
		movzx	eax, [ebp+var_154]
		mov	[ebp+var_138], al
		lea	eax, [ebp+var_110]
		mov	edi, eax
		rep movsd
		cmp	[ebp+var_C0], 1
		mov	ecx, [ebp+var_210]
		sbb	eax, eax
		not	eax
		mov	[ebp+var_64], ecx
		and	eax, 2
		cmp	edx, 0FFFFFFFFh
		cmovz	edx, [ebp+var_C4]
		mov	[ebp+var_C0], eax
		cmp	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_C4], edx
		jz	loc_E3010

loc_E2CA0:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+589j
		mov	edx, [ebp+var_B0]
		mov	[ebp+var_5C], 0
		lea	esi, [ebp+var_84]
		mov	eax, [ebp+var_BC]
		mov	[ebp+var_54], edx
		lea	edx, [ebp+var_A4]
		mov	[ebp+var_58], eax
		lea	esi, [esi+0]

loc_E2CC8:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+232j
		mov	ecx, [edx]
		mov	[edx+54h], ecx
		add	edx, 4
		cmp	edx, esi
		jnz	short loc_E2CC8
		mov	edx, [ebp+var_AC]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_30], edx
		mov	edx, [ecx+1DCh]
		mov	edi, [edx+30h]
		test	edi, edi
		jle	loc_E2DD1
		xor	ecx, ecx
		nop
		lea	esi, [esi+0]

loc_E2CF8:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+32Bj
		mov	esi, [ebp+arg_0]
		mov	edx, ecx
		shl	edx, 6
		add	edx, [esi+108h]
		mov	esi, [edx]
		mov	[eax], esi
		mov	esi, [edx+4]
		mov	[eax+4], esi
		mov	edx, [edx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_5C]
		add	eax, 1
		cmp	eax, [ebp+var_60]
		mov	[ebp+var_5C], eax
		jle	short loc_E2D27
		mov	[ebp+var_60], eax

loc_E2D27:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+282j
		mov	edx, [ebx+1B0h]
		add	ecx, 1
		mov	eax, [ebx+1ACh]
		add	edx, [ebp+var_104]
		add	eax, [ebp+var_110]
		mov	[ebp+var_54], edx
		mov	edx, [ebp+var_100]
		mov	[ebp+var_58], eax
		add	[ebp+var_30], edx
		mov	edx, [ebx+1B4h]
		add	edx, [ebp+var_F8]
		mov	[ebp+var_50], edx
		mov	edx, [ebx+1B8h]
		add	edx, [ebp+var_F4]
		mov	[ebp+var_4C], edx
		mov	edx, [ebx+1BCh]
		add	edx, [ebp+var_F0]
		mov	[ebp+var_48], edx
		mov	edx, [ebx+1C0h]
		add	edx, [ebp+var_EC]
		mov	[ebp+var_44], edx
		mov	edx, [ebx+1C4h]
		add	edx, [ebp+var_E8]
		mov	[ebp+var_40], edx
		mov	edx, [ebx+1C8h]
		add	edx, [ebp+var_E4]
		mov	[ebp+var_3C], edx
		mov	edx, [ebx+1CCh]
		add	edx, [ebp+var_E0]
		mov	[ebp+var_38], edx
		mov	edx, [ebx+1D0h]
		add	edx, [ebp+var_DC]
		cmp	ecx, edi
		mov	[ebp+var_34], edx
		jnz	loc_E2CF8

loc_E2DD1:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+24Bj
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+244h]
		test	esi, esi
		jle	short loc_E2E36
		mov	eax, [ebp+var_124]
		xor	edx, edx
		mov	ecx, [ebp+arg_0]
		lea	esi, [esi+0]

loc_E2DF0:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+394j
		mov	esi, [ecx+248h]
		mov	edi, [ebp+var_128]
		add	di, [esi+edx*2]
		mov	esi, [ebp+var_144]
		mov	[esi+eax*2], di
		movzx	eax, [ebp+var_138]
		add	eax, [ebp+var_124]
		cmp	eax, [ebp+var_12C]
		mov	[ebp+var_124], eax
		jle	short loc_E2E2B
		mov	[ebp+var_12C], eax

loc_E2E2B:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+383j
		add	edx, 1
		cmp	[ecx+244h], edx
		jg	short loc_E2DF0

loc_E2E36:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+33Cj
		cmp	[ebp+var_148], 0
		jnz	loc_E2F10
		mov	ecx, [ebp+var_12C]
		mov	eax, [ebp+var_60]

loc_E2E4C:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+49Aj
					; CDispInfo::SpecifyBuildableDynamicMesh(void)+551j ...
		mov	edx, [ebp+var_150]
		mov	esi, [edx]
		mov	[esp+0Ch], ebx
		mov	[esp+8], ecx
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [esi+58h]
		mov	eax, [ebp+var_150]
		mov	[ebp+var_134], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_C4], 0FFFFFFFFh
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp], eax
		call	dword ptr [edx+34h]
		mov	[ebp+var_150], 0
		mov	eax, [ebp+var_6C]
		test	eax, eax
		jz	short loc_E2ED1
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	loc_E2F50

loc_E2ED1:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+41Fj
					; CDispInfo::SpecifyBuildableDynamicMesh(void)+4BBj
		mov	eax, [ebp+var_134]
		test	eax, eax
		jz	short loc_E2EE7
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	short loc_E2F40

loc_E2EE7:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+439j
					; CDispInfo::SpecifyBuildableDynamicMesh(void)+4AEj
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_E2F05
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_E2F05
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_E2F05:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+44Cj
					; CDispInfo::SpecifyBuildableDynamicMesh(void)+45Bj
		add	esp, 22Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_E2F10:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+39Dj
		mov	edi, [ebp+var_14C]
		mov	eax, [ebp+var_60]
		lea	ecx, [edi-4]
		cmp	ecx, 4		; switch 5 cases
		mov	edx, eax
		jbe	loc_E3008

loc_E2F27:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+5A7j
					; CDispInfo::SpecifyBuildableDynamicMesh(void)+5B0j ...
		movzx	esi, [ebp+var_138] ; jumptable 000E3008	default	case
		mov	ecx, esi
		test	cl, cl
		jnz	short loc_E2F60

loc_E2F34:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+4E5j
		mov	ecx, [ebp+var_12C]
		jmp	loc_E2E4C
; ---------------------------------------------------------------------------
		align 10h

loc_E2F40:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+445j
		mov	eax, [ebp+var_134]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	short loc_E2EE7
; ---------------------------------------------------------------------------

loc_E2F50:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+42Bj
		mov	eax, [ebp+var_6C]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	loc_E2ED1
; ---------------------------------------------------------------------------

loc_E2F60:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+492j
		mov	ecx, [ebp+var_124]
		mov	[ebp+var_20C], ecx
		mov	ecx, [ebp+var_130]
		sub	ecx, [ebp+var_20C]
		cmp	edx, ecx
		cmovle	ecx, edx
		test	ecx, ecx
		mov	[ebp+var_210], ecx
		jz	short loc_E2F34
		mov	edx, [ebp+var_20C]
		cmp	edi, 8		; switch 9 cases
		mov	ecx, [ebp+var_144]
		lea	edx, [ecx+edx*2]
		jbe	loc_E306D

loc_E2F9F:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F606Co
		mov	eax, [ebp+var_128] ; jumptable 000E3070	default	case
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z29GenerateSequentialIndexBufferPtii ;	GenerateSequentialIndexBuffer(ushort *,int,int)

loc_E2FBB:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+5F3j
					; CDispInfo::SpecifyBuildableDynamicMesh(void)+614j ...
		mov	eax, [ebp+var_124]
		movzx	esi, [ebp+var_138]
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_60]

loc_E2FD1:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F606Co
		mov	ecx, esi	; jumptable 000E3070 cases 0,8
		movzx	edx, cl
		mov	ecx, [ebp+var_12C]
		imul	edx, [ebp+var_210]
		add	edx, [ebp+var_20C]
		cmp	edx, ecx
		mov	[ebp+var_124], edx
		jle	loc_E2E4C
		mov	[ebp+var_12C], edx
		mov	ecx, edx
		jmp	loc_E2E4C
; ---------------------------------------------------------------------------
		align 8

loc_E3008:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+481j
		jmp	ds:off_1F6058[ecx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_E3010:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+1FAj
		mov	eax, [ebp+var_164]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_214]
		mov	[ebp+var_24], eax
		jmp	loc_E2CA0
; ---------------------------------------------------------------------------
		align 10h

loc_E3030:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+21j
		xor	eax, eax
		jmp	loc_E2AD2
; ---------------------------------------------------------------------------

loc_E3037:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void):loc_E3008j
					; DATA XREF: .rodata:off_1F6058o
		lea	edx, [eax+eax*2] ; jumptable 000E3008 case 3
		add	edx, edx
		lea	ecx, [edx+3]
		test	edx, edx
		cmovs	edx, ecx
		sar	edx, 2
		jmp	loc_E2F27	; jumptable 000E3008 default case
; ---------------------------------------------------------------------------

loc_E304C:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void):loc_E3008j
					; DATA XREF: .rodata:off_1F6058o
		lea	edx, [eax+eax*2-6] ; jumptable 000E3008	case 2
		jmp	loc_E2F27	; jumptable 000E3008 default case
; ---------------------------------------------------------------------------

loc_E3055:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void):loc_E3008j
					; DATA XREF: .rodata:off_1F6058o
		lea	edx, [eax+eax]	; jumptable 000E3008 case 1
		jmp	loc_E2F27	; jumptable 000E3008 default case
; ---------------------------------------------------------------------------

loc_E305D:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void):loc_E3008j
					; DATA XREF: .rodata:off_1F6058o
		lea	edx, [eax+eax-2] ; jumptable 000E3008 case 0
		jmp	loc_E2F27	; jumptable 000E3008 default case
; ---------------------------------------------------------------------------

loc_E3066:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void):loc_E3008j
					; DATA XREF: .rodata:off_1F6058o
		xor	edx, edx	; jumptable 000E3008 case 4
		jmp	loc_E2F27	; jumptable 000E3008 default case
; ---------------------------------------------------------------------------

loc_E306D:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+4F9j
		lea	esi, [esi+0]
		jmp	ds:off_1F606C[edi*4] ; switch jump

loc_E3077:				; DATA XREF: .rodata:off_1F606Co
		mov	eax, [ebp+var_128] ; jumptable 000E3070	case 7
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z23GenerateQuadIndexBufferPtii	; GenerateQuadIndexBuffer(ushort *,int,int)
		jmp	loc_E2FBB
; ---------------------------------------------------------------------------

loc_E3098:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F606Co
		mov	eax, [ebp+var_128] ; jumptable 000E3070	case 6
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z26GeneratePolygonIndexBufferPtii ; GeneratePolygonIndexBuffer(ushort *,int,int)
		jmp	loc_E2FBB
; ---------------------------------------------------------------------------

loc_E30B9:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F606Co
		mov	eax, [ebp+var_128] ; jumptable 000E3070	case 5
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z27GenerateLineLoopIndexBufferPtii ; GenerateLineLoopIndexBuffer(ushort *,int,int)
		jmp	loc_E2FBB
; ---------------------------------------------------------------------------

loc_E30DA:				; CODE XREF: CDispInfo::SpecifyBuildableDynamicMesh(void)+5D0j
					; DATA XREF: .rodata:off_1F606Co
		mov	eax, [ebp+var_128] ; jumptable 000E3070	case 4
		mov	[esp], edx
		mov	esi, [ebp+var_210]
		mov	[esp+8], eax
		mov	[esp+4], esi
		call	_Z28GenerateLineStripIndexBufferPtii ; GenerateLineStripIndexBuffer(ushort *,int,int)
		jmp	loc_E2FBB
_ZN9CDispInfo27SpecifyBuildableDynamicMeshEv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_E310C
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_E310C:				; CODE XREF: .text:000E3102j
					; .text:000E312Cj ...
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-134h]
		call	_ZN13CIndexBuilderD2Ev_isra_19

loc_E3121:				; CODE XREF: .text:000E313Aj
					; .text:000E313Ej
		lea	eax, [ebp-1Ch]
		mov	[esp], eax
		call	_ZN20CMatRenderContextPtrD2Ev ;	CMatRenderContextPtr::~CMatRenderContextPtr()
		jmp	short loc_E310C
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN12CMeshBuilderD2Ev ;	CMeshBuilder::~CMeshBuilder()
		mov	ebx, esi
		jmp	short loc_E3121
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_E3121
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_E310C
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		jmp	short loc_E310C
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::InitializeActiveVerts(void)
_ZN9CDispInfo21InitializeActiveVertsEv proc near
					; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+133p

var_10		= word ptr -10h
var_E		= word ptr -0Eh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 10h
		mov	edx, [ebp+arg_0]
		mov	edi, edx
		add	edi, 118h
		jz	short loc_E31B0
		test	edi, 1
		mov	ebx, 28h
		jnz	loc_E3310

loc_E3187:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+1BFj
		test	edi, 2
		jnz	loc_E32F8

loc_E3193:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+1A3j
		mov	ecx, ebx
		xor	eax, eax
		shr	ecx, 2
		test	bl, 2
		rep stosd
		jnz	loc_E32E0
		and	ebx, 1
		jnz	loc_E32D0
		db	66h
		nop

loc_E31B0:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+14j
					; CDispInfo::InitializeActiveVerts(void)+173j ...
		or	dword ptr [edx+118h], 1
		mov	eax, [edx+1DCh]
		mov	ecx, [eax+24h]
		mov	eax, 1
		mov	esi, eax
		sub	ecx, 1
		mov	ebx, ecx
		shl	esi, cl
		sar	ebx, 5
		or	[edx+ebx*4+118h], esi
		mov	esi, eax
		mov	ecx, [edx+1DCh]
		mov	ecx, [ecx+24h]
		lea	ebx, [ecx-1]
		imul	ecx, ebx
		add	ecx, ebx
		mov	ebx, ecx
		shl	esi, cl
		sar	ebx, 5
		or	[edx+ebx*4+118h], esi
		mov	esi, eax
		mov	ecx, [edx+1DCh]
		mov	ebx, [ecx+24h]
		lea	ecx, [ebx-1]
		imul	ecx, ebx
		mov	ebx, ecx
		shl	esi, cl
		sar	ebx, 5
		or	[edx+ebx*4+118h], esi
		mov	ebx, [edx+1DCh]
		movsx	ecx, word ptr [ebx+22h]
		imul	ecx, [ebx+24h]
		movsx	ebx, word ptr [ebx+20h]
		add	ecx, ebx
		mov	ebx, ecx
		shl	eax, cl
		sar	ebx, 5
		or	[edx+ebx*4+118h], eax
		xor	eax, eax

loc_E323C:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+14Aj
		lea	ecx, [eax+eax*2]
		lea	ecx, [edx+ecx*4+1E0h]
		cmp	word ptr [ecx],	0FFFFh
		jz	short loc_E32B8
		cmp	byte ptr [ecx+3], 0
		jz	short loc_E32B8

loc_E3252:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+165j
		mov	ebx, [edx+1DCh]
		mov	ecx, dword ptr g_EdgeDims[eax*4]
		mov	edi, [ebx+28h]
		movsx	esi, cx
		imul	di, word ptr g_EdgeSideLenMul[eax*4]
		test	ecx, ecx
		setz	cl
		movzx	ecx, cl
		mov	[ebp+esi*2+var_10], di
		mov	esi, [ebx+2Ch]
		mov	[ebp+ecx*2+var_10], si
		mov	esi, 1
		movsx	ecx, [ebp+var_E]
		imul	ecx, [ebx+24h]
		movsx	ebx, [ebp+var_10]
		add	ecx, ebx
		mov	ebx, ecx
		shl	esi, cl
		sar	ebx, 5
		or	[edx+ebx*4+118h], esi

loc_E32A4:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+15Dj
					; CDispInfo::InitializeActiveVerts(void)+163j
		add	eax, 1
		cmp	eax, 4
		jnz	short loc_E323C
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E32B8:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+EAj
					; CDispInfo::InitializeActiveVerts(void)+F0j
		cmp	word ptr [ecx+6], 0FFFFh
		jz	short loc_E32A4
		cmp	byte ptr [ecx+9], 0
		jz	short loc_E32A4
		jmp	short loc_E3252
; ---------------------------------------------------------------------------
		align 10h

loc_E32D0:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+48j
					; CDispInfo::InitializeActiveVerts(void)+191j
		mov	byte ptr [edi],	0
		jmp	loc_E31B0
; ---------------------------------------------------------------------------
		align 10h

loc_E32E0:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+3Fj
		mov	word ptr [edi],	0
		add	edi, 2
		and	ebx, 1
		jz	loc_E31B0
		jmp	short loc_E32D0
; ---------------------------------------------------------------------------
		align 8

loc_E32F8:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+2Dj
		mov	word ptr [edi],	0
		sub	ebx, 2
		add	edi, 2
		jmp	loc_E3193
; ---------------------------------------------------------------------------
		align 10h

loc_E3310:				; CODE XREF: CDispInfo::InitializeActiveVerts(void)+21j
		mov	byte ptr [edx+118h], 0
		lea	edi, [edx+119h]
		mov	bl, 27h
		jmp	loc_E3187
_ZN9CDispInfo21InitializeActiveVertsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ClearLOD(void)
_ZN9CDispInfo8ClearLODEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	eax, [ebp+arg_0]
		mov	edi, eax
		add	edi, 118h
		jz	short loc_E3369
		test	edi, 1
		mov	edx, 28h
		jnz	short loc_E33A0

loc_E334E:				; CODE XREF: CDispInfo::ClearLOD(void)+7Fj
		test	edi, 2
		jnz	short loc_E3390

loc_E3356:				; CODE XREF: CDispInfo::ClearLOD(void)+6Bj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jnz	short loc_E3380
		and	edx, 1
		jnz	short loc_E3370

loc_E3369:				; CODE XREF: CDispInfo::ClearLOD(void)+Fj
					; CDispInfo::ClearLOD(void)+5Bj
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E3370:				; CODE XREF: CDispInfo::ClearLOD(void)+37j
					; CDispInfo::ClearLOD(void)+5Dj
		mov	byte ptr [edi],	0
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E3380:				; CODE XREF: CDispInfo::ClearLOD(void)+32j
		mov	word ptr [edi],	0
		add	edi, 2
		and	edx, 1
		jz	short loc_E3369
		jmp	short loc_E3370
; ---------------------------------------------------------------------------
		align 10h

loc_E3390:				; CODE XREF: CDispInfo::ClearLOD(void)+24j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	short loc_E3356
; ---------------------------------------------------------------------------
		align 10h

loc_E33A0:				; CODE XREF: CDispInfo::ClearLOD(void)+1Cj
		mov	byte ptr [eax+118h], 0
		lea	edi, [eax+119h]
		mov	dl, 27h
		jmp	short loc_E334E
_ZN9CDispInfo8ClearLODEv endp

; ---------------------------------------------------------------------------
		jmp	short _Z24DispInfoRenderDebugModesv ; DispInfoRenderDebugModes(void)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfoRenderDebugModes(void)
_Z24DispInfoRenderDebugModesv proc near	; CODE XREF: .text:000E33B1j
					; DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo	**,int &):loc_E6940p
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, dword ptr ds:sv_cheats+1Ch
		mov	ecx, [eax+30h]
		test	ecx, ecx
		jz	short loc_E33F0

loc_E33D2:				; CODE XREF: DispInfoRenderDebugModes(void)+37j
		mov	edx, dword ptr ds:mat_wireframe+1Ch
		mov	eax, 1
		mov	edx, [edx+30h]
		test	edx, edx
		jz	short loc_E33F9

locret_E33E4:				; CODE XREF: DispInfoRenderDebugModes(void)+49j
					; DispInfoRenderDebugModes(void)+56j
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E33F0:				; CODE XREF: DispInfoRenderDebugModes(void)+10j
		call	_Z15Cmd_IsRptActivev ; Cmd_IsRptActive(void)
		test	al, al
		jnz	short loc_E33D2

loc_E33F9:				; CODE XREF: DispInfoRenderDebugModes(void)+22j
		mov	edx, dword ptr ds:mat_luxels+1Ch
		mov	eax, 1
		mov	ecx, [edx+30h]
		test	ecx, ecx
		jnz	short locret_E33E4
		mov	edx, dword ptr ds:r_DispWalkable+1Ch
		mov	edx, [edx+30h]
		test	edx, edx
		jnz	short locret_E33E4
		mov	eax, dword ptr ds:r_DispBuildable+1Ch
		mov	eax, [eax+30h]
		leave
		test	eax, eax
		setnz	al
		retn
_Z24DispInfoRenderDebugModesv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::Render(CGroupMesh *, bool)
_ZN9CDispInfo6RenderEP10CGroupMeshb proc near
					; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+10Fp
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo6RenderEP10CGroupMeshb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IterateLightmapSamples(CDispInfo *, ProcessLightmapSampleData_t  const&)
_Z22IterateLightmapSamplesP9CDispInfoRK27ProcessLightmapSampleData_t proc near

var_98		= dword	ptr -98h
var_88		= dword	ptr -88h
var_78		= dword	ptr -78h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0BCh
		mov	esi, [ebp+arg_0]
		mov	edx, dword ptr ds:host_state+4
		mov	edi, dword ptr ds:g_DispLightmapSamplePositions
		mov	eax, [esi+16Ch]
		sub	eax, [edx+78h]
		and	eax, 0FFFFFFE0h
		add	eax, [edx+7Ch]
		movsx	edx, word ptr [eax+4]
		movsx	eax, word ptr [eax+6]
		add	edx, 1
		add	eax, 1
		mov	[ebp+var_5C], edx
		mov	[ebp+var_68], eax
		mov	eax, [esi+238h]
		mov	ecx, [ebp+var_68]
		test	ecx, ecx
		jle	loc_E3778
		add	edi, eax
		mov	[ebp+var_64], 0
		nop
		lea	esi, [esi+0]

loc_E34A0:				; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+332j
		mov	ebx, [ebp+var_5C]
		test	ebx, ebx
		jle	loc_E3768
		mov	[ebp+var_58], 0
		jmp	loc_E3743
; ---------------------------------------------------------------------------
		align 10h

loc_E34C0:				; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+30Bj
					; IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+31Ej
		movzx	eax, byte ptr [edi+1]
		lea	ebx, [edx+edx*2]
		mov	[ebp+var_4A], ax
		movzx	eax, byte ptr [edi+2]
		fild	[ebp+var_4A]
		fld	ds:flt_1F60A0
		fmul	st(1), st
		mov	[ebp+var_4A], ax
		movzx	eax, byte ptr [edi+3]
		add	edi, 4
		fild	[ebp+var_4A]
		fmul	st, st(1)
		mov	[ebp+var_4A], ax
		mov	eax, [esi+1DCh]
		mov	edx, [eax+14h]
		fild	[ebp+var_4A]
		fmulp	st(2), st
		lea	ebx, [edx+ebx*2]
		movzx	eax, word ptr [ebx+4]
		movzx	edx, word ptr [ebx+2]
		movzx	ecx, word ptr [ebx]
		imul	eax, [esi+34h]
		imul	edx, [esi+34h]
		imul	ecx, [esi+34h]
		add	eax, [esi+88h]
		add	edx, [esi+88h]
		add	ecx, [esi+88h]
		fld	dword ptr [eax+4]
		fmul	st, st(2)
		fld	dword ptr [eax+8]
		fmul	st, st(3)
		fstp	[ebp+var_60]
		fld	dword ptr [edx+4]
		fmul	st, st(2)
		fld	dword ptr [edx+8]
		fmul	st, st(3)
		fld	dword ptr [ecx+4]
		fmul	st, st(6)
		fstp	[ebp+var_50]
		fld	dword ptr [ecx+8]
		fmul	st, st(6)
		fstp	[ebp+var_54]
		fld	dword ptr [edx]
		fmul	st, st(4)
		fld	dword ptr [eax]
		fmul	st, st(6)
		faddp	st(1), st
		fld	dword ptr [ecx]
		fmul	st, st(7)
		faddp	st(1), st
		fstp	[ebp+var_48]
		fxch	st(1)
		faddp	st(2), st
		fxch	st(1)
		mov	[esp], esi
		fadd	[ebp+var_50]
		fstp	[ebp+var_44]
		fadd	[ebp+var_60]
		fadd	[ebp+var_54]
		fstp	[ebp+var_40]
		fxch	st(2)
		fstp	[ebp+var_78]
		fstp	[ebp+var_98]
		fstp	[ebp+var_88]
		call	_ZN9CDispInfo12NumLightMapsEv ;	CDispInfo::NumLightMaps(void)
		fld	[ebp+var_78]
		cmp	eax, 1
		fld	[ebp+var_98]
		fld	[ebp+var_88]
		jle	loc_E36F0
		movzx	edx, word ptr [ebx+2]
		movzx	eax, word ptr [ebx+4]
		movzx	ecx, word ptr [ebx]
		imul	edx, [esi+40h]
		imul	eax, [esi+40h]
		imul	ecx, [esi+40h]
		add	edx, [esi+94h]
		add	eax, [esi+94h]
		add	ecx, [esi+94h]
		fld	dword ptr [edx+4]
		fmul	st, st(1)
		fld	dword ptr [eax+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ecx+4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		fld	dword ptr [eax+8]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ecx+8]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [edx]
		fmul	st, st(3)
		fld	dword ptr [eax]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ecx]
		fmul	st, st(6)
		faddp	st(1), st
		fstp	[ebp+var_3C]
		fxch	st(1)
		fstp	[ebp+var_38]
		fstp	[ebp+var_34]
		movzx	edx, word ptr [ebx+2]
		movzx	eax, word ptr [ebx+4]
		movzx	ecx, word ptr [ebx]
		imul	edx, [esi+6Ch]
		imul	eax, [esi+6Ch]
		imul	ecx, [esi+6Ch]
		add	edx, [esi+0C0h]
		add	eax, [esi+0C0h]
		add	ecx, [esi+0C0h]
		fld	dword ptr [edx+4]
		fmul	st, st(1)
		fld	dword ptr [eax+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ecx+4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		fld	dword ptr [eax+8]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ecx+8]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [edx]
		fmul	st, st(3)
		fld	dword ptr [eax]
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ecx]
		fmul	st, st(6)
		faddp	st(1), st
		fstp	[ebp+var_30]
		fxch	st(1)
		mov	ecx, [esi+70h]
		fstp	[ebp+var_2C]
		fstp	[ebp+var_28]
		movzx	edx, word ptr [ebx+2]
		movzx	eax, word ptr [ebx+4]
		movzx	ebx, word ptr [ebx]
		imul	edx, ecx
		imul	eax, ecx
		imul	ecx, ebx
		add	edx, [esi+0C4h]
		add	eax, [esi+0C4h]
		add	ecx, [esi+0C4h]
		fld	dword ptr [edx+4]
		fmul	st, st(1)
		fld	dword ptr [eax+4]
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ecx+4]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [edx+8]
		fmul	st, st(2)
		fld	dword ptr [eax+8]
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ecx+8]
		fmul	st, st(5)
		faddp	st(1), st
		fxch	st(2)
		fmul	dword ptr [edx]
		fxch	st(3)
		fmul	dword ptr [eax]
		faddp	st(3), st
		fxch	st(3)
		fmul	dword ptr [ecx]
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_24]
		fxch	st(1)
		fstp	[ebp+var_20]
		fstp	[ebp+var_1C]
		jmp	loc_E36F6
; ---------------------------------------------------------------------------
		align 10h

loc_E36F0:				; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+162j
		fstp	st
		fstp	st
		fstp	st

loc_E36F6:				; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+2A8j
		mov	eax, [ebp+var_5C]
		mov	[esp+20h], eax
		mov	eax, [ebp+var_68]
		mov	[esp+1Ch], eax
		mov	eax, [ebp+var_58]
		mov	[esp+18h], eax
		mov	eax, [ebp+var_64]
		mov	[esp+14h], eax
		lea	eax, [ebp+var_24]
		mov	[esp+10h], eax
		lea	eax, [ebp+var_30]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_3C]
		mov	[esp+8], eax
		lea	eax, [ebp+var_48]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	dword ptr [eax+24h]
		add	[ebp+var_58], 1
		mov	eax, [ebp+var_58]
		cmp	[ebp+var_5C], eax
		jle	short loc_E3768

loc_E3743:				; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+72j
		movzx	eax, byte ptr [edi]
		cmp	al, 0FFh
		movzx	edx, al
		jnz	loc_E34C0
		movzx	edx, byte ptr [edi+1]
		add	edi, 1
		add	edx, 0FFh
		jmp	loc_E34C0
; ---------------------------------------------------------------------------
		align 8

loc_E3768:				; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+65j
					; IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+301j
		add	[ebp+var_64], 1
		mov	eax, [ebp+var_64]
		cmp	[ebp+var_68], eax
		jg	loc_E34A0

loc_E3778:				; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+49j
		add	esp, 0BCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z22IterateLightmapSamplesP9CDispInfoRK27ProcessLightmapSampleData_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::AddSingleDynamicLight(dlight_t &)
_ZN9CDispInfo21AddSingleDynamicLightER8dlight_t	proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo21AddSingleDynamicLightER8dlight_t	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::AddSingleDynamicLightBumped(dlight_t &)
_ZN9CDispInfo27AddSingleDynamicLightBumpedER8dlight_t proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo27AddSingleDynamicLightBumpedER8dlight_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::AddSingleDynamicAlphaLight(dlight_t &)
_ZN9CDispInfo26AddSingleDynamicAlphaLightER8dlight_t proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo26AddSingleDynamicAlphaLightER8dlight_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&, int,	CDispDecalBase *, ShadowInfo_t	const*,	int, CDecalNodeSetupCache *)
_ZN9CDispInfo25SetupDecalNodeIntersect_RERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tiP20CDecalNodeSetupCache proc near
					; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+A5p
					; CDispInfo::SetupDecalNodeIntersect(CVertIndex	 const&,int,CDispDecalBase *,ShadowInfo_t  const*)+61p

var_6C		= dword	ptr -6Ch
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	ebx, [ebp+arg_10]
		mov	esi, [ebp+arg_18]
		mov	eax, [edi+1DCh]
		mov	edx, [eax+24h]
		mov	[ebp+var_28], edx
		movsx	edx, word ptr [ecx+2]
		movsx	ecx, word ptr [ecx]
		imul	edx, [ebp+var_28]
		add	ecx, edx
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebp+arg_14]
		add	ecx, 1
		cmp	ecx, [edi+184h]
		mov	[ebp+var_30], ecx
		jge	loc_E38D0
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_3C], esi
		mov	edx, [ebp+var_2C]
		mov	[ebp+var_38], ebx
		mov	byte ptr [ebp+var_28], 0
		add	ecx, 1
		mov	[ebp+var_40], ecx
		mov	ecx, [ebp+arg_14]
		shl	edx, 4
		mov	esi, [ebp+var_40]
		mov	[ebp+var_2C], edx
		xor	edx, edx
		mov	ebx, edx
		add	ecx, 0Ch
		mov	[ebp+var_34], ecx

loc_E3835:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+CEj
		mov	edx, [ebp+var_3C]
		mov	[esp+8], esi
		mov	ecx, [ebp+var_30]
		mov	[esp+18h], edx
		mov	edx, [ebp+var_38]
		mov	[esp+14h], ecx
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx
		mov	eax, [eax+8]
		mov	[esp], edi
		add	eax, [ebp+var_2C]
		lea	eax, [eax+ebx*4]
		mov	[esp+4], eax
		call	_ZN9CDispInfo25SetupDecalNodeIntersect_RERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tiP20CDecalNodeSetupCache ; CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*,int,CDecalNodeSetupCache *)
		movzx	edx, byte ptr [ebp+var_28]
		mov	ecx, 1
		test	al, al
		mov	eax, [edi+1DCh]
		cmovz	ecx, edx
		add	ebx, 1
		mov	byte ptr [ebp+var_28], cl
		mov	ecx, [ebp+var_34]
		add	esi, [eax+ecx*4+8]
		cmp	ebx, 4
		jnz	short loc_E3835
		xor	eax, eax
		cmp	byte ptr [ebp+var_28], 0
		jz	short loc_E38BC
		jmp	short loc_E38A0
; ---------------------------------------------------------------------------

loc_E389A:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+46Dj
		fstp	st
		lea	esi, [esi+0]

loc_E38A0:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+D8j
					; CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*,int,CDecalNodeSetupCache *)+48Ej
		mov	edx, [ebp+arg_8]
		mov	eax, 1
		movzx	ecx, byte ptr [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		sar	edx, 5
		shl	eax, cl
		or	[edi+edx*4], eax
		mov	eax, 1

loc_E38BC:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+D6j
					; CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*,int,CDecalNodeSetupCache *)+47Ej ...
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E38D0:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+43j
		mov	ecx, [ebp+var_2C]
		mov	edx, [esi+1210h]
		add	ecx, 360h
		cmp	[esi+ecx*4+0Ch], edx
		mov	[ebp+var_30], ecx
		jz	loc_E3973
		mov	edx, [ebp+var_2C]
		lea	eax, [edx+edx*2]
		lea	ecx, [esi+eax*4]
		mov	eax, [edi+34h]
		imul	eax, edx
		add	eax, [edi+88h]
		test	ebx, ebx
		jz	loc_E3D30
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [ebx]
		fmul	st, st(3)
		fld	dword ptr [ebx+4]
		fmul	st, st(3)
		faddp	st(1), st
		fadd	dword ptr [ebx+0Ch]
		fld	dword ptr [ebx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [ecx]
		fld	dword ptr [ebx+10h]
		fmul	st, st(3)
		fld	dword ptr [ebx+14h]
		fmul	st, st(3)
		faddp	st(1), st
		fadd	dword ptr [ebx+1Ch]
		fld	dword ptr [ebx+18h]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [ecx+4]
		fxch	st(2)
		fmul	dword ptr [ebx+20h]
		fxch	st(1)
		fmul	dword ptr [ebx+24h]
		faddp	st(1), st
		fadd	dword ptr [ebx+2Ch]
		fxch	st(1)
		fmul	dword ptr [ebx+28h]
		faddp	st(1), st
		fstp	dword ptr [ecx+8]

loc_E395A:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+5C7j
		mov	ecx, [ebp+var_30]
		mov	edx, [esi+1210h]
		mov	[esi+ecx*4+0Ch], edx
		mov	eax, [edi+1DCh]
		mov	ecx, [eax+24h]
		mov	[ebp+var_28], ecx

loc_E3973:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+126j
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_34], edi
		lea	ecx, [ecx+ecx*2]
		lea	ecx, [esi+ecx*4]
		fld	dword ptr [ecx]
		fld	dword ptr [ecx+4]
		fst	[ebp+var_30]
		fld	dword ptr [ecx+8]
		mov	ecx, [ebp+var_2C]
		fst	[ebp+var_38]
		fxch	st(2)
		fst	[ebp+var_3C]
		fxch	st(1)
		fstp	[ebp+var_44]
		fxch	st(1)
		fstp	[ebp+var_48]
		shl	ecx, 4
		mov	[ebp+var_2C], 0
		mov	[ebp+var_4C], ecx
		fstp	[ebp+var_6C]

loc_E39AF:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+40Bj
		mov	edi, [ebp+var_4C]
		mov	ecx, [ebp+var_2C]
		add	edi, [eax+4]
		mov	eax, [eax+0Ch]
		shl	ecx, 2
		add	edi, ecx
		add	eax, [ebp+var_4C]
		add	ecx, eax
		movsx	eax, word ptr [edi+2]
		movsx	edi, word ptr [edi]
		imul	eax, [ebp+var_28]
		add	eax, edi
		lea	edi, [eax+360h]
		cmp	[esi+edi*4+0Ch], edx
		mov	[ebp+var_40], edi
		jz	loc_E3A75
		mov	edi, [ebp+var_34]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	[ebp+var_28], edx
		mov	edx, eax
		imul	edx, [edi+34h]
		add	edx, [edi+88h]
		test	ebx, ebx
		jz	loc_E3C60
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx]
		fmul	st, st(3)
		mov	edi, [ebp+var_28]
		fld	dword ptr [ebx+4]
		fmul	st, st(3)
		faddp	st(1), st
		fadd	dword ptr [ebx+0Ch]
		fld	dword ptr [ebx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edi]
		fld	dword ptr [ebx+10h]
		fmul	st, st(3)
		fld	dword ptr [ebx+14h]
		fmul	st, st(3)
		faddp	st(1), st
		fadd	dword ptr [ebx+1Ch]
		fld	dword ptr [ebx+18h]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edi+4]
		fxch	st(2)
		fmul	dword ptr [ebx+20h]
		fxch	st(1)
		fmul	dword ptr [ebx+24h]
		faddp	st(1), st
		fadd	dword ptr [ebx+2Ch]
		fxch	st(1)
		fmul	dword ptr [ebx+28h]
		faddp	st(1), st
		fstp	dword ptr [edi+8]

loc_E3A59:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+500j
		mov	edi, [ebp+var_40]
		mov	edx, [esi+1210h]
		mov	[esi+edi*4+0Ch], edx
		mov	edi, [ebp+var_34]
		mov	edi, [edi+1DCh]
		mov	edi, [edi+24h]
		mov	[ebp+var_28], edi

loc_E3A75:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+21Fj
		lea	eax, [eax+eax*2]
		lea	eax, [esi+eax*4]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		movsx	eax, word ptr [ecx+2]
		movsx	ecx, word ptr [ecx]
		imul	eax, [ebp+var_28]
		add	eax, ecx
		lea	ecx, [eax+360h]
		cmp	[esi+ecx*4+0Ch], edx
		jz	short loc_E3B1A
		mov	edi, [ebp+var_34]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	[ebp+var_28], edx
		mov	edx, eax
		imul	edx, [edi+34h]
		add	edx, [edi+88h]
		test	ebx, ebx
		jz	loc_E3CC8
		fld	dword ptr [edx]
		fld	dword ptr [edx+4]
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx]
		fmul	st, st(3)
		mov	edi, [ebp+var_28]
		fld	dword ptr [ebx+4]
		fmul	st, st(3)
		faddp	st(1), st
		fadd	dword ptr [ebx+0Ch]
		fld	dword ptr [ebx+8]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edi]
		fld	dword ptr [ebx+10h]
		fmul	st, st(3)
		fld	dword ptr [ebx+14h]
		fmul	st, st(3)
		faddp	st(1), st
		fadd	dword ptr [ebx+1Ch]
		fld	dword ptr [ebx+18h]
		fmul	st, st(2)
		faddp	st(1), st
		fstp	dword ptr [edi+4]
		fxch	st(2)
		fmul	dword ptr [ebx+20h]
		fxch	st(1)
		fmul	dword ptr [ebx+24h]
		faddp	st(1), st
		fadd	dword ptr [ebx+2Ch]
		fld	dword ptr [ebx+28h]
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [edi+8]

loc_E3B10:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+568j
		mov	edx, [esi+1210h]
		mov	[esi+ecx*4+0Ch], edx

loc_E3B1A:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+2DAj
		lea	eax, [eax+eax*2]
		lea	eax, [esi+eax*4]
		fld	dword ptr [eax]
		fxch	st(3)
		fcomi	st, st(3)
		fld	st
		fcmovnb	st, st(4)
		fld	[ebp+var_6C]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_6C]
		fld	dword ptr [eax+4]
		fxch	st(3)
		fcomi	st, st(3)
		fld	st
		fcmovnb	st, st(4)
		fld	[ebp+var_30]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_30]
		fld	dword ptr [eax+8]
		fxch	st(3)
		fcomi	st, st(3)
		fld	st
		fcmovnb	st, st(4)
		fld	[ebp+var_38]
		fxch	st(1)
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_38]
		fxch	st(5)
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		fld	[ebp+var_3C]
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		fxch	st(1)
		fstp	[ebp+var_3C]
		fxch	st(2)
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		fld	[ebp+var_44]
		fcomi	st, st(2)
		fcmovb	st, st(2)
		fstp	st(2)
		fxch	st(1)
		fstp	[ebp+var_44]
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fld	[ebp+var_48]
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		add	[ebp+var_2C], 1
		fstp	[ebp+var_48]
		cmp	[ebp+var_2C], 4
		jz	loc_E3BD0
		mov	edx, [ebp+var_34]
		mov	eax, [edx+1DCh]
		mov	edx, [esi+1210h]
		mov	ecx, [eax+24h]
		mov	[ebp+var_28], ecx
		jmp	loc_E39AF
; ---------------------------------------------------------------------------

loc_E3BD0:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+3F0j
		fld	[ebp+var_6C]
		fld1
		fcomi	st, st(1)
		fstp	st(1)
		jnb	short loc_E3C10
		fstp	st
		jmp	short loc_E3C00
; ---------------------------------------------------------------------------
		align 10h

loc_E3BE0:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+457j
		fstp	st
		fstp	st
		jmp	short loc_E3C00
; ---------------------------------------------------------------------------
		align 10h

loc_E3BF0:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+462j
		fstp	st
		jmp	short loc_E3C00
; ---------------------------------------------------------------------------

loc_E3BF4:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+469j
		fstp	st
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_E3C00:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+41Dj
					; CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*,int,CDecalNodeSetupCache *)+424j ...
		add	esp, 8Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E3C10:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+419j
		fldz
		fld	[ebp+var_3C]
		fcomip	st, st(1)
		jb	short loc_E3BE0
		fld	[ebp+var_30]
		fxch	st(2)
		fcomip	st, st(2)
		fstp	st(1)
		jb	short loc_E3BF0
		fld	[ebp+var_44]
		fcomip	st, st(1)
		jb	short loc_E3BF4
		test	ebx, ebx
		jz	loc_E389A
		fld	[ebp+var_48]
		fxch	st(1)
		xor	eax, eax
		fcomip	st, st(1)
		fstp	st
		ja	loc_E38BC
		fld	dword ptr [ebx+44h]
		fld	[ebp+var_38]
		fcomip	st, st(1)
		fstp	st
		jbe	loc_E38A0
		jmp	loc_E38BC
; ---------------------------------------------------------------------------
		align 10h

loc_E3C60:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+23Fj
		mov	edi, [ebp+arg_C]
		fld	dword ptr [edi+20h]
		fmul	dword ptr [edx]
		mov	edi, [edi+14h]
		fsub	dword ptr [edi+2Ch]
		mov	edi, [ebp+arg_C]
		fadd	ds:flt_1EBAA4
		fld	dword ptr [edi+24h]
		fmul	dword ptr [edx+4]
		faddp	st(1), st
		fld	dword ptr [edi+28h]
		fmul	dword ptr [edx+8]
		mov	edi, [ebp+var_28]
		faddp	st(1), st
		fstp	dword ptr [edi]
		mov	edi, [ebp+arg_C]
		fld	dword ptr [edi+2Ch]
		fmul	dword ptr [edx]
		mov	edi, [edi+14h]
		fsub	dword ptr [edi+30h]
		mov	edi, [ebp+arg_C]
		fadd	ds:flt_1EBAA4
		fld	dword ptr [edi+30h]
		fmul	dword ptr [edx+4]
		faddp	st(1), st
		fld	dword ptr [edi+34h]
		fmul	dword ptr [edx+8]
		mov	edx, [ebp+var_28]
		mov	dword ptr [edx+8], 0
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		jmp	loc_E3A59
; ---------------------------------------------------------------------------
		align 4

loc_E3CC8:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+2F6j
		mov	edi, [ebp+arg_C]
		fld	dword ptr [edi+20h]
		fmul	dword ptr [edx]
		mov	edi, [edi+14h]
		fsub	dword ptr [edi+2Ch]
		mov	edi, [ebp+arg_C]
		fld	ds:flt_1EBAA4
		fadd	st(1), st
		fld	dword ptr [edi+24h]
		fmul	dword ptr [edx+4]
		faddp	st(2), st
		fld	dword ptr [edi+28h]
		fmul	dword ptr [edx+8]
		mov	edi, [ebp+var_28]
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [edi]
		mov	edi, [ebp+arg_C]
		fld	dword ptr [edi+2Ch]
		fmul	dword ptr [edx]
		mov	edi, [edi+14h]
		fsub	dword ptr [edi+30h]
		mov	edi, [ebp+arg_C]
		faddp	st(1), st
		fld	dword ptr [edi+30h]
		fmul	dword ptr [edx+4]
		faddp	st(1), st
		fld	dword ptr [edi+34h]
		fmul	dword ptr [edx+8]
		mov	edx, [ebp+var_28]
		mov	dword ptr [edx+8], 0
		faddp	st(1), st
		fstp	dword ptr [edx+4]
		jmp	loc_E3B10
; ---------------------------------------------------------------------------
		align 10h

loc_E3D30:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase	*,ShadowInfo_t	const*,int,CDecalNodeSetupCache	*)+143j
		mov	edx, [ebp+arg_C]
		fld	dword ptr [edx+20h]
		fmul	dword ptr [eax]
		mov	edx, [edx+14h]
		fsub	dword ptr [edx+2Ch]
		mov	edx, [ebp+arg_C]
		fld	ds:flt_1EBAA4
		fadd	st(1), st
		fld	dword ptr [edx+24h]
		fmul	dword ptr [eax+4]
		faddp	st(2), st
		fld	dword ptr [edx+28h]
		fmul	dword ptr [eax+8]
		faddp	st(2), st
		fxch	st(1)
		fstp	dword ptr [ecx]
		fld	dword ptr [edx+2Ch]
		fmul	dword ptr [eax]
		mov	edx, [edx+14h]
		fsub	dword ptr [edx+30h]
		mov	edx, [ebp+arg_C]
		faddp	st(1), st
		fld	dword ptr [edx+30h]
		fmul	dword ptr [eax+4]
		faddp	st(1), st
		fld	dword ptr [edx+34h]
		fmul	dword ptr [eax+8]
		mov	dword ptr [ecx+8], 0
		faddp	st(1), st
		fstp	dword ptr [ecx+4]
		jmp	loc_E395A
_ZN9CDispInfo25SetupDecalNodeIntersect_RERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tiP20CDecalNodeSetupCache endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::SetupDecalNodeIntersect(CVertIndex	 const&, int, CDispDecalBase *,	ShadowInfo_t  const*)
_ZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_t	proc near
					; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+187p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, [ebp+arg_C]
		test	ebx, ebx
		jz	short loc_E3DB2
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 0

loc_E3DB2:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)+Cj
		cmp	byte ptr ds:_ZGVZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tE5cache, 0 ; `guard variable for'CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)::cache
		jz	short loc_E3E28

loc_E3DBB:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)+A6j
					; CDispInfo::SetupDecalNodeIntersect(CVertIndex	 const&,int,CDispDecalBase *,ShadowInfo_t  const*)+BEj
		mov	eax, [ebp+arg_10]
		mov	dword ptr [esp+18h], offset _ZZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tE5cache ; CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)::cache
		add	dword ptr ds:_ZZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tE5cache+1210h, 1
		mov	dword ptr [esp+14h], 0
		mov	[esp+0Ch], ebx
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN9CDispInfo25SetupDecalNodeIntersect_RERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tiP20CDecalNodeSetupCache ; CDispInfo::SetupDecalNodeIntersect_R(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*,int,CDecalNodeSetupCache *)
		movzx	edx, byte ptr [ebx+0Ch]
		mov	ecx, edx
		or	ecx, 1
		test	al, al
		mov	[ebx+0Ch], cl
		jnz	short loc_E3E18
		or	edx, 5
		mov	[ebx+0Ch], dl
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E3E18:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)+74j
		and	ecx, 0FFFFFFFBh
		mov	[ebx+0Ch], cl
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E3E28:				; CODE XREF: CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)+29j
		mov	dword ptr [esp], offset	_ZGVZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tE5cache ; `guard variable for'CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)::cache
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_E3DBB
		mov	dword ptr [esp], offset	_ZGVZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tE5cache ; `guard variable for'CDispInfo::SetupDecalNodeIntersect(CVertIndex  const&,int,CDispDecalBase *,ShadowInfo_t  const*)::cache
		mov	dword ptr ds:_ZZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_tE5cache+1210h, 0
		call	__cxa_guard_release
		jmp	loc_E3DBB
_ZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_t	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetFlatVert(int)
_ZN9CDispInfo11GetFlatVertEi proc near	; CODE XREF: Overlay_TriTLToBR(CDispInfo *,CMeshReader *,Vector	&,float,float,int,Vector const&)+13Ap
					; Overlay_TriTLToBR(CDispInfo *,CMeshReader *,Vector &,float,float,int,Vector const&)+232p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 8
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	edx, [ecx+1DCh]
		mov	esi, [edx+24h]
		lea	edx, [esi-1]
		mov	[ebp+var_C], edx
		mov	edx, eax
		sar	edx, 1Fh
		fild	[ebp+var_C]
		idiv	esi
		fdivr	ds:flt_1EBCFC
		mov	[ebp+var_C], eax
		mov	eax, ebx
		fild	[ebp+var_C]
		fmul	st, st(1)
		fld	dword ptr [ecx+18Ch]
		fld	dword ptr [ecx+198h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [ecx+190h]
		fld	dword ptr [ecx+19Ch]
		fsub	st, st(1)
		fmul	st, st(3)
		faddp	st(1), st
		fld	dword ptr [ecx+194h]
		fld	dword ptr [ecx+1A0h]
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fld	dword ptr [ecx+1B0h]
		fstp	[ebp+var_10]
		fld	dword ptr [ecx+1B4h]
		fld	dword ptr [ecx+1A8h]
		fsub	st, st(1)
		fmul	st, st(5)
		faddp	st(1), st
		fld	dword ptr [ecx+1B8h]
		fld	dword ptr [ecx+1ACh]
		mov	[ebp+var_C], edx
		fsub	st, st(1)
		fmul	st, st(6)
		faddp	st(1), st
		fild	[ebp+var_C]
		fmulp	st(7), st
		fld	[ebp+var_10]
		fsubr	dword ptr [ecx+1A4h]
		fmulp	st(6), st
		fxch	st(5)
		fadd	[ebp+var_10]
		fsub	st, st(4)
		fmul	st, st(6)
		faddp	st(4), st
		fxch	st(3)
		fstp	dword ptr [ebx]
		fxch	st(2)
		fsub	st, st(1)
		fmul	st, st(4)
		faddp	st(1), st
		fstp	dword ptr [ebx+4]
		fsub	st(1), st
		fxch	st(1)
		fmulp	st(2), st
		faddp	st(1), st
		fstp	dword ptr [ebx+8]
		add	esp, 8
		pop	ebx
		pop	esi
		pop	ebp
		retn	4
_ZN9CDispInfo11GetFlatVertEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ComputeLightmapAndTextureCoordinate(RayDispOutput_t  const&, Vector2D *, Vector2D *)
_ZN9CDispInfo35ComputeLightmapAndTextureCoordinateERK15RayDispOutput_tP8Vector2DS4_ proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo35ComputeLightmapAndTextureCoordinateERK15RayDispOutput_tP8Vector2DS4_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDispInfo__TestRay(int, int, float, float, int, int, int)
_ZN9CDispInfo7TestRayERK5Ray_tffRfP8Vector2DS5_	proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_2C		= byte ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		mov	esi, [ebp+arg_0]
		mov	eax, dword ptr ds:host_state+4
		mov	ebx, [ebp+arg_4]
		mov	[esp+4], esi
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z21DispInfo_ComputeIndexPvP9IDispInfo ; DispInfo_ComputeIndex(void *,IDispInfo	*)
		mov	[esp], eax
		call	_Z33CollisionBSPData_GetCollisionTreei ; CollisionBSPData_GetCollisionTree(int)
		test	eax, eax
		jz	loc_E405A
		fld	dword ptr [ebx]
		mov	edx, 3F800000h
		mov	[ebp+var_48], 1
		fld	dword ptr [ebx+10h]
		lea	ecx, [ebp+var_88]
		mov	[ebp+var_1C], edx
		fld	[ebp+arg_8]
		fmul	st, st(1)
		fadd	st, st(2)
		fld	dword ptr [ebx+4]
		fld	dword ptr [ebx+14h]
		fld	[ebp+arg_8]
		fmul	st, st(1)
		fadd	st, st(2)
		fld	dword ptr [ebx+8]
		fstp	[ebp+var_8C]
		fld	dword ptr [ebx+18h]
		lea	ebx, [ebp+var_2C]
		mov	[esp+4], ecx
		fld	[ebp+arg_8]
		mov	[esp], eax
		fmul	st, st(1)
		mov	[esp+8], ebx
		fadd	[ebp+var_8C]
		fxch	st(6)
		fmul	[ebp+arg_C]
		faddp	st(7), st
		fxch	st(6)
		fsub	st, st(4)
		fst	[ebp+var_78]
		fxch	st(2)
		fmul	[ebp+arg_C]
		faddp	st(3), st
		fsub	st(2), st
		fxch	st(2)
		fst	[ebp+var_74]
		fxch	st(5)
		fmul	[ebp+arg_C]
		fadd	[ebp+var_8C]
		fsub	st, st(4)
		fst	[ebp+var_70]
		fxch	st(1)
		fmul	st, st
		fxch	st(5)
		fmul	st, st
		fxch	st(1)
		fmul	st, st
		fxch	st(1)
		faddp	st(5), st
		faddp	st(4), st
		fldz
		fcomi	st, st(4)
		fstp	st(4)
		fxch	st(3)
		setnz	[ebp+var_47]
		fst	[ebp+var_50]
		fst	[ebp+var_54]
		fst	[ebp+var_58]
		fst	[ebp+var_60]
		fst	[ebp+var_64]
		fstp	[ebp+var_68]
		fstp	[ebp+var_88]
		fxch	st(1)
		fstp	[ebp+var_84]
		fstp	[ebp+var_80]
		mov	[ebp+var_90], edx
		call	_ZN13CDispCollTree12AABBTree_RayERK5Ray_tR15RayDispOutput_t ; CDispCollTree::AABBTree_Ray(Ray_t	 const&,RayDispOutput_t	&)
		mov	edx, [ebp+var_90]
		test	al, al
		jnz	short loc_E4070

loc_E405A:				; CODE XREF: CDispInfo::TestRay(Ray_t  const&,float,float,float	&,Vector2D *,Vector2D *)+32j
		add	esp, 9Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E4070:				; CODE XREF: CDispInfo::TestRay(Ray_t  const&,float,float,float	&,Vector2D *,Vector2D *)+108j
		fld	[ebp+var_1C]
		mov	[ebp+var_94], edx
		mov	edi, 1
		fld	[ebp+arg_C]
		fmul	st, st(1)
		mov	eax, [ebp+arg_10]
		mov	edx, [ebp+arg_18]
		fld	[ebp+var_94]
		fsubrp	st(2), st
		fxch	st(1)
		fmul	[ebp+arg_8]
		faddp	st(1), st
		fstp	dword ptr [eax]
		mov	eax, [esi]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_14]
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+8], edx
		call	dword ptr [eax+44h]
		add	esp, 9Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDispInfo7TestRayERK5Ray_tffRfP8Vector2DS5_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CDispInfo::GetPowerInfo(void)const
_ZThn4_NK9CDispInfo12GetPowerInfoEv proc near ;	DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZNK9CDispInfo12GetPowerInfoEv ; CDispInfo::GetPowerInfo(void)
_ZThn4_NK9CDispInfo12GetPowerInfoEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetPowerInfo(void)const
_ZNK9CDispInfo12GetPowerInfoEv proc near
					; CODE XREF: `non-virtual thunk	to'CDispInfo::GetPowerInfo(void)+5j
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+1DCh]
		retn
_ZNK9CDispInfo12GetPowerInfoEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CDispInfo::GetEdgeNeighbor(int)
_ZThn4_N9CDispInfo15GetEdgeNeighborEi proc near	; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN9CDispInfo15GetEdgeNeighborEi ; CDispInfo::GetEdgeNeighbor(int)
_ZThn4_N9CDispInfo15GetEdgeNeighborEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetEdgeNeighbor(int)
_ZN9CDispInfo15GetEdgeNeighborEi proc near
					; CODE XREF: `non-virtual thunk	to'CDispInfo::GetEdgeNeighbor(int)+5j
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		lea	eax, [eax+eax*2]
		lea	eax, ds:1E0h[eax*4]
		add	eax, [ebp+arg_0]
		pop	ebp
		retn
_ZN9CDispInfo15GetEdgeNeighborEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CDispInfo::GetCornerNeighbors(int)
_ZThn4_N9CDispInfo18GetCornerNeighborsEi proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN9CDispInfo18GetCornerNeighborsEi ; CDispInfo::GetCornerNeighbors(int)
_ZThn4_N9CDispInfo18GetCornerNeighborsEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetCornerNeighbors(int)
_ZN9CDispInfo18GetCornerNeighborsEi proc near
					; CODE XREF: `non-virtual thunk	to'CDispInfo::GetCornerNeighbors(int)+5j
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax+210h]
		add	eax, [ebp+arg_0]
		pop	ebp
		retn
_ZN9CDispInfo18GetCornerNeighborsEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================


; `non-virtual thunk to'CDispInfo::GetDispUtilsByIndex(int)
_ZThn4_N9CDispInfo19GetDispUtilsByIndexEi proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  4

		sub	[esp+arg_0], 4
		jmp	short _ZN9CDispInfo19GetDispUtilsByIndexEi ; CDispInfo::GetDispUtilsByIndex(int)
_ZThn4_N9CDispInfo19GetDispUtilsByIndexEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetDispUtilsByIndex(int)
_ZN9CDispInfo19GetDispUtilsByIndexEi proc near
					; CODE XREF: `non-virtual thunk	to'CDispInfo::GetDispUtilsByIndex(int)+5j
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		cmp	edx, 0FFFFh
		jz	short loc_E4177
		mov	ecx, [ebp+arg_0]
		imul	edx, 26Ch
		mov	ecx, [ecx+268h]
		add	edx, [ecx+4]
		jz	short loc_E4177
		lea	eax, [edx+4]

loc_E4177:				; CODE XREF: CDispInfo::GetDispUtilsByIndex(int)+Ej
					; CDispInfo::GetDispUtilsByIndex(int)+22j
		pop	ebp
		retn
_ZN9CDispInfo19GetDispUtilsByIndexEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::TesselateDisplacement(void)
_ZN9CDispInfo21TesselateDisplacementEv proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+5ABp

var_264		= word ptr -264h
var_261		= byte ptr -261h
var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_258		= word ptr -258h
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= word ptr -220h
var_21E		= word ptr -21Eh
var_21C		= word ptr -21Ch
var_214		= byte ptr -214h
var_178		= dword	ptr -178h
var_170		= dword	ptr -170h
var_164		= byte ptr -164h
var_160		= dword	ptr -160h
var_158		= byte ptr -158h
var_154		= dword	ptr -154h
var_148		= byte ptr -148h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= byte ptr -124h
var_120		= byte ptr -120h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B4		= byte ptr -0B4h
var_94		= byte ptr -94h
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	edi, [ebp+var_214]
		push	ebx
		sub	esp, 27Ch
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN9CDispInfo22ClearAllDecalFragmentsEv	; CDispInfo::ClearAllDecalFragments(void)
		mov	[esp], ebx
		call	_ZN9CDispInfo28ClearAllShadowDecalFragmentsEv ;	CDispInfo::ClearAllShadowDecalFragments(void)
		mov	edx, [ebx+24h]
		mov	[ebp+var_23C], edi
		mov	eax, [ebx+1DCh]
		mov	eax, [eax+24h]
		mov	[ebp+var_158], 0
		mov	[ebp+var_160], 0
		mov	[ebp+var_144], 0
		mov	[ebp+var_140], 0
		sub	eax, 1
		mov	[ebp+var_2C], ebx
		imul	eax, eax
		mov	[ebp+var_13C], 0
		mov	[ebp+var_134], 0
		mov	[ebp+var_130], 0
		lea	esi, [eax+eax*2]
		mov	eax, [ebx+28h]
		mov	[ebp+var_12C], 0FFFFFFFFh
		mov	[ebp+var_128], 0
		add	esi, esi
		mov	[ebp+var_7C], 0
		mov	[ebp+var_38], 0FFFFFFFFh
		mov	[ebp+var_34], 0
		mov	[ebp+var_70], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_74], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_D4], 0FFFFFFFFh
		mov	ebx, [eax]
		mov	[ebp+var_160], ebx
		mov	eax, [ebx]
		mov	[esp+18h], edi
		mov	[esp+14h], esi
		mov	[esp+10h], edx
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	dword ptr [eax+5Ch]
		lea	eax, [ebx+4]
		mov	[ebp+var_13C], esi
		mov	ecx, 29h
		mov	[ebp+var_144], eax
		mov	eax, [ebp+var_178]
		mov	[ebp+var_140], esi
		mov	esi, [ebp+var_23C]
		mov	[ebp+var_124], 1
		mov	[ebp+var_134], 0
		mov	[ebp+var_138], eax
		mov	eax, [ebp+var_170]
		mov	[ebp+var_7C], ebx
		mov	[ebp+var_70], 0
		mov	[ebp+var_74], 0
		mov	[ebp+var_154], eax
		movzx	eax, [ebp+var_164]
		mov	[ebp+var_78], 1
		mov	[ebp+var_6C], 0
		mov	[ebp+var_148], al
		lea	eax, [ebp+var_120]
		mov	edi, eax
		rep movsd
		lea	ecx, [ebp+var_94]
		cmp	[ebp+var_D0], 1
		sbb	eax, eax
		not	eax
		and	eax, 2
		mov	[ebp+var_D0], eax
		mov	eax, [ebp+var_CC]
		mov	[ebp+var_68], eax
		mov	eax, [ebp+var_C0]
		mov	[ebp+var_64], eax
		lea	eax, [ebp+var_B4]
		lea	esi, [esi+0]

loc_E4340:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+1CAj
		mov	edx, [eax]
		mov	[eax+54h], edx
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_E4340
		mov	eax, [ebp+var_BC]
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_40], eax
		mov	eax, [ebp+arg_0]
		add	eax, 118h
		mov	[ebp+var_22C], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+48h]
		mov	edx, [ebp+var_2C]
		lea	esi, [eax+20h]
		mov	[ebp+var_228], eax
		cmp	dword ptr [eax+1Ch], 1
		mov	[ebp+var_240], esi
		mov	[ebp+var_224], 0
		mov	edx, [edx+24Ch]
		mov	[ebp+var_260], edx
		jg	loc_E4530
		mov	[ebp+var_1C], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_28], 0

loc_E43BC:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+468j
		mov	ebx, [ebp+var_260]
		mov	[ebp+var_261], 0
		mov	[ebp+var_264], 0
		mov	byte ptr [ebx+3], 0

loc_E43D6:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+48Bj
		mov	eax, [ebp+var_228]
		cmp	word ptr g_TWinding+4, 0
		mov	ecx, [eax+1Ch]
		jle	loc_E44E0
		sub	ecx, 1
		mov	eax, 1
		xor	edx, edx
		mov	[ebp+var_25C], 0
		shl	eax, cl
		mov	[ebp+var_258], ax
		xor	eax, eax
		jmp	short loc_E442F
; ---------------------------------------------------------------------------
		align 10h

loc_E4410:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+2E7j
		mov	[ebp+var_25C], 0

loc_E441A:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+331j
					; CDispInfo::TesselateDisplacement(void)+358j ...
		movsx	ecx, word ptr g_TWinding+4
		add	eax, 1
		add	edx, 6
		cmp	eax, ecx
		jge	loc_E44E0

loc_E442F:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+28Cj
		mov	esi, [ebp+var_240]
		mov	ebx, g_TWinding
		mov	edi, [ebp+var_240]
		movzx	esi, word ptr [esi+2]
		add	ebx, edx
		movzx	ecx, word ptr [edi]
		movzx	edi, word ptr [ebx]
		mov	word ptr [ebp+var_244],	si
		movzx	esi, word ptr [ebx+2]
		movsx	ebx, word ptr [ebx+4]
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_E4469
		mov	ebx, [ebp+ebx*4+var_28]
		test	ebx, ebx
		jnz	short loc_E4410

loc_E4469:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+2DFj
		imul	si, [ebp+var_258]
		mov	ebx, [ebp+var_228]
		imul	di, [ebp+var_258]
		add	si, word ptr [ebp+var_244]
		mov	ebx, [ebx+24h]
		add	edi, ecx
		movsx	edi, di
		movsx	ecx, si
		mov	esi, [ebp+var_22C]
		imul	ecx, ebx
		mov	[ebp+var_248], ebx
		add	ecx, edi
		mov	edi, 1
		mov	ebx, ecx
		shl	edi, cl
		sar	ebx, 5
		test	[esi+ebx*4], edi
		jz	loc_E441A
		mov	ebx, [ebp+var_25C]
		cmp	ebx, 1
		mov	[ebp+ebx*2+var_220], cx
		jz	loc_E4610
		mov	[ebp+var_25C], 1
		jmp	loc_E441A
; ---------------------------------------------------------------------------
		align 10h

loc_E44E0:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+267j
					; CDispInfo::TesselateDisplacement(void)+2A9j
		mov	eax, [ebp+var_224]
		lea	ecx, [ebp+var_214]
		mov	edi, [ebp+var_260]
		sub	al, [ebp+var_261]
		mov	[edi+2], al
		movzx	eax, [ebp+var_264]
		mov	[edi], ax
		mov	eax, [ebp+var_160]
		mov	edx, [eax]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+54h]
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+var_224]
		mov	[ebx+20h], eax
		add	esp, 27Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E4530:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+21Aj
		mov	ecx, [eax+24h]
		mov	esi, 1
		movsx	ebx, word ptr [eax+22h]
		movsx	edx, word ptr [eax+20h]
		imul	ebx, ecx
		add	edx, ebx
		xor	ebx, ebx
		shl	edx, 4
		mov	[ebp+var_244], edx

loc_E4550:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+435j
		mov	eax, [eax+8]
		mov	edi, 1
		add	eax, [ebp+var_244]
		lea	eax, [eax+ebx*4]
		movsx	edx, word ptr [eax+2]
		imul	edx, ecx
		movsx	ecx, word ptr [eax]
		add	ecx, edx
		shl	edi, cl
		mov	edx, ecx
		mov	ecx, edi
		mov	edi, [ebp+var_22C]
		sar	edx, 5
		and	ecx, [edi+edx*4]
		test	ecx, ecx
		mov	[ebp+ebx*4+var_28], ecx
		jnz	short loc_E45C0
		mov	edx, [ebp+var_2C]
		lea	eax, ds:0[esi*4]
		add	eax, [edx+24Ch]
		mov	byte ptr [eax+2], 0
		mov	byte ptr [eax+3], 0

loc_E459F:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+45Ej
		mov	eax, [ebp+var_228]
		add	ebx, 1
		cmp	ebx, 4
		mov	edx, [eax+38h]
		jz	short loc_E45E0
		add	esi, edx
		mov	ecx, [eax+24h]
		jmp	short loc_E4550
; ---------------------------------------------------------------------------
		align 10h

loc_E45C0:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+405j
		mov	[esp+4], eax
		lea	eax, [ebp+var_22C]
		mov	dword ptr [esp+0Ch], 1
		mov	[esp+8], esi
		mov	[esp], eax
		call	_Z23TesselateDisplacement_RI22CEngineTesselateHelperEvPT_RK10CVertIndexii ; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex	 const&,int,int)
		jmp	short loc_E459F
; ---------------------------------------------------------------------------

loc_E45E0:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+42Ej
		mov	esi, [ebp+var_224]
		test	esi, esi
		jz	loc_E43BC
		mov	edx, [ebp+var_260]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebp+var_224]
		mov	[ebp+var_261], al
		mov	[ebp+var_264], ax
		jmp	loc_E43D6
; ---------------------------------------------------------------------------

loc_E4610:				; CODE XREF: CDispInfo::TesselateDisplacement(void)+348j
		mov	esi, [ebp+var_240]
		movsx	ebx, word ptr [esi+2]
		movsx	ecx, word ptr [esi]
		imul	ebx, [ebp+var_248]
		add	ecx, ebx
		mov	ebx, [ebp+var_134]
		mov	[ebp+var_21C], cx
		mov	ecx, [ebp+var_2C]
		movzx	edi, word ptr [ecx+2Ch]
		mov	ecx, [ebp+var_154]
		mov	esi, edi
		add	si, word ptr [ebp+var_138]
		add	si, [ebp+var_220]
		mov	[ecx+ebx*2], si
		mov	esi, edi
		movzx	ecx, [ebp+var_148]
		mov	ebx, [ebp+var_13C]
		add	ecx, [ebp+var_134]
		cmp	ecx, [ebp+var_13C]
		mov	[ebp+var_134], ecx
		cmovg	ebx, ecx
		add	si, word ptr [ebp+var_138]
		mov	[ebp+var_13C], ebx
		mov	ebx, [ebp+var_154]
		add	si, [ebp+var_21E]
		mov	[ebx+ecx*2], si
		mov	esi, edi
		movzx	ecx, [ebp+var_148]
		mov	ebx, [ebp+var_13C]
		add	ecx, [ebp+var_134]
		cmp	ecx, [ebp+var_13C]
		mov	[ebp+var_134], ecx
		cmovg	ebx, ecx
		add	si, word ptr [ebp+var_138]
		mov	[ebp+var_13C], ebx
		mov	ebx, [ebp+var_154]
		add	si, [ebp+var_21C]
		mov	[ebx+ecx*2], si
		mov	esi, edi
		movzx	ecx, [ebp+var_148]
		add	ecx, [ebp+var_134]
		mov	[ebp+var_134], ecx
		cmp	ecx, [ebp+var_13C]
		mov	ebx, [ebp+var_224]
		cmovle	ecx, [ebp+var_13C]
		add	si, [ebp+var_220]
		mov	[ebp+var_13C], ecx
		mov	ecx, [ebp+var_2C]
		mov	ecx, [ecx+0F4h]
		mov	[ecx+ebx*2], si
		mov	esi, edi
		mov	ecx, [ebp+var_2C]
		mov	ebx, [ebp+var_224]
		add	si, [ebp+var_21E]
		mov	ecx, [ecx+0F4h]
		mov	[ecx+ebx*2+2], si
		mov	ebx, edi
		mov	ecx, [ebp+var_2C]
		add	bx, [ebp+var_21C]
		mov	esi, [ecx+0F4h]
		mov	ecx, [ebp+var_224]
		mov	[esi+ecx*2+4], bx
		movzx	ecx, [ebp+var_21E]
		add	[ebp+var_224], 3
		mov	[ebp+var_220], cx
		jmp	loc_E441A
_ZN9CDispInfo21TesselateDisplacementEv endp

; ---------------------------------------------------------------------------
		lea	esi, [ebp-214h]
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN12CMeshBuilderD2Ev ;	CMeshBuilder::~CMeshBuilder()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CMatRenderContextPtr::~CMatRenderContextPtr()
_ZN20CMatRenderContextPtrD2Ev proc near	; CODE XREF: .text:000E23ADp
					; .text:000E2A67p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E47D0
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E47D0
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	eax, [edx+4]
		mov	esp, ebp
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_E47D0:				; CODE XREF: CMatRenderContextPtr::~CMatRenderContextPtr()+13j
					; CMatRenderContextPtr::~CMatRenderContextPtr()+21j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN20CMatRenderContextPtrD2Ev endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E47EA
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_E47EA:				; CODE XREF: .text:000E47E0j
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CMeshBuilder::~CMeshBuilder()
_ZN12CMeshBuilderD2Ev proc near		; CODE XREF: .text:000E23B9p
					; .text:000E2A73p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	eax, [ebx+198h]
		test	eax, eax
		jz	short loc_E4825
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	short loc_E4868

loc_E4825:				; CODE XREF: CMeshBuilder::~CMeshBuilder()+17j
					; CMeshBuilder::~CMeshBuilder()+76j
		mov	eax, [ebx+0D0h]
		test	eax, eax
		jz	short loc_E4858
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jz	short loc_E4858
		mov	eax, [ebx+0D0h]
		mov	esi, [ebp+var_4]
		mov	ebx, [ebp+var_8]
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		mov	eax, [edx+18h]
		mov	esp, ebp
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------
		align 8

loc_E4858:				; CODE XREF: CMeshBuilder::~CMeshBuilder()+2Dj
					; CMeshBuilder::~CMeshBuilder()+39j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E4868:				; CODE XREF: CMeshBuilder::~CMeshBuilder()+23j
		mov	eax, [ebx+198h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	short loc_E4825
_ZN12CMeshBuilderD2Ev endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebx+0D0h]
		call	_ZN13CIndexBuilderD2Ev_isra_19
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *, CVertIndex  const&, int, int)
_Z23TesselateDisplacement_RI22CEngineTesselateHelperEvPT_RK10CVertIndexii proc near
					; CODE XREF: CDispInfo::TesselateDisplacement(void)+459p
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1627p

var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 13Ch
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		mov	edi, [ebx+200h]
		lea	eax, ds:0[edx*4]
		mov	ecx, [edi+24Ch]
		add	eax, ecx
		mov	[ebp+var_A4], eax
		mov	eax, [ebx+8]
		mov	[ebp+var_B0], eax
		mov	eax, [ebx+4]
		mov	ecx, [eax+1Ch]
		sub	ecx, 1
		cmp	ecx, [ebp+arg_C]
		jg	loc_E4A30
		mov	[ebp+var_6C], 0
		mov	[ebp+var_70], 0
		mov	[ebp+var_74], 0
		mov	[ebp+var_78], 0

loc_E48F4:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+419j
		mov	edx, [ebp+var_A4]
		mov	byte ptr [edx+3], 0

loc_E48FE:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+432j
		mov	eax, [ebx+4]
		cmp	word ptr g_TWinding+4, 0
		mov	ecx, [eax+1Ch]
		jle	loc_E4A00
		sub	ecx, [ebp+arg_C]
		mov	eax, 1
		mov	[ebp+var_80], 0
		mov	[ebp+var_84], 0
		sub	ecx, 1
		shl	eax, cl
		mov	word ptr [ebp+var_8C], ax
		xor	eax, eax
		jmp	short loc_E4961
; ---------------------------------------------------------------------------
		align 10h

loc_E4940:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+100j
		mov	[ebp+var_84], 0

loc_E494A:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+13Ej
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+162j ...
		add	[ebp+var_80], 1
		add	eax, 6
		movsx	edx, word ptr g_TWinding+4
		cmp	[ebp+var_80], edx
		jge	loc_E4A00

loc_E4961:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+A9j
		mov	esi, [ebp+arg_4]
		mov	edx, g_TWinding
		mov	edi, [ebp+arg_4]
		movzx	esi, word ptr [esi+2]
		add	edx, eax
		movzx	ecx, word ptr [edi]
		movzx	edi, word ptr [edx]
		mov	word ptr [ebp+var_7C], si
		movzx	esi, word ptr [edx+2]
		movsx	edx, word ptr [edx+4]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_E4992
		mov	edx, [ebp+edx*4+var_78]
		test	edx, edx
		jnz	short loc_E4940

loc_E4992:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+F8j
		imul	si, word ptr [ebp+var_8C]
		mov	edx, [ebx+4]
		imul	di, word ptr [ebp+var_8C]
		add	si, word ptr [ebp+var_7C]
		add	edi, ecx
		mov	[ebp+var_88], edx
		movsx	edi, di
		movsx	ecx, si
		imul	ecx, [edx+24h]
		mov	edx, [ebx]
		add	ecx, edi
		mov	edi, 1
		mov	esi, ecx
		shl	edi, cl
		sar	esi, 5
		test	[edx+esi*4], edi
		jz	loc_E494A
		mov	edx, [ebp+var_84]
		cmp	edx, 1
		mov	[ebx+edx*2+0Ch], cx
		jz	loc_E4DF8
		mov	[ebp+var_84], 1
		jmp	loc_E494A
; ---------------------------------------------------------------------------
		align 10h

loc_E4A00:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+7Cj
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+CBj
		mov	eax, [ebx+8]
		mov	edx, [ebp+var_A4]
		movzx	ecx, word ptr [ebp+var_B0]
		sub	al, byte ptr [ebp+var_B0]
		mov	[edx], cx
		mov	[edx+2], al
		add	esp, 13Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E4A30:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+42j
		add	edx, 1
		mov	esi, [eax+24h]
		mov	[ebp+var_94], edi
		mov	[ebp+var_AC], edx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8C], 0
		mov	[ebp+var_7C], esi
		movsx	ecx, word ptr [edx+2]
		movsx	edx, word ptr [edx]
		imul	ecx, esi
		mov	esi, [ebp+arg_C]
		add	edx, ecx
		shl	edx, 4
		add	esi, 0Ch
		mov	[ebp+var_B8], edx
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_C8], esi
		mov	esi, [ebp+arg_C]
		add	edx, 1
		add	esi, 2
		mov	[ebp+var_D8], edx
		mov	[ebp+var_EC], esi

loc_E4A8B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+2A9j
		mov	edi, [eax+8]
		mov	edx, [ebp+var_B8]
		mov	esi, [ebp+var_8C]
		mov	[ebp+var_84], edi
		add	edx, edi
		lea	edx, [edx+esi*4]
		mov	[ebp+var_80], edx
		movsx	edx, word ptr [edx+2]
		mov	edi, [ebp+var_80]
		imul	edx, [ebp+var_7C]
		movsx	ecx, word ptr [edi]
		add	ecx, edx
		mov	edx, [ebx]
		mov	esi, ecx
		sar	esi, 5
		mov	[ebp+var_88], edx
		mov	edx, 1
		mov	edi, [ebp+var_88]
		shl	edx, cl
		and	edx, [edi+esi*4]
		mov	esi, [ebp+var_8C]
		test	edx, edx
		mov	[ebp+esi*4+var_78], edx
		jnz	short loc_E4B40
		mov	eax, [ebp+var_AC]
		mov	esi, [ebp+var_94]
		shl	eax, 2
		add	eax, [esi+24Ch]
		mov	byte ptr [eax+2], 0
		mov	byte ptr [eax+3], 0

loc_E4B00:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+55Cj
		add	[ebp+var_8C], 1
		mov	eax, [ebx+4]
		mov	edi, [ebp+var_C8]
		cmp	[ebp+var_8C], 4
		mov	edx, [eax+edi*4+8]
		jz	loc_E4CA0
		add	[ebp+var_AC], edx
		mov	esi, [ebx+200h]
		mov	edx, [eax+24h]
		mov	[ebp+var_94], esi
		mov	[ebp+var_7C], edx
		jmp	loc_E4A8B
; ---------------------------------------------------------------------------
		align 10h

loc_E4B40:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+251j
		mov	edx, [ebp+var_94]
		mov	edi, [ebp+var_AC]
		mov	edx, [edx+24Ch]
		shl	edi, 2
		add	edi, edx
		mov	edx, [ebx+8]
		mov	[ebp+var_BC], edi
		mov	[ebp+var_CC], edx
		mov	edx, [eax+1Ch]
		sub	edx, 1
		cmp	[ebp+var_D8], edx
		jl	loc_E4CD0
		mov	[ebp+var_5C], 0
		mov	[ebp+var_60], 0
		mov	[ebp+var_64], 0
		mov	[ebp+var_68], 0

loc_E4B94:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+801j
		mov	edx, [ebp+var_BC]
		mov	byte ptr [edx+3], 0

loc_E4B9E:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+81Aj
		mov	eax, [ebx+4]
		cmp	word ptr g_TWinding+4, 0
		mov	ecx, [eax+1Ch]
		jle	loc_E4DD0
		sub	ecx, [ebp+var_D8]
		mov	eax, 1
		mov	[ebp+var_90], 0
		mov	[ebp+var_7C], 0
		sub	ecx, 1
		shl	eax, cl
		mov	word ptr [ebp+var_84], ax
		xor	eax, eax
		jmp	short loc_E4C01
; ---------------------------------------------------------------------------
		align 10h

loc_E4BE0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+3A3j
		mov	[ebp+var_90], 0

loc_E4BEA:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+3E4j
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+408j ...
		add	[ebp+var_7C], 1
		add	eax, 6
		movsx	edx, word ptr g_TWinding+4
		cmp	[ebp+var_7C], edx
		jge	loc_E4DD0

loc_E4C01:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+34Cj
		mov	esi, [ebp+var_80]
		mov	edx, g_TWinding
		mov	edi, [ebp+var_80]
		movzx	esi, word ptr [esi+2]
		add	edx, eax
		movzx	ecx, word ptr [edi]
		movzx	edi, word ptr [edx]
		mov	word ptr [ebp+var_88], si
		movzx	esi, word ptr [edx+2]
		movsx	edx, word ptr [edx+4]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_E4C35
		mov	edx, [ebp+edx*4+var_68]
		test	edx, edx
		jnz	short loc_E4BE0

loc_E4C35:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+39Bj
		imul	si, word ptr [ebp+var_84]
		mov	edx, [ebx+4]
		imul	di, word ptr [ebp+var_84]
		add	si, word ptr [ebp+var_88]
		add	edi, ecx
		mov	[ebp+var_98], edx
		movsx	edi, di
		movsx	ecx, si
		imul	ecx, [edx+24h]
		mov	edx, [ebx]
		add	ecx, edi
		mov	edi, 1
		mov	esi, ecx
		shl	edi, cl
		sar	esi, 5
		test	[edx+esi*4], edi
		jz	loc_E4BEA
		mov	edx, [ebp+var_90]
		cmp	edx, 1
		mov	[ebx+edx*2+0Ch], cx
		jz	loc_E50B0
		mov	[ebp+var_90], 1
		jmp	loc_E4BEA
; ---------------------------------------------------------------------------
		align 10h

loc_E4CA0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+28Bj
		mov	eax, [ebp+var_B0]
		cmp	eax, [ebx+8]
		jz	loc_E48F4
		mov	edx, [ebp+var_A4]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebx+8]
		mov	[ebp+var_B0], eax
		jmp	loc_E48FE
; ---------------------------------------------------------------------------
		align 10h

loc_E4CD0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+2E2j
		mov	esi, [ebp+var_AC]
		shl	ecx, 4
		mov	[ebp+var_98], 0
		mov	edi, [ebp+var_D8]
		mov	[ebp+var_E0], ecx
		mov	edx, [ebp+arg_C]
		add	esi, 1
		add	edi, 0Ch
		mov	[ebp+var_C0], esi
		mov	esi, [ebp+var_88]
		mov	[ebp+var_E4], edi
		mov	edi, [ebp+var_94]
		add	edx, 3
		mov	[ebp+var_108], edx

loc_E4D19:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+539j
		mov	edx, [ebp+var_84]
		mov	ecx, [ebp+var_98]
		add	edx, [ebp+var_E0]
		lea	edx, [edx+ecx*4]
		mov	ecx, [ebp+var_7C]
		mov	[ebp+var_88], edx
		movsx	edx, word ptr [edx+2]
		imul	ecx, edx
		mov	[ebp+var_90], edx
		mov	edx, [ebp+var_88]
		movsx	edx, word ptr [edx]
		add	ecx, edx
		mov	[ebp+var_94], edx
		mov	edx, 1
		shl	edx, cl
		sar	ecx, 5
		and	edx, [esi+ecx*4]
		mov	ecx, [ebp+var_98]
		test	edx, edx
		mov	[ebp+ecx*4+var_68], edx
		jnz	loc_E4F28
		mov	ecx, [edi+24Ch]
		mov	eax, [ebp+var_C0]
		lea	eax, [ecx+eax*4]
		mov	byte ptr [eax+2], 0
		mov	byte ptr [eax+3], 0

loc_E4D8B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+A84j
		add	[ebp+var_98], 1
		mov	eax, [ebx+4]
		mov	esi, [ebp+var_E4]
		cmp	[ebp+var_98], 4
		mov	edx, [eax+esi*4+8]
		jz	loc_E5088
		mov	edi, [eax+8]
		add	[ebp+var_C0], edx
		mov	edx, [eax+24h]
		mov	esi, [ebx]
		mov	[ebp+var_84], edi
		mov	edi, [ebx+200h]
		mov	[ebp+var_7C], edx
		jmp	loc_E4D19
; ---------------------------------------------------------------------------
		align 10h

loc_E4DD0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+31Cj
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+36Bj
		mov	eax, [ebx+8]
		mov	edx, [ebp+var_BC]
		movzx	ecx, word ptr [ebp+var_CC]
		sub	al, byte ptr [ebp+var_CC]
		mov	[edx], cx
		mov	[edx+2], al
		jmp	loc_E4B00
; ---------------------------------------------------------------------------
		align 8

loc_E4DF8:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+152j
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_88]
		movsx	ecx, word ptr [esi+2]
		movsx	edx, word ptr [esi]
		imul	ecx, [edi+24h]
		add	edx, ecx
		mov	ecx, [ebx+0F8h]
		mov	[ebx+10h], dx
		mov	edx, [ebx+200h]
		movzx	edi, word ptr [edx+2Ch]
		mov	edx, [ebx+0D8h]
		mov	esi, edi
		add	si, [ebx+0F4h]
		add	si, [ebx+0Ch]
		mov	[edx+ecx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E4E5A
		mov	[ebx+0F0h], edx

loc_E4E5A:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+5C2j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+0Eh]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jg	loc_E51E0

loc_E4E90:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+956j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+10h]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E4EC8
		mov	[ebx+0F0h], edx

loc_E4EC8:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+630j
		mov	edx, [ebx+200h]
		mov	ecx, edi
		mov	esi, [ebx+8]
		add	cx, [ebx+0Ch]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2], cx
		mov	ecx, edi
		mov	edx, [ebx+200h]
		mov	esi, [ebx+8]
		add	cx, [ebx+0Eh]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2+2], cx
		mov	edx, [ebx+200h]
		mov	ecx, [ebx+8]
		add	di, [ebx+10h]
		mov	edx, [edx+0F4h]
		mov	[edx+ecx*2+4], di
		movzx	edx, word ptr [ebx+0Eh]
		add	dword ptr [ebx+8], 3
		mov	[ebx+0Ch], dx
		jmp	loc_E494A
; ---------------------------------------------------------------------------
		align 8

loc_E4F28:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+4DEj
		mov	edx, [ebp+var_C0]
		mov	ecx, [edi+24Ch]
		shl	edx, 2
		add	edx, ecx
		mov	[ebp+var_D0], edx
		mov	edx, [ebx+8]
		mov	[ebp+var_E8], edx
		mov	edx, [eax+1Ch]
		sub	edx, 1
		cmp	[ebp+var_EC], edx
		jl	loc_E51F0
		mov	[ebp+var_4C], 0
		mov	[ebp+var_50], 0
		mov	[ebp+var_54], 0
		mov	[ebp+var_58], 0

loc_E4F76:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+C29j
		mov	edx, [ebp+var_D0]
		mov	byte ptr [edx+3], 0

loc_E4F80:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+C42j
		mov	eax, [ebx+4]
		cmp	word ptr g_TWinding+4, 0
		mov	ecx, [eax+1Ch]
		jle	loc_E52F8
		sub	ecx, [ebp+var_EC]
		mov	eax, 1
		mov	[ebp+var_9C], 0
		mov	[ebp+var_7C], 0
		sub	ecx, 1
		shl	eax, cl
		mov	word ptr [ebp+var_90], ax
		xor	eax, eax
		jmp	short loc_E4FE1
; ---------------------------------------------------------------------------

loc_E4FC0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+789j
		mov	[ebp+var_9C], 0

loc_E4FCA:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+7CAj
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+7EEj ...
		add	[ebp+var_7C], 1
		add	eax, 6
		movsx	edx, word ptr g_TWinding+4
		cmp	[ebp+var_7C], edx
		jge	loc_E52F8

loc_E4FE1:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+72Ej
		mov	esi, [ebp+var_88]
		mov	edx, g_TWinding
		mov	edi, [ebp+var_88]
		movzx	esi, word ptr [esi+2]
		add	edx, eax
		movzx	ecx, word ptr [edi]
		movzx	edi, word ptr [edx]
		mov	word ptr [ebp+var_84], si
		movzx	esi, word ptr [edx+2]
		movsx	edx, word ptr [edx+4]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_E501B
		mov	edx, [ebp+edx*4+var_58]
		test	edx, edx
		jnz	short loc_E4FC0

loc_E501B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+781j
		imul	si, word ptr [ebp+var_90]
		mov	edx, [ebx+4]
		imul	di, word ptr [ebp+var_90]
		add	si, word ptr [ebp+var_84]
		add	edi, ecx
		mov	[ebp+var_94], edx
		movsx	edi, di
		movsx	ecx, si
		imul	ecx, [edx+24h]
		mov	edx, [ebx]
		add	ecx, edi
		mov	edi, 1
		mov	esi, ecx
		shl	edi, cl
		sar	esi, 5
		test	[edx+esi*4], edi
		jz	loc_E4FCA
		mov	edx, [ebp+var_9C]
		cmp	edx, 1
		mov	[ebx+edx*2+0Ch], cx
		jz	loc_E54E0
		mov	[ebp+var_9C], 1
		jmp	loc_E4FCA
; ---------------------------------------------------------------------------
		align 8

loc_E5088:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+516j
		mov	eax, [ebp+var_CC]
		cmp	eax, [ebx+8]
		jz	loc_E4B94
		mov	edx, [ebp+var_BC]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebx+8]
		mov	[ebp+var_CC], eax
		jmp	loc_E4B9E
; ---------------------------------------------------------------------------
		align 10h

loc_E50B0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+3F8j
		mov	esi, [ebp+var_80]
		mov	edi, [ebp+var_98]
		movsx	ecx, word ptr [esi+2]
		movsx	edx, word ptr [esi]
		imul	ecx, [edi+24h]
		add	edx, ecx
		mov	ecx, [ebx+0F8h]
		mov	[ebx+10h], dx
		mov	edx, [ebx+200h]
		movzx	edi, word ptr [edx+2Ch]
		mov	edx, [ebx+0D8h]
		mov	esi, edi
		add	si, [ebx+0F4h]
		add	si, [ebx+0Ch]
		mov	[edx+ecx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5112
		mov	[ebx+0F0h], edx

loc_E5112:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+87Aj
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+0Eh]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E514A
		mov	[ebx+0F0h], edx

loc_E514A:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+8B2j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+10h]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5182
		mov	[ebx+0F0h], edx

loc_E5182:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+8EAj
		mov	edx, [ebx+200h]
		mov	ecx, edi
		mov	esi, [ebx+8]
		add	cx, [ebx+0Ch]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2], cx
		mov	ecx, edi
		mov	edx, [ebx+200h]
		mov	esi, [ebx+8]
		add	cx, [ebx+0Eh]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2+2], cx
		mov	edx, [ebx+200h]
		mov	ecx, [ebx+8]
		add	di, [ebx+10h]
		mov	edx, [edx+0F4h]
		mov	[edx+ecx*2+4], di
		movzx	edx, word ptr [ebx+0Eh]
		add	dword ptr [ebx+8], 3
		mov	[ebx+0Ch], dx
		jmp	loc_E4BEA
; ---------------------------------------------------------------------------
		align 10h

loc_E51E0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+5FAj
		mov	[ebx+0F0h], edx
		jmp	loc_E4E90
; ---------------------------------------------------------------------------
		align 10h

loc_E51F0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+6C4j
		mov	[ebp+var_9C], 0
		mov	edx, [ebp+var_C0]
		add	edx, 1
		mov	[ebp+var_D4], edx
		mov	edx, [ebp+var_90]
		imul	edx, [eax+24h]
		add	edx, [ebp+var_94]
		shl	edx, 4
		mov	[ebp+var_F0], edx
		mov	edx, [ebp+var_EC]
		add	edx, 0Ch
		mov	[ebp+var_FC], edx
		mov	edx, [ebp+arg_C]
		add	edx, 4
		mov	[ebp+var_120], edx

loc_E523D:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+A5Dj
		mov	edx, [ebp+var_84]
		mov	ecx, [ebp+var_9C]
		add	edx, [ebp+var_F0]
		lea	edx, [edx+ecx*4]
		mov	ecx, [ebp+var_7C]
		mov	[ebp+var_90], edx
		movsx	edx, word ptr [edx+2]
		imul	ecx, edx
		mov	[ebp+var_94], edx
		mov	edx, [ebp+var_90]
		movsx	edx, word ptr [edx]
		add	ecx, edx
		mov	[ebp+var_A0], edx
		mov	edx, 1
		shl	edx, cl
		sar	ecx, 5
		and	edx, [esi+ecx*4]
		mov	ecx, [ebp+var_9C]
		test	edx, edx
		mov	[ebp+ecx*4+var_58], edx
		jnz	loc_E5320
		mov	ecx, [edi+24Ch]
		mov	eax, [ebp+var_D4]
		lea	eax, [ecx+eax*4]
		mov	byte ptr [eax+2], 0
		mov	byte ptr [eax+3], 0

loc_E52AF:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+C14j
		add	[ebp+var_9C], 1
		mov	eax, [ebx+4]
		mov	esi, [ebp+var_FC]
		cmp	[ebp+var_9C], 4
		mov	edx, [eax+esi*4+8]
		jz	loc_E54B0
		mov	edi, [eax+8]
		add	[ebp+var_D4], edx
		mov	edx, [eax+24h]
		mov	esi, [ebx]
		mov	[ebp+var_84], edi
		mov	edi, [ebx+200h]
		mov	[ebp+var_7C], edx
		jmp	loc_E523D
; ---------------------------------------------------------------------------
		align 8

loc_E52F8:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+6FEj
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+74Bj
		mov	eax, [ebx+8]
		mov	edx, [ebp+var_D0]
		movzx	ecx, word ptr [ebp+var_E8]
		sub	al, byte ptr [ebp+var_E8]
		mov	[edx], cx
		mov	[edx+2], al
		jmp	loc_E4D8B
; ---------------------------------------------------------------------------
		align 10h

loc_E5320:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+A02j
		mov	edx, [ebp+var_D4]
		mov	ecx, [edi+24Ch]
		shl	edx, 2
		add	edx, ecx
		mov	[ebp+var_F4], edx
		mov	edx, [ebx+8]
		mov	[ebp+var_104], edx
		mov	edx, [eax+1Ch]
		sub	edx, 1
		cmp	[ebp+var_108], edx
		jl	loc_E5611
		mov	[ebp+var_3C], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_48], 0

loc_E536E:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1012j
		mov	edx, [ebp+var_F4]
		mov	byte ptr [edx+3], 0

loc_E5378:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+102Bj
		mov	eax, [ebx+4]
		cmp	word ptr g_TWinding+4, 0
		mov	ecx, [eax+1Ch]
		jle	loc_E5488
		sub	ecx, [ebp+var_108]
		mov	eax, 1
		mov	[ebp+var_A8], 0
		mov	[ebp+var_7C], 0
		sub	ecx, 1
		shl	eax, cl
		mov	word ptr [ebp+var_94], ax
		xor	eax, eax
		jmp	short loc_E53E1
; ---------------------------------------------------------------------------
		align 10h

loc_E53C0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+B89j
		mov	[ebp+var_A8], 0

loc_E53CA:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+BCAj
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+BEEj ...
		add	[ebp+var_7C], 1
		add	eax, 6
		movsx	edx, word ptr g_TWinding+4
		cmp	[ebp+var_7C], edx
		jge	loc_E5488

loc_E53E1:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+B26j
		mov	esi, [ebp+var_90]
		mov	edx, g_TWinding
		mov	edi, [ebp+var_90]
		movzx	esi, word ptr [esi+2]
		add	edx, eax
		movzx	ecx, word ptr [edi]
		movzx	edi, word ptr [edx]
		mov	word ptr [ebp+var_84], si
		movzx	esi, word ptr [edx+2]
		movsx	edx, word ptr [edx+4]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_E541B
		mov	edx, [ebp+edx*4+var_48]
		test	edx, edx
		jnz	short loc_E53C0

loc_E541B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+B81j
		imul	si, word ptr [ebp+var_94]
		mov	edx, [ebx+4]
		imul	di, word ptr [ebp+var_94]
		add	si, word ptr [ebp+var_84]
		add	edi, ecx
		mov	[ebp+var_A0], edx
		movsx	edi, di
		movsx	ecx, si
		imul	ecx, [edx+24h]
		mov	edx, [ebx]
		add	ecx, edi
		mov	edi, 1
		mov	esi, ecx
		shl	edi, cl
		sar	esi, 5
		test	[edx+esi*4], edi
		jz	loc_E53CA
		mov	edx, [ebp+var_A8]
		cmp	edx, 1
		mov	[ebx+edx*2+0Ch], cx
		jz	loc_E58C0
		mov	[ebp+var_A8], 1
		jmp	loc_E53CA
; ---------------------------------------------------------------------------
		align 8

loc_E5488:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+AF6j
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+B4Bj
		mov	eax, [ebx+8]
		mov	edx, [ebp+var_F4]
		movzx	ecx, word ptr [ebp+var_104]
		sub	al, byte ptr [ebp+var_104]
		mov	[edx], cx
		mov	[edx+2], al
		jmp	loc_E52AF
; ---------------------------------------------------------------------------
		align 10h

loc_E54B0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+A3Aj
		mov	eax, [ebp+var_E8]
		cmp	eax, [ebx+8]
		jz	loc_E4F76
		mov	edx, [ebp+var_D0]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebx+8]
		mov	[ebp+var_E8], eax
		jmp	loc_E4F80
; ---------------------------------------------------------------------------
		align 10h

loc_E54E0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+7DEj
		mov	esi, [ebp+var_88]
		mov	edi, [ebp+var_94]
		movsx	ecx, word ptr [esi+2]
		movsx	edx, word ptr [esi]
		imul	ecx, [edi+24h]
		add	edx, ecx
		mov	ecx, [ebx+0F8h]
		mov	[ebx+10h], dx
		mov	edx, [ebx+200h]
		movzx	edi, word ptr [edx+2Ch]
		mov	edx, [ebx+0D8h]
		mov	esi, edi
		add	si, [ebx+0F4h]
		add	si, [ebx+0Ch]
		mov	[edx+ecx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5545
		mov	[ebx+0F0h], edx

loc_E5545:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+CADj
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+0Eh]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E557D
		mov	[ebx+0F0h], edx

loc_E557D:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+CE5j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+10h]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E55B5
		mov	[ebx+0F0h], edx

loc_E55B5:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+D1Dj
		mov	edx, [ebx+200h]
		mov	ecx, edi
		mov	esi, [ebx+8]
		add	cx, [ebx+0Ch]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2], cx
		mov	ecx, edi
		mov	edx, [ebx+200h]
		mov	esi, [ebx+8]
		add	cx, [ebx+0Eh]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2+2], cx
		mov	edx, [ebx+200h]
		mov	ecx, [ebx+8]
		add	di, [ebx+10h]
		mov	edx, [edx+0F4h]
		mov	[edx+ecx*2+4], di
		movzx	edx, word ptr [ebx+0Eh]
		add	dword ptr [ebx+8], 3
		mov	[ebx+0Ch], dx
		jmp	loc_E4FCA
; ---------------------------------------------------------------------------

loc_E5611:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+ABCj
		mov	edx, [ebp+var_D4]
		add	edx, 1
		mov	[ebp+var_F8], edx
		mov	edx, [ebp+var_94]
		imul	edx, [eax+24h]
		add	edx, [ebp+var_A0]
		mov	[ebp+var_A0], 0
		shl	edx, 4
		mov	[ebp+var_110], edx
		mov	edx, [ebp+var_108]
		add	edx, 0Ch
		mov	[ebp+var_118], edx
		mov	edx, [ebp+arg_C]
		add	edx, 5
		mov	[ebp+var_134], edx

loc_E565E:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+E7Aj
		mov	edx, [ebp+var_84]
		mov	ecx, [ebp+var_A0]
		add	edx, [ebp+var_110]
		lea	edx, [edx+ecx*4]
		mov	ecx, [ebp+var_7C]
		mov	[ebp+var_94], edx
		movsx	edx, word ptr [edx+2]
		imul	ecx, edx
		mov	[ebp+var_A8], edx
		mov	edx, [ebp+var_94]
		movsx	edx, word ptr [edx]
		add	ecx, edx
		mov	[ebp+var_B4], edx
		mov	edx, 1
		shl	edx, cl
		sar	ecx, 5
		and	edx, [esi+ecx*4]
		mov	ecx, [ebp+var_A0]
		test	edx, edx
		mov	[ebp+ecx*4+var_48], edx
		jnz	short loc_E5710
		mov	ecx, [edi+24Ch]
		mov	eax, [ebp+var_F8]
		lea	eax, [ecx+eax*4]
		mov	byte ptr [eax+2], 0
		mov	byte ptr [eax+3], 0

loc_E56CC:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1004j
		add	[ebp+var_A0], 1
		mov	eax, [ebx+4]
		mov	esi, [ebp+var_118]
		cmp	[ebp+var_A0], 4
		mov	edx, [eax+esi*4+8]
		jz	loc_E5899
		mov	edi, [eax+8]
		add	[ebp+var_F8], edx
		mov	edx, [eax+24h]
		mov	esi, [ebx]
		mov	[ebp+var_84], edi
		mov	edi, [ebx+200h]
		mov	[ebp+var_7C], edx
		jmp	loc_E565E
; ---------------------------------------------------------------------------
		align 10h

loc_E5710:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+E23j
		mov	edx, [ebp+var_F8]
		mov	ecx, [edi+24Ch]
		shl	edx, 2
		add	edx, ecx
		mov	[ebp+var_10C], edx
		mov	edx, [ebx+8]
		mov	[ebp+var_11C], edx
		mov	edx, [eax+1Ch]
		sub	edx, 1
		cmp	[ebp+var_120], edx
		jl	loc_E59F1
		mov	[ebp+var_2C], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_38], 0

loc_E575E:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+13DEj
		mov	edx, [ebp+var_10C]
		mov	byte ptr [edx+3], 0

loc_E5768:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+13F7j
		mov	eax, [ebx+4]
		cmp	word ptr g_TWinding+4, 0
		mov	ecx, [eax+1Ch]
		jle	loc_E5878
		sub	ecx, [ebp+var_120]
		mov	eax, 1
		mov	[ebp+var_C4], 0
		mov	[ebp+var_7C], 0
		sub	ecx, 1
		shl	eax, cl
		mov	word ptr [ebp+var_A8], ax
		xor	eax, eax
		jmp	short loc_E57D1
; ---------------------------------------------------------------------------
		align 10h

loc_E57B0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+F79j
		mov	[ebp+var_C4], 0

loc_E57BA:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+FBAj
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+FDEj ...
		add	[ebp+var_7C], 1
		add	eax, 6
		movsx	edx, word ptr g_TWinding+4
		cmp	[ebp+var_7C], edx
		jge	loc_E5878

loc_E57D1:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+F16j
		mov	esi, [ebp+var_94]
		mov	edx, g_TWinding
		mov	edi, [ebp+var_94]
		movzx	esi, word ptr [esi+2]
		add	edx, eax
		movzx	ecx, word ptr [edi]
		movzx	edi, word ptr [edx]
		mov	word ptr [ebp+var_84], si
		movzx	esi, word ptr [edx+2]
		movsx	edx, word ptr [edx+4]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_E580B
		mov	edx, [ebp+edx*4+var_38]
		test	edx, edx
		jnz	short loc_E57B0

loc_E580B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+F71j
		imul	si, word ptr [ebp+var_A8]
		mov	edx, [ebx+4]
		imul	di, word ptr [ebp+var_A8]
		add	si, word ptr [ebp+var_84]
		add	edi, ecx
		mov	[ebp+var_B4], edx
		movsx	edi, di
		movsx	ecx, si
		imul	ecx, [edx+24h]
		mov	edx, [ebx]
		add	ecx, edi
		mov	edi, 1
		mov	esi, ecx
		shl	edi, cl
		sar	esi, 5
		test	[edx+esi*4], edi
		jz	loc_E57BA
		mov	edx, [ebp+var_C4]
		cmp	edx, 1
		mov	[ebx+edx*2+0Ch], cx
		jz	loc_E5D6B
		mov	[ebp+var_C4], 1
		jmp	loc_E57BA
; ---------------------------------------------------------------------------
		align 8

loc_E5878:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+EE6j
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+F3Bj
		mov	eax, [ebx+8]
		mov	edx, [ebp+var_10C]
		movzx	ecx, word ptr [ebp+var_11C]
		sub	al, byte ptr [ebp+var_11C]
		mov	[edx], cx
		mov	[edx+2], al
		jmp	loc_E56CC
; ---------------------------------------------------------------------------

loc_E5899:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+E57j
		mov	eax, [ebp+var_104]
		cmp	eax, [ebx+8]
		jz	loc_E536E
		mov	edx, [ebp+var_F4]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebx+8]
		mov	[ebp+var_104], eax
		jmp	loc_E5378
; ---------------------------------------------------------------------------

loc_E58C0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+BDEj
		mov	esi, [ebp+var_90]
		mov	edi, [ebp+var_A0]
		movsx	ecx, word ptr [esi+2]
		movsx	edx, word ptr [esi]
		imul	ecx, [edi+24h]
		add	edx, ecx
		mov	ecx, [ebx+0F8h]
		mov	[ebx+10h], dx
		mov	edx, [ebx+200h]
		movzx	edi, word ptr [edx+2Ch]
		mov	edx, [ebx+0D8h]
		mov	esi, edi
		add	si, [ebx+0F4h]
		add	si, [ebx+0Ch]
		mov	[edx+ecx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5925
		mov	[ebx+0F0h], edx

loc_E5925:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+108Dj
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+0Eh]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E595D
		mov	[ebx+0F0h], edx

loc_E595D:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+10C5j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+10h]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5995
		mov	[ebx+0F0h], edx

loc_E5995:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+10FDj
		mov	edx, [ebx+200h]
		mov	ecx, edi
		mov	esi, [ebx+8]
		add	cx, [ebx+0Ch]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2], cx
		mov	ecx, edi
		mov	edx, [ebx+200h]
		mov	esi, [ebx+8]
		add	cx, [ebx+0Eh]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2+2], cx
		mov	edx, [ebx+200h]
		mov	ecx, [ebx+8]
		add	di, [ebx+10h]
		mov	edx, [edx+0F4h]
		mov	[edx+ecx*2+4], di
		movzx	edx, word ptr [ebx+0Eh]
		add	dword ptr [ebx+8], 3
		mov	[ebx+0Ch], dx
		jmp	loc_E53CA
; ---------------------------------------------------------------------------

loc_E59F1:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+EACj
		mov	edx, [ebp+var_F8]
		mov	[ebp+var_DC], edi
		mov	edi, esi
		add	edx, 1
		mov	[ebp+var_114], edx
		mov	edx, [ebp+var_A8]
		mov	[ebp+var_A8], 0
		imul	edx, [eax+24h]
		add	edx, [ebp+var_B4]
		shl	edx, 4
		mov	[ebp+var_124], edx
		mov	edx, [ebp+var_120]
		add	edx, 0Ch
		mov	[ebp+var_12C], edx
		mov	edx, [ebp+arg_C]
		add	edx, 6
		mov	[ebp+var_138], edx

loc_E5A46:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1262j
		mov	edx, [ebp+var_84]
		mov	ecx, [ebp+var_A8]
		add	edx, [ebp+var_124]
		lea	esi, [edx+ecx*4]
		mov	ecx, [ebp+var_7C]
		movsx	edx, word ptr [esi+2]
		imul	ecx, edx
		mov	[ebp+var_B4], edx
		movsx	edx, word ptr [esi]
		add	ecx, edx
		mov	[ebp+var_C4], edx
		mov	edx, 1
		shl	edx, cl
		sar	ecx, 5
		and	edx, [edi+ecx*4]
		mov	ecx, [ebp+var_A8]
		test	edx, edx
		mov	[ebp+ecx*4+var_38], edx
		jnz	short loc_E5AF7
		mov	eax, [ebp+var_114]
		mov	esi, [ebp+var_DC]
		shl	eax, 2
		add	eax, [esi+24Ch]
		mov	byte ptr [eax+2], 0
		mov	byte ptr [eax+3], 0

loc_E5AAE:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+14D6j
		add	[ebp+var_A8], 1
		mov	eax, [ebx+4]
		mov	edi, [ebp+var_12C]
		cmp	[ebp+var_A8], 4
		mov	edx, [eax+edi*4+8]
		jz	loc_E5C65
		add	[ebp+var_114], edx
		mov	edx, [eax+8]
		mov	esi, [eax+24h]
		mov	edi, [ebx]
		mov	[ebp+var_84], edx
		mov	edx, [ebx+200h]
		mov	[ebp+var_7C], esi
		mov	[ebp+var_DC], edx
		jmp	loc_E5A46
; ---------------------------------------------------------------------------

loc_E5AF7:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+11FFj
		mov	ecx, [ebp+var_DC]
		mov	edx, [ebp+var_114]
		mov	ecx, [ecx+24Ch]
		shl	edx, 2
		add	edx, ecx
		mov	[ebp+var_128], edx
		mov	edx, [ebx+8]
		mov	[ebp+var_130], edx
		mov	edx, [eax+1Ch]
		sub	edx, 1
		cmp	[ebp+var_134], edx
		jl	loc_E5C8C
		mov	[ebp+var_1C], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_28], 0

loc_E5B4B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1640j
		mov	edx, [ebp+var_128]
		mov	byte ptr [edx+3], 0

loc_E5B55:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1659j
		mov	eax, [ebx+4]
		cmp	word ptr g_TWinding+4, 0
		mov	ecx, [eax+1Ch]
		jle	loc_E5D4A
		sub	ecx, [ebp+var_134]
		mov	eax, 1
		mov	[ebp+var_100], 0
		mov	[ebp+var_7C], 0
		mov	[ebp+var_84], esi
		sub	ecx, 1
		shl	eax, cl
		mov	word ptr [ebp+var_C4], ax
		xor	eax, eax
		jmp	short loc_E5BC1
; ---------------------------------------------------------------------------
		align 10h

loc_E5BA0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1369j
		mov	[ebp+var_100], 0

loc_E5BAA:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+13ACj
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+13D0j ...
		add	[ebp+var_7C], 1
		add	eax, 6
		movsx	edx, word ptr g_TWinding+4
		cmp	[ebp+var_7C], edx
		jge	loc_E5D4A

loc_E5BC1:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1309j
		mov	esi, [ebp+var_84]
		mov	edx, g_TWinding
		mov	edi, [ebp+var_84]
		movzx	esi, word ptr [esi+2]
		add	edx, eax
		movzx	ecx, word ptr [edi]
		movzx	edi, word ptr [edx]
		mov	word ptr [ebp+var_B4], si
		movzx	esi, word ptr [edx+2]
		movsx	edx, word ptr [edx+4]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_E5BFB
		mov	edx, [ebp+edx*4+var_28]
		test	edx, edx
		jnz	short loc_E5BA0

loc_E5BFB:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1361j
		imul	di, word ptr [ebp+var_C4]
		imul	si, word ptr [ebp+var_C4]
		mov	edx, [ebx+4]
		add	edi, ecx
		movzx	ecx, word ptr [ebp+var_B4]
		movsx	edi, di
		mov	[ebp+var_DC], edx
		add	ecx, esi
		movsx	ecx, cx
		imul	ecx, [edx+24h]
		mov	edx, [ebx]
		add	ecx, edi
		mov	edi, 1
		mov	esi, ecx
		shl	edi, cl
		sar	esi, 5
		test	[edx+esi*4], edi
		jz	loc_E5BAA
		mov	edx, [ebp+var_100]
		cmp	edx, 1
		mov	[ebx+edx*2+0Ch], cx
		jz	loc_E5EEE
		mov	[ebp+var_100], 1
		jmp	loc_E5BAA
; ---------------------------------------------------------------------------

loc_E5C65:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1239j
		mov	eax, [ebp+var_11C]
		cmp	eax, [ebx+8]
		jz	loc_E575E
		mov	edx, [ebp+var_10C]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebx+8]
		mov	[ebp+var_11C], eax
		jmp	loc_E5768
; ---------------------------------------------------------------------------

loc_E5C8C:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1299j
		mov	eax, [eax+24h]
		mov	[ebp+var_100], esi
		mov	edx, [ebp+var_114]
		mov	ecx, [ebp+var_7C]
		imul	eax, [ebp+var_B4]
		add	edx, 1
		mov	[ebp+var_DC], edx
		mov	edx, [ebp+var_134]
		add	eax, [ebp+var_C4]
		add	edx, 0Ch
		shl	eax, 4
		mov	[ebp+var_C4], edx
		mov	[ebp+var_B4], eax
		xor	eax, eax
		mov	esi, eax
		mov	eax, [ebp+var_84]

loc_E5CD6:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+14B8j
		add	eax, [ebp+var_B4]
		lea	eax, [eax+esi*4]
		movsx	edx, word ptr [eax+2]
		imul	edx, ecx
		movsx	ecx, word ptr [eax]
		add	ecx, edx
		mov	edx, 1
		shl	edx, cl
		sar	ecx, 5
		and	edx, [edi+ecx*4]
		test	edx, edx
		mov	[ebp+esi*4+var_28], edx
		jnz	loc_E5E9C
		mov	edx, [ebx+200h]
		mov	eax, [ebp+var_DC]
		mov	ecx, [edx+24Ch]
		lea	eax, [ecx+eax*4]
		mov	byte ptr [eax+2], 0
		mov	byte ptr [eax+3], 0

loc_E5D21:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+162Cj
		mov	edx, [ebx+4]
		add	esi, 1
		mov	edi, [ebp+var_C4]
		cmp	esi, 4
		mov	eax, [edx+edi*4+8]
		jz	loc_E5EC1
		add	[ebp+var_DC], eax
		mov	ecx, [edx+24h]
		mov	eax, [edx+8]
		mov	edi, [ebx]
		jmp	short loc_E5CD6
; ---------------------------------------------------------------------------

loc_E5D4A:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+12D3j
					; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+132Bj
		mov	eax, [ebx+8]
		mov	edx, [ebp+var_128]
		movzx	ecx, word ptr [ebp+var_130]
		sub	al, byte ptr [ebp+var_130]
		mov	[edx], cx
		mov	[edx+2], al
		jmp	loc_E5AAE
; ---------------------------------------------------------------------------

loc_E5D6B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+FCEj
		mov	esi, [ebp+var_94]
		mov	edi, [ebp+var_B4]
		movsx	ecx, word ptr [esi+2]
		movsx	edx, word ptr [esi]
		imul	ecx, [edi+24h]
		add	edx, ecx
		mov	ecx, [ebx+0F8h]
		mov	[ebx+10h], dx
		mov	edx, [ebx+200h]
		movzx	edi, word ptr [edx+2Ch]
		mov	edx, [ebx+0D8h]
		mov	esi, edi
		add	si, [ebx+0F4h]
		add	si, [ebx+0Ch]
		mov	[edx+ecx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5DD0
		mov	[ebx+0F0h], edx

loc_E5DD0:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1538j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+0Eh]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5E08
		mov	[ebx+0F0h], edx

loc_E5E08:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+1570j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+10h]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5E40
		mov	[ebx+0F0h], edx

loc_E5E40:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+15A8j
		mov	edx, [ebx+200h]
		mov	ecx, edi
		mov	esi, [ebx+8]
		add	cx, [ebx+0Ch]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2], cx
		mov	ecx, edi
		mov	edx, [ebx+200h]
		mov	esi, [ebx+8]
		add	cx, [ebx+0Eh]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2+2], cx
		mov	edx, [ebx+200h]
		mov	ecx, [ebx+8]
		add	di, [ebx+10h]
		mov	edx, [edx+0F4h]
		mov	[edx+ecx*2+4], di
		movzx	edx, word ptr [ebx+0Eh]
		add	dword ptr [ebx+8], 3
		mov	[ebx+0Ch], dx
		jmp	loc_E57BA
; ---------------------------------------------------------------------------

loc_E5E9C:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+146Ej
		mov	edi, [ebp+var_138]
		mov	[esp+4], eax
		mov	edx, [ebp+var_DC]
		mov	[esp], ebx
		mov	[esp+0Ch], edi
		mov	[esp+8], edx
		call	_Z23TesselateDisplacement_RI22CEngineTesselateHelperEvPT_RK10CVertIndexii ; TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex	 const&,int,int)
		jmp	loc_E5D21
; ---------------------------------------------------------------------------

loc_E5EC1:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+14A4j
		mov	eax, [ebp+var_130]
		mov	esi, [ebp+var_100]
		cmp	eax, [ebx+8]
		jz	loc_E5B4B
		mov	edx, [ebp+var_128]
		mov	byte ptr [edx+3], 1
		mov	eax, [ebx+8]
		mov	[ebp+var_130], eax
		jmp	loc_E5B55
; ---------------------------------------------------------------------------

loc_E5EEE:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+13C0j
		mov	esi, [ebp+var_84]
		mov	edi, [ebp+var_DC]
		movsx	ecx, word ptr [esi+2]
		movsx	edx, word ptr [esi]
		imul	ecx, [edi+24h]
		add	edx, ecx
		mov	ecx, [ebx+0F8h]
		mov	[ebx+10h], dx
		mov	edx, [ebx+200h]
		movzx	edi, word ptr [edx+2Ch]
		mov	edx, [ebx+0D8h]
		mov	esi, edi
		add	si, [ebx+0F4h]
		add	si, [ebx+0Ch]
		mov	[edx+ecx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5F53
		mov	[ebx+0F0h], edx

loc_E5F53:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+16BBj
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+0Eh]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5F8B
		mov	[ebx+0F0h], edx

loc_E5F8B:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+16F3j
		mov	esi, edi
		mov	ecx, [ebx+0D8h]
		add	si, [ebx+0F4h]
		add	si, [ebx+10h]
		mov	[ecx+edx*2], si
		movzx	edx, byte ptr [ebx+0E4h]
		add	edx, [ebx+0F8h]
		cmp	edx, [ebx+0F0h]
		mov	[ebx+0F8h], edx
		jle	short loc_E5FC3
		mov	[ebx+0F0h], edx

loc_E5FC3:				; CODE XREF: TesselateDisplacement_R<CEngineTesselateHelper>(CEngineTesselateHelper *,CVertIndex  const&,int,int)+172Bj
		mov	edx, [ebx+200h]
		mov	ecx, edi
		mov	esi, [ebx+8]
		add	cx, [ebx+0Ch]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2], cx
		mov	ecx, edi
		mov	edx, [ebx+200h]
		mov	esi, [ebx+8]
		add	cx, [ebx+0Eh]
		mov	edx, [edx+0F4h]
		mov	[edx+esi*2+2], cx
		mov	edx, [ebx+200h]
		mov	ecx, [ebx+8]
		add	di, [ebx+10h]
		mov	edx, [edx+0F4h]
		mov	[edx+ecx*2+4], di
		movzx	edx, word ptr [ebx+0Eh]
		add	dword ptr [ebx+8], 3
		mov	[ebx+0Ch], dx
		jmp	loc_E5BAA
_Z23TesselateDisplacement_RI22CEngineTesselateHelperEvPT_RK10CVertIndexii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned char, CHunkMemory<unsigned char>>::~CUtlVector()
_ZN10CUtlVectorIh11CHunkMemoryIhEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_CoreDispNeighborOrientationMap+ADo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+4], 0
		mov	[eax+0Ch], edx
		pop	ebp
		retn
_ZN10CUtlVectorIh11CHunkMemoryIhEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispGroup	*, int>::Purge(void)
_ZN10CUtlMemoryIP10CDispGroupiE5PurgeEv	proc near
					; CODE XREF: CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::~CUtlVector()+14p
					; CUtlVector<CDispGroup	*,CUtlMemory<CDispGroup	*,int>>::~CUtlVector()+26j

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+8]
		test	edx, edx
		js	short loc_E606C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E6065
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_E6065:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_E606C:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP10CDispGroupiE5PurgeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDispGroup	*, CUtlMemory<CDispGroup *, int>>::~CUtlVector()
_ZN10CUtlVectorIP10CDispGroup10CUtlMemoryIS1_iEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_CoreDispNeighborOrientationMap+F1o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIP10CDispGroupiE5PurgeEv	; CUtlMemory<CDispGroup	*,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryIP10CDispGroupiE5PurgeEv	; CUtlMemory<CDispGroup	*,int>::Purge(void)
_ZN10CUtlVectorIP10CDispGroup10CUtlMemoryIS1_iEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CalcMaxNumVertsAndIndices(int, int *,	int *)
_Z25CalcMaxNumVertsAndIndicesiPiS_ proc	near
					; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+511p
					; DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+8Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		shl	eax, cl
		mov	ecx, [ebp+arg_4]
		lea	edx, [eax+1]
		imul	eax, eax
		imul	edx, edx
		mov	[ecx], edx
		lea	edx, [eax+eax*2]
		mov	eax, [ebp+arg_8]
		add	edx, edx
		mov	[eax], edx
		pop	ebp
		retn
_Z25CalcMaxNumVertsAndIndicesiPiS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)
_ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+110h]
		test	eax, eax
		jz	loc_E62D8
		mov	esi, [edi+20h]
		test	esi, esi
		jz	loc_E62D8
		mov	ebx, [edi+0F0h]
		mov	ecx, [ebp+arg_4]
		test	ebx, ebx
		mov	eax, [ecx+14h]
		mov	edx, [ecx+1Ch]
		jle	loc_E62D8
		cmp	edx, [ecx+18h]
		jge	loc_E62D8
		imul	edx, 0D8h
		mov	[ebp+var_44], 0
		movss	xmm3, ds:dword_1EBD30
		movss	xmm4, ds:dword_1EBD40
		add	eax, edx
		movzx	edx, byte ptr [edi+0E4h]
		jmp	short loc_E618B
; ---------------------------------------------------------------------------
		align 10h

loc_E6150:				; CODE XREF: CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+1CEj
		fstp	st
		fstp	st
		jmp	short loc_E6162
; ---------------------------------------------------------------------------
		align 10h

loc_E6160:				; CODE XREF: CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+1E0j
		fstp	st

loc_E6162:				; CODE XREF: CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+74j
					; CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+311j
		add	[ebp+var_44], 3
		mov	edx, [ebp+var_44]
		cmp	[edi+0F0h], edx
		jle	loc_E62D8
		mov	edx, [ebp+arg_4]
		mov	ecx, [edx+18h]
		cmp	[edx+1Ch], ecx
		jge	loc_E62D8
		movzx	edx, byte ptr [edi+0E4h]

loc_E618B:				; CODE XREF: CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+6Bj
		movzx	esi, dl
		mov	edx, [ebp+var_44]
		mov	ecx, [edi+0D8h]
		imul	edx, esi
		movzx	edx, word ptr [ecx+edx*2]
		mov	ecx, [ebp+var_44]
		sub	edx, [edi+2Ch]
		add	ecx, 1
		mov	ebx, ecx
		mov	ecx, [edi+0D8h]
		imul	ebx, esi
		imul	edx, [edi+34h]
		movzx	ebx, word ptr [ecx+ebx*2]
		mov	ecx, [ebp+var_44]
		add	edx, [edi+88h]
		sub	ebx, [edi+2Ch]
		add	ecx, 2
		imul	ecx, esi
		mov	esi, [edi+0D8h]
		fld	dword ptr [edx]
		imul	ebx, [edi+34h]
		movzx	ecx, word ptr [esi+ecx*2]
		add	ebx, [edi+88h]
		sub	ecx, [edi+2Ch]
		fld	dword ptr [ebx]
		fld	dword ptr [edx+4]
		fld	dword ptr [ebx+4]
		imul	ecx, [edi+34h]
		add	ecx, [edi+88h]
		fld	dword ptr [ecx]
		fxch	st(4)
		fcomi	st, st(3)
		fld	st
		fcmovnb	st, st(4)
		fxch	st(5)
		fcomi	st, st(5)
		fxch	st(5)
		fcmovb	st, st(5)
		fst	[ebp+var_4C]
		fstp	[ebp+var_30]
		fld	dword ptr [ecx+4]
		fxch	st(3)
		fcomi	st, st(2)
		fld	st
		fcmovnb	st, st(3)
		fxch	st(4)
		fcomi	st, st(4)
		fxch	st(4)
		fcmovb	st, st(4)
		fstp	[ebp+var_2C]
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx+8]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		fld	dword ptr [ebx+8]
		fcmovb	st, st(1)
		fstp	st(1)
		fld	dword ptr [ecx+8]
		fcomi	st, st(1)
		fcmovnb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_28]
		fxch	st(4)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fcomi	st, st(4)
		fcmovb	st, st(4)
		fstp	st(4)
		fxch	st(3)
		fstp	[ebp+var_24]
		fxch	st(2)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fcomi	st, st(1)
		fcmovb	st, st(1)
		fstp	st(1)
		fstp	[ebp+var_20]
		mov	esi, [ebp+arg_4]
		fld	dword ptr [ebx+8]
		mov	[ebp+var_40], edx
		fld	dword ptr [edx+8]
		fxch	st(1)
		fcomip	st, st(1)
		mov	esi, [esi+4]
		fld	dword ptr [ebx+8]
		fcmovb	st, st(1)
		fstp	st(1)
		fld	dword ptr [ecx+8]
		fxch	st(1)
		mov	[ebp+var_3C], esi
		fcomi	st, st(1)
		mov	esi, [ebp+arg_4]
		fcmovb	st, st(1)
		fstp	st(1)
		mov	edx, [ebp+var_3C]
		fstp	[ebp+var_1C]
		fld	dword ptr [esi+0Ch]
		xor	esi, esi
		fld	[ebp+var_4C]

loc_E62A1:				; CODE XREF: CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+1F2j
		fld	dword ptr [edx+esi]
		fld	st
		fadd	st, st(3)
		fxch	st(2)
		fcomip	st, st(2)
		fstp	st(1)
		ja	loc_E6150
		fsub	st, st(1)
		fld	[ebp+esi+var_24]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_E6160
		add	esi, 4
		cmp	esi, 0Ch
		jz	short loc_E62E0
		fld	[ebp+esi+var_30]
		jmp	short loc_E62A1
; ---------------------------------------------------------------------------
		align 8

loc_E62D8:				; CODE XREF: CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+14j
					; CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+1Fj ...
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_E62E0:				; CODE XREF: CDispInfo::GetIntersectingSurfaces(GetIntersectingSurfaces_Struct *)+1ECj
		fstp	st
		mov	dword ptr [eax+0C0h], 3
		mov	edx, [ebp+var_40]
		mov	esi, [edx]
		mov	[eax], esi
		mov	esi, [edx+4]
		mov	[eax+4], esi
		mov	esi, [edx+8]
		mov	[eax+8], esi
		mov	esi, [ebx]
		mov	[eax+0Ch], esi
		mov	esi, [ebx+4]
		mov	[eax+10h], esi
		mov	esi, [ebx+8]
		mov	[eax+14h], esi
		mov	esi, [ecx]
		mov	[eax+18h], esi
		mov	esi, [ecx+4]
		mov	[eax+1Ch], esi
		mov	esi, [ecx+8]
		mov	[eax+20h], esi
		fld	dword ptr [edx]
		fld	dword ptr [ebx]
		fsub	st, st(1)
		fld	dword ptr [edx+4]
		fld	dword ptr [ebx+4]
		fsub	st, st(1)
		fld	dword ptr [edx+8]
		fld	dword ptr [ebx+8]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	dword ptr [ecx]
		fxch	st(3)
		fsubr	dword ptr [ecx+4]
		fxch	st(1)
		fsubr	dword ptr [ecx+8]
		fld	st(1)
		fmul	st, st(6)
		fld	st(1)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(1)
		fmul	st, st(5)
		fxch	st(6)
		fmul	st, st(4)
		fsubp	st(6), st
		fxch	st(3)
		fmulp	st(2), st
		fmulp	st(3), st
		fsubrp	st(2), st
		fld	st
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_48]
		mov	esi, [ebp+var_48]
		movd	xmm2, esi
		movaps	xmm0, xmm2
		rsqrtss	xmm0, xmm2
		movaps	xmm1, xmm0
		mulss	xmm1, xmm0
		mulss	xmm1, xmm2
		movaps	xmm2, xmm3
		subss	xmm2, xmm1
		movaps	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_48], xmm0
		fld	[ebp+var_48]
		fmul	st(1), st
		fxch	st(1)
		fst	dword ptr [eax+0C4h]
		fld	st(1)
		fmulp	st(4), st
		fxch	st(3)
		fst	dword ptr [eax+0C8h]
		fxch	st(2)
		fmulp	st(1), st
		fst	dword ptr [eax+0CCh]
		fxch	st(1)
		fmul	dword ptr [edx+4]
		fxch	st(2)
		fmul	dword ptr [edx]
		faddp	st(2), st
		fmul	dword ptr [edx+8]
		mov	edx, [ebp+arg_4]
		faddp	st(1), st
		fstp	dword ptr [eax+0D0h]
		add	eax, 0D8h
		add	dword ptr [edx+1Ch], 1
		jmp	loc_E6162
_ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::RenderWireframeInLightmapPage(int)
_ZN9CDispInfo29RenderWireframeInLightmapPageEi proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo29RenderWireframeInLightmapPageEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetBoundingBox(Vector &, Vector &)
_ZN9CDispInfo14GetBoundingBoxER6VectorS1_ proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	ebx, [eax+8]
		mov	[ecx], ebx
		mov	ebx, [eax+0Ch]
		mov	[ecx+4], ebx
		mov	ebx, [eax+10h]
		mov	[ecx+8], ebx
		mov	ecx, [eax+14h]
		mov	[edx], ecx
		mov	ecx, [eax+18h]
		mov	[edx+4], ecx
		mov	eax, [eax+1Ch]
		mov	[edx+8], eax
		pop	ebx
		pop	ebp
		retn
_ZN9CDispInfo14GetBoundingBoxER6VectorS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::SetParent(msurface2_t *)
_ZN9CDispInfo9SetParentEP11msurface2_t proc near ; DATA	XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[eax+16Ch], edx
		pop	ebp
		retn
_ZN9CDispInfo9SetParentEP11msurface2_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetParent(void)
_ZN9CDispInfo9GetParentEv proc near	; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+16Ch]
		retn
_ZN9CDispInfo9GetParentEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ComputeDynamicLightMask(dlight_t *)
_ZN9CDispInfo23ComputeDynamicLightMaskEP8dlight_t proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo23ComputeDynamicLightMaskEP8dlight_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::AddDynamicLights(dlight_t *, unsigned int)
_ZN9CDispInfo16AddDynamicLightsEP8dlight_tj proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo16AddDynamicLightsEP8dlight_tj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GenerateDecalFragments_R(CVertIndex  const&, int, unsigned	short, CDispDecalBase *, int)
_ZN9CDispInfo24GenerateDecalFragments_RERK10CVertIndexitP14CDispDecalBasei proc	near
					; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+1B6p
					; CDispInfo::GenerateDecalFragments(CVertIndex	const&,int,ushort,CDispDecalBase *)+32p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= word ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	edx, [ebp+arg_4]
		movzx	eax, [ebp+arg_C]
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	esi, [ebp+arg_10]
		mov	word ptr [ebp+var_28], ax
		movzx	eax, word ptr [edx+2]
		mov	edi, [ebx+24Ch]
		movzx	edx, word ptr [edx]
		mov	word ptr [ebp+var_2C], ax
		mov	eax, [ebx+1DCh]
		mov	[ebp+var_20], edi
		mov	word ptr [ebp+var_30], dx
		mov	edx, 1
		shl	edx, cl
		mov	edi, [eax+24h]
		mov	[ebp+var_24], edi
		mov	edi, ecx
		shr	edi, 5
		test	[esi+edi*4], edx
		jz	loc_E659B
		mov	edx, [ebp+var_20]
		lea	edi, [edx+ecx*4]
		mov	edx, [ebp+arg_14]
		add	edx, 1
		cmp	edx, [ebx+184h]
		mov	[ebp+var_20], edx
		jl	loc_E65A8

loc_E6511:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+10Cj
					; CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+1D3j
		movzx	eax, byte ptr [esi+0Ch]
		movzx	edx, word ptr [edi]
		and	eax, 2
		cmp	byte ptr [edi+2], 0
		mov	[ebp+var_1C], eax
		jz	short loc_E659B
		movzx	ecx, word ptr [ebp+var_28]
		xor	eax, eax
		movzx	edx, dx
		mov	[ebp+var_24], esi
		mov	esi, ebx
		mov	ebx, eax
		mov	[ebp+var_28], edx
		mov	[ebp+var_20], ecx
		jmp	short loc_E656A
; ---------------------------------------------------------------------------
		align 10h

loc_E6540:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+CFj
		mov	eax, [ebp+var_24]
		mov	[esp], esi
		mov	edx, [ebp+var_20]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_28]
		mov	[esp+8], edx
		add	eax, ebx
		add	ebx, 3
		mov	[esp+4], eax
		call	_ZN9CDispInfo15TestAddDecalTriEitP16CDispShadowDecal ; CDispInfo::TestAddDecalTri(int,ushort,CDispShadowDecal *)
		movzx	eax, byte ptr [edi+2]
		cmp	eax, ebx
		jle	short loc_E659B

loc_E656A:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+9Aj
					; CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+F9j
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_E6540
		mov	eax, [ebp+var_20]
		mov	[esp], esi
		mov	ecx, [ebp+var_24]
		mov	[esp+8], eax
		mov	eax, [ebp+var_28]
		mov	[esp+0Ch], ecx
		add	eax, ebx
		add	ebx, 3
		mov	[esp+4], eax
		call	_ZN9CDispInfo15TestAddDecalTriEitP10CDispDecal ; CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)
		movzx	eax, byte ptr [edi+2]
		cmp	eax, ebx
		jg	short loc_E656A

loc_E659B:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+50j
					; CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+82j ...
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E65A8:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+6Bj
		test	byte ptr [edi+3], 1
		jz	loc_E6511
		add	ecx, 1
		movsx	edx, word ptr [ebp+var_30]
		mov	[ebp+var_38], edi
		mov	[ebp+var_34], ecx
		movsx	ecx, word ptr [ebp+var_2C]
		mov	edi, [ebp+var_24]
		imul	ecx, [ebp+var_24]
		mov	[ebp+var_24], esi
		add	edx, ecx
		mov	ecx, [ebp+arg_14]
		shl	edx, 4
		mov	[ebp+var_2C], edx
		xor	edx, edx
		mov	esi, edx
		add	ecx, 0Ch
		mov	[ebp+var_1C], ecx
		movzx	ecx, word ptr [ebp+var_28]
		mov	[ebp+var_30], ecx

loc_E65E9:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+186j
		mov	edx, [ebp+var_2C]
		add	edx, [eax+8]
		lea	edx, [edx+esi*4]
		movsx	ecx, word ptr [edx+2]
		imul	ecx, edi
		movsx	edi, word ptr [edx]
		add	ecx, edi
		mov	edi, 1
		shl	edi, cl
		shr	ecx, 5
		test	[ebx+ecx*4+118h], edi
		jnz	short loc_E6630
		mov	edi, [ebp+var_1C]
		add	esi, 1
		cmp	esi, 4
		mov	edx, [eax+edi*4+8]
		jz	short loc_E666D

loc_E6620:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+1CBj
		add	[ebp+var_34], edx
		mov	edi, [eax+24h]
		jmp	short loc_E65E9
; ---------------------------------------------------------------------------
		align 10h

loc_E6630:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+16Fj
		mov	edi, [ebp+var_20]
		mov	[esp+4], edx
		add	esi, 1
		mov	eax, [ebp+var_24]
		mov	[esp], ebx
		mov	[esp+14h], edi
		mov	edi, [ebp+var_30]
		mov	[esp+10h], eax
		mov	eax, [ebp+var_34]
		mov	[esp+0Ch], edi
		mov	[esp+8], eax
		call	_ZN9CDispInfo24GenerateDecalFragments_RERK10CVertIndexitP14CDispDecalBasei ; CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)
		mov	eax, [ebx+1DCh]
		cmp	esi, 4
		mov	edi, [ebp+var_1C]
		mov	edx, [eax+edi*4+8]
		jnz	short loc_E6620

loc_E666D:				; CODE XREF: CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)+17Ej
		mov	edi, [ebp+var_38]
		mov	esi, [ebp+var_24]
		jmp	loc_E6511
_ZN9CDispInfo24GenerateDecalFragments_RERK10CVertIndexitP14CDispDecalBasei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GenerateDecalFragments(CVertIndex	const&,	int, unsigned short, CDispDecalBase *)
_ZN9CDispInfo22GenerateDecalFragmentsERK10CVertIndexitP14CDispDecalBase	proc near
					; CODE XREF: CDispInfo::ComputeShadowFragments(ushort,int &,int	&)+60p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= word ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		movzx	eax, [ebp+arg_C]
		mov	dword ptr [esp+14h], 0
		mov	ebx, [ebp+arg_10]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+10h], ebx
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN9CDispInfo24GenerateDecalFragments_RERK10CVertIndexitP14CDispDecalBasei ; CDispInfo::GenerateDecalFragments_R(CVertIndex  const&,int,ushort,CDispDecalBase *,int)
		or	byte ptr [ebx+0Ch], 8
		add	esp, 24h
		pop	ebx
		pop	ebp
		retn
_ZN9CDispInfo22GenerateDecalFragmentsERK10CVertIndexitP14CDispDecalBase	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ComputeShadowFragments(unsigned short, int	&, int &)
_ZN9CDispInfo22ComputeShadowFragmentsEtRiS0_ proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		imul	ebx, ecx, 1Ch
		add	ebx, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		movzx	edx, byte ptr [ebx+0Ch]
		test	dl, 8
		jnz	short loc_E6735
		xor	eax, eax
		and	edx, 4
		jz	short loc_E6710
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E6710:				; CODE XREF: CDispInfo::ComputeShadowFragments(ushort,int &,int	&)+30j
		mov	[esp+10h], ebx
		mov	[esp+0Ch], ecx
		mov	dword ptr [esp+8], 0
		mov	eax, [edi+1DCh]
		mov	[esp], edi
		add	eax, 20h
		mov	[esp+4], eax
		call	_ZN9CDispInfo22GenerateDecalFragmentsERK10CVertIndexitP14CDispDecalBase	; CDispInfo::GenerateDecalFragments(CVertIndex	const&,int,ushort,CDispDecalBase *)

loc_E6735:				; CODE XREF: CDispInfo::ComputeShadowFragments(ushort,int &,int	&)+29j
		movzx	eax, word ptr [ebx+0Eh]
		mov	edx, [ebp+arg_C]
		mov	[esi], eax
		movzx	eax, word ptr [ebx+10h]
		lea	eax, [eax+eax*2]
		mov	[edx], eax
		mov	eax, 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN9CDispInfo22ComputeShadowFragmentsEtRiS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::GetTag(void)
_ZN9CDispInfo6GetTagEv proc near	; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	edx, [eax+268h]
		movzx	ecx, word ptr [edx]
		cmp	[eax+264h], cx
		setz	al
		retn
_ZN9CDispInfo6GetTagEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::SetTag(void)
_ZN9CDispInfo6SetTagEv proc near	; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+268h]
		movzx	edx, word ptr [edx]
		mov	[eax+264h], dx
		pop	ebp
		retn
_ZN9CDispInfo6SetTagEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_BuildPrimLists(int, msurface2_t **, int, bool, CDispInfo **,	int &)
_Z23DispInfo_BuildPrimListsiPP11msurface2_tibPP9CDispInfoRi proc near

var_39		= byte ptr -39h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_20], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_1C], 0
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_30], 0
		movzx	ebx, [ebp+arg_C]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		test	eax, eax
		jz	short loc_E684E
		lea	edx, [ebp+var_20]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aDispinfo_build ; "DispInfo_BuildPrimLists"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ23DispInfo_BuildPrimListsiPP11msurface2_tibPP9CDispInfoRiE6tm_fmt ; DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int	&)::tm_fmt
		mov	dword ptr [esp+1Ch], 21Ch
		mov	dword ptr [esp+18h], offset aHomeBuildbot_6 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_20]
		mov	[ebp+var_34], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_38], eax
		mov	[ebp+var_30], edx

loc_E684E:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+3Aj
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	[ebp+var_39]
		jz	short loc_E686F
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_E6976

loc_E686F:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+BAj
					; DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo	**,int &)+21Fj
		mov	eax, [ebp+arg_14]
		mov	dword ptr [eax], 0
		xor	eax, eax
		test	bl, bl
		jz	loc_E6940

loc_E6882:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+1A5j
		mov	edx, [ebp+arg_8]
		test	edx, edx
		jle	short loc_E68DA
		movzx	eax, al
		xor	ebx, ebx
		mov	[ebp+var_2C], eax
		lea	esi, [esi+0]

loc_E6898:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+138j
		mov	eax, [edi+ebx*4]
		mov	edx, [ebp+var_2C]
		mov	esi, [eax+18h]
		mov	[esp+8], edx
		mov	eax, [esi+28h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN9CDispInfo6RenderEP10CGroupMeshb ; CDispInfo::Render(CGroupMesh *,bool)
		test	al, al
		jz	short loc_E68D2
		mov	edx, [ebp+arg_14]
		mov	eax, [edx]
		cmp	eax, 7FFh
		jg	short loc_E68D2
		mov	edx, [ebp+arg_10]
		mov	[edx+eax*4], esi
		mov	edx, [ebp+arg_14]
		add	eax, 1
		mov	[edx], eax

loc_E68D2:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+116j
					; DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo	**,int &)+122j
		add	ebx, 1
		cmp	ebx, [ebp+arg_8]
		jnz	short loc_E6898

loc_E68DA:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+E7j
		cmp	[ebp+var_39], 0
		jz	short loc_E6901
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_E68F2
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_E6901

loc_E68F2:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+147j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_E694A

loc_E6901:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+13Ej
					; DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo	**,int &)+150j	...
		mov	eax, [ebp+var_30]
		test	eax, eax
		jz	short loc_E6937
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_38]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_30]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_E6937:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+166j
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E6940:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+DCj
		call	_Z24DispInfoRenderDebugModesv ;	DispInfoRenderDebugModes(void)
		jmp	loc_E6882
; ---------------------------------------------------------------------------

loc_E694A:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+15Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_E69C4
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_E6968:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+229j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_E6901
; ---------------------------------------------------------------------------

loc_E6976:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+C9j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aDispinfo_build	; "DispInfo_BuildPrimLists"
		jz	short loc_E69B0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aDispinfo_build ; "DispInfo_BuildPrimLists"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_E69B0:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+1E1j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_E686F
; ---------------------------------------------------------------------------

loc_E69C4:				; CODE XREF: DispInfo_BuildPrimLists(int,msurface2_t **,int,bool,CDispInfo **,int &)+1B9j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_E6968
_Z23DispInfo_BuildPrimListsiPP11msurface2_tibPP9CDispInfoRi endp

; ---------------------------------------------------------------------------
		cmp	byte ptr [ebp-39h], 0
		mov	esi, eax
		jz	short loc_E69F4
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_E69E5
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_E69F4

loc_E69E5:				; CODE XREF: .text:000E69DAj
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	short loc_E6A36

loc_E69F4:				; CODE XREF: .text:000E69D1j
					; .text:000E69E3j ...
		mov	eax, [ebp-30h]
		test	eax, eax
		jz	short loc_E6A2A
		mov	edx, [ebp-34h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-38h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-30h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_E6A2A:				; CODE XREF: .text:000E69F9j
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		jmp	short loc_E69F4
; ---------------------------------------------------------------------------

loc_E6A36:				; CODE XREF: .text:000E69F2j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jz	short loc_E6A54
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_E6A54:				; CODE XREF: .text:000E6A4Aj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_E69F4
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_DrawPrimLists(ERenderDepthMode)
_Z22DispInfo_DrawPrimLists16ERenderDepthMode proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z22DispInfo_DrawPrimLists16ERenderDepthMode endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DecalDispSurfacesInit(void)
_Z21DecalDispSurfacesInitv proc	near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z21DecalDispSurfacesInitv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_BatchDecals(CDispInfo **, int)
_Z20DispInfo_BatchDecalsPP9CDispInfoi proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z20DispInfo_BatchDecalsPP9CDispInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_DrawDecalsGroup(int,	int)
_Z24DispInfo_DrawDecalsGroupii proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z24DispInfo_DrawDecalsGroupii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_DrawDecals(CDispInfo	**, int)
_Z19DispInfo_DrawDecalsPP9CDispInfoi proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z19DispInfo_DrawDecalsPP9CDispInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_DrawDecals_Old(CDispInfo **,	int)
_Z23DispInfo_DrawDecals_OldPP9CDispInfoi proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z23DispInfo_DrawDecals_OldPP9CDispInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_AddShadowsToMeshBuilder(CMeshBuilder	&, unsigned short, int)
_Z32DispInfo_AddShadowsToMeshBuilderR12CMeshBuilderti proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z32DispInfo_AddShadowsToMeshBuilderR12CMeshBuilderti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_InitMaterialSystem(void)
_Z27DispInfo_InitMaterialSystemv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z27DispInfo_InitMaterialSystemv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_ShutdownMaterialSystem(void)
_Z31DispInfo_ShutdownMaterialSystemv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z31DispInfo_ShutdownMaterialSystemv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_CreateArray(int)
_Z20DispInfo_CreateArrayi proc near	; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+608p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	dword ptr [esp], 0Ch
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	word ptr [eax],	1
		mov	eax, [ebp+arg_0]
		test	eax, eax
		mov	[ebx+8], eax
		jnz	short loc_E6B40
		mov	dword ptr [ebx+4], 0

loc_E6B2D:				; CODE XREF: DispInfo_CreateArray(int)+9Bj
		add	esp, 3Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E6B40:				; CODE XREF: DispInfo_CreateArray(int)+24j
		imul	eax, 26Ch
		add	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	edx, [ebp+arg_0]
		mov	esi, eax
		mov	[ebp+var_24], eax
		add	esi, 4
		mov	[eax], edx
		sub	edx, 1
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_20], edx
		mov	[ebp+var_2C], edx
		jz	short loc_E6B93
		mov	edi, esi
		mov	[ebp+var_28], esi
		mov	esi, ebx
		mov	ebx, edx
		lea	esi, [esi+0]

loc_E6B78:				; CODE XREF: DispInfo_CreateArray(int)+8Cj
		mov	[esp], edi
		call	_ZN9CDispInfoC2Ev ; CDispInfo::CDispInfo(void)
		sub	ebx, 1
		add	edi, 26Ch
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_E6B78
		mov	ebx, esi
		mov	esi, [ebp+var_28]

loc_E6B93:				; CODE XREF: DispInfo_CreateArray(int)+6Aj
		mov	edi, [ebp+arg_0]
		mov	[ebx+4], esi
		test	edi, edi
		jle	short loc_E6B2D
		xor	edx, edx
		xor	eax, eax
		mov	ecx, [ebp+arg_0]
		jmp	short loc_E6BB3
; ---------------------------------------------------------------------------
		align 10h

loc_E6BB0:				; CODE XREF: DispInfo_CreateArray(int)+C5j
		mov	esi, [ebx+4]

loc_E6BB3:				; CODE XREF: DispInfo_CreateArray(int)+A4j
		add	eax, 1
		mov	[esi+edx+268h],	ebx
		add	edx, 26Ch
		cmp	eax, ecx
		jnz	short loc_E6BB0
		add	esp, 3Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z20DispInfo_CreateArrayi endp

; ---------------------------------------------------------------------------
		mov	esi, [ebp-28h]
		mov	[ebp-20h], ebx
		mov	[ebp-1Ch], eax
		test	esi, esi
		jz	short loc_E6C17
		mov	edi, [ebp-2Ch]
		sub	edi, ebx
		imul	edi, 26Ch
		add	edi, esi
		cmp	esi, edi
		jz	short loc_E6C17
		lea	eax, [edi-26Ch]
		mov	ebx, edi

loc_E6BF7:				; CODE XREF: .text:000E6C15j
		sub	ebx, 26Ch
		mov	edx, ebx
		sub	edx, edi
		mov	edx, [eax+edx+26Ch]
		mov	[ebp-30h], eax
		mov	[esp], ebx
		call	dword ptr [edx]
		cmp	esi, ebx
		mov	eax, [ebp-30h]
		jnz	short loc_E6BF7

loc_E6C17:				; CODE XREF: .text:000E6BDCj
					; .text:000E6BEDj
		mov	eax, [ebp-24h]
		mov	[esp], eax
		call	_ZdaPv		; operator delete[](void *)
		mov	eax, [ebp-1Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_DeleteArray(void *)
_Z20DispInfo_DeleteArrayPv proc	near	; CODE XREF: CModelLoader::Map_UnloadModel(model_t *)+52p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_E6CA0
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_E6C8B
		imul	edi, [eax-4], 26Ch
		add	edi, eax
		cmp	eax, edi
		jz	short loc_E6C80
		lea	eax, [edi-26Ch]
		mov	ebx, edi
		mov	[ebp+var_1C], eax
		nop

loc_E6C60:				; CODE XREF: DispInfo_DeleteArray(void *)+4Ej
		mov	edx, [ebp+var_1C]
		sub	ebx, 26Ch
		mov	eax, ebx
		sub	eax, edi
		mov	eax, [edx+eax+26Ch]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	eax, [esi+4]
		cmp	eax, ebx
		jnz	short loc_E6C60

loc_E6C80:				; CODE XREF: DispInfo_DeleteArray(void *)+22j
		sub	eax, 4
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_E6C8B:				; CODE XREF: DispInfo_DeleteArray(void *)+15j
		mov	[ebp+arg_0], esi
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
; ---------------------------------------------------------------------------
		align 10h

loc_E6CA0:				; CODE XREF: DispInfo_DeleteArray(void *)+Ej
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z20DispInfo_DeleteArrayPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_IndexArray(void *, int)
_Z19DispInfo_IndexArrayPvi proc	near	; CODE XREF: DispInfo_LinkToParentFaces(model_t	*,ddispinfo_t  const*,int)+33p
					; SetupMeshReaders(model_t *,int)+3Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jz	short loc_E6CD0
		imul	eax, [ebp+arg_4], 26Ch
		pop	ebp
		add	eax, [edx+4]
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E6CD0:				; CODE XREF: DispInfo_IndexArray(void *,int)+8j
		xor	eax, eax
		pop	ebp
		retn
_Z19DispInfo_IndexArrayPvi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_ComputeIndex(void *,	IDispInfo *)
_Z21DispInfo_ComputeIndexPvP9IDispInfo proc near
					; CODE XREF: CDispInfo::TestRay(Ray_t  const&,float,float,float	&,Vector2D *,Vector2D *)+23p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	edx, edx
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		test	ecx, ecx
		jz	short loc_E6CFE
		mov	edx, [ebp+arg_4]
		sub	edx, [ecx+4]
		mov	ecx, 0D3680D37h
		mov	eax, edx
		mul	ecx
		shr	edx, 9

loc_E6CFE:				; CODE XREF: DispInfo_ComputeIndex(void	*,IDispInfo *)+Aj
		mov	eax, edx
		pop	ebp
		retn
_Z21DispInfo_ComputeIndexPvP9IDispInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_ClearAllTags(void *)
_Z21DispInfo_ClearAllTagsPv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_E6D2A
		movzx	edx, word ptr [eax]
		add	edx, 1
		cmp	dx, 0FFFFh
		mov	[eax], dx
		jz	short loc_E6D30

loc_E6D2A:				; CODE XREF: DispInfo_ClearAllTags(void	*)+9j
					; DispInfo_ClearAllTags(void *)+2Aj
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E6D30:				; CODE XREF: DispInfo_ClearAllTags(void	*)+18j
		mov	edx, [eax+8]
		mov	word ptr [eax],	1
		test	edx, edx
		jle	short loc_E6D2A
		xor	ecx, ecx
		xor	edx, edx

loc_E6D40:				; CODE XREF: DispInfo_ClearAllTags(void	*)+49j
		mov	ebx, [eax+4]
		add	edx, 1
		mov	word ptr [ebx+ecx+264h], 0
		add	ecx, 26Ch
		cmp	[eax+8], edx
		jg	short loc_E6D40
		pop	ebx
		pop	ebp
		retn
_Z21DispInfo_ClearAllTagsPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_RenderList(int, msurface2_t **, int,	bool, unsigned long, ERenderDepthMode)
_Z19DispInfo_RenderListiPP11msurface2_tibm16ERenderDepthMode proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z19DispInfo_RenderListiPP11msurface2_tibm16ERenderDepthMode endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ClearDecalFragments(unsigned short)
_ZN9CDispInfo19ClearDecalFragmentsEt proc near
					; CODE XREF: CDispInfo::ClearAllDecalFragments(void)+2Ap
					; CDispInfo::NotifyRemoveDecal(ushort)+20p

var_1C		= dword	ptr -1Ch
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		movzx	eax, [ebp+arg_4]
		lea	eax, [eax+eax*4]
		shl	eax, 4
		mov	[ebp+var_1C], eax
		mov	eax, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		add	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		movzx	esi, word ptr [eax+48h]
		cmp	si, 0FFFFh
		jnz	short loc_E6DA2
		jmp	short loc_E6DF7
; ---------------------------------------------------------------------------
		align 10h

loc_E6DA0:				; CODE XREF: CDispInfo::ClearDecalFragments(ushort)+85j
		mov	esi, edi

loc_E6DA2:				; CODE XREF: CDispInfo::ClearDecalFragments(ushort)+29j
		movzx	eax, si
		mov	edx, dword ptr ds:_ZL20s_DispDecalFragments ; s_DispDecalFragments
		imul	ebx, eax, 0Eh
		movzx	edi, word ptr [edx+ebx+0Ch]
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	_ZL20s_DispDecalFragments ; s_DispDecalFragments
		call	_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)
		add	ebx, dword ptr ds:_ZL20s_DispDecalFragments ; s_DispDecalFragments
		mov	eax, [ebx+5]
		test	eax, eax
		jz	short loc_E6DD8
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_E6DD8:				; CODE XREF: CDispInfo::ClearDecalFragments(ushort)+5Ej
		mov	dword ptr [ebx+5], 0
		cmp	di, 0FFFFh
		movzx	eax, word ptr ds:_ZL20s_DispDecalFragments+10h
		mov	[ebx+0Ch], ax
		mov	word ptr ds:_ZL20s_DispDecalFragments+10h, si
		jnz	short loc_E6DA0

loc_E6DF7:				; CODE XREF: CDispInfo::ClearDecalFragments(ushort)+2Bj
		mov	eax, [ebp+var_1C]
		and	byte ptr [eax+0Ch], 0F7h
		mov	word ptr [eax+48h], 0FFFFh
		mov	word ptr [eax+10h], 0
		mov	word ptr [eax+0Eh], 0
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDispInfo19ClearDecalFragmentsEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ClearAllDecalFragments(void)
_ZN9CDispInfo22ClearAllDecalFragmentsEv	proc near
					; CODE XREF: CDispInfo::TesselateDisplacement(void)+18p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		movzx	ebx, word ptr [esi+25Eh]
		cmp	bx, 0FFFFh
		jz	short loc_E6E65
		nop
		lea	esi, [esi+0]

loc_E6E40:				; CODE XREF: CDispInfo::ClearAllDecalFragments(void)+43j
		movzx	ebx, bx
		mov	[esp], esi
		mov	[esp+4], ebx
		call	_ZN9CDispInfo19ClearDecalFragmentsEt ; CDispInfo::ClearDecalFragments(ushort)
		lea	eax, [ebx+ebx*4]
		shl	eax, 4
		add	eax, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		movzx	ebx, word ptr [eax+4Eh]
		cmp	bx, 0FFFFh
		jnz	short loc_E6E40

loc_E6E65:				; CODE XREF: CDispInfo::ClearAllDecalFragments(void)+16j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN9CDispInfo22ClearAllDecalFragmentsEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::NotifyRemoveDecal(unsigned	short)
_ZN9CDispInfo17NotifyRemoveDecalEt proc	near ; DATA XREF: .rodata:`vtable for'CDispInfoo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		movzx	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		movzx	ebx, si
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN9CDispInfo19ClearDecalFragmentsEt ; CDispInfo::ClearDecalFragments(ushort)
		cmp	[edi+25Eh], si
		jz	short loc_E6EE0

loc_E6E9E:				; CODE XREF: CDispInfo::NotifyRemoveDecal(ushort)+87j
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	_ZL12s_DispDecals ; s_DispDecals
		call	_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)
		lea	eax, [ebx+ebx*4]
		movzx	edx, word ptr ds:_ZL12s_DispDecals+10h
		shl	eax, 4
		mov	word ptr ds:_ZL12s_DispDecals+10h, si
		add	eax, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		mov	[eax+4Eh], dx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E6EE0:				; CODE XREF: CDispInfo::NotifyRemoveDecal(ushort)+2Cj
		lea	eax, [ebx+ebx*4]
		shl	eax, 4
		add	eax, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		movzx	eax, word ptr [eax+4Eh]
		mov	[edi+25Eh], ax
		jmp	short loc_E6E9E
_ZN9CDispInfo17NotifyRemoveDecalEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ClearShadowDecalFragments(unsigned	short)
_ZN9CDispInfo25ClearShadowDecalFragmentsEt proc	near
					; CODE XREF: CDispInfo::ClearAllShadowDecalFragments(void)+2Ap
					; CDispInfo::RemoveShadowDecal(ushort)+20p

var_1C		= dword	ptr -1Ch
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		movzx	eax, [ebp+arg_4]
		imul	eax, 1Ch
		mov	[ebp+var_1C], eax
		mov	eax, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		add	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		movzx	esi, word ptr [eax+14h]
		cmp	si, 0FFFFh
		jnz	short loc_E6F32
		jmp	short loc_E6F8A
; ---------------------------------------------------------------------------
		align 10h

loc_E6F30:				; CODE XREF: CDispInfo::ClearShadowDecalFragments(ushort)+88j
		mov	esi, edi

loc_E6F32:				; CODE XREF: CDispInfo::ClearShadowDecalFragments(ushort)+26j
		mov	edx, dword ptr ds:_ZL21s_DispShadowFragments ; s_DispShadowFragments
		movzx	eax, si
		lea	ebx, [eax+eax*2]
		shl	ebx, 2
		movzx	edi, word ptr [edx+ebx+0Ah]
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	_ZL21s_DispShadowFragments ; s_DispShadowFragments
		call	_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)
		add	ebx, dword ptr ds:_ZL21s_DispShadowFragments ; s_DispShadowFragments
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_E6F6B
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_E6F6B:				; CODE XREF: CDispInfo::ClearShadowDecalFragments(ushort)+61j
		mov	dword ptr [ebx+4], 0
		cmp	di, 0FFFFh
		movzx	eax, word ptr ds:_ZL21s_DispShadowFragments+10h
		mov	[ebx+0Ah], ax
		mov	word ptr ds:_ZL21s_DispShadowFragments+10h, si
		jnz	short loc_E6F30

loc_E6F8A:				; CODE XREF: CDispInfo::ClearShadowDecalFragments(ushort)+28j
		mov	eax, [ebp+var_1C]
		and	byte ptr [eax+0Ch], 0F7h
		mov	word ptr [eax+14h], 0FFFFh
		mov	word ptr [eax+10h], 0
		mov	word ptr [eax+0Eh], 0
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDispInfo25ClearShadowDecalFragmentsEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::ClearAllShadowDecalFragments(void)
_ZN9CDispInfo28ClearAllShadowDecalFragmentsEv proc near
					; CODE XREF: CDispInfo::TesselateDisplacement(void)+20p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		movzx	eax, word ptr [esi+260h]
		cmp	ax, 0FFFFh
		jz	short loc_E6FF2
		nop
		lea	esi, [esi+0]

loc_E6FD0:				; CODE XREF: CDispInfo::ClearAllShadowDecalFragments(void)+40j
		movzx	ebx, ax
		mov	[esp], esi
		mov	[esp+4], ebx
		call	_ZN9CDispInfo25ClearShadowDecalFragmentsEt ; CDispInfo::ClearShadowDecalFragments(ushort)
		imul	eax, ebx, 1Ch
		add	eax, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		movzx	eax, word ptr [eax+1Ah]
		cmp	ax, 0FFFFh
		jnz	short loc_E6FD0

loc_E6FF2:				; CODE XREF: CDispInfo::ClearAllShadowDecalFragments(void)+16j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN9CDispInfo28ClearAllShadowDecalFragmentsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::RemoveShadowDecal(unsigned	short)
_ZN9CDispInfo17RemoveShadowDecalEt proc	near ; DATA XREF: .rodata:`vtable for'CDispInfoo

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		movzx	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		movzx	ebx, si
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN9CDispInfo25ClearShadowDecalFragmentsEt ; CDispInfo::ClearShadowDecalFragments(ushort)
		cmp	[edi+260h], si
		jz	short loc_E7070

loc_E702E:				; CODE XREF: CDispInfo::RemoveShadowDecal(ushort)+84j
		mov	[esp+4], ebx
		imul	ebx, 1Ch
		mov	dword ptr [esp], offset	_ZL18s_DispShadowDecals	; s_DispShadowDecals
		call	_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)
		movzx	eax, word ptr ds:_ZL18s_DispShadowDecals+10h
		mov	word ptr ds:_ZL18s_DispShadowDecals+10h, si
		add	ebx, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		mov	[ebx+1Ah], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E7070:				; CODE XREF: CDispInfo::RemoveShadowDecal(ushort)+2Cj
		imul	eax, ebx, 1Ch
		add	eax, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		movzx	eax, word ptr [eax+1Ah]
		mov	[edi+260h], ax
		jmp	short loc_E702E
_ZN9CDispInfo17RemoveShadowDecalEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::AllocateDispDecalFragment(unsigned	short, int)
_ZN9CDispInfo25AllocateDispDecalFragmentEti proc near
					; CODE XREF: CDispInfo::TestAddDecalTri(int,ushort,CDispDecal *)+2FAp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= word ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		movzx	ebx, [ebp+arg_4]
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], offset	_ZL20s_DispDecalFragments ; s_DispDecalFragments
		call	_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb ; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)
		mov	esi, eax
		mov	eax, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		lea	ebx, [ebx+ebx*4]
		shl	ebx, 4
		movzx	edi, word ptr [eax+ebx+48h]
		movzx	eax, si
		mov	dword ptr [esp], offset	_ZL20s_DispDecalFragments ; s_DispDecalFragments
		mov	[esp+4], eax
		mov	[ebp+var_20], eax
		call	_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)
		mov	eax, [ebp+var_20]
		mov	edx, dword ptr ds:_ZL20s_DispDecalFragments ; s_DispDecalFragments
		imul	eax, 0Eh
		mov	ecx, eax
		mov	[ebp+var_1C], eax
		add	ecx, edx
		cmp	di, 0FFFFh
		mov	[ecx+0Ch], di
		jz	short loc_E7160
		movzx	edi, di
		imul	edi, 0Eh
		add	edi, edx
		movzx	eax, word ptr [edi+0Ah]
		mov	[edi+0Ah], si
		cmp	ax, 0FFFFh
		mov	[ecx+0Ah], ax
		jz	short loc_E7178

loc_E7110:				; CODE XREF: CDispInfo::AllocateDispDecalFragment(ushort,int)+E6j
		movzx	eax, ax
		imul	eax, 0Eh
		mov	[edx+eax+0Ch], si

loc_E711B:				; CODE XREF: CDispInfo::AllocateDispDecalFragment(ushort,int)+EFj
		mov	eax, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		add	word ptr ds:_ZL20s_DispDecalFragments+12h, 1
		mov	[eax+ebx+48h], si
		mov	ebx, [ebp+var_1C]
		movzx	eax, byte ptr [ebp+arg_8]
		add	ebx, dword ptr ds:_ZL20s_DispDecalFragments ; s_DispDecalFragments
		mov	[ebx+4], al
		mov	eax, [ebp+arg_8]
		shl	eax, 5
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[ebx+5], eax
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E7160:				; CODE XREF: CDispInfo::AllocateDispDecalFragment(ushort,int)+64j
		movzx	eax, word ptr ds:_ZL20s_DispDecalFragments+0Eh
		cmp	ax, 0FFFFh
		mov	[ecx+0Ah], ax
		mov	word ptr ds:_ZL20s_DispDecalFragments+0Eh, si
		jnz	short loc_E7110

loc_E7178:				; CODE XREF: CDispInfo::AllocateDispDecalFragment(ushort,int)+7Ej
		mov	word ptr ds:_ZL20s_DispDecalFragments+0Ch, si
		jmp	short loc_E711B
_ZN9CDispInfo25AllocateDispDecalFragmentEti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::NotifyAddDecal(decal_t *, float)
_ZN9CDispInfo14NotifyAddDecalEP7decal_tf proc near
					; DATA XREF: .rodata:`vtable for'CDispInfoo

var_34		= dword	ptr -34h
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], offset	_ZL12s_DispDecals ; s_DispDecals
		call	_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb ; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)
		cmp	ax, 0FFFFh
		mov	esi, eax
		jz	loc_E731C
		movzx	ecx, ax
		mov	eax, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		lea	edi, [ecx+ecx*4]
		shl	edi, 4
		add	eax, edi
		jz	short loc_E71E6
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	byte ptr [eax+0Ch], 0

loc_E71E6:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+3Cj
		movzx	eax, word ptr [ebx+25Eh]
		movzx	edx, ax
		mov	[ebp+var_2E], ax
		cmp	edx, 0FFFFh
		mov	[ebp+var_2C], edx
		mov	eax, edx
		jz	short loc_E7222
		mov	edx, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		mov	esi, esi
		lea	edi, [edi+0]

loc_E7210:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+90j
		lea	eax, [eax+eax*4]
		shl	eax, 4
		movzx	eax, word ptr [edx+eax+4Eh]
		cmp	eax, 0FFFFh
		jnz	short loc_E7210

loc_E7222:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+6Fj
		mov	[esp+4], ecx
		mov	dword ptr [esp], offset	_ZL12s_DispDecals ; s_DispDecals
		call	_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)
		movzx	ecx, [ebp+var_2E]
		mov	edx, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		cmp	cx, 0FFFFh
		lea	eax, [edx+edi]
		mov	[ebp+var_34], eax
		mov	[eax+4Eh], cx
		jz	loc_E7330
		mov	eax, [ebp+var_2C]
		lea	ecx, [eax+eax*4]
		shl	ecx, 4
		add	ecx, edx
		movzx	eax, word ptr [ecx+4Ch]
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebp+var_34]
		cmp	ax, 0FFFFh
		mov	[ecx+4Ch], ax
		mov	ecx, [ebp+var_2C]
		mov	[ecx+4Ch], si
		jz	loc_E734F

loc_E727A:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+1B9j
		movzx	eax, ax
		lea	eax, [eax+eax*4]
		shl	eax, 4
		mov	[edx+eax+4Eh], si

loc_E7288:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+1C6j
		add	edi, dword ptr ds:_ZL12s_DispDecals ; s_DispDecals
		mov	[ebx+25Eh], si
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+arg_4]
		add	word ptr ds:_ZL12s_DispDecals+12h, 1
		mov	word ptr [edi+48h], 0FFFFh
		mov	[edi+44h], eax
		lea	eax, [edi+18h]
		mov	[edi+14h], edx
		mov	word ptr [edi+0Eh], 0
		mov	word ptr [edi+10h], 0
		mov	[esp+14h], eax
		lea	eax, [edi+20h]
		mov	[esp+10h], eax
		mov	eax, [edx+0Ch]
		mov	[esp+0Ch], eax
		mov	eax, [ebx+16Ch]
		mov	eax, [eax+4]
		mov	[esp+4], edx
		mov	[esp+8], eax
		lea	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z16R_SetupDecalClipRP10CDecalVertP7decal_tR6VectorP9IMaterialPS4_Pf ; R_SetupDecalClip(CDecalVert *&,decal_t *,Vector &,IMaterial *,Vector*,float *)
		mov	dword ptr [esp+10h], 0
		mov	[esp+0Ch], edi
		mov	dword ptr [esp+8], 0
		mov	eax, [ebx+1DCh]
		mov	[esp], ebx
		add	eax, 20h
		mov	[esp+4], eax
		call	_ZN9CDispInfo23SetupDecalNodeIntersectERK10CVertIndexiP14CDispDecalBasePK12ShadowInfo_t	; CDispInfo::SetupDecalNodeIntersect(CVertIndex	 const&,int,CDispDecalBase *,ShadowInfo_t  const*)

loc_E731C:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+26j
		add	esp, 4Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E7330:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+BAj
		movzx	eax, word ptr ds:_ZL12s_DispDecals+0Eh
		mov	word ptr ds:_ZL12s_DispDecals+0Eh, si
		mov	ecx, [ebp+var_34]
		cmp	ax, 0FFFFh
		mov	[ecx+4Ch], ax
		jnz	loc_E727A

loc_E734F:				; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+E4j
		mov	word ptr ds:_ZL12s_DispDecals+0Ch, si
		jmp	loc_E7288
_ZN9CDispInfo14NotifyAddDecalEP7decal_tf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::AllocateShadowDecalFragment(unsigned short, int)
_ZN9CDispInfo27AllocateShadowDecalFragmentEti proc near

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= word ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		movzx	esi, [ebp+arg_4]
		mov	dword ptr [esp+4], 1
		mov	dword ptr [esp], offset	_ZL21s_DispShadowFragments ; s_DispShadowFragments
		call	_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb ; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)
		mov	ebx, eax
		mov	eax, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		imul	esi, 1Ch
		movzx	edi, word ptr [eax+esi+14h]
		movzx	eax, bx
		mov	dword ptr [esp], offset	_ZL21s_DispShadowFragments ; s_DispShadowFragments
		mov	[esp+4], eax
		mov	[ebp+var_20], eax
		call	_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)
		mov	eax, [ebp+var_20]
		mov	edx, dword ptr ds:_ZL21s_DispShadowFragments ; s_DispShadowFragments
		lea	eax, [eax+eax*2]
		shl	eax, 2
		mov	ecx, eax
		mov	[ebp+var_1C], eax
		add	ecx, edx
		cmp	di, 0FFFFh
		mov	[ecx+0Ah], di
		jz	short loc_E7430
		movzx	edi, di
		lea	eax, [edi+edi*2]
		lea	edi, [edx+eax*4]
		movzx	eax, word ptr [edi+8]
		mov	[edi+8], bx
		cmp	ax, 0FFFFh
		mov	[ecx+8], ax
		jz	short loc_E7448

loc_E73E1:				; CODE XREF: CDispInfo::AllocateShadowDecalFragment(ushort,int)+E6j
		movzx	eax, ax
		lea	eax, [eax+eax*2]
		mov	[edx+eax*4+0Ah], bx

loc_E73EC:				; CODE XREF: CDispInfo::AllocateShadowDecalFragment(ushort,int)+EFj
		mov	eax, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		mov	edx, [ebp+arg_8]
		add	word ptr ds:_ZL21s_DispShadowFragments+12h, 1
		mov	[eax+esi+14h], bx
		mov	ebx, [ebp+var_1C]
		lea	eax, [edx+edx*2]
		shl	eax, 3
		add	ebx, dword ptr ds:_ZL21s_DispShadowFragments ; s_DispShadowFragments
		mov	[ebx], edx
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[ebx+4], eax
		add	esp, 2Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E7430:				; CODE XREF: CDispInfo::AllocateShadowDecalFragment(ushort,int)+64j
		movzx	eax, word ptr ds:_ZL21s_DispShadowFragments+0Eh
		cmp	ax, 0FFFFh
		mov	[ecx+8], ax
		mov	word ptr ds:_ZL21s_DispShadowFragments+0Eh, bx
		jnz	short loc_E73E1

loc_E7448:				; CODE XREF: CDispInfo::AllocateShadowDecalFragment(ushort,int)+7Fj
		mov	word ptr ds:_ZL21s_DispShadowFragments+0Ch, bx
		jmp	short loc_E73EC
_ZN9CDispInfo27AllocateShadowDecalFragmentEti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::AddShadowDecal(unsigned short)
_ZN9CDispInfo14AddShadowDecalEt	proc near ; DATA XREF: .rodata:`vtable for'CDispInfoo

var_20		= dword	ptr -20h
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		movzx	eax, [ebp+arg_4]
		mov	dword ptr [esp+4], 1
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], offset	_ZL18s_DispShadowDecals	; s_DispShadowDecals
		mov	[ebp+var_1A], ax
		call	_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)
		mov	edx, offset loc_1BFFE4
		mov	esi, eax
		movzx	eax, ax
		cmp	si, 0FFFFh
		jz	short loc_E74BD
		mov	ecx, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		imul	edx, eax, 1Ch
		add	ecx, edx
		jz	short loc_E74BD
		mov	dword ptr [ecx], 0
		mov	dword ptr [ecx+4], 0
		mov	dword ptr [ecx+8], 0
		mov	byte ptr [ecx+0Ch], 2

loc_E74BD:				; CODE XREF: CDispInfo::AddShadowDecal(ushort)+36j
					; CDispInfo::AddShadowDecal(ushort)+43j
		movzx	edi, word ptr [ebx+260h]
		mov	[ebp+var_20], edx
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	_ZL18s_DispShadowDecals	; s_DispShadowDecals
		call	_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)
		mov	edx, [ebp+var_20]
		mov	ecx, dword ptr ds:_ZL18s_DispShadowDecals ; s_DispShadowDecals
		add	edx, ecx
		cmp	di, 0FFFFh
		mov	[edx+1Ah], di
		jz	short loc_E7548
		movzx	edi, di
		imul	edi, 1Ch
		add	edi, ecx
		movzx	eax, word ptr [edi+18h]
		mov	[edi+18h], si
		cmp	ax, 0FFFFh
		mov	[edx+18h], ax
		jz	short loc_E7560

loc_E7506:				; CODE XREF: CDispInfo::AddShadowDecal(ushort)+FEj
		movzx	eax, ax
		imul	eax, 1Ch
		mov	[ecx+eax+1Ah], si

loc_E7511:				; CODE XREF: CDispInfo::AddShadowDecal(ushort)+107j
		movzx	eax, [ebp+var_1A]
		mov	[ebx+260h], si
		add	word ptr ds:_ZL18s_DispShadowDecals+12h, 1
		mov	word ptr [edx+14h], 0FFFFh
		mov	word ptr [edx+10h], 0
		mov	[edx+12h], ax
		mov	eax, esi
		mov	word ptr [edx+0Eh], 0
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E7548:				; CODE XREF: CDispInfo::AddShadowDecal(ushort)+8Aj
		movzx	eax, word ptr ds:_ZL18s_DispShadowDecals+0Eh
		mov	word ptr ds:_ZL18s_DispShadowDecals+0Eh, si
		cmp	ax, 0FFFFh
		mov	[edx+18h], ax
		jnz	short loc_E7506

loc_E7560:				; CODE XREF: CDispInfo::AddShadowDecal(ushort)+A4j
		mov	word ptr ds:_ZL18s_DispShadowDecals+0Ch, si
		jmp	short loc_E7511
_ZN9CDispInfo14AddShadowDecalEt	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecalFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment, unsigned short>, unsigned	short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt proc	near
					; CODE XREF: CDispInfo::ClearDecalFragments(ushort)+4Ep
					; CDispInfo::AllocateDispDecalFragment(ushort,int)+44p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_E75E1
		cmp	cx, [eax+16h]
		ja	short loc_E75E1
		mov	esi, [eax]
		imul	edx, 0Eh
		add	edx, esi
		cmp	cx, [edx+0Ah]
		jz	short loc_E75E1
		movzx	ebx, word ptr [edx+0Ah]
		cmp	bx, 0FFFFh
		jz	short loc_E75F0
		movzx	edi, word ptr [edx+0Ch]
		movzx	ebx, bx
		imul	ebx, 0Eh
		mov	[esi+ebx+0Ch], di
		movzx	ebx, word ptr [edx+0Ch]
		cmp	bx, 0FFFFh
		jz	short loc_E7602

loc_E75C4:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)+90j
		movzx	ebx, bx
		movzx	esi, word ptr [edx+0Ah]
		imul	ebx, 0Eh
		add	ebx, [eax]
		mov	[ebx+0Ah], si

loc_E75D4:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)+9Aj
		mov	[edx+0Ch], cx
		mov	[edx+0Ah], cx
		sub	word ptr [eax+12h], 1

loc_E75E1:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E75F0:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)+39j
		movzx	ebx, word ptr [edx+0Ch]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+0Ch]
		cmp	bx, 0FFFFh
		jnz	short loc_E75C4

loc_E7602:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::Unlink(ushort)+52j
		movzx	ebx, word ptr [edx+0Ah]
		mov	[eax+0Eh], bx
		jmp	short loc_E75D4
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecal, unsigned short>, unsigned	short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt proc	near
					; CODE XREF: CDispInfo::NotifyRemoveDecal(ushort)+39p
					; CDispInfo::NotifyAddDecal(decal_t *,float)+9Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_E768A
		cmp	cx, [eax+16h]
		ja	short loc_E768A
		mov	esi, [eax]
		lea	edx, [edx+edx*4]
		shl	edx, 4
		add	edx, esi
		cmp	cx, [edx+4Ch]
		jz	short loc_E768A
		movzx	ebx, word ptr [edx+4Ch]
		cmp	bx, 0FFFFh
		jz	short loc_E76A0
		movzx	edi, word ptr [edx+4Eh]
		movzx	ebx, bx
		lea	ebx, [ebx+ebx*4]
		shl	ebx, 4
		mov	[esi+ebx+4Eh], di
		movzx	ebx, word ptr [edx+4Eh]
		cmp	bx, 0FFFFh
		jz	short loc_E76B2

loc_E766A:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)+A0j
		movzx	ebx, bx
		movzx	esi, word ptr [edx+4Ch]
		lea	ebx, [ebx+ebx*4]
		shl	ebx, 4
		add	ebx, [eax]
		mov	[ebx+4Ch], si

loc_E767D:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)+AAj
		mov	[edx+4Eh], cx
		mov	[edx+4Ch], cx
		sub	word ptr [eax+12h], 1

loc_E768A:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E76A0:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)+3Cj
		movzx	ebx, word ptr [edx+4Eh]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+4Eh]
		cmp	bx, 0FFFFh
		jnz	short loc_E766A

loc_E76B2:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::Unlink(ushort)+58j
		movzx	ebx, word ptr [edx+4Ch]
		mov	[eax+0Eh], bx
		jmp	short loc_E767D
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,	unsigned short>, unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt proc near
					; CODE XREF: CDispInfo::ClearShadowDecalFragments(ushort)+51p
					; CDispInfo::AllocateShadowDecalFragment(ushort,int)+41p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_E7735
		cmp	cx, [eax+16h]
		ja	short loc_E7735
		mov	esi, [eax]
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]
		cmp	cx, [edx+8]
		jz	short loc_E7735
		movzx	ebx, word ptr [edx+8]
		cmp	bx, 0FFFFh
		jz	short loc_E7748
		movzx	edi, word ptr [edx+0Ah]
		movzx	ebx, bx
		lea	ebx, [ebx+ebx*2]
		mov	[esi+ebx*4+0Ah], di
		movzx	ebx, word ptr [edx+0Ah]
		cmp	bx, 0FFFFh
		jz	short loc_E775A

loc_E7715:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)+98j
		mov	edi, [eax]
		movzx	ebx, bx
		movzx	esi, word ptr [edx+8]
		lea	ebx, [ebx+ebx*2]
		lea	ebx, [edi+ebx*4]
		mov	[ebx+8], si

loc_E7728:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)+A2j
		mov	[edx+0Ah], cx
		mov	[edx+8], cx
		sub	word ptr [eax+12h], 1

loc_E7735:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E7748:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)+3Aj
		movzx	ebx, word ptr [edx+0Ah]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+0Ah]
		cmp	bx, 0FFFFh
		jnz	short loc_E7715

loc_E775A:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::Unlink(ushort)+53j
		movzx	ebx, word ptr [edx+8]
		mov	[eax+0Eh], bx
		jmp	short loc_E7728
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal, unsigned short>, unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt proc near
					; CODE XREF: CDispInfo::RemoveShadowDecal(ushort)+3Cp
					; CDispInfo::AddShadowDecal(ushort)+72p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_E77E1
		cmp	cx, [eax+16h]
		ja	short loc_E77E1
		mov	esi, [eax]
		imul	edx, 1Ch
		add	edx, esi
		cmp	cx, [edx+18h]
		jz	short loc_E77E1
		movzx	ebx, word ptr [edx+18h]
		cmp	bx, 0FFFFh
		jz	short loc_E77F0
		movzx	edi, word ptr [edx+1Ah]
		movzx	ebx, bx
		imul	ebx, 1Ch
		mov	[esi+ebx+1Ah], di
		movzx	ebx, word ptr [edx+1Ah]
		cmp	bx, 0FFFFh
		jz	short loc_E7802

loc_E77C4:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)+90j
		movzx	ebx, bx
		movzx	esi, word ptr [edx+18h]
		imul	ebx, 1Ch
		add	ebx, [eax]
		mov	[ebx+18h], si

loc_E77D4:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)+9Aj
		mov	[edx+1Ah], cx
		mov	[edx+18h], cx
		sub	word ptr [eax+12h], 1

loc_E77E1:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E77F0:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)+39j
		movzx	ebx, word ptr [edx+1Ah]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+1Ah]
		cmp	bx, 0FFFFh
		jnz	short loc_E77C4

loc_E7802:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::Unlink(ushort)+52j
		movzx	ebx, word ptr [edx+18h]
		mov	[eax+0Eh], bx
		jmp	short loc_E77D4
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tI18CDispDecalFragmenttEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_E7892
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_E78A0
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_E7846
		lea	esi, [esi+0]

loc_E7840:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_E7840

loc_E7846:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_E7878
		test	ax, ax
		jz	short loc_E78B8
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_E7892
		cmp	esi, ecx
		jge	short loc_E7878
		lea	esi, [esi+0]

loc_E7860:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_E7860
		lea	esi, [esi+0]

loc_E7878:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		imul	eax, 0Eh
		test	edx, edx
		jz	short loc_E78C8
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_E7892:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E78A0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_E7846
; ---------------------------------------------------------------------------
		align 8

loc_E78B8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_E7878
		jmp	short loc_E7892
; ---------------------------------------------------------------------------
		align 4

loc_E78C8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)+72j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tI18CDispDecalFragmenttEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecalFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment, unsigned short>, unsigned	short>>::AllocInternal(bool)
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb proc	near
					; CODE XREF: CDispInfo::AllocateDispDecalFragment(ushort,int)+1Cp

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_E7950
		movzx	ecx, ax
		mov	edi, [ebx]
		imul	ecx, 0Eh
		add	edi, ecx
		movzx	esi, word ptr [edi+0Ch]
		mov	[ebx+10h], si

loc_E7912:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+A9j
		test	dl, dl
		jz	short loc_E7938
		mov	word ptr [edi+0Ch], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+0Ah],	0FFFFh

loc_E7925:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E7938:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+34j
		mov	[edi+0Ch], ax
		mov	edx, [ebx]
		mov	[edx+ecx+0Ah], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_E7950:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_E7990
		test	ecx, ecx
		jz	short loc_E79B0
		xor	edi, edi
		xor	esi, esi

loc_E7966:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_E79B0

loc_E796A:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_E7A20
		movzx	ecx, si
		mov	edi, [ebx]
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		imul	ecx, 0Eh
		mov	eax, esi
		add	edi, ecx
		jmp	short loc_E7912
; ---------------------------------------------------------------------------
		align 10h

loc_E7990:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_E7966
; ---------------------------------------------------------------------------
		align 10h

loc_E79B0:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tI18CDispDecalFragmenttEtE4GrowEi ;	CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_E7A50
		test	ecx, ecx
		jz	short loc_E79F0
		xor	edi, edi
		xor	esi, esi

loc_E79E8:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_E796A

loc_E79F0:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E7925
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E7925
; ---------------------------------------------------------------------------
		align 10h

loc_E7A20:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E7925
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E7925
; ---------------------------------------------------------------------------
		align 10h

loc_E7A50:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_E79E8
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDispDecal, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tI10CDispDecaltEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_E7B05
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_E7B10
		test	eax, eax
		mov	edx, 1
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_E7AB6
		lea	esi, [esi+0]

loc_E7AB0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_E7AB0

loc_E7AB6:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_E7AE8
		test	ax, ax
		jz	short loc_E7B28
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_E7B05
		cmp	esi, ecx
		jge	short loc_E7AE8
		lea	esi, [esi+0]

loc_E7AD0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_E7AD0
		lea	esi, [esi+0]

loc_E7AE8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*4]
		shl	eax, 4
		test	edx, edx
		jz	short loc_E7B38
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_E7B05:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E7B10:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_E7AB6
; ---------------------------------------------------------------------------
		align 8

loc_E7B28:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_E7AE8
		jmp	short loc_E7B05
; ---------------------------------------------------------------------------
		align 4

loc_E7B38:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)+75j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tI10CDispDecaltEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecal, unsigned short>, unsigned	short>>::AllocInternal(bool)
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb proc	near
					; CODE XREF: CDispInfo::NotifyAddDecal(decal_t *,float)+1Bp

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_E7BC0
		mov	edi, [ebx]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 4
		add	edi, ecx
		movzx	esi, word ptr [edi+4Eh]
		mov	[ebx+10h], si

loc_E7B85:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+ACj
		test	dl, dl
		jz	short loc_E7BA8
		mov	word ptr [edi+4Eh], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+4Ch],	0FFFFh

loc_E7B98:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_E7BA8:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+37j
		mov	[edi+4Eh], ax
		mov	edx, [ebx]
		mov	[edx+ecx+4Ch], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_E7BC0:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_E7C00
		test	ecx, ecx
		jz	short loc_E7C20
		xor	edi, edi
		xor	esi, esi

loc_E7BD6:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_E7C20

loc_E7BDA:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_E7C90
		mov	edi, [ebx]
		movzx	eax, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		lea	ecx, [eax+eax*4]
		mov	eax, esi
		shl	ecx, 4
		add	edi, ecx
		jmp	short loc_E7B85
; ---------------------------------------------------------------------------
		align 10h

loc_E7C00:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_E7BD6
; ---------------------------------------------------------------------------
		align 10h

loc_E7C20:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tI10CDispDecaltEtE4GrowEi ;	CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_E7CC0
		test	ecx, ecx
		jz	short loc_E7C60
		xor	edi, edi
		xor	esi, esi

loc_E7C58:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_E7BDA

loc_E7C60:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E7B98
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E7B98
; ---------------------------------------------------------------------------
		align 10h

loc_E7C90:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E7B98
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E7B98
; ---------------------------------------------------------------------------
		align 10h

loc_E7CC0:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_E7C58
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment, unsigned short>, unsigned	short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tI19CDispShadowFragmenttEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_E7D75
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_E7D80
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_E7D26
		lea	esi, [esi+0]

loc_E7D20:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_E7D20

loc_E7D26:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_E7D58
		test	ax, ax
		jz	short loc_E7D98
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_E7D75
		cmp	esi, ecx
		jge	short loc_E7D58
		lea	esi, [esi+0]

loc_E7D40:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_E7D40
		lea	esi, [esi+0]

loc_E7D58:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_E7DA8
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_E7D75:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E7D80:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_E7D26
; ---------------------------------------------------------------------------
		align 8

loc_E7D98:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_E7D58
		jmp	short loc_E7D75
; ---------------------------------------------------------------------------
		align 4

loc_E7DA8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)+75j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tI19CDispShadowFragmenttEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,	unsigned short>, unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb proc near
					; CODE XREF: CDispInfo::AllocateShadowDecalFragment(ushort,int)+1Cp

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_E7E30
		mov	edi, [ebx]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 2
		add	edi, ecx
		movzx	esi, word ptr [edi+0Ah]
		mov	[ebx+10h], si

loc_E7DF5:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+ACj
		test	dl, dl
		jz	short loc_E7E18
		mov	word ptr [edi+0Ah], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+8], 0FFFFh

loc_E7E08:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_E7E18:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+37j
		mov	[edi+0Ah], ax
		mov	edx, [ebx]
		mov	[edx+ecx+8], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_E7E30:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_E7E70
		test	ecx, ecx
		jz	short loc_E7E90
		xor	edi, edi
		xor	esi, esi

loc_E7E46:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_E7E90

loc_E7E4A:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_E7F00
		mov	edi, [ebx]
		movzx	eax, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		lea	ecx, [eax+eax*2]
		mov	eax, esi
		shl	ecx, 2
		add	edi, ecx
		jmp	short loc_E7DF5
; ---------------------------------------------------------------------------
		align 10h

loc_E7E70:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_E7E46
; ---------------------------------------------------------------------------
		align 10h

loc_E7E90:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tI19CDispShadowFragmenttEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_E7F30
		test	ecx, ecx
		jz	short loc_E7ED0
		xor	edi, edi
		xor	esi, esi

loc_E7EC8:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_E7E4A

loc_E7ED0:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E7E08
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E7E08
; ---------------------------------------------------------------------------
		align 10h

loc_E7F00:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 9 ;	CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E7E08
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 1 ;	CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E7E08
; ---------------------------------------------------------------------------
		align 10h

loc_E7F30:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_E7EC8
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tI16CDispShadowDecaltEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_E7FE2
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_E7FF0
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_E7F96
		lea	esi, [esi+0]

loc_E7F90:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_E7F90

loc_E7F96:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_E7FC8
		test	ax, ax
		jz	short loc_E8008
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_E7FE2
		cmp	esi, ecx
		jge	short loc_E7FC8
		lea	esi, [esi+0]

loc_E7FB0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_E7FB0
		lea	esi, [esi+0]

loc_E7FC8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		imul	eax, 1Ch
		test	edx, edx
		jz	short loc_E8018
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_E7FE2:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E7FF0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_E7F96
; ---------------------------------------------------------------------------
		align 8

loc_E8008:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_E7FC8
		jmp	short loc_E7FE2
; ---------------------------------------------------------------------------
		align 4

loc_E8018:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)+72j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tI16CDispShadowDecaltEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal, unsigned short>, unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb proc near
					; CODE XREF: CDispInfo::AddShadowDecal(ushort)+23p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_E80A0
		movzx	ecx, ax
		mov	edi, [ebx]
		imul	ecx, 1Ch
		add	edi, ecx
		movzx	esi, word ptr [edi+1Ah]
		mov	[ebx+10h], si

loc_E8062:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+A9j
		test	dl, dl
		jz	short loc_E8088
		mov	word ptr [edi+1Ah], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+18h],	0FFFFh

loc_E8075:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E8088:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+34j
		mov	[edi+1Ah], ax
		mov	edx, [ebx]
		mov	[edx+ecx+18h], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_E80A0:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_E80E0
		test	ecx, ecx
		jz	short loc_E8100
		xor	edi, edi
		xor	esi, esi

loc_E80B6:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_E8100

loc_E80BA:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_E8170
		movzx	ecx, si
		mov	edi, [ebx]
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		imul	ecx, 1Ch
		mov	eax, esi
		add	edi, ecx
		jmp	short loc_E8062
; ---------------------------------------------------------------------------
		align 10h

loc_E80E0:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_E80B6
; ---------------------------------------------------------------------------
		align 10h

loc_E8100:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tI16CDispShadowDecaltEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_E81A0
		test	ecx, ecx
		jz	short loc_E8140
		xor	edi, edi
		xor	esi, esi

loc_E8138:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_E80BA

loc_E8140:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E8075
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E8075
; ---------------------------------------------------------------------------
		align 10h

loc_E8170:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_E8075
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_E8075
; ---------------------------------------------------------------------------
		align 10h

loc_E81A0:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_E8138
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal, unsigned short>, unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv proc near
					; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::~CUtlLinkedList()+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	ecx, [ebp+arg_0]
		push	esi
		push	ebx
		movzx	esi, word ptr [ecx+16h]
		cmp	si, 0FFFFh
		jz	short loc_E8252
		mov	ebx, [ecx+4]
		test	ebx, ebx
		jz	short loc_E8240
		xor	edi, edi
		xor	edx, edx
		db	66h
		nop

loc_E81F0:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+67j
		cmp	edx, ebx
		mov	eax, edx
		jnb	short loc_E8219
		cmp	si, dx
		jb	short loc_E8219
		mov	ebx, [ecx]
		add	ebx, edi
		cmp	[ebx+18h], dx
		jz	short loc_E8260

loc_E8205:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+96j
		mov	[ebx+18h], ax
		movzx	esi, word ptr [ecx+10h]
		mov	[ebx+1Ah], si
		movzx	esi, word ptr [ecx+16h]
		mov	[ecx+10h], ax

loc_E8219:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+24j
					; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+29j ...
		cmp	ax, si
		jz	short loc_E8240
		mov	ebx, [ecx+4]
		add	eax, 1
		movzx	eax, ax
		cmp	eax, ebx
		jnb	short loc_E8240
		add	edx, 1
		add	edi, 1Ch
		cmp	edx, 0FFFFh
		jnz	short loc_E81F0
		lea	esi, [esi+0]

loc_E8240:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+18j
					; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+4Cj ...
		mov	word ptr [ecx+0Ch], 0FFFFh
		mov	word ptr [ecx+0Eh], 0FFFFh
		mov	word ptr [ecx+12h], 0

loc_E8252:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+11j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E8260:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)+33j
		cmp	dx, [ebx+1Ah]
		jnz	short loc_E8219
		jmp	short loc_E8205
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal, unsigned short>, unsigned short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I__ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct+41o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv ; CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::RemoveAll(void)
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_E82A4
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E829D
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_E829D:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::~CUtlLinkedList()+1Dj
		mov	dword ptr [ebx+4], 0

loc_E82A4:				; CODE XREF: CUtlLinkedList<CDispShadowDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowDecal,ushort>,ushort>>::~CUtlLinkedList()+17j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListI16CDispShadowDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,	unsigned short>, unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv proc near
					; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::~CUtlLinkedList()+Dp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		movzx	edx, word ptr [edi+16h]
		cmp	dx, 0FFFFh
		jz	loc_E835A
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_E8348
		xor	ecx, ecx
		xor	esi, esi
		lea	esi, [esi+0]

loc_E82D8:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+91j
		cmp	esi, eax
		mov	ebx, esi
		jnb	short loc_E8323
		cmp	dx, si
		jb	short loc_E8323
		mov	eax, [edi]
		add	eax, ecx
		cmp	[eax+8], si
		jz	short loc_E8368

loc_E82ED:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+BEj
		mov	edx, [eax+4]
		test	edx, edx
		jz	short loc_E8308
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], ecx
		mov	[esp], edx	; void *
		call	_ZdaPv		; operator delete[](void *)
		mov	ecx, [ebp+var_20]
		mov	eax, [ebp+var_1C]

loc_E8308:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+42j
		mov	dword ptr [eax+4], 0
		mov	[eax+8], bx
		movzx	edx, word ptr [edi+10h]
		mov	[eax+0Ah], dx
		movzx	edx, word ptr [edi+16h]
		mov	[edi+10h], bx

loc_E8323:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+2Cj
					; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+31j ...
		cmp	bx, dx
		jz	short loc_E8348
		mov	eax, [edi+4]
		add	ebx, 1
		movzx	ebx, bx
		cmp	ebx, eax
		jnb	short loc_E8348
		add	esi, 1
		add	ecx, 0Ch
		cmp	esi, 0FFFFh
		jnz	short loc_E82D8
		nop
		lea	esi, [esi+0]

loc_E8348:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+1Fj
					; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+76j ...
		mov	word ptr [edi+0Ch], 0FFFFh
		mov	word ptr [edi+0Eh], 0FFFFh
		mov	word ptr [edi+12h], 0

loc_E835A:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+14j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E8368:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)+3Bj
		cmp	si, [eax+0Ah]
		jnz	short loc_E8323
		jmp	loc_E82ED
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispShadowFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,	unsigned short>, unsigned short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I__ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct+D9o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv ; CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::RemoveAll(void)
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_E83B4
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E83AD
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_E83AD:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::~CUtlLinkedList()+1Dj
		mov	dword ptr [ebx+4], 0

loc_E83B4:				; CODE XREF: CUtlLinkedList<CDispShadowFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispShadowFragment,ushort>,ushort>>::~CUtlLinkedList()+17j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListI19CDispShadowFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecal, unsigned short>, unsigned	short>>::RemoveAll(void)
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv proc near
					; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::~CUtlLinkedList()+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	ecx, [ebp+arg_0]
		push	esi
		push	ebx
		movzx	esi, word ptr [ecx+16h]
		cmp	si, 0FFFFh
		jz	short loc_E8442
		mov	ebx, [ecx+4]
		test	ebx, ebx
		jz	short loc_E8430
		xor	edi, edi
		xor	edx, edx
		db	66h
		nop

loc_E83E0:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+67j
		cmp	edx, ebx
		mov	eax, edx
		jnb	short loc_E8409
		cmp	si, dx
		jb	short loc_E8409
		mov	ebx, [ecx]
		add	ebx, edi
		cmp	[ebx+4Ch], dx
		jz	short loc_E8450

loc_E83F5:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+96j
		mov	[ebx+4Ch], ax
		movzx	esi, word ptr [ecx+10h]
		mov	[ebx+4Eh], si
		movzx	esi, word ptr [ecx+16h]
		mov	[ecx+10h], ax

loc_E8409:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+24j
					; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+29j	...
		cmp	ax, si
		jz	short loc_E8430
		mov	ebx, [ecx+4]
		add	eax, 1
		movzx	eax, ax
		cmp	eax, ebx
		jnb	short loc_E8430
		add	edx, 1
		add	edi, 50h
		cmp	edx, 0FFFFh
		jnz	short loc_E83E0
		lea	esi, [esi+0]

loc_E8430:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+18j
					; CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+4Cj	...
		mov	word ptr [ecx+0Ch], 0FFFFh
		mov	word ptr [ecx+0Eh], 0FFFFh
		mov	word ptr [ecx+12h], 0

loc_E8442:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+11j
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E8450:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)+33j
		cmp	dx, [ebx+4Eh]
		jnz	short loc_E8409
		jmp	short loc_E83F5
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecal, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecal, unsigned short>, unsigned	short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I__ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct+153o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv ;	CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::RemoveAll(void)
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_E8494
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E848D
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_E848D:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::~CUtlLinkedList()+1Dj
		mov	dword ptr [ebx+4], 0

loc_E8494:				; CODE XREF: CUtlLinkedList<CDispDecal,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecal,ushort>,ushort>>::~CUtlLinkedList()+17j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListI10CDispDecaltLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecalFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment, unsigned short>, unsigned	short>>::RemoveAll(void)
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv proc near
					; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::~CUtlLinkedList()+Dp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		movzx	edx, word ptr [edi+16h]
		cmp	dx, 0FFFFh
		jz	loc_E854A
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_E8538
		xor	ecx, ecx
		xor	esi, esi
		lea	esi, [esi+0]

loc_E84C8:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+91j
		cmp	esi, eax
		mov	ebx, esi
		jnb	short loc_E8513
		cmp	dx, si
		jb	short loc_E8513
		mov	eax, [edi]
		add	eax, ecx
		cmp	[eax+0Ah], si
		jz	short loc_E8558

loc_E84DD:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+BEj
		mov	edx, [eax+5]
		test	edx, edx
		jz	short loc_E84F8
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], ecx
		mov	[esp], edx	; void *
		call	_ZdaPv		; operator delete[](void *)
		mov	ecx, [ebp+var_20]
		mov	eax, [ebp+var_1C]

loc_E84F8:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+42j
		mov	dword ptr [eax+5], 0
		mov	[eax+0Ah], bx
		movzx	edx, word ptr [edi+10h]
		mov	[eax+0Ch], dx
		movzx	edx, word ptr [edi+16h]
		mov	[edi+10h], bx

loc_E8513:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+2Cj
					; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+31j	...
		cmp	bx, dx
		jz	short loc_E8538
		mov	eax, [edi+4]
		add	ebx, 1
		movzx	ebx, bx
		cmp	ebx, eax
		jnb	short loc_E8538
		add	esi, 1
		add	ecx, 0Eh
		cmp	esi, 0FFFFh
		jnz	short loc_E84C8
		nop
		lea	esi, [esi+0]

loc_E8538:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+1Fj
					; CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+76j	...
		mov	word ptr [edi+0Ch], 0FFFFh
		mov	word ptr [edi+0Eh], 0FFFFh
		mov	word ptr [edi+12h], 0

loc_E854A:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+14j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E8558:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)+3Bj
		cmp	si, [eax+0Ch]
		jnz	short loc_E8513
		jmp	loc_E84DD
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDispDecalFragment, unsigned short, true, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment, unsigned short>, unsigned	short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I__ZN9CDispInfo23GetIntersectingSurfacesEP30GetIntersectingSurfaces_Struct+1CDo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEE9RemoveAllEv ;	CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::RemoveAll(void)
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_E85A4
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_E859D
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_E859D:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::~CUtlLinkedList()+1Dj
		mov	dword ptr [ebx+4], 0

loc_E85A4:				; CODE XREF: CUtlLinkedList<CDispDecalFragment,ushort,true,ushort,CUtlMemory<UtlLinkedListElem_t<CDispDecalFragment,ushort>,ushort>>::~CUtlLinkedList()+17j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListI18CDispDecalFragmenttLb1Et10CUtlMemoryI19UtlLinkedListElem_tIS0_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41 proc near
					; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+BEp

var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_38		= byte ptr -38h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 13Ch
		test	edx, edx
		mov	[ebp+var_128], eax
		mov	[ebp+var_124], edx
		jz	short loc_E85D8
		mov	eax, [edx]
		mov	edx, eax
		shr	edx, 18h
		cmp	edx, 4
		jz	short loc_E85E8

loc_E85D8:				; CODE XREF: _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+1Aj
		add	esp, 13Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_E85E8:				; CODE XREF: _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+26j
		fld	[ebp+var_98]
		fld	[ebp+var_8C]
		fsub	st, st(1)
		fld	[ebp+var_94]
		fld	[ebp+var_88]
		fsub	st, st(1)
		fld	[ebp+var_90]
		fld	[ebp+var_84]
		fsub	st, st(1)
		fxch	st(5)
		fsubr	[ebp+var_74]
		fxch	st(3)
		fsubr	[ebp+var_70]
		fxch	st(1)
		fsubr	[ebp+var_6C]
		fld	st(1)
		fmul	st, st(6)
		fld	st(1)
		fmul	st, st(4)
		fsubp	st(1), st
		fxch	st(1)
		fmul	st, st(5)
		fxch	st(6)
		fmul	st, st(4)
		fsubp	st(6), st
		fxch	st(3)
		fmulp	st(2), st
		fmulp	st(3), st
		fsubrp	st(2), st
		fld	st
		fmul	st, st(1)
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_130]
		mov	edx, [ebp+var_130]
		movd	xmm0, edx
		xor	edx, edx
		movaps	xmm1, xmm0
		rsqrtss	xmm1, xmm0
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm0
		movss	xmm0, ds:dword_1EBD30
		movaps	xmm3, xmm0
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		movss	xmm3, ds:dword_1EBD40
		mulss	xmm2, xmm3
		mulss	xmm1, xmm2
		movss	[ebp+var_130], xmm1
		fld	[ebp+var_130]
		fmul	st(1), st
		fmul	st(3), st
		fmulp	st(2), st
		jmp	short loc_E86BC
; ---------------------------------------------------------------------------
		align 8

loc_E86B8:				; CODE XREF: _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+125j
		fxch	st(1)
		fxch	st(2)

loc_E86BC:				; CODE XREF: _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+FFj
		lea	ecx, [edx+edx*2]
		add	edx, 1
		lea	ecx, [ebp+ecx*4+var_68]
		cmp	edx, 4
		fst	dword ptr [ecx]
		fxch	st(2)
		fst	dword ptr [ecx+4]
		fxch	st(1)
		fst	dword ptr [ecx+8]
		jnz	short loc_E86B8
		fstp	st
		fstp	st
		fstp	st
		mov	[ebp+var_120], 1
		mov	edx, [ebp+var_128]
		mov	ebx, [ebp+var_128]
		mov	edx, [edx+188h]
		add	ebx, 10h
		test	al, 8
		mov	[ebp+var_12C], edx
		jz	short loc_E8719
		mov	[ebp+var_120], 4
		or	edx, 1
		mov	[ebp+var_12C], edx

loc_E8719:				; CODE XREF: _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+154j
		mov	eax, [ebp+var_128]
		xor	esi, esi
		mov	dword ptr [eax+14h], 4

loc_E8728:				; CODE XREF: _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+222j
		lea	eax, [esi+esi*2]
		lea	edx, [ebp+var_98]
		shl	eax, 2
		lea	ecx, [ebx+eax]
		add	edx, eax
		lea	edi, [ecx+8]
		mov	[ebp+var_11C], edi
		mov	edi, [edx]
		mov	[ecx+8], edi
		mov	edi, [ebp+var_11C]
		mov	ecx, [edx+4]
		mov	edx, [edx+8]
		mov	[edi+4], ecx
		lea	ecx, [ebx+eax+30h]
		mov	[edi+8], edx
		lea	edx, [ebp+var_68]
		add	edx, eax
		mov	edi, [edx]
		lea	eax, [ecx+8]
		mov	[ecx+8], edi
		mov	ecx, [edx+4]
		lea	edi, ds:0[esi*4]
		mov	edx, [edx+8]
		mov	[ebp+var_11C], edi
		mov	[eax+4], ecx
		mov	[eax+8], edx
		lea	edx, [ebp+esi*8+var_38]
		mov	ecx, [edx]
		lea	eax, [ebx+esi*8+60h]
		mov	edx, [edx+4]
		mov	[eax+8], ecx
		mov	[eax+0Ch], edx
		xor	eax, eax
		nop
		lea	esi, [esi+0]

loc_E87A0:				; CODE XREF: _ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41+21Aj
		mov	edx, [ebp+var_11C]
		add	edx, eax
		lea	ecx, [ebp+edx*8+var_118]
		lea	edx, [esi+eax*4+10h]
		add	eax, 1
		mov	edi, [ecx]
		cmp	eax, [ebp+var_120]
		lea	edx, [ebx+edx*8]
		mov	ecx, [ecx+4]
		mov	[edx+8], edi
		mov	[edx+0Ch], ecx
		jl	short loc_E87A0
		add	esi, 1
		cmp	esi, 4
		jnz	loc_E8728
		mov	edx, [ebp+var_124]
		mov	ecx, [ebp+var_124]
		movzx	eax, byte ptr [edx+16h]
		shr	al, 1
		movzx	edx, al
		movzx	eax, byte ptr [ecx+17h]
		shl	eax, 7
		or	eax, edx
		mov	edx, dword ptr ds:host_state+4
		lea	eax, [eax+eax*4]
		shl	eax, 4
		add	eax, [edx+5Ch]
		fld	dword ptr [eax]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [eax+10h]
		fld	dword ptr [eax+14h]
		fld	dword ptr [eax+18h]
		fstp	[ebp+var_11C]
		fld	st(4)
		fmul	st, st(5)
		fld	st(4)
		fmul	st, st(5)
		fld	st(4)
		fmul	st, st(5)
		fxch	st(2)
		faddp	st(1), st
		fadd	ds:flt_1EBD04
		faddp	st(1), st
		fstp	[ebp+var_130]
		fld	st(1)
		mov	eax, [ebp+var_130]
		fmul	st, st(2)
		movd	xmm4, eax
		movaps	xmm1, xmm4
		fld	st(1)
		fmul	st, st(2)
		rsqrtss	xmm1, xmm4
		fld	[ebp+var_11C]
		movaps	xmm2, xmm1
		fmul	st, st
		fxch	st(2)
		mulss	xmm2, xmm1
		faddp	st(1), st
		mulss	xmm2, xmm4
		movaps	xmm4, xmm0
		fadd	ds:flt_1EBD04
		subss	xmm4, xmm2
		faddp	st(1), st
		movaps	xmm2, xmm4
		mulss	xmm2, xmm3
		fstp	[ebp+var_130]
		mov	eax, [ebp+var_130]
		mulss	xmm1, xmm2
		movd	xmm4, eax
		mov	eax, [ebp+var_128]
		movss	[ebp+var_120], xmm1
		movaps	xmm1, xmm4
		rsqrtss	xmm1, xmm4
		movaps	xmm2, xmm1
		mulss	xmm2, xmm1
		mulss	xmm2, xmm4
		subss	xmm0, xmm2
		mulss	xmm0, xmm3
		mulss	xmm1, xmm0
		movss	[ebp+var_130], xmm1
		fld	[ebp+var_130]
		fxch	st(5)
		fmul	[ebp+var_120]
		fstp	dword ptr [eax+190h]
		fxch	st(3)
		fmul	[ebp+var_120]
		fstp	dword ptr [eax+194h]
		fxch	st(1)
		fmul	[ebp+var_120]
		fstp	dword ptr [eax+198h]
		fmul	st, st(2)
		fstp	dword ptr [eax+19Ch]
		fmul	st, st(1)
		fstp	dword ptr [eax+1A0h]
		fmul	[ebp+var_11C]
		fstp	dword ptr [eax+1A4h]
		mov	edx, [ebp+var_12C]
		mov	[eax+188h], edx
		mov	[esp], ebx
		call	_ZN16CCoreDispSurface23FindSurfPointStartIndexEv ; CCoreDispSurface::FindSurfPointStartIndex(void)
		mov	[esp], ebx
		call	_ZN16CCoreDispSurface19AdjustSurfPointDataEv ; CCoreDispSurface::AdjustSurfPointData(void)
		add	esp, 13Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ComputeDisplacementStaticMeshVertexFormat(IMaterial  const*, CDispGroup  const*, ddispinfo_t	const*)
_Z41ComputeDisplacementStaticMeshVertexFormatPK9IMaterialPK10CDispGroupPK11ddispinfo_t proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+50h]
		leave
		and	ah, 0FBh
		retn
_Z41ComputeDisplacementStaticMeshVertexFormatPK9IMaterialPK10CDispGroupPK11ddispinfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FillStaticBuffer(CGroupMesh *, CDispInfo *, CCoreDispInfo  const*, CDispVert	const*,	int)
_Z16FillStaticBufferP10CGroupMeshP9CDispInfoPK13CCoreDispInfoPK9CDispVerti proc	near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z16FillStaticBufferP10CGroupMeshP9CDispInfoPK13CCoreDispInfoPK9CDispVerti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_LinkToParentFaces(model_t *,	ddispinfo_t  const*, int)
_Z26DispInfo_LinkToParentFacesP7model_tPK11ddispinfo_ti	proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+151p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		test	eax, eax
		jle	short loc_E89D2
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		nop
		lea	esi, [esi+0]

loc_E8990:				; CODE XREF: DispInfo_LinkToParentFaces(model_t	*,ddispinfo_t  const*,int)+60j
		mov	[esp+4], ebx
		add	ebx, 1
		mov	eax, [edi+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		movzx	edx, word ptr [esi+24h]
		add	esi, 0B0h
		mov	ecx, dword ptr ds:host_state+4
		shl	edx, 5
		add	edx, [ecx+78h]
		mov	[edx+18h], eax
		mov	ecx, [eax]
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+14h]
		cmp	ebx, [ebp+arg_8]
		jnz	short loc_E8990

loc_E89D2:				; CODE XREF: DispInfo_LinkToParentFaces(model_t	*,ddispinfo_t  const*,int)+11j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z26DispInfo_LinkToParentFacesP7model_tPK11ddispinfo_ti	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupMeshReaders(model_t *, int)
_Z16SetupMeshReadersP7model_ti proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+5CBp

var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_CC		= dword	ptr -0CCh
var_C0		= dword	ptr -0C0h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_78		= dword	ptr -78h
var_6C		= dword	ptr -6Ch
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_28		= dword	ptr -28h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ECh
		mov	edx, [ebp+arg_4]
		test	edx, edx
		jle	loc_E8AE1
		lea	esi, [ebp+var_CC]
		xor	ebx, ebx
		mov	[ebp+var_DC], esi
		lea	esi, [esi+0]

loc_E8A08:				; CODE XREF: SetupMeshReaders(model_t *,int)+FBj
		mov	edx, [ebp+arg_0]
		mov	[esp+4], ebx
		add	ebx, 1
		mov	eax, [edx+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	edi, [ebp+var_DC]
		mov	ecx, 2Dh
		mov	edx, eax
		xor	eax, eax
		mov	esi, [ebp+var_DC]
		rep stosd
		mov	[ebp+var_1C], 1
		lea	edi, [edx+34h]
		mov	[ebp+var_CC], 40h
		mov	[ebp+var_B4], 40h
		mov	[ebp+var_B0], 40h
		mov	[ebp+var_C0], 40h
		mov	[ebp+var_94], 40h
		mov	[ebp+var_90], 40h
		mov	eax, [edx+108h]
		lea	ecx, [eax+30h]
		mov	[ebp+var_78], eax
		mov	[ebp+var_60], ecx
		lea	ecx, [eax+38h]
		mov	[ebp+var_5C], ecx
		lea	ecx, [eax+0Ch]
		mov	[ebp+var_6C], ecx
		lea	ecx, [eax+18h]
		add	eax, 24h
		mov	[ebp+var_3C], eax
		mov	eax, [edx+0F4h]
		mov	[ebp+var_40], ecx
		mov	ecx, 2Dh
		mov	[ebp+var_28], eax
		mov	eax, [edx+20h]
		mov	[ebp+var_E0], eax
		mov	eax, [edx+1DCh]
		mov	eax, [eax+30h]
		rep movsd
		mov	[edx+0ECh], eax
		cmp	ebx, [ebp+arg_4]
		mov	eax, [ebp+var_E0]
		mov	[edx+0F0h], eax
		jnz	loc_E8A08

loc_E8AE1:				; CODE XREF: SetupMeshReaders(model_t *,int)+11j
		add	esp, 0ECh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z16SetupMeshReadersP7model_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; UpdateDispBBoxes(model_t *, int)
_Z16UpdateDispBBoxesP7model_ti proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+5E0p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		test	esi, esi
		jle	short loc_E8B2C
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_E8B08:				; CODE XREF: UpdateDispBBoxes(model_t *,int)+3Aj
		mov	[esp+4], ebx
		add	ebx, 1
		mov	eax, [edi+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	[esp], eax
		call	_ZN9CDispInfo17UpdateBoundingBoxEv ; CDispInfo::UpdateBoundingBox(void)
		cmp	ebx, esi
		jnz	short loc_E8B08

loc_E8B2C:				; CODE XREF: UpdateDispBBoxes(model_t *,int)+11j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z16UpdateDispBBoxesP7model_ti endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::CDispInfo(void)
_ZN9CDispInfoC2Ev proc near		; CODE XREF: DispInfo_CreateArray(int)+7Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ebx, 28h
		lea	edi, [edx+118h]
		mov	dword ptr [edx], (offset _ZTV9CDispInfo+8)
		test	edi, 1
		mov	dword ptr [edx+4], (offset _ZTV9CDispInfo+68h)
		mov	dword ptr [edx+0E8h], 0
		mov	dword ptr [edx+0F4h], 0
		mov	dword ptr [edx+0F8h], 0
		mov	dword ptr [edx+0FCh], 0
		mov	dword ptr [edx+100h], 0
		mov	dword ptr [edx+104h], 0
		mov	dword ptr [edx+108h], 0
		mov	dword ptr [edx+10Ch], 0
		mov	dword ptr [edx+110h], 0
		mov	dword ptr [edx+114h], 0
		jnz	loc_E8D20
		test	edi, 2
		jnz	loc_E8D40

loc_E8BDC:				; CODE XREF: CDispInfo::CDispInfo(void)+1F5j
					; CDispInfo::CDispInfo(void)+20Bj
		mov	ecx, ebx
		xor	eax, eax
		shr	ecx, 2
		test	bl, 2
		rep stosd
		jz	short loc_E8BF2
		mov	word ptr [edi],	0
		add	edi, 2

loc_E8BF2:				; CODE XREF: CDispInfo::CDispInfo(void)+A8j
		and	ebx, 1
		jz	short loc_E8BFA
		mov	byte ptr [edi],	0

loc_E8BFA:				; CODE XREF: CDispInfo::CDispInfo(void)+B5j
		lea	edi, [edx+140h]
		mov	ebx, 28h
		test	edi, 1
		jnz	loc_E8D50
		test	edi, 2
		jnz	loc_E8D70

loc_E8C1D:				; CODE XREF: CDispInfo::CDispInfo(void)+225j
					; CDispInfo::CDispInfo(void)+23Bj
		mov	ecx, ebx
		xor	eax, eax
		shr	ecx, 2
		test	bl, 2
		rep stosd
		jz	short loc_E8C33
		mov	word ptr [edi],	0
		add	edi, 2

loc_E8C33:				; CODE XREF: CDispInfo::CDispInfo(void)+E9j
		and	ebx, 1
		jz	short loc_E8C3B
		mov	byte ptr [edi],	0

loc_E8C3B:				; CODE XREF: CDispInfo::CDispInfo(void)+F6j
		add	ds:g_ConstructorChecker, 1
		mov	byte ptr [edx+17Ch], 0
		xor	eax, eax
		mov	dword ptr [edx+16Ch], 0
		mov	dword ptr [edx+8], 0
		mov	dword ptr [edx+0Ch], 0
		mov	dword ptr [edx+10h], 0
		mov	dword ptr [edx+14h], 0
		mov	dword ptr [edx+18h], 0
		mov	dword ptr [edx+1Ch], 0
		mov	dword ptr [edx+168h], 0FFFFFFFFh
		mov	dword ptr [edx+1DCh], 0
		mov	dword ptr [edx+250h], 6753C21Ch
		mov	dword ptr [edx+254h], 6753C21Ch
		mov	dword ptr [edx+258h], 6753C21Ch
		mov	byte ptr [edx+25Ch], 0
		mov	dword ptr [edx+24Ch], 0
		mov	dword ptr [edx+28h], 0
		mov	word ptr [edx+264h], 0
		mov	dword ptr [edx+268h], 0
		mov	word ptr [edx+25Eh], 0FFFFh
		mov	word ptr [edx+260h], 0FFFFh

loc_E8CEE:				; CODE XREF: CDispInfo::CDispInfo(void)+1D4j
		lea	ecx, [eax+eax*2]
		lea	ecx, [edx+ecx*4+1E0h]
		mov	word ptr [ecx],	0FFFFh
		mov	word ptr [ecx+6], 0FFFFh
		lea	ecx, [eax+eax*4]
		add	eax, 1
		cmp	eax, 4
		mov	byte ptr [edx+ecx*2+218h], 0
		jnz	short loc_E8CEE
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E8D20:				; CODE XREF: CDispInfo::CDispInfo(void)+8Aj
		lea	edi, [edx+119h]
		mov	byte ptr [edx+118h], 0
		mov	bl, 27h
		test	edi, 2
		jz	loc_E8BDC
		nop
		lea	esi, [esi+0]

loc_E8D40:				; CODE XREF: CDispInfo::CDispInfo(void)+96j
		mov	word ptr [edi],	0
		sub	ebx, 2
		add	edi, 2
		jmp	loc_E8BDC
; ---------------------------------------------------------------------------

loc_E8D50:				; CODE XREF: CDispInfo::CDispInfo(void)+CBj
		lea	edi, [edx+141h]
		mov	byte ptr [edx+140h], 0
		mov	bl, 27h
		test	edi, 2
		jz	loc_E8C1D
		nop
		lea	esi, [esi+0]

loc_E8D70:				; CODE XREF: CDispInfo::CDispInfo(void)+D7j
		mov	word ptr [edi],	0
		sub	ebx, 2
		add	edi, 2
		jmp	loc_E8C1D
_ZN9CDispInfoC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::CopyCoreDispVertData(CCoreDispInfo	 const*, float)
_ZN9CDispInfo20CopyCoreDispVertDataEPK13CCoreDispInfof proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN9CDispInfo20CopyCoreDispVertDataEPK13CCoreDispInfof endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::CopyCoreDispData(model_t *, MaterialSystem_SortInfo_t  const*, CCoreDispInfo  const*, bool)
_ZN9CDispInfo16CopyCoreDispDataEP7model_tPK25MaterialSystem_SortInfo_tPK13CCoreDispInfob proc near
					; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+123p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_10]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+18h]
		movsx	edx, word ptr [eax+12h]
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+edx*8+4]
		mov	[ebx+168h], eax
		mov	eax, esi
		test	al, al
		jnz	loc_E8F12
		mov	ecx, [ebp+arg_C]
		xor	edx, edx
		mov	[ebp+var_1C], ebx
		lea	eax, [ecx+10h]
		mov	[ebp+var_20], eax

loc_E8DD1:				; CODE XREF: CDispInfo::CopyCoreDispData(model_t *,MaterialSystem_SortInfo_t  const*,CCoreDispInfo  const*,bool)+91j
		mov	ebx, [ebp+var_1C]
		mov	esi, [ebp+var_20]
		mov	edi, [ebp+var_20]
		mov	eax, [ebp+var_1C]
		lea	ecx, [ebx+edx*8+1B0h]
		lea	ebx, [esi+edx*8+60h]
		mov	esi, [ebx+8]
		mov	[ecx+0Ch], esi
		mov	ebx, [ebx+0Ch]
		mov	[ecx+10h], ebx
		lea	ecx, [edx+edx*2]
		add	edx, 1
		shl	ecx, 2
		lea	esi, [eax+ecx+180h]
		add	edi, ecx
		cmp	edx, 4
		lea	ebx, [edi+8]
		mov	edi, [edi+8]
		lea	ecx, [esi+0Ch]
		mov	[esi+0Ch], edi
		mov	esi, [ebx+4]
		mov	[ecx+4], esi
		mov	ebx, [ebx+8]
		mov	[ecx+8], ebx
		jnz	short loc_E8DD1
		mov	ebx, eax
		mov	eax, [ebp+var_20]
		xor	ecx, ecx
		xor	dl, dl

loc_E8E2C:				; CODE XREF: CDispInfo::CopyCoreDispData(model_t *,MaterialSystem_SortInfo_t  const*,CCoreDispInfo  const*,bool)+FBj
		mov	esi, [eax+edx+120h]
		mov	[ebx+edx+1E0h],	esi
		mov	esi, [eax+edx+124h]
		mov	[ebx+edx+1E4h],	esi
		mov	esi, [eax+edx+128h]
		mov	[ebx+edx+1E8h],	esi
		add	edx, 0Ch
		mov	esi, [eax+ecx+150h]
		mov	[ebx+ecx+210h],	esi
		mov	esi, [eax+ecx+154h]
		mov	[ebx+ecx+214h],	esi
		movzx	esi, word ptr [eax+ecx+158h]
		mov	[ebx+ecx+218h],	si
		add	ecx, 0Ah
		cmp	edx, 30h
		jnz	short loc_E8E2C
		mov	edx, [ebp+arg_C]
		mov	ecx, [edx+1DCh]
		mov	[ebx+140h], ecx
		mov	ecx, [edx+1E0h]
		mov	[ebx+144h], ecx
		mov	ecx, [edx+1E4h]
		mov	[ebx+148h], ecx
		mov	ecx, [edx+1E8h]
		mov	[ebx+14Ch], ecx
		mov	ecx, [edx+1ECh]
		mov	[ebx+150h], ecx
		mov	ecx, [edx+1F0h]
		mov	[ebx+154h], ecx
		mov	ecx, [edx+1F4h]
		mov	[ebx+158h], ecx
		mov	ecx, [edx+1F8h]
		mov	[ebx+15Ch], ecx
		mov	ecx, [edx+1FCh]
		add	edx, 1DCh
		mov	[ebx+160h], ecx
		mov	edx, [edx+24h]
		mov	dword ptr [ebx+20h], 0
		mov	[ebx+164h], edx

loc_E8F12:				; CODE XREF: CDispInfo::CopyCoreDispData(model_t *,MaterialSystem_SortInfo_t  const*,CCoreDispInfo  const*,bool)+2Dj
		add	esp, 2Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN9CDispInfo16CopyCoreDispDataEP7model_tPK25MaterialSystem_SortInfo_tPK13CCoreDispInfob endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::NumLightMaps(void)
_ZN9CDispInfo12NumLightMapsEv proc near	; CODE XREF: IterateLightmapSamples(CDispInfo *,ProcessLightmapSampleData_t  const&)+14Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+16Ch]
		mov	eax, [eax]
		and	eax, 8
		cmp	eax, 1
		sbb	eax, eax
		and	eax, 0FFFFFFFDh
		add	eax, 4
		retn
_ZN9CDispInfo12NumLightMapsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BuildTagData(CCoreDispInfo *,	CDispInfo *)
_Z12BuildTagDataP13CCoreDispInfoP9CDispInfo proc near
					; CODE XREF: DispInfo_CreateStaticBuffersAndTags(model_t *,int,CCoreDispInfo *,CDispVert  const*)+30j

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 3Ch
		mov	[ebp+var_1C], edi
		mov	ebx, [ebp+arg_0]
		jmp	short loc_E8F7D
; ---------------------------------------------------------------------------
		align 4

loc_E8F58:				; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+47j
		mov	eax, [ebx+1BCh]
		movzx	eax, word ptr [eax+esi*8+6]
		mov	edx, eax
		and	edx, 2
		cmp	dx, 1
		sbb	edi, 0FFFFFFFFh
		and	eax, 4
		cmp	ax, 1
		sbb	[ebp+var_1C], 0FFFFFFFFh
		add	esi, 1

loc_E8F7D:				; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+13j
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo11GetTriCountEv ; CCoreDispInfo::GetTriCount(void)
		cmp	esi, eax
		jl	short loc_E8F58
		mov	eax, edi
		mov	edi, [ebp+var_1C]
		xor	esi, esi
		lea	eax, [eax+eax*2]
		add	eax, eax
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	edx, [ebp+arg_4]
		mov	[edx+240h], eax
		lea	eax, [edi+edi*2]
		xor	edi, edi
		add	eax, eax
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_1C], 0
		mov	[ecx+248h], eax
		jmp	short loc_E8FD8
; ---------------------------------------------------------------------------
		align 10h

loc_E8FD0:				; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+BDj
		and	edx, 4
		jnz	short loc_E904E

loc_E8FD5:				; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+10Cj
					; BuildTagData(CCoreDispInfo *,CDispInfo *)+13Dj
		add	esi, 1

loc_E8FD8:				; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+85j
		mov	[esp], ebx
		call	_ZN13CCoreDispInfo11GetTriCountEv ; CCoreDispInfo::GetTriCount(void)
		cmp	esi, eax
		jge	loc_E9088
		mov	edx, [ebx+1BCh]
		lea	eax, ds:0[esi*8]
		movzx	edx, word ptr [edx+eax+6]
		test	dl, 2
		jz	short loc_E8FD0
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+240h]
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+var_1C]
		mov	[esp+4], esi
		mov	[esp], ebx
		lea	ecx, [edx+ecx*2+4]
		mov	[esp+10h], ecx
		mov	ecx, [ebp+var_1C]
		lea	ecx, [edx+ecx*2+2]
		mov	[esp+0Ch], ecx
		mov	ecx, [ebp+var_1C]
		lea	edx, [edx+ecx*2]
		mov	[esp+8], edx
		call	_ZN13CCoreDispInfo13GetTriIndicesEiRtS0_S0_ ; CCoreDispInfo::GetTriIndices(int,ushort &,ushort &,ushort	&)
		mov	edx, [ebx+1BCh]
		mov	eax, [ebp+var_20]
		add	[ebp+var_1C], 3
		movzx	edx, word ptr [edx+eax+6]
		and	edx, 4
		jz	short loc_E8FD5

loc_E904E:				; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+93j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+248h]
		mov	[esp+4], esi
		mov	[esp], ebx
		lea	edx, [eax+edi*2+4]
		mov	[esp+10h], edx
		lea	edx, [eax+edi*2+2]
		lea	eax, [eax+edi*2]
		mov	[esp+0Ch], edx
		add	edi, 3
		mov	[esp+8], eax
		call	_ZN13CCoreDispInfo13GetTriIndicesEiRtS0_S0_ ; CCoreDispInfo::GetTriIndices(int,ushort &,ushort &,ushort	&)
		jmp	loc_E8FD5
; ---------------------------------------------------------------------------
		align 8

loc_E9088:				; CODE XREF: BuildTagData(CCoreDispInfo	*,CDispInfo *)+A2j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1C]
		mov	[ecx+244h], edi
		mov	[ecx+23Ch], edx
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z12BuildTagDataP13CCoreDispInfoP9CDispInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_CreateStaticBuffersAndTags(model_t *, int, CCoreDispInfo *, CDispVert  const*)
_Z35DispInfo_CreateStaticBuffersAndTagsP7model_tiP13CCoreDispInfoPK9CDispVert proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+48Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	[ebp+arg_0], ebx
		mov	[ebp+arg_4], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_Z12BuildTagDataP13CCoreDispInfoP9CDispInfo ; BuildTagData(CCoreDispInfo *,CDispInfo *)
_Z35DispInfo_CreateStaticBuffersAndTagsP7model_tiP13CCoreDispInfoPK9CDispVert endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FindNeighborCornerVert(CCoreDispInfo *, Vector  const&)
_Z22FindNeighborCornerVertP13CCoreDispInfoRK6Vector proc near
					; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+C3p
					; BlendSubNeighbors(CCoreDispInfo **,int)+D8p ...

var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 3Ch
		mov	[ebp+var_2C], 0
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		fld	ds:flt_1EC104

loc_E910E:				; CODE XREF: FindNeighborCornerVert(CCoreDispInfo *,Vector  const&)+90j
		mov	eax, [esi]
		fstp	[ebp+var_38]
		mov	[esp], esi
		call	dword ptr [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	eax, [eax]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [esi+1B8h]
		fld	dword ptr [eax+28h]
		fsub	dword ptr [edi]
		fmul	st, st
		fld	dword ptr [eax+2Ch]
		fsub	dword ptr [edi+4]
		fmul	st, st
		fld	dword ptr [eax+30h]
		fsub	dword ptr [edi+8]
		fmul	st, st
		fxch	st(1)
		faddp	st(2), st
		faddp	st(1), st
		fsqrt
		fld	[ebp+var_38]
		fcomi	st, st(1)
		jbe	short loc_E9178
		fstp	st
		mov	[ebp+var_2C], ebx
		jmp	short loc_E917A
; ---------------------------------------------------------------------------
		align 8

loc_E9178:				; CODE XREF: FindNeighborCornerVert(CCoreDispInfo *,Vector  const&)+78j
		fstp	st(1)

loc_E917A:				; CODE XREF: FindNeighborCornerVert(CCoreDispInfo *,Vector  const&)+7Fj
		add	ebx, 1
		cmp	ebx, 4
		jnz	short loc_E910E
		fld	ds:flt_1EC10C
		mov	eax, 0FFFFFFFFh
		fcomip	st, st(1)
		fstp	st
		cmovnb	eax, [ebp+var_2C]
		mov	[ebp+var_2C], eax
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z22FindNeighborCornerVertP13CCoreDispInfoRK6Vector endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; UpdateTangentSpace(CCoreDispInfo *, int, Vector  const&, Vector  const&)
_Z18UpdateTangentSpaceP13CCoreDispInfoiRK6VectorS3_ proc near
					; CODE XREF: UpdateTangentSpace(CCoreDispInfo *,CVertIndex  const&,Vector  const&,Vector  const&)+3Fj
					; BlendSubNeighbors(CCoreDispInfo **,int)+383p	...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	ecx, [ebp+arg_C]
		mov	esi, [ebx+1B8h]
		mov	edi, [eax]
		lea	edx, [edx+edx*8]
		shl	edx, 4
		add	esi, edx
		mov	[esi+40h], edi
		mov	edi, [eax+4]
		mov	[esi+44h], edi
		mov	edi, [eax+8]
		mov	[esi+48h], edi
		fld	dword ptr [ecx+4]
		fld	dword ptr [eax+8]
		fld	dword ptr [ecx+8]
		fld	dword ptr [eax+4]
		fld	dword ptr [eax]
		mov	eax, [ebx+1B8h]
		fld	dword ptr [ecx]
		add	eax, edx
		fst	dword ptr [eax+4Ch]
		fld	st(4)
		mov	esi, [ecx+4]
		fmul	st, st(6)
		mov	[eax+50h], esi
		mov	ecx, [ecx+8]
		fld	st(3)
		fmul	st, st(5)
		mov	[eax+54h], ecx
		add	edx, [ebx+1B8h]
		fsubp	st(1), st
		fstp	dword ptr [edx+58h]
		fxch	st(3)
		fmul	st, st(1)
		fxch	st(4)
		fmul	st, st(3)
		fsubp	st(4), st
		fxch	st(3)
		fstp	dword ptr [edx+5Ch]
		fmulp	st(1), st
		fxch	st(2)
		fmulp	st(1), st
		fsubp	st(1), st
		fstp	dword ptr [edx+60h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z18UpdateTangentSpaceP13CCoreDispInfoiRK6VectorS3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; UpdateTangentSpace(CCoreDispInfo *, CVertIndex  const&, Vector  const&, Vector  const&)
_Z18UpdateTangentSpaceP13CCoreDispInfoRK10CVertIndexRK6VectorS6_ proc near
					; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+3A3p
					; BlendSubNeighbors(CCoreDispInfo **,int)+3C0p	...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	[ebp+arg_8], esi
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_C], edi
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_4], eax
		mov	esp, ebp
		pop	ebp
		jmp	_Z18UpdateTangentSpaceP13CCoreDispInfoiRK6VectorS3_ ; UpdateTangentSpace(CCoreDispInfo *,int,Vector  const&,Vector  const&)
_Z18UpdateTangentSpaceP13CCoreDispInfoRK10CVertIndexRK6VectorS6_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BlendSubNeighbors(CCoreDispInfo **, int)
_Z17BlendSubNeighborsPP13CCoreDispInfoi	proc near
					; CODE XREF: SmoothDispSurfNormals(CCoreDispInfo **,int)+39p

var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= xmmword ptr -98h
var_88		= xmmword ptr -88h
var_78		= dword	ptr -78h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ACh
		mov	ecx, [ebp+arg_4]
		test	ecx, ecx
		jle	loc_E9674
		mov	[ebp+var_58], 0
		db	66h
		nop

loc_E92B0:				; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+3DEj
		mov	edx, [ebp+var_58]
		mov	ecx, [ebp+arg_0]
		mov	edi, [ecx+edx*4]
		test	edi, edi
		jz	loc_E9664
		xor	ebx, ebx

loc_E92C3:				; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+3CEj
		mov	eax, [edi]
		mov	[esp+4], ebx
		mov	[esp], edi
		call	dword ptr [eax+4]
		test	eax, eax
		mov	esi, eax
		jz	loc_E9658
		cmp	word ptr [eax],	0FFFFh
		jz	loc_E9658
		cmp	word ptr [eax+6], 0FFFFh
		jz	loc_E9658
		lea	ecx, [ebp+var_1C]
		mov	[esp+8], ebx
		mov	[esp], ecx
		mov	[esp+4], edi
		call	_ZNK16CDispUtilsHelper15GetEdgeMidPointEi ; CDispUtilsHelper::GetEdgeMidPoint(int)
		lea	eax, [ebp+var_1C]
		sub	esp, 4
		mov	[esp+4], eax
		mov	[esp], edi
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	ecx, [edi+1B8h]
		lea	edx, [eax+eax*8]
		mov	[ebp+var_50], eax
		mov	eax, [ebp+arg_0]
		shl	edx, 4
		add	ecx, edx
		add	ecx, 28h
		mov	[ebp+var_A0], ecx
		movzx	ecx, word ptr [esi]
		movzx	esi, word ptr [esi+6]
		mov	eax, [eax+ecx*4]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4C], eax
		mov	esi, [ecx+esi*4]
		mov	[ebp+var_5C], edx
		mov	ecx, [ebp+var_A0]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	_Z22FindNeighborCornerVertP13CCoreDispInfoRK6Vector ; FindNeighborCornerVert(CCoreDispInfo *,Vector  const&)
		mov	ecx, [ebp+var_A0]
		mov	[esp], esi
		mov	[ebp+var_54], eax
		mov	[esp+4], ecx
		call	_Z22FindNeighborCornerVertP13CCoreDispInfoRK6Vector ; FindNeighborCornerVert(CCoreDispInfo *,Vector  const&)
		cmp	[ebp+var_54], 0FFFFFFFFh
		mov	[ebp+var_A4], eax
		mov	edx, [ebp+var_5C]
		jz	loc_E9658
		cmp	[ebp+var_A4], 0FFFFFFFFh
		jz	loc_E9658
		mov	ecx, [ebp+var_4C]
		mov	ecx, [ecx]
		mov	[ebp+var_5C], edx
		mov	[ebp+var_A0], ecx
		mov	ecx, [ebp+var_4C]
		mov	[esp], ecx
		mov	ecx, [ebp+var_A0]
		call	dword ptr [ecx]
		mov	ecx, eax
		mov	eax, [ebp+var_54]
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	eax, [eax]
		mov	[ebp+var_24], eax
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax]
		mov	ecx, [ebp+var_A4]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	edx, [ebp+var_5C]
		mov	eax, [eax]
		mov	[ebp+var_20], eax
		mov	eax, [edi+1B8h]
		mov	ecx, [eax+edx+40h]
		mov	[ebp+var_3C], ecx
		mov	ecx, [eax+edx+44h]
		mov	eax, [eax+edx+48h]
		mov	[ebp+var_38], ecx
		mov	ecx, [ebp+var_4C]
		mov	[ebp+var_34], eax
		lea	eax, [ebp+var_24]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	ecx, [ebp+var_4C]
		lea	eax, [eax+eax*8]
		fld	[ebp+var_3C]
		shl	eax, 4
		add	eax, [ecx+1B8h]
		fadd	dword ptr [eax+40h]
		fstp	[ebp+var_3C]
		fld	[ebp+var_38]
		fadd	dword ptr [eax+44h]
		fstp	[ebp+var_38]
		fld	[ebp+var_34]
		fadd	dword ptr [eax+48h]
		lea	eax, [ebp+var_20]
		mov	[esp], esi
		mov	[esp+4], eax
		fstp	[ebp+var_34]
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		movss	xmm4, ds:dword_1EBD40
		mov	edx, [ebp+var_5C]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [esi+1B8h]
		fld	dword ptr [eax+40h]
		fadd	[ebp+var_3C]
		fld	dword ptr [eax+44h]
		fadd	[ebp+var_38]
		fld	dword ptr [eax+48h]
		fadd	[ebp+var_34]
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fld	ds:flt_1EBD04
		fadd	st(1), st
		fxch	st(1)
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_9C]
		mov	ecx, [ebp+var_9C]
		movd	xmm1, ecx
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		movss	[ebp+var_9C], xmm0
		fld	[ebp+var_9C]
		fmul	st(4), st
		fxch	st(4)
		mov	eax, [edi+1B8h]
		mov	ecx, [eax+edx+4Ch]
		fstp	[ebp+var_3C]
		fxch	st(2)
		fmul	st, st(3)
		mov	[ebp+var_30], ecx
		mov	ecx, [eax+edx+50h]
		mov	eax, [eax+edx+54h]
		movaps	[ebp+var_88], xmm1
		mov	edx, [ebp+var_4C]
		movaps	[ebp+var_98], xmm4
		fstp	[ebp+var_38]
		fmulp	st(2), st
		fxch	st(1)
		mov	[ebp+var_2C], ecx
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_24]
		mov	[esp], edx
		mov	[esp+4], eax
		fstp	[ebp+var_34]
		fstp	[ebp+var_78]
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	ecx, [ebp+var_4C]
		lea	eax, [eax+eax*8]
		fld	[ebp+var_30]
		shl	eax, 4
		add	eax, [ecx+1B8h]
		fadd	dword ptr [eax+4Ch]
		fstp	[ebp+var_30]
		fld	[ebp+var_2C]
		fadd	dword ptr [eax+50h]
		fstp	[ebp+var_2C]
		fld	[ebp+var_28]
		fadd	dword ptr [eax+54h]
		lea	eax, [ebp+var_20]
		mov	[esp], esi
		mov	[esp+4], eax
		fstp	[ebp+var_28]
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		movaps	xmm1, [ebp+var_88]
		lea	eax, [eax+eax*8]
		movaps	xmm4, [ebp+var_98]
		shl	eax, 4
		mov	ecx, [ebp+var_50]
		add	eax, [esi+1B8h]
		fld	dword ptr [eax+4Ch]
		fadd	[ebp+var_30]
		fld	dword ptr [eax+50h]
		fadd	[ebp+var_2C]
		fld	dword ptr [eax+54h]
		lea	eax, [ebp+var_30]
		mov	[esp+4], ecx
		fadd	[ebp+var_28]
		mov	[esp+0Ch], eax
		mov	[esp], edi
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fld	st(2)
		fmul	st, st(3)
		fxch	st(2)
		faddp	st(1), st
		fld	[ebp+var_78]
		mov	[ebp+var_78], eax
		faddp	st(1), st
		faddp	st(1), st
		fstp	[ebp+var_9C]
		mov	edx, [ebp+var_9C]
		movd	xmm3, edx
		lea	edx, [ebp+var_3C]
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		mov	[esp+8], edx
		mov	[ebp+var_5C], edx
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_9C], xmm0
		fld	[ebp+var_9C]
		fmul	st(3), st
		fxch	st(3)
		fstp	[ebp+var_30]
		fxch	st(1)
		fmul	st, st(2)
		fstp	[ebp+var_2C]
		fmulp	st(1), st
		fstp	[ebp+var_28]
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoiRK6VectorS3_ ; UpdateTangentSpace(CCoreDispInfo *,int,Vector  const&,Vector  const&)
		lea	ecx, [ebp+var_24]
		mov	eax, [ebp+var_78]
		mov	edx, [ebp+var_5C]
		mov	[esp+4], ecx
		mov	ecx, [ebp+var_4C]
		mov	[esp+0Ch], eax
		mov	[esp+8], edx
		mov	[esp], ecx
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoRK10CVertIndexRK6VectorS6_ ; UpdateTangentSpace(CCoreDispInfo *,CVertIndex  const&,Vector	 const&,Vector	const&)
		mov	eax, [ebp+var_78]
		mov	[esp], esi
		mov	edx, [ebp+var_5C]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_20]
		mov	[esp+8], edx
		mov	[esp+4], eax
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoRK10CVertIndexRK6VectorS6_ ; UpdateTangentSpace(CCoreDispInfo *,CVertIndex  const&,Vector	 const&,Vector	const&)
		lea	esi, [esi+0]

loc_E9658:				; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+43j
					; BlendSubNeighbors(CCoreDispInfo **,int)+4Dj ...
		add	ebx, 1
		cmp	ebx, 4
		jnz	loc_E92C3

loc_E9664:				; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+2Bj
		add	[ebp+var_58], 1
		mov	edx, [ebp+arg_4]
		cmp	[ebp+var_58], edx
		jnz	loc_E92B0

loc_E9674:				; CODE XREF: BlendSubNeighbors(CCoreDispInfo **,int)+11j
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z17BlendSubNeighborsPP13CCoreDispInfoi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; GetAllNeighbors(CCoreDispInfo	 const*, int *)
_Z15GetAllNeighborsPK13CCoreDispInfoPi proc near
					; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+66p

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 4
		mov	edx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		add	edx, 10h
		mov	[ebp+var_10], edx

loc_E9699:				; CODE XREF: GetAllNeighbors(CCoreDispInfo  const*,int *)+50j
		mov	ebx, [ebp+var_10]
		lea	edx, [esi+esi*4]
		lea	ecx, [ebx+edx*2+150h]
		cmp	byte ptr [ecx+8], 0
		jz	short loc_E96CA
		xor	edx, edx

loc_E96AE:				; CODE XREF: GetAllNeighbors(CCoreDispInfo  const*,int *)+48j
		cmp	eax, 1FFh
		jg	short loc_E96BF
		movzx	ebx, word ptr [ecx+edx*2]
		mov	[edi+eax*4], ebx
		add	eax, 1

loc_E96BF:				; CODE XREF: GetAllNeighbors(CCoreDispInfo  const*,int *)+33j
		movzx	ebx, byte ptr [ecx+8]
		add	edx, 1
		cmp	ebx, edx
		jg	short loc_E96AE

loc_E96CA:				; CODE XREF: GetAllNeighbors(CCoreDispInfo  const*,int *)+2Aj
		add	esi, 1
		cmp	esi, 4
		jnz	short loc_E9699
		mov	ebx, [ebp+var_10]
		xor	edx, edx

loc_E96D7:				; CODE XREF: GetAllNeighbors(CCoreDispInfo  const*,int *)+9Aj
		lea	ecx, [edx+edx*2]
		lea	ecx, [ebx+ecx*4+120h]
		movzx	esi, word ptr [ecx]
		cmp	si, 0FFFFh
		jz	short loc_E96FA
		cmp	eax, 1FFh
		jg	short loc_E96FA
		movzx	esi, si
		mov	[edi+eax*4], esi
		add	eax, 1

loc_E96FA:				; CODE XREF: GetAllNeighbors(CCoreDispInfo  const*,int *)+68j
					; GetAllNeighbors(CCoreDispInfo	 const*,int *)+6Fj
		movzx	ecx, word ptr [ecx+6]
		cmp	cx, 0FFFFh
		jz	short loc_E9714
		cmp	eax, 1FFh
		jg	short loc_E9714
		movzx	ecx, cx
		mov	[edi+eax*4], ecx
		add	eax, 1

loc_E9714:				; CODE XREF: GetAllNeighbors(CCoreDispInfo  const*,int *)+82j
					; GetAllNeighbors(CCoreDispInfo	 const*,int *)+89j
		add	edx, 1
		cmp	edx, 4
		jnz	short loc_E96D7
		add	esp, 4
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z15GetAllNeighborsPK13CCoreDispInfoPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BlendEdges(CCoreDispInfo **, int)
_Z10BlendEdgesPP13CCoreDispInfoi proc near
					; CODE XREF: SmoothDispSurfNormals(CCoreDispInfo **,int)+57j

var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_C8		= dword	ptr -0C8h
var_B8		= dword	ptr -0B8h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= xmmword ptr -78h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_54		= byte ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0FCh
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		jle	loc_E9B81
		mov	[ebp+var_A8], 0

loc_E9751:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+44Bj
		mov	edx, [ebp+var_A8]
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ecx+edx*4]
		test	ebx, ebx
		jz	loc_E9B6B
		mov	[ebp+var_A0], 0

loc_E976F:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+435j
		mov	edx, [ebp+var_A0]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+4]
		test	eax, eax
		mov	[ebp+var_A4], eax
		jz	loc_E9B57
		mov	[ebp+var_94], 0

loc_E9799:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+421j
		mov	ecx, [ebp+var_94]
		mov	edx, [ebp+var_A4]
		lea	eax, [ecx+ecx*2]
		movzx	eax, word ptr [edx+eax*2]
		cmp	ax, 0FFFFh
		jz	loc_E9B43
		mov	ecx, [ebp+arg_0]
		movzx	eax, ax
		mov	eax, [ecx+eax*4]
		test	eax, eax
		mov	[ebp+var_90], eax
		jz	loc_E9B43
		mov	edx, [ebp+var_A0]
		lea	ecx, [ebp+var_54]
		mov	[esp], ecx
		mov	esi, dword ptr g_EdgeDims[edx*4]
		call	_ZN20CDispSubEdgeIteratorC2Ev ;	CDispSubEdgeIterator::CDispSubEdgeIterator(void)
		mov	ecx, [ebp+var_A0]
		lea	eax, [ebp+var_54]
		mov	edx, [ebp+var_94]
		mov	[esp], eax
		mov	dword ptr [esp+10h], 1
		mov	[esp+4], ebx
		mov	[esp+8], ecx
		mov	[esp+0Ch], edx
		call	_ZN20CDispSubEdgeIterator5StartEP16CDispUtilsHelperiib ; CDispSubEdgeIterator::Start(CDispUtilsHelper *,int,int,bool)
		lea	edx, [ebp+var_54]
		mov	[esp], edx
		call	_ZN20CDispSubEdgeIterator4NextEv ; CDispSubEdgeIterator::Next(void)
		xor	edx, edx
		test	esi, esi
		mov	eax, [ebp+var_50]
		lea	ecx, [ebp+var_20]
		setz	dl
		add	edx, edx
		add	ecx, edx
		mov	[ebp+var_98], ecx
		lea	ecx, [ebp+var_50]
		add	ecx, edx
		mov	[ebp+var_20], eax
		movsx	eax, si
		add	eax, eax
		mov	[ebp+var_9C], ecx
		lea	ecx, [ebp+var_1C]
		add	ecx, eax
		mov	[ebp+var_80], ecx
		lea	ecx, [ebp+var_50]
		add	ecx, eax
		mov	[ebp+var_88], ecx
		lea	ecx, [ebp+var_1C]
		lea	eax, [ebp+var_54]
		add	ecx, edx
		mov	[ebp+var_84], ecx
		mov	[esp], eax
		call	_ZN20CDispSubEdgeIterator4NextEv ; CDispSubEdgeIterator::Next(void)
		test	al, al
		jz	loc_E9B43
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_E9880:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+40Dj
		lea	eax, [ebp+var_54]
		mov	[esp], eax
		call	_ZNK20CDispSubEdgeIterator10IsLastVertEv ; CDispSubEdgeIterator::IsLastVert(void)
		test	al, al
		jz	loc_E9B90

loc_E9893:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+65Dj
		mov	ecx, [ebp+var_98]
		mov	edx, [ebp+var_9C]
		movsx	eax, word ptr [ecx]
		movsx	edx, word ptr [edx]
		lea	edi, [eax+1]
		cmp	edx, edi
		mov	[ebp+var_60], edx
		jle	loc_E9B2A
		fild	[ebp+var_60]
		mov	[ebp+var_5C], eax
		movss	xmm0, ds:dword_1EBD40
		fst	[ebp+var_64]
		lea	edx, [ebp+var_2C]
		fild	[ebp+var_5C]
		lea	ecx, [ebp+var_38]
		movaps	[ebp+var_78], xmm0
		fsub	st(1), st
		fxch	st(1)
		mov	[ebp+var_7C], edx
		mov	[ebp+var_68], ecx
		fdivr	ds:flt_1EBCFC
		fstp	[ebp+var_8C]
		jmp	loc_E9B05
; ---------------------------------------------------------------------------
		align 10h

loc_E98F0:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+3E0j
		fldz
		fxch	st(1)
		fcomip	st, st(2)
		fld1
		fcmovb	st, st(1)
		fstp	st(1)

loc_E98FC:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+3EEj
		lea	eax, [ebp+var_50]
		fstp	[ebp+var_C8]
		fstp	[ebp+var_B8]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		lea	edx, [ebp+var_20]
		lea	esi, [eax+eax*8]
		shl	esi, 4
		add	esi, [ebx+1B8h]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [ebx+1B8h]
		fld	dword ptr [eax+40h]
		fld	dword ptr [esi+40h]
		fsub	st, st(1)
		fld	[ebp+var_C8]
		fmul	st(1), st
		fxch	st(1)
		faddp	st(2), st
		fld	dword ptr [eax+44h]
		fld	dword ptr [esi+44h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [eax+48h]
		lea	eax, [ebp+var_50]
		fld	dword ptr [esi+48h]
		mov	[esp+4], eax
		fsub	st, st(1)
		mov	[esp], ebx
		fmulp	st(3), st
		faddp	st(2), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fld	ds:flt_1EBD04
		fadd	st(1), st
		fxch	st(1)
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_DC]
		mov	ecx, [ebp+var_DC]
		movd	xmm2, ecx
		movaps	xmm0, xmm2
		rsqrtss	xmm0, xmm2
		movaps	xmm1, xmm0
		mulss	xmm1, xmm0
		mulss	xmm1, xmm2
		movss	xmm2, ds:dword_1EBD30
		subss	xmm2, xmm1
		movaps	xmm1, xmm2
		mulss	xmm1, dword ptr	[ebp+var_78]
		mulss	xmm0, xmm1
		movss	[ebp+var_DC], xmm0
		fld	[ebp+var_DC]
		fmul	st(4), st
		fxch	st(4)
		fstp	[ebp+var_2C]
		fxch	st(1)
		fmul	st, st(3)
		fstp	[ebp+var_28]
		fxch	st(1)
		fmulp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_24]
		fstp	[ebp+var_D8]
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		lea	edx, [ebp+var_20]
		lea	esi, [eax+eax*8]
		shl	esi, 4
		add	esi, [ebx+1B8h]
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	edx, [ebp+var_88]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [ebx+1B8h]
		fld	dword ptr [eax+4Ch]
		fld	dword ptr [esi+4Ch]
		fsub	st, st(1)
		fld	[ebp+var_C8]
		fmul	st(1), st
		fxch	st(1)
		faddp	st(2), st
		fld	dword ptr [eax+50h]
		fld	dword ptr [esi+50h]
		fsub	st, st(1)
		fmul	st, st(2)
		faddp	st(1), st
		fld	dword ptr [eax+54h]
		fld	dword ptr [esi+54h]
		fsub	st, st(1)
		fmulp	st(3), st
		faddp	st(2), st
		fld	st(2)
		fmul	st, st(3)
		fld	st(1)
		fmul	st, st(2)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		fld	[ebp+var_D8]
		faddp	st(1), st
		faddp	st(1), st
		fstp	[ebp+var_DC]
		mov	ecx, [ebp+var_DC]
		movd	xmm2, ecx
		mov	ecx, [ebp+var_80]
		movaps	xmm0, xmm2
		rsqrtss	xmm0, xmm2
		movaps	xmm1, xmm0
		mulss	xmm1, xmm0
		mulss	xmm1, xmm2
		movss	xmm2, ds:dword_1EBD30
		subss	xmm2, xmm1
		movaps	xmm1, xmm2
		mulss	xmm1, dword ptr	[ebp+var_78]
		mulss	xmm0, xmm1
		movss	[ebp+var_DC], xmm0
		fld	[ebp+var_DC]
		fmul	st(3), st
		fxch	st(3)
		movzx	eax, word ptr [edx]
		mov	edx, [ebp+var_84]
		mov	[ecx], ax
		mov	ecx, [ebp+var_68]
		fstp	[ebp+var_38]
		fmul	st, st(2)
		mov	[edx], di
		mov	edx, [ebp+var_7C]
		add	edi, 1
		mov	[esp], ebx
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_1C]
		mov	[esp+4], ecx
		mov	[esp+8], edx
		fstp	[ebp+var_34]
		fmulp	st(1), st
		fstp	[ebp+var_30]
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoRK10CVertIndexRK6VectorS6_ ; UpdateTangentSpace(CCoreDispInfo *,CVertIndex  const&,Vector	 const&,Vector	const&)
		cmp	[ebp+var_60], edi
		fld	[ebp+var_B8]
		jle	short loc_E9B28

loc_E9B05:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+1B7j
		mov	[ebp+var_5C], edi
		fild	[ebp+var_5C]
		fld	[ebp+var_64]
		fcomip	st, st(2)
		jz	loc_E98F0
		fsub	st, st(1)
		fmul	[ebp+var_8C]
		jmp	loc_E98FC
; ---------------------------------------------------------------------------
		align 8

loc_E9B28:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+3D3j
		fstp	st

loc_E9B2A:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+17Dj
		mov	eax, [ebp+var_50]
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_54]
		mov	[esp], eax
		call	_ZN20CDispSubEdgeIterator4NextEv ; CDispSubEdgeIterator::Next(void)
		test	al, al
		jnz	loc_E9880

loc_E9B43:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+80j
					; BlendEdges(CCoreDispInfo **,int)+97j	...
		add	[ebp+var_94], 1
		cmp	[ebp+var_94], 2
		jnz	loc_E9799

loc_E9B57:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+59j
		add	[ebp+var_A0], 1
		cmp	[ebp+var_A0], 4
		jnz	loc_E976F

loc_E9B6B:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+2Fj
		add	[ebp+var_A8], 1
		mov	edx, [ebp+arg_4]
		cmp	[ebp+var_A8], edx
		jnz	loc_E9751

loc_E9B81:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+11j
		add	esp, 0FCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_E9B90:				; CODE XREF: BlendEdges(CCoreDispInfo **,int)+15Dj
		mov	ecx, [ebp+var_90]
		lea	edx, [ebp+var_48]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	edx, [ebp+var_90]
		lea	ecx, [ebp+var_50]
		lea	esi, [eax+eax*8]
		shl	esi, 4
		add	esi, [edx+1B8h]
		mov	[esp+4], ecx
		mov	[esp], ebx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	edx, [ebp+var_90]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		fld	dword ptr [esi+40h]
		add	eax, [ebx+1B8h]
		fadd	dword ptr [eax+40h]
		fstp	[ebp+var_38]
		fld	dword ptr [esi+44h]
		fadd	dword ptr [eax+44h]
		fstp	[ebp+var_34]
		fld	dword ptr [esi+48h]
		fadd	dword ptr [eax+48h]
		lea	eax, [ebp+var_48]
		mov	[esp], edx
		mov	[esp+4], eax
		fstp	[ebp+var_30]
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	ecx, [ebp+var_90]
		lea	esi, [eax+eax*8]
		lea	eax, [ebp+var_50]
		shl	esi, 4
		add	esi, [ecx+1B8h]
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		lea	edx, [ebp+var_2C]
		lea	eax, [eax+eax*8]
		fld	dword ptr [esi+4Ch]
		lea	ecx, [ebp+var_38]
		shl	eax, 4
		add	eax, [ebx+1B8h]
		fadd	dword ptr [eax+4Ch]
		fld	dword ptr [esi+50h]
		fadd	dword ptr [eax+50h]
		fld	dword ptr [esi+54h]
		fadd	dword ptr [eax+54h]
		fld	[ebp+var_38]
		fld	st
		fmul	st, st(1)
		fld	[ebp+var_34]
		fld	st
		fmul	st, st(1)
		fstp	[ebp+var_60]
		fld	[ebp+var_30]
		fld	st
		fmul	st, st(1)
		fstp	dword ptr [ebp+var_78]
		fxch	st(2)
		fadd	[ebp+var_60]
		fld	ds:flt_1EBD04
		fadd	st(1), st
		fxch	st(1)
		fadd	dword ptr [ebp+var_78]
		fstp	[ebp+var_DC]
		mov	eax, [ebp+var_DC]
		movd	xmm2, eax
		movaps	xmm0, xmm2
		rsqrtss	xmm0, xmm2
		movaps	xmm1, xmm0
		mulss	xmm1, xmm0
		mulss	xmm1, xmm2
		movss	xmm2, ds:dword_1EBD30
		subss	xmm2, xmm1
		movaps	xmm1, xmm2
		movss	xmm2, ds:dword_1EBD40
		mulss	xmm1, xmm2
		movaps	[ebp+var_78], xmm2
		mulss	xmm0, xmm1
		movss	[ebp+var_DC], xmm0
		fld	[ebp+var_DC]
		fmul	st(4), st
		fxch	st(4)
		fstp	[ebp+var_38]
		fxch	st(1)
		fmul	st, st(3)
		fstp	[ebp+var_34]
		fxch	st(1)
		fmulp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_30]
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fld	st(3)
		fmul	st, st(4)
		fxch	st(2)
		faddp	st(1), st
		faddp	st(2), st
		faddp	st(1), st
		fstp	[ebp+var_DC]
		mov	eax, [ebp+var_DC]
		movd	xmm2, eax
		lea	eax, [ebp+var_50]
		movaps	xmm0, xmm2
		rsqrtss	xmm0, xmm2
		movaps	xmm1, xmm0
		mulss	xmm1, xmm0
		mulss	xmm1, xmm2
		movss	xmm2, ds:dword_1EBD30
		subss	xmm2, xmm1
		movaps	xmm1, xmm2
		mulss	xmm1, dword ptr	[ebp+var_78]
		mulss	xmm0, xmm1
		movss	[ebp+var_DC], xmm0
		fld	[ebp+var_DC]
		fmul	st(3), st
		fxch	st(3)
		fstp	[ebp+var_2C]
		fxch	st(1)
		fmul	st, st(2)
		fstp	[ebp+var_28]
		fmulp	st(1), st
		fstp	[ebp+var_24]
		mov	[ebp+var_7C], edx
		mov	[esp+0Ch], edx
		mov	[ebp+var_68], ecx
		mov	[esp+8], ecx
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoRK10CVertIndexRK6VectorS6_ ; UpdateTangentSpace(CCoreDispInfo *,CVertIndex  const&,Vector	 const&,Vector	const&)
		mov	edx, [ebp+var_7C]
		lea	eax, [ebp+var_48]
		mov	ecx, [ebp+var_68]
		mov	[esp+4], eax
		mov	[esp+0Ch], edx
		mov	edx, [ebp+var_90]
		mov	[esp+8], ecx
		mov	[esp], edx
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoRK10CVertIndexRK6VectorS6_ ; UpdateTangentSpace(CCoreDispInfo *,CVertIndex  const&,Vector	 const&,Vector	const&)
		jmp	loc_E9893
_Z10BlendEdgesPP13CCoreDispInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_ReleaseMaterialSystemObjects(model_t	*)
_Z37DispInfo_ReleaseMaterialSystemObjectsP7model_t proc	near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+DEp

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, ds:materials
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+188h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	short loc_E9DC8
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8]

loc_E9DC8:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+1Ej
		mov	edi, dword ptr ds:g_DispGroups+0Ch
		mov	[ebp+var_2C], 0
		test	edi, edi
		jle	loc_EA00F
		lea	esi, [esi+0]

loc_E9DE0:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+13Bj
		mov	eax, dword ptr ds:g_DispGroups
		mov	edx, [ebp+var_2C]
		mov	ebx, [eax+edx*4]
		mov	esi, [ebx+14h]
		lea	eax, [ebx+8]
		test	esi, esi
		jle	loc_E9EBA
		xor	esi, esi
		nop
		lea	esi, [esi+0]

loc_E9E00:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+82j
		mov	ecx, [ebx+8]
		mov	eax, [ebp+var_1C]
		mov	ecx, [ecx+esi*4]
		mov	edx, [eax]
		mov	ecx, [ecx]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+0DCh]
		mov	edx, [ebx+14h]
		add	esi, 1
		cmp	edx, esi
		jg	short loc_E9E00
		lea	eax, [ebx+8]
		test	edx, edx
		jle	loc_E9EBA
		xor	edi, edi
		mov	[ebp+var_30], ebx
		lea	esi, [esi+0]

loc_E9E38:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+115j
		mov	edx, [eax]
		mov	esi, [edx+edi*4]
		test	esi, esi
		jz	short loc_E9EAF
		mov	dword ptr [esi+38h], 0
		lea	ebx, [esi+2Ch]
		mov	[ebp+var_34], eax
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI9CPrimListiE5PurgeEv ; CUtlMemory<CPrimList,int>::Purge(void)
		mov	edx, [esi+2Ch]
		mov	[esi+3Ch], edx
		mov	[esp], ebx
		lea	ebx, [esi+18h]
		call	_ZN10CUtlMemoryI9CPrimListiE5PurgeEv ; CUtlMemory<CPrimList,int>::Purge(void)
		mov	dword ptr [esi+24h], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIP9CDispInfoiE5PurgeEv ;	CUtlMemory<CDispInfo *,int>::Purge(void)
		mov	edx, [esi+18h]
		mov	[esi+28h], edx
		mov	[esp], ebx
		lea	ebx, [esi+4]
		call	_ZN10CUtlMemoryIP9CDispInfoiE5PurgeEv ;	CUtlMemory<CDispInfo *,int>::Purge(void)
		mov	dword ptr [esi+10h], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIP9CDispInfoiE5PurgeEv ;	CUtlMemory<CDispInfo *,int>::Purge(void)
		mov	edx, [esi+4]
		mov	[esi+14h], edx
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIP9CDispInfoiE5PurgeEv ;	CUtlMemory<CDispInfo *,int>::Purge(void)
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [ebp+var_34]

loc_E9EAF:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+9Fj
		add	edi, 1
		cmp	edi, [eax+0Ch]
		jl	short loc_E9E38
		mov	ebx, [ebp+var_30]

loc_E9EBA:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+53j
					; DispInfo_ReleaseMaterialSystemObjects(model_t	*)+89j
		mov	dword ptr [ebx+14h], 0
		mov	[esp], eax
		call	_ZN10CUtlMemoryIP10CGroupMeshiE5PurgeEv	; CUtlMemory<CGroupMesh	*,int>::Purge(void)
		mov	eax, [ebx+8]
		add	[ebp+var_2C], 1
		mov	[ebx+18h], eax
		mov	eax, dword ptr ds:g_DispGroups+0Ch
		cmp	eax, [ebp+var_2C]
		jg	loc_E9DE0
		xor	esi, esi
		test	eax, eax
		mov	edx, dword ptr ds:g_DispGroups
		jle	loc_EA00F
		lea	esi, [esi+0]

loc_E9EF8:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+1B6j
		mov	ebx, [edx+esi*4]
		test	ebx, ebx
		jz	short loc_E9F4D
		lea	edi, [ebx+1Ch]
		mov	dword ptr [ebx+28h], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebx+1Ch]
		mov	[ebx+2Ch], eax
		mov	[esp], edi
		lea	edi, [ebx+8]
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	dword ptr [ebx+14h], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryIP10CGroupMeshiE5PurgeEv	; CUtlMemory<CGroupMesh	*,int>::Purge(void)
		mov	eax, [ebx+8]
		mov	[ebx+18h], eax
		mov	[esp], edi
		call	_ZN10CUtlMemoryIP10CGroupMeshiE5PurgeEv	; CUtlMemory<CGroupMesh	*,int>::Purge(void)
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	edx, dword ptr ds:g_DispGroups

loc_E9F4D:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+15Dj
		add	esi, 1
		cmp	esi, dword ptr ds:g_DispGroups+0Ch
		jl	short loc_E9EF8

loc_E9F58:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+275j
		mov	dword ptr ds:g_DispGroups+0Ch, 0
		mov	ebx, dword ptr ds:g_DispGroups+8
		test	ebx, ebx
		js	short loc_E9F8E
		test	edx, edx
		jz	short loc_E9F82
		mov	[esp], edx	; ptr
		call	free
		mov	dword ptr ds:g_DispGroups, 0

loc_E9F82:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+1CEj
		mov	dword ptr ds:g_DispGroups+4, 0
		xor	edx, edx

loc_E9F8E:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+1CAj
		mov	ecx, [ebp+arg_0]
		mov	dword ptr ds:g_DispGroups+10h, edx
		test	ecx, ecx
		jz	short loc_E9FE9
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+94h]
		mov	edx, [eax+68h]
		test	edx, edx
		jle	short loc_E9FE9
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_E9FB0:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+247j
		mov	[esp+4], ebx
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		test	eax, eax
		jz	short loc_E9FD8
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+2Ch], 0

loc_E9FD8:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+221j
		mov	edx, [ebp+arg_0]
		add	ebx, 1
		mov	eax, [edx+94h]
		cmp	[eax+68h], ebx
		jg	short loc_E9FB0

loc_E9FE9:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+1F9j
					; DispInfo_ReleaseMaterialSystemObjects(model_t	*)+209j
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_EA007
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_EA007
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_EA007:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+24Ej
					; DispInfo_ReleaseMaterialSystemObjects(model_t	*)+25Dj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EA00F:				; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+37j
					; DispInfo_ReleaseMaterialSystemObjects(model_t	*)+14Bj
		mov	edx, dword ptr ds:g_DispGroups
		jmp	loc_E9F58
_Z37DispInfo_ReleaseMaterialSystemObjectsP7model_t endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-1Ch]
		mov	[esp], eax
		call	_ZN20CMatRenderContextPtrD2Ev ;	CMatRenderContextPtr::~CMatRenderContextPtr()

loc_EA027:				; CODE XREF: .text:000EA036j
					; .text:000EA040j ...
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_EA027
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		jmp	short loc_EA027
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_EA027
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		jmp	short loc_EA027
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::~CDispInfo()
_ZN9CDispInfoD2Ev proc near		; CODE XREF: CDispInfo::~CDispInfo()+Dp
					; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+24Ch]
		mov	dword ptr [ebx], (offset _ZTV9CDispInfo+8)
		mov	dword ptr [ebx+4], (offset _ZTV9CDispInfo+68h)
		test	eax, eax
		jz	short loc_EA08A
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_EA08A:				; CODE XREF: CDispInfo::~CDispInfo()+20j
		mov	eax, [ebx+240h]
		test	eax, eax
		jz	short loc_EA09C
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_EA09C:				; CODE XREF: CDispInfo::~CDispInfo()+32j
		mov	eax, [ebx+248h]
		test	eax, eax
		jz	short loc_EA0AE
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_EA0AE:				; CODE XREF: CDispInfo::~CDispInfo()+44j
		mov	eax, [ebx+108h]
		lea	esi, [ebx+0F4h]
		mov	dword ptr [ebx+110h], 0
		mov	dword ptr [ebx+10Ch], 0
		mov	dword ptr [ebx+100h], 0
		sub	ds:g_ConstructorChecker, 1
		mov	[ebx+114h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	eax, [ebx+0F4h]
		mov	[ebx+104h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryItiE5PurgeEv ; CUtlMemory<ushort,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV9IDispInfo+8)
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN9CDispInfoD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDispInfo___CDispInfo(void *)
_ZN9CDispInfoD0Ev proc near		; DATA XREF: .rodata:`vtable for'CDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN9CDispInfoD2Ev ; CDispInfo::~CDispInfo()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN9CDispInfoD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BlendCorners(CCoreDispInfo **, int)
_Z12BlendCornersPP13CCoreDispInfoi proc	near
					; CODE XREF: SmoothDispSurfNormals(CCoreDispInfo **,int)+45p

var_87C		= dword	ptr -87Ch
var_878		= dword	ptr -878h
var_874		= dword	ptr -874h
var_870		= dword	ptr -870h
var_86C		= dword	ptr -86Ch
var_868		= dword	ptr -868h
var_864		= dword	ptr -864h
var_860		= dword	ptr -860h
var_85C		= dword	ptr -85Ch
var_84C		= byte ptr -84Ch
ptr		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 88Ch
		mov	[ebp+ptr], 0
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		test	edx, edx
		jle	loc_EA5C7
		mov	[ebp+var_878], 0
		lea	edi, [ebp+var_84C]
		lea	ebx, [ebp+ptr]

loc_EA17D:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+3E4j
		mov	eax, [ebp+var_878]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+eax*4]
		mov	[esp+4], edi
		mov	[ebp+var_86C], eax
		mov	[esp], eax
		call	_Z15GetAllNeighborsPK13CCoreDispInfoPi ; GetAllNeighbors(CCoreDispInfo	const*,int *)
		mov	[ebp+var_40], 0
		cmp	eax, [ebp+var_48]
		mov	[ebp+var_860], eax
		jle	loc_EA542
		mov	eax, [ebx+8]
		test	eax, eax
		js	loc_EA542
		mov	eax, [ebp+var_860]
		mov	[ebp+var_48], eax
		mov	eax, [ebp+ptr]
		test	eax, eax
		jz	loc_EA585
		mov	edx, [ebp+var_860]
		mov	[esp], eax	; ptr
		shl	edx, 2
		mov	[esp+4], edx	; size
		call	realloc
		mov	esi, [ebp+var_40]
		mov	[ebp+ptr], eax

loc_EA1EB:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+46Bj
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_860]
		test	eax, eax
		jnz	loc_EA558

loc_EA1FC:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+422j
					; BlendCorners(CCoreDispInfo **,int)+450j
		mov	[ebp+var_870], 0

loc_EA206:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+3CEj
		mov	edx, [ebp+var_86C]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax]
		mov	ecx, [ebp+var_870]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	eax, [eax]
		mov	edx, [ebp+var_86C]
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	ecx, [ebp+var_86C]
		mov	[ebp+var_874], eax
		lea	eax, [eax+eax*8]
		shl	eax, 4
		add	eax, [ecx+1B8h]
		lea	edx, [eax+28h]
		mov	[ebp+var_868], edx
		mov	edx, [eax+40h]
		mov	[ebp+var_38], edx
		mov	edx, [eax+44h]
		mov	[ebp+var_34], edx
		mov	edx, [eax+48h]
		mov	[ebp+var_30], edx
		mov	edx, [eax+4Ch]
		mov	[ebp+var_2C], edx
		mov	edx, [eax+50h]
		mov	eax, [eax+54h]
		mov	[ebp+var_28], edx
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_860]
		test	eax, eax
		jle	loc_EA37F
		xor	esi, esi
		jmp	short loc_EA2B8
; ---------------------------------------------------------------------------
		align 10h

loc_EA2A0:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+1B8j
		mov	eax, [ebx]
		mov	dword ptr [eax+esi*4], 0FFFFFFFFh
		add	esi, 1
		cmp	esi, [ebp+var_860]
		jz	loc_EA37F

loc_EA2B8:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+164j
					; BlendCorners(CCoreDispInfo **,int)+249j
		mov	eax, [edi+esi*4]
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+eax*4]
		mov	[ebp+var_85C], eax
		mov	eax, [ebp+var_868]
		mov	edx, [ebp+var_85C]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z22FindNeighborCornerVertP13CCoreDispInfoRK6Vector ; FindNeighborCornerVert(CCoreDispInfo *,Vector  const&)
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_864], eax
		jz	short loc_EA2A0
		mov	ecx, [ebp+var_85C]
		mov	eax, [ecx]
		mov	[esp], ecx
		call	dword ptr [eax]
		mov	edx, [ebp+var_864]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_ZNK10CPowerInfo19GetCornerPointIndexEi	; CPowerInfo::GetCornerPointIndex(int)
		mov	eax, [eax]
		lea	ecx, [ebp+var_1C]
		mov	[esp+4], ecx
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_85C]
		mov	[esp], eax
		call	_ZNK16CDispUtilsHelper14VertIndexToIntERK10CVertIndex ;	CDispUtilsHelper::VertIndexToInt(CVertIndex  const&)
		mov	edx, [ebx]
		mov	[edx+esi*4], eax
		mov	edx, [ebp+var_85C]
		lea	eax, [eax+eax*8]
		shl	eax, 4
		fld	[ebp+var_38]
		add	esi, 1
		add	eax, [edx+1B8h]
		cmp	esi, [ebp+var_860]
		fadd	dword ptr [eax+40h]
		fstp	[ebp+var_38]
		fld	[ebp+var_34]
		fadd	dword ptr [eax+44h]
		fstp	[ebp+var_34]
		fld	[ebp+var_30]
		fadd	dword ptr [eax+48h]
		fstp	[ebp+var_30]
		fld	[ebp+var_2C]
		fadd	dword ptr [eax+4Ch]
		fstp	[ebp+var_2C]
		fld	[ebp+var_28]
		fadd	dword ptr [eax+50h]
		fstp	[ebp+var_28]
		fld	[ebp+var_24]
		fadd	dword ptr [eax+54h]
		fstp	[ebp+var_24]
		jnz	loc_EA2B8

loc_EA37F:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+15Cj
					; BlendCorners(CCoreDispInfo **,int)+182j
		fld	[ebp+var_38]
		lea	edx, [ebp+var_2C]
		movss	xmm4, ds:dword_1EBD40
		fld	st
		mov	[esp+0Ch], edx
		mov	edx, [ebp+var_86C]
		fmul	st, st(1)
		mov	[esp], edx
		fld	[ebp+var_34]
		fld	st
		fmul	st, st(1)
		fld	[ebp+var_30]
		fld	st
		fmul	st, st(1)
		fxch	st(4)
		faddp	st(2), st
		fld	ds:flt_1EBD04
		fadd	st(2), st
		fxch	st(2)
		faddp	st(4), st
		fxch	st(3)
		fstp	[ebp+var_87C]
		mov	ecx, [ebp+var_87C]
		movd	xmm1, ecx
		lea	ecx, [ebp+var_38]
		movaps	xmm0, xmm1
		rsqrtss	xmm0, xmm1
		mov	[esp+8], ecx
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm1
		movss	xmm1, ds:dword_1EBD30
		movaps	xmm3, xmm1
		subss	xmm3, xmm2
		movaps	xmm2, xmm3
		mulss	xmm2, xmm4
		mulss	xmm0, xmm2
		movss	[ebp+var_87C], xmm0
		fld	[ebp+var_87C]
		fmul	st(4), st
		fxch	st(4)
		fstp	[ebp+var_38]
		fxch	st(1)
		fmul	st, st(3)
		fstp	[ebp+var_34]
		fxch	st(1)
		fmulp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_30]
		fld	[ebp+var_2C]
		fld	st
		fmul	st, st(1)
		fld	[ebp+var_28]
		fld	st
		fmul	st, st(1)
		fld	[ebp+var_24]
		fld	st
		fmul	st, st(1)
		fxch	st(4)
		faddp	st(2), st
		fxch	st(1)
		faddp	st(5), st
		fxch	st(4)
		faddp	st(2), st
		fxch	st(1)
		fstp	[ebp+var_87C]
		mov	eax, [ebp+var_87C]
		movd	xmm3, eax
		mov	eax, [ebp+var_874]
		movaps	xmm0, xmm3
		rsqrtss	xmm0, xmm3
		mov	[esp+4], eax
		movaps	xmm2, xmm0
		mulss	xmm2, xmm0
		mulss	xmm2, xmm3
		subss	xmm1, xmm2
		mulss	xmm1, xmm4
		mulss	xmm0, xmm1
		movss	[ebp+var_87C], xmm0
		fld	[ebp+var_87C]
		fmul	st(2), st
		fxch	st(2)
		fstp	[ebp+var_2C]
		fmul	st, st(1)
		fstp	[ebp+var_28]
		fmulp	st(1), st
		fstp	[ebp+var_24]
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoiRK6VectorS3_ ; UpdateTangentSpace(CCoreDispInfo *,int,Vector  const&,Vector  const&)
		mov	eax, [ebp+var_860]
		test	eax, eax
		jle	short loc_EA4F0
		xor	esi, esi
		lea	esi, [esi+0]

loc_EA4B8:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+3BEj
		mov	eax, [ebx]
		mov	edx, [edi+esi*4]
		mov	eax, [eax+esi*4]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_EA4E5
		lea	ecx, [ebp+var_2C]
		mov	[esp+4], eax
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_38]
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+edx*4]
		mov	[esp], eax
		call	_Z18UpdateTangentSpaceP13CCoreDispInfoiRK6VectorS3_ ; UpdateTangentSpace(CCoreDispInfo *,int,Vector  const&,Vector  const&)

loc_EA4E5:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+393j
		add	esi, 1
		cmp	esi, [ebp+var_860]
		jnz	short loc_EA4B8

loc_EA4F0:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+37Dj
		add	[ebp+var_870], 1
		cmp	[ebp+var_870], 4
		jnz	loc_EA206
		add	[ebp+var_878], 1
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_878], eax
		jnz	loc_EA17D

loc_EA51A:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+49Aj
		mov	[esp], ebx
		mov	[ebp+var_40], 0
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp+ptr]
		mov	[esp], ebx
		mov	[ebp+var_3C], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		add	esp, 88Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EA542:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+7Bj
					; BlendCorners(CCoreDispInfo **,int)+86j
		mov	eax, [ebp+ptr]
		xor	esi, esi
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_860]
		test	eax, eax
		jz	loc_EA1FC

loc_EA558:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+C6j
		mov	eax, [ebp+var_860]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE10GrowVectorEi ; CUtlVector<int,CUtlMemory<int,int>>::GrowVector(int)
		mov	eax, [ebp+var_860]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE18ShiftElementsRightEii ; CUtlVector<int,CUtlMemory<int,int>>::ShiftElementsRight(int,int)
		jmp	loc_EA1FC
; ---------------------------------------------------------------------------

loc_EA585:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+9Aj
		mov	eax, [ebp+var_860]
		xor	esi, esi
		shl	eax, 2
		mov	[esp], eax	; size
		call	malloc
		mov	[ebp+ptr], eax
		jmp	loc_EA1EB
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[ebp+var_40], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp+ptr]
		mov	[esp], ebx
		mov	[ebp+var_3C], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------

loc_EA5C7:				; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+34j
		lea	ebx, [ebp+ptr]
		jmp	loc_EA51A
_Z12BlendCornersPP13CCoreDispInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SmoothDispSurfNormals(CCoreDispInfo **, int)
_Z21SmoothDispSurfNormalsPP13CCoreDispInfoi proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+450p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		test	esi, esi
		jle	short loc_EA602
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_EA5E8:				; CODE XREF: SmoothDispSurfNormals(CCoreDispInfo **,int)+30j
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	eax, [edi+ebx*4]
		add	ebx, 1
		mov	[esp], eax
		call	_ZN13CCoreDispInfo22SetDispUtilsHelperInfoEPPS_i ; CCoreDispInfo::SetDispUtilsHelperInfo(CCoreDispInfo**,int)
		cmp	ebx, esi
		jnz	short loc_EA5E8

loc_EA602:				; CODE XREF: SmoothDispSurfNormals(CCoreDispInfo **,int)+11j
		mov	[esp+4], esi
		mov	[esp], edi
		call	_Z17BlendSubNeighborsPP13CCoreDispInfoi	; BlendSubNeighbors(CCoreDispInfo **,int)
		mov	[esp+4], esi
		mov	[esp], edi
		call	_Z12BlendCornersPP13CCoreDispInfoi ; BlendCorners(CCoreDispInfo	**,int)
		mov	[ebp+arg_4], esi
		mov	[ebp+arg_0], edi
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z10BlendEdgesPP13CCoreDispInfoi ; BlendEdges(CCoreDispInfo **,int)
_Z21SmoothDispSurfNormalsPP13CCoreDispInfoi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_CreateMaterialGroups(model_t	*, MaterialSystem_SortInfo_t  const*)
_Z29DispInfo_CreateMaterialGroupsP7model_tPK25MaterialSystem_SortInfo_t	proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+166p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+94h]
		mov	ecx, [eax+68h]
		test	ecx, ecx
		jle	loc_EA724
		xor	esi, esi
		nop

loc_EA650:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+EEj
		mov	[esp+4], esi
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	ecx, [ebp+arg_4]
		mov	eax, [eax+16Ch]
		movsx	edx, word ptr [eax+12h]
		mov	ebx, [ecx+edx*8+4]
		movzx	edx, byte ptr [eax+16h]
		movzx	eax, byte ptr [eax+17h]
		shr	dl, 1
		movzx	edx, dl
		shl	eax, 7
		or	eax, edx
		mov	edx, dword ptr ds:host_state+4
		lea	eax, [eax+eax*4]
		shl	eax, 4
		add	eax, [edx+5Ch]
		mov	edx, dword ptr ds:g_DispGroups+0Ch
		mov	eax, [eax+4Ch]
		test	edx, edx
		mov	[ebp+var_2C], eax
		jle	loc_EA733
		mov	ecx, dword ptr ds:g_DispGroups
		xor	eax, eax
		mov	[ebp+var_34], esi
		jmp	short loc_EA6BF
; ---------------------------------------------------------------------------
		align 8

loc_EA6B8:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+94j
					; DispInfo_CreateMaterialGroups(model_t	*,MaterialSystem_SortInfo_t  const*)+9Cj
		add	eax, 1
		cmp	eax, edx
		jz	short loc_EA730

loc_EA6BF:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+80j
		mov	edi, [ecx+eax*4]
		cmp	ebx, [edi]
		jnz	short loc_EA6B8
		mov	esi, [ebp+var_2C]
		cmp	esi, [edi+4]
		jnz	short loc_EA6B8
		mov	esi, [ebp+var_34]

loc_EA6D1:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+189j
		lea	eax, [edi+1Ch]
		mov	ebx, [edi+28h]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		mov	[ebp+var_30], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE10GrowVectorEi ; CUtlVector<int,CUtlMemory<int,int>>::GrowVector(int)
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+8], 1
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE18ShiftElementsRightEii ; CUtlVector<int,CUtlMemory<int,int>>::ShiftElementsRight(int,int)
		lea	eax, ds:0[ebx*4]
		add	eax, [edi+1Ch]
		jz	short loc_EA70F
		mov	[eax], esi

loc_EA70F:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+DBj
		mov	edx, [ebp+arg_0]
		add	esi, 1
		mov	eax, [edx+94h]
		cmp	[eax+68h], esi
		jg	loc_EA650

loc_EA724:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+17j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EA730:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+8Dj
		mov	esi, [ebp+var_34]

loc_EA733:				; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+6Fj
		mov	dword ptr [esp], 34h
		call	_Znwj		; operator new(uint)
		mov	edx, [ebp+var_2C]
		lea	ecx, [ebp+var_1C]
		mov	[ebp+var_1C], eax
		mov	[eax], ebx
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	eax, [ebp+var_1C]
		mov	[eax+4], edx
		mov	dword ptr [eax+30h], 0
		mov	eax, dword ptr ds:g_DispGroups+0Ch
		mov	[esp+8], ecx
		mov	dword ptr [esp], offset	g_DispGroups
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP10CDispGroup10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ;	CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::InsertBefore(int,CDispGroup * const&)
		mov	edi, [ebp+var_1C]
		jmp	loc_EA6D1
_Z29DispInfo_CreateMaterialGroupsP7model_tPK25MaterialSystem_SortInfo_t	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; AddEmptyMesh(model_t *, CDispGroup *,	ddispinfo_t  const*, int *, int, int, int)
_Z12AddEmptyMeshP7model_tP10CDispGroupPK11ddispinfo_tPiiii proc	near
					; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+E1p
					; DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+153p

var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_225		= byte ptr -225h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_210		= byte ptr -210h
var_174		= dword	ptr -174h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_160		= byte ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_154		= byte ptr -154h
var_150		= dword	ptr -150h
var_144		= byte ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= byte ptr -120h
var_11C		= dword	ptr -11Ch
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B0		= byte ptr -0B0h
var_90		= byte ptr -90h
var_78		= dword	ptr -78h
var_74		= byte ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 24Ch
		mov	eax, ds:materials
		mov	edi, [ebp+arg_4]
		mov	ebx, [ebp+arg_14]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+188h]
		test	eax, eax
		mov	[ebp+var_28], eax
		jz	short loc_EA7F1
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+8]

loc_EA7F1:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+27j
		mov	dword ptr [esp], 48h
		call	_Znwj		; operator new(uint)
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [eax+28h], 0
		mov	dword ptr [eax+2Ch], 0
		mov	dword ptr [eax+30h], 0
		mov	dword ptr [eax+34h], 0
		mov	dword ptr [eax+38h], 0
		mov	dword ptr [eax+3Ch], 0
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_24]
		mov	[esp+8], eax
		mov	eax, [edi+14h]
		mov	[esp+4], eax
		lea	eax, [edi+8]
		mov	[esp], eax
		call	_ZN10CUtlVectorIP10CGroupMesh10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ;	CUtlVector<CGroupMesh *,CUtlMemory<CGroupMesh *,int>>::InsertBefore(int,CGroupMesh * const&)
		mov	eax, [edi+4]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+50h]
		mov	ecx, eax
		mov	eax, [ebp+var_24]
		mov	esi, edx
		and	ch, 0FBh
		mov	[ebp+var_220], eax
		mov	eax, [ebp+var_28]
		mov	edx, [eax]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aDisplacementVe ; "Displacement Verts"
		mov	[esp+4], ecx
		mov	[esp+8], esi
		mov	[esp], eax
		call	dword ptr [edx+0D8h]
		mov	edx, [ebp+var_220]
		lea	ecx, [ebp+var_210]
		mov	[ebp+var_224], ecx
		mov	[edx], eax
		mov	eax, [ebp+var_24]
		mov	[eax+44h], edi
		mov	dword ptr [eax+40h], 0
		mov	[ebp+var_15C], 0
		mov	[ebp+var_154], 0
		mov	[ebp+var_140], 0
		mov	[ebp+var_13C], 0
		mov	[ebp+var_138], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_12C], 0
		mov	[ebp+var_128], 0FFFFFFFFh
		mov	[ebp+var_124], 0
		mov	[ebp+var_78], 0
		mov	[ebp+var_34], 0FFFFFFFFh
		mov	[ebp+var_30], 0
		mov	[ebp+var_6C], 0
		mov	[ebp+var_68], 0
		mov	[ebp+var_70], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_D0], 0FFFFFFFFh
		mov	esi, [eax]
		mov	[ebp+var_158], 2
		mov	[ebp+var_15C], esi
		mov	eax, [esi]
		mov	dword ptr [esp+4], 2
		mov	[esp], esi
		call	dword ptr [eax+30h]
		mov	eax, [ebp+var_15C]
		lea	ecx, [ebp+var_210]
		mov	[ebp+var_224], ecx
		mov	edx, [eax]
		mov	[esp+0Ch], ecx
		mov	ecx, [ebp+arg_18]
		mov	[esp+4], ebx
		mov	[esp], eax
		mov	[esp+8], ecx
		call	dword ptr [edx+4Ch]
		lea	eax, [esi+4]
		mov	edx, [ebp+var_174]
		mov	[ebp+var_78], esi
		mov	esi, [ebp+var_224]
		mov	ecx, 29h
		mov	[ebp+var_70], ebx
		mov	[ebp+var_140], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_138], 0
		mov	[ebp+var_230], edx
		mov	[ebp+var_134], edx
		movzx	edx, [ebp+var_160]
		mov	[ebp+var_13C], eax
		mov	eax, [ebp+var_16C]
		mov	[ebp+var_120], 0
		mov	[ebp+var_130], 0
		mov	[ebp+var_225], dl
		mov	[ebp+var_234], eax
		mov	[ebp+var_150], eax
		lea	eax, [ebp+var_11C]
		mov	[ebp+var_144], dl
		mov	edi, eax
		mov	edx, [ebp+var_D0]
		rep movsd
		mov	[ebp+var_6C], 0
		mov	[ebp+var_74], 0
		cmp	[ebp+var_CC], 1
		sbb	eax, eax
		not	eax
		and	eax, 2
		cmp	edx, 0FFFFFFFFh
		cmovz	edx, [ebp+var_D0]
		mov	[ebp+var_CC], eax
		cmp	[ebp+var_34], 0FFFFFFFFh
		mov	[ebp+var_D0], edx
		jz	loc_EAE18

loc_EAA7F:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+671j
		mov	esi, [ebp+var_C8]
		mov	[ebp+var_68], 0
		lea	eax, [ebp+var_B0]
		mov	edi, [ebp+var_BC]
		lea	ecx, [ebp+var_90]
		mov	[ebp+var_64], esi
		mov	[ebp+var_60], edi
		lea	esi, [esi+0]

loc_EAAA8:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+2F2j
		mov	edx, [eax]
		mov	[eax+54h], edx
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_EAAA8
		movzx	ecx, [ebp+var_225]
		mov	edx, [ebp+var_B8]
		mov	[ebp+var_22C], ecx
		mov	ecx, [ebp+arg_18]
		imul	ecx, [ebp+var_22C]
		test	ecx, ecx
		mov	[ebp+var_130], ecx
		jle	short loc_EAAE1
		mov	[ebp+var_138], ecx

loc_EAAE1:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+319j
		test	ebx, ebx
		mov	[ebp+var_68], ebx
		mov	[ebp+var_220], 0
		jle	short loc_EAAFB
		mov	[ebp+var_6C], ebx
		mov	[ebp+var_220], ebx

loc_EAAFB:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+330j
		mov	eax, [ebp+var_11C]
		imul	eax, ebx
		add	eax, esi
		mov	[ebp+var_64], eax
		mov	eax, [ebp+var_110]
		imul	eax, ebx
		add	eax, edi
		mov	[ebp+var_60], eax
		mov	eax, [ebp+var_104]
		imul	eax, ebx
		add	[ebp+var_5C], eax
		mov	eax, [ebp+var_100]
		imul	eax, ebx
		add	[ebp+var_58], eax
		mov	eax, [ebp+var_FC]
		imul	eax, ebx
		add	[ebp+var_54], eax
		mov	eax, [ebp+var_F8]
		imul	eax, ebx
		add	[ebp+var_50], eax
		mov	eax, [ebp+var_F4]
		imul	eax, ebx
		add	[ebp+var_4C], eax
		mov	eax, [ebp+var_F0]
		imul	eax, ebx
		add	[ebp+var_48], eax
		mov	eax, [ebp+var_EC]
		imul	eax, ebx
		add	[ebp+var_44], eax
		mov	eax, [ebp+var_E8]
		imul	eax, ebx
		imul	ebx, [ebp+var_10C]
		add	[ebp+var_40], eax
		add	ebx, edx
		cmp	[ebp+var_154], 0
		mov	[ebp+var_3C], ebx
		jz	short loc_EABB8
		mov	ebx, [ebp+var_158]
		mov	eax, [ebp+var_220]
		lea	edx, [ebx-4]
		cmp	edx, 4		; switch 5 cases
		jbe	loc_EADE8
		cmp	[ebp+var_225], 0 ; jumptable 000EADE8 default case
		jnz	loc_EAD60
		lea	esi, [esi+0]

loc_EABB8:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+3CAj
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+5AEj ...
		mov	ecx, [ebp+var_138]

loc_EABBE:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+611j
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+61Fj
		mov	eax, [ebp+var_15C]
		mov	ebx, [ebp+var_224]
		mov	edx, [eax]
		mov	[esp+8], ecx
		mov	ecx, [ebp+var_220]
		mov	[esp+0Ch], ebx
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+58h]
		mov	eax, [ebp+var_24]
		mov	[ebp+var_140], 0
		mov	ebx, [ebp+arg_10]
		mov	[ebp+var_70], 0
		mov	[ebp+var_13C], 0
		mov	[ebp+var_78], 0
		mov	[ebp+var_D0], 0FFFFFFFFh
		add	eax, 4
		mov	[esp], eax
		mov	[ebp+var_15C], 0
		mov	[esp+4], ebx
		call	_ZN10CUtlVectorIP9CDispInfo10CUtlMemoryIS1_iEE8SetCountEi ; CUtlVector<CDispInfo *,CUtlMemory<CDispInfo	*,int>>::SetCount(int)
		mov	eax, [ebp+var_24]
		mov	[esp+4], ebx
		add	eax, 2Ch
		mov	[esp], eax
		call	_ZN10CUtlVectorI9CPrimList10CUtlMemoryIS0_iEE8SetCountEi ; CUtlVector<CPrimList,CUtlMemory<CPrimList,int>>::SetCount(int)
		mov	eax, [ebp+var_24]
		mov	[esp+4], ebx
		add	eax, 18h
		mov	[esp], eax
		call	_ZN10CUtlVectorIP9CDispInfo10CUtlMemoryIS1_iEE8SetCountEi ; CUtlVector<CDispInfo *,CUtlMemory<CDispInfo	*,int>>::SetCount(int)
		test	ebx, ebx
		jle	loc_EACFD
		mov	[ebp+var_21C], 0
		xor	esi, esi
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_EAC70:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+537j
		mov	edx, [ebp+arg_C]
		lea	eax, ds:0[esi*4]
		mov	[ebp+var_220], eax
		mov	ecx, [ebp+arg_0]
		mov	eax, [edx+esi*4]
		mov	[esp+4], eax
		mov	eax, [ecx+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	edx, [ebp+arg_C]
		mov	edi, eax
		mov	ecx, [ebp+var_21C]
		imul	eax, [edx+esi*4], 0B0h
		mov	[edi+2Ch], ebx
		mov	edx, [ebp+var_24]
		mov	[edi+24h], ecx
		lea	ecx, [ebp+var_20]
		mov	[edi+28h], edx
		lea	edx, [ebp+var_1C]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+4], ecx
		mov	eax, [edx+eax+14h]
		mov	[esp], eax
		call	_Z25CalcMaxNumVertsAndIndicesiPiS_ ; CalcMaxNumVertsAndIndices(int,int *,int *)
		mov	ecx, [ebp+var_1C]
		add	esi, 1
		mov	eax, [ebp+var_24]
		add	ebx, [ebp+var_20]
		mov	edx, [ebp+var_220]
		add	[ebp+var_21C], ecx
		mov	eax, [eax+4]
		cmp	esi, [ebp+arg_10]
		mov	[eax+edx], edi
		jnz	loc_EAC70

loc_EACFD:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+495j
		mov	eax, [ebp+var_78]
		test	eax, eax
		jz	short loc_EAD14
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	loc_EAE08

loc_EAD14:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+542j
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+653j
		mov	eax, [ebp+var_140]
		test	eax, eax
		jz	short loc_EAD2E
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jnz	loc_EADF0

loc_EAD2E:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+55Cj
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+63Ej
		mov	eax, [ebp+var_28]
		test	eax, eax
		jz	short loc_EAD4C
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	eax, [ebp+var_28]
		test	eax, eax
		jz	short loc_EAD4C
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_EAD4C:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+573j
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+582j
		add	esp, 24Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EAD60:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+3EBj
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+68Bj ...
		mov	edx, [ebp+arg_18]
		sub	edx, ecx
		cmp	eax, edx
		mov	esi, edx
		cmovle	esi, eax
		test	esi, esi
		jz	loc_EABB8
		mov	edx, [ebp+var_234]
		cmp	ebx, 8		; switch 9 cases
		lea	eax, [edx+ecx*2]
		jbe	loc_EAEBC

loc_EAD86:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EAEBCj
					; DATA XREF: .rodata:off_1F61ACo
		mov	ebx, [ebp+var_230] ; jumptable 000EAEBC	default	case
		mov	[esp+4], esi
		mov	[esp], eax
		mov	[esp+8], ebx
		call	_Z29GenerateSequentialIndexBufferPtii ;	GenerateSequentialIndexBuffer(ushort *,int,int)

loc_EAD9C:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+719j
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+734j ...
		movzx	eax, [ebp+var_144]
		mov	edx, [ebp+var_6C]
		mov	ecx, [ebp+var_130]
		mov	[ebp+var_22C], eax
		mov	[ebp+var_220], edx

loc_EADB8:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EAEBCj
					; DATA XREF: .rodata:off_1F61ACo
		mov	eax, [ebp+var_22C] ; jumptable 000EAEBC	cases 0,8
		imul	eax, esi
		add	eax, ecx
		mov	ecx, [ebp+var_138]
		mov	[ebp+var_130], eax
		cmp	eax, ecx
		jle	loc_EABBE
		mov	[ebp+var_138], eax
		mov	ecx, eax
		jmp	loc_EABBE
; ---------------------------------------------------------------------------
		align 8

loc_EADE8:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+3DEj
		jmp	ds:off_1F6198[edx*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_EADF0:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+568j
		mov	eax, [ebp+var_140]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	loc_EAD2E
; ---------------------------------------------------------------------------
		align 8

loc_EAE08:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+54Ej
		mov	eax, [ebp+var_78]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]
		jmp	loc_EAD14
; ---------------------------------------------------------------------------

loc_EAE18:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+2B9j
		mov	eax, [ebp+var_170]
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_230]
		mov	[ebp+var_30], eax
		jmp	loc_EAA7F
; ---------------------------------------------------------------------------

loc_EAE36:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EADE8j
					; DATA XREF: .rodata:off_1F6198o
		mov	edx, [ebp+var_220] ; jumptable 000EADE8	case 3
		lea	eax, [edx+edx*2]
		add	eax, eax
		sar	eax, 2
		cmp	[ebp+var_225], 0
		jnz	loc_EAD60
		jmp	loc_EABB8
; ---------------------------------------------------------------------------

loc_EAE56:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EADE8j
					; DATA XREF: .rodata:off_1F6198o
		mov	edx, [ebp+var_220] ; jumptable 000EADE8	case 2
		cmp	[ebp+var_225], 0
		lea	eax, [edx+edx*2-6]
		jnz	loc_EAD60
		jmp	loc_EABB8
; ---------------------------------------------------------------------------

loc_EAE72:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EADE8j
					; DATA XREF: .rodata:off_1F6198o
		mov	eax, [ebp+var_220] ; jumptable 000EADE8	case 1
		add	eax, eax
		cmp	[ebp+var_225], 0
		jnz	loc_EAD60
		jmp	loc_EABB8
; ---------------------------------------------------------------------------

loc_EAE8C:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EADE8j
					; DATA XREF: .rodata:off_1F6198o
		mov	edx, [ebp+var_220] ; jumptable 000EADE8	case 0
		cmp	[ebp+var_225], 0
		lea	eax, [edx+edx-2]
		jnz	loc_EAD60
		jmp	loc_EABB8
; ---------------------------------------------------------------------------

loc_EAEA8:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EADE8j
					; DATA XREF: .rodata:off_1F6198o
		xor	eax, eax	; jumptable 000EADE8 case 4
		cmp	[ebp+var_225], 0
		jnz	loc_EAD60
		jmp	loc_EABB8
; ---------------------------------------------------------------------------

loc_EAEBC:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+5C0j
		jmp	ds:off_1F61AC[ebx*4] ; switch jump

loc_EAEC3:				; DATA XREF: .rodata:off_1F61ACo
		mov	ebx, [ebp+var_230] ; jumptable 000EAEBC	case 7
		mov	[esp+4], esi
		mov	[esp], eax
		mov	[esp+8], ebx
		call	_Z23GenerateQuadIndexBufferPtii	; GenerateQuadIndexBuffer(ushort *,int,int)
		jmp	loc_EAD9C
; ---------------------------------------------------------------------------

loc_EAEDE:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EAEBCj
					; DATA XREF: .rodata:off_1F61ACo
		mov	ebx, [ebp+var_230] ; jumptable 000EAEBC	case 6
		mov	[esp+4], esi
		mov	[esp], eax
		mov	[esp+8], ebx
		call	_Z26GeneratePolygonIndexBufferPtii ; GeneratePolygonIndexBuffer(ushort *,int,int)
		jmp	loc_EAD9C
; ---------------------------------------------------------------------------

loc_EAEF9:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EAEBCj
					; DATA XREF: .rodata:off_1F61ACo
		mov	ebx, [ebp+var_230] ; jumptable 000EAEBC	case 5
		mov	[esp+4], esi
		mov	[esp], eax
		mov	[esp+8], ebx
		call	_Z27GenerateLineLoopIndexBufferPtii ; GenerateLineLoopIndexBuffer(ushort *,int,int)
		jmp	loc_EAD9C
; ---------------------------------------------------------------------------

loc_EAF14:				; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int):loc_EAEBCj
					; DATA XREF: .rodata:off_1F61ACo
		mov	ebx, [ebp+var_230] ; jumptable 000EAEBC	case 4
		mov	[esp+4], esi
		mov	[esp], eax
		mov	[esp+8], ebx
		call	_Z28GenerateLineStripIndexBufferPtii ; GenerateLineStripIndexBuffer(ushort *,int,int)
		jmp	loc_EAD9C
_Z12AddEmptyMeshP7model_tP10CDispGroupPK11ddispinfo_tPiiii endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-28h]
		test	eax, eax
		jz	short loc_EAF40
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_EAF40:				; CODE XREF: .text:000EAF36j
					; .text:000EAF7Fj ...
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-140h]
		test	eax, eax
		jz	short loc_EAF74
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+10h]
		test	al, al
		jz	short loc_EAF74
		mov	edx, [ebp-224h]
		mov	eax, [edx+0D0h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+18h]

loc_EAF74:				; CODE XREF: .text:000EAF52j
					; .text:000EAF5Ej ...
		lea	eax, [ebp-28h]
		mov	[esp], eax
		call	_ZN20CMatRenderContextPtrD2Ev ;	CMatRenderContextPtr::~CMatRenderContextPtr()
		jmp	short loc_EAF40
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_EAF74
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-28h]
		test	eax, eax
		jz	short loc_EAF40
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]
		jmp	short loc_EAF40
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-224h]
		mov	ebx, eax
		mov	[esp], ecx
		call	_ZN12CMeshBuilderD2Ev ;	CMeshBuilder::~CMeshBuilder()
		jmp	short loc_EAF74
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_CreateEmptyStaticBuffers(model_t *, ddispinfo_t  const*)
_Z33DispInfo_CreateEmptyStaticBuffersP7model_tPK11ddispinfo_t proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+194p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	eax, dword ptr ds:g_DispGroups+0Ch
		test	eax, eax
		jle	loc_EB0BF
		mov	[ebp+var_34], 0
		lea	esi, [esi+0]

loc_EAFD0:				; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+109j
					; DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+165j
		mov	eax, dword ptr ds:g_DispGroups
		mov	edx, [ebp+var_34]
		mov	esi, [eax+edx*4]
		mov	eax, [esi+28h]
		test	eax, eax
		jle	loc_EB0AC
		xor	ebx, ebx
		mov	[ebp+var_2C], 0
		xor	eax, eax
		xor	edi, edi
		jmp	short loc_EB016
; ---------------------------------------------------------------------------
		align 4

loc_EAFF8:				; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+AEj
		mov	edx, [esi+28h]
		lea	eax, [edx-1]
		cmp	ebx, eax
		jz	loc_EB0D0
		add	ebx, 1
		mov	eax, [ebp+var_30]
		mov	edi, ecx
		cmp	ebx, edx
		jge	loc_EB0AC

loc_EB016:				; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+43j
					; DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+F6j
		lea	ecx, [ebp+var_1C]
		lea	edx, [ebp+var_20]
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_4]
		mov	[esp+4], edx
		mov	edx, [esi+1Ch]
		imul	edx, [edx+ebx*4], 0B0h
		mov	edx, [ecx+edx+14h]
		mov	[ebp+var_38], eax
		mov	[esp], edx
		call	_Z25CalcMaxNumVertsAndIndicesiPiS_ ; CalcMaxNumVertsAndIndices(int,int *,int *)
		mov	ecx, [ebp+var_20]
		mov	eax, [ebp+var_38]
		add	ecx, edi
		cmp	ecx, 2000h
		jg	short loc_EB060
		mov	edx, [ebp+var_1C]
		add	edx, eax
		cmp	edx, 2000h
		mov	[ebp+var_30], edx
		jle	short loc_EAFF8

loc_EB060:				; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+9Ej
		mov	[esp+18h], eax
		mov	eax, ebx
		mov	ecx, [ebp+arg_4]
		sub	eax, [ebp+var_2C]
		mov	[esp+14h], edi
		mov	[esp+10h], eax
		mov	eax, [ebp+var_2C]
		mov	edi, [esi+1Ch]
		mov	[esp+8], ecx
		mov	[esp+4], esi
		lea	eax, [edi+eax*4]
		xor	edi, edi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z12AddEmptyMeshP7model_tP10CDispGroupPK11ddispinfo_tPiiii ; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)
		mov	edx, [esi+28h]
		mov	[ebp+var_2C], ebx
		sub	ebx, 1
		xor	eax, eax
		add	ebx, 1
		cmp	ebx, edx
		jl	loc_EB016

loc_EB0AC:				; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+30j
					; DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+60j
		add	[ebp+var_34], 1
		mov	edx, [ebp+var_34]
		cmp	dword ptr ds:g_DispGroups+0Ch, edx
		jg	loc_EAFD0

loc_EB0BF:				; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+10j
					; DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+16Bj
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EB0D0:				; CODE XREF: DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t  const*)+50j
		sub	ebx, [ebp+var_2C]
		mov	[esp+14h], ecx
		mov	edx, [ebp+var_30]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ebx+1]
		mov	[esp+18h], edx
		mov	[esp+10h], eax
		mov	eax, [ebp+var_2C]
		mov	ebx, [esi+1Ch]
		mov	[esp+8], ecx
		mov	[esp+4], esi
		lea	eax, [ebx+eax*4]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z12AddEmptyMeshP7model_tP10CDispGroupPK11ddispinfo_tPiiii ; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)
		add	[ebp+var_34], 1
		mov	edx, [ebp+var_34]
		cmp	dword ptr ds:g_DispGroups+0Ch, edx
		jg	loc_EAFD0
		jmp	short loc_EB0BF
_Z33DispInfo_CreateEmptyStaticBuffersP7model_tPK11ddispinfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDispInfo::CopyMapDispData(ddispinfo_t  const*)
_ZN9CDispInfo15CopyMapDispDataEPK11ddispinfo_t proc near
					; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+101p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edx, [eax+28h]
		mov	[ebx+174h], edx
		mov	eax, [eax+14h]
		mov	[ebx+184h], eax
		mov	[esp], eax
		call	_Z12GetPowerInfoi ; GetPowerInfo(int)
		mov	[ebx+1DCh], eax
		mov	eax, [eax+24h]
		sub	eax, 1
		imul	eax, eax
		lea	eax, [eax+eax*2]
		add	eax, eax
		mov	[esp+4], eax
		lea	eax, [ebx+0F4h]
		mov	[esp], eax
		call	_ZN10CUtlVectorIt10CUtlMemoryItiEE8SetCountEi ;	CUtlVector<ushort,CUtlMemory<ushort,int>>::SetCount(int)
		mov	eax, [ebx+24Ch]
		test	eax, eax
		jz	short loc_EB17F
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_EB17F:				; CODE XREF: CDispInfo::CopyMapDispData(ddispinfo_t  const*)+55j
		mov	eax, [ebx+1DCh]
		mov	eax, [eax+34h]
		shl	eax, 2
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[ebx+24Ch], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN9CDispInfo15CopyMapDispDataEPK11ddispinfo_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_CreateFromMapDisp(model_t *,	int, ddispinfo_t  const*, CCoreDispInfo	*, CDispVert  const*, CDispTri	const*,	MaterialSystem_SortInfo_t  const*, bool)
_Z26DispInfo_CreateFromMapDispP7model_tiPK11ddispinfo_tP13CCoreDispInfoPK9CDispVertPK8CDispTriPK25MaterialSystem_SortInfo_tb proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+3AAp

var_20		= byte ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= byte ptr  24h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edx, [ebp+arg_4]
		movzx	eax, [ebp+arg_1C]
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_C]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_19], al
		mov	eax, [edx+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esi+1ACh], eax
		mov	eax, [ebx+4]
		mov	[esi+1B0h], eax
		mov	eax, [ebx+8]
		mov	[esi+1B4h], eax
		mov	eax, [ebp+arg_14]
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_10]
		mov	[esp+10h], eax
		mov	eax, [ebx+1Ch]
		mov	[esp+0Ch], eax
		mov	eax, [ebx+18h]
		mov	[esp+8], eax
		mov	eax, [ebx+14h]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN13CCoreDispInfo12InitDispInfoEiifPK9CDispVertPK8CDispTri ; CCoreDispInfo::InitDispInfo(int,int,float,CDispVert  const*,CDispTri  const*)
		lea	eax, [ebx+60h]
		mov	[esp+8], eax
		lea	eax, [ebx+30h]
		mov	[esp+4], eax
		lea	eax, [esi+10h]
		mov	[esp], eax
		call	_ZN16CCoreDispSurface15SetNeighborDataEPK13CDispNeighborPK20CDispCornerNeighbors ; CCoreDispSurface::SetNeighborData(CDispNeighbor  const*,CDispCornerNeighbors	 const*)
		lea	ecx, [esi+1DCh]
		xor	eax, eax
		lea	esi, [esi+0]

loc_EB240:				; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+B0j
		mov	edx, [ebx+eax*4+88h]
		mov	[ecx+eax*4], edx
		add	eax, 1
		cmp	eax, 0Ah
		jnz	short loc_EB240
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+18h]
		mov	edx, eax
		mov	eax, esi
		call	_ZL17BuildDispSurfInitP7model_tP13CCoreDispInfoP11msurface2_t_isra_41
		mov	[esp], esi
		call	_ZN13CCoreDispInfo6CreateEv ; CCoreDispInfo::Create(void)
		xor	edx, edx
		test	al, al
		jnz	short loc_EB280

loc_EB271:				; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+12Ej
		add	esp, 3Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EB280:				; CODE XREF: DispInfo_CreateFromMapDisp(model_t	*,int,ddispinfo_t  const*,CCoreDispInfo	*,CDispVert  const*,CDispTri  const*,MaterialSystem_SortInfo_t	const*,bool)+CFj
		mov	eax, [esi+1A8h]
		mov	[edi+170h], eax
		movzx	eax, word ptr [ebp+arg_4]
		mov	[edi+262h], ax
		mov	[ebp+var_20], dl
		mov	[esp+4], ebx
		mov	[esp], edi
		call	_ZN9CDispInfo15CopyMapDispDataEPK11ddispinfo_t ; CDispInfo::CopyMapDispData(ddispinfo_t	 const*)
		movzx	eax, [ebp+var_19]
		mov	[esp+0Ch], esi
		mov	[esp], edi
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_18]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		call	_ZN9CDispInfo16CopyCoreDispDataEP7model_tPK25MaterialSystem_SortInfo_tPK13CCoreDispInfob ; CDispInfo::CopyCoreDispData(model_t *,MaterialSystem_SortInfo_t  const*,CCoreDispInfo  const*,bool)
		movzx	edx, [ebp+var_20]
		test	al, al
		jz	short loc_EB271
		mov	[esp], edi
		call	_ZN9CDispInfo21InitializeActiveVertsEv ; CDispInfo::InitializeActiveVerts(void)
		mov	eax, [ebx+2Ch]
		mov	edx, 1
		mov	[edi+238h], eax
		add	esp, 3Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z26DispInfo_CreateFromMapDispP7model_tiPK11ddispinfo_tP13CCoreDispInfoPK9CDispVertPK8CDispTriPK25MaterialSystem_SortInfo_tb endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DispInfo_LoadDisplacements(model_t *,	bool)
_Z26DispInfo_LoadDisplacementsP7model_tb proc near
					; CODE XREF: CModelLoader::Map_LoadDisplacements(model_t *,bool)+53p

var_5A080	= dword	ptr -5A080h
var_5A079	= byte ptr -5A079h
var_5A078	= dword	ptr -5A078h
var_5A074	= dword	ptr -5A074h
var_5A070	= dword	ptr -5A070h
var_5A06C	= dword	ptr -5A06Ch
var_5A064	= byte ptr -5A064h
var_2064	= byte ptr -2064h
var_9D0		= byte ptr -9D0h
var_5D0		= dword	ptr -5D0h
var_4B0		= dword	ptr -4B0h
var_390		= dword	ptr -390h
var_270		= dword	ptr -270h
var_150		= dword	ptr -150h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5A09Ch
		mov	edx, ds:materialSortInfoArray
		mov	dword ptr [esp], 1Ah
		movzx	eax, [ebp+arg_4]
		mov	[ebp+var_5A080], edx
		mov	[ebp+var_5A079], al
		call	_ZN14CMapLoadHelper8LumpSizeEi ; CMapLoadHelper::LumpSize(int)
		mov	ecx, 0BA2E8BA3h
		mov	dword ptr [esp], 20h
		mul	ecx
		shr	edx, 7
		mov	[ebp+var_5A06C], edx
		call	_ZN14CMapLoadHelper8LumpSizeEi ; CMapLoadHelper::LumpSize(int)
		mov	dword ptr [esp], 22h
		mov	ebx, eax
		call	_ZN14CMapLoadHelper8LumpSizeEi ; CMapLoadHelper::LumpSize(int)
		mov	edx, [ebp+arg_0]
		cmp	[ebp+var_5A079], 0
		mov	edi, eax
		mov	eax, [edx+94h]
		jz	loc_EB8E0
		mov	eax, [eax+68h]
		cmp	eax, [ebp+var_5A06C]
		jz	short loc_EB37B
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+var_1C]
		add	edx, 1
		mov	[ebp+var_1C], edx

loc_EB37B:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+79j
		mov	ecx, [ebp+var_5A06C]
		test	ecx, ecx
		jnz	loc_EB710

loc_EB389:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+422j
		cmp	[ebp+var_5A06C], eax
		jz	short loc_EB3AB
		mov	edx, [ebp+var_5A06C]
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aDispinfo_loadd	; "DispInfo_LoadDisplacments: dispcounts ("...
		mov	[esp+8], edx
		call	Error

loc_EB3AB:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+9Fj
		mov	eax, dword ptr ds:g_DispLMAlpha+0Ch
		cmp	ebx, eax
		jz	short loc_EB3C8
		mov	[esp+8], ebx
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aDispinfo_loa_0	; "DispInfo_LoadDisplacements: lightmap	al"...
		call	Error

loc_EB3C8:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+C2j
					; DispInfo_LoadDisplacements(model_t *,bool)+6A6j
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_Z37DispInfo_ReleaseMaterialSystemObjectsP7model_t ; DispInfo_ReleaseMaterialSystemObjects(model_t *)
		cmp	[ebp+var_5A06C], 800h
		jg	loc_EB99B

loc_EB3E3:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+6C9j
		lea	eax, [ebp+var_390]
		mov	dword ptr [esp+4], 1Ah ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	edx, [ebp+var_5A064]
		mov	dword ptr [esp+4], 0
		imul	eax, [ebp+var_5A06C], 0B0h
		mov	[esp+0Ch], edx
		mov	[esp+8], eax
		lea	eax, [ebp+var_390]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper12LoadLumpDataEiiPv ; CMapLoadHelper::LoadLumpData(int,int,void *)
		mov	edx, [ebp+var_5A06C]
		lea	eax, [ebp+var_5A064]
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_Z26DispInfo_LinkToParentFacesP7model_tPK11ddispinfo_ti	; DispInfo_LinkToParentFaces(model_t *,ddispinfo_t  const*,int)
		mov	eax, [ebp+var_5A080]
		mov	edx, [ebp+arg_0]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z29DispInfo_CreateMaterialGroupsP7model_tPK25MaterialSystem_SortInfo_t	; DispInfo_CreateMaterialGroups(model_t	*,MaterialSystem_SortInfo_t  const*)
		mov	eax, ds:g_VBAllocTracker
		test	eax, eax
		jz	short loc_EB474
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aDispinfo_loa_1 ; "DispInfo_LoadDisplacements"
		mov	[esp], eax
		call	dword ptr [edx+8]

loc_EB474:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+172j
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+var_5A064]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_Z33DispInfo_CreateEmptyStaticBuffersP7model_tPK11ddispinfo_t ;	DispInfo_CreateEmptyStaticBuffers(model_t *,ddispinfo_t	 const*)
		mov	eax, ds:g_VBAllocTracker
		test	eax, eax
		jz	short loc_EB4A2
		mov	edx, [eax]
		mov	dword ptr [esp+4], 0
		mov	[esp], eax
		call	dword ptr [edx+8]

loc_EB4A2:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+1A0j
		mov	edx, [ebp+var_5A06C]
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		test	edx, edx
		mov	[ebp+var_20], 0
		jz	loc_EB9BE
		lea	edx, [ebp+var_30]
		xor	esi, esi
		mov	[ebp+var_5A074], edx
		lea	edi, [ebp+var_1C]
		lea	esi, [esi+0]

loc_EB4E8:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+233j
		mov	dword ptr [esp], 208h
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN13CCoreDispInfoC2Ev ; CCoreDispInfo::CCoreDispInfo(void)
		mov	eax, [ebp+var_24]
		add	esi, 1
		mov	[ebp+var_1C], ebx
		mov	[esp+8], edi
		mov	[esp+4], eax
		mov	eax, [ebp+var_5A074]
		mov	[esp], eax
		call	_ZN10CUtlVectorIP13CCoreDispInfo10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<CCoreDispInfo *,CUtlMemory<CCoreDispInfo *,int>>::InsertBefore(int,CCoreDispInfo * const&)
		cmp	[ebp+var_5A06C], esi
		jnz	short loc_EB4E8

loc_EB525:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+6D7j
		lea	edx, [ebp+var_270]
		mov	dword ptr [esp+4], 21h ; arg
		mov	[esp], edx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		lea	eax, [ebp+var_150]
		mov	dword ptr [esp+4], 30h ; arg
		mov	[esp], eax	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	eax, [ebp+var_5A06C]
		test	eax, eax
		jz	loc_EB730
		mov	[ebp+var_5A078], 0
		xor	esi, esi
		mov	[ebp+var_5A070], 0
		jmp	short loc_EB58F
; ---------------------------------------------------------------------------
		align 10h

loc_EB580:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+3B1j
		add	esi, 1
		cmp	[ebp+var_5A06C], esi
		jz	loc_EB730

loc_EB58F:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+285j
		imul	edi, esi, 0B0h
		lea	edx, [ebp+var_5A064]
		mov	ebx, 1
		add	edi, edx
		mov	ecx, [edi+14h]
		shl	ebx, cl
		add	ebx, 1
		imul	ebx, ebx
		cmp	ebx, 121h
		jle	short loc_EB5C5
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aDispinfo_loa_2	; "DispInfo_LoadDisplacements: invalid ver"...
		call	Error

loc_EB5C5:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+2C3j
		mov	edx, [ebp+var_5A070]
		lea	eax, [ebp+var_2064]
		mov	[esp+0Ch], eax
		lea	eax, [ebx+ebx*4]
		shl	eax, 2
		mov	[esp+8], eax
		lea	eax, [edx+edx*4]
		shl	eax, 2
		mov	[esp+4], eax
		lea	eax, [ebp+var_270]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper12LoadLumpDataEiiPv ; CMapLoadHelper::LoadLumpData(int,int,void *)
		mov	ecx, [edi+14h]
		add	[ebp+var_5A070], ebx
		mov	ebx, 1
		shl	ebx, cl
		shl	ebx, cl
		add	ebx, ebx
		cmp	ebx, 200h
		jle	short loc_EB623
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aDispinfo_loa_3	; "DispInfo_LoadDisplacements: invalid tri"...
		call	Error

loc_EB623:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+321j
		lea	eax, [ebx+ebx]
		mov	[esp+8], eax
		mov	eax, [ebp+var_5A078]
		lea	edx, [ebp+var_9D0]
		mov	[esp+0Ch], edx
		add	eax, eax
		mov	[esp+4], eax
		lea	eax, [ebp+var_150]
		mov	[esp], eax
		call	_ZN14CMapLoadHelper12LoadLumpDataEiiPv ; CMapLoadHelper::LoadLumpData(int,int,void *)
		mov	edx, [ebp+var_5A080]
		movzx	eax, [ebp+var_5A079]
		add	[ebp+var_5A078], ebx
		mov	[esp+18h], edx
		lea	edx, [ebp+var_2064]
		mov	[esp+10h], edx
		mov	edx, [ebp+var_5A074]
		mov	[esp+1Ch], eax
		lea	eax, [ebp+var_9D0]
		mov	[esp+14h], eax
		mov	eax, [edx]
		mov	eax, [eax+esi*4]
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z26DispInfo_CreateFromMapDispP7model_tiPK11ddispinfo_tP13CCoreDispInfoPK9CDispVertPK8CDispTriPK25MaterialSystem_SortInfo_tb ; DispInfo_CreateFromMapDisp(model_t *,int,ddispinfo_t  const*,CCoreDispInfo *,CDispVert  const*,CDispTri	const*,MaterialSystem_SortInfo_t  const*,bool)
		test	al, al
		jnz	loc_EB580
		xor	ebx, ebx

loc_EB6A9:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+5EAj
		lea	edx, [ebp+var_150]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		lea	eax, [ebp+var_270]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	edx, [ebp+var_5A074]
		mov	[ebp+var_24], 0
		mov	[esp], edx
		call	_ZN10CUtlMemoryIP13CCoreDispInfoiE5PurgeEv ; CUtlMemory<CCoreDispInfo *,int>::Purge(void)
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_5A074]
		mov	[esp], eax
		call	_ZN10CUtlMemoryIP13CCoreDispInfoiE5PurgeEv ; CUtlMemory<CCoreDispInfo *,int>::Purge(void)
		lea	edx, [ebp+var_390]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		add	esp, 5A09Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EB710:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+93j
		test	eax, eax
		jnz	loc_EB389
		add	esp, 5A09Ch
		xor	ebx, ebx
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EB730:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+269j
					; DispInfo_LoadDisplacements(model_t *,bool)+299j
		mov	edx, [ebp+var_5A06C]
		mov	eax, [ebp+var_30]
		mov	[esp+4], edx
		mov	[esp], eax
		call	_Z21SmoothDispSurfNormalsPP13CCoreDispInfoi ; SmoothDispSurfNormals(CCoreDispInfo **,int)
		mov	eax, [ebp+var_5A06C]
		test	eax, eax
		jz	short loc_EB7A5
		lea	esi, [ebp+var_2064]
		xor	ebx, ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_EB760:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+4B3j
		mov	edx, [ebp+var_5A074]
		mov	[esp+0Ch], esi
		mov	eax, [edx]
		mov	eax, [eax+ebx*4]
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z35DispInfo_CreateStaticBuffersAndTagsP7model_tiP13CCoreDispInfoPK9CDispVert ;	DispInfo_CreateStaticBuffersAndTags(model_t *,int,CCoreDispInfo	*,CDispVert  const*)
		mov	edx, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	eax, [edx+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		add	ebx, 1
		cmp	[ebp+var_5A06C], ebx
		jnz	short loc_EB760

loc_EB7A5:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+45Dj
		mov	eax, [ebp+var_24]
		test	eax, eax
		jle	short loc_EB7D7
		xor	ebx, ebx
		db	66h
		nop

loc_EB7B0:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+4E5j
		mov	edx, [ebp+var_5A074]
		mov	eax, [edx]
		mov	esi, [eax+ebx*4]
		test	esi, esi
		jz	short loc_EB7CF
		mov	[esp], esi
		call	_ZN13CCoreDispInfoD2Ev ; CCoreDispInfo::~CCoreDispInfo()
		mov	[esp], esi	; void *
		call	_ZdlPv		; operator delete(void *)

loc_EB7CF:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+4CDj
		add	ebx, 1
		cmp	ebx, [ebp+var_24]
		jl	short loc_EB7B0

loc_EB7D7:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+4BAj
		mov	eax, [ebp+var_5A074]
		mov	[ebp+var_24], 0
		mov	[esp], eax
		call	_ZN10CUtlMemoryIP13CCoreDispInfoiE5PurgeEv ; CUtlMemory<CCoreDispInfo *,int>::Purge(void)
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_5A06C]
		test	eax, eax
		jz	loc_EB8AB
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_EB808:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+58Aj
		mov	edx, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	eax, [edx+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	esi, [eax+140h]
		lea	edx, [eax+118h]
		add	ebx, 1
		lea	ecx, [eax+140h]
		cmp	[ebp+var_5A06C], ebx
		mov	[eax+118h], esi
		mov	eax, [eax+144h]
		mov	[edx+4], eax
		mov	eax, [ecx+8]
		mov	[edx+8], eax
		mov	eax, [ecx+0Ch]
		mov	[edx+0Ch], eax
		mov	eax, [ecx+10h]
		mov	[edx+10h], eax
		mov	eax, [ecx+14h]
		mov	[edx+14h], eax
		mov	eax, [ecx+18h]
		mov	[edx+18h], eax
		mov	eax, [ecx+1Ch]
		mov	[edx+1Ch], eax
		mov	eax, [ecx+20h]
		mov	[edx+20h], eax
		mov	eax, [ecx+24h]
		mov	[edx+24h], eax
		jnz	short loc_EB808
		xor	ebx, ebx
		db	66h
		nop

loc_EB880:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+5B9j
		mov	edx, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	eax, [edx+94h]
		mov	eax, [eax+6Ch]
		mov	[esp], eax
		call	_Z19DispInfo_IndexArrayPvi ; DispInfo_IndexArray(void *,int)
		mov	[esp], eax
		call	_ZN9CDispInfo21TesselateDisplacementEv ; CDispInfo::TesselateDisplacement(void)
		add	ebx, 1
		cmp	[ebp+var_5A06C], ebx
		jnz	short loc_EB880

loc_EB8AB:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+50Aj
		mov	edx, [ebp+var_5A06C]
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edx
		mov	[esp], eax
		call	_Z16SetupMeshReadersP7model_ti ; SetupMeshReaders(model_t *,int)
		mov	edx, [ebp+var_5A06C]
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edx
		mov	[esp], eax
		call	_Z16UpdateDispBBoxesP7model_ti ; UpdateDispBBoxes(model_t *,int)
		mov	ebx, 1
		jmp	loc_EB6A9
; ---------------------------------------------------------------------------
		align 10h

loc_EB8E0:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+6Aj
		mov	edx, [ebp+var_5A06C]
		mov	[eax+68h], edx
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+94h]
		mov	eax, [esi+68h]
		mov	[esp], eax
		call	_Z20DispInfo_CreateArrayi ; DispInfo_CreateArray(int)
		mov	[esi+6Ch], eax
		lea	esi, [ebp+var_5D0]
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	g_DispLMAlpha
		call	_ZN10CUtlVectorIh10CUtlMemoryIhiEE8SetCountEi ;	CUtlVector<uchar,CUtlMemory<uchar,int>>::SetCount(int)
		mov	dword ptr [esp+4], 20h ; arg
		mov	[esp], esi	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	eax, dword ptr ds:g_DispLMAlpha
		mov	[esp+8], ebx
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		mov	[esp+0Ch], eax
		call	_ZN14CMapLoadHelper12LoadLumpDataEiiPv ; CMapLoadHelper::LoadLumpData(int,int,void *)
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	g_DispLightmapSamplePositions
		call	_ZN10CUtlVectorIh11CHunkMemoryIhEE8SetCountEi ;	CUtlVector<uchar,CHunkMemory<uchar>>::SetCount(int)
		lea	ebx, [ebp+var_4B0]
		mov	dword ptr [esp+4], 22h ; arg
		mov	[esp], ebx	; int
		call	_ZN14CMapLoadHelperC2Ei	; CMapLoadHelper::CMapLoadHelper(int)
		mov	eax, dword ptr ds:g_DispLightmapSamplePositions
		mov	[esp+8], edi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		mov	[esp+0Ch], eax
		call	_ZN14CMapLoadHelper12LoadLumpDataEiiPv ; CMapLoadHelper::LoadLumpData(int,int,void *)
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		jmp	loc_EB3C8
; ---------------------------------------------------------------------------

loc_EB99B:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+EDj
		mov	edx, [ebp+var_5A06C]
		mov	dword ptr [esp+8], 800h
		mov	dword ptr [esp], offset	aDispinfo_loa_4	; "DispInfo_LoadDisplacements: nDisplaceme"...
		mov	[esp+4], edx
		call	Error
		jmp	loc_EB3E3
; ---------------------------------------------------------------------------

loc_EB9BE:				; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+1DDj
		lea	eax, [ebp+var_30]
		mov	[ebp+var_5A074], eax
		jmp	loc_EB525
_Z26DispInfo_LoadDisplacementsP7model_tb endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_EB9CE:				; CODE XREF: .text:000EBA19j
					; .text:000EBA2Bj
		mov	eax, [ebp-5A074h]
		mov	dword ptr [ebp-24h], 0
		mov	[esp], eax
		call	_ZN10CUtlMemoryIP13CCoreDispInfoiE5PurgeEv ; CUtlMemory<CCoreDispInfo *,int>::Purge(void)
		mov	eax, [ebp-30h]
		mov	edx, [ebp-5A074h]
		mov	[ebp-20h], eax
		mov	[esp], edx
		call	_ZN10CUtlMemoryIP13CCoreDispInfoiE5PurgeEv ; CUtlMemory<CCoreDispInfo *,int>::Purge(void)

loc_EB9F7:				; CODE XREF: .text:000EBA61j
		lea	eax, [ebp-390h]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	ebx, esi
		jmp	short loc_EB9CE
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_EBA1D:				; CODE XREF: .text:000EBA3Dj
		lea	edx, [ebp-270h]
		mov	[esp], edx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		jmp	short loc_EB9CE
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-150h]
		mov	[esp], eax
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		jmp	short loc_EBA1D
; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_EBA41:				; CODE XREF: .text:000EBA5Dj
		mov	[esp], esi
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	edi, eax
		mov	[esp], ebx
		call	_ZN14CMapLoadHelperD2Ev	; CMapLoadHelper::~CMapLoadHelper()
		mov	ebx, edi
		jmp	short loc_EBA41
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_EB9F7
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IDispInfo::~IDispInfo()
_ZN9IDispInfoD2Ev proc near		; DATA XREF: .rodata:`vtable for'IDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV9IDispInfo+8)
		pop	ebp
		retn
_ZN9IDispInfoD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CConstructorChecker::~CConstructorChecker()
_ZN19CConstructorCheckerD2Ev proc near	; DATA XREF: _GLOBAL__sub_I_g_ConstructorChecker+23o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN19CConstructorCheckerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IDispInfo::~IDispInfo()
_ZN9IDispInfoD0Ev proc near		; DATA XREF: .rodata:`vtable for'IDispInfoo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV9IDispInfo+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN9IDispInfoD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned char, CHunkMemory<unsigned char>>::SetCount(int)
_ZN10CUtlVectorIh11CHunkMemoryIhEE8SetCountEi proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+65Ep

var_19		= byte ptr -19h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+8], 0
		jz	short loc_EBADF
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EBAF0
		mov	eax, [ebx]
		mov	[ebx+8], esi
		mov	[ebx+0Ch], eax

loc_EBADF:				; CODE XREF: CUtlVector<uchar,CHunkMemory<uchar>>::SetCount(int)+1Ej
					; CUtlVector<uchar,CHunkMemory<uchar>>::SetCount(int)+72j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EBAF0:				; CODE XREF: CUtlVector<uchar,CHunkMemory<uchar>>::SetCount(int)+25j
		mov	edi, esi
		mov	dword ptr [esp+4], 0
		sub	edi, eax
		mov	[esp], edi
		call	_Z10Hunk_Allocib ; Hunk_Alloc(int,bool)
		mov	edx, [ebx+8]
		mov	[ebx+4], edi
		mov	[ebx], eax
		mov	[ebx+0Ch], eax
		lea	edi, [esi+edx]
		test	edx, edx
		setnle	[ebp+var_19]
		test	esi, esi
		mov	[ebx+8], edi
		setnle	cl
		test	cl, cl
		jz	short loc_EBADF
		cmp	[ebp+var_19], 0
		jz	short loc_EBADF
		add	esi, eax
		mov	[esp+8], edx	; n
		mov	[esp], esi	; dest
		mov	[esp+4], eax	; src
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIh11CHunkMemoryIhEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<int, CUtlMemory<int, int>>::ShiftElementsRight(int, int)
_ZN10CUtlVectorIi10CUtlMemoryIiiEE18ShiftElementsRightEii proc near
					; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+44Bp
					; DispInfo_CreateMaterialGroups(model_t	*,MaterialSystem_SortInfo_t  const*)+CCp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	eax, [ebx+0Ch]
		sub	eax, ecx
		sub	eax, edx
		test	eax, eax
		jg	short loc_EBB70

loc_EBB68:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::ShiftElementsRight(int,int)+22j
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EBB70:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::ShiftElementsRight(int,int)+16j
		test	edx, edx
		jle	short loc_EBB68
		mov	ebx, [ebx]
		shl	eax, 2
		add	edx, ecx
		mov	[ebp+arg_8], eax
		lea	eax, [ebx+ecx*4]
		mov	[ebp+arg_4], eax
		lea	eax, [ebx+edx*4]
		pop	ebx
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	memmove
_ZN10CUtlVectorIi10CUtlMemoryIiiEE18ShiftElementsRightEii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CGroupMesh	*, int>::Purge(void)
_ZN10CUtlMemoryIP10CGroupMeshiE5PurgeEv	proc near
					; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+124p
					; DispInfo_ReleaseMaterialSystemObjects(model_t	*)+18Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EBBCC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EBBC5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EBBC5:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EBBCC:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP10CGroupMeshiE5PurgeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispInfo *, int>::Purge(void)
_ZN10CUtlMemoryIP9CDispInfoiE5PurgeEv proc near
					; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+D1p
					; DispInfo_ReleaseMaterialSystemObjects(model_t	*)+E2p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EBC0C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EBC05
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EBC05:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EBC0C:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP9CDispInfoiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CPrimList,	int>::Purge(void)
_ZN10CUtlMemoryI9CPrimListiE5PurgeEv proc near
					; CODE XREF: DispInfo_ReleaseMaterialSystemObjects(model_t *)+B1p
					; DispInfo_ReleaseMaterialSystemObjects(model_t	*)+C2p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EBC4C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EBC45
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EBC45:				; CODE XREF: CUtlMemory<CPrimList,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EBC4C:				; CODE XREF: CUtlMemory<CPrimList,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI9CPrimListiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CCoreDispInfo *, int>::Purge(void)
_ZN10CUtlMemoryIP13CCoreDispInfoiE5PurgeEv proc	near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+3E5p
					; DispInfo_LoadDisplacements(model_t *,bool)+3F9p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EBC8C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EBC85
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EBC85:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EBC8C:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP13CCoreDispInfoiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<int, CUtlMemory<int, int>>::GrowVector(int)
_ZN10CUtlVectorIi10CUtlMemoryIiiEE10GrowVectorEi proc near
					; CODE XREF: BlendCorners(CCoreDispInfo	**,int)+435p
					; DispInfo_CreateMaterialGroups(model_t	*,MaterialSystem_SortInfo_t  const*)+B5p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		add	eax, esi
		cmp	eax, edx
		jle	short loc_EBCD1
		sub	eax, edx
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIiiE4GrowEi ; CUtlMemory<int,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		add	eax, esi

loc_EBCD1:				; CODE XREF: CUtlVector<int,CUtlMemory<int,int>>::GrowVector(int)+1Cj
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIi10CUtlMemoryIiiEE10GrowVectorEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispGroup	*, int>::Grow(int)
_ZN10CUtlMemoryIP10CDispGroupiE4GrowEi proc near
					; CODE XREF: CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::InsertBefore(int,CDispGroup	* const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EBD40
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EBD50
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EBD26
		lea	esi, [esi+0]

loc_EBD20:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EBD20

loc_EBD26:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Grow(int)+2Aj
					; CUtlMemory<CDispGroup	*,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EBD83

loc_EBD32:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EBD40:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EBD50:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EBD26
		lea	esi, [esi+0]

loc_EBD68:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EBD68
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EBD32

loc_EBD83:				; CODE XREF: CUtlMemory<CDispGroup *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP10CDispGroupiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDispGroup	*, CUtlMemory<CDispGroup *, int>>::InsertBefore(int, CDispGroup	* const&)
_ZN10CUtlVectorIP10CDispGroup10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: DispInfo_CreateMaterialGroups(model_t *,MaterialSystem_SortInfo_t	const*)+181p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_EBE10

loc_EBDBF:				; CODE XREF: CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::InsertBefore(int,CDispGroup	* const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_EBDF6
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_EBDF6:				; CODE XREF: CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::InsertBefore(int,CDispGroup	* const&)+38j
		add	edi, eax
		jz	short loc_EBE01
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_EBE01:				; CODE XREF: CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::InsertBefore(int,CDispGroup	* const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EBE10:				; CODE XREF: CUtlVector<CDispGroup *,CUtlMemory<CDispGroup *,int>>::InsertBefore(int,CDispGroup	* const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP10CDispGroupiE4GrowEi ; CUtlMemory<CDispGroup *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_EBDBF
_ZN10CUtlVectorIP10CDispGroup10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CGroupMesh	*, int>::Grow(int)
_ZN10CUtlMemoryIP10CGroupMeshiE4GrowEi proc near
					; CODE XREF: CUtlVector<CGroupMesh *,CUtlMemory<CGroupMesh *,int>>::InsertBefore(int,CGroupMesh	* const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EBE80
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EBE90
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EBE66
		lea	esi, [esi+0]

loc_EBE60:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EBE60

loc_EBE66:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Grow(int)+2Aj
					; CUtlMemory<CGroupMesh	*,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EBEC3

loc_EBE72:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EBE80:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EBE90:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EBE66
		lea	esi, [esi+0]

loc_EBEA8:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EBEA8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EBE72

loc_EBEC3:				; CODE XREF: CUtlMemory<CGroupMesh *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP10CGroupMeshiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CGroupMesh	*, CUtlMemory<CGroupMesh *, int>>::InsertBefore(int, CGroupMesh	* const&)
_ZN10CUtlVectorIP10CGroupMesh10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+BDp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_EBF50

loc_EBEFF:				; CODE XREF: CUtlVector<CGroupMesh *,CUtlMemory<CGroupMesh *,int>>::InsertBefore(int,CGroupMesh	* const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_EBF36
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_EBF36:				; CODE XREF: CUtlVector<CGroupMesh *,CUtlMemory<CGroupMesh *,int>>::InsertBefore(int,CGroupMesh	* const&)+38j
		add	edi, eax
		jz	short loc_EBF41
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_EBF41:				; CODE XREF: CUtlVector<CGroupMesh *,CUtlMemory<CGroupMesh *,int>>::InsertBefore(int,CGroupMesh	* const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EBF50:				; CODE XREF: CUtlVector<CGroupMesh *,CUtlMemory<CGroupMesh *,int>>::InsertBefore(int,CGroupMesh	* const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP10CGroupMeshiE4GrowEi ; CUtlMemory<CGroupMesh *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_EBEFF
_ZN10CUtlVectorIP10CGroupMesh10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CCoreDispInfo *, int>::Grow(int)
_ZN10CUtlMemoryIP13CCoreDispInfoiE4GrowEi proc near
					; CODE XREF: CUtlVector<CCoreDispInfo *,CUtlMemory<CCoreDispInfo *,int>>::InsertBefore(int,CCoreDispInfo * const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EBFC0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EBFD0
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EBFA6
		lea	esi, [esi+0]

loc_EBFA0:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EBFA0

loc_EBFA6:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Grow(int)+2Aj
					; CUtlMemory<CCoreDispInfo *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EC003

loc_EBFB2:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EBFC0:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EBFD0:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EBFA6
		lea	esi, [esi+0]

loc_EBFE8:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EBFE8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EBFB2

loc_EC003:				; CODE XREF: CUtlMemory<CCoreDispInfo *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP13CCoreDispInfoiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CCoreDispInfo *, CUtlMemory<CCoreDispInfo *, int>>::InsertBefore(int, CCoreDispInfo * const&)
_ZN10CUtlVectorIP13CCoreDispInfo10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+228p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_EC090

loc_EC03F:				; CODE XREF: CUtlVector<CCoreDispInfo *,CUtlMemory<CCoreDispInfo *,int>>::InsertBefore(int,CCoreDispInfo * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_EC076
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_EC076:				; CODE XREF: CUtlVector<CCoreDispInfo *,CUtlMemory<CCoreDispInfo *,int>>::InsertBefore(int,CCoreDispInfo * const&)+38j
		add	edi, eax
		jz	short loc_EC081
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_EC081:				; CODE XREF: CUtlVector<CCoreDispInfo *,CUtlMemory<CCoreDispInfo *,int>>::InsertBefore(int,CCoreDispInfo * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EC090:				; CODE XREF: CUtlVector<CCoreDispInfo *,CUtlMemory<CCoreDispInfo *,int>>::InsertBefore(int,CCoreDispInfo * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP13CCoreDispInfoiE4GrowEi ; CUtlMemory<CCoreDispInfo *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_EC03F
_ZN10CUtlVectorIP13CCoreDispInfo10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDispInfo *, int>::Grow(int)
_ZN10CUtlMemoryIP9CDispInfoiE4GrowEi proc near
					; CODE XREF: CUtlVector<CDispInfo *,CUtlMemory<CDispInfo *,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EC100
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EC110
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EC0E6
		lea	esi, [esi+0]

loc_EC0E0:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EC0E0

loc_EC0E6:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Grow(int)+2Aj
					; CUtlMemory<CDispInfo *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EC143

loc_EC0F2:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EC100:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC110:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EC0E6
		lea	esi, [esi+0]

loc_EC128:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EC128
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EC0F2

loc_EC143:				; CODE XREF: CUtlMemory<CDispInfo *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP9CDispInfoiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDispInfo *, CUtlMemory<CDispInfo *, int>>::SetCount(int)
_ZN10CUtlVectorIP9CDispInfo10CUtlMemoryIS1_iEE8SetCountEi proc near
					; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+46Ap
					; AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+48Ep

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_EC18F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EC1A0
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_EC18F:				; CODE XREF: CUtlVector<CDispInfo *,CUtlMemory<CDispInfo *,int>>::SetCount(int)+1Ej
					; CUtlVector<CDispInfo *,CUtlMemory<CDispInfo *,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC1A0:				; CODE XREF: CUtlVector<CDispInfo *,CUtlMemory<CDispInfo *,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIP9CDispInfoiE4GrowEi ; CUtlMemory<CDispInfo *,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_EC18F
		test	cl, cl
		jz	short loc_EC18F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIP9CDispInfo10CUtlMemoryIS1_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CPrimList,	int>::Grow(int)
_ZN10CUtlMemoryI9CPrimListiE4GrowEi proc near
					; CODE XREF: CUtlVector<CPrimList,CUtlMemory<CPrimList,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EC250
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EC260
		test	eax, eax
		mov	edx, 4
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EC236
		lea	esi, [esi+0]

loc_EC230:				; CODE XREF: CUtlMemory<CPrimList,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EC230

loc_EC236:				; CODE XREF: CUtlMemory<CPrimList,int>::Grow(int)+2Aj
					; CUtlMemory<CPrimList,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jz	short loc_EC293

loc_EC242:				; CODE XREF: CUtlMemory<CPrimList,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EC250:				; CODE XREF: CUtlMemory<CPrimList,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC260:				; CODE XREF: CUtlMemory<CPrimList,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EC236
		lea	esi, [esi+0]

loc_EC278:				; CODE XREF: CUtlMemory<CPrimList,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EC278
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jnz	short loc_EC242

loc_EC293:				; CODE XREF: CUtlMemory<CPrimList,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI9CPrimListiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CPrimList,	CUtlMemory<CPrimList, int>>::SetCount(int)
_ZN10CUtlVectorI9CPrimList10CUtlMemoryIS0_iEE8SetCountEi proc near
					; CODE XREF: AddEmptyMesh(model_t *,CDispGroup *,ddispinfo_t  const*,int *,int,int,int)+47Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_EC2DF
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EC2F0
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_EC2DF:				; CODE XREF: CUtlVector<CPrimList,CUtlMemory<CPrimList,int>>::SetCount(int)+1Ej
					; CUtlVector<CPrimList,CUtlMemory<CPrimList,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC2F0:				; CODE XREF: CUtlVector<CPrimList,CUtlMemory<CPrimList,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryI9CPrimListiE4GrowEi ; CUtlMemory<CPrimList,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_EC2DF
		test	cl, cl
		jz	short loc_EC2DF
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*8]
		shl	edx, 3
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorI9CPrimList10CUtlMemoryIS0_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned short, CUtlMemory<unsigned short,	int>>::SetCount(int)
_ZN10CUtlVectorIt10CUtlMemoryItiEE8SetCountEi proc near
					; CODE XREF: CDispInfo::CopyMapDispData(ddispinfo_t  const*)+48p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_EC37F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EC390
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_EC37F:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::SetCount(int)+1Ej
					; CUtlVector<ushort,CUtlMemory<ushort,int>>::SetCount(int)+6Ej	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC390:				; CODE XREF: CUtlVector<ushort,CUtlMemory<ushort,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryItiE4GrowEi ; CUtlMemory<ushort,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_EC37F
		test	cl, cl
		jz	short loc_EC37F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*2]
		add	edx, edx
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIt10CUtlMemoryItiEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<unsigned char, CUtlMemory<unsigned	char, int>>::SetCount(int)
_ZN10CUtlVectorIh10CUtlMemoryIhiEE8SetCountEi proc near
					; CODE XREF: DispInfo_LoadDisplacements(model_t	*,bool)+621p
					; CSendTablePrecalc::SetupFlatPropertyArray(void)+101p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_EC41F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EC430
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_EC41F:				; CODE XREF: CUtlVector<uchar,CUtlMemory<uchar,int>>::SetCount(int)+1Ej
					; CUtlVector<uchar,CUtlMemory<uchar,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC430:				; CODE XREF: CUtlVector<uchar,CUtlMemory<uchar,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIhiE4GrowEi ; CUtlMemory<uchar,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_EC41F
		test	cl, cl
		jz	short loc_EC41F
		add	esi, eax
		mov	[esp+8], edx	; n
		mov	[esp], esi	; dest
		mov	[esp+4], eax	; src
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIh10CUtlMemoryIhiEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DownloadListGenerator(void)
_Z21DownloadListGeneratorv proc	near	; CODE XREF: Host_Changelevel(bool,char	 const*,char  const*)+D6p
					; Host_Changelevel(bool,char  const*,char  const*)+1C4p ...
		push	ebp
		mov	eax, offset g_DownloadListGenerator
		mov	ebp, esp
		pop	ebp
		retn
_Z21DownloadListGeneratorv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDownloadListGenerator::CDownloadListGenerator(void)
_ZN22CDownloadListGeneratorC2Ev	proc near
					; CODE XREF: _GLOBAL__sub_I_g_DownloadListGenerator+56p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		lea	eax, [ebx+144h]
		mov	[esp], eax
		call	_ZN15CUtlSymbolTableC2Eiib ; CUtlSymbolTable::CUtlSymbolTable(int,int,bool)
		mov	byte ptr [ebx+100h], 0
		mov	dword ptr [ebx+140h], 0
		mov	dword ptr [ebx+17Ch], 0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN22CDownloadListGeneratorC2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDownloadListGenerator__OnLevelLoadStart(int, char arg)
_ZN22CDownloadListGenerator16OnLevelLoadStartEPKc proc near
					; CODE XREF: Host_Changelevel(bool,char	 const*,char  const*)+E2p
					; Host_NewGame(char *,bool,bool,char  const*,char  const*,bool)+198p

s		= byte ptr -11Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 138h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, dword ptr [ebp+arg]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+140h]
		test	eax, eax
		jz	short loc_EC542
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	dword ptr [ebx+140h], 0

loc_EC542:				; CODE XREF: CDownloadListGenerator::OnLevelLoadStart(char  const*)+20j
		lea	eax, [ebx+144h]
		mov	[esp], eax
		call	_ZN15CUtlSymbolTable9RemoveAllEv ; CUtlSymbolTable::RemoveAll(void)
		mov	eax, dword ptr ds:sv_logdownloadlist+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jz	short loc_EC5C6
		mov	eax, ds:g_pFileSystem
		lea	edi, [ebp+s]
		mov	edx, [eax]
		mov	[esp], eax
		mov	dword ptr [esp+8], offset aMod_0 ; "MOD"
		mov	dword ptr [esp+4], offset aDownloadlists ; "DownloadLists"
		call	dword ptr [edx+44h]
		mov	[esp+0Ch], esi	; arg
		mov	dword ptr [esp+8], offset aDownloadlistsS ; "DownloadLists/%s.lst"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], edi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], offset aGame_1 ; "GAME"
		mov	dword ptr [esp+8], offset aWt ;	"wt"
		mov	[esp+4], edi
		mov	[esp], edx
		call	dword ptr [eax+8]
		mov	[ebx+140h], eax

loc_EC5C6:				; CODE XREF: CDownloadListGenerator::OnLevelLoadStart(char  const*)+5Aj
		mov	[esp], ebx	; s
		mov	dword ptr [esp+0Ch], offset com_gamedir	; arg
		mov	dword ptr [esp+8], offset off_1F6446 ; format
		mov	dword ptr [esp+4], 100h	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	[esp], ebx
		add	ebx, 100h
		mov	dword ptr [esp+4], 2Fh
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	[esp+0Ch], esi	; arg
		mov	[esp], ebx	; s
		mov	dword ptr [esp+8], (offset aDFS+9) ; format
		mov	dword ptr [esp+4], 40h ; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN22CDownloadListGenerator16OnLevelLoadStartEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDownloadListGenerator::OnLevelLoadEnd(void)
_ZN22CDownloadListGenerator14OnLevelLoadEndEv proc near
					; CODE XREF: Host_Changelevel(bool,char	 const*,char  const*)+1CCp
					; Host_NewGame(char *,bool,bool,char  const*,char  const*,bool)+6BBp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+140h]
		test	eax, eax
		jz	short loc_EC664
		mov	edx, ds:g_pFileSystem
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+4], eax
		mov	[esp], ecx
		call	dword ptr [edx+0Ch]
		mov	dword ptr [ebx+140h], 0

loc_EC664:				; CODE XREF: CDownloadListGenerator::OnLevelLoadEnd(void)+12j
		mov	dword ptr [ebx+17Ch], 0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN22CDownloadListGenerator14OnLevelLoadEndEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDownloadListGenerator__ForceExactFile(int, char *arg, int)
_ZN22CDownloadListGenerator14ForceExactFileEPKc15ConsistencyType proc near
					; CODE XREF: SV_ForceExactFile(char  const*)+1Dp
					; SV_ForceSimpleMaterial(char  const*)+1Dp

src		= dword	ptr -202Ch
s		= byte ptr -2024h
dest		= byte ptr -1024h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 204Ch
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg]
		mov	ebx, [ebp+arg_8]
		mov	edx, [esi+17Ch]
		test	edx, edx
		jz	loc_EC7A4
		lea	eax, [ebx-1]
		mov	dword ptr [esp+4], offset a_vmt	; ".vmt"
		cmp	eax, 2
		mov	[esp], edi	; haystack
		mov	eax, 1
		cmovnb	ebx, eax
		call	strstr
		test	eax, eax
		jz	loc_EC830

loc_EC6C9:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+1C2j
		mov	dword ptr [esp+8], 9
		mov	dword ptr [esp+4], offset aMaterials ; "materials"
		mov	[esp], edi
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jz	loc_EC7B0
		lea	eax, [ebp+s]
		mov	[esp+0Ch], edi	; arg
		mov	dword ptr [esp+8], offset aMaterialsS ;	"materials\\%s"
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[ebp+src], eax
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_EC711:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+150j
		mov	eax, [ebp+src]
		mov	[esp+4], eax
		lea	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z8CRC_FilePmPKc ; CRC_File(ulong *,char  const*)
		mov	edx, [ebp+src]
		xor	eax, 1

loc_EC72F:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+1DCj
		test	al, al
		jnz	loc_EC7D8
		lea	edi, [ebp+dest]
		mov	[esp+4], edx	; src
		mov	dword ptr [esp+8], 1000h ; n
		mov	[esp], edi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], edi
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_24], bl
		mov	[ebp+var_20], eax
		mov	eax, [esi+17Ch]
		mov	edx, [eax]
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx+34h]
		cmp	eax, 0FFFFh
		jz	short loc_EC7F8
		mov	edx, [esi+17Ch]
		lea	ebx, [ebp+var_24]
		mov	ecx, [edx]
		mov	[esp+0Ch], ebx
		mov	dword ptr [esp+8], 8
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [ecx+2Ch]

loc_EC7A4:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+1Dj
		add	esp, 204Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC7B0:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+63j
		lea	eax, [ebp+s]
		mov	dword ptr [esp+8], 1000h ; n
		mov	[esp+4], edi	; src
		mov	[ebp+src], eax
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	loc_EC711
; ---------------------------------------------------------------------------
		align 4

loc_EC7D8:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+B1j
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aFailedToCrcS ;	"Failed	to CRC %s\n"
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		add	esp, 204Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_EC7F8:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+101j
		mov	eax, [esi+17Ch]
		lea	ecx, [ebp+var_24]
		mov	edx, [eax]
		mov	[esp+8], edi
		mov	[esp+10h], ecx
		mov	dword ptr [esp+0Ch], 8
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	dword ptr [edx+24h]
		add	esp, 204Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC830:				; CODE XREF: CDownloadListGenerator::ForceExactFile(char  const*,ConsistencyType)+43j
		mov	dword ptr [esp+4], offset a_vtf	; ".vtf"
		mov	[esp], edi	; haystack
		call	strstr
		test	eax, eax
		jnz	loc_EC6C9
		lea	eax, [ebp+var_1C]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_Z8CRC_FilePmPKc ; CRC_File(ulong *,char  const*)
		mov	edx, edi
		xor	eax, 1
		jmp	loc_EC72F
_ZN22CDownloadListGenerator14ForceExactFileEPKc15ConsistencyType endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDownloadListGenerator::ForceModelBounds(char	 const*, Vector	 const&, Vector	 const&)
_ZN22CDownloadListGenerator16ForceModelBoundsEPKcRK6VectorS4_ proc near
					; CODE XREF: SV_ForceModelBounds(char  const*,Vector  const&,Vector  const&)+23p

var_103C	= dword	ptr -103Ch
dest		= byte ptr -1034h
var_34		= byte ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 105Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		mov	ecx, [esi+17Ch]
		test	ecx, ecx
		jz	loc_EC95A
		test	ebx, ebx
		mov	eax, (offset asc_20E578+4)
		mov	[ebp+var_103C],	edx
		cmovz	ebx, eax
		mov	dword ptr [esp+4], offset a_mdl	; ".mdl"
		mov	[esp], ebx
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		mov	edx, [ebp+var_103C]
		test	eax, eax
		jz	loc_EC9A0
		mov	[esp+4], ebx	; src
		lea	ebx, [ebp+dest]
		mov	[ebp+var_103C],	edx
		mov	dword ptr [esp+8], 1000h ; n
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], ebx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	edx, [ebp+var_103C]
		mov	[ebp+var_34], 3
		mov	eax, [edx]
		mov	[ebp+var_30], eax
		mov	eax, [edx+4]
		mov	[ebp+var_2C], eax
		mov	eax, [edx+8]
		mov	[ebp+var_28], eax
		mov	eax, [edi]
		mov	[ebp+var_24], eax
		mov	eax, [edi+4]
		mov	[ebp+var_20], eax
		mov	eax, [edi+8]
		mov	[ebp+var_1C], eax
		mov	eax, [esi+17Ch]
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+34h]
		cmp	eax, 0FFFFh
		jz	short loc_EC968
		mov	edx, [esi+17Ch]
		lea	ebx, [ebp+var_34]
		mov	ecx, [edx]
		mov	[esp+0Ch], ebx
		mov	dword ptr [esp+8], 1Ch
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [ecx+2Ch]

loc_EC95A:				; CODE XREF: CDownloadListGenerator::ForceModelBounds(char  const*,Vector  const&,Vector  const&)+20j
					; CDownloadListGenerator::ForceModelBounds(char	 const*,Vector	const&,Vector  const&)+140j
		add	esp, 105Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_EC968:				; CODE XREF: CDownloadListGenerator::ForceModelBounds(char  const*,Vector  const&,Vector  const&)+C7j
		mov	eax, [esi+17Ch]
		lea	ecx, [ebp+var_34]
		mov	edx, [eax]
		mov	[esp+8], ebx
		mov	[esp+10h], ecx
		mov	dword ptr [esp+0Ch], 1Ch
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	dword ptr [edx+24h]
		add	esp, 105Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EC9A0:				; CODE XREF: CDownloadListGenerator::ForceModelBounds(char  const*,Vector  const&,Vector  const&)+4Ej
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aWarningTryingT	; "Warning - trying to enforce model bound"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	short loc_EC95A
_ZN22CDownloadListGenerator16ForceModelBoundsEPKcRK6VectorS4_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDownloadListGenerator__OnResourcePrecachedFullPath(char *s, char	*src)
_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc proc near
					; CODE XREF: CDownloadListGenerator::OnResourcePrecachedFullPath(char *)+11Fp
					; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)+149p ...

var_1040	= dword	ptr -1040h
var_103C	= dword	ptr -103Ch
var_1038	= byte ptr -1038h
dest		= byte ptr -101Ah
var_1A		= word ptr -1Ah
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
s		= dword	ptr  8
src		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1068h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+src]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+s]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 2Fh
		mov	[esp], ebx
		call	_Z12V_FixSlashesPcc ; V_FixSlashes(char	*,char)
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [eax+28h]
		test	al, al
		jnz	short loc_ECA20

loc_ECA09:				; CODE XREF: CDownloadListGenerator::OnResourcePrecachedFullPath(char *)+7Aj
					; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)+9Dj ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ECA20:				; CODE XREF: CDownloadListGenerator::OnResourcePrecachedFullPath(char *)+47j
		mov	[esp], esi	; s
		call	strlen
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	[esp], esi
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jnz	short loc_ECA09
		lea	eax, [ebp+var_1A]
		mov	[esp+8], ebx
		lea	edi, [esi+144h]
		mov	[esp], eax
		mov	[esp+4], edi
		call	_ZNK15CUtlSymbolTable4FindEPKc ; CUtlSymbolTable::Find(char  const*)
		sub	esp, 4
		cmp	[ebp+var_1A], 0FFFFh
		jnz	short loc_ECA09
		lea	eax, [ebp+var_1038]
		mov	[esp+8], ebx
		mov	[esp], eax
		mov	[esp+4], edi
		call	_ZN15CUtlSymbolTable9AddStringEPKc ; CUtlSymbolTable::AddString(char  const*)
		sub	esp, 4
		mov	dword ptr [esp+4], offset a_mdl	; ".mdl"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jz	loc_ECBE0
		lea	edi, [ebp+dest]
		mov	dword ptr [esp+8], 0FF6h ; n
		mov	[esp+4], ebx	; src
		mov	[esp], edi	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	dword ptr [esp+4], offset a_mdl	; ".mdl"
		mov	[esp], edi	; haystack
		call	strstr
		mov	dword ptr [esp+8], 0Ah ; n
		mov	[ebp+var_103C],	eax
		mov	[esp], eax	; dest
		mov	dword ptr [esp+4], offset a_vvd	; ".vvd"
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; src
		mov	[esp], esi	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)
		mov	eax, [ebp+var_103C]
		mov	dword ptr [esp+8], 0Ah ; n
		mov	dword ptr [esp+4], offset a_ani	; ".ani"
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; src
		mov	[esp], esi	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)
		mov	eax, [ebp+var_103C]
		mov	dword ptr [esp+8], 0Ah ; n
		mov	dword ptr [esp+4], offset a_dx80_vtx ; ".dx80.vtx"
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; src
		mov	[esp], esi	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)
		mov	eax, [ebp+var_103C]
		mov	dword ptr [esp+8], 0Ah ; n
		mov	dword ptr [esp+4], offset a_dx90_vtx ; ".dx90.vtx"
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; src
		mov	[esp], esi	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)
		mov	eax, [ebp+var_103C]
		mov	dword ptr [esp+8], 0Ah ; n
		mov	dword ptr [esp+4], offset a_sw_vtx ; ".sw.vtx"
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; src
		mov	[esp], esi	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)
		mov	eax, [ebp+var_103C]
		mov	dword ptr [esp+8], 0Ah ; n
		mov	dword ptr [esp+4], offset a_phy	; ".phy"
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; src
		mov	[esp], esi	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)
		mov	eax, [ebp+var_103C]
		mov	dword ptr [esp+8], 0Ah ; n
		mov	dword ptr [esp+4], offset a_jpg	; ".jpg"
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], edi	; src
		mov	[esp], esi	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)

loc_ECBE0:				; CODE XREF: CDownloadListGenerator::OnResourcePrecachedFullPath(char *)+CAj
		mov	[esp], ebx
		mov	dword ptr [esp+4], offset com_gamedir
		call	_Z9V_stristrPcPKc ; V_stristr(char *,char  const*)
		test	eax, eax
		mov	ebx, eax
		jz	loc_ECA09
		mov	dword ptr [esp], offset	com_gamedir ; s
		call	strlen
		lea	edi, [ebx+eax+1]
		test	edi, edi
		jz	loc_ECA09
		mov	ebx, [esi+140h]
		test	ebx, ebx
		jz	short loc_ECC98
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], ebx
		mov	[esp], edx
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], (offset asc_211581+3)
		call	dword ptr [eax+4]
		mov	edx, ds:g_pFileSystem
		mov	[esp], edi	; s
		mov	[ebp+var_1040],	edx
		call	strlen
		mov	edx, [ebp+var_1040]
		lea	ecx, [edx+4]
		mov	edx, [edx+4]
		mov	[esp+0Ch], ebx
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	[esp], ecx
		call	dword ptr [edx+4]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+0Ch], ebx
		mov	dword ptr [esp+8], 2
		mov	dword ptr [esp+4], (offset aS_2f+0Eh)
		mov	[esp], edx
		call	dword ptr [eax+4]

loc_ECC98:				; CODE XREF: CDownloadListGenerator::OnResourcePrecachedFullPath(char *)+25Aj
		mov	eax, [esi+17Ch]
		test	eax, eax
		jz	loc_ECA09
		mov	edx, [eax]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	[esp+8], edi
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	dword ptr [edx+24h]
		jmp	loc_ECA09
_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc_part_6 proc near
					; CODE XREF: CDownloadListGenerator::OnResourcePrecached(char  const*)+16j

src		= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 1018h
		mov	[ebp+var_8], ebx
		mov	ebx, eax
		mov	eax, ds:g_pFileSystem
		mov	[ebp+var_4], esi
		lea	esi, [ebp+src]
		mov	ecx, [eax]
		mov	dword ptr [esp+0Ch], 1000h
		mov	[esp+8], esi
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+80h]
		test	eax, eax
		jz	short loc_ECD17
		mov	[esp+4], esi	; src
		mov	[esp], ebx	; s
		call	_ZN22CDownloadListGenerator27OnResourcePrecachedFullPathEPc ; CDownloadListGenerator::OnResourcePrecachedFullPath(char *)

loc_ECD17:				; CODE XREF: _ZN22CDownloadListGenerator19OnResourcePrecachedEPKc_part_6+39j
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc_part_6 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDownloadListGenerator::OnResourcePrecached(char  const*)
_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc proc near
					; CODE XREF: CDownloadListGenerator::OnSoundPrecached(char  const*)+66p
					; CDownloadListGenerator::OnModelPrecached(char	 const*)+6Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		movzx	ecx, byte ptr [edx]
		test	cl, cl
		jz	short loc_ECD50
		cmp	cl, 2Ah
		jz	short loc_ECD50
		pop	ebp
		jmp	short _ZN22CDownloadListGenerator19OnResourcePrecachedEPKc_part_6
; ---------------------------------------------------------------------------
		align 10h

loc_ECD50:				; CODE XREF: CDownloadListGenerator::OnResourcePrecached(char  const*)+Ej
					; CDownloadListGenerator::OnResourcePrecached(char  const*)+13j
		pop	ebp
		retn
_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDownloadListGenerator::OnSoundPrecached(char	 const*)
_ZN22CDownloadListGenerator16OnSoundPrecachedEPKc proc near

dest		= byte ptr -1008h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 1014h
		mov	ebx, [ebp+arg_4]
		movzx	eax, byte ptr [ebx]
		mov	[esp], eax	; int
		call	isalnum
		mov	dword ptr [esp+8], 5
		cmp	eax, 1
		mov	dword ptr [esp+4], offset aSound ; "sound"
		adc	ebx, 0
		mov	[esp], ebx
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jz	short loc_ECDD8
		mov	[esp+0Ch], ebx	; arg
		lea	ebx, [ebp+dest]
		mov	dword ptr [esp+8], offset aSoundS_0 ; "sound\\%s"
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_ECDBC:				; CODE XREF: CDownloadListGenerator::OnSoundPrecached(char  const*)+92j
		mov	eax, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)
		add	esp, 1014h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ECDD8:				; CODE XREF: CDownloadListGenerator::OnSoundPrecached(char  const*)+38j
		mov	[esp+4], ebx	; src
		lea	ebx, [ebp+dest]
		mov	dword ptr [esp+8], 1000h ; n
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	short loc_ECDBC
_ZN22CDownloadListGenerator16OnSoundPrecachedEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CDownloadListGenerator__OnModelPrecached(int, char *arg)
_ZN22CDownloadListGenerator16OnModelPrecachedEPKc proc near

dest		= byte ptr -1008h
arg_0		= dword	ptr  8
arg		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 1010h
		mov	ebx, [ebp+arg]
		mov	dword ptr [esp+4], offset a_vmt	; ".vmt"
		mov	esi, [ebp+arg_0]
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jz	loc_ECED8
		mov	dword ptr [esp+8], 9
		mov	dword ptr [esp+4], offset aMaterials ; "materials"
		mov	[esp], ebx
		call	_Z10V_strnicmpPKcS0_i ;	V_strnicmp(char	 const*,char  const*,int)
		test	eax, eax
		jz	short loc_ECEB8
		mov	[esp+0Ch], ebx	; arg
		lea	ebx, [ebp+dest]
		mov	dword ptr [esp+8], offset aMaterialsS ;	"materials\\%s"
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)

loc_ECE67:				; CODE XREF: CDownloadListGenerator::OnModelPrecached(char  const*)+D2j
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)
		mov	dword ptr [esp+4], offset a_vmt	; ".vmt"
		mov	[esp], ebx	; haystack
		call	strstr
		test	eax, eax
		jz	short loc_ECEAB
		mov	dword ptr [esp+8], 5 ; n
		mov	dword ptr [esp+4], offset a_vtf	; ".vtf"
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)

loc_ECEAB:				; CODE XREF: CDownloadListGenerator::OnModelPrecached(char  const*)+85j
		add	esp, 1010h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_ECEB8:				; CODE XREF: CDownloadListGenerator::OnModelPrecached(char  const*)+43j
		mov	[esp+4], ebx	; src
		lea	ebx, [ebp+dest]
		mov	dword ptr [esp+8], 1000h ; n
		mov	[esp], ebx	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		jmp	short loc_ECE67
; ---------------------------------------------------------------------------
		align 8

loc_ECED8:				; CODE XREF: CDownloadListGenerator::OnModelPrecached(char  const*)+23j
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)
		add	esp, 1010h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN22CDownloadListGenerator16OnModelPrecachedEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDownloadListGenerator::SetStringTable(INetworkStringTable *)
_ZN22CDownloadListGenerator14SetStringTableEP19INetworkStringTable proc	near
					; CODE XREF: CGameServer::CreateEngineStringTables(void)+4FFp

var_1130	= dword	ptr -1130h
arg		= byte ptr -112Ch
s		= byte ptr -111Ch
src		= byte ptr -11Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+s]
		push	ebx
		sub	esp, 113Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		mov	[ebx+17Ch], eax
		lea	eax, [ebx+144h]
		mov	[esp], eax
		call	_ZN15CUtlSymbolTable9RemoveAllEv ; CUtlSymbolTable::RemoveAll(void)
		lea	eax, [ebx+100h]
		mov	[esp], esi	; s
		mov	dword ptr [ebp+arg], eax
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aMapsS_bsp ; "maps\\%s.bsp"
		mov	dword ptr [esp+4], 1000h ; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	dword ptr [esp+4], offset aModinfo ; "ModInfo"
		mov	edi, eax
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	edx, ds:g_pFileSystem
		xor	eax, eax
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], offset aGameinfo_txt	; "gameinfo.txt"
		mov	[esp], edi	; int
		lea	ecx, [edx+4]
		test	edx, edx
		cmovnz	eax, ecx
		mov	[esp+4], eax	; int
		call	_ZN9KeyValues12LoadFromFileEP15IBaseFileSystemPKcS3_ ; KeyValues::LoadFromFile(IBaseFileSystem *,char  const*,char  const*)
		test	al, al
		jnz	loc_ED0B0
		mov	[esp], edi	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_ECFAA:				; CODE XREF: CDownloadListGenerator::SetStringTable(INetworkStringTable	*)+1F4j
		mov	eax, dword ptr [ebp+arg]
		mov	dword ptr [esp+8], offset aMapsGraphsS_ai ; "maps\\graphs\\%s.ain"
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp], esi	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)

loc_ECFD8:				; CODE XREF: CDownloadListGenerator::SetStringTable(INetworkStringTable	*)+1EEj
		mov	eax, dword ptr [ebp+arg]
		mov	[esp], esi	; s
		mov	dword ptr [esp+8], offset aMapsS_nav ; "maps\\%s.nav"
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	dword ptr [esp+4], offset aResourefiles	; "resourefiles"
		mov	esi, eax
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	eax, dword ptr [ebp+arg]
		lea	edi, [ebp+src]
		mov	dword ptr [esp+8], offset aMapsS_res ; "maps/%s.res"
		mov	dword ptr [esp+4], 104h	; maxlen
		mov	[esp], edi	; s
		mov	[esp+0Ch], eax	; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, ds:g_pFileSystem
		xor	eax, eax
		mov	dword ptr [esp+0Ch], offset aGame_1 ; "GAME"
		mov	[esp+8], edi	; src
		mov	[esp], esi	; int
		lea	ecx, [edx+4]
		test	edx, edx
		cmovnz	eax, ecx
		mov	[esp+4], eax	; int
		call	_ZN9KeyValues12LoadFromFileEP15IBaseFileSystemPKcS3_ ; KeyValues::LoadFromFile(IBaseFileSystem *,char  const*,char  const*)
		test	al, al
		jz	short loc_ED0A3
		mov	edi, [esi+18h]
		test	edi, edi
		jz	short loc_ED09B
		nop

loc_ED080:				; CODE XREF: CDownloadListGenerator::SetStringTable(INetworkStringTable	*)+1A9j
		mov	[esp], edi
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN22CDownloadListGenerator19OnResourcePrecachedEPKc ; CDownloadListGenerator::OnResourcePrecached(char	 const*)
		mov	edi, [edi+14h]
		test	edi, edi
		jnz	short loc_ED080

loc_ED09B:				; CODE XREF: CDownloadListGenerator::SetStringTable(INetworkStringTable	*)+18Dj
		mov	[esp], esi	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)

loc_ED0A3:				; CODE XREF: CDownloadListGenerator::SetStringTable(INetworkStringTable	*)+186j
		add	esp, 113Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED0B0:				; CODE XREF: CDownloadListGenerator::SetStringTable(INetworkStringTable	*)+ACj
		mov	dword ptr [esp+8], 1 ; int
		mov	dword ptr [esp+4], offset aNodegraph ; "nodegraph"
		mov	[esp], edi	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		mov	[esp], edi	; void *
		mov	[ebp+var_1130],	eax
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		mov	eax, [ebp+var_1130]
		test	eax, eax
		jz	loc_ECFD8
		jmp	loc_ECFAA
_ZN22CDownloadListGenerator14SetStringTableEP19INetworkStringTable endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], edi
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDownloadListGenerator::~CDownloadListGenerator()
_ZN22CDownloadListGeneratorD2Ev	proc near
					; DATA XREF: _GLOBAL__sub_I_g_DownloadListGenerator+6Bo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	[ebp+arg_0], 144h
		pop	ebp
		jmp	_ZN15CUtlSymbolTableD2Ev ; CUtlSymbolTable::~CUtlSymbolTable()
_ZN22CDownloadListGeneratorD2Ev	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; PropOffsetLT(unsigned	short  const&, unsigned	short  const&)
_Z12PropOffsetLTRKtS0_ proc near	; DATA XREF: CSendTablePrecalc::CSendTablePrecalc(void)+1C4o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		pop	ebp
		movzx	ecx, word ptr [eax]
		cmp	[edx], cx
		setb	al
		retn
_Z12PropOffsetLTRKtS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetDataTableProxyIndices_R(CSendTablePrecalc *, CSendNode *, CBuildHierarchyStruct *)
_ZL26SetDataTableProxyIndices_RP17CSendTablePrecalcP9CSendNodeP21CBuildHierarchyStruct proc near
					; CODE XREF: SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)+2Ep
					; CSendTablePrecalc::SetupFlatPropertyArray(void)+13Dp

var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, eax
		push	esi
		mov	esi, edx
		push	ebx
		sub	esp, 1Ch
		mov	[ebp+var_1C], ecx
		mov	eax, [edx+0Ch]
		test	eax, eax
		jle	short loc_ED1A8
		xor	ebx, ebx
		jmp	short loc_ED178
; ---------------------------------------------------------------------------
		align 10h

loc_ED160:				; CODE XREF: SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)+4Cj
		mov	word ptr [edx+20h], 0FFh

loc_ED166:				; CODE XREF: SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)+5Fj
		mov	ecx, [ebp+var_1C]
		mov	eax, edi
		add	ebx, 1
		call	_ZL26SetDataTableProxyIndices_RP17CSendTablePrecalcP9CSendNodeP21CBuildHierarchyStruct ; SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)
		cmp	ebx, [esi+0Ch]
		jge	short loc_ED1A8

loc_ED178:				; CODE XREF: SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)+19j
		mov	eax, [esi]
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax+ebx*4]
		movsx	eax, word ptr [edx+14h]
		mov	eax, [ecx+eax*4+8]
		test	byte ptr [eax+39h], 2
		jnz	short loc_ED160
		mov	eax, [edi+0F8h]
		mov	[edx+20h], ax
		add	dword ptr [edi+0F8h], 1
		jmp	short loc_ED166
; ---------------------------------------------------------------------------
		align 8

loc_ED1A8:				; CODE XREF: SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)+15j
					; SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)+36j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZL26SetDataTableProxyIndices_RP17CSendTablePrecalcP9CSendNodeP21CBuildHierarchyStruct endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetRecursiveProxyIndices_R(SendTable *, CSendNode *, int &)
_ZL26SetRecursiveProxyIndices_RP9SendTableP9CSendNodeRi	proc near
					; CODE XREF: SetRecursiveProxyIndices_R(SendTable *,CSendNode *,int &)+3Dp
					; CSendTablePrecalc::SetupFlatPropertyArray(void)+154p

var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, ecx
		push	esi
		mov	esi, edx
		push	ebx
		sub	esp, 2Ch
		mov	[ebp+var_1C], eax
		mov	eax, [ecx]
		cmp	eax, 3Fh
		jg	short loc_ED200

loc_ED1C7:				; CODE XREF: SetRecursiveProxyIndices_R(SendTable *,CSendNode *,int &)+68j
		mov	[esi+22h], ax
		add	dword ptr [edi], 1
		mov	edx, [esi+0Ch]
		test	edx, edx
		jle	short loc_ED1F7
		xor	ebx, ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_ED1E0:				; CODE XREF: SetRecursiveProxyIndices_R(SendTable *,CSendNode *,int &)+45j
		mov	eax, [esi]
		mov	ecx, edi
		mov	edx, [eax+ebx*4]
		add	ebx, 1
		mov	eax, [ebp+var_1C]
		call	_ZL26SetRecursiveProxyIndices_RP9SendTableP9CSendNodeRi	; SetRecursiveProxyIndices_R(SendTable *,CSendNode *,int &)
		cmp	ebx, [esi+0Ch]
		jl	short loc_ED1E0

loc_ED1F7:				; CODE XREF: SetRecursiveProxyIndices_R(SendTable *,CSendNode *,int &)+23j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED200:				; CODE XREF: SetRecursiveProxyIndices_R(SendTable *,CSendNode *,int &)+15j
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+8]
		mov	dword ptr [esp], offset	aTooManyProxies	; "Too many proxies for	datatable %s."
		mov	[esp+4], eax
		call	Error
		mov	eax, [edi]
		jmp	short loc_ED1C7
_ZL26SetRecursiveProxyIndices_RP9SendTableP9CSendNodeRi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101 proc near
					; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+91p
					; CSendTablePrecalc::SetupFlatPropertyArray(void)+35p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	[ebp+var_1C], ecx
		mov	ecx, [edx]
		mov	[ebp+var_24], eax
		mov	eax, 1
		mov	[ebp+var_20], edx
		mov	ebx, [ebp+arg_0]
		test	ecx, ecx
		jle	short loc_ED2BC
		xor	edi, edi
		xor	esi, esi
		mov	[ebp+var_38], edi
		jmp	short loc_ED294
; ---------------------------------------------------------------------------
		align 10h

loc_ED250:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+7Fj
		mov	ecx, [eax+28h]
		test	ecx, ecx
		mov	[ebp+var_34], ecx
		jz	loc_ED300

loc_ED25E:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+F2j
		mov	edi, [ebx]
		cmp	edi, 1FFh
		mov	[ebp+var_30], edi
		jg	short loc_ED2C8

loc_ED26B:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+C6j
		mov	edx, [ebp+var_34]
		mov	ecx, [ebp+var_1C]
		mov	edi, [ebp+var_30]
		mov	[ecx+edi*8], edx
		mov	edx, [eax+30h]
		mov	eax, [ebx]
		mov	[ecx+eax*8+4], edx
		add	dword ptr [ebx], 1

loc_ED283:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+86j
					; _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+98j
		add	[ebp+var_38], 1
		add	esi, 50h
		mov	edx, [ebp+var_20]
		mov	edi, [ebp+var_38]
		cmp	edi, [edx]
		jge	short loc_ED2F0

loc_ED294:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+27j
		mov	edx, [ebp+var_24]
		mov	eax, esi
		add	eax, [edx]
		test	byte ptr [eax+38h], 40h
		jnz	short loc_ED250
		mov	eax, [eax+44h]
		test	eax, eax
		jz	short loc_ED283
		mov	ecx, [ebp+var_1C]
		lea	edx, [eax+4]
		mov	[esp], ebx
		call	_ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101
		test	al, al
		jnz	short loc_ED283
		xor	eax, eax

loc_ED2BC:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+1Ej
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ED2C8:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+49j
		mov	edx, [ebp+var_34]
		mov	[ebp+var_28], eax
		mov	dword ptr [esp], offset	aSendtable_getp	; "SendTable_GetPropsExcluded: Overflowed "...
		mov	[esp+4], edx
		call	Error
		mov	ecx, [ebx]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_30], ecx
		jmp	short loc_ED26B
; ---------------------------------------------------------------------------
		align 10h

loc_ED2F0:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+72j
		add	esp, 3Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED300:				; CODE XREF: _ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101+38j
		mov	[ebp+var_28], eax
		mov	dword ptr [esp], offset	aFoundAnExclude	; "Found an exclude prop missing a name."
		call	Error
		mov	eax, [ebp+var_28]
		jmp	loc_ED25E
_ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSendNode::CSendNode(void)
_ZN9CSendNodeC2Ev proc near		; CODE XREF: CSendTablePrecalc::CSendTablePrecalc(void)+C5p
					; SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp	const**,int &)+125p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	word ptr [eax+14h], 0FFFFh
		mov	dword ptr [eax+18h], 0
		mov	word ptr [eax+1Eh], 0
		mov	word ptr [eax+1Ch], 0
		mov	word ptr [eax+20h], 0FEh
		pop	ebp
		retn
_ZN9CSendNodeC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSendTablePrecalc::CSendTablePrecalc(void)
_ZN17CSendTablePrecalcC2Ev proc	near	; CODE XREF: CRecvDecoder::CRecvDecoder(void)+10p
					; SendTable_Init(SendTable **,int)+54p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 4
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx], (offset _ZTV17CSendTablePrecalc+8)
		lea	eax, [ebx+68h]
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 0
		mov	dword ptr [ebx+24h], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+30h], 0
		mov	dword ptr [ebx+34h], 0
		mov	dword ptr [ebx+38h], 0
		mov	dword ptr [ebx+3Ch], 0
		mov	dword ptr [ebx+40h], 0
		mov	dword ptr [ebx+44h], 0
		mov	dword ptr [ebx+48h], 0
		mov	dword ptr [ebx+4Ch], 0
		mov	dword ptr [ebx+50h], 0
		mov	dword ptr [ebx+54h], 0
		mov	dword ptr [ebx+58h], 0
		mov	dword ptr [ebx+5Ch], 0
		mov	dword ptr [ebx+60h], 0
		mov	dword ptr [ebx+64h], 0
		mov	[esp], eax
		call	_ZN9CSendNodeC2Ev ; CSendNode::CSendNode(void)
		mov	dword ptr [ebx+94h], 0
		mov	dword ptr [ebx+98h], 0
		mov	dword ptr [ebx+9Ch], 0
		mov	dword ptr [ebx+0A0h], 0
		mov	dword ptr [ebx+0A4h], 0
		mov	dword ptr [ebx+0A8h], 0
		mov	dword ptr [ebx+0ACh], 0
		mov	dword ptr [ebx+0B0h], 0
		mov	dword ptr [ebx+0B4h], 0
		mov	dword ptr [ebx+0B8h], 0
		mov	dword ptr [ebx+0BCh], 0
		mov	dword ptr [ebx+0C0h], 0
		mov	dword ptr [ebx+0C4h], 0
		mov	dword ptr [ebx+0C8h], 0
		mov	dword ptr [ebx+0CCh], 0
		mov	dword ptr [ebx+0D0h], 0
		mov	dword ptr [ebx+0D4h], 0
		mov	dword ptr [ebx+0D8h], 0
		mov	dword ptr [ebx+0DCh], 0
		mov	dword ptr [ebx+0E0h], 0
		mov	dword ptr [ebx+0E4h], 0
		mov	dword ptr [ebx+0E8h], 0
		mov	dword ptr [ebx+0ECh], 0
		mov	dword ptr [ebx+0F0h], 0
		mov	dword ptr [ebx+0F4h], 0
		mov	dword ptr [ebx+0FCh], offset _Z12PropOffsetLTRKtS0_ ; PropOffsetLT(ushort  const&,ushort  const&)
		mov	dword ptr [ebx+100h], 0
		mov	dword ptr [ebx+104h], 0
		mov	dword ptr [ebx+108h], 0
		mov	word ptr [ebx+10Ch], 0FFFFh
		mov	word ptr [ebx+10Eh], 0
		mov	word ptr [ebx+110h], 0FFFFh
		mov	word ptr [ebx+112h], 0FFFFh
		mov	dword ptr [ebx+114h], 0
		mov	dword ptr [ebx+90h], 0
		mov	dword ptr [ebx+8Ch], 0
		mov	dword ptr [ebx+0F8h], 0
		add	esp, 4
		pop	ebx
		pop	ebp
		retn
_ZN17CSendTablePrecalcC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FindExcludeProp(char *s2,	int, int, int)
_Z15FindExcludePropPKcS0_PK11ExcludePropi proc near
					; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+5Bp

var_1C		= dword	ptr -1Ch
s2		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_C]
		mov	eax, [ebp+s2]
		test	ebx, ebx
		jle	short loc_ED608
		mov	ebx, [ebp+arg_8]
		xor	esi, esi
		mov	edi, eax
		lea	esi, [esi+0]

loc_ED5D0:				; CODE XREF: FindExcludeProp(char  const*,char	const*,ExcludeProp  const*,int)+54j
		mov	[esp+4], edi	; s2
		mov	eax, [ebx]
		mov	[ebp+var_1C], ebx
		mov	[esp], eax	; s1
		call	strcasecmp
		test	eax, eax
		jnz	short loc_ED5FB
		mov	edx, [ebp+arg_4]
		mov	[esp+4], edx	; s2
		mov	eax, [ebx+4]
		mov	[esp], eax	; s1
		call	strcasecmp
		test	eax, eax
		jz	short loc_ED618

loc_ED5FB:				; CODE XREF: FindExcludeProp(char  const*,char	const*,ExcludeProp  const*,int)+33j
		add	esi, 1
		add	ebx, 8
		cmp	esi, [ebp+arg_C]
		jnz	short loc_ED5D0
		xor	edi, edi

loc_ED608:				; CODE XREF: FindExcludeProp(char  const*,char	const*,ExcludeProp  const*,int)+13j
		add	esp, 2Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ED618:				; CODE XREF: FindExcludeProp(char  const*,char	const*,ExcludeProp  const*,int)+49j
		mov	edi, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		mov	eax, edi
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z15FindExcludePropPKcS0_PK11ExcludePropi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_SortByPriority(CBuildHierarchyStruct *)
_Z24SendTable_SortByPriorityP21CBuildHierarchyStruct proc near
					; CODE XREF: CSendTablePrecalc::SetupFlatPropertyArray(void)+AEp

var_1C		= dword	ptr -1Ch
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 10h
		mov	edx, [ebp+arg_0]
		mov	ebx, [edx+900Ch]

loc_ED644:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *):loc_ED6D6j
		cmp	edi, ebx
		jge	loc_ED6D6

loc_ED64C:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+A0j
		lea	eax, [edi+1000h]
		mov	ecx, [edx+eax*4+0Ch]
		mov	[ebp+var_14], eax
		movzx	eax, byte ptr [edx+edi+800Ch]
		test	byte ptr [ecx+39h], 4
		mov	[ebp+var_10], ecx
		mov	[ebp+var_15], al
		mov	eax, edi
		jz	short loc_ED68D
		jmp	short loc_ED6DE
; ---------------------------------------------------------------------------
		align 8

loc_ED678:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+62j
		mov	ecx, [edx+eax*4+400Ch]
		movzx	esi, byte ptr [edx+eax+800Ch]
		test	byte ptr [ecx+39h], 4
		jnz	short loc_ED6A0

loc_ED68D:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+3Dj
		add	eax, 1
		cmp	eax, ebx
		jnz	short loc_ED678

loc_ED694:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+ACj
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED6A0:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+5Bj
		mov	[ebp+var_1C], ecx

loc_ED6A3:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+BAj
		mov	ecx, [ebp+var_10]
		mov	[edx+eax*4+400Ch], ecx
		movzx	ecx, [ebp+var_15]
		mov	[edx+eax+800Ch], cl
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_1C]
		mov	[edx+eax*4+0Ch], ecx
		mov	eax, esi
		mov	[edx+edi+800Ch], al
		add	edi, 1
		cmp	edi, ebx
		jl	loc_ED64C

loc_ED6D6:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+16j
		jnz	loc_ED644
		jmp	short loc_ED694
; ---------------------------------------------------------------------------

loc_ED6DE:				; CODE XREF: SendTable_SortByPriority(CBuildHierarchyStruct *)+3Fj
		mov	ecx, [ebp+var_10]
		mov	eax, edi
		movzx	esi, [ebp+var_15]
		mov	[ebp+var_1C], ecx
		jmp	short loc_ED6A3
_Z24SendTable_SortByPriorityP21CBuildHierarchyStruct endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CalcPathLengths_R(CSendNode *, CUtlVector<int, CUtlMemory<int, int>> &, int, int &)
_Z17CalcPathLengths_RP9CSendNodeR10CUtlVectorIi10CUtlMemoryIiiEEiRi proc near
					; CODE XREF: CalcPathLengths_R(CSendNode *,CUtlVector<int,CUtlMemory<int,int>> &,int,int &)+4Dp
					; SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)+B0p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		movzx	ecx, word ptr [esi+22h]
		mov	edx, [ebx]
		mov	[edx+ecx*4], eax
		add	[edi], eax
		mov	edx, [esi+0Ch]
		test	edx, edx
		jle	short loc_ED747
		add	eax, 1
		xor	ebx, ebx
		mov	[ebp+var_1C], eax
		nop

loc_ED720:				; CODE XREF: CalcPathLengths_R(CSendNode *,CUtlVector<int,CUtlMemory<int,int>> &,int,int &)+55j
		mov	eax, [ebp+var_1C]
		mov	[esp+0Ch], edi
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		mov	eax, [esi]
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp], eax
		call	_Z17CalcPathLengths_RP9CSendNodeR10CUtlVectorIi10CUtlMemoryIiiEEiRi ; CalcPathLengths_R(CSendNode *,CUtlVector<int,CUtlMemory<int,int>>	&,int,int &)
		cmp	ebx, [esi+0Ch]
		jl	short loc_ED720

loc_ED747:				; CODE XREF: CalcPathLengths_R(CSendNode *,CUtlVector<int,CUtlMemory<int,int>> &,int,int &)+25j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z17CalcPathLengths_RP9CSendNodeR10CUtlVectorIi10CUtlMemoryIiiEEiRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FillPathEntries_R(CSendTablePrecalc *, CSendNode *, CSendNode	*, int &)
_Z17FillPathEntries_RP17CSendTablePrecalcP9CSendNodeS2_Ri proc near
					; CODE XREF: FillPathEntries_R(CSendTablePrecalc *,CSendNode *,CSendNode *,int &)+D2p
					; SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)+E4p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_C]
		mov	edx, [ebp+arg_8]
		mov	ecx, [edi+18h]
		movzx	eax, word ptr [ebx+22h]
		test	edx, edx
		lea	eax, [ecx+eax*4]
		mov	ecx, [esi]
		mov	[eax], cx
		jz	loc_ED838
		movzx	edx, word ptr [edx+22h]
		mov	ecx, [edi+18h]
		shl	edx, 2
		add	edx, ecx
		mov	ecx, edx
		mov	[ebp+var_1C], edx
		movzx	edx, word ptr [edx+2]
		add	edx, 1
		mov	[eax+2], dx
		cmp	word ptr [ecx+2], 0
		jz	short loc_ED7D4
		xor	eax, eax
		mov	[ebp+var_20], ebx
		lea	esi, [esi+0]

loc_ED7A8:				; CODE XREF: FillPathEntries_R(CSendTablePrecalc *,CSendNode *,CSendNode *,int &)+7Fj
		mov	ecx, [esi]
		mov	ebx, [ebp+var_1C]
		lea	edx, [ecx+1]
		mov	[esi], edx
		movzx	ebx, word ptr [ebx]
		mov	edx, [edi+4]
		mov	[ebp+var_24], ebx
		add	ebx, eax
		add	eax, 1
		mov	ebx, [edx+ebx*4]
		mov	[edx+ecx*4], ebx
		mov	ecx, [ebp+var_1C]
		movzx	edx, word ptr [ecx+2]
		cmp	edx, eax
		jg	short loc_ED7A8
		mov	ebx, [ebp+var_20]

loc_ED7D4:				; CODE XREF: FillPathEntries_R(CSendTablePrecalc *,CSendNode *,CSendNode *,int &)+4Dj
		movzx	ecx, word ptr [ebx+22h]
		mov	edx, [esi]
		mov	eax, [edi+4]
		mov	[eax+edx*4+2], cx
		mov	edx, [esi]
		mov	eax, [edi+4]
		movzx	ecx, word ptr [ebx+14h]
		mov	[eax+edx*4], cx
		add	dword ptr [esi], 1

loc_ED7F2:				; CODE XREF: FillPathEntries_R(CSendTablePrecalc *,CSendNode *,CSendNode *,int &)+EEj
		mov	ecx, [ebx+0Ch]
		test	ecx, ecx
		jle	short loc_ED82C
		xor	eax, eax
		mov	[ebp+var_1C], esi
		mov	esi, ebx
		mov	ebx, eax
		lea	esi, [esi+0]

loc_ED808:				; CODE XREF: FillPathEntries_R(CSendTablePrecalc *,CSendNode *,CSendNode *,int &)+DAj
		mov	eax, [ebp+var_1C]
		mov	[esp+8], esi
		mov	[esp+0Ch], eax
		mov	eax, [esi]
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z17FillPathEntries_RP17CSendTablePrecalcP9CSendNodeS2_Ri ; FillPathEntries_R(CSendTablePrecalc	*,CSendNode *,CSendNode	*,int &)
		cmp	ebx, [esi+0Ch]
		jl	short loc_ED808

loc_ED82C:				; CODE XREF: FillPathEntries_R(CSendTablePrecalc *,CSendNode *,CSendNode *,int &)+A7j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_ED838:				; CODE XREF: FillPathEntries_R(CSendTablePrecalc *,CSendNode *,CSendNode *,int &)+26j
		mov	word ptr [eax+2], 0
		jmp	short loc_ED7F2
_Z17FillPathEntries_RP17CSendTablePrecalcP9CSendNodeS2_Ri endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; AreBitArraysEqual(void  const*, void	const*,	int)
_Z17AreBitArraysEqualPKvS0_i proc near	; CODE XREF: CompareBitArrays(void  const*,void	 const*,int,int)+20j

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	ecx, [ebp+arg_8]
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	edx, ecx
		sar	edx, 5
		test	edx, edx
		jle	short loc_ED877
		mov	edi, [esi]
		xor	eax, eax
		cmp	[ebx], edi
		jnz	short loc_ED896
		xor	eax, eax
		jmp	short loc_ED870
; ---------------------------------------------------------------------------
		align 8

loc_ED868:				; CODE XREF: AreBitArraysEqual(void  const*,void  const*,int)+35j
		mov	edi, [esi+eax*4]
		cmp	[ebx+eax*4], edi
		jnz	short loc_ED8A0

loc_ED870:				; CODE XREF: AreBitArraysEqual(void  const*,void  const*,int)+22j
		add	eax, 1
		cmp	eax, edx
		jnz	short loc_ED868

loc_ED877:				; CODE XREF: AreBitArraysEqual(void  const*,void  const*,int)+16j
		and	ecx, 1Fh
		mov	eax, 1
		jz	short loc_ED896
		mov	eax, [esi+edx*4]
		xor	eax, [ebx+edx*4]
		mov	edx, 1
		shl	edx, cl
		sub	edx, 1
		test	eax, edx
		setz	al

loc_ED896:				; CODE XREF: AreBitArraysEqual(void  const*,void  const*,int)+1Ej
					; AreBitArraysEqual(void  const*,void  const*,int)+3Fj
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED8A0:				; CODE XREF: AreBitArraysEqual(void  const*,void  const*,int)+2Ej
		pop	ebx
		xor	eax, eax
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z17AreBitArraysEqualPKvS0_i endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CompareBitArrays(void	 const*, void  const*, int, int)
_Z16CompareBitArraysPKvS0_ii proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		cmp	eax, [ebp+arg_C]
		jnz	short loc_ED8D8
		test	eax, eax
		js	short loc_ED8D8
		cmp	edx, ecx
		jz	short loc_ED8E0
		pop	ebp
		lea	esi, [esi+0]
		jmp	_Z17AreBitArraysEqualPKvS0_i ; AreBitArraysEqual(void  const*,void  const*,int)
; ---------------------------------------------------------------------------
		align 4

loc_ED8D8:				; CODE XREF: CompareBitArrays(void  const*,void	 const*,int,int)+Fj
					; CompareBitArrays(void	 const*,void  const*,int,int)+13j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED8E0:				; CODE XREF: CompareBitArrays(void  const*,void	 const*,int,int)+17j
		mov	eax, 1
		pop	ebp
		retn
_Z16CompareBitArraysPKvS0_ii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ShouldWatchThisProp(int, int, char *s2)
_Z19ShouldWatchThisPropPK9SendTableiPKc	proc near
					; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int)+23p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
s2		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword ptr ds:g_CV_DTWatchEnt+1Ch
		mov	eax, [eax+30h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_ED908
		cmp	[ebp+arg_4], eax
		jz	short loc_ED970

loc_ED908:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+11j
		mov	eax, dword ptr ds:g_CV_DTWatchClass+14h
		mov	edx, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		mov	ecx, eax
		and	ecx, 1000h
		jz	short loc_ED950
		xor	eax, eax
		cmp	byte ptr [edx],	0
		jz	short locret_ED947

loc_ED923:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+79j
		test	ecx, ecx
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jz	loc_ED9B8

loc_ED930:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+DAj
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[esp], eax
		call	_Z9V_stristrPKcS0_ ; V_stristr(char  const*,char  const*)
		test	eax, eax
		setnz	al

locret_ED947:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+31j
					; ShouldWatchThisProp(SendTable	 const*,int,char  const*)+77j ...
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED950:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+2Aj
		mov	eax, dword ptr ds:g_CV_DTWatchClass+1Ch
		mov	edx, [eax+24h]
		mov	eax, (offset asc_20E578+4)
		test	edx, edx
		cmovz	edx, eax
		xor	eax, eax
		cmp	byte ptr [edx],	0
		jz	short locret_ED947
		jmp	short loc_ED923
; ---------------------------------------------------------------------------
		align 10h

loc_ED970:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+16j
		test	ds:g_CV_DTWatchVar+15h,	10h
		mov	edx, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jz	short loc_ED9A0

loc_ED97E:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+C2j
		cmp	byte ptr [edx],	0
		mov	eax, 1
		jz	short locret_ED947
		mov	eax, [ebp+s2]
		mov	[esp], edx	; s1
		mov	[esp+4], eax	; s2
		call	strcasecmp
		leave
		test	eax, eax
		setz	al
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED9A0:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+8Cj
		mov	eax, dword ptr ds:g_CV_DTWatchVar+1Ch
		mov	edx, [eax+24h]
		mov	eax, (offset asc_20E578+4)
		test	edx, edx
		cmovz	edx, eax
		jmp	short loc_ED97E
; ---------------------------------------------------------------------------
		align 8

loc_ED9B8:				; CODE XREF: ShouldWatchThisProp(SendTable  const*,int,char  const*)+3Aj
		mov	eax, dword ptr ds:g_CV_DTWatchClass+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx
		jmp	loc_ED930
_Z19ShouldWatchThisPropPK9SendTableiPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Sendprop_UsingDebugWatch(void)
_Z24Sendprop_UsingDebugWatchv proc near	; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int):loc_FD3F1p
		mov	edx, dword ptr ds:g_CV_DTWatchEnt+1Ch
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		cmp	dword ptr [edx+30h], 0FFFFFFFFh
		jz	short loc_ED9F0
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_ED9F0:				; CODE XREF: Sendprop_UsingDebugWatch(void)+12j
		test	ds:g_CV_DTWatchClass+15h, 10h
		mov	eax, offset aFcvar_never_as ; "FCVAR_NEVER_AS_STRING"
		jz	short loc_EDA10
		cmp	byte ptr [eax],	0
		setnz	al

loc_EDA04:				; CODE XREF: Sendprop_UsingDebugWatch(void)+58j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EDA10:				; CODE XREF: Sendprop_UsingDebugWatch(void)+2Cj
		mov	eax, dword ptr ds:g_CV_DTWatchClass+1Ch
		mov	edx, (offset asc_20E578+4)
		mov	eax, [eax+24h]
		test	eax, eax
		cmovz	eax, edx
		cmp	byte ptr [eax],	0
		setnz	al
		jmp	short loc_EDA04
_Z24Sendprop_UsingDebugWatchv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl DataTable_Warning(char *format, char arg)
_Z17DataTable_WarningPKcz proc near	; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+291p
					; EncodeFloat(SendProp	const*,float,bf_write *,int)+12Fp ...

s		= byte ptr -1008h
format		= dword	ptr  8
arg		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	eax, [ebp+arg]
		sub	esp, 1014h
		mov	[esp+0Ch], eax	; arg
		mov	eax, [ebp+format]
		lea	ebx, [ebp+s]
		mov	[esp], ebx	; s
		mov	dword ptr [esp+4], 1000h ; maxlen
		mov	[esp+8], eax	; format
		call	_Z11V_vsnprintfPciPKcS_	; V_vsnprintf(char *,int,char  const*,char *)
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aDatatableWarni	; "DataTable warning: %s"
		call	Warning
		add	esp, 1014h
		pop	ebx
		pop	ebp
		retn
_Z17DataTable_WarningPKcz endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSendNode::~CSendNode()
_ZN9CSendNodeD2Ev proc near		; CODE XREF: CSendNode::~CSendNode()+2Cp
					; CSendTablePrecalc::~CSendTablePrecalc()+13Ap

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0Ch]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		js	short loc_EDAC6
		mov	edi, eax
		shl	edi, 2
		lea	esi, [esi+0]

loc_EDAA0:				; CODE XREF: CSendNode::~CSendNode()+44j
		mov	eax, [esi]
		mov	ebx, [eax+edi]
		test	ebx, ebx
		jz	short loc_EDAB9
		mov	[esp], ebx
		call	_ZN9CSendNodeD2Ev ; CSendNode::~CSendNode()
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)

loc_EDAB9:				; CODE XREF: CSendNode::~CSendNode()+27j
		sub	[ebp+var_1C], 1
		sub	edi, 4
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jnz	short loc_EDAA0

loc_EDAC6:				; CODE XREF: CSendNode::~CSendNode()+15j
		mov	dword ptr [esi+0Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP9CSendNodeiE5PurgeEv ;	CUtlMemory<CSendNode *,int>::Purge(void)
		mov	eax, [esi]
		mov	dword ptr [esi+0Ch], 0
		mov	[esi+10h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP9CSendNodeiE5PurgeEv ;	CUtlMemory<CSendNode *,int>::Purge(void)
		mov	eax, [esi]
		mov	[esi+10h], eax
		mov	[ebp+arg_0], esi
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN10CUtlMemoryIP9CSendNodeiE5PurgeEv ;	CUtlMemory<CSendNode *,int>::Purge(void)
_ZN9CSendNodeD2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [esi+0Ch], 0
		mov	ebx, eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP9CSendNodeiE5PurgeEv ;	CUtlMemory<CSendNode *,int>::Purge(void)
		mov	eax, [esi]
		mov	[esi+10h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP9CSendNodeiE5PurgeEv ;	CUtlMemory<CSendNode *,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSendTablePrecalc::~CSendTablePrecalc()
_ZN17CSendTablePrecalcD2Ev proc	near	; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+Dp
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::PurgeAndDeleteElements(void)+91p
					; DATA XREF: ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 20h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8Ch]
		mov	dword ptr [ebx], (offset _ZTV17CSendTablePrecalc+8)
		test	eax, eax
		jz	short loc_EDB52
		mov	dword ptr [eax+0Ch], 0

loc_EDB52:				; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+19j
		lea	eax, [ebx+0FCh]
		mov	[esp], eax
		lea	esi, [ebx+100h]
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)
		mov	word ptr [ebx+110h], 0FFFFh
		mov	[esp], esi
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapItttE6Node_tEtEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Purge(void)
		mov	word ptr [ebx+112h], 0FFFFh
		mov	[esp], esi
		lea	esi, [ebx+0E4h]
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapItttE6Node_tEtEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Purge(void)
		mov	dword ptr [ebx+0F0h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	eax, [ebx+0E4h]
		mov	[ebx+0F4h], eax
		mov	[esp], esi
		lea	esi, [ebx+0D0h]
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	dword ptr [ebx+0DCh], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	eax, [ebx+0D0h]
		mov	[ebx+0E0h], eax
		mov	[esp], esi
		lea	esi, [ebx+0BCh]
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	dword ptr [ebx+0C8h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	eax, [ebx+0BCh]
		mov	[ebx+0CCh], eax
		mov	[esp], esi
		lea	esi, [ebx+0A8h]
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	dword ptr [ebx+0B4h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	eax, [ebx+0A8h]
		mov	[ebx+0B8h], eax
		mov	[esp], esi
		lea	esi, [ebx+94h]
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	dword ptr [ebx+0A0h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		mov	eax, [ebx+94h]
		mov	[ebx+0A4h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv ; CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)
		lea	eax, [ebx+68h]
		mov	[esp], eax
		call	_ZN9CSendNodeD2Ev ; CSendNode::~CSendNode()
		lea	esi, [ebx+54h]
		mov	dword ptr [ebx+60h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	eax, [ebx+54h]
		mov	[ebx+64h], eax
		mov	[esp], esi
		lea	esi, [ebx+40h]
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	dword ptr [ebx+4Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		mov	eax, [ebx+40h]
		mov	[ebx+50h], eax
		mov	[esp], esi
		lea	esi, [ebx+2Ch]
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		mov	dword ptr [ebx+38h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	eax, [ebx+2Ch]
		mov	[ebx+3Ch], eax
		mov	[esp], esi
		lea	esi, [ebx+18h]
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	dword ptr [ebx+24h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Purge(void)
		mov	eax, [ebx+18h]
		mov	[ebx+28h], eax
		mov	[esp], esi
		lea	esi, [ebx+4]
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Purge(void)
		mov	dword ptr [ebx+10h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Purge(void)
		mov	eax, [ebx+4]
		mov	[ebx+14h], eax
		mov	[ebp+arg_0], esi
		add	esp, 20h
		pop	ebx
		pop	esi
		pop	ebp
		jmp	_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Purge(void)
_ZN17CSendTablePrecalcD2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx+60h], 0
		lea	esi, [ebx+54h]
		mov	[ebp-0Ch], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	edx, [ebx+54h]
		mov	[ebx+64h], edx
		mov	[esp], esi
		lea	esi, [ebx+40h]
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	dword ptr [ebx+4Ch], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		mov	edx, [ebx+40h]
		mov	[ebx+50h], edx
		mov	[esp], esi
		lea	esi, [ebx+2Ch]
		call	_ZN10CUtlMemoryIhiE5PurgeEv ; CUtlMemory<uchar,int>::Purge(void)
		mov	dword ptr [ebx+38h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	edx, [ebx+2Ch]
		mov	[ebx+3Ch], edx
		mov	[esp], esi
		lea	esi, [ebx+18h]
		call	_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv ;	CUtlMemory<SendProp  const*,int>::Purge(void)
		mov	dword ptr [ebx+24h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Purge(void)
		mov	edx, [ebx+18h]
		mov	[ebx+28h], edx
		mov	[esp], esi
		lea	esi, [ebx+4]
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Purge(void)
		mov	dword ptr [ebx+10h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Purge(void)
		mov	edx, [ebx+4]
		mov	[ebx+14h], edx
		mov	[esp], esi
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE5PurgeEv ; CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Purge(void)
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CSendTablePrecalc___CSendTablePrecalc(void *)
_ZN17CSendTablePrecalcD0Ev proc	near	; DATA XREF: .rodata:`vtable for'CSendTablePrecalco

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN17CSendTablePrecalcD2Ev ; CSendTablePrecalc::~CSendTablePrecalc()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN17CSendTablePrecalcD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_BuildHierarchy_IterateProps(CSendNode *, SendTable	const*,	CBuildHierarchyStruct *, SendProp  const**, int	&)
_Z37SendTable_BuildHierarchy_IteratePropsP9CSendNodePK9SendTableP21CBuildHierarchyStructPPK8SendPropRi proc near
					; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+DAp
					; SendTable_BuildHierarchy(CSendNode *,SendTable  const*,CBuildHierarchyStruct *)+58p

var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+4]
		test	eax, eax
		jle	short loc_EDE6B
		xor	esi, esi
		xor	ebx, ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_EDE10:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+79j
		mov	edi, [edx]
		add	edi, esi
		mov	ecx, [edi+38h]
		test	ecx, 140h
		jnz	short loc_EDE60
		mov	eax, [edi+30h]
		mov	[ebp+var_2C], eax
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+4]
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+var_2C]
		mov	[esp+4], eax	; int
		mov	eax, [edx+8]
		mov	[ebp+var_30], edx
		mov	[ebp+var_34], ecx
		mov	[esp], eax	; s2
		call	_Z15FindExcludePropPKcS0_PK11ExcludePropi ; FindExcludeProp(char  const*,char  const*,ExcludeProp  const*,int)
		mov	edx, [ebp+var_30]
		test	eax, eax
		mov	ecx, [ebp+var_34]
		jz	short loc_EDE78
		lea	esi, [esi+0]

loc_EDE60:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+2Dj
					; SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp	const**,int &)+A6j ...
		add	ebx, 1
		add	esi, 50h
		cmp	[edx+4], ebx
		jg	short loc_EDE10

loc_EDE6B:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+11j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_EDE78:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+68j
		cmp	dword ptr [edi+8], 6
		jz	short loc_EDEA0
		mov	ecx, [ebp+arg_10]
		mov	eax, [ecx]
		cmp	eax, 0FFFh
		jg	short loc_EDED8

loc_EDE8A:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+106j
		mov	ecx, [ebp+arg_C]
		mov	[ecx+eax*4], edi
		mov	ecx, [ebp+arg_10]
		add	dword ptr [ecx], 1
		jmp	short loc_EDE60
; ---------------------------------------------------------------------------
		align 10h

loc_EDEA0:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+8Cj
		and	ch, 10h
		jz	short loc_EDF00
		mov	ecx, [ebp+arg_10]
		mov	[esp+10h], ecx
		mov	ecx, [ebp+arg_C]
		mov	[esp+0Ch], ecx
		mov	ecx, [ebp+arg_8]
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	eax, [edi+44h]
		mov	[ebp+var_30], edx
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_Z37SendTable_BuildHierarchy_IteratePropsP9CSendNodePK9SendTableP21CBuildHierarchyStructPPK8SendPropRi ; SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)
		mov	edx, [ebp+var_30]
		jmp	short loc_EDE60
; ---------------------------------------------------------------------------
		align 8

loc_EDED8:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+98j
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_30], edx
		mov	dword ptr [esp], offset	aSendtable_buil	; "SendTable_BuildHierarchy: overflowed	no"...
		mov	[esp+4], ecx
		call	Error
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+var_30]
		mov	eax, [ecx]
		jmp	short loc_EDE8A
; ---------------------------------------------------------------------------
		align 10h

loc_EDF00:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+B3j
		mov	[ebp+var_30], edx
		mov	dword ptr [esp], 24h
		call	_Znwj		; operator new(uint)
		mov	[ebp+var_40], eax
		mov	[esp], eax
		call	_ZN9CSendNodeC2Ev ; CSendNode::CSendNode(void)
		mov	ecx, [ebp+arg_8]
		mov	eax, [ebp+var_40]
		mov	edx, [ebp+var_30]
		mov	ecx, [ecx+4008h]
		mov	[ebp+var_1C], eax
		cmp	ecx, 0FFFh
		mov	[ebp+var_2C], ecx
		ja	short loc_EDF90

loc_EDF37:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+1C8j
		mov	ecx, [ebp+var_2C]
		mov	eax, [ebp+arg_8]
		mov	[eax+ecx*4+8], edi
		mov	eax, [ebp+var_40]
		mov	[eax+14h], cx
		mov	ecx, [ebp+arg_8]
		lea	eax, [ebp+var_1C]
		add	dword ptr [ecx+4008h], 1
		mov	[esp+8], eax
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+0Ch]
		mov	[ebp+var_30], edx
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP9CSendNode10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<CSendNode *,CUtlMemory<CSendNode *,int>>::InsertBefore(int,CSendNode *	const&)
		mov	ecx, [ebp+arg_8]
		mov	[esp+8], ecx
		mov	eax, [edi+44h]
		mov	[esp+4], eax
		mov	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z24SendTable_BuildHierarchyP9CSendNodePK9SendTableP21CBuildHierarchyStruct ; SendTable_BuildHierarchy(CSendNode *,SendTable  const*,CBuildHierarchyStruct *)
		mov	edx, [ebp+var_30]
		jmp	loc_EDE60
; ---------------------------------------------------------------------------
		align 10h

loc_EDF90:				; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+145j
		mov	eax, [edx+8]
		mov	dword ptr [esp], offset	aOverflowedData	; "Overflowed datatable	prop list in SendT"...
		mov	[esp+4], eax
		call	Error
		mov	ecx, [ebp+arg_8]
		mov	eax, [ebp+var_1C]
		mov	edx, [ebp+var_30]
		mov	ecx, [ecx+4008h]
		mov	[ebp+var_40], eax
		mov	[ebp+var_2C], ecx
		jmp	loc_EDF37
_Z37SendTable_BuildHierarchy_IteratePropsP9CSendNodePK9SendTableP21CBuildHierarchyStructPPK8SendPropRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_BuildHierarchy(CSendNode *,	SendTable  const*, CBuildHierarchyStruct *)
_Z24SendTable_BuildHierarchyP9CSendNodePK9SendTableP21CBuildHierarchyStruct proc near
					; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+192p
					; CSendTablePrecalc::SetupFlatPropertyArray(void)+A0p

var_4030	= dword	ptr -4030h
var_402C	= dword	ptr -402Ch
var_401C	= byte ptr -401Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_401C]
		push	ebx
		sub	esp, 404Ch
		mov	[ebp+var_1C], 0
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	[edx+18h], eax
		mov	edx, [ecx+900Ch]
		mov	[edi+1Ch], dx
		movzx	ebx, byte ptr [ecx+9010h]
		lea	edx, [ebx+1]
		mov	[ecx+9010h], dl
		lea	edx, [ebp+var_1C]
		mov	[esp+10h], edx
		mov	[esp+4], eax
		mov	[esp+0Ch], esi
		mov	[esp+8], ecx
		mov	[esp], edi
		call	_Z37SendTable_BuildHierarchy_IteratePropsP9CSendNodePK9SendTableP21CBuildHierarchyStructPPK8SendPropRi ; SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+var_1C]
		mov	eax, [eax+900Ch]
		mov	[ebp+var_402C],	edx
		mov	[ebp+var_4030],	eax
		add	eax, edx
		cmp	eax, 0FFFh
		ja	short loc_EE0B8

loc_EE03E:				; CODE XREF: SendTable_BuildHierarchy(CSendNode	*,SendTable  const*,CBuildHierarchyStruct *)+11Cj
		mov	eax, [ebp+var_402C]
		test	eax, eax
		jle	short loc_EE09B
		mov	ecx, [ebp+arg_8]
		xor	eax, eax
		mov	edx, [ebp+var_4030]
		mov	edi, [ebp+var_4030]
		lea	edx, [ecx+edx]
		lea	ecx, [ecx+edi*4]
		mov	edi, edx
		lea	esi, [esi+0]

loc_EE068:				; CODE XREF: SendTable_BuildHierarchy(CSendNode	*,SendTable  const*,CBuildHierarchyStruct *)+C2j
		mov	edx, [esi+eax*4]
		mov	[ecx+eax*4+400Ch], edx
		mov	[edi+eax+800Ch], bl
		add	eax, 1
		cmp	eax, [ebp+var_402C]
		jnz	short loc_EE068
		mov	edx, [ebp+var_4030]
		mov	ecx, [ebp+arg_8]
		add	eax, edx
		mov	[ebp+var_4030],	eax
		mov	[ecx+900Ch], eax

loc_EE09B:				; CODE XREF: SendTable_BuildHierarchy(CSendNode	*,SendTable  const*,CBuildHierarchyStruct *)+86j
		mov	edi, [ebp+arg_0]
		movzx	eax, word ptr [ebp+var_4030]
		sub	ax, [edi+1Ch]
		mov	[edi+1Eh], ax
		add	esp, 404Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EE0B8:				; CODE XREF: SendTable_BuildHierarchy(CSendNode	*,SendTable  const*,CBuildHierarchyStruct *)+7Cj
		mov	dword ptr [esp], offset	aSendtable_bu_0	; "SendTable_BuildHierarchy: overflowed	pr"...
		call	Error
		mov	edi, [ebp+arg_8]
		mov	ecx, [ebp+var_1C]
		mov	edi, [edi+900Ch]
		mov	[ebp+var_402C],	ecx
		mov	[ebp+var_4030],	edi
		jmp	loc_EE03E
_Z24SendTable_BuildHierarchyP9CSendNodePK9SendTableP21CBuildHierarchyStruct endp

; ---------------------------------------------------------------------------
		jmp	short _Z28SendTable_GenerateProxyPathsP17CSendTablePrecalci ; SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_GenerateProxyPaths(CSendTablePrecalc *, int)
_Z28SendTable_GenerateProxyPathsP17CSendTablePrecalci proc near	; CODE XREF: .text:000EE0E1j
					; CSendTablePrecalc::SetupFlatPropertyArray(void)+163p

s		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		lea	eax, [ebx+18h]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN10CUtlVectorIN17CSendTablePrecalc10CProxyPathE10CUtlMemoryIS1_iEE8SetCountEi	; CUtlVector<CSendTablePrecalc::CProxyPath,CUtlMemory<CSendTablePrecalc::CProxyPath,int>>::SetCount(int)
		test	edi, edi
		jle	short loc_EE134
		xor	edx, edx
		lea	esi, [esi+0]

loc_EE118:				; CODE XREF: SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)+42j
		lea	eax, ds:0[edx*4]
		add	edx, 1
		add	eax, [ebx+18h]
		cmp	edx, edi
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		jnz	short loc_EE118

loc_EE134:				; CODE XREF: SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)+20j
		lea	esi, [ebp+s]
		mov	[esp+4], edi
		shl	edi, 2
		mov	[esp], esi
		mov	[ebp+var_20], 0
		mov	[ebp+s], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE8SetCountEi ;	CUtlVector<int,CUtlMemory<int,int>>::SetCount(int)
		mov	eax, [ebp+s]
		mov	[esp+8], edi	; n
		mov	dword ptr [esp+4], 0 ; c
		lea	edi, [ebx+68h]
		mov	[esp], eax	; s
		call	memset
		lea	eax, [ebp+var_20]
		mov	[esp+4], esi
		mov	[esp+0Ch], eax
		mov	[esp], edi
		mov	dword ptr [esp+8], 0
		call	_Z17CalcPathLengths_RP9CSendNodeR10CUtlVectorIi10CUtlMemoryIiiEEiRi ; CalcPathLengths_R(CSendNode *,CUtlVector<int,CUtlMemory<int,int>>	&,int,int &)
		mov	eax, [ebp+var_20]
		mov	[ebp+var_1C], 0
		mov	[esp+4], eax
		lea	eax, [ebx+4]
		mov	[esp], eax
		call	_ZN10CUtlVectorIN17CSendTablePrecalc15CProxyPathEntryE10CUtlMemoryIS1_iEE8SetCountEi ; CUtlVector<CSendTablePrecalc::CProxyPathEntry,CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>>::SetCount(int)
		lea	eax, [ebp+var_1C]
		mov	[esp+4], edi
		mov	[esp+0Ch], eax
		mov	[esp], ebx
		mov	dword ptr [esp+8], 0
		call	_Z17FillPathEntries_RP17CSendTablePrecalcP9CSendNodeS2_Ri ; FillPathEntries_R(CSendTablePrecalc	*,CSendNode *,CSendNode	*,int &)
		mov	[esp], esi
		mov	[ebp+var_28], 0
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp+s]
		mov	[esp], esi
		mov	[ebp+var_24], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z28SendTable_GenerateProxyPathsP17CSendTablePrecalci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CSendTablePrecalc::SetupFlatPropertyArray(void)
_ZN17CSendTablePrecalc22SetupFlatPropertyArrayEv proc near
					; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+150p
					; SendTable_Init(SendTable **,int)+80p

var_A03C	= dword	ptr -0A03Ch
var_A034	= dword	ptr -0A034h
var_A030	= dword	ptr -0A030h
var_A02C	= byte ptr -0A02Ch
var_602C	= dword	ptr -602Ch
var_6028	= byte ptr -6028h
var_2028	= byte ptr -2028h
var_1028	= dword	ptr -1028h
var_1024	= byte ptr -1024h
var_1020	= byte ptr -1020h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0A04Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8Ch]
		mov	[esp], esi
		call	_Z17SetupArrayProps_RI9SendTable8SendPropEvPT_ ; SetupArrayProps_R<SendTable,SendProp>(SendTable *)
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], 0
		lea	edx, [esi+4]
		mov	[esp], eax
		mov	eax, esi
		lea	ecx, [ebp+var_1020]
		call	_ZL26SendTable_GetPropsExcludedPK9SendTableP11ExcludePropRii_isra_7_constprop_101
		xor	edx, edx
		test	al, al
		jnz	short loc_EE250
		add	esp, 0A04Ch
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EE250:				; CODE XREF: CSendTablePrecalc::SetupFlatPropertyArray(void)+3Ej
		lea	eax, [ebp+var_1020]
		mov	[esp+4], esi
		mov	[ebp+var_A034],	eax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_602C],	0
		mov	[ebp+var_1028],	0
		mov	[ebp+var_1024],	0
		mov	[ebp+var_A030],	eax
		lea	eax, [ebx+68h]
		mov	[ebp+var_A03C],	eax
		lea	eax, [ebp+var_A034]
		mov	[esp+8], eax
		mov	eax, [ebp+var_A03C]
		mov	[esp], eax
		call	_Z24SendTable_BuildHierarchyP9CSendNodePK9SendTableP21CBuildHierarchyStruct ; SendTable_BuildHierarchy(CSendNode *,SendTable  const*,CBuildHierarchyStruct *)
		lea	eax, [ebp+var_A034]
		mov	[esp], eax
		call	_Z24SendTable_SortByPriorityP21CBuildHierarchyStruct ; SendTable_SortByPriority(CBuildHierarchyStruct *)
		mov	eax, [ebp+var_1028]
		mov	[esp+8], eax
		lea	eax, [ebp+var_6028]
		mov	[esp+4], eax
		lea	eax, [ebx+2Ch]
		mov	[esp], eax
		call	_ZN10CUtlVectorIPK8SendProp10CUtlMemoryIS2_iEE9CopyArrayEPKS2_i	; CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::CopyArray(SendProp  const* const*,int)
		mov	eax, [ebp+var_602C]
		mov	[esp+8], eax
		lea	eax, [ebp+var_A02C]
		mov	[esp+4], eax
		lea	eax, [ebx+54h]
		mov	[esp], eax
		call	_ZN10CUtlVectorIPK8SendProp10CUtlMemoryIS2_iEE9CopyArrayEPKS2_i	; CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::CopyArray(SendProp  const* const*,int)
		mov	edi, [ebp+var_1028]
		lea	eax, [ebx+40h]
		mov	[esp], eax
		mov	[esp+4], edi
		call	_ZN10CUtlVectorIh10CUtlMemoryIhiEE8SetCountEi ;	CUtlVector<uchar,CUtlMemory<uchar,int>>::SetCount(int)
		test	edi, edi
		jle	short loc_EE325
		xor	eax, eax
		lea	esi, [esi+0]

loc_EE310:				; CODE XREF: CSendTablePrecalc::SetupFlatPropertyArray(void)+123j
		movzx	ecx, [ebp+eax+var_2028]
		mov	edx, [ebx+40h]
		mov	[edx+eax], cl
		add	eax, 1
		cmp	eax, edi
		jnz	short loc_EE310

loc_EE325:				; CODE XREF: CSendTablePrecalc::SetupFlatPropertyArray(void)+108j
		mov	edx, [ebp+var_A03C]
		lea	ecx, [ebp+var_A034]
		mov	eax, ebx
		mov	dword ptr [ebx+0F8h], 0
		call	_ZL26SetDataTableProxyIndices_RP17CSendTablePrecalcP9CSendNodeP21CBuildHierarchyStruct ; SetDataTableProxyIndices_R(CSendTablePrecalc *,CSendNode *,CBuildHierarchyStruct *)
		mov	edx, [ebp+var_A03C]
		lea	ecx, [ebp+var_1C]
		mov	eax, esi
		mov	[ebp+var_1C], 0
		call	_ZL26SetRecursiveProxyIndices_RP9SendTableP9CSendNodeRi	; SetRecursiveProxyIndices_R(SendTable *,CSendNode *,int &)
		mov	eax, [ebp+var_1C]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z28SendTable_GenerateProxyPathsP17CSendTablePrecalci ;	SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)
		add	esp, 0A04Ch
		mov	edx, 1
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN17CSendTablePrecalc22SetupFlatPropertyArrayEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void SetupArrayProps_R<SendTable, SendProp>(SendTable	*)
_Z17SetupArrayProps_RI9SendTable8SendPropEvPT_ proc near
					; CODE XREF: CSendTablePrecalc::SetupFlatPropertyArray(void)+18p
					; SetupArrayProps_R<SendTable,SendProp>(SendTable *)+86p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		movzx	eax, byte ptr [edi+10h]
		test	al, 1
		jnz	short loc_EE3F0
		or	eax, 1
		mov	[edi+10h], al
		mov	eax, [edi+4]
		test	eax, eax
		jle	short loc_EE3F0
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_EE3C0
; ---------------------------------------------------------------------------
		align 10h

loc_EE3B0:				; CODE XREF: SetupArrayProps_R<SendTable,SendProp>(SendTable *)+4Bj
		cmp	eax, 6
		jz	short loc_EE400

loc_EE3B5:				; CODE XREF: SetupArrayProps_R<SendTable,SendProp>(SendTable *)+8Bj
		add	ebx, 1
		add	esi, 50h
		cmp	[edi+4], ebx
		jle	short loc_EE3F0

loc_EE3C0:				; CODE XREF: SetupArrayProps_R<SendTable,SendProp>(SendTable *)+25j
					; SetupArrayProps_R<SendTable,SendProp>(SendTable *)+68j
		mov	ecx, [edi]
		lea	edx, [ecx+esi]
		mov	eax, [edx+8]
		cmp	eax, 5
		jnz	short loc_EE3B0
		test	ebx, ebx
		jz	short loc_EE410

loc_EE3D1:				; CODE XREF: SetupArrayProps_R<SendTable,SendProp>(SendTable *)+ABj
		lea	eax, [ecx+esi-50h]
		add	ebx, 1
		add	esi, 50h
		or	dword ptr [eax+38h], 100h
		mov	[edx+18h], eax
		cmp	[edi+4], ebx
		jg	short loc_EE3C0
		lea	esi, [esi+0]

loc_EE3F0:				; CODE XREF: SetupArrayProps_R<SendTable,SendProp>(SendTable *)+12j
					; SetupArrayProps_R<SendTable,SendProp>(SendTable *)+1Fj ...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EE400:				; CODE XREF: SetupArrayProps_R<SendTable,SendProp>(SendTable *)+33j
		mov	eax, [edx+44h]
		mov	[esp], eax
		call	_Z17SetupArrayProps_RI9SendTable8SendPropEvPT_ ; SetupArrayProps_R<SendTable,SendProp>(SendTable *)
		jmp	short loc_EE3B5
; ---------------------------------------------------------------------------
		align 10h

loc_EE410:				; CODE XREF: SetupArrayProps_R<SendTable,SendProp>(SendTable *)+4Fj
		mov	eax, [edx+30h]
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	aSetuparrayprop	; "SetupArrayProps_R: array prop '%s' is a"...
		mov	[esp+4], eax
		call	Error
		mov	ecx, [edi]
		mov	edx, [ebp+var_1C]
		jmp	short loc_EE3D1
_Z17SetupArrayProps_RI9SendTable8SendPropEvPT_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CSendNode *, int>::Purge(void)
_ZN10CUtlMemoryIP9CSendNodeiE5PurgeEv proc near	; CODE XREF: CSendNode::~CSendNode()+50p
					; CSendNode::~CSendNode()+64p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EE45C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EE455
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EE455:				; CODE XREF: CUtlMemory<CSendNode *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EE45C:				; CODE XREF: CUtlMemory<CSendNode *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP9CSendNodeiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CSendTablePrecalc::CProxyPathEntry, int>::Purge(void)
_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE5PurgeEv proc near
					; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+1CCp
					; CSendTablePrecalc::~CSendTablePrecalc()+1E0j	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EE49C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EE495
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EE495:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EE49C:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CSendTablePrecalc::CProxyPath, int>::Purge(void)
_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE5PurgeEv proc near
					; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+1ACp
					; CSendTablePrecalc::~CSendTablePrecalc()+1BDp	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EE4DC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EE4D5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EE4D5:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EE4DC:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<SendProp  const*, int>::Purge(void)
_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv proc near
					; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+14Cp
					; CSendTablePrecalc::~CSendTablePrecalc()+15Dp	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_EE51C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EE515
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EE515:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EE51C:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIPK8SendPropiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CFastLocalTransferPropInfo, int>::Purge(void)
_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv proc near
					; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+6Bp
					; CSendTablePrecalc::~CSendTablePrecalc()+85p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+8]
		test	edx, edx
		js	short loc_EE55C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EE555
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EE555:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EE55C:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned	short>::Purge(void)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapItttE6Node_tEtEtE5PurgeEv proc near
					; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+42p
					; CSendTablePrecalc::~CSendTablePrecalc()+59p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebx+8]
		test	ecx, ecx
		js	short loc_EE59C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EE595
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EE595:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EE59C:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapItttE6Node_tEtEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short, CUtlMap<unsigned short, unsigned short, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned short>>::RemoveAll(void)
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv proc near
					; CODE XREF: CSendTablePrecalc::~CSendTablePrecalc()+31p
					; LocalTransfer_InitFastCopy(SendTable	const*,CStandardSendProxies  const*,RecvTable *,CStandardRecvProxies  const*,int &,int &)+18p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		movzx	ecx, word ptr [esi+16h]
		cmp	cx, 0FFFFh
		jz	short loc_EE63C
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_EE630
		xor	edx, edx
		xor	edi, edi
		lea	esi, [esi+0]

loc_EE5D8:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+7Bj
		cmp	edi, eax
		mov	ebx, edi
		jnb	short loc_EE60D
		cmp	di, cx
		ja	short loc_EE60D
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_EE648

loc_EE5EC:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+ACj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+D8j
		mov	ecx, [esi+4]
		add	ecx, edx
		cmp	[ecx], bx
		jz	short loc_EE609
		movzx	eax, word ptr [esi+14h]
		mov	[ecx+2], ax
		mov	eax, [esi+4]
		mov	[eax+edx], bx
		mov	[esi+14h], bx

loc_EE609:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+44j
		movzx	ecx, word ptr [esi+16h]

loc_EE60D:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+2Cj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+31j
		cmp	cx, bx
		jz	short loc_EE630
		mov	eax, [esi+8]
		add	ebx, 1
		movzx	ebx, bx
		cmp	ebx, eax
		jnb	short loc_EE630
		add	edi, 1
		add	edx, 0Ch
		cmp	edi, 0FFFFh
		jnz	short loc_EE5D8
		lea	esi, [esi+0]

loc_EE630:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+1Bj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+60j ...
		mov	word ptr [esi+10h], 0FFFFh
		mov	word ptr [esi+12h], 0

loc_EE63C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+14j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_EE648:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)+3Aj
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_1C]
		test	eax, eax
		jz	short loc_EE5EC
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_1C]
		jmp	loc_EE5EC
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CSendNode *, int>::Grow(int)
_ZN10CUtlMemoryIP9CSendNodeiE4GrowEi proc near
					; CODE XREF: CUtlVector<CSendNode *,CUtlMemory<CSendNode *,int>>::InsertBefore(int,CSendNode * const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EE6E0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EE6F0
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EE6C6
		lea	esi, [esi+0]

loc_EE6C0:				; CODE XREF: CUtlMemory<CSendNode *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EE6C0

loc_EE6C6:				; CODE XREF: CUtlMemory<CSendNode *,int>::Grow(int)+2Aj
					; CUtlMemory<CSendNode *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EE723

loc_EE6D2:				; CODE XREF: CUtlMemory<CSendNode *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EE6E0:				; CODE XREF: CUtlMemory<CSendNode *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EE6F0:				; CODE XREF: CUtlMemory<CSendNode *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EE6C6
		lea	esi, [esi+0]

loc_EE708:				; CODE XREF: CUtlMemory<CSendNode *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EE708
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EE6D2

loc_EE723:				; CODE XREF: CUtlMemory<CSendNode *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP9CSendNodeiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CSendNode *, CUtlMemory<CSendNode *, int>>::InsertBefore(int, CSendNode * const&)
_ZN10CUtlVectorIP9CSendNode10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: SendTable_BuildHierarchy_IterateProps(CSendNode *,SendTable  const*,CBuildHierarchyStruct *,SendProp  const**,int &)+179p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_EE7B0

loc_EE75F:				; CODE XREF: CUtlVector<CSendNode *,CUtlMemory<CSendNode *,int>>::InsertBefore(int,CSendNode * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_EE796
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_EE796:				; CODE XREF: CUtlVector<CSendNode *,CUtlMemory<CSendNode *,int>>::InsertBefore(int,CSendNode * const&)+38j
		add	edi, eax
		jz	short loc_EE7A1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_EE7A1:				; CODE XREF: CUtlVector<CSendNode *,CUtlMemory<CSendNode *,int>>::InsertBefore(int,CSendNode * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EE7B0:				; CODE XREF: CUtlVector<CSendNode *,CUtlMemory<CSendNode *,int>>::InsertBefore(int,CSendNode * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP9CSendNodeiE4GrowEi ; CUtlMemory<CSendNode *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_EE75F
_ZN10CUtlVectorIP9CSendNode10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CSendTablePrecalc::CProxyPath, int>::Grow(int)
_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE4GrowEi proc	near
					; CODE XREF: CUtlVector<CSendTablePrecalc::CProxyPath,CUtlMemory<CSendTablePrecalc::CProxyPath,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EE820
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EE830
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EE806
		lea	esi, [esi+0]

loc_EE800:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EE800

loc_EE806:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+2Aj
					; CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EE863

loc_EE812:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EE820:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EE830:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EE806
		lea	esi, [esi+0]

loc_EE848:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EE848
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EE812

loc_EE863:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CSendTablePrecalc::CProxyPath, CUtlMemory<CSendTablePrecalc::CProxyPath, int>>::SetCount(int)
_ZN10CUtlVectorIN17CSendTablePrecalc10CProxyPathE10CUtlMemoryIS1_iEE8SetCountEi	proc near
					; CODE XREF: SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)+19p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_EE8AF
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EE8C0
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_EE8AF:				; CODE XREF: CUtlVector<CSendTablePrecalc::CProxyPath,CUtlMemory<CSendTablePrecalc::CProxyPath,int>>::SetCount(int)+1Ej
					; CUtlVector<CSendTablePrecalc::CProxyPath,CUtlMemory<CSendTablePrecalc::CProxyPath,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EE8C0:				; CODE XREF: CUtlVector<CSendTablePrecalc::CProxyPath,CUtlMemory<CSendTablePrecalc::CProxyPath,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc10CProxyPathEiE4GrowEi ; CUtlMemory<CSendTablePrecalc::CProxyPath,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_EE8AF
		test	cl, cl
		jz	short loc_EE8AF
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIN17CSendTablePrecalc10CProxyPathE10CUtlMemoryIS1_iEE8SetCountEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CSendTablePrecalc::CProxyPathEntry, int>::Grow(int)
_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE4GrowEi	proc near
					; CODE XREF: CUtlVector<CSendTablePrecalc::CProxyPathEntry,CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EE970
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EE980
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EE956
		lea	esi, [esi+0]

loc_EE950:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EE950

loc_EE956:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+2Aj
					; CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EE9B3

loc_EE962:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EE970:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EE980:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EE956
		lea	esi, [esi+0]

loc_EE998:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EE998
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EE962

loc_EE9B3:				; CODE XREF: CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE4GrowEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CSendTablePrecalc::CProxyPathEntry, CUtlMemory<CSendTablePrecalc::CProxyPathEntry,	int>>::SetCount(int)
_ZN10CUtlVectorIN17CSendTablePrecalc15CProxyPathEntryE10CUtlMemoryIS1_iEE8SetCountEi proc near
					; CODE XREF: SendTable_GenerateProxyPaths(CSendTablePrecalc *,int)+C9p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_EE9FF
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EEA10
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_EE9FF:				; CODE XREF: CUtlVector<CSendTablePrecalc::CProxyPathEntry,CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>>::SetCount(int)+1Ej
					; CUtlVector<CSendTablePrecalc::CProxyPathEntry,CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>>::SetCount(int)+6Ej	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EEA10:				; CODE XREF: CUtlVector<CSendTablePrecalc::CProxyPathEntry,CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIN17CSendTablePrecalc15CProxyPathEntryEiE4GrowEi	; CUtlMemory<CSendTablePrecalc::CProxyPathEntry,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_EE9FF
		test	cl, cl
		jz	short loc_EE9FF
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIN17CSendTablePrecalc15CProxyPathEntryE10CUtlMemoryIS1_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<SendProp  const*, int>::Grow(int)
_ZN10CUtlMemoryIPK8SendPropiE4GrowEi proc near
					; CODE XREF: CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EEAC0
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EEAD0
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EEAA6
		lea	esi, [esi+0]

loc_EEAA0:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EEAA0

loc_EEAA6:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Grow(int)+2Aj
					; CUtlMemory<SendProp  const*,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_EEB03

loc_EEAB2:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EEAC0:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EEAD0:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_EEAA6
		lea	esi, [esi+0]

loc_EEAE8:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_EEAE8
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_EEAB2

loc_EEB03:				; CODE XREF: CUtlMemory<SendProp  const*,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIPK8SendPropiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<SendProp  const*, CUtlMemory<SendProp  const*, int>>::SetCount(int)
_ZN10CUtlVectorIPK8SendProp10CUtlMemoryIS2_iEE8SetCountEi proc near
					; CODE XREF: CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::CopyArray(SendProp	const* const*,int)+19p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_EEB4F
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_EEB60
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_EEB4F:				; CODE XREF: CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::SetCount(int)+1Ej
					; CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EEB60:				; CODE XREF: CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIPK8SendPropiE4GrowEi ; CUtlMemory<SendProp  const*,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_EEB4F
		test	cl, cl
		jz	short loc_EEB4F
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIPK8SendProp10CUtlMemoryIS2_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<SendProp  const*, CUtlMemory<SendProp  const*, int>>::CopyArray(SendProp  const* const*, int)
_ZN10CUtlVectorIPK8SendProp10CUtlMemoryIS2_iEE9CopyArrayEPKS2_i	proc near
					; CODE XREF: CSendTablePrecalc::SetupFlatPropertyArray(void)+CDp
					; CSendTablePrecalc::SetupFlatPropertyArray(void)+ECp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_ZN10CUtlVectorIPK8SendProp10CUtlMemoryIS2_iEE8SetCountEi ; CUtlVector<SendProp	 const*,CUtlMemory<SendProp  const*,int>>::SetCount(int)
		test	ebx, ebx
		jle	short loc_EEBF7
		xor	eax, eax
		lea	esi, [esi+0]

loc_EEBE8:				; CODE XREF: CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::CopyArray(SendProp	const* const*,int)+35j
		mov	ecx, [edi+eax*4]
		mov	edx, [esi]
		mov	[edx+eax*4], ecx
		add	eax, 1
		cmp	eax, ebx
		jnz	short loc_EEBE8

loc_EEBF7:				; CODE XREF: CUtlVector<SendProp  const*,CUtlMemory<SendProp  const*,int>>::CopyArray(SendProp	const* const*,int)+20j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CUtlVectorIPK8SendProp10CUtlMemoryIS2_iEE9CopyArrayEPKS2_i	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_FindRenamedTable(char  const*)
_Z26DataTable_FindRenamedTablePKc proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z26DataTable_FindRenamedTablePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState *)
_Z49DataTable_CreateClientClassInfosFromServerClassesP16CBaseClientState proc near
					; CODE XREF: CHLTVClientState::ProcessClassInfo(SVC_ClassInfo *)+1Bp

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, ds:serverGameDLL
		mov	edi, [ebp+arg_0]
		test	eax, eax
		jz	loc_EED6C

loc_EEC29:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+16Dj
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		test	eax, eax
		mov	[ebp+var_20], eax
		jz	loc_EED50
		xor	esi, esi
		db	66h
		nop

loc_EEC40:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+38j
		mov	eax, [eax+8]
		add	esi, 1
		test	eax, eax
		jnz	short loc_EEC40
		mov	eax, esi
		mov	[ebp+var_2C], esi
		shl	eax, 4
		add	eax, 4
		mov	[ebp+var_1C], eax
		lea	eax, [esi-1]
		mov	[ebp+var_28], eax

loc_EEC5E:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+157j
		mov	eax, [edi+4208h]
		test	eax, eax
		jz	short loc_EEC98
		mov	ebx, [eax-4]
		shl	ebx, 4
		add	ebx, eax
		cmp	eax, ebx
		jz	short loc_EEC8D
		lea	esi, [esi+0]

loc_EEC78:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+7Bj
		sub	ebx, 10h
		mov	[esp], ebx
		call	_ZN17C_ServerClassInfoD2Ev ; C_ServerClassInfo::~C_ServerClassInfo()
		mov	eax, [edi+4208h]
		cmp	eax, ebx
		jnz	short loc_EEC78

loc_EEC8D:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+62j
		sub	eax, 4
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_EEC98:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+56j
		mov	edx, [ebp+var_1C]
		mov	[edi+420Ch], esi
		mov	[esp], edx
		call	_Znaj		; operator new[](uint)
		mov	edx, [ebp+var_2C]
		mov	[ebp+var_24], eax
		mov	[eax], edx
		add	eax, 4
		cmp	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_1C], eax
		jz	short loc_EECDB
		mov	esi, [ebp+var_28]
		mov	ebx, eax
		lea	esi, [esi+0]

loc_EECC8:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+C9j
		mov	[esp], ebx
		call	_ZN17C_ServerClassInfoC2Ev ; C_ServerClassInfo::C_ServerClassInfo(void)
		sub	esi, 1
		add	ebx, 10h
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_EECC8

loc_EECDB:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+ABj
		mov	eax, [ebp+var_1C]
		test	eax, eax
		mov	[edi+4208h], eax
		jz	loc_EED82
		mov	ebx, [ebp+var_20]
		xor	edx, edx
		test	ebx, ebx
		jz	short loc_EED48
		mov	[ebp+var_1C], edi
		mov	edi, edx
		lea	esi, [esi+0]

loc_EED00:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+136j
		mov	edx, [ebp+var_1C]
		mov	esi, edi
		mov	[ebx+0Ch], edi
		mov	eax, [ebx]
		shl	esi, 4
		add	edi, 1
		add	esi, [edx+4208h]
		mov	[esp], eax	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	edx, [ebp+var_1C]
		mov	[esi+4], eax
		mov	esi, [ebx+0Ch]
		mov	eax, [ebx+4]
		shl	esi, 4
		mov	eax, [eax+8]
		add	esi, [edx+4208h]
		mov	[esp], eax	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	[esi+8], eax
		mov	ebx, [ebx+8]
		test	ebx, ebx
		jnz	short loc_EED00

loc_EED48:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+E3j
					; DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState *)+190j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EED50:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+26j
		mov	[ebp+var_28], 0FFFFFFFFh
		xor	esi, esi
		mov	[ebp+var_1C], 4
		mov	[ebp+var_2C], 0
		jmp	loc_EEC5E
; ---------------------------------------------------------------------------

loc_EED6C:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+13j
		mov	dword ptr [esp], offset	aDatatable_crea	; "DataTable_CreateClientClassInfosFromSer"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	eax, ds:serverGameDLL
		jmp	loc_EEC29
; ---------------------------------------------------------------------------

loc_EED82:				; CODE XREF: DataTable_CreateClientClassInfosFromServerClasses(CBaseClientState	*)+D6j
		mov	eax, [edi+420Ch]
		mov	dword ptr [esp+4], offset aCl_parseclas_0 ; "CL_ParseClassInfo:	can't allocate %d C_"...
		mov	dword ptr [esp], 1 ; char
		mov	[esp+8], eax	; arg
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		jmp	short loc_EED48
_Z49DataTable_CreateClientClassInfosFromServerClassesP16CBaseClientState endp

; ---------------------------------------------------------------------------
		mov	edi, eax
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_EEDCB
		mov	ebx, [ebp-28h]
		sub	ebx, esi
		shl	ebx, 4
		add	ebx, [ebp-1Ch]
		cmp	[ebp-1Ch], ebx
		jz	short loc_EEDCB

loc_EEDBB:				; CODE XREF: .text:000EEDC9j
		sub	ebx, 10h
		mov	[esp], ebx
		call	_ZN17C_ServerClassInfoD2Ev ; C_ServerClassInfo::~C_ServerClassInfo()
		cmp	[ebp-1Ch], ebx
		jnz	short loc_EEDBB

loc_EEDCB:				; CODE XREF: .text:000EEDA9j
					; .text:000EEDB9j
		mov	eax, [ebp-24h]
		mov	[esp], eax
		call	_ZdaPv		; operator delete[](void *)
		mov	[esp], edi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_MaybeWriteSendTableBuffer(SendTable	*, bf_write *, bool)
_Z35DataTable_MaybeWriteSendTableBufferP9SendTableP8bf_writeb proc near
					; CODE XREF: DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write	*)+1Ep
					; DataTable_WriteSendTablesBuffer(ServerClass *,bf_write *)+32p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	ebx, [ebp+arg_8]
		movzx	ecx, byte ptr [edx+10h]
		test	cl, 2
		jnz	short loc_EEE30
		or	ecx, 2
		mov	[edx+10h], cl
		mov	ecx, [eax+0Ch]
		cmp	ecx, [eax+8]
		mov	[ebp+var_1C], ecx
		jl	short loc_EEE40

loc_EEE13:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)+7Fj
		mov	byte ptr [eax+10h], 1

loc_EEE17:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)+9Cj
		mov	[ebp+arg_4], eax
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_0], edx
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z20SendTable_WriteInfosP9SendTableP8bf_write ;	SendTable_WriteInfos(SendTable *,bf_write *)
; ---------------------------------------------------------------------------
		align 10h

loc_EEE30:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)+20j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EEE40:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)+31j
		mov	edi, [eax]
		mov	esi, ecx
		sar	esi, 5
		lea	esi, [edi+esi*4]
		mov	edi, 1
		shl	edi, cl
		or	[esi], edi
		mov	ecx, [eax+0Ch]
		add	ecx, 1
		cmp	[eax+8], ecx
		mov	[eax+0Ch], ecx
		jle	short loc_EEE13
		test	bl, bl
		mov	ebx, ecx
		jz	short loc_EEE80
		mov	edi, [eax]
		sar	ebx, 5
		mov	esi, 1
		shl	esi, cl
		lea	ebx, [edi+ebx*4]
		or	[ebx], esi

loc_EEE78:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)+B5j
		add	dword ptr [eax+0Ch], 1
		jmp	short loc_EEE17
; ---------------------------------------------------------------------------
		align 10h

loc_EEE80:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)+85j
		mov	esi, [eax]
		mov	edi, 1
		sar	ebx, 5
		shl	edi, cl
		mov	ecx, edi
		not	ecx
		lea	ebx, [esi+ebx*4]
		and	[ebx], ecx
		jmp	short loc_EEE78
_Z35DataTable_MaybeWriteSendTableBufferP9SendTableP8bf_writeb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_MaybeWriteSendTableBuffer_R(SendTable *, bf_write *)
_Z37DataTable_MaybeWriteSendTableBuffer_RP9SendTableP8bf_write proc near
					; CODE XREF: DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write	*)+58p
					; DataTable_WriteSendTablesBuffer(ServerClass *,bf_write *)+4Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	dword ptr [esp+8], 0
		mov	eax, [ebp+arg_4]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_Z35DataTable_MaybeWriteSendTableBufferP9SendTableP8bf_writeb ;	DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)
		mov	eax, [edi+4]
		test	eax, eax
		jle	short loc_EEF08
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_EEEDB
; ---------------------------------------------------------------------------

loc_EEED0:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write	*)+43j
		add	ebx, 1
		add	esi, 50h
		cmp	[edi+4], ebx
		jle	short loc_EEF08

loc_EEEDB:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write	*)+2Ej
					; DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write *)+60j
		mov	eax, [edi]
		add	eax, esi
		cmp	dword ptr [eax+8], 6
		jnz	short loc_EEED0
		mov	edx, [ebp+arg_4]
		add	ebx, 1
		add	esi, 50h
		mov	[esp+4], edx
		mov	eax, [eax+44h]
		mov	[esp], eax
		call	_Z37DataTable_MaybeWriteSendTableBuffer_RP9SendTableP8bf_write ; DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write *)
		cmp	[edi+4], ebx
		jg	short loc_EEEDB
		lea	esi, [esi+0]

loc_EEF08:				; CODE XREF: DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write	*)+28j
					; DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write *)+39j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z37DataTable_MaybeWriteSendTableBuffer_RP9SendTableP8bf_write endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_ClearWriteFlags_R(SendTable	*)
_Z27DataTable_ClearWriteFlags_RP9SendTable proc	near
					; CODE XREF: DataTable_ClearWriteFlags_R(SendTable *)+41p
					; DataTable_ClearWriteFlags(ServerClass	*)+16p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		and	byte ptr [edi+10h], 0FDh
		test	eax, eax
		jle	short loc_EEF60
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_EEF3B
; ---------------------------------------------------------------------------
		align 10h

loc_EEF30:				; CODE XREF: DataTable_ClearWriteFlags_R(SendTable *)+33j
		add	ebx, 1
		add	esi, 50h
		cmp	[edi+4], ebx
		jle	short loc_EEF60

loc_EEF3B:				; CODE XREF: DataTable_ClearWriteFlags_R(SendTable *)+1Bj
					; DataTable_ClearWriteFlags_R(SendTable	*)+49j
		mov	eax, [edi]
		add	eax, esi
		cmp	dword ptr [eax+8], 6
		jnz	short loc_EEF30
		mov	eax, [eax+44h]
		add	ebx, 1
		add	esi, 50h
		mov	[esp], eax
		call	_Z27DataTable_ClearWriteFlags_RP9SendTable ; DataTable_ClearWriteFlags_R(SendTable *)
		cmp	[edi+4], ebx
		jg	short loc_EEF3B
		nop
		lea	esi, [esi+0]

loc_EEF60:				; CODE XREF: DataTable_ClearWriteFlags_R(SendTable *)+15j
					; DataTable_ClearWriteFlags_R(SendTable	*)+29j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z27DataTable_ClearWriteFlags_RP9SendTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_ClearWriteFlags(ServerClass	*)
_Z25DataTable_ClearWriteFlagsP11ServerClass proc near
					; CODE XREF: DataTable_WriteSendTablesBuffer(ServerClass *,bf_write *)+12p
					; SV_WriteSendTables(ServerClass *,bf_write &)+12p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_EEF92
		db	66h
		nop

loc_EEF80:				; CODE XREF: DataTable_ClearWriteFlags(ServerClass *)+20j
		mov	eax, [ebx+4]
		mov	[esp], eax
		call	_Z27DataTable_ClearWriteFlags_RP9SendTable ; DataTable_ClearWriteFlags_R(SendTable *)
		mov	ebx, [ebx+8]
		test	ebx, ebx
		jnz	short loc_EEF80

loc_EEF92:				; CODE XREF: DataTable_ClearWriteFlags(ServerClass *)+Cj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z25DataTable_ClearWriteFlagsP11ServerClass endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_WriteSendTablesBuffer(ServerClass *, bf_write *)
_Z31DataTable_WriteSendTablesBufferP11ServerClassP8bf_write proc near
					; CODE XREF: CHLTVDemoRecorder::RecordServerClasses(ServerClass	*)+6Bp
					; CReplayDemoRecorder::RecordServerClasses(ServerClass *)+6Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	[esp], esi
		call	_Z25DataTable_ClearWriteFlagsP11ServerClass ; DataTable_ClearWriteFlags(ServerClass *)
		test	esi, esi
		jz	short loc_EEFF6
		mov	edi, esi
		lea	esi, [esi+0]

loc_EEFC0:				; CODE XREF: DataTable_WriteSendTablesBuffer(ServerClass *,bf_write *)+3Cj
		mov	dword ptr [esp+8], 1
		mov	[esp+4], ebx
		mov	eax, [edi+4]
		mov	[esp], eax
		call	_Z35DataTable_MaybeWriteSendTableBufferP9SendTableP8bf_writeb ;	DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)
		mov	edi, [edi+8]
		test	edi, edi
		jnz	short loc_EEFC0
		db	66h
		nop

loc_EEFE0:				; CODE XREF: DataTable_WriteSendTablesBuffer(ServerClass *,bf_write *)+54j
		mov	[esp+4], ebx
		mov	eax, [esi+4]
		mov	[esp], eax
		call	_Z37DataTable_MaybeWriteSendTableBuffer_RP9SendTableP8bf_write ; DataTable_MaybeWriteSendTableBuffer_R(SendTable *,bf_write *)
		mov	esi, [esi+8]
		test	esi, esi
		jnz	short loc_EEFE0

loc_EEFF6:				; CODE XREF: DataTable_WriteSendTablesBuffer(ServerClass *,bf_write *)+19j
		mov	ecx, [ebx+0Ch]
		cmp	ecx, [ebx+8]
		jl	short loc_EF010
		mov	byte ptr [ebx+10h], 1
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EF010:				; CODE XREF: DataTable_WriteSendTablesBuffer(ServerClass *,bf_write *)+5Cj
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax
		add	dword ptr [ebx+0Ch], 1
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z31DataTable_WriteSendTablesBufferP11ServerClassP8bf_write endp

; ---------------------------------------------------------------------------
		jmp	short _Z31DataTable_WriteClassInfosBufferP11ServerClassP8bf_write ; DataTable_WriteClassInfosBuffer(ServerClass	*,bf_write *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_WriteClassInfosBuffer(ServerClass *, bf_write *)
_Z31DataTable_WriteClassInfosBufferP11ServerClassP8bf_write proc near
					; CODE XREF: .text:000EF031j
					; CHLTVDemoRecorder::RecordServerClasses(ServerClass *)+77p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		test	ebx, ebx
		jz	short loc_EF0BD
		mov	eax, ebx
		xor	edx, edx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_EF060:				; CODE XREF: DataTable_WriteClassInfosBuffer(ServerClass *,bf_write *)+28j
		mov	eax, [eax+8]
		add	edx, 1
		test	eax, eax
		jnz	short loc_EF060
		mov	[esp+4], edx
		mov	[esp], esi
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_EF080:				; CODE XREF: DataTable_WriteClassInfosBuffer(ServerClass *,bf_write *)+74j
		mov	eax, [ebx+0Ch]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		mov	eax, [ebx]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [ebx+4]
		mov	eax, [eax+8]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	ebx, [ebx+8]
		test	ebx, ebx
		jnz	short loc_EF080
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EF0BD:				; CODE XREF: DataTable_WriteClassInfosBuffer(ServerClass *,bf_write *)+10j
		mov	[ebp+arg_0], esi
		mov	[ebp+arg_4], 0
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		jmp	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
_Z31DataTable_WriteClassInfosBufferP11ServerClassP8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_ParseClassInfosFromBuffer(CClientState *, bf_read *)
_Z35DataTable_ParseClassInfosFromBufferP12CClientStateP7bf_read	proc near
					; CODE XREF: DataTable_LoadDataTablesFromBuffer(bf_read	*,int)+A1j

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [edi+4208h]
		test	eax, eax
		jz	short loc_EF128
		mov	esi, [eax-4]
		shl	esi, 4
		add	esi, eax
		cmp	eax, esi
		jz	short loc_EF11D
		lea	esi, [esi+0]

loc_EF108:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+3Bj
		sub	esi, 10h
		mov	[esp], esi
		call	_ZN17C_ServerClassInfoD2Ev ; C_ServerClassInfo::~C_ServerClassInfo()
		mov	eax, [edi+4208h]
		cmp	eax, esi
		jnz	short loc_EF108

loc_EF11D:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+23j
		sub	eax, 4
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_EF128:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+17j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_EF2E0
		mov	esi, [ebx]
		lea	edx, [eax+10h]
		mov	ecx, eax
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		sar	edx, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	eax, 5
		mov	edx, [esi+edx*4]
		mov	eax, [esi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		or	edx, eax
		movsx	esi, dx
		mov	eax, esi
		mov	[edi+420Ch], esi
		shl	eax, 4
		add	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[eax], esi
		sub	esi, 1
		mov	[ebp+var_20], eax
		add	eax, 4
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_1C], eax
		mov	[ebp+var_24], esi
		jz	short loc_EF1C8
		mov	[ebp+var_2C], esi
		mov	esi, eax
		mov	[ebp+var_28], edi
		mov	edi, ebx
		mov	ebx, [ebp+var_2C]
		nop
		lea	esi, [esi+0]

loc_EF1B0:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+E1j
		mov	[esp], esi
		call	_ZN17C_ServerClassInfoC2Ev ; C_ServerClassInfo::C_ServerClassInfo(void)
		sub	ebx, 1
		add	esi, 10h
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_EF1B0
		mov	ebx, edi
		mov	edi, [ebp+var_28]

loc_EF1C8:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+B9j
					; DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read *)+22Dj
		mov	esi, [ebp+var_1C]
		test	esi, esi
		mov	[edi+4208h], esi
		jz	loc_EF312
		mov	eax, [edi+420Ch]
		mov	[ebp+var_1C], 0
		test	eax, eax
		jg	loc_EF283
		jmp	loc_EF2D0
; ---------------------------------------------------------------------------
		align 8

loc_EF1F8:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+1B0j
		lea	edx, [eax+10h]
		mov	esi, eax
		mov	ecx, 20h
		and	esi, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+0Fh]
		sub	ecx, esi
		sar	eax, 5
		mov	[ebp+var_20], ecx
		mov	ecx, [ebx]
		sar	edx, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		mov	ecx, esi
		shr	eax, cl
		or	edx, eax
		movsx	esi, dx
		cmp	[edi+420Ch], esi
		jle	short loc_EF2AB

loc_EF237:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+1C9j
		mov	edx, [edi+4208h]
		shl	esi, 4
		mov	[esp], ebx
		mov	dword ptr [esp+4], 0
		add	edx, esi
		mov	[ebp+var_30], edx
		call	_ZN7bf_read21ReadAndAllocateStringEPb ;	bf_read::ReadAndAllocateString(bool *)
		mov	edx, [ebp+var_30]
		mov	[edx+4], eax
		add	esi, [edi+4208h]
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN7bf_read21ReadAndAllocateStringEPb ;	bf_read::ReadAndAllocateString(bool *)
		add	[ebp+var_1C], 1
		mov	[esi+8], eax
		mov	esi, [ebp+var_1C]
		cmp	[edi+420Ch], esi
		jle	short loc_EF2D0

loc_EF283:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+108j
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 0Fh
		jg	loc_EF1F8
		mov	[ebx+0Ch], edx
		xor	esi, esi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		cmp	[edi+420Ch], esi
		jg	short loc_EF237

loc_EF2AB:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+155j
		mov	[esp+8], esi	; arg
		mov	dword ptr [esp+4], offset aDatatable_pars ; "DataTable_ParseClassInfosFromBuffer: in"...
		mov	dword ptr [esp], 1 ; char
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EF2D0:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+10Ej
					; DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read *)+1A1j
		mov	eax, 1

loc_EF2D5:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+252j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EF2E0:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+55j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	dword ptr [edi+420Ch], 0
		mov	dword ptr [esp], 4
		call	_Znaj		; operator new[](uint)
		mov	dword ptr [eax], 0
		add	eax, 4
		mov	[ebp+var_1C], eax
		jmp	loc_EF1C8
; ---------------------------------------------------------------------------

loc_EF312:				; CODE XREF: DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read	*)+F3j
		mov	eax, [edi+420Ch]
		mov	dword ptr [esp+4], offset aCl_parseclas_0 ; "CL_ParseClassInfo:	can't allocate %d C_"...
		mov	dword ptr [esp], 1 ; char
		mov	[esp+8], eax	; arg
		call	_Z12Host_EndGamebPKcz ;	Host_EndGame(bool,char	const*,...)
		xor	eax, eax
		jmp	short loc_EF2D5
_Z35DataTable_ParseClassInfosFromBufferP12CClientStateP7bf_read	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	eax, [ebp-1Ch]
		mov	[ebp-2Ch], ebx
		test	eax, eax
		jz	short loc_EF361
		mov	ebx, [ebp-24h]
		sub	ebx, [ebp-2Ch]
		shl	ebx, 4
		add	ebx, [ebp-1Ch]
		cmp	[ebp-1Ch], ebx
		jz	short loc_EF361

loc_EF351:				; CODE XREF: .text:000EF35Fj
		sub	ebx, 10h
		mov	[esp], ebx
		call	_ZN17C_ServerClassInfoD2Ev ; C_ServerClassInfo::~C_ServerClassInfo()
		cmp	[ebp-1Ch], ebx
		jnz	short loc_EF351

loc_EF361:				; CODE XREF: .text:000EF33Ej
					; .text:000EF34Fj
		mov	eax, [ebp-20h]
		mov	[esp], eax
		call	_ZdaPv		; operator delete[](void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_LoadDataTablesFromBuffer(bf_read *,	int)
_Z34DataTable_LoadDataTablesFromBufferP7bf_readi proc near
					; CODE XREF: CHLTVServer::ReadCompeleteDemoFile(void)+1F6p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_1C], eax
		lea	esi, [esi+0]

loc_EF398:				; CODE XREF: DataTable_LoadDataTablesFromBuffer(bf_read	*,int)+6Dj
		mov	edi, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, edi
		sub	edx, eax
		test	edx, edx
		jle	short loc_EF408
		mov	esi, [ebx]
		mov	edx, eax
		mov	ecx, eax
		sar	edx, 5
		mov	edx, [esi+edx*4]
		shr	edx, cl
		lea	ecx, [eax+1]
		and	edx, 1
		mov	[ebx+0Ch], ecx
		jz	short loc_EF410
		sub	edi, ecx
		test	edi, edi
		jle	short loc_EF430
		mov	edx, ecx
		add	eax, 2
		sar	edx, 5
		mov	edx, [esi+edx*4]
		mov	[ebx+0Ch], eax
		shr	edx, cl
		and	edx, 1

loc_EF3D8:				; CODE XREF: DataTable_LoadDataTablesFromBuffer(bf_read	*,int)+BAj
		mov	ecx, [ebp+var_1C]
		mov	[esp+4], edx	; arg
		mov	[esp], ebx
		mov	[esp+8], ecx
		call	_Z24RecvTable_RecvClassInfosP7bf_readbi	; RecvTable_RecvClassInfos(bf_read *,bool,int)
		test	al, al
		jnz	short loc_EF398
		mov	dword ptr [esp], offset	aDatatable_pa_0	; "DataTable_ParseClientTablesFromBuffer f"...
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)
		add	esp, 2Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_EF408:				; CODE XREF: DataTable_LoadDataTablesFromBuffer(bf_read	*,int)+24j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_EF410:				; CODE XREF: DataTable_LoadDataTablesFromBuffer(bf_read	*,int)+3Dj
		mov	[ebp+arg_4], ebx
		mov	[ebp+arg_0], offset byte_28B880
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_Z35DataTable_ParseClassInfosFromBufferP12CClientStateP7bf_read	; DataTable_ParseClassInfosFromBuffer(CClientState *,bf_read *)
; ---------------------------------------------------------------------------
		align 10h

loc_EF430:				; CODE XREF: DataTable_LoadDataTablesFromBuffer(bf_read	*,int)+43j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	short loc_EF3D8
_Z34DataTable_LoadDataTablesFromBufferP7bf_readi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_SetupReceiveTableFromSendTable(SendTable *,	bool)
_Z40DataTable_SetupReceiveTableFromSendTableP9SendTableb proc near
					; CODE XREF: DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)+54p
					; RecvTable_RecvClassInfos(bf_read *,bool,int)+3Ap

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	ebx, [ebp+arg_4]
		mov	dword ptr [esp], 28h
		call	_Znwj		; operator new(uint)
		mov	[ebp+var_30], eax
		mov	[esp], eax
		call	_ZN16CClientSendTableC2Ev ; CClientSendTable::CClientSendTable(void)
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_ClientSendTables
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_20]
		mov	[esp+8], eax
		call	_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<CClientSendTable	*,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		mov	[esp], eax	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	ecx, [ebp+var_30]
		test	bl, bl
		mov	[ecx+8], eax
		jnz	loc_EF650

loc_EF4A1:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+27Bj
		mov	eax, [ebp+arg_0]
		xor	edi, edi
		mov	esi, [eax+4]
		mov	eax, [ebp+var_30]
		test	esi, esi
		mov	[eax+4], esi
		jnz	loc_EF600

loc_EF4B7:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+1E4j
					; DataTable_SetupReceiveTableFromSendTable(SendTable *,bool)+203j
		mov	eax, [ebp+var_30]
		mov	[eax], edi
		mov	eax, [eax+4]
		mov	[esp+4], eax
		mov	eax, [ebp+var_20]
		add	eax, 14h
		mov	[esp], eax
		call	_ZN10CUtlVectorI15CClientSendProp10CUtlMemoryIS0_iEE8SetCountEi	; CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)
		mov	ecx, [ebp+var_30]
		mov	eax, 1
		mov	edi, [ecx+4]
		test	edi, edi
		jle	loc_EF5F5
		xor	edi, edi
		mov	[ebp+var_2C], 0
		jmp	short loc_EF52B
; ---------------------------------------------------------------------------
		align 10h

loc_EF4F0:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+14Dj
		test	byte ptr [ebx+38h], 40h
		jnz	loc_EF5C8
		cmp	eax, 5
		jz	loc_EF5E0
		mov	eax, [esi+10h]
		mov	[ebx+10h], eax
		mov	eax, [esi+14h]
		mov	[ebx+14h], eax
		mov	eax, [esi+0Ch]
		mov	[ebx+0Ch], eax

loc_EF515:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+17Dj
					; DataTable_SetupReceiveTableFromSendTable(SendTable *,bool)+196j ...
		add	[ebp+var_2C], 1
		add	edi, 50h
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		cmp	[eax+4], edx
		jle	loc_EF5F0

loc_EF52B:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+ADj
		mov	eax, [ebp+var_20]
		mov	esi, edi
		mov	ebx, edi
		mov	edx, [ebp+arg_0]
		mov	eax, [eax+14h]
		add	esi, [edx]
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_30]
		add	ebx, [eax]
		mov	eax, [esi+8]
		mov	[ebx+8], eax
		mov	eax, [esi+30h]
		mov	[esp], eax	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	[ebx+30h], eax
		mov	eax, [esi+38h]
		mov	[ebx+38h], eax
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aDti ; "-dti"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jz	short loc_EF587
		mov	eax, [esi+2Ch]
		test	eax, eax
		jz	short loc_EF587
		mov	[esp], eax	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	[ebx+2Ch], eax

loc_EF587:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+133j
					; DataTable_SetupReceiveTableFromSendTable(SendTable *,bool)+13Aj
		mov	eax, [ebx+8]
		cmp	eax, 6
		jnz	loc_EF4F0
		mov	eax, [esi+44h]
		mov	edx, [esi+28h]
		test	eax, eax
		jz	short loc_EF5A0
		mov	edx, [eax+8]

loc_EF5A0:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+15Bj
		mov	[esp], edx	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_34]
		mov	[edx+ecx*4], eax
		mov	eax, [esi+40h]
		mov	[ebx+40h], eax
		mov	eax, [esi+48h]
		mov	[ebx+48h], eax
		jmp	loc_EF515
; ---------------------------------------------------------------------------
		align 8

loc_EF5C8:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+B4j
		mov	eax, [esi+28h]
		mov	[esp], eax	; src
		call	_Z14COM_StringCopyPKc ;	COM_StringCopy(char  const*)
		mov	[ebx+28h], eax
		jmp	loc_EF515
; ---------------------------------------------------------------------------
		align 10h

loc_EF5E0:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+BDj
		mov	eax, [esi+20h]
		mov	[ebx+20h], eax
		jmp	loc_EF515
; ---------------------------------------------------------------------------
		align 10h

loc_EF5F0:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+E5j
		mov	eax, 1

loc_EF5F5:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+9Ej
					; DataTable_SetupReceiveTableFromSendTable(SendTable *,bool)+298j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EF600:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+71j
		lea	eax, [esi+esi*4]
		shl	eax, 4
		add	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[eax], esi
		mov	edi, eax
		sub	esi, 1
		add	edi, 4
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_2C], eax
		mov	[ebp+var_34], esi
		jz	loc_EF4B7
		mov	ebx, edi
		lea	esi, [esi+0]

loc_EF630:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+201j
		mov	[esp], ebx
		call	_ZN8SendPropC2Ev ; SendProp::SendProp(void)
		sub	esi, 1
		add	ebx, 50h
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_EF630
		jmp	loc_EF4B7
; ---------------------------------------------------------------------------
		align 10h

loc_EF650:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+5Bj
		mov	dword ptr [esp], 14Ch
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN12CRecvDecoderC2Ev ;	CRecvDecoder::CRecvDecoder(void)
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], ebx
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvDecoders
		call	_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ; CUtlLinkedList<CRecvDecoder	*,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder * const&)
		mov	edx, [ebp+var_30]
		mov	eax, [edx+8]
		mov	[esp], eax	; s2
		call	_Z13FindRecvTablePKc ; FindRecvTable(char  const*)
		test	eax, eax
		jz	short loc_EF6C0
		mov	edx, [ebp+var_1C]
		mov	[eax+8], edx
		mov	[edx], eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_20]
		mov	[ecx+4], edx
		mov	[ecx+94h], edx
		add	ecx, 8
		mov	[edx+0Ch], ecx
		mov	[esp], eax
		call	_Z17SetupArrayProps_RI9RecvTable8RecvPropEvPT_ ; SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)
		jmp	loc_EF4A1
; ---------------------------------------------------------------------------

loc_EF6C0:				; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+254j
		mov	ecx, [ebp+var_30]
		mov	eax, [ecx+8]
		mov	dword ptr [esp], offset	aNoMatchingRecv	; "No matching RecvTable for SendTable '%s"...
		mov	[esp+4], eax	; arg
		call	_Z17DataTable_WarningPKcz ; DataTable_Warning(char  const*,...)
		xor	eax, eax
		jmp	loc_EF5F5
_Z40DataTable_SetupReceiveTableFromSendTableP9SendTableb endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-30h]
		mov	[esp], eax
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		test	edi, edi
		mov	[ebp-30h], eax
		jz	short loc_EF729
		mov	eax, [ebp-34h]
		sub	eax, esi
		lea	esi, [eax+eax*4]
		shl	esi, 4
		add	esi, edi
		cmp	edi, esi
		jz	short loc_EF729
		lea	eax, [esi-50h]
		mov	ebx, esi

loc_EF70F:				; CODE XREF: .text:000EF727j
		sub	ebx, 50h
		mov	edx, ebx
		sub	edx, esi
		mov	edx, [eax+edx+50h]
		mov	[ebp-38h], eax
		mov	[esp], ebx
		call	dword ptr [edx]
		cmp	edi, ebx
		mov	eax, [ebp-38h]
		jnz	short loc_EF70F

loc_EF729:				; CODE XREF: .text:000EF6F7j
					; .text:000EF708j
		mov	eax, [ebp-2Ch]
		mov	[esp], eax
		call	_ZdaPv		; operator delete[](void *)
		mov	eax, [ebp-30h]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short _Z33DataTable_MaybeCreateReceiveTableR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_b ; DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable	*,bool)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *, CUtlMemory<SendTable *, int>> &, SendTable *, bool)
_Z33DataTable_MaybeCreateReceiveTableR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_b proc near
					; CODE XREF: .text:000EF751j
					; DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)+1Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		movzx	ebx, [ebp+arg_8]
		mov	edx, [edi+0Ch]
		test	edx, edx
		jle	short loc_EF794
		mov	ecx, [edi]
		xor	eax, eax
		mov	esi, [ebp+arg_4]
		cmp	[ecx], esi
		jnz	short loc_EF78D
		jmp	short loc_EF7B9
; ---------------------------------------------------------------------------
		align 8

loc_EF788:				; CODE XREF: DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)+32j
		cmp	[ecx+eax*4], esi
		jz	short loc_EF7C8

loc_EF78D:				; CODE XREF: DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)+20j
		add	eax, 1
		cmp	eax, edx
		jnz	short loc_EF788

loc_EF794:				; CODE XREF: DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)+15j
					; DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable	*,int>>	&,SendTable *,bool)+6Bj
		lea	eax, [ebp+arg_4]
		mov	[esp+4], edx
		movzx	ebx, bl
		mov	[esp+8], eax
		mov	[esp], edi
		call	_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::InsertBefore(int,SendTable *	const&)
		mov	eax, [ebp+arg_4]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_Z40DataTable_SetupReceiveTableFromSendTableP9SendTableb ; DataTable_SetupReceiveTableFromSendTable(SendTable *,bool)

loc_EF7B9:				; CODE XREF: DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)+22j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_EF7C8:				; CODE XREF: DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)+2Bj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_EF794
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z33DataTable_MaybeCreateReceiveTableR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_b endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *, CUtlMemory<SendTable *, int>> &, SendTable *)
_Z35DataTable_MaybeCreateReceiveTable_RR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_ proc near
					; CODE XREF: DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)+58p
					; DataTable_CreateClientTablesFromServerTables(void)+7Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_4]
		mov	dword ptr [esp+8], 0
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edi
		mov	[esp], eax
		call	_Z33DataTable_MaybeCreateReceiveTableR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_b ;	DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)
		mov	eax, [edi+4]
		test	eax, eax
		jle	short loc_EF848
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_EF81B
; ---------------------------------------------------------------------------

loc_EF810:				; CODE XREF: DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)+43j
		add	ebx, 1
		add	esi, 50h
		cmp	[edi+4], ebx
		jle	short loc_EF848

loc_EF81B:				; CODE XREF: DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)+2Ej
					; DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)+60j
		mov	eax, [edi]
		add	eax, esi
		cmp	dword ptr [eax+8], 6
		jnz	short loc_EF810
		mov	eax, [eax+44h]
		add	ebx, 1
		add	esi, 50h
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z35DataTable_MaybeCreateReceiveTable_RR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_ ; DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)
		cmp	[edi+4], ebx
		jg	short loc_EF81B
		lea	esi, [esi+0]

loc_EF848:				; CODE XREF: DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)+28j
					; DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)+39j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z35DataTable_MaybeCreateReceiveTable_RR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_CreateClientTablesFromServerTables(void)
_Z44DataTable_CreateClientTablesFromServerTablesv proc near
					; CODE XREF: CHLTVClientState::ProcessClassInfo(SVC_ClassInfo *)+13p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, ds:serverGameDLL
		test	eax, eax
		jz	loc_EF8FB

loc_EF866:				; CODE XREF: DataTable_CreateClientTablesFromServerTables(void)+BCj
		mov	edx, [eax]
		mov	[esp], eax
		lea	esi, [ebp+var_2C]
		call	dword ptr [edx+2Ch]
		mov	[ebp+var_2C], 0
		test	eax, eax
		mov	edi, eax
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		jz	short loc_EF8D6
		lea	esi, [ebp+var_2C]
		mov	ebx, eax
		nop

loc_EF8A0:				; CODE XREF: DataTable_CreateClientTablesFromServerTables(void)+6Cj
		mov	dword ptr [esp+8], 1
		mov	eax, [ebx+4]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z33DataTable_MaybeCreateReceiveTableR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_b ;	DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)
		mov	ebx, [ebx+8]
		test	ebx, ebx
		jnz	short loc_EF8A0
		mov	ebx, edi

loc_EF8C0:				; CODE XREF: DataTable_CreateClientTablesFromServerTables(void)+84j
		mov	eax, [ebx+4]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z35DataTable_MaybeCreateReceiveTable_RR10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEES1_ ; DataTable_MaybeCreateReceiveTable_R(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *)
		mov	ebx, [ebx+8]
		test	ebx, ebx
		jnz	short loc_EF8C0

loc_EF8D6:				; CODE XREF: DataTable_CreateClientTablesFromServerTables(void)+48j
		mov	[esp], esi
		mov	[ebp+var_20], 0
		call	_ZN10CUtlMemoryIP9SendTableiE5PurgeEv ;	CUtlMemory<SendTable *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIP9SendTableiE5PurgeEv ;	CUtlMemory<SendTable *,int>::Purge(void)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EF8FB:				; CODE XREF: DataTable_CreateClientTablesFromServerTables(void)+10j
		mov	dword ptr [esp], offset	aDatatable_cr_0	; "DataTable_CreateClientTablesFromServerT"...
		call	_Z9Sys_ErrorPKcz ; Sys_Error(char  const*,...)
		mov	eax, ds:serverGameDLL
		jmp	loc_EF866
_Z44DataTable_CreateClientTablesFromServerTablesv endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [ebp-20h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP9SendTableiE5PurgeEv ;	CUtlMemory<SendTable *,int>::Purge(void)
		mov	eax, [ebp-2Ch]
		mov	[esp], esi
		mov	[ebp-1Ch], eax
		call	_ZN10CUtlMemoryIP9SendTableiE5PurgeEv ;	CUtlMemory<SendTable *,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; void SetupArrayProps_R<RecvTable, RecvProp>(RecvTable	*)
_Z17SetupArrayProps_RI9RecvTable8RecvPropEvPT_ proc near
					; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+276p
					; SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+76p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_0]
		cmp	byte ptr [edi+10h], 0
		jnz	short loc_EF9A0
		mov	eax, [edi+4]
		mov	byte ptr [edi+10h], 1
		test	eax, eax
		jle	short loc_EF9A0
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_EF978
; ---------------------------------------------------------------------------
		align 8

loc_EF968:				; CODE XREF: SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+43j
		cmp	eax, 6
		jz	short loc_EF9B0

loc_EF96D:				; CODE XREF: SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+7Bj
		add	ebx, 1
		add	esi, 3Ch
		cmp	[edi+4], ebx
		jle	short loc_EF9A0

loc_EF978:				; CODE XREF: SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+21j
					; SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+5Dj
		mov	ecx, [edi]
		lea	edx, [ecx+esi]
		mov	eax, [edx+4]
		cmp	eax, 5
		jnz	short loc_EF968
		test	ebx, ebx
		jz	short loc_EF9C0

loc_EF989:				; CODE XREF: SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+9Aj
		lea	eax, [ecx+esi-3Ch]
		add	ebx, 1
		add	esi, 3Ch
		mov	byte ptr [eax+10h], 1
		mov	[edx+18h], eax
		cmp	[edi+4], ebx
		jg	short loc_EF978
		nop

loc_EF9A0:				; CODE XREF: SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+10j
					; SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+1Bj ...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EF9B0:				; CODE XREF: SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+2Bj
		mov	eax, [edx+28h]
		mov	[esp], eax
		call	_Z17SetupArrayProps_RI9RecvTable8RecvPropEvPT_ ; SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)
		jmp	short loc_EF96D
; ---------------------------------------------------------------------------
		align 10h

loc_EF9C0:				; CODE XREF: SetupArrayProps_R<RecvTable,RecvProp>(RecvTable *)+47j
		mov	eax, [edx]
		mov	[ebp+var_1C], edx
		mov	dword ptr [esp], offset	aSetuparrayprop	; "SetupArrayProps_R: array prop '%s' is a"...
		mov	[esp+4], eax
		call	Error
		mov	ecx, [edi]
		mov	edx, [ebp+var_1C]
		jmp	short loc_EF989
_Z17SetupArrayProps_RI9RecvTable8RecvPropEvPT_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<SendTable *, int>::Purge(void)
_ZN10CUtlMemoryIP9SendTableiE5PurgeEv proc near
					; CODE XREF: DataTable_CreateClientTablesFromServerTables(void)+90p
					; DataTable_CreateClientTablesFromServerTables(void)+9Ep ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+8]
		test	edx, edx
		js	short loc_EFA0C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_EFA05
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_EFA05:				; CODE XREF: CUtlMemory<SendTable *,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_EFA0C:				; CODE XREF: CUtlMemory<SendTable *,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP9SendTableiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CClientSendTable *, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP16CClientSendTabletEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EFAA2
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EFAB0
		test	eax, eax
		mov	edx, 4
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EFA56
		lea	esi, [esi+0]

loc_EFA50:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EFA50

loc_EFA56:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_EFA88
		test	ax, ax
		jz	short loc_EFAC8
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_EFAA2
		cmp	esi, ecx
		jge	short loc_EFA88
		lea	esi, [esi+0]

loc_EFA70:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_EFA70
		lea	esi, [esi+0]

loc_EFA88:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jz	short loc_EFAD8
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EFAA2:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EFAB0:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_EFA56
; ---------------------------------------------------------------------------
		align 8

loc_EFAC8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_EFA88
		jmp	short loc_EFAA2
; ---------------------------------------------------------------------------
		align 4

loc_EFAD8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)+72j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP16CClientSendTabletEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CClientSendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CClientSendTable *, unsigned	short>,	unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb proc near
					; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+20p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_EFB60
		mov	edi, [ebx]
		movzx	ecx, ax
		shl	ecx, 3
		add	edi, ecx
		movzx	esi, word ptr [edi+6]
		mov	[ebx+10h], si

loc_EFB22:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+A9j
		test	dl, dl
		jz	short loc_EFB48
		mov	word ptr [edi+6], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+4], 0FFFFh

loc_EFB35:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_EFB48:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+34j
		mov	[edi+6], ax
		mov	edx, [ebx]
		mov	[edx+ecx+4], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EFB60:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_EFBA0
		test	ecx, ecx
		jz	short loc_EFBC0
		xor	edi, edi
		xor	esi, esi

loc_EFB76:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_EFBC0

loc_EFB7A:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_EFC30
		mov	edi, [ebx]
		movzx	ecx, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		shl	ecx, 3
		mov	eax, esi
		add	edi, ecx
		jmp	short loc_EFB22
; ---------------------------------------------------------------------------
		align 10h

loc_EFBA0:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_EFB76
; ---------------------------------------------------------------------------
		align 10h

loc_EFBC0:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP16CClientSendTabletEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_EFC60
		test	ecx, ecx
		jz	short loc_EFC00
		xor	edi, edi
		xor	esi, esi

loc_EFBF8:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_EFB7A

loc_EFC00:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount,	9 ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_EFB35
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount,	1 ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_EFB35
; ---------------------------------------------------------------------------
		align 10h

loc_EFC30:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_EFB35
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_EFB35
; ---------------------------------------------------------------------------
		align 10h

loc_EFC60:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_EFBF8
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CClientSendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CClientSendTable *, unsigned	short>,	unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt proc near
					; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+3Bp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_EFCFA
		cmp	cx, [eax+16h]
		ja	short loc_EFCFA
		mov	esi, [eax]
		lea	edx, [esi+edx*8]
		cmp	cx, [edx+4]
		jz	short loc_EFCFA
		movzx	ebx, word ptr [edx+4]
		cmp	bx, 0FFFFh
		jz	short loc_EFD10
		movzx	edi, word ptr [edx+6]
		movzx	ebx, bx
		mov	[esi+ebx*8+6], di
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jz	short loc_EFD22

loc_EFCDF:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::Unlink(ushort)+90j
		movzx	edi, word ptr [edx+4]
		movzx	ebx, bx
		mov	esi, [eax]
		mov	[esi+ebx*8+4], di

loc_EFCED:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::Unlink(ushort)+9Aj
		mov	[edx+6], cx
		mov	[edx+4], cx
		sub	word ptr [eax+12h], 1

loc_EFCFA:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>>::Unlink(ushort)+22j	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EFD10:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::Unlink(ushort)+37j
		movzx	ebx, word ptr [edx+6]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jnz	short loc_EFCDF

loc_EFD22:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::Unlink(ushort)+4Dj
		movzx	ebx, word ptr [edx+4]
		mov	[eax+0Eh], bx
		jmp	short loc_EFCED
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CClientSendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CClientSendTable *, unsigned	short>,	unsigned short>>::InsertBefore(unsigned	short, CClientSendTable	* const&)
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ proc near
					; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+40p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::AllocInternal(bool)
		cmp	ax, 0FFFFh
		jz	short loc_EFDBB
		movzx	edx, ax
		mov	[ebp+var_1C], eax
		mov	[esp+4], edx
		mov	[ebp+var_20], edx
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::Unlink(ushort)
		mov	edx, [ebp+var_20]
		mov	ecx, [ebx]
		shl	edx, 3
		add	ecx, edx
		cmp	si, 0FFFFh
		mov	[ecx+6], si
		mov	eax, [ebp+var_1C]
		jz	short loc_EFDD0
		movzx	edi, si
		mov	esi, [ebx]
		lea	edi, [esi+edi*8]
		movzx	esi, word ptr [edi+4]
		mov	[edi+4], ax
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		jz	short loc_EFDE2

loc_EFDA1:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+B0j
		mov	ecx, [ebx]
		movzx	esi, si
		mov	[ecx+esi*8+6], ax

loc_EFDAB:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+B6j
		add	word ptr [ebx+12h], 1
		add	edx, [ebx]
		jz	short loc_EFDBB
		mov	ecx, [ebp+arg_8]
		mov	ecx, [ecx]
		mov	[edx], ecx

loc_EFDBB:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+29j
					; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+82j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EFDD0:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+55j
		movzx	esi, word ptr [ebx+0Eh]
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		mov	[ebx+0Eh], ax
		jnz	short loc_EFDA1

loc_EFDE2:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::InsertBefore(ushort,CClientSendTable * const&)+6Fj
		mov	[ebx+0Ch], ax
		jmp	short loc_EFDAB
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP12CRecvDecodertEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_EFE72
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_EFE80
		test	eax, eax
		mov	edx, 4
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_EFE26
		lea	esi, [esi+0]

loc_EFE20:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_EFE20

loc_EFE26:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_EFE58
		test	ax, ax
		jz	short loc_EFE98
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_EFE72
		cmp	esi, ecx
		jge	short loc_EFE58
		lea	esi, [esi+0]

loc_EFE40:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_EFE40
		lea	esi, [esi+0]

loc_EFE58:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+4Bj	...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jz	short loc_EFEA8
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_EFE72:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+47j	...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_EFE80:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_EFE26
; ---------------------------------------------------------------------------
		align 8

loc_EFE98:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_EFE58
		jmp	short loc_EFE72
; ---------------------------------------------------------------------------
		align 4

loc_EFEA8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)+72j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP12CRecvDecodertEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CRecvDecoder *, unsigned short, false,	unsigned short,	CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned	short>,	unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb proc near
					; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder	* const&)+20p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_EFF30
		mov	edi, [ebx]
		movzx	ecx, ax
		shl	ecx, 3
		add	edi, ecx
		movzx	esi, word ptr [edi+6]
		mov	[ebx+10h], si

loc_EFEF2:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+A9j
		test	dl, dl
		jz	short loc_EFF18
		mov	word ptr [edi+6], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+4], 0FFFFh

loc_EFF05:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::AllocInternal(bool)+136j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_EFF18:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+34j
		mov	[edi+6], ax
		mov	edx, [ebx]
		mov	[edx+ecx+4], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_EFF30:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_EFF70
		test	ecx, ecx
		jz	short loc_EFF90
		xor	edi, edi
		xor	esi, esi

loc_EFF46:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_EFF90

loc_EFF4A:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_F0000
		mov	edi, [ebx]
		movzx	ecx, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		shl	ecx, 3
		mov	eax, esi
		add	edi, ecx
		jmp	short loc_EFEF2
; ---------------------------------------------------------------------------
		align 10h

loc_EFF70:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_EFF46
; ---------------------------------------------------------------------------
		align 10h

loc_EFF90:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP12CRecvDecodertEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_F0030
		test	ecx, ecx
		jz	short loc_EFFD0
		xor	edi, edi
		xor	esi, esi

loc_EFFC8:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_EFF4A

loc_EFFD0:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 9 ;	CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_EFF05
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 1 ;	CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_EFF05
; ---------------------------------------------------------------------------
		align 10h

loc_F0000:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 9	; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_EFF05
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 1	; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_EFF05
; ---------------------------------------------------------------------------
		align 10h

loc_F0030:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_EFFC8
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CRecvDecoder *, unsigned short, false,	unsigned short,	CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned	short>,	unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt proc near
					; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder	* const&)+3Bp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_F00CA
		cmp	cx, [eax+16h]
		ja	short loc_F00CA
		mov	esi, [eax]
		lea	edx, [esi+edx*8]
		cmp	cx, [edx+4]
		jz	short loc_F00CA
		movzx	ebx, word ptr [edx+4]
		cmp	bx, 0FFFFh
		jz	short loc_F00E0
		movzx	edi, word ptr [edx+6]
		movzx	ebx, bx
		mov	[esi+ebx*8+6], di
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jz	short loc_F00F2

loc_F00AF:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::Unlink(ushort)+90j
		movzx	edi, word ptr [edx+4]
		movzx	ebx, bx
		mov	esi, [eax]
		mov	[esi+ebx*8+4], di

loc_F00BD:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::Unlink(ushort)+9Aj
		mov	[edx+6], cx
		mov	[edx+4], cx
		sub	word ptr [eax+12h], 1

loc_F00CA:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::Unlink(ushort)+22j	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F00E0:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::Unlink(ushort)+37j
		movzx	ebx, word ptr [edx+6]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jnz	short loc_F00AF

loc_F00F2:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::Unlink(ushort)+4Dj
		movzx	ebx, word ptr [edx+4]
		mov	[eax+0Eh], bx
		jmp	short loc_F00BD
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CRecvDecoder *, unsigned short, false,	unsigned short,	CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned	short>,	unsigned short>>::InsertBefore(unsigned	short, CRecvDecoder * const&)
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ proc near
					; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+23Fp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb ;	CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::AllocInternal(bool)
		cmp	ax, 0FFFFh
		jz	short loc_F018B
		movzx	edx, ax
		mov	[ebp+var_1C], eax
		mov	[esp+4], edx
		mov	[ebp+var_20], edx
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ;	CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::Unlink(ushort)
		mov	edx, [ebp+var_20]
		mov	ecx, [ebx]
		shl	edx, 3
		add	ecx, edx
		cmp	si, 0FFFFh
		mov	[ecx+6], si
		mov	eax, [ebp+var_1C]
		jz	short loc_F01A0
		movzx	edi, si
		mov	esi, [ebx]
		lea	edi, [esi+edi*8]
		movzx	esi, word ptr [edi+4]
		mov	[edi+4], ax
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		jz	short loc_F01B2

loc_F0171:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder	* const&)+B0j
		mov	ecx, [ebx]
		movzx	esi, si
		mov	[ecx+esi*8+6], ax

loc_F017B:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder	* const&)+B6j
		add	word ptr [ebx+12h], 1
		add	edx, [ebx]
		jz	short loc_F018B
		mov	ecx, [ebp+arg_8]
		mov	ecx, [ecx]
		mov	[edx], ecx

loc_F018B:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder	* const&)+29j
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder * const&)+82j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F01A0:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder	* const&)+55j
		movzx	esi, word ptr [ebx+0Eh]
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		mov	[ebx+0Eh], ax
		jnz	short loc_F0171

loc_F01B2:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::InsertBefore(ushort,CRecvDecoder	* const&)+6Fj
		mov	[ebx+0Ch], ax
		jmp	short loc_F017B
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<SendTable *, int>::Grow(int)
_ZN10CUtlMemoryIP9SendTableiE4GrowEi proc near
					; CODE XREF: CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::InsertBefore(int,SendTable * const&)+7Cp
					; CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_F0210
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_F0220
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_F01F6
		lea	esi, [esi+0]

loc_F01F0:				; CODE XREF: CUtlMemory<SendTable *,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_F01F0

loc_F01F6:				; CODE XREF: CUtlMemory<SendTable *,int>::Grow(int)+2Aj
					; CUtlMemory<SendTable *,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_F0253

loc_F0202:				; CODE XREF: CUtlMemory<SendTable *,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_F0210:				; CODE XREF: CUtlMemory<SendTable *,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0220:				; CODE XREF: CUtlMemory<SendTable *,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_F01F6
		lea	esi, [esi+0]

loc_F0238:				; CODE XREF: CUtlMemory<SendTable *,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_F0238
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_F0202

loc_F0253:				; CODE XREF: CUtlMemory<SendTable *,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP9SendTableiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<SendTable *, CUtlMemory<SendTable *, int>>::InsertBefore(int, SendTable * const&)
_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: DataTable_MaybeCreateReceiveTable(CUtlVector<SendTable *,CUtlMemory<SendTable *,int>> &,SendTable *,bool)+45p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_F02E0

loc_F028F:				; CODE XREF: CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::InsertBefore(int,SendTable * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_F02C6
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_F02C6:				; CODE XREF: CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::InsertBefore(int,SendTable * const&)+38j
		add	edi, eax
		jz	short loc_F02D1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_F02D1:				; CODE XREF: CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::InsertBefore(int,SendTable * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F02E0:				; CODE XREF: CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::InsertBefore(int,SendTable * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP9SendTableiE4GrowEi ; CUtlMemory<SendTable *,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_F028F
_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CClientSendProp, int>::Grow(int)
_ZN10CUtlMemoryI15CClientSendPropiE4GrowEi proc	near
					; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+9Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_F0350
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_F0360
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_F0336
		lea	esi, [esi+0]

loc_F0330:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_F0330

loc_F0336:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Grow(int)+2Aj
					; CUtlMemory<CClientSendProp,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_F0393

loc_F0342:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_F0350:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0360:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_F0336
		lea	esi, [esi+0]

loc_F0378:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_F0378
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_F0342

loc_F0393:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15CClientSendPropiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CClientSendProp, CUtlMemory<CClientSendProp, int>>::SetCount(int)
_ZN10CUtlVectorI15CClientSendProp10CUtlMemoryIS0_iEE8SetCountEi	proc near
					; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+8Cp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebx+0Ch]
		sub	edi, 1
		js	short loc_F03ED
		lea	eax, ds:0[edi*4]
		db	66h
		nop

loc_F03D0:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+3Bj
		mov	edx, [ebx]
		mov	[ebp+var_1C], eax
		sub	edi, 1
		add	edx, eax
		mov	[esp], edx
		call	_ZN15CClientSendPropD2Ev ; CClientSendProp::~CClientSendProp()
		mov	eax, [ebp+var_1C]
		sub	eax, 4
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_F03D0

loc_F03ED:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+15j
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_F0432
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_F0440
		mov	eax, [ebx]
		test	esi, esi
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax
		setnle	al

loc_F040C:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+B9j
		test	al, al
		jz	short loc_F0432

loc_F0410:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+D1j
		xor	edi, edi
		lea	esi, [esi+0]

loc_F0418:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+80j
		lea	eax, ds:0[edi*4]
		add	eax, [ebx]
		jz	short loc_F042B
		mov	[esp], eax
		call	_ZN15CClientSendPropC2Ev ; CClientSendProp::CClientSendProp(void)

loc_F042B:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+71j
		add	edi, 1
		cmp	esi, edi
		jg	short loc_F0418

loc_F0432:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+46j
					; CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+5Ej ...
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0440:				; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+4Dj
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryI15CClientSendPropiE4GrowEi ; CUtlMemory<CClientSendProp,int>::Grow(int)
		mov	ecx, [ebx+0Ch]
		test	esi, esi
		mov	edx, [ebx]
		lea	eax, [esi+ecx]
		mov	[ebx+0Ch], eax
		setnle	al
		test	al, al
		mov	[ebx+10h], edx
		jz	short loc_F0432
		test	ecx, ecx
		jle	short loc_F040C
		lea	eax, [edx+esi*4]
		shl	ecx, 2
		mov	[esp+4], edx	; src
		mov	[esp+8], ecx	; n
		mov	[esp], eax	; dest
		call	memmove
		jmp	short loc_F0410
_ZN10CUtlVectorI15CClientSendProp10CUtlMemoryIS0_iEE8SetCountEi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_Encode(unsigned char  const*, DVariant *,	SendProp  const*, bf_write *, int)
_Z10Int_EncodePKhP8DVariantPK8SendPropP8bf_writei proc near
					; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+D2p
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+2C2p
					; DATA XREF: ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ecx, 20h
		mov	edx, 7FFFFFFFh
		mov	ebp, esp
		sub	esp, 1Ch
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_C]
		mov	esi, [edi+0Ch]
		mov	eax, [eax]
		sub	ecx, esi
		sar	edx, cl
		xor	ecx, ecx
		test	byte ptr [edi+38h], 1
		mov	[ebp+var_14], eax
		mov	eax, 0FFFFFFFFh
		jnz	short loc_F04D9
		mov	ecx, edx
		mov	eax, edx
		mov	edx, [ebp+var_14]
		not	ecx
		sar	edx, 1Fh
		and	ecx, edx

loc_F04D9:				; CODE XREF: Int_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+39j
		mov	edx, [ebx+8]
		mov	[ebp+var_18], edx
		mov	edx, [ebx+0Ch]
		mov	edi, [ebp+var_18]
		sub	edi, edx
		cmp	esi, edi
		jg	loc_F0570
		and	eax, [ebp+var_14]
		mov	edi, edx
		and	edi, 1Fh
		mov	[ebp+var_10], edi
		lea	edi, [esi+edx]
		sar	edx, 5
		mov	[ebx+0Ch], edi
		mov	edi, [ebx]
		or	eax, ecx
		movzx	ecx, byte ptr [ebp+var_10]
		lea	edx, [edi+edx*4]
		rol	eax, cl
		lea	ecx, [esi-1]
		mov	esi, 1
		shl	esi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_10]
		lea	edi, [esi-1]
		lea	esi, [esi+esi-1]
		shr	edi, cl
		mov	ecx, [edx]
		mov	[ebp+var_14], ecx
		mov	ecx, edi
		and	ecx, 1
		mov	ebx, [ebp+var_14]
		lea	ecx, [edx+ecx*4]
		mov	[ebp+var_18], ecx
		mov	ecx, [ecx]
		xor	ebx, eax
		mov	[ebp+var_1C], ecx
		movzx	ecx, byte ptr [ebp+var_10]
		xor	eax, [ebp+var_1C]
		shl	esi, cl
		and	ebx, esi
		and	eax, edi
		mov	edi, [ebp+var_18]
		xor	ebx, [ebp+var_14]
		xor	eax, [ebp+var_1C]
		mov	[edi], eax
		mov	[edx], ebx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0570:				; CODE XREF: Int_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+59j
		mov	eax, [ebp+var_18]
		mov	byte ptr [ebx+10h], 1
		mov	[ebx+0Ch], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z10Int_EncodePKhP8DVariantPK8SendPropP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_GetTypeNameString(void)
_Z21Int_GetTypeNameStringv proc	near	; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+12Ap
					; Array_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+D2p ...
		push	ebp
		mov	eax, offset aDpt_int ; "DPT_Int"
		mov	ebp, esp
		pop	ebp
		retn
_Z21Int_GetTypeNameStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_IsZero(unsigned char  const*, DVariant *,	SendProp  const*)
_Z10Int_IsZeroPKhP8DVariantPK8SendProp proc near
					; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+12Ap
					; Array_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+D2p ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		pop	ebp
		mov	eax, [eax]
		test	eax, eax
		setz	al
		retn
_Z10Int_IsZeroPKhP8DVariantPK8SendProp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_DecodeZero(DecodeInfo *)
_Z14Int_DecodeZeroP10DecodeInfo	proc near
					; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+12Ap
					; Array_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+D2p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	dword ptr [eax+4], 0
		test	edx, edx
		jz	short locret_F05DA
		mov	ecx, [eax+20h]
		mov	[esp+8], ecx
		mov	ecx, [eax+1Ch]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+20h]

locret_F05DA:				; CODE XREF: Int_DecodeZero(DecodeInfo *)+14j
		leave
		retn
_Z14Int_DecodeZeroP10DecodeInfo	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_GetTypeNameString(void)
_Z23Float_GetTypeNameStringv proc near	; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...
		push	ebp
		mov	eax, offset aDpt_float ; "DPT_Float"
		mov	ebp, esp
		pop	ebp
		retn
_Z23Float_GetTypeNameStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_IsZero(unsigned	char  const*, DVariant *, SendProp  const*)
_Z12Float_IsZeroPKhP8DVariantPK8SendProp proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		pop	ebp
		fld	dword ptr [eax]
		fldz
		fcomip	st, st(1)
		fstp	st
		setz	al
		retn
_Z12Float_IsZeroPKhP8DVariantPK8SendProp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_DecodeZero(DecodeInfo *)
_Z16Float_DecodeZeroP10DecodeInfo proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	dword ptr [eax+4], 0
		test	edx, edx
		jz	short locret_F063A
		mov	ecx, [eax+20h]
		mov	[esp+8], ecx
		mov	ecx, [eax+1Ch]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+20h]

locret_F063A:				; CODE XREF: Float_DecodeZero(DecodeInfo *)+14j
		leave
		retn
_Z16Float_DecodeZeroP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_GetTypeNameString(void)
_Z24Vector_GetTypeNameStringv proc near	; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...
		push	ebp
		mov	eax, offset aDpt_vector	; "DPT_Vector"
		mov	ebp, esp
		pop	ebp
		retn
_Z24Vector_GetTypeNameStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_IsZero(unsigned char  const*, DVariant	*, SendProp  const*)
_Z13Vector_IsZeroPKhP8DVariantPK8SendProp proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		fld	dword ptr [eax]
		fldz
		fcomi	st, st(1)
		fstp	st(1)
		jnz	short loc_F0678
		fld	dword ptr [eax+4]
		fcomip	st, st(1)
		jnz	short loc_F0680
		fld	dword ptr [eax+8]
		fcomip	st, st(1)
		fstp	st
		pop	ebp
		setz	al
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F0678:				; CODE XREF: Vector_IsZero(uchar  const*,DVariant *,SendProp  const*)+Ej
		fstp	st
		jmp	short loc_F0682
; ---------------------------------------------------------------------------
		align 10h

loc_F0680:				; CODE XREF: Vector_IsZero(uchar  const*,DVariant *,SendProp  const*)+15j
		fstp	st

loc_F0682:				; CODE XREF: Vector_IsZero(uchar  const*,DVariant *,SendProp  const*)+2Aj
		xor	eax, eax
		pop	ebp
		retn
_Z13Vector_IsZeroPKhP8DVariantPK8SendProp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_DecodeZero(DecodeInfo *)
_Z17Vector_DecodeZeroP10DecodeInfo proc	near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		test	edx, edx
		jz	short locret_F06C8
		mov	ecx, [eax+20h]
		mov	[esp+8], ecx
		mov	ecx, [eax+1Ch]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+20h]

locret_F06C8:				; CODE XREF: Vector_DecodeZero(DecodeInfo *)+22j
		leave
		retn
_Z17Vector_DecodeZeroP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_GetTypeNameString(void)
_Z26VectorXY_GetTypeNameStringv	proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...
		push	ebp
		mov	eax, offset aDpt_vectorxy ; "DPT_VectorXY"
		mov	ebp, esp
		pop	ebp
		retn
_Z26VectorXY_GetTypeNameStringv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_IsZero(unsigned char	 const*, DVariant *, SendProp  const*)
_Z15VectorXY_IsZeroPKhP8DVariantPK8SendProp proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		fld	dword ptr [eax]
		fldz
		fcomi	st, st(1)
		fstp	st(1)
		jnz	short loc_F0700
		fld	dword ptr [eax+4]
		fcomip	st, st(1)
		fstp	st
		pop	ebp
		setz	al
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0700:				; CODE XREF: VectorXY_IsZero(uchar  const*,DVariant *,SendProp	const*)+Ej
		fstp	st
		xor	eax, eax
		pop	ebp
		retn
_Z15VectorXY_IsZeroPKhP8DVariantPK8SendProp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_DecodeZero(DecodeInfo *)
_Z19VectorXY_DecodeZeroP10DecodeInfo proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax+8], 0
		test	edx, edx
		jz	short locret_F0741
		mov	ecx, [eax+20h]
		mov	[esp+8], ecx
		mov	ecx, [eax+1Ch]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+20h]

locret_F0741:				; CODE XREF: VectorXY_DecodeZero(DecodeInfo *)+1Bj
		leave
		retn
_Z19VectorXY_DecodeZeroP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_GetTypeNameString(void)
_Z24String_GetTypeNameStringv proc near	; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...
		push	ebp
		mov	eax, offset aDpt_string	; "DPT_String"
		mov	ebp, esp
		pop	ebp
		retn
_Z24String_GetTypeNameStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_IsZero(unsigned char  const*, DVariant	*, SendProp  const*)
_Z13String_IsZeroPKhP8DVariantPK8SendProp proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		pop	ebp
		mov	eax, [eax]
		cmp	byte ptr [eax],	0
		setz	al
		retn
_Z13String_IsZeroPKhP8DVariantPK8SendProp endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_DecodeZero(DecodeInfo *)
_Z17String_DecodeZeroP10DecodeInfo proc	near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		lea	edx, [eax+2Ch]
		mov	byte ptr [eax+2Ch], 0
		mov	[eax+4], edx
		mov	edx, [eax]
		test	edx, edx
		jz	short locret_F079D
		mov	ecx, [eax+20h]
		mov	[esp+8], ecx
		mov	ecx, [eax+1Ch]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+20h]

locret_F079D:				; CODE XREF: String_DecodeZero(DecodeInfo *)+17j
		leave
		retn
_Z17String_DecodeZeroP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_FastCopy(SendProp  const*, RecvProp  const*, unsigned char  const*, unsigned char *, int)
_Z14Array_FastCopyPK8SendPropPK8RecvPropPKhPhi proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_24], 1
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	edx, [edx+18h]
		mov	eax, [esi+1Ch]
		mov	ebx, [esi+18h]
		mov	[ebp+var_40], edx
		mov	[ebp+var_34], edx
		mov	edx, [ebp+arg_10]
		test	eax, eax
		mov	[ebp+var_1C], edx
		jz	loc_F0898
		mov	[esp+4], edx
		mov	edx, [ebp+arg_8]
		mov	[esp], edx
		call	eax
		mov	[ebp+var_3C], eax
		mov	eax, [esi+20h]
		cmp	[ebp+var_3C], eax
		cmovle	eax, [ebp+var_3C]
		mov	[ebp+var_3C], eax

loc_F07EF:				; CODE XREF: Array_FastCopy(SendProp  const*,RecvProp  const*,uchar  const*,uchar *,int)+FEj
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+1Ch]
		test	eax, eax
		jz	short loc_F080F
		mov	edx, [ebp+var_3C]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_10]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_C]
		mov	[esp], edx
		call	eax

loc_F080F:				; CODE XREF: Array_FastCopy(SendProp  const*,RecvProp  const*,uchar  const*,uchar *,int)+57j
		mov	edx, [ebp+var_40]
		mov	[ebp+var_20], 0
		mov	eax, [ebx+48h]
		mov	edi, [edx+2Ch]
		mov	edx, [ebp+var_3C]
		test	edx, edx
		jle	short loc_F088C
		add	eax, [ebp+arg_8]
		mov	[ebp+var_44], esi
		xor	edx, edx
		add	edi, [ebp+arg_C]
		mov	esi, ebx
		mov	ebx, eax
		lea	esi, [esi+0]

loc_F0838:				; CODE XREF: Array_FastCopy(SendProp  const*,RecvProp  const*,uchar  const*,uchar *,int)+EAj
		mov	[esp+10h], edx
		lea	edx, [ebp+var_30]
		mov	eax, [ebp+arg_10]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], ebx
		mov	[esp], esi
		mov	[esp+14h], eax
		mov	[esp+4], edx
		call	dword ptr [esi+3Ch]
		mov	eax, [ebp+var_44]
		mov	edx, [ebp+arg_C]
		add	ebx, [eax+24h]
		lea	eax, [ebp+var_34]
		mov	[esp+8], edi
		mov	[esp+4], edx
		mov	edx, [ebp+var_40]
		mov	[esp], eax
		call	dword ptr [edx+20h]
		mov	edx, [ebp+arg_4]
		add	edi, [edx+30h]
		mov	edx, [ebp+var_20]
		add	edx, 1
		cmp	edx, [ebp+var_3C]
		mov	[ebp+var_20], edx
		jl	short loc_F0838

loc_F088C:				; CODE XREF: Array_FastCopy(SendProp  const*,RecvProp  const*,uchar  const*,uchar *,int)+84j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F0898:				; CODE XREF: Array_FastCopy(SendProp  const*,RecvProp  const*,uchar  const*,uchar *,int)+2Dj
		mov	eax, [esi+20h]
		mov	[ebp+var_3C], eax
		jmp	loc_F07EF
_Z14Array_FastCopyPK8SendPropPK8RecvPropPKhPhi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_GetTypeNameString(void)
_Z23Array_GetTypeNameStringv proc near	; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...
		push	ebp
		mov	eax, offset aDpt_array ; "DPT_Array"
		mov	ebp, esp
		pop	ebp
		retn
_Z23Array_GetTypeNameStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_IsZero(unsigned	char  const*, DVariant *, SendProp  const*)
_Z12Array_IsZeroPKhP8DVariantPK8SendProp proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_8]
		mov	eax, [ebx+1Ch]
		test	eax, eax
		jz	short loc_F08F8
		mov	edx, [ebp+arg_0]
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp], edx
		call	eax
		mov	edx, [ebx+20h]
		cmp	eax, edx
		cmovle	edx, eax
		test	edx, edx
		setz	al
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F08F8:				; CODE XREF: Array_IsZero(uchar	 const*,DVariant *,SendProp  const*)+Fj
		mov	edx, [ebx+20h]
		test	edx, edx
		setz	al
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z12Array_IsZeroPKhP8DVariantPK8SendProp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_DecodeZero(DecodeInfo *)
_Z16Array_DecodeZeroP10DecodeInfo proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	edx, [edx+1Ch]
		test	edx, edx
		jz	short locret_F0939
		mov	dword ptr [esp+8], 0
		mov	ecx, [eax+18h]
		mov	[esp+4], ecx
		mov	eax, [eax+1Ch]
		mov	[esp], eax
		call	edx

locret_F0939:				; CODE XREF: Array_DecodeZero(DecodeInfo *)+10j
		leave
		retn
_Z16Array_DecodeZeroP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DataTable_GetTypeNameString(void)
_Z27DataTable_GetTypeNameStringv proc near ; DATA XREF:	.data:00277248o
		push	ebp
		mov	eax, offset aDpt_datatable ; "DPT_DataTable"
		mov	ebp, esp
		pop	ebp
		retn
_Z27DataTable_GetTypeNameStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_IsEncodedZero(SendProp  const*, bf_read *)
_Z17Int_IsEncodedZeroPK8SendPropP7bf_read proc near
					; CODE XREF: Array_IsEncodedZero(SendProp  const*,bf_read *)+93p
					; Array_CompareDeltas(SendProp	const*,bf_read *,bf_read *)+12Ap ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], edi
		mov	ecx, [eax+8]
		mov	ebx, [edx+0Ch]
		mov	edx, [eax+0Ch]
		mov	esi, ecx
		sub	esi, edx
		cmp	ebx, esi
		jg	short loc_F09C0
		mov	esi, [eax]
		lea	ecx, [ebx+edx]
		mov	edi, edx
		mov	[eax+0Ch], ecx
		lea	eax, [ecx-1]
		sar	edx, 5
		sar	eax, 5
		and	edi, 1Fh
		mov	ecx, 20h
		sub	ecx, edi
		mov	eax, [esi+eax*4]
		mov	edx, [esi+edx*4]
		mov	esi, [ebp+var_8]
		shl	eax, cl
		mov	ecx, edi
		mov	edi, [ebp+var_4]
		shr	edx, cl
		lea	ecx, [ebx-1]
		or	eax, edx
		mov	edx, 2
		shl	edx, cl
		mov	ebx, [ebp+var_C]
		sub	edx, 1
		test	eax, edx
		setz	al
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F09C0:				; CODE XREF: Int_IsEncodedZero(SendProp	 const*,bf_read	*)+24j
		mov	[eax+0Ch], ecx
		mov	[esp], eax
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	ebx, [ebp+var_C]
		mov	eax, 1
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z17Int_IsEncodedZeroPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_CompareDeltas(SendProp  const*, bf_read *, bf_read *)
_Z17Int_CompareDeltasPK8SendPropP7bf_readS3_ proc near
					; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+12Ap
					; Array_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+D2p ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		mov	ecx, [edx+8]
		mov	esi, [eax+0Ch]
		mov	eax, [edx+0Ch]
		mov	ebx, ecx
		sub	ebx, eax
		cmp	esi, ebx
		jg	loc_F0AA8
		lea	ebx, [esi+eax]
		mov	ecx, eax
		sar	eax, 5
		mov	[edx+0Ch], ebx
		mov	edx, [edx]
		and	ecx, 1Fh
		sub	ebx, 1
		mov	[ebp+var_1C], ecx
		mov	ecx, 20h
		sar	ebx, 5
		sub	ecx, [ebp+var_1C]
		mov	ebx, [edx+ebx*4]
		mov	eax, [edx+eax*4]
		mov	edx, [edi+0Ch]
		shl	ebx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		lea	ecx, [esi-1]
		or	ebx, eax
		mov	eax, 2
		shl	eax, cl
		sub	eax, 1
		and	ebx, eax
		mov	eax, [edi+8]
		mov	ecx, eax
		sub	ecx, edx
		cmp	esi, ecx
		jg	short loc_F0AC3

loc_F0A55:				; CODE XREF: Int_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+E1j
		lea	eax, [esi+edx]
		mov	ecx, edx
		sar	edx, 5
		mov	[edi+0Ch], eax
		mov	edi, [edi]
		and	ecx, 1Fh
		sub	eax, 1
		mov	[ebp+var_1C], ecx
		mov	ecx, 20h
		sar	eax, 5
		sub	ecx, [ebp+var_1C]
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		lea	ecx, [esi-1]
		or	eax, edx
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	eax, edx
		cmp	ebx, eax
		setnz	al
		add	esp, 2Ch
		pop	ebx
		movzx	eax, al
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F0AA8:				; CODE XREF: Int_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+21j
		mov	[edx+0Ch], ecx
		xor	ebx, ebx
		mov	[esp], edx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [edi+8]
		mov	edx, [edi+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	esi, ecx
		jle	short loc_F0A55

loc_F0AC3:				; CODE XREF: Int_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+73j
		mov	[edi+0Ch], eax
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		cmp	ebx, eax
		setnz	al
		add	esp, 2Ch
		pop	ebx
		movzx	eax, al
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z17Int_CompareDeltasPK8SendPropP7bf_readS3_ endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_Decode(DecodeInfo	*)
_Z10Int_DecodeP10DecodeInfo proc near	; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+D2p
					; Array_Decode(DecodeInfo *)+189p ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+24h]
		mov	ecx, [ebx+28h]
		mov	esi, [eax+0Ch]
		mov	eax, [ecx+8]
		mov	edx, [ecx+0Ch]
		mov	edi, eax
		sub	edi, edx
		cmp	esi, edi
		jg	loc_F0BA0
		mov	eax, edx
		mov	edi, [ecx]
		and	eax, 1Fh
		mov	[ebp+var_1C], eax
		lea	eax, [esi+edx]
		sar	edx, 5
		mov	[ecx+0Ch], eax
		sub	eax, 1
		mov	ecx, 20h
		sar	eax, 5
		sub	ecx, [ebp+var_1C]
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		lea	ecx, [esi-1]
		or	eax, edx
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	eax, edx
		mov	edx, eax

loc_F0B49:				; CODE XREF: Int_Decode(DecodeInfo *)+CFj
		cmp	esi, 20h
		mov	[ebx+4], edx
		jz	short loc_F0B5A
		mov	edx, [ebx+24h]
		test	byte ptr [edx+38h], 1
		jz	short loc_F0B80

loc_F0B5A:				; CODE XREF: Int_Decode(DecodeInfo *)+6Fj
					; Int_Decode(DecodeInfo	*)+AFj	...
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F0B74
		mov	edx, [ebx+20h]
		mov	[esp+8], edx
		mov	edx, [ebx+1Ch]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+20h]

loc_F0B74:				; CODE XREF: Int_Decode(DecodeInfo *)+7Ej
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0B80:				; CODE XREF: Int_Decode(DecodeInfo *)+78j
		mov	ecx, [edx+0Ch]
		mov	edx, 1
		sub	ecx, 1
		shl	edx, cl
		test	eax, edx
		jz	short loc_F0B5A
		sub	eax, edx
		sub	eax, edx
		mov	[ebx+4], eax
		jmp	short loc_F0B5A
; ---------------------------------------------------------------------------
		align 10h

loc_F0BA0:				; CODE XREF: Int_Decode(DecodeInfo *)+21j
		mov	[ecx+0Ch], eax
		mov	[esp], ecx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		xor	eax, eax
		jmp	short loc_F0B49
_Z10Int_DecodeP10DecodeInfo endp

; ---------------------------------------------------------------------------
		jmp	short _Z14Array_SkipPropPK8SendPropP7bf_read ; Array_SkipProp(SendProp	const*,bf_read *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_SkipProp(SendProp  const*, bf_read *)
_Z14Array_SkipPropPK8SendPropP7bf_read proc near ; CODE	XREF: .text:000F0BB1j
					; Array_SkipProp(SendProp  const*,bf_read *)+93p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edx, [eax+18h]
		mov	[esp], eax
		mov	[ebp+var_20], edx
		call	_ZNK8SendProp21GetNumArrayLengthBitsEv ; SendProp::GetNumArrayLengthBits(void)
		mov	ecx, [esi+8]
		mov	edx, [esi+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	eax, edi
		jg	loc_F0C70
		mov	ebx, [esi]
		lea	edi, [eax+edx]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[esi+0Ch], edi
		sub	edi, 1
		mov	[ebp+var_1C], ecx
		sar	edi, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	edx, 5
		mov	edi, [ebx+edi*4]
		mov	edx, [ebx+edx*4]
		shl	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		lea	ecx, [eax-1]
		or	edi, edx
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	edx, edi
		jle	short loc_F0C5E
		mov	ebx, [ebp+var_20]
		mov	[ebp+var_1C], esi
		xor	edi, edi
		mov	esi, edx
		nop
		lea	esi, [esi+0]

loc_F0C40:				; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+9Cj
		mov	eax, [ebx+8]
		add	edi, 1
		mov	[esp], ebx
		mov	edx, [ebp+var_1C]
		lea	eax, [eax+eax*8]
		mov	[esp+4], edx
		call	off_277180[eax*4] ; Float_GetTypeNameString(void)
		cmp	esi, edi
		jnz	short loc_F0C40

loc_F0C5E:				; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+6Fj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0C70:				; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+29j
		mov	[esi+0Ch], ecx
		mov	[ebp+arg_0], esi
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
_Z14Array_SkipPropPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_IsEncodedZero(SendProp	const*,	bf_read	*)
_Z19Array_IsEncodedZeroPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edx, [eax+18h]
		mov	[esp], eax
		mov	[ebp+var_20], edx
		call	_ZNK8SendProp21GetNumArrayLengthBitsEv ; SendProp::GetNumArrayLengthBits(void)
		mov	ecx, [esi+8]
		mov	edx, [esi+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	eax, edi
		jg	loc_F0D40
		mov	ebx, [esi]
		lea	edi, [eax+edx]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[esi+0Ch], edi
		sub	edi, 1
		mov	[ebp+var_1C], ecx
		sar	edi, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	edx, 5
		mov	edi, [ebx+edi*4]
		mov	edx, [ebx+edx*4]
		shl	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		lea	ecx, [eax-1]
		or	edi, edx
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	edi, edx
		cmp	edi, 0
		jle	short loc_F0D58
		mov	[ebp+var_1C], esi
		mov	esi, [ebp+var_20]
		xor	edx, edx
		mov	ebx, edx
		db	66h
		nop

loc_F0D10:				; CODE XREF: Array_IsEncodedZero(SendProp  const*,bf_read *)+9Cj
		mov	eax, [esi+8]
		add	ebx, 1
		mov	[esp], esi
		mov	edx, [ebp+var_1C]
		lea	eax, [eax+eax*8]
		mov	[esp+4], edx
		call	off_27717C[eax*4] ; Float_GetTypeNameString(void)
		cmp	edi, ebx
		jnz	short loc_F0D10
		xor	eax, eax

loc_F0D30:				; CODE XREF: Array_IsEncodedZero(SendProp  const*,bf_read *)+CBj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0D40:				; CODE XREF: Array_IsEncodedZero(SendProp  const*,bf_read *)+29j
		mov	[esi+0Ch], ecx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		add	esp, 2Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F0D58:				; CODE XREF: Array_IsEncodedZero(SendProp  const*,bf_read *)+72j
		setz	al
		jmp	short loc_F0D30
_Z19Array_IsEncodedZeroPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_CompareDeltas(SendProp	const*,	bf_read	*, bf_read *)
_Z19Array_CompareDeltasPK8SendPropP7bf_readS3_ proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_8]
		mov	ebx, [eax+18h]
		mov	[esp], eax
		call	_ZNK8SendProp21GetNumArrayLengthBitsEv ; SendProp::GetNumArrayLengthBits(void)
		mov	edi, eax
		mov	eax, [ebp+arg_4]
		mov	edx, [eax+8]
		mov	eax, [eax+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	edi, ecx
		jg	loc_F0EF0
		lea	edx, [edi+eax]
		mov	ecx, eax
		mov	[ebp+var_24], 20h
		and	ecx, 1Fh
		sar	eax, 5
		mov	[ebp+var_20], ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+0Ch], edx
		mov	ecx, [ecx]
		sub	edx, 1
		sar	edx, 5
		mov	[ebp+var_34], ecx
		mov	ecx, [ebp+var_20]
		sub	[ebp+var_24], ecx
		mov	ecx, [ebp+var_34]
		mov	ecx, [ecx+edx*4]
		mov	edx, [ebp+var_34]
		mov	[ebp+var_28], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		mov	eax, [edx+eax*4]
		mov	edx, [esi+8]
		shl	[ebp+var_28], cl
		movzx	ecx, byte ptr [ebp+var_20]
		shr	eax, cl
		or	[ebp+var_28], eax
		lea	ecx, [edi-1]
		mov	eax, 2
		shl	eax, cl
		mov	ecx, edx
		sub	eax, 1
		and	[ebp+var_28], eax
		mov	eax, [esi+0Ch]
		sub	ecx, eax
		cmp	edi, ecx
		jg	loc_F0F17

loc_F0DFE:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1B1j
		mov	[ebp+var_24], 20h
		lea	edx, [edi+eax]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[esi+0Ch], edx
		sub	edx, 1
		mov	[ebp+var_20], ecx
		sar	edx, 5
		sar	eax, 5
		sub	[ebp+var_24], ecx
		mov	ecx, [esi]
		mov	ecx, [ecx+edx*4]
		mov	edx, [esi]
		mov	[ebp+var_2C], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		mov	eax, [edx+eax*4]
		shl	[ebp+var_2C], cl
		movzx	ecx, byte ptr [ebp+var_20]
		shr	eax, cl
		or	[ebp+var_2C], eax
		lea	ecx, [edi-1]
		mov	eax, 2
		shl	eax, cl
		sub	eax, 1
		and	[ebp+var_2C], eax

loc_F0E4C:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1C9j
		mov	edx, [ebp+var_28]
		xor	eax, eax
		cmp	[ebp+var_2C], edx
		setnz	al
		cmp	[ebp+var_2C], edx
		mov	[ebp+var_30], eax
		cmovle	edx, [ebp+var_2C]
		test	edx, edx
		mov	[ebp+var_20], edx
		jle	short loc_F0E9E
		mov	[ebp+var_24], esi
		xor	edi, edi
		mov	esi, eax
		nop

loc_F0E70:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+136j
		mov	edx, [ebp+var_24]
		add	edi, 1
		mov	eax, [ebx+8]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	edx, [ebp+arg_4]
		lea	eax, [eax+eax*8]
		mov	[esp+4], edx
		call	off_277168[eax*4] ; Int_GetTypeNameString(void)
		or	esi, eax
		cmp	edi, [ebp+var_20]
		jnz	short loc_F0E70
		mov	[ebp+var_30], esi
		mov	esi, [ebp+var_24]

loc_F0E9E:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+106j
		mov	edx, [ebp+var_28]
		cmp	[ebp+var_2C], edx
		jz	short loc_F0EDC
		mov	ecx, [ebp+var_20]
		cmovge	edx, [ebp+var_2C]
		cmovl	esi, [ebp+arg_4]
		sub	edx, ecx
		test	edx, edx
		mov	[ebp+var_1C], edx
		jle	short loc_F0EDC
		xor	edi, edi
		lea	esi, [esi+0]

loc_F0EC0:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+17Aj
		mov	eax, [ebx+8]
		add	edi, 1
		mov	[esp+4], esi
		mov	[esp], ebx
		lea	eax, [eax+eax*8]
		call	off_277180[eax*4] ; Float_GetTypeNameString(void)
		cmp	edi, [ebp+var_1C]
		jnz	short loc_F0EC0

loc_F0EDC:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+144j
					; Array_CompareDeltas(SendProp	const*,bf_read *,bf_read *)+158j
		mov	eax, [ebp+var_30]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F0EF0:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+2Bj
		mov	eax, [ebp+arg_4]
		mov	[eax+0Ch], edx
		mov	[esp], eax
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edx, [esi+8]
		mov	[ebp+var_28], 0
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	edi, ecx
		jle	loc_F0DFE

loc_F0F17:				; CODE XREF: Array_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+98j
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_2C], 0
		jmp	loc_F0E4C
_Z19Array_CompareDeltasPK8SendPropP7bf_readS3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_Encode(unsigned	char  const*, DVariant *, SendProp  const*, bf_write *,	int)
_Z12Array_EncodePKhP8DVariantPK8SendPropP8bf_writei proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	edx, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ebx, [edx+18h]
		test	eax, eax
		jz	loc_F10B0
		mov	edi, [ebp+arg_10]
		mov	[esp], esi
		mov	[esp+4], edi
		call	eax
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_30], eax
		mov	eax, [edx+20h]
		cmp	[ebp+var_30], eax
		cmovle	eax, [ebp+var_30]
		mov	[ebp+var_30], eax

loc_F0F6C:				; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+189j
		mov	edx, [ebp+arg_8]
		mov	[esp], edx
		call	_ZNK8SendProp21GetNumArrayLengthBitsEv ; SendProp::GetNumArrayLengthBits(void)
		mov	edi, [ebp+arg_C]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	eax, edi
		jle	loc_F1020
		mov	edx, [ebp+arg_C]
		mov	[edx+0Ch], ecx
		mov	byte ptr [edx+10h], 1

loc_F0F96:				; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+174j
		mov	ecx, [ebp+var_30]
		mov	eax, [ebx+48h]
		test	ecx, ecx
		jle	short loc_F1014
		add	eax, esi
		mov	[ebp+var_2C], esi
		xor	edi, edi
		mov	esi, eax
		lea	esi, [esi+0]

loc_F0FB0:				; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+E2j
		mov	edx, [ebp+arg_10]
		lea	ecx, [ebp+var_28]
		mov	[esp+10h], edi
		mov	eax, [ebp+var_2C]
		mov	[esp+0Ch], ecx
		add	edi, 1
		mov	[esp+8], esi
		mov	[ebp+var_1C], 1
		mov	[esp+14h], edx
		mov	[esp+4], eax
		mov	[esp], ebx
		call	dword ptr [ebx+3Ch]
		mov	edx, [ebp+arg_10]
		lea	ecx, [ebp+var_28]
		mov	eax, [ebx+8]
		mov	[esp+8], ebx
		mov	[esp+4], ecx
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_C]
		lea	eax, [eax+eax*8]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+var_2C]
		mov	[esp], edx
		call	g_PropTypeFns[eax*4] ; Int_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)
		mov	edx, [ebp+arg_8]
		add	esi, [edx+24h]
		cmp	edi, [ebp+var_30]
		jnz	short loc_F0FB0

loc_F1014:				; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+6Ej
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1020:				; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+56j
		mov	edi, [ebp+arg_C]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebp+var_34], ecx
		lea	ecx, [eax+edx]
		sar	edx, 5
		mov	[edi+0Ch], ecx
		lea	edi, ds:0[edx*4]
		mov	edx, [ebp+arg_C]
		movzx	ecx, byte ptr [ebp+var_34]
		add	edi, [edx]
		mov	edx, [ebp+var_30]
		rol	edx, cl
		mov	[ebp+var_38], edx
		lea	ecx, [eax-1]
		mov	edx, 1
		shl	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_34]
		lea	eax, [edx-1]
		shr	eax, cl
		movzx	ecx, byte ptr [ebp+var_34]
		mov	[ebp+var_2C], eax
		mov	eax, [edi]
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_2C]
		and	eax, 1
		lea	eax, [edi+eax*4]
		mov	[ebp+var_40], eax
		mov	eax, [eax]
		mov	[ebp+var_44], eax
		lea	eax, [edx+edx-1]
		mov	edx, [ebp+var_38]
		shl	eax, cl
		mov	ecx, [ebp+var_40]
		xor	edx, [ebp+var_3C]
		and	eax, edx
		mov	edx, [ebp+var_44]
		xor	eax, [ebp+var_3C]
		xor	edx, [ebp+var_38]
		and	edx, [ebp+var_2C]
		xor	edx, [ebp+var_44]
		mov	[ecx], edx
		mov	[edi], eax
		jmp	loc_F0F96
; ---------------------------------------------------------------------------
		align 10h

loc_F10B0:				; CODE XREF: Array_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+17j
		mov	edi, [ebp+arg_8]
		mov	edi, [edi+20h]
		mov	[ebp+var_30], edi
		jmp	loc_F0F6C
_Z12Array_EncodePKhP8DVariantPK8SendPropP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_Decode(DecodeInfo *)
_Z12Array_DecodeP10DecodeInfo proc near	; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_258		= dword	ptr -258h
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_244		= dword	ptr -244h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 26Ch
		mov	[ebp+var_234], 1
		mov	[ebp+var_254], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_260], 0
		mov	edi, [esi+28h]
		mov	edx, [esi+24h]
		mov	eax, [esi+1Ch]
		mov	ecx, [esi+20h]
		mov	ebx, [edx+18h]
		mov	[ebp+var_21C], edi
		mov	edi, [esi+18h]
		mov	[ebp+var_228], eax
		mov	eax, [esi]
		mov	[ebp+var_224], ecx
		mov	[ebp+var_220], ebx
		mov	[ebp+var_22C], edi
		mov	edi, [esi+14h]
		test	eax, eax
		mov	[ebp+var_244], eax
		mov	[ebp+var_230], edi
		jz	short loc_F1156
		mov	edi, [eax+18h]
		add	ecx, [edi+2Ch]
		mov	[ebp+var_244], edi
		mov	edi, [eax+30h]
		mov	[ebp+var_224], ecx
		mov	eax, [eax+1Ch]
		mov	[ebp+var_260], edi
		mov	[ebp+var_254], eax

loc_F1156:				; CODE XREF: Array_Decode(DecodeInfo *)+70j
		mov	[esp], edx
		call	_ZNK8SendProp21GetNumArrayLengthBitsEv ; SendProp::GetNumArrayLengthBits(void)
		mov	ecx, [esi+28h]
		mov	edx, [ecx+8]
		mov	[ebp+var_24C], edx
		mov	edx, [ecx+0Ch]
		mov	edi, [ebp+var_24C]
		sub	edi, edx
		cmp	eax, edi
		jg	loc_F1280
		mov	[ebp+var_250], 20h
		mov	edi, edx
		and	edi, 1Fh
		mov	[ebp+var_258], edi
		lea	edi, [eax+edx]
		sar	edx, 5
		mov	[ecx+0Ch], edi
		mov	ecx, [ecx]
		mov	[ebp+var_25C], ecx
		mov	ecx, edi
		mov	edi, [ebp+var_258]
		sub	ecx, 1
		sar	ecx, 5
		sub	[ebp+var_250], edi
		mov	edi, [ebp+var_25C]
		mov	ecx, [edi+ecx*4]
		mov	edx, [edi+edx*4]
		mov	[ebp+var_24C], ecx
		movzx	ecx, byte ptr [ebp+var_250]
		shl	[ebp+var_24C], cl
		movzx	ecx, byte ptr [ebp+var_258]
		shr	edx, cl
		or	[ebp+var_24C], edx
		lea	ecx, [eax-1]
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	[ebp+var_24C], edx

loc_F11F8:				; CODE XREF: Array_Decode(DecodeInfo *)+1DBj
		mov	edi, [ebp+var_254]
		test	edi, edi
		jz	short loc_F121F
		mov	edi, [ebp+var_24C]
		mov	[esp+8], edi
		mov	eax, [esi+18h]
		mov	[esp+4], eax
		mov	eax, [esi+1Ch]
		mov	[esp], eax
		call	[ebp+var_254]

loc_F121F:				; CODE XREF: Array_Decode(DecodeInfo *)+140j
		mov	[ebp+var_230], 0
		mov	esi, [ebp+var_24C]
		test	esi, esi
		jle	short loc_F126D
		mov	edi, [ebp+var_260]
		lea	esi, [ebp+var_244]
		nop

loc_F1240:				; CODE XREF: Array_Decode(DecodeInfo *)+1ABj
		mov	eax, [ebx+8]
		mov	[esp], esi
		lea	eax, [eax+eax*8]
		call	off_277164[eax*4] ; Int_GetTypeNameString(void)
		mov	eax, [ebp+var_230]
		add	[ebp+var_224], edi
		add	eax, 1
		cmp	eax, [ebp+var_24C]
		mov	[ebp+var_230], eax
		jl	short loc_F1240

loc_F126D:				; CODE XREF: Array_Decode(DecodeInfo *)+171j
		add	esp, 26Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1280:				; CODE XREF: Array_Decode(DecodeInfo *)+B7j
		mov	eax, [ebp+var_24C]
		mov	[ecx+0Ch], eax
		mov	[esp], ecx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_24C], 0
		jmp	loc_F11F8
_Z12Array_DecodeP10DecodeInfo endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_Decode(DecodeInfo *)
_Z13String_DecodeP10DecodeInfo proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	edx, [ebx+28h]
		mov	ecx, [edx+8]
		mov	eax, [edx+0Ch]
		mov	esi, ecx
		sub	esi, eax
		cmp	esi, 8
		jle	loc_F1348
		lea	ecx, [eax+9]
		mov	edi, eax
		mov	[edx+0Ch], ecx
		mov	edx, [edx]
		lea	esi, [eax+8]
		sar	esi, 5
		sar	eax, 5
		and	edi, 1Fh
		mov	ecx, 20h
		sub	ecx, edi
		mov	esi, [edx+esi*4]
		mov	eax, [edx+eax*4]
		shl	esi, cl
		mov	ecx, edi
		shr	eax, cl
		or	esi, eax
		and	esi, 1FFh
		lea	eax, ds:0[esi*8]

loc_F1300:				; CODE XREF: String_Decode(DecodeInfo *)+B7j
		lea	edi, [ebx+2Ch]
		mov	[esp+8], eax
		mov	[esp+4], edi
		mov	eax, [ebx+28h]
		mov	[esp], eax
		call	_ZN7bf_read8ReadBitsEPvi ; bf_read::ReadBits(void *,int)
		mov	byte ptr [ebx+esi+2Ch],	0
		mov	eax, [ebx]
		mov	[ebx+4], edi
		test	eax, eax
		jz	short loc_F1338
		mov	edx, [ebx+20h]
		mov	[esp+8], edx
		mov	edx, [ebx+1Ch]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+20h]

loc_F1338:				; CODE XREF: String_Decode(DecodeInfo *)+82j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F1348:				; CODE XREF: String_Decode(DecodeInfo *)+22j
		mov	[edx+0Ch], ecx
		xor	esi, esi
		mov	[esp], edx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_F1300
_Z13String_DecodeP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_Encode(unsigned char  const*, DVariant	*, SendProp  const*, bf_write *, int)
_Z13String_EncodePKhP8DVariantPK8SendPropP8bf_writei proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+arg_C]
		mov	edx, [esi]
		jmp	short loc_F1387
; ---------------------------------------------------------------------------
		align 4

loc_F1378:				; CODE XREF: String_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+2Bj
		add	ebx, 1
		cmp	ebx, 1FFh
		jz	loc_F1440

loc_F1387:				; CODE XREF: String_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+13j
		cmp	byte ptr [edx+ebx], 0
		jnz	short loc_F1378
		lea	edx, ds:0[ebx*8]
		mov	[ebp+var_24], edx

loc_F1397:				; CODE XREF: String_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+E7j
		mov	ecx, [eax+8]
		mov	edx, [eax+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 8
		jle	loc_F1430
		mov	ecx, edx
		mov	edi, 0FFh
		mov	[ebp+var_20], 1FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+9]
		sar	edx, 5
		mov	[eax+0Ch], ecx
		mov	ecx, [eax]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	ebx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_28], ebx
		shr	edi, cl
		mov	ecx, [edx]
		mov	[ebp+var_2C], ecx
		mov	ecx, edi
		and	ecx, 1
		xor	ebx, [ebp+var_2C]
		lea	ecx, [edx+ecx*4]
		mov	[ebp+var_30], ecx
		mov	ecx, [ecx]
		mov	[ebp+var_34], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_28]
		and	ebx, [ebp+var_20]
		xor	ecx, [ebp+var_34]
		xor	ebx, [ebp+var_2C]
		and	ecx, edi
		mov	edi, [ebp+var_30]
		xor	ecx, [ebp+var_34]
		mov	[edi], ecx
		mov	[edx], ebx

loc_F1416:				; CODE XREF: String_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+D7j
		mov	edx, [ebp+var_24]
		mov	[ebp+arg_8], edx
		mov	edx, [esi]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN8bf_write9WriteBitsEPKvi ; bf_write::WriteBits(void	const*,int)
; ---------------------------------------------------------------------------

loc_F1430:				; CODE XREF: String_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+44j
		mov	[eax+0Ch], ecx
		mov	byte ptr [eax+10h], 1
		jmp	short loc_F1416
; ---------------------------------------------------------------------------
		align 10h

loc_F1440:				; CODE XREF: String_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+21j
		mov	[ebp+var_24], 0FF8h
		jmp	loc_F1397
_Z13String_EncodePKhP8DVariantPK8SendPropP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_CompareDeltas(SendProp	const*,	bf_read	*, bf_read *)
_Z19Float_CompareDeltasPK8SendPropP7bf_readS3_ proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	eax, [ecx+38h]
		test	al, 2
		jnz	loc_F1568
		test	ah, 0E0h
		jnz	loc_F15C8
		test	al, 4
		mov	esi, 20h
		jz	loc_F1540

loc_F1483:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+F6j
		mov	ecx, [edx+8]
		mov	eax, [edx+0Ch]
		mov	edi, ecx
		sub	edi, eax
		cmp	esi, edi
		jg	loc_F1590

loc_F1495:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+10Bj
		lea	edi, [esi+eax]
		mov	ecx, eax
		sar	eax, 5
		mov	[edx+0Ch], edi
		mov	edx, [edx]
		and	ecx, 1Fh
		sub	edi, 1
		mov	[ebp+var_1C], ecx
		mov	ecx, 20h
		sar	edi, 5
		sub	ecx, [ebp+var_1C]
		mov	edi, [edx+edi*4]
		mov	eax, [edx+eax*4]
		mov	edx, [ebx+8]
		shl	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		lea	ecx, [esi-1]
		or	edi, eax
		mov	eax, 2
		shl	eax, cl
		mov	ecx, edx
		sub	eax, 1
		and	edi, eax
		mov	eax, [ebx+0Ch]
		sub	ecx, eax
		cmp	esi, ecx
		jg	loc_F15AF

loc_F14E7:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+159j
		lea	edx, [esi+eax]
		mov	ecx, eax
		sar	eax, 5
		mov	[ebx+0Ch], edx
		mov	ebx, [ebx]
		and	ecx, 1Fh
		sub	edx, 1
		mov	[ebp+var_1C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_1C]
		mov	edx, [ebx+edx*4]
		mov	eax, [ebx+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		lea	ecx, [esi-1]
		or	edx, eax
		mov	eax, 2
		shl	eax, cl
		sub	eax, 1
		and	edx, eax

loc_F1527:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+16Cj
		xor	eax, eax
		cmp	edi, edx
		setnz	al
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1540:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+2Dj
		test	al, 20h
		mov	si, 0Ch
		jnz	loc_F1483
		mov	esi, [ecx+0Ch]
		mov	ecx, [edx+8]
		mov	eax, [edx+0Ch]
		mov	edi, ecx
		sub	edi, eax
		cmp	esi, edi
		jle	loc_F1495
		jmp	short loc_F1590
; ---------------------------------------------------------------------------
		align 8

loc_F1568:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+17j
		mov	[esp], edx
		call	_ZN7bf_read16ReadBitCoordBitsEv	; bf_read::ReadBitCoordBits(void)
		mov	[esp], ebx
		mov	esi, eax
		call	_ZN7bf_read16ReadBitCoordBitsEv	; bf_read::ReadBitCoordBits(void)
		cmp	esi, eax
		setnz	al
		add	esp, 2Ch
		pop	ebx
		movzx	eax, al
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1590:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+3Fj
					; Float_CompareDeltas(SendProp	const*,bf_read *,bf_read *)+111j
		mov	[edx+0Ch], ecx
		xor	edi, edi
		mov	[esp], edx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	esi, ecx
		jle	loc_F14E7

loc_F15AF:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+91j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_F1527
; ---------------------------------------------------------------------------
		align 8

loc_F15C8:				; CODE XREF: Float_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+20j
		xor	ecx, ecx
		test	ah, 40h
		mov	[esp], edx
		setnz	cl
		test	ah, 80h
		setnz	al
		mov	edi, ecx
		movzx	eax, al
		mov	[esp+8], edi
		mov	esi, eax
		mov	[esp+4], eax
		call	_ZN7bf_read18ReadBitCoordMPBitsEbb ; bf_read::ReadBitCoordMPBits(bool,bool)
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[ebp+var_1C], eax
		call	_ZN7bf_read18ReadBitCoordMPBitsEbb ; bf_read::ReadBitCoordMPBits(bool,bool)
		cmp	[ebp+var_1C], eax
		setnz	al
		add	esp, 2Ch
		pop	ebx
		movzx	eax, al
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19Float_CompareDeltasPK8SendPropP7bf_readS3_ endp

; ---------------------------------------------------------------------------
		jmp	short _Z22VectorXY_CompareDeltasPK8SendPropP7bf_readS3_	; VectorXY_CompareDeltas(SendProp  const*,bf_read *,bf_read *)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_CompareDeltas(SendProp  const*, bf_read *, bf_read *)
_Z22VectorXY_CompareDeltasPK8SendPropP7bf_readS3_ proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_8]
		mov	[esp], ebx
		mov	[esp+4], esi
		mov	[esp+8], edi
		call	_Z19Float_CompareDeltasPK8SendPropP7bf_readS3_ ; Float_CompareDeltas(SendProp  const*,bf_read *,bf_read	*)
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[ebp+var_1C], eax
		call	_Z19Float_CompareDeltasPK8SendPropP7bf_readS3_ ; Float_CompareDeltas(SendProp  const*,bf_read *,bf_read	*)
		mov	ebx, [ebp+var_C]
		or	eax, [ebp+var_1C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z22VectorXY_CompareDeltasPK8SendPropP7bf_readS3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DecodeFloat(SendProp	const*,	bf_read	*)
_ZL11DecodeFloatPK8SendPropP7bf_read proc near
					; CODE XREF: VectorXY_IsEncodedZero(SendProp  const*,bf_read *)+16p
					; VectorXY_IsEncodedZero(SendProp  const*,bf_read *)+22p ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= qword	ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	ecx, [eax+38h]
		test	cl, 2
		jnz	loc_F1738
		test	ch, 0E0h
		jnz	loc_F17A8
		test	cl, 4
		jnz	loc_F1750
		and	ecx, 20h
		jnz	loc_F17F0
		mov	ecx, [edx+8]
		mov	ebx, [edx+0Ch]
		mov	esi, [eax+0Ch]
		mov	edi, ecx
		sub	edi, ebx
		cmp	esi, edi
		jg	loc_F17D8
		mov	ecx, ebx
		mov	edi, [edx]
		and	ecx, 1Fh
		mov	[ebp+var_28], ecx
		lea	ecx, [esi+ebx]
		sar	ebx, 5
		mov	[edx+0Ch], ecx
		lea	edx, [ecx-1]
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_28]
		mov	edx, [edi+edx*4]
		mov	ebx, [edi+ebx*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_28]
		shr	ebx, cl
		lea	ecx, [esi-1]
		or	edx, ebx
		mov	ebx, 2
		shl	ebx, cl
		sub	ebx, 1
		and	edx, ebx
		movd	xmm0, edx
		movq	[ebp+var_20], xmm0
		fild	[ebp+var_20]

loc_F1707:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+17Bj
		mov	ecx, [eax+0Ch]
		mov	edx, 1
		fld	dword ptr [eax+10h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		shl	edx, cl
		mov	edi, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_24], edx
		fild	[ebp+var_24]
		fdivp	st(2), st
		fld	dword ptr [eax+14h]
		mov	esp, ebp
		fsub	st, st(1)
		pop	ebp
		fmulp	st(2), st
		faddp	st(1), st
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F1738:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+15j
		mov	[esp], edx
		call	_ZN7bf_read12ReadBitCoordEv ; bf_read::ReadBitCoord(void)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1750:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+27j
		mov	eax, [edx+8]
		mov	ebx, [edx+0Ch]
		mov	ecx, eax
		sub	ecx, ebx
		cmp	ecx, 1Fh
		jle	loc_F1808
		lea	eax, [ebx+20h]
		mov	esi, ebx
		mov	ecx, 20h
		mov	[edx+0Ch], eax
		mov	edx, [edx]
		lea	eax, [ebx+1Fh]
		sar	eax, 5
		sar	ebx, 5
		and	esi, 1Fh
		sub	ecx, esi
		mov	eax, [edx+eax*4]
		mov	edx, [edx+ebx*4]
		shl	eax, cl
		mov	ecx, esi
		shr	edx, cl
		or	eax, edx

loc_F178E:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+1A5j
		mov	[ebp+var_30], eax
		mov	ebx, [ebp+var_C]
		fld	[ebp+var_30]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F17A8:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+1Ej
		xor	eax, eax
		test	ch, 40h
		mov	[esp], edx
		setnz	al
		mov	[esp+8], eax
		xor	eax, eax
		and	ch, 80h
		setnz	al
		mov	[esp+4], eax
		call	_ZN7bf_read14ReadBitCoordMPEbb ; bf_read::ReadBitCoordMP(bool,bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F17D8:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+45j
		mov	[edx+0Ch], ecx
		mov	[ebp+var_2C], eax
		mov	[esp], edx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_2C]
		fldz
		jmp	loc_F1707
; ---------------------------------------------------------------------------

loc_F17F0:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+30j
		mov	[esp], edx
		call	_ZN7bf_read13ReadBitNormalEv ; bf_read::ReadBitNormal(void)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F1808:				; CODE XREF: DecodeFloat(SendProp  const*,bf_read *)+EDj
		mov	[edx+0Ch], eax
		mov	[esp], edx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F178E
_ZL11DecodeFloatPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_IsEncodedZero(SendProp  const*, bf_read *)
_Z22VectorXY_IsEncodedZeroPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_18		= dword	ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	eax, ebx
		mov	edx, esi
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		mov	edx, esi
		mov	eax, ebx
		fstp	[ebp+var_18]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		mov	edx, 0
		mov	ebx, [ebp+var_8]
		fldz
		mov	esi, [ebp+var_4]
		fcomi	st, st(1)
		fstp	st(1)
		fld	[ebp+var_18]
		setz	al
		fcomip	st, st(1)
		fstp	st
		cmovnz	eax, edx
		mov	esp, ebp
		pop	ebp
		retn
_Z22VectorXY_IsEncodedZeroPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_Decode(DecodeInfo *)
_Z15VectorXY_DecodeP10DecodeInfo proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	edx, [ebx+28h]
		mov	eax, [ebx+24h]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		mov	eax, [ebx+24h]
		mov	edx, [ebx+28h]
		fstp	dword ptr [ebx+4]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		mov	eax, [ebx]
		fstp	dword ptr [ebx+8]
		test	eax, eax
		jz	short loc_F18B0
		mov	edx, [ebx+20h]
		mov	[esp+8], edx
		mov	edx, [ebx+1Ch]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+20h]

loc_F18B0:				; CODE XREF: VectorXY_Decode(DecodeInfo	*)+2Aj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z15VectorXY_DecodeP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_IsEncodedZero(SendProp	const*,	bf_read	*)
_Z19Float_IsEncodedZeroPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		fldz
		leave
		fcomip	st, st(1)
		fstp	st
		setz	al
		retn
_Z19Float_IsEncodedZeroPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_Decode(DecodeInfo *)
_Z12Float_DecodeP10DecodeInfo proc near	; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+24h]
		mov	edx, [ebx+28h]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		mov	eax, [ebx]
		fstp	dword ptr [ebx+4]
		test	eax, eax
		jz	short loc_F1912
		mov	edx, [ebx+20h]
		mov	[esp+8], edx
		mov	edx, [ebx+1Ch]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+20h]

loc_F1912:				; CODE XREF: Float_Decode(DecodeInfo *)+1Cj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z12Float_DecodeP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_Decode(DecodeInfo *)
_Z13Vector_DecodeP10DecodeInfo proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+24h]
		mov	edi, [ebx+28h]
		mov	eax, esi
		mov	edx, edi
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		mov	edx, edi
		mov	eax, esi
		fstp	dword ptr [ebx+4]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		fstp	dword ptr [ebx+8]
		test	byte ptr [esi+38h], 20h
		jz	short loc_F19C0
		mov	ecx, [edi+0Ch]
		mov	eax, [edi+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_F19E0
		mov	eax, [edi]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[edi+0Ch], ecx
		and	eax, 1

loc_F1975:				; CODE XREF: Vector_Decode(DecodeInfo *)+CAj
		fld	dword ptr [ebx+4]
		fmul	st, st
		fld	dword ptr [ebx+8]
		fmul	st, st
		faddp	st(1), st
		fld1
		fcomi	st, st(1)
		ja	short loc_F19D0
		fstp	st
		fstp	st
		mov	dword ptr [ebx+0Ch], 0

loc_F1992:				; CODE XREF: Vector_Decode(DecodeInfo *)+B7j
		test	eax, eax
		jz	short loc_F199E
		fld	dword ptr [ebx+0Ch]
		fchs
		fstp	dword ptr [ebx+0Ch]

loc_F199E:				; CODE XREF: Vector_Decode(DecodeInfo *)+74j
					; Vector_Decode(DecodeInfo *)+ACj
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F19B8
		mov	edx, [ebx+20h]
		mov	[esp+8], edx
		mov	edx, [ebx+1Ch]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	dword ptr [eax+20h]

loc_F19B8:				; CODE XREF: Vector_Decode(DecodeInfo *)+82j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F19C0:				; CODE XREF: Vector_Decode(DecodeInfo *)+2Ej
		mov	edx, edi
		mov	eax, esi
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		fstp	dword ptr [ebx+0Ch]
		jmp	short loc_F199E
; ---------------------------------------------------------------------------
		align 10h

loc_F19D0:				; CODE XREF: Vector_Decode(DecodeInfo *)+65j
		fsubrp	st(1), st
		fsqrt
		fstp	dword ptr [ebx+0Ch]
		jmp	short loc_F1992
; ---------------------------------------------------------------------------
		align 10h

loc_F19E0:				; CODE XREF: Vector_Decode(DecodeInfo *)+3Aj
		mov	[esp], edi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_F1975
_Z13Vector_DecodeP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_CompareDeltas(SendProp	 const*, bf_read *, bf_read *)
_Z20Vector_CompareDeltasPK8SendPropP7bf_readS3_	proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	[esp], eax
		mov	[esp+4], ebx
		mov	[esp+8], esi
		call	_Z19Float_CompareDeltasPK8SendPropP7bf_readS3_ ; Float_CompareDeltas(SendProp  const*,bf_read *,bf_read	*)
		mov	[esp+8], esi
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_Z19Float_CompareDeltasPK8SendPropP7bf_readS3_ ; Float_CompareDeltas(SendProp  const*,bf_read *,bf_read	*)
		mov	edi, eax
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+38h], 20h
		jnz	short loc_F1A60
		mov	eax, [ebp+arg_0]
		mov	[esp+8], esi
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_Z19Float_CompareDeltasPK8SendPropP7bf_readS3_ ; Float_CompareDeltas(SendProp  const*,bf_read *,bf_read	*)

loc_F1A4C:				; CODE XREF: Vector_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+B4j
					; Vector_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+E2j
		or	edi, [ebp+var_1C]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		or	edi, eax
		mov	eax, edi
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F1A60:				; CODE XREF: Vector_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+47j
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	short loc_F1AB0
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_F1A81:				; CODE XREF: Vector_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+CAj
		mov	ecx, [esi+0Ch]
		mov	edx, [esi+8]
		sub	edx, ecx
		test	edx, edx
		jle	short loc_F1AC0
		mov	edx, [esi]
		mov	ebx, ecx
		sar	ebx, 5
		mov	edx, [edx+ebx*4]
		shr	edx, cl
		add	ecx, 1
		and	edx, 1
		mov	[esi+0Ch], ecx
		xor	eax, edx
		jmp	short loc_F1A4C
; ---------------------------------------------------------------------------
		align 10h

loc_F1AB0:				; CODE XREF: Vector_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+7Aj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_F1A81
; ---------------------------------------------------------------------------
		align 10h

loc_F1AC0:				; CODE XREF: Vector_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+9Bj
		mov	[ebp+var_20], eax
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_20]
		xor	edx, edx
		xor	eax, edx
		jmp	loc_F1A4C
_Z20Vector_CompareDeltasPK8SendPropP7bf_readS3_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int_SkipProp(SendProp	 const*, bf_read *)
_Z12Int_SkipPropPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [eax+0Ch]
		add	eax, [ebx+0Ch]
		js	short loc_F1B08
		cmp	eax, [ebx+8]
		jg	short loc_F1B08
		mov	[ebx+0Ch], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F1B08:				; CODE XREF: Int_SkipProp(SendProp  const*,bf_read *)+13j
					; Int_SkipProp(SendProp	 const*,bf_read	*)+18j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z12Int_SkipPropPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_SkipProp(SendProp  const*, bf_read *)
_Z15String_SkipPropPK8SendPropP7bf_read	proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 8
		jle	short loc_F1BB0
		mov	edi, [ebx]
		lea	eax, [edx+9]
		mov	esi, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+8]
		sar	edx, 5
		sar	eax, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		mov	ecx, esi
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFh
		shl	eax, 3

loc_F1B74:				; CODE XREF: String_SkipProp(SendProp  const*,bf_read *)+9Dj
		add	eax, [ebx+0Ch]
		js	short loc_F1B90
		cmp	eax, [ebx+8]
		jg	short loc_F1B90
		mov	[ebx+0Ch], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1B90:				; CODE XREF: String_SkipProp(SendProp  const*,bf_read *)+57j
					; String_SkipProp(SendProp  const*,bf_read *)+5Cj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1BB0:				; CODE XREF: String_SkipProp(SendProp  const*,bf_read *)+1Fj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_F1B74
_Z15String_SkipPropPK8SendPropP7bf_read	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_IsEncodedZero(SendProp	 const*, bf_read *)
_Z20String_IsEncodedZeroPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 8
		jle	loc_F1C68
		mov	edi, [ebx]
		lea	eax, [edx+9]
		mov	esi, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+8]
		sar	edx, 5
		sar	eax, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		mov	ecx, esi
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFh
		lea	edx, ds:0[eax*8]
		test	eax, eax
		setz	al

loc_F1C21:				; CODE XREF: String_IsEncodedZero(SendProp  const*,bf_read *)+BAj
		add	edx, [ebx+0Ch]
		js	short loc_F1C40
		cmp	edx, [ebx+8]
		jg	short loc_F1C40
		mov	[ebx+0Ch], edx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1C40:				; CODE XREF: String_IsEncodedZero(SendProp  const*,bf_read *)+64j
					; String_IsEncodedZero(SendProp	 const*,bf_read	*)+69j
		mov	[esp], ebx
		mov	[ebp+var_1C], al
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edx, [ebx+8]
		mov	[ebx+0Ch], edx
		movzx	eax, [ebp+var_1C]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F1C68:				; CODE XREF: String_IsEncodedZero(SendProp  const*,bf_read *)+1Fj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, 1
		xor	edx, edx
		jmp	short loc_F1C21
_Z20String_IsEncodedZeroPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; String_CompareDeltas(SendProp	 const*, bf_read *, bf_read *)
_Z20String_CompareDeltasPK8SendPropP7bf_readS3_	proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_4]
		mov	ebx, [ebp+arg_8]
		mov	eax, [esi+8]
		mov	edx, [esi+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 8
		jle	loc_F1F80
		mov	edi, [esi]
		lea	eax, [edx+9]
		mov	ecx, edx
		mov	[esi+0Ch], eax
		lea	eax, [edx+8]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		sar	eax, 5
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	edx, 5
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFh

loc_F1CD8:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+30Dj
		mov	ecx, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 8
		jle	loc_F1F60
		mov	[ebp+var_20], 20h
		lea	edi, [edx+8]
		mov	ecx, edx
		and	ecx, 1Fh
		sar	edi, 5
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+9]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebp+var_1C]
		sub	[ebp+var_20], ecx
		mov	ecx, [ebx]
		mov	edi, [ecx+edi*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shl	edi, cl
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		or	edi, edx
		and	edi, 1FFh

loc_F1D2D:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+2F3j
		cmp	edi, eax
		jz	short loc_F1D80
		shl	eax, 3
		add	eax, [esi+0Ch]
		js	short loc_F1D70
		cmp	eax, [esi+8]
		jg	short loc_F1D70
		mov	[esi+0Ch], eax

loc_F1D41:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+FEj
		shl	edi, 3
		add	edi, [ebx+0Ch]
		js	loc_F1F98
		cmp	edi, [ebx+8]
		jg	loc_F1F98
		mov	[ebx+0Ch], edi
		mov	[ebp+var_28], 1

loc_F1D60:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+109j
					; String_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+215j
		mov	eax, [ebp+var_28]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1D70:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+B7j
					; String_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+BCj
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [esi+8]
		mov	[esi+0Ch], eax
		jmp	short loc_F1D41
; ---------------------------------------------------------------------------

loc_F1D80:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+AFj
		test	edi, edi
		mov	[ebp+var_28], 0
		jz	short loc_F1D60
		shl	edi, 3
		mov	[ebp+var_30], edi
		sar	edi, 5
		test	edi, edi
		mov	[ebp+var_2C], edi
		jz	loc_F1E88
		mov	[ebp+var_1C], 0
		jmp	loc_F1E47
; ---------------------------------------------------------------------------
		align 10h

loc_F1DB0:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1D4j
		mov	ecx, eax
		mov	edi, 20h
		mov	edx, [esi]
		and	ecx, 1Fh
		mov	[ebp+var_20], ecx
		lea	ecx, [eax+20h]
		sub	edi, [ebp+var_20]
		mov	[esi+0Ch], ecx
		lea	ecx, [eax+1Fh]
		sar	ecx, 5
		sar	eax, 5
		mov	eax, [edx+eax*4]
		mov	[ebp+var_24], edi
		mov	edi, [edx+ecx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		mov	edx, [ebx+8]
		shl	edi, cl
		movzx	ecx, byte ptr [ebp+var_20]
		shr	eax, cl
		mov	ecx, edx
		or	edi, eax
		mov	eax, [ebx+0Ch]
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	short loc_F1E76

loc_F1DF7:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1F4j
		lea	edx, [eax+20h]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	[ebp+var_20], ecx
		lea	edx, [eax+1Fh]
		mov	ecx, 20h
		sub	ecx, [ebp+var_20]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_24], ecx
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shr	eax, cl
		or	edx, eax

loc_F1E31:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+203j
		xor	eax, eax
		cmp	edi, edx
		mov	edi, [ebp+var_2C]
		setnz	al
		add	[ebp+var_1C], 1
		or	[ebp+var_28], eax
		cmp	[ebp+var_1C], edi
		jz	short loc_F1E88

loc_F1E47:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+126j
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jg	loc_F1DB0
		mov	[esi+0Ch], edx
		xor	edi, edi
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 1Fh
		jg	short loc_F1DF7

loc_F1E76:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+175j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	short loc_F1E31
; ---------------------------------------------------------------------------
		align 4

loc_F1E88:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+119j
					; String_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+1C5j
		mov	eax, [ebp+var_2C]
		mov	edi, [ebp+var_30]
		shl	eax, 5
		sub	edi, eax
		test	edi, edi
		jle	loc_F1D60
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	edi, ecx
		jg	loc_F1FC0
		lea	edx, [edi+eax]
		mov	ecx, eax
		sar	eax, 5
		mov	[esi+0Ch], edx
		mov	esi, [esi]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], esi
		lea	esi, [edx-1]
		mov	edx, [ebp+var_20]
		sar	esi, 5
		mov	esi, [edx+esi*4]
		mov	eax, [edx+eax*4]
		shl	esi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		lea	ecx, [edi-1]
		or	esi, eax
		mov	eax, 2
		shl	eax, cl
		sub	eax, 1
		and	esi, eax

loc_F1EF3:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+34Dj
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	edi, ecx
		jg	loc_F1FD8
		lea	eax, [edi+edx]
		mov	ecx, edx
		sar	edx, 5
		mov	[ebx+0Ch], eax
		mov	ebx, [ebx]
		and	ecx, 1Fh
		sub	eax, 1
		mov	[ebp+var_1C], ecx
		mov	ecx, 20h
		sar	eax, 5
		sub	ecx, [ebp+var_1C]
		mov	eax, [ebx+eax*4]
		mov	edx, [ebx+edx*4]
		shl	eax, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	edx, cl
		lea	ecx, [edi-1]
		or	eax, edx
		mov	edx, 2
		shl	edx, cl
		sub	edx, 1
		and	eax, edx

loc_F1F45:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+365j
		cmp	esi, eax
		setnz	al
		movzx	eax, al
		or	[ebp+var_28], eax
		mov	eax, [ebp+var_28]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1F60:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+65j
		mov	[ebx+0Ch], ecx
		xor	edi, edi
		mov	[ebp+var_34], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_34]
		jmp	loc_F1D2D
; ---------------------------------------------------------------------------
		align 10h

loc_F1F80:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1Cj
		mov	[esi+0Ch], eax
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F1CD8
; ---------------------------------------------------------------------------
		align 8

loc_F1F98:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+C7j
					; String_CompareDeltas(SendProp	 const*,bf_read	*,bf_read *)+D0j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebp+var_28], 1
		mov	[ebx+0Ch], eax
		mov	eax, [ebp+var_28]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F1FC0:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+227j
		mov	[esi+0Ch], edx
		mov	[esp], esi
		xor	esi, esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_F1EF3
; ---------------------------------------------------------------------------
		align 8

loc_F1FD8:				; CODE XREF: String_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+27Fj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F1F45
_Z20String_CompareDeltasPK8SendPropP7bf_readS3_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_SkipProp(SendProp  const*, bf_read *)
_Z14Float_SkipPropPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [edx+38h]
		test	al, 2
		jz	short loc_F2088
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 1
		jle	loc_F2130
		mov	edi, [ebx]
		lea	eax, [edx+2]
		mov	esi, edx
		mov	[ebx+0Ch], eax
		lea	eax, [edx+1]
		sar	edx, 5
		sar	eax, 5
		and	esi, 1Fh
		mov	ecx, 20h
		sub	ecx, esi
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		mov	ecx, esi
		shr	edx, cl
		or	eax, edx
		test	al, 3
		jz	loc_F20EE
		mov	edx, eax
		and	edx, 1
		cmp	edx, 1
		sbb	edx, edx
		and	edx, 0FFFFFFF2h
		lea	ecx, [edx+14h]
		add	edx, 0Fh
		test	al, 2
		cmovnz	edx, ecx
		add	edx, [ebx+0Ch]
		js	short loc_F20E0
		cmp	edx, [ebx+8]
		jg	short loc_F20E0
		mov	[ebx+0Ch], edx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F2088:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+1Aj
		test	ah, 20h
		jnz	short loc_F2100
		test	ah, 40h
		jnz	loc_F2150
		test	ah, 80h
		jnz	loc_F2188
		test	al, 4
		jnz	short loc_F20D0
		test	al, 20h
		jnz	loc_F2170
		mov	eax, [edx+0Ch]
		add	eax, [ebx+0Ch]
		js	short loc_F20E0

loc_F20B3:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+E6j
					; Float_SkipProp(SendProp  const*,bf_read *)+186j
		cmp	eax, [ebx+8]
		jg	short loc_F20E0
		mov	[ebx+0Ch], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F20D0:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+B1j
		mov	eax, [ebx+0Ch]
		add	eax, 20h
		jns	short loc_F20B3
		nop
		lea	esi, [esi+0]

loc_F20E0:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+7Dj
					; Float_SkipProp(SendProp  const*,bf_read *)+82j ...
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax

loc_F20EE:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+5Cj
					; Float_SkipProp(SendProp  const*,bf_read *)+17Aj ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F2100:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+9Bj
		mov	[esp], ebx
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		call	_ZN7bf_read14ReadBitCoordMPEbb ; bf_read::ReadBitCoordMP(bool,bool)
		fstp	st
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F2130:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+29j
		mov	[ebx+0Ch], eax
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_0], ebx
		mov	edi, [ebp+var_4]
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		jmp	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
; ---------------------------------------------------------------------------
		align 10h

loc_F2150:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+A0j
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN7bf_read14ReadBitCoordMPEbb ; bf_read::ReadBitCoordMP(bool,bool)
		fstp	st
		jmp	short loc_F20EE
; ---------------------------------------------------------------------------
		align 10h

loc_F2170:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+B5j
		mov	eax, [ebx+0Ch]
		add	eax, 0Ch
		jns	loc_F20B3
		jmp	loc_F20E0
; ---------------------------------------------------------------------------
		align 8

loc_F2188:				; CODE XREF: Float_SkipProp(SendProp  const*,bf_read *)+A9j
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN7bf_read14ReadBitCoordMPEbb ; bf_read::ReadBitCoordMP(bool,bool)
		fstp	st
		jmp	loc_F20EE
_Z14Float_SkipPropPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_SkipProp(SendProp  const*, bf_read *)
_Z17VectorXY_SkipPropPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_Z14Float_SkipPropPK8SendPropP7bf_read ; Float_SkipProp(SendProp  const*,bf_read *)
		mov	[ebp+arg_4], esi
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_Z14Float_SkipPropPK8SendPropP7bf_read ; Float_SkipProp(SendProp  const*,bf_read *)
_Z17VectorXY_SkipPropPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_SkipProp(SendProp  const*, bf_read *)
_Z15Vector_SkipPropPK8SendPropP7bf_read	proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z14Float_SkipPropPK8SendPropP7bf_read ; Float_SkipProp(SendProp  const*,bf_read *)
		mov	[esp+4], ebx
		mov	[esp], esi
		call	_Z14Float_SkipPropPK8SendPropP7bf_read ; Float_SkipProp(SendProp  const*,bf_read *)
		test	byte ptr [esi+38h], 20h
		jnz	short loc_F2238
		mov	[ebp+arg_4], ebx
		mov	ebx, [ebp+var_8]
		mov	[ebp+arg_0], esi
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	_Z14Float_SkipPropPK8SendPropP7bf_read ; Float_SkipProp(SendProp  const*,bf_read *)
; ---------------------------------------------------------------------------
		align 8

loc_F2238:				; CODE XREF: Vector_SkipProp(SendProp  const*,bf_read *)+2Ej
		mov	eax, [ebx+0Ch]
		add	eax, 1
		js	short loc_F2258
		cmp	eax, [ebx+8]
		jg	short loc_F2258
		mov	[ebx+0Ch], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F2258:				; CODE XREF: Vector_SkipProp(SendProp  const*,bf_read *)+4Ej
					; Vector_SkipProp(SendProp  const*,bf_read *)+53j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z15Vector_SkipPropPK8SendPropP7bf_read	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_IsEncodedZero(SendProp	 const*, bf_read *)
_Z20Vector_IsEncodedZeroPK8SendPropP7bf_read proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_28		= dword	ptr -28h
var_18		= dword	ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 30h
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, esi
		mov	edx, ebx
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		mov	edx, ebx
		mov	eax, esi
		fstp	[ebp+var_18]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		test	byte ptr [esi+38h], 20h
		fld	st
		fld	[ebp+var_18]
		jz	loc_F2328
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, ecx
		test	eax, eax
		jle	loc_F2350
		fstp	st(2)
		fxch	st(1)
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[ebx+0Ch], ecx
		and	eax, 1

loc_F22CB:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+FAj
		fld	st
		fmul	st, st(1)
		fld	st(2)
		fmul	st, st(3)
		faddp	st(1), st
		fld1
		fcomi	st, st(1)
		ja	short loc_F2340
		fstp	st
		fstp	st
		fldz

loc_F22E1:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+D4j
		test	eax, eax
		jz	short loc_F22F0
		fchs
		fxch	st(2)
		jmp	short loc_F22F2
; ---------------------------------------------------------------------------
		align 10h

loc_F22F0:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+73j
		fxch	st(2)

loc_F22F2:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+79j
					; Vector_IsEncodedZero(SendProp	 const*,bf_read	*)+CEj
		fldz
		xor	eax, eax
		fcomi	st, st(2)
		fstp	st(2)
		jnz	short loc_F2318
		fxch	st(2)
		fcomip	st, st(1)
		mov	edx, 0
		setz	al
		fcomip	st, st(1)
		fstp	st
		cmovnz	eax, edx
		jmp	short loc_F231E
; ---------------------------------------------------------------------------
		align 8

loc_F2318:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+8Aj
		fstp	st
		fstp	st
		fstp	st

loc_F231E:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+9Fj
		add	esp, 30h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F2328:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+2Cj
		fstp	st
		fstp	st
		mov	edx, ebx
		mov	eax, esi
		fstp	[ebp+var_28]
		call	_ZL11DecodeFloatPK8SendPropP7bf_read ; DecodeFloat(SendProp  const*,bf_read *)
		fld	[ebp+var_18]
		fld	[ebp+var_28]
		jmp	short loc_F22F2
; ---------------------------------------------------------------------------

loc_F2340:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+69j
		fsubrp	st(1), st
		fsqrt
		jmp	short loc_F22E1
; ---------------------------------------------------------------------------
		align 10h

loc_F2350:				; CODE XREF: Vector_IsEncodedZero(SendProp  const*,bf_read *)+3Cj
		fstp	st(1)
		fstp	[ebp+var_18]
		fstp	[ebp+var_28]
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		fld	[ebp+var_18]
		fld	[ebp+var_28]
		fxch	st(1)
		jmp	loc_F22CB
_Z20Vector_IsEncodedZeroPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl EncodeFloat(int, float, int, int)
_Z11EncodeFloatPK8SendPropfP8bf_writei proc near
					; CODE XREF: VectorXY_Encode(uchar  const*,DVariant *,SendProp	const*,bf_write	*,int)+2Fp
					; VectorXY_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)+52j ...

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	eax, [edx+38h]
		test	al, 2
		jnz	loc_F24B0
		test	ah, 0E0h
		jnz	loc_F2548
		test	al, 20h
		jnz	loc_F24D0
		test	al, 4
		mov	esi, [edx+0Ch]
		jz	loc_F2440
		mov	ecx, [ebp+arg_4]
		mov	esi, 20h
		mov	[ebp+var_30], ecx

loc_F23B7:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+105j
					; EncodeFloat(SendProp	const*,float,bf_write *,int)+134j ...
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	esi, ecx
		jg	loc_F2530
		lea	eax, [esi+edx]
		mov	edi, edx
		sar	edx, 5
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		and	edi, 1Fh
		mov	ecx, edi
		lea	edx, [eax+edx*4]
		mov	eax, [ebp+var_30]
		rol	eax, cl
		mov	[ebp+var_30], eax
		lea	ecx, [esi-1]
		mov	eax, 1
		shl	eax, cl
		mov	ecx, 1Fh
		lea	ebx, [eax-1]
		sub	ecx, edi
		lea	eax, [eax+eax-1]
		shr	ebx, cl
		mov	ecx, [edx]
		mov	[ebp+var_2C], ecx
		mov	ecx, ebx
		and	ecx, 1
		lea	esi, [edx+ecx*4]
		mov	ecx, edi
		shl	eax, cl
		mov	ecx, [ebp+var_30]
		xor	ecx, [ebp+var_2C]
		and	eax, ecx
		mov	ecx, [esi]
		xor	eax, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		and	ecx, ebx
		xor	ecx, [esi]
		mov	[esi], ecx
		mov	[edx], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F2440:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+36j
		fld	dword ptr [edx+10h]
		fld	[ebp+arg_4]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		ja	loc_F24F0
		fld	dword ptr [edx+14h]
		fld	[ebp+arg_4]
		fcomip	st, st(1)
		fstp	st
		jbe	loc_F2580
		fstp	st
		mov	edi, 1
		mov	ecx, esi
		shl	edi, cl
		sub	edi, 1
		test	al, 8
		mov	[ebp+var_30], edi
		jnz	loc_F23B7
		mov	eax, [ebp+arg_C]
		mov	edi, [edx+30h]
		mov	[esp], eax
		call	_Z18GetObjectClassNamei	; GetObjectClassName(int)
		mov	[esp+10h], edi
		fld	[ebp+arg_4]
		mov	[esp+4], eax	; arg
		fstp	qword ptr [esp+8]
		mov	dword ptr [esp], offset	aSOutOfRangeVal	; "%s: Out-of-range value (%f) in SendProp"...
		call	_Z17DataTable_WarningPKcz ; DataTable_Warning(char  const*,...)
		jmp	loc_F23B7
; ---------------------------------------------------------------------------
		align 10h

loc_F24B0:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+1Aj
		mov	eax, [ebp+arg_4]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write13WriteBitCoordEf ;	bf_write::WriteBitCoord(float)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F24D0:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+2Bj
		mov	eax, [ebp+arg_4]
		mov	[esp], ebx	; int
		mov	[esp+4], eax	; float
		call	_ZN8bf_write14WriteBitNormalEf ; bf_write::WriteBitNormal(float)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F24F0:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+DCj
		fstp	st
		test	al, 10h
		mov	[ebp+var_30], 0
		jnz	loc_F23B7
		mov	eax, [ebp+arg_C]
		mov	edi, [edx+30h]
		mov	[esp], eax
		call	_Z18GetObjectClassNamei	; GetObjectClassName(int)
		mov	[esp+10h], edi
		fld	[ebp+arg_4]
		mov	[esp+4], eax	; arg
		fstp	qword ptr [esp+8]
		mov	dword ptr [esp], offset	aClassSOutOfRan	; "(class %s): Out-of-range value (%f) in "...
		call	_Z17DataTable_WarningPKcz ; DataTable_Warning(char  const*,...)
		jmp	loc_F23B7
; ---------------------------------------------------------------------------
		align 10h

loc_F2530:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+53j
		mov	[ebx+0Ch], eax
		mov	byte ptr [ebx+10h], 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F2548:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+23j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		test	ah, 40h
		setnz	dl
		test	ah, 80h
		mov	[esp], ebx	; int
		setnz	al
		mov	[esp+0Ch], edx	; char
		movzx	eax, al
		mov	[esp+8], eax	; char
		mov	[esp+4], ecx	; float
		call	_ZN8bf_write15WriteBitCoordMPEfbb ; bf_write::WriteBitCoordMP(float,bool,bool)
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F2580:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+ECj
		fsubr	[ebp+arg_4]
		cmp	esi, 16h
		fmul	dword ptr [edx+34h]
		jg	short loc_F25B0
		fadd	ds:flt_1F6A0C
		fstp	[ebp+var_2C]
		mov	eax, [ebp+var_2C]
		and	eax, 7FFFFFh
		sub	eax, 400000h
		mov	[ebp+var_30], eax
		jmp	loc_F23B7
; ---------------------------------------------------------------------------
		align 10h

loc_F25B0:				; CODE XREF: EncodeFloat(SendProp  const*,float,bf_write *,int)+219j
		fistp	[ebp+var_20]
		mov	eax, [ebp+var_20]
		mov	[ebp+var_30], eax
		jmp	loc_F23B7
_Z11EncodeFloatPK8SendPropfP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; VectorXY_Encode(unsigned char	 const*, DVariant *, SendProp  const*, bf_write	*, int)
_Z15VectorXY_EncodePKhP8DVariantPK8SendPropP8bf_writei proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_8]
		mov	[esp+0Ch], eax	; int
		mov	[esp+8], edi	; int
		mov	edx, [esi]
		mov	[ebp+var_1C], eax
		mov	[esp], ebx	; int
		mov	[esp+4], edx	; float
		call	_Z11EncodeFloatPK8SendPropfP8bf_writei ; EncodeFloat(SendProp  const*,float,bf_write *,int)
		mov	eax, [ebp+var_1C]
		mov	[ebp+arg_8], edi
		mov	edi, [ebp+var_4]
		mov	[ebp+arg_C], eax
		mov	eax, [esi+4]
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_8]
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_4], eax
		mov	esp, ebp
		pop	ebp
		jmp	_Z11EncodeFloatPK8SendPropfP8bf_writei ; EncodeFloat(SendProp  const*,float,bf_write *,int)
_Z15VectorXY_EncodePKhP8DVariantPK8SendPropP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Vector_Encode(unsigned char  const*, DVariant	*, SendProp  const*, bf_write *, int)
_Z13Vector_EncodePKhP8DVariantPK8SendPropP8bf_writei proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_C]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[esp+0Ch], eax	; int
		mov	[esp+8], ebx	; int
		mov	[ebp+var_1C], eax
		mov	eax, [edi]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; float
		call	_Z11EncodeFloatPK8SendPropfP8bf_writei ; EncodeFloat(SendProp  const*,float,bf_write *,int)
		mov	eax, [ebp+var_1C]
		mov	[esp+8], ebx	; int
		mov	[esp+0Ch], eax	; int
		mov	eax, [edi+4]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; float
		call	_Z11EncodeFloatPK8SendPropfP8bf_writei ; EncodeFloat(SendProp  const*,float,bf_write *,int)
		test	byte ptr [esi+38h], 20h
		jz	short loc_F26E0
		mov	ecx, [ebx+0Ch]
		fld	dword ptr [edi+8]
		cmp	ecx, [ebx+8]
		jge	short loc_F26B0
		fld	ds:dbl_1F6A10
		fcomip	st, st(1)
		fstp	st
		jb	short loc_F26C8
		mov	edx, [ebx]
		mov	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax*4]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx

loc_F269E:				; CODE XREF: Vector_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+BDj
		add	dword ptr [ebx+0Ch], 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F26B0:				; CODE XREF: Vector_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+5Dj
		fstp	st
		mov	byte ptr [ebx+10h], 1
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F26C8:				; CODE XREF: Vector_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+69j
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax
		jmp	short loc_F269E
; ---------------------------------------------------------------------------
		align 10h

loc_F26E0:				; CODE XREF: Vector_Encode(uchar  const*,DVariant *,SendProp  const*,bf_write *,int)+52j
		mov	eax, [ebp+var_1C]
		mov	[ebp+arg_8], ebx
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_C], eax
		mov	eax, [edi+8]
		mov	[ebp+arg_0], esi
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_4], eax
		mov	esp, ebp
		pop	ebp
		jmp	_Z11EncodeFloatPK8SendPropfP8bf_writei ; EncodeFloat(SendProp  const*,float,bf_write *,int)
_Z13Vector_EncodePKhP8DVariantPK8SendPropP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Float_Encode(unsigned	char  const*, DVariant *, SendProp  const*, bf_write *,	int)
_Z12Float_EncodePKhP8DVariantPK8SendPropP8bf_writei proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_C]
		mov	ecx, [ebp+arg_10]
		mov	eax, [ebp+arg_8]
		mov	[ebp+arg_8], edx
		mov	edx, [ebp+arg_4]
		mov	[ebp+arg_C], ecx
		mov	edx, [edx]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		pop	ebp
		jmp	_Z11EncodeFloatPK8SendPropfP8bf_writei ; EncodeFloat(SendProp  const*,float,bf_write *,int)
_Z12Float_EncodePKhP8DVariantPK8SendPropP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DecodeBits(DecodeInfo	*, unsigned char *)
_Z10DecodeBitsP10DecodeInfoPh proc near

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	esi, [ebp+var_20]
		sub	esp, 30h
		mov	ebx, [ebp+arg_0]
		mov	[esp], esi
		call	_ZN7bf_readC2Ev	; bf_read::bf_read(void)
		mov	eax, [ebx+28h]
		mov	edx, [eax]
		mov	[ebp+var_20], edx
		mov	edx, [eax+4]
		mov	[ebp+var_1C], edx
		mov	edx, [eax+8]
		mov	[ebp+var_18], edx
		mov	edx, [eax+0Ch]
		mov	[ebp+var_14], edx
		mov	edx, [eax+10h]
		mov	[ebp+var_10], edx
		mov	eax, [eax+14h]
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+20h], 0
		mov	[ebp+var_C], eax
		mov	eax, [ebx+24h]
		mov	eax, [eax+8]
		mov	[esp], ebx
		lea	eax, [eax+eax*8]
		call	off_277164[eax*4] ; Int_GetTypeNameString(void)
		mov	eax, [ebx+28h]
		mov	ebx, [eax+0Ch]
		mov	[esp], esi
		mov	eax, [ebp+arg_4]
		sub	ebx, [ebp+var_14]
		mov	[esp+4], eax
		mov	[esp+8], ebx
		call	_ZN7bf_read8ReadBitsEPvi ; bf_read::ReadBits(void *,int)
		add	esp, 30h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z10DecodeBitsP10DecodeInfoPh endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DecodeInfo::CopyVars(DecodeInfo const*)
_ZN10DecodeInfo8CopyVarsEPKS_ proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx+1Ch]
		mov	[eax+1Ch], ecx
		mov	ecx, [edx+20h]
		mov	[eax+20h], ecx
		mov	ecx, [edx]
		mov	[eax], ecx
		mov	ecx, [edx+24h]
		mov	[eax+24h], ecx
		mov	ecx, [edx+28h]
		mov	[eax+28h], ecx
		mov	ecx, [edx+18h]
		mov	[eax+18h], ecx
		mov	edx, [edx+14h]
		mov	[eax+14h], edx
		pop	ebp
		retn
_ZN10DecodeInfo8CopyVarsEPKS_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Array_GetLength(unsigned char	 const*, SendProp  const*, int)
_Z15Array_GetLengthPKhPK8SendPropi proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebx+1Ch]
		test	eax, eax
		jz	short loc_F2840
		mov	edx, [ebp+arg_8]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	eax
		mov	edx, [ebx+20h]
		cmp	eax, edx
		cmovg	eax, edx
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F2840:				; CODE XREF: Array_GetLength(uchar  const*,SendProp  const*,int)+Fj
		mov	eax, [ebx+20h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z15Array_GetLengthPKhPK8SendPropi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_Encode(unsigned	char  const*, DVariant *, SendProp  const*, bf_write *,	int)
_Z12Int64_EncodePKhP8DVariantPK8SendPropP8bf_writei proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z12Int64_EncodePKhP8DVariantPK8SendPropP8bf_writei endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_Decode(DecodeInfo *)
_Z12Int64_DecodeP10DecodeInfo proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z12Int64_DecodeP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_CompareDeltas(SendProp	const*,	bf_read	*, bf_read *)
_Z19Int64_CompareDeltasPK8SendPropP7bf_readS3_ proc near

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_8]
		mov	edx, [esi+8]
		mov	eax, [eax+0Ch]
		mov	[ebp+var_1C], edx
		mov	edx, [esi+0Ch]
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_28], eax
		sub	eax, 20h
		sub	ecx, edx
		cmp	eax, ecx
		jg	loc_F29F8
		mov	ecx, edx
		mov	[ebp+var_24], 20h
		add	eax, edx
		and	ecx, 1Fh
		mov	[esi+0Ch], eax
		sar	edx, 5
		sub	[ebp+var_24], ecx
		mov	[ebp+var_2C], ecx
		lea	edi, [eax-1]
		mov	ecx, [esi]
		sar	edi, 5
		mov	ecx, [ecx+edi*4]
		mov	edi, [esi]
		mov	[ebp+var_20], ecx
		movzx	ecx, byte ptr [ebp+var_24]
		mov	edx, [edi+edx*4]
		shl	[ebp+var_20], cl
		movzx	ecx, byte ptr [ebp+var_2C]
		shr	edx, cl
		mov	ecx, [ebp+var_28]
		or	[ebp+var_20], edx
		mov	edx, 2
		sub	ecx, 21h
		shl	edx, cl
		sub	edx, 1
		and	[ebp+var_20], edx
		mov	edx, [ebp+var_1C]
		sub	edx, eax
		cmp	edx, 1Fh
		jle	loc_F2A24

loc_F28FF:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1AEj
		lea	ecx, [eax+20h]
		mov	edx, eax
		mov	[esi+0Ch], ecx
		mov	esi, [esi]
		lea	edi, [eax+1Fh]
		sar	edi, 5
		sar	eax, 5
		and	edx, 1Fh
		mov	ecx, 20h
		sub	ecx, edx
		mov	edi, [esi+edi*4]
		mov	eax, [esi+eax*4]
		shl	edi, cl
		mov	ecx, edx
		shr	eax, cl
		or	edi, eax
		mov	[ebp+var_1C], edi

loc_F292D:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1C9j
		mov	esi, [ebp+arg_0]
		mov	edi, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	esi, [esi+0Ch]
		mov	ecx, edi
		sub	ecx, edx
		mov	eax, esi
		mov	[ebp+var_24], esi
		sub	eax, 20h
		cmp	eax, ecx
		jg	loc_F2A40
		mov	ecx, edx
		mov	[ebp+var_30], 20h
		add	eax, edx
		and	ecx, 1Fh
		mov	[ebx+0Ch], eax
		sar	edx, 5
		sub	[ebp+var_30], ecx
		mov	[ebp+var_28], ecx
		lea	esi, [eax-1]
		mov	ecx, [ebx]
		sar	esi, 5
		mov	ecx, [ecx+esi*4]
		mov	esi, [ebx]
		mov	[ebp+var_2C], ecx
		movzx	ecx, byte ptr [ebp+var_30]
		mov	edx, [esi+edx*4]
		shl	[ebp+var_2C], cl
		movzx	ecx, byte ptr [ebp+var_28]
		shr	edx, cl
		mov	ecx, [ebp+var_24]
		or	[ebp+var_2C], edx
		mov	edx, 2
		sub	ecx, 21h
		shl	edx, cl
		sub	edx, 1
		and	[ebp+var_2C], edx
		mov	edx, edi
		sub	edx, eax
		cmp	edx, 1Fh
		jle	loc_F2A65

loc_F29AA:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+1EFj
		lea	edx, [eax+20h]
		mov	edi, eax
		mov	ecx, 20h
		mov	[ebx+0Ch], edx
		mov	ebx, [ebx]
		lea	edx, [eax+1Fh]
		sar	edx, 5
		sar	eax, 5
		and	edi, 1Fh
		sub	ecx, edi
		mov	edx, [ebx+edx*4]
		mov	eax, [ebx+eax*4]
		shl	edx, cl
		mov	ecx, edi
		shr	eax, cl
		or	edx, eax

loc_F29D5:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+202j
		cmp	[ebp+var_1C], edx
		mov	esi, [ebp+var_2C]
		setnz	al
		cmp	[ebp+var_20], esi
		setnz	dl
		add	esp, 3Ch
		pop	ebx
		or	eax, edx
		movzx	eax, al
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F29F8:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+2Bj
		mov	edi, [ebp+var_1C]
		mov	[esi+0Ch], edi
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [esi+8]
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], eax
		mov	eax, [esi+0Ch]
		mov	edx, [ebp+var_1C]
		sub	edx, eax
		cmp	edx, 1Fh
		jg	loc_F28FF

loc_F2A24:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+89j
		mov	edi, [ebp+var_1C]
		mov	[esi+0Ch], edi
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_1C], 0
		jmp	loc_F292D
; ---------------------------------------------------------------------------
		align 10h

loc_F2A40:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+D7j
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edi, [ebx+8]
		mov	[ebp+var_2C], 0
		mov	eax, [ebx+0Ch]
		mov	edx, edi
		sub	edx, eax
		cmp	edx, 1Fh
		jg	loc_F29AA

loc_F2A65:				; CODE XREF: Int64_CompareDeltas(SendProp  const*,bf_read *,bf_read *)+134j
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_F29D5
_Z19Int64_CompareDeltasPK8SendPropP7bf_readS3_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_GetTypeNameString(void)
_Z23Int64_GetTypeNameStringv proc near
		push	ebp
		mov	eax, offset aDpt_int64 ; "DPT_Int64"
		mov	ebp, esp
		pop	ebp
		retn
_Z23Int64_GetTypeNameStringv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_IsZero(unsigned	char  const*, DVariant *, SendProp  const*)
_Z12Int64_IsZeroPKhP8DVariantPK8SendProp proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_Z12Int64_IsZeroPKhP8DVariantPK8SendProp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_DecodeZero(DecodeInfo *)
_Z16Int64_DecodeZeroP10DecodeInfo proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z16Int64_DecodeZeroP10DecodeInfo endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_IsEncodedZero(SendProp	const*,	bf_read	*)
_Z19Int64_IsEncodedZeroPK8SendPropP7bf_read proc near

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	edi, [ebx+8]
		mov	eax, [eax+0Ch]
		mov	edx, [ebx+0Ch]
		mov	ecx, edi
		mov	[ebp+var_1C], eax
		sub	eax, 20h
		sub	ecx, edx
		cmp	eax, ecx
		jg	loc_F2B70
		mov	ecx, edx
		mov	[ebp+var_28], 20h
		add	eax, edx
		and	ecx, 1Fh
		mov	[ebx+0Ch], eax
		sar	edx, 5
		sub	[ebp+var_28], ecx
		mov	[ebp+var_20], ecx
		lea	esi, [eax-1]
		mov	ecx, [ebx]
		sar	esi, 5
		mov	ecx, [ecx+esi*4]
		mov	esi, [ebx]
		mov	[ebp+var_24], ecx
		movzx	ecx, byte ptr [ebp+var_28]
		mov	edx, [esi+edx*4]
		shl	[ebp+var_24], cl
		movzx	ecx, byte ptr [ebp+var_20]
		shr	edx, cl
		mov	ecx, [ebp+var_1C]
		or	[ebp+var_24], edx
		mov	edx, 2
		sub	ecx, 21h
		shl	edx, cl
		sub	edx, 1
		and	[ebp+var_24], edx
		mov	edx, edi
		sub	edx, eax
		cmp	edx, 1Fh
		jle	short loc_F2B91

loc_F2B33:				; CODE XREF: Int64_IsEncodedZero(SendProp  const*,bf_read *)+DFj
		lea	edx, [eax+20h]
		mov	edi, eax
		mov	ecx, 20h
		mov	[ebx+0Ch], edx
		mov	ebx, [ebx]
		lea	edx, [eax+1Fh]
		sar	edx, 5
		sar	eax, 5
		and	edi, 1Fh
		sub	ecx, edi
		mov	edx, [ebx+edx*4]
		mov	eax, [ebx+eax*4]
		shl	edx, cl
		mov	ecx, edi
		shr	eax, cl
		or	edx, eax
		or	edx, [ebp+var_24]
		setz	al
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F2B70:				; CODE XREF: Int64_IsEncodedZero(SendProp  const*,bf_read *)+24j
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	edi, [ebx+8]
		mov	[ebp+var_24], 0
		mov	eax, [ebx+0Ch]
		mov	edx, edi
		sub	edx, eax
		cmp	edx, 1Fh
		jg	short loc_F2B33

loc_F2B91:				; CODE XREF: Int64_IsEncodedZero(SendProp  const*,bf_read *)+81j
		mov	[ebx+0Ch], edi
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		or	edx, [ebp+var_24]
		setz	al
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z19Int64_IsEncodedZeroPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Int64_SkipProp(SendProp  const*, bf_read *)
_Z14Int64_SkipPropPK8SendPropP7bf_read proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [eax+0Ch]
		add	eax, [ebx+0Ch]
		js	short loc_F2BD8
		cmp	eax, [ebx+8]
		jg	short loc_F2BD8
		mov	[ebx+0Ch], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F2BD8:				; CODE XREF: Int64_SkipProp(SendProp  const*,bf_read *)+13j
					; Int64_SkipProp(SendProp  const*,bf_read *)+18j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z14Int64_SkipPropPK8SendPropP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; Generic_FastCopy(SendProp  const*, RecvProp  const*, unsigned	char  const*, unsigned char *, int)
_Z16Generic_FastCopyPK8SendPropPK8RecvPropPKhPhi proc near
					; CODE XREF: Array_SkipProp(SendProp  const*,bf_read *)+93p
					; Array_IsEncodedZero(SendProp	const*,bf_read *)+93p ...

var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_10]
		lea	ecx, [ebp+var_30]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_8]
		mov	dword ptr [esp+10h], 0
		mov	ebx, [ebp+arg_4]
		mov	[esp+14h], edi
		mov	esi, [ebp+arg_C]
		mov	[esp+0Ch], ecx
		mov	ecx, [eax+48h]
		mov	[ebp+var_24], 1
		mov	[esp+4], edx
		mov	[esp], eax
		add	ecx, edx
		mov	[esp+8], ecx
		call	dword ptr [eax+3Ch]
		mov	eax, [ebx+2Ch]
		mov	[ebp+var_34], ebx
		mov	[ebp+var_1C], edi
		mov	[esp+4], esi
		mov	[ebp+var_20], 0
		add	eax, esi
		mov	[esp+8], eax
		lea	eax, [ebp+var_34]
		mov	[esp], eax
		call	dword ptr [ebx+20h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z16Generic_FastCopyPK8SendPropPK8RecvPropPKhPhi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DTI_Init(void)
_Z8DTI_Initv	proc near		; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+10p
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z8DTI_Initv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DTI_Flush(void)
_Z9DTI_Flushv	proc near		; CODE XREF: DTI_Term(void):loc_F2EA8p
					; DTI_Flush_f(void)+6p

var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 9Ch
		cmp	ds:g_bDTIEnabled, 0
		jnz	short loc_F2CA0

loc_F2C95:				; CODE XREF: DTI_Flush(void)+50j
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F2CA0:				; CODE XREF: DTI_Flush(void)+13j
		mov	eax, ds:g_pFileSystem
		mov	ecx, ds:g_pDTIFilename
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset aWt ;	"wt"
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	[ebp+var_38], eax
		jz	short loc_F2C95
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_38]
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aClassPropDecod ; "Class,Prop,Decode Count,Total Bits,Avg "...
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+60h]
		mov	eax, dword ptr ds:g_DTIRecvTables+0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_F2E24
		mov	edx, dword ptr ds:g_DTIRecvTables
		mov	[ebp+var_20], 2
		lea	esi, [esi+0]

loc_F2D10:				; CODE XREF: DTI_Flush(void)+19Ej
		lea	eax, [eax+eax*2]
		shl	eax, 2
		mov	[ebp+var_34], eax
		add	eax, edx
		mov	edi, [eax]
		cmp	byte ptr [edi+24h], 0
		jz	loc_F2E18
		mov	ecx, [edi+1Ch]
		test	ecx, ecx
		jle	loc_F2E18
		xor	esi, esi
		xor	ebx, ebx
		mov	edx, edi
		jmp	short loc_F2D4F
; ---------------------------------------------------------------------------
		align 10h

loc_F2D40:				; CODE XREF: DTI_Flush(void)+D9j
		add	ebx, 1
		add	esi, 1Ch
		cmp	[edx+1Ch], ebx
		jle	loc_F2E0D

loc_F2D4F:				; CODE XREF: DTI_Flush(void)+B8j
					; DTI_Flush(void)+187j
		mov	eax, [edx+10h]
		add	eax, esi
		mov	edi, [eax+10h]
		test	edi, edi
		jz	short loc_F2D40
		mov	ecx, ds:g_pFileSystem
		add	ebx, 1
		add	esi, 1Ch
		mov	ecx, [ecx]
		mov	ecx, [ecx+60h]
		mov	[ebp+var_28], ecx
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_2C], ecx
		mov	ecx, [eax+18h]
		mov	[ebp+var_1C], edi
		fild	[ebp+var_1C]
		mov	[ebp+var_5C], ecx
		mov	ecx, [eax+14h]
		fstp	[ebp+var_58]
		mov	[ebp+var_3C], edx
		mov	[esp], eax
		mov	[ebp+var_24], ecx
		call	_ZNK10CUtlString3GetEv ; CUtlString::Get(void)
		mov	edx, [ebp+var_3C]
		mov	[ebp+var_30], eax
		mov	[esp], edx
		call	_ZNK10CUtlString3GetEv ; CUtlString::Get(void)
		mov	ecx, [ebp+var_20]
		mov	[esp+14h], edi
		fild	[ebp+var_5C]
		mov	[esp+0Ch], eax
		fld	[ebp+var_58]
		mov	dword ptr [esp+8], offset aSSDD_3fD_3fDDH ; "%s,%s,%d,%d,%.3f,%d,%.3f,=D%d/H$1\n"
		fdiv	st(1), st
		fxch	st(1)
		mov	eax, [ebp+var_38]
		mov	[esp+30h], ecx
		mov	ecx, [ebp+var_5C]
		mov	[esp+4], eax
		mov	eax, ds:g_pFileSystem
		mov	[esp+24h], ecx
		mov	ecx, [ebp+var_24]
		mov	[esp], eax
		mov	[esp+18h], ecx
		mov	ecx, [ebp+var_30]
		mov	[esp+10h], ecx
		fstp	qword ptr [esp+28h]
		fild	[ebp+var_24]
		fdivrp	st(1), st
		fstp	qword ptr [esp+1Ch]
		call	[ebp+var_28]
		mov	edx, [ebp+var_3C]
		mov	ecx, [ebp+var_2C]
		cmp	[edx+1Ch], ebx
		mov	[ebp+var_20], ecx
		jg	loc_F2D4F

loc_F2E0D:				; CODE XREF: DTI_Flush(void)+C9j
		mov	edx, dword ptr ds:g_DTIRecvTables
		mov	eax, [ebp+var_34]
		add	eax, edx

loc_F2E18:				; CODE XREF: DTI_Flush(void)+A1j
					; DTI_Flush(void)+ACj
		mov	eax, [eax+8]
		cmp	eax, 0FFFFFFFFh
		jnz	loc_F2D10

loc_F2E24:				; CODE XREF: DTI_Flush(void)+76j
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_38]
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		mov	eax, ds:g_pDTIFilename
		mov	dword ptr [esp], offset	aDtiWroteClient	; "DTI:	wrote client stats into	%s.\n"
		mov	[esp+4], eax
		call	Msg
		add	esp, 9Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z9DTI_Flushv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; _DTI_HookDeltaBits(CRecvDecoder *, int, int, int)
_Z18_DTI_HookDeltaBitsP12CRecvDecoderiii proc near
					; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+234p
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+285p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+148h]
		test	edx, edx
		jz	short loc_F2E8B
		imul	eax, [ebp+arg_4], 1Ch
		mov	ecx, [ebp+arg_8]
		add	eax, [edx+10h]
		add	[eax+14h], ecx
		mov	ecx, [ebp+arg_C]
		add	dword ptr [eax+10h], 1
		add	[eax+18h], ecx
		mov	byte ptr [edx+24h], 1

loc_F2E8B:				; CODE XREF: _DTI_HookDeltaBits(CRecvDecoder *,int,int,int)+Ej
		pop	ebp
		retn
_Z18_DTI_HookDeltaBitsP12CRecvDecoderiii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DTI_Term(void)
_Z8DTI_Termv	proc near		; CODE XREF: RecvTable_Term(bool)+10p
					; Host_Shutdown(void):loc_1185A9p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		cmp	ds:g_bDTIEnabled, 0
		jnz	short loc_F2EA8
		leave
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F2EA8:				; CODE XREF: DTI_Term(void)+Dj
		call	_Z9DTI_Flushv	; DTI_Flush(void)
		mov	dword ptr [esp], offset	g_DTIRecvTables
		call	_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE22PurgeAndDeleteElementsEv	; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)
		mov	eax, ds:g_pDTIFilename
		mov	[esp], eax	; void *
		call	_ZdlPv		; operator delete(void *)
		mov	ds:g_bDTIEnabled, 0
		mov	ds:g_pDTIFilename, 0
		leave
		retn
_Z8DTI_Termv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; DTI_HookRecvDecoder(CRecvDecoder *)
_Z19DTI_HookRecvDecoderP12CRecvDecoder proc near
					; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+F9p

var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
s		= byte ptr -11Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 15Ch
		cmp	ds:g_bDTIEnabled, 0
		mov	ebx, [ebp+arg_0]
		jnz	short loc_F2F08
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F2F08:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+16j
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aDti ; "-dti"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		mov	dword ptr [esp], 28h
		mov	[ebp+var_130], eax
		call	_Znwj		; operator new(uint)
		mov	esi, eax
		mov	[esp], eax
		call	_ZN10CUtlStringC2Ev ; CUtlString::CUtlString(void)
		mov	dword ptr [esi+10h], 0
		mov	dword ptr [esi+14h], 0
		mov	dword ptr [esi+18h], 0
		mov	dword ptr [esi+1Ch], 0
		mov	dword ptr [esi+20h], 0
		mov	byte ptr [esi+24h], 0
		mov	eax, [ebx]
		mov	[ebp+var_1C], esi
		mov	eax, [eax+0Ch]
		mov	[esp], esi	; int
		mov	[esp+4], eax	; s
		call	_ZN10CUtlString3SetEPKc	; CUtlString::Set(char	const*)
		mov	eax, [ebp+var_1C]
		mov	edi, [ebx+12Ch]
		lea	esi, [eax+10h]
		mov	[ebp+var_13C], eax
		mov	[esp], esi
		call	_ZN10CUtlVectorI8CDTIProp10CUtlMemoryIS0_iEE9RemoveAllEv ; CUtlVector<CDTIProp,CUtlMemory<CDTIProp,int>>::RemoveAll(void)
		mov	eax, [ebp+var_13C]
		test	edi, edi
		mov	edx, [eax+1Ch]
		jz	loc_F305D
		lea	ecx, [edi+edx]
		mov	[ebp+var_12C], ecx
		mov	ecx, [eax+14h]
		mov	[ebp+var_134], ecx
		mov	ecx, [ebp+var_12C]
		mov	[ebp+var_138], ecx
		mov	ecx, [ebp+var_134]
		cmp	[ebp+var_12C], ecx
		jg	loc_F3138

loc_F2FCF:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+28Dj
		mov	ecx, [ebp+var_138]
		mov	[eax+1Ch], ecx
		mov	ecx, [eax+10h]
		mov	[eax+20h], ecx
		mov	[ebp+var_134], ecx
		mov	ecx, [ebp+var_138]
		sub	ecx, edx
		sub	ecx, edi
		test	edi, edi
		setnle	al
		test	ecx, ecx
		jg	loc_F3178
		test	al, al
		jz	short loc_F305D

loc_F2FFF:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+2D5j
		imul	eax, edx, 1Ch
		xor	ecx, ecx
		mov	[ebp+var_12C], esi
		mov	[ebp+var_138], ebx
		mov	ebx, ecx
		mov	[ebp+var_134], edi
		mov	esi, eax
		lea	esi, [esi+0]

loc_F3020:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+175j
		mov	eax, [ebp+var_12C]
		mov	edi, esi
		add	edi, [eax]
		jz	short loc_F3049
		mov	[esp], edi
		call	_ZN10CUtlStringC2Ev ; CUtlString::CUtlString(void)
		mov	dword ptr [edi+18h], 0
		mov	dword ptr [edi+14h], 0
		mov	dword ptr [edi+10h], 0

loc_F3049:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+14Aj
		add	ebx, 1
		add	esi, 1Ch
		cmp	[ebp+var_134], ebx
		jg	short loc_F3020
		mov	ebx, [ebp+var_138]

loc_F305D:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+B9j
					; DTI_HookRecvDecoder(CRecvDecoder *)+11Dj ...
		mov	ecx, [ebp+var_1C]
		mov	esi, [ecx+1Ch]
		test	esi, esi
		jle	loc_F3102
		xor	edi, edi
		xor	esi, esi
		jmp	short loc_F30D0
; ---------------------------------------------------------------------------
		align 8

loc_F3078:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+1FEj
		mov	edx, [eax+2Ch]
		mov	eax, [eax+30h]
		test	edx, edx
		jz	short loc_F30E3
		lea	ecx, [ebp+s]
		mov	[esp+0Ch], edx	; arg
		add	esi, 1
		mov	[esp], ecx	; s
		mov	[esp+10h], eax
		mov	dword ptr [esp+8], offset aSS_9	; "%s:%s"
		mov	dword ptr [esp+4], 100h	; maxlen
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		lea	eax, [ebp+s]
		mov	[esp+4], eax	; s
		mov	eax, [ebp+var_1C]
		mov	eax, [eax+10h]
		add	eax, edi
		add	edi, 1Ch
		mov	[esp], eax	; int
		call	_ZN10CUtlString3SetEPKc	; CUtlString::Set(char	const*)
		mov	ecx, [ebp+var_1C]
		cmp	[ecx+1Ch], esi
		jle	short loc_F3102

loc_F30D0:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+18Fj
					; DTI_HookRecvDecoder(CRecvDecoder *)+220j
		mov	edx, [ebp+var_130]
		mov	eax, [ebx+34h]
		test	edx, edx
		mov	eax, [eax+esi*4]
		jg	short loc_F3078
		mov	eax, [eax+30h]

loc_F30E3:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+1A0j
		mov	[esp+4], eax	; s
		add	esi, 1
		mov	eax, [ecx+10h]
		add	eax, edi
		add	edi, 1Ch
		mov	[esp], eax	; int
		call	_ZN10CUtlString3SetEPKc	; CUtlString::Set(char	const*)
		mov	ecx, [ebp+var_1C]
		cmp	[ecx+1Ch], esi
		jg	short loc_F30D0

loc_F3102:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+185j
					; DTI_HookRecvDecoder(CRecvDecoder *)+1EEj
		lea	eax, [ebp+var_1C]
		mov	dword ptr [esp+4], 0FFFFFFFFh
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	g_DTIRecvTables
		call	_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE12InsertBeforeEiRKS1_ ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)
		mov	eax, [ebp+var_1C]
		mov	[ebx+148h], eax
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F3138:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+E9j
		mov	ecx, [ebp+var_12C]
		mov	[ebp+var_140], edx
		mov	[esp], esi
		sub	ecx, [ebp+var_134]
		mov	[esp+4], ecx
		call	_ZN10CUtlMemoryI8CDTIPropiE4GrowEi ; CUtlMemory<CDTIProp,int>::Grow(int)
		mov	eax, [ebp+var_13C]
		mov	edx, [ebp+var_140]
		mov	ecx, [eax+1Ch]
		add	ecx, edi
		mov	[ebp+var_138], ecx
		jmp	loc_F2FCF
; ---------------------------------------------------------------------------
		align 8

loc_F3178:				; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+115j
		test	al, al
		jz	loc_F305D
		imul	eax, edx, 1Ch
		mov	[ebp+var_140], edx
		imul	ecx, 1Ch
		add	eax, [ebp+var_134]
		mov	[esp+8], ecx	; n
		mov	[esp+4], eax	; src
		imul	eax, [ebp+var_12C], 1Ch
		add	eax, [ebp+var_134]
		mov	[esp], eax	; dest
		call	memmove
		mov	edx, [ebp+var_140]
		jmp	loc_F2FFF
_Z19DTI_HookRecvDecoderP12CRecvDecoder endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	[esp], esi
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDTIProp, int>::Purge(void)
_ZN10CUtlMemoryI8CDTIPropiE5PurgeEv proc near
					; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+44p
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+52p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_F31FC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F31F5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_F31F5:				; CODE XREF: CUtlMemory<CDTIProp,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_F31FC:				; CODE XREF: CUtlMemory<CDTIProp,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI8CDTIPropiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CDTIProp, CUtlMemory<CDTIProp, int>>::RemoveAll(void)
_ZN10CUtlVectorI8CDTIProp10CUtlMemoryIS0_iEE9RemoveAllEv proc near
					; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+A9p
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+3Cp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_0]
		mov	esi, [edx+0Ch]
		sub	esi, 1
		imul	edi, esi, 1Ch
		jmp	short loc_F3262
; ---------------------------------------------------------------------------
		align 10h

loc_F3230:				; CODE XREF: CUtlVector<CDTIProp,CUtlMemory<CDTIProp,int>>::RemoveAll(void)+54j
		mov	ebx, [edx]
		add	ebx, edi
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_F325C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F3255
		mov	[ebp+var_1C], edx
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0
		mov	edx, [ebp+var_1C]

loc_F3255:				; CODE XREF: CUtlVector<CDTIProp,CUtlMemory<CDTIProp,int>>::RemoveAll(void)+2Fj
		mov	dword ptr [ebx+4], 0

loc_F325C:				; CODE XREF: CUtlVector<CDTIProp,CUtlMemory<CDTIProp,int>>::RemoveAll(void)+29j
		sub	edi, 1Ch
		sub	esi, 1

loc_F3262:				; CODE XREF: CUtlVector<CDTIProp,CUtlMemory<CDTIProp,int>>::RemoveAll(void)+15j
		test	esi, esi
		jns	short loc_F3230
		mov	dword ptr [edx+0Ch], 0
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN10CUtlVectorI8CDTIProp10CUtlMemoryIS0_iEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *, int>,	int>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTIRecvTableiEiE5PurgeEv proc	near
					; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::~CUtlLinkedList()+1Aj
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+97p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_F32AC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F32A5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_F32A5:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_F32AC:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTIRecvTableiEiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTIRecvTable *, int, false, int, CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable	*, int>, int>>::RemoveAll(void)
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE9RemoveAllEv proc near
					; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::~CUtlLinkedList()+Dp
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+8Cp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [ebx+20h], 0FFFFFFFFh
		jz	short loc_F3316
		mov	edx, [ebx+0Ch]
		cmp	edx, 0FFFFFFFFh
		jz	short loc_F3301
		lea	esi, [esi+0]

loc_F32D8:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::RemoveAll(void)+2Dj
		mov	ecx, [ebx]
		lea	eax, [edx+edx*2]
		lea	eax, [ecx+eax*4]
		mov	ecx, [eax+8]
		mov	[eax+4], edx
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_F32F0
		mov	edx, ecx
		jmp	short loc_F32D8
; ---------------------------------------------------------------------------
		align 10h

loc_F32F0:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::RemoveAll(void)+29j
		mov	edx, [ebx+14h]
		mov	[eax+8], edx
		mov	eax, [ebx+0Ch]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_F3301
		mov	[ebx+14h], eax

loc_F3301:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::RemoveAll(void)+13j
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::RemoveAll(void)+3Cj
		mov	dword ptr [ebx+0Ch], 0FFFFFFFFh
		mov	dword ptr [ebx+10h], 0FFFFFFFFh
		mov	dword ptr [ebx+18h], 0

loc_F3316:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::RemoveAll(void)+Bj
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTIRecvTable *, int, false, int, CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable	*, int>, int>>::~CUtlLinkedList()
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_bDTIEnabled+23o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE9RemoveAllEv ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::RemoveAll(void)
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTIRecvTableiEiE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Purge(void)
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTIRecvTable *, int, false, int, CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable	*, int>, int>>::PurgeAndDeleteElements(void)
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE22PurgeAndDeleteElementsEv	proc near
					; CODE XREF: DTI_Term(void)+24p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_F3362
		jmp	short loc_F33C6
; ---------------------------------------------------------------------------
		align 10h

loc_F3360:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+84j
		mov	eax, esi

loc_F3362:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+12j
		mov	edx, [ebp+arg_0]
		lea	eax, [eax+eax*2]
		shl	eax, 2
		add	eax, [edx]
		mov	ebx, [eax]
		mov	esi, [eax+8]
		test	ebx, ebx
		jz	short loc_F33C1
		lea	edi, [ebx+10h]
		mov	[esp], edi
		call	_ZN10CUtlVectorI8CDTIProp10CUtlMemoryIS0_iEE9RemoveAllEv ; CUtlVector<CDTIProp,CUtlMemory<CDTIProp,int>>::RemoveAll(void)
		mov	[esp], edi
		call	_ZN10CUtlMemoryI8CDTIPropiE5PurgeEv ; CUtlMemory<CDTIProp,int>::Purge(void)
		mov	eax, [ebx+10h]
		mov	[ebx+20h], eax
		mov	[esp], edi
		call	_ZN10CUtlMemoryI8CDTIPropiE5PurgeEv ; CUtlMemory<CDTIProp,int>::Purge(void)
		mov	edi, [ebx+8]
		test	edi, edi
		js	short loc_F33B9
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F33B2
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_F33B2:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+62j
		mov	dword ptr [ebx+4], 0

loc_F33B9:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+5Cj
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)

loc_F33C1:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+34j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_F3360

loc_F33C6:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::PurgeAndDeleteElements(void)+14j
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE9RemoveAllEv ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::RemoveAll(void)
		mov	edx, [ebp+arg_0]
		mov	[esp], edx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTIRecvTableiEiE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Purge(void)
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+14h], 0FFFFFFFFh
		mov	edx, eax
		mov	dword ptr [eax+1Ch], 0
		mov	dword ptr [eax+20h], 0FFFFFFFFh
		mov	eax, [eax]
		mov	[edx+24h], eax
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE22PurgeAndDeleteElementsEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *, int>,	int>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTIRecvTableiEiE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+CAp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_F3474
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_F3480
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_F3457
		lea	esi, [esi+0]

loc_F3448:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_F3448

loc_F3457:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+30j
					; CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_F34A5

loc_F3466:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+93j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_F3474:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F3480:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_F3457
		db	66h
		nop

loc_F3490:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_F3490
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jnz	short loc_F3466

loc_F34A5:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)+54j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTIRecvTableiEiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTIRecvTable *, int, false, int, CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable	*, int>, int>>::AllocInternal(bool)
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE13AllocInternalEb proc near
					; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+20p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+14h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_F3540
		mov	ecx, [ebx]
		lea	edx, [eax+eax*2]
		shl	edx, 2
		mov	[ebp+var_20], edx
		add	ecx, edx
		mov	edi, [ecx+8]
		mov	[ebx+14h], edi

loc_F34F1:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+B0j
		mov	edx, esi
		test	dl, dl
		jz	short loc_F3520
		mov	dword ptr [ecx+8], 0FFFFFFFFh
		mov	edx, [ebp+var_20]
		mov	ecx, [ebx]
		mov	dword ptr [ecx+edx+4], 0FFFFFFFFh

loc_F350B:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+ECj
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+10Bj ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F3520:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+35j
		mov	[ecx+8], eax
		mov	edx, [ebp+var_20]
		mov	ecx, [ebx]
		mov	[ecx+edx+4], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F3540:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+1Cj
		mov	edi, [ebx+20h]
		mov	edx, [ebx+4]
		cmp	edi, edx
		jnb	short loc_F3578
		add	edi, 1
		cmp	edx, edi
		jbe	short loc_F357C

loc_F3551:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+14Dj
		cmp	edi, 0FFFFFFFFh
		jz	loc_F35D8

loc_F355A:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+112j
		mov	ecx, [ebx]
		lea	edx, [edi+edi*2]
		mov	[ebx+20h], edi
		add	dword ptr [ebx+1Ch], 1
		shl	edx, 2
		mov	eax, edi
		mov	[ebp+var_20], edx
		add	ecx, edx
		jmp	loc_F34F1
; ---------------------------------------------------------------------------
		align 4

loc_F3578:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+88j
		test	edx, edx
		jnz	short loc_F35D0

loc_F357C:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+8Fj
		mov	[ebp+var_1C], eax
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTIRecvTableiEiE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>::Grow(int)
		mov	edx, [ebx]
		mov	edi, [ebx+20h]
		mov	[ebx+24h], edx
		mov	edx, [ebx+4]
		mov	eax, [ebp+var_1C]
		cmp	edi, edx
		jb	short loc_F3608
		test	edx, edx
		jnz	short loc_F35D0

loc_F35A5:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+153j
		cmp	ds:_ZZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)::__executeCount
		jg	loc_F350B
		mov	[ebp+var_1C], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_1C]
		add	ds:_ZZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)::__executeCount
		jmp	loc_F350B
; ---------------------------------------------------------------------------

loc_F35D0:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+BAj
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+E3j
		xor	edi, edi
		jmp	short loc_F355A
; ---------------------------------------------------------------------------
		align 8

loc_F35D8:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+94j
		cmp	ds:_ZZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CDTIRecvTable	*,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)::__executeCount
		jg	loc_F350B
		mov	[ebp+var_1C], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_1C]
		add	ds:_ZZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CDTIRecvTable	*,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)::__executeCount
		jmp	loc_F350B
; ---------------------------------------------------------------------------
		align 8

loc_F3608:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)+DFj
		add	edi, 1
		cmp	edx, edi
		ja	loc_F3551
		jmp	short loc_F35A5
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTIRecvTable *, int, false, int, CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable	*, int>, int>>::Unlink(int)
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE6UnlinkEi proc near
					; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+34p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], ebx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		cmp	edx, [eax+4]
		jnb	short loc_F367E
		cmp	edx, [eax+20h]
		jg	short loc_F367E
		mov	esi, [eax]
		lea	ecx, [edx+edx*2]
		lea	ecx, [esi+ecx*4]
		cmp	edx, [ecx+4]
		jz	short loc_F367E
		mov	ebx, [ecx+4]
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_F3690
		mov	edi, [ecx+8]
		lea	ebx, [ebx+ebx*2]
		mov	[esi+ebx*4+8], edi
		mov	ebx, [ecx+8]
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_F369E

loc_F3666:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::Unlink(int)+7Cj
		mov	edi, [eax]
		lea	ebx, [ebx+ebx*2]
		mov	esi, [ecx+4]
		lea	ebx, [edi+ebx*4]
		mov	[ebx+4], esi

loc_F3674:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::Unlink(int)+84j
		mov	[ecx+8], edx
		mov	[ecx+4], edx
		sub	dword ptr [eax+18h], 1

loc_F367E:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::Unlink(int)+18j
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::Unlink(int)+1Dj ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F3690:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::Unlink(int)+32j
		mov	ebx, [ecx+8]
		mov	[eax+0Ch], ebx
		mov	ebx, [ecx+8]
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_F3666

loc_F369E:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::Unlink(int)+44j
		mov	ebx, [ecx+4]
		mov	[eax+10h], ebx
		jmp	short loc_F3674
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE6UnlinkEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTIRecvTable *, int, false, int, CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable	*, int>, int>>::InsertBefore(int, CDTIRecvTable	* const&)
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE12InsertBeforeEiRKS1_ proc	near
					; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+238p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE13AllocInternalEb ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::AllocInternal(bool)
		cmp	eax, 0FFFFFFFFh
		jz	short loc_F372E
		mov	[esp+4], eax
		mov	[ebp+var_1C], eax
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE6UnlinkEi ; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::Unlink(int)
		mov	eax, [ebp+var_1C]
		mov	edi, [ebx]
		lea	ecx, [eax+eax*2]
		shl	ecx, 2
		add	edi, ecx
		cmp	esi, 0FFFFFFFFh
		mov	[edi+8], esi
		jz	short loc_F3740
		mov	edx, [ebx]
		lea	esi, [esi+esi*2]
		lea	esi, [edx+esi*4]
		mov	edx, [esi+4]
		mov	[esi+4], eax
		cmp	edx, 0FFFFFFFFh
		mov	[edi+4], edx
		jz	short loc_F374E

loc_F3714:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+9Cj
		mov	esi, [ebx]
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]
		mov	[edx+8], eax

loc_F371F:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+A1j
		add	dword ptr [ebx+18h], 1
		add	ecx, [ebx]
		jz	short loc_F372E
		mov	edx, [ebp+arg_8]
		mov	edx, [edx]
		mov	[ecx], edx

loc_F372E:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+28j
					; CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+75j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F3740:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+4Cj
		mov	edx, [ebx+10h]
		cmp	edx, 0FFFFFFFFh
		mov	[edi+4], edx
		mov	[ebx+10h], eax
		jnz	short loc_F3714

loc_F374E:				; CODE XREF: CUtlLinkedList<CDTIRecvTable *,int,false,int,CUtlMemory<UtlLinkedListElem_t<CDTIRecvTable *,int>,int>>::InsertBefore(int,CDTIRecvTable * const&)+62j
		mov	[ebx+0Ch], eax
		jmp	short loc_F371F
_ZN14CUtlLinkedListIP13CDTIRecvTableiLb0Ei10CUtlMemoryI19UtlLinkedListElem_tIS1_iEiEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CDTIProp, int>::Grow(int)
_ZN10CUtlMemoryI8CDTIPropiE4GrowEi proc	near
					; CODE XREF: DTI_HookRecvDecoder(CRecvDecoder *)+271p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_F37C1
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_F37D0
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_F37A7
		lea	esi, [esi+0]

loc_F3798:				; CODE XREF: CUtlMemory<CDTIProp,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_F3798

loc_F37A7:				; CODE XREF: CUtlMemory<CDTIProp,int>::Grow(int)+30j
					; CUtlMemory<CDTIProp,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		imul	eax, 1Ch
		test	edx, edx
		jz	short loc_F37F2

loc_F37B3:				; CODE XREF: CUtlMemory<CDTIProp,int>::Grow(int)+90j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_F37C1:				; CODE XREF: CUtlMemory<CDTIProp,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F37D0:				; CODE XREF: CUtlMemory<CDTIProp,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_F37A7
		db	66h
		nop

loc_F37E0:				; CODE XREF: CUtlMemory<CDTIProp,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_F37E0
		mov	edx, [ebx]
		mov	[ebx+4], eax
		imul	eax, 1Ch
		test	edx, edx
		jnz	short loc_F37B3

loc_F37F2:				; CODE XREF: CUtlMemory<CDTIProp,int>::Grow(int)+51j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI8CDTIPropiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ServerDTI_Init(char  const*)
_Z14ServerDTI_InitPKc proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	ds:g_bServerDTIEnabled,	1
		mov	eax, [ebp+arg_0]
		mov	dword ptr ds:_ZL22g_TotalServerDTICycles, 0 ; g_TotalServerDTICycles
		mov	dword ptr ds:_ZL22g_TotalServerDTICycles+4, 0
		pop	ebp
		mov	_ZL17g_bFirstHookTimer,	1 ; g_bFirstHookTimer
		mov	ds:_ZL20g_pServerDTIFilename, eax ; g_pServerDTIFilename
		retn
_Z14ServerDTI_InitPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ServerDTI_Flush(void)
_Z15ServerDTI_Flushv proc near		; CODE XREF: ServerDTI_Term(void)+16p
					; DTI_Flush_f(void)+Cj

var_F8		= qword	ptr -0F8h
var_E8		= qword	ptr -0E8h
var_D8		= qword	ptr -0D8h
var_C8		= qword	ptr -0C8h
var_B8		= qword	ptr -0B8h
var_A8		= qword	ptr -0A8h
var_98		= qword	ptr -98h
var_80		= qword	ptr -80h
var_78		= qword	ptr -78h
var_6C		= dword	ptr -6Ch
var_68		= qword	ptr -68h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= qword	ptr -58h
var_50		= qword	ptr -50h
var_48		= qword	ptr -48h
var_40		= qword	ptr -40h
var_38		= qword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= qword	ptr -20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 14Ch
		mov	ecx, ds:_ZL20g_pServerDTIFilename ; g_pServerDTIFilename
		test	ecx, ecx
		jz	loc_F3ED6
		rdtsc
		mov	[ebp+var_30], eax
		mov	eax, ds:g_pFileSystem
		mov	[ebp+var_2C], edx
		mov	esi, dword ptr ds:_ZL16g_ServerDTITimer	; g_ServerDTITimer
		mov	edi, dword ptr ds:_ZL16g_ServerDTITimer+4
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], offset aLogdir ; "LOGDIR"
		mov	dword ptr [esp+8], offset aWt ;	"wt"
		mov	[esp+4], ecx
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	[ebp+var_60], eax
		jz	loc_F3D43
		mov	edx, [ebp+var_30]
		mov	ecx, [ebp+var_2C]
		mov	eax, ds:g_pFileSystem
		sub	edx, esi
		sbb	ecx, edi
		mov	esi, edx
		mov	edi, ecx
		mov	ecx, [ebp+var_60]
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aDtnameCalcdelt ; "DTName\tCalcDelta calls\tCalcDelta	ms\tEnc"...
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+60h]
		movzx	ebx, word ptr ds:_ZL15g_DTISendTables+0Ch
		cmp	ebx, 0FFFFh
		jz	loc_F3F32
		mov	ecx, dword ptr ds:_ZL15g_DTISendTables ; g_DTISendTables
		mov	dword ptr [ebp+var_48],	ebx
		mov	edx, ebx
		mov	dword ptr [ebp+var_80],	0
		xor	ebx, ebx
		mov	dword ptr [ebp+var_80+4], 0
		mov	dword ptr [ebp+var_78],	0
		mov	[ebp+var_30], ecx
		xor	ecx, ecx
		mov	dword ptr [ebp+var_78+4], 0
		mov	dword ptr [ebp+var_38],	0
		mov	dword ptr [ebp+var_38+4], 0
		mov	dword ptr [ebp+var_40],	0
		mov	dword ptr [ebp+var_40+4], 0
		mov	dword ptr [ebp+var_50],	esi
		mov	dword ptr [ebp+var_50+4], edi
		nop
		lea	esi, [esi+0]

loc_F3930:				; CODE XREF: ServerDTI_Flush(void)+12Cj
		mov	eax, [ebp+var_30]
		lea	edx, [eax+edx*8]
		mov	eax, [edx]
		movzx	edx, word ptr [edx+6]
		mov	esi, [eax+10h]
		mov	edi, [eax+14h]
		add	dword ptr [ebp+var_78],	esi
		mov	esi, [eax+1Ch]
		adc	dword ptr [ebp+var_78+4], edi
		add	dword ptr [ebp+var_38],	esi
		mov	edi, [eax+20h]
		mov	esi, [eax+28h]
		adc	dword ptr [ebp+var_38+4], edi
		add	dword ptr [ebp+var_40],	esi
		mov	edi, [eax+2Ch]
		adc	dword ptr [ebp+var_40+4], edi
		add	ecx, [eax+34h]
		adc	ebx, [eax+38h]
		cmp	edx, 0FFFFh
		jnz	short loc_F3930
		mov	edi, dword ptr [ebp+var_50+4]
		mov	dword ptr [ebp+var_80],	ecx
		mov	esi, dword ptr [ebp+var_50]
		mov	dword ptr [ebp+var_80+4], ebx
		mov	ecx, [ebp+var_30]
		mov	ebx, dword ptr [ebp+var_48]
		movd	xmm1, edi
		test	edi, edi
		movd	xmm0, esi
		punpckldq xmm0,	xmm1
		movq	[ebp+var_20], xmm0
		fild	[ebp+var_20]
		js	loc_F3F67

loc_F399C:				; CODE XREF: ServerDTI_Flush(void)+72Dj
		mov	eax, ebx
		fstp	[ebp+var_68]
		jmp	loc_F3B54
; ---------------------------------------------------------------------------
		align 10h

loc_F39B0:				; CODE XREF: ServerDTI_Flush(void)+323j
		mov	ecx, [edx+30h]
		mov	esi, [edx+24h]
		mov	[ebp+var_5C], ecx
		mov	[ebp+var_28], esi

loc_F39BC:				; CODE XREF: ServerDTI_Flush(void)+33Dj
					; ServerDTI_Flush(void)+6B6j
		mov	esi, [edx+1Ch]
		mov	edi, [edx+20h]
		mov	eax, ds:g_pFileSystem
		fld	qword ptr ds:g_ClockSpeedMillisecondsMultiplier
		mov	dword ptr [ebp+var_48],	esi
		mov	esi, [edx+10h]
		mov	dword ptr [ebp+var_48+4], edi
		mov	edi, [edx+14h]
		mov	eax, [eax]
		mov	dword ptr [ebp+var_50],	esi
		mov	esi, [edx+28h]
		mov	dword ptr [ebp+var_50+4], edi
		mov	edi, [edx+2Ch]
		mov	eax, [eax+60h]
		mov	dword ptr [ebp+var_58],	esi
		mov	esi, dword ptr [ebp+var_50]
		mov	dword ptr [ebp+var_58+4], edi
		mov	edi, dword ptr [ebp+var_50+4]
		mov	[ebp+var_6C], eax
		add	esi, dword ptr [ebp+var_48]
		adc	edi, dword ptr [ebp+var_48+4]
		add	esi, dword ptr [ebp+var_58]
		adc	edi, dword ptr [ebp+var_58+4]
		movd	xmm0, esi
		movd	xmm1, edi
		test	edi, edi
		punpckldq xmm0,	xmm1
		movq	[ebp+var_20], xmm0
		fild	[ebp+var_20]
		js	loc_F3F27

loc_F3A21:				; CODE XREF: ServerDTI_Flush(void)+6EDj
		mov	eax, [edx+40h]
		fmul	st, st(1)
		mov	[ebp+var_24], eax
		add	eax, [edx+3Ch]
		fld	ds:flt_1F3198
		fld	st(1)
		fmul	st, st(1)
		fld	[ebp+var_68]
		fmul	st, st(4)
		fdivp	st(1), st
		fild	[ebp+var_24]
		mov	[ebp+var_24], eax
		fmulp	st(2), st
		mov	eax, [edx+38h]
		test	eax, eax
		fild	[ebp+var_24]
		fdivp	st(2), st
		fild	qword ptr [edx+34h]
		js	loc_F3F1C

loc_F3A58:				; CODE XREF: ServerDTI_Flush(void)+6E2j
		mov	eax, dword ptr [ebp+var_58+4]
		fmul	st, st(4)
		test	eax, eax
		fild	[ebp+var_58]
		js	loc_F3F11

loc_F3A68:				; CODE XREF: ServerDTI_Flush(void)+6D7j
		mov	eax, dword ptr [ebp+var_48+4]
		fmul	st, st(5)
		test	eax, eax
		fild	[ebp+var_48]
		js	loc_F3F06

loc_F3A78:				; CODE XREF: ServerDTI_Flush(void)+6CCj
		mov	eax, dword ptr [ebp+var_50+4]
		fmul	st, st(6)
		test	eax, eax
		fild	[ebp+var_50]
		js	loc_F3EFB

loc_F3A88:				; CODE XREF: ServerDTI_Flush(void)+6C1j
		mov	[esp], edx
		fmulp	st(7), st
		fxch	st(5)
		fstp	[ebp+var_98]
		fxch	st(5)
		fstp	[ebp+var_A8]
		fxch	st(3)
		fstp	[ebp+var_B8]
		fxch	st(3)
		fstp	[ebp+var_C8]
		fxch	st(1)
		fstp	[ebp+var_F8]
		fxch	st(1)
		fstp	[ebp+var_D8]
		fstp	[ebp+var_E8]
		call	_ZNK10CUtlString3GetEv ; CUtlString::Get(void)
		mov	ecx, [ebp+var_28]
		mov	dword ptr [esp+8], offset aSD_3fD_3fD_3f_ ; "%s\t%d\t%.3f\t%d\t%.3f\t%d\t%.3f\t%.3f\t%.2f\t%."...
		fld	[ebp+var_D8]
		mov	[esp+0Ch], eax
		fstp	qword ptr [esp+4Ch]
		mov	eax, [ebp+var_60]
		fld	[ebp+var_98]
		mov	[esp+10h], ebx
		fstp	qword ptr [esp+44h]
		mov	edx, [ebp+var_5C]
		fld	[ebp+var_E8]
		mov	[esp+1Ch], ecx
		fstp	qword ptr [esp+3Ch]
		fld	[ebp+var_F8]
		mov	[esp+4], eax
		fstp	qword ptr [esp+34h]
		mov	eax, ds:g_pFileSystem
		fld	[ebp+var_C8]
		mov	[esp+28h], edx
		fstp	qword ptr [esp+2Ch]
		fld	[ebp+var_B8]
		fstp	qword ptr [esp+20h]
		fld	[ebp+var_A8]
		mov	[esp], eax
		fstp	qword ptr [esp+14h]
		call	[ebp+var_6C]
		mov	ecx, dword ptr ds:_ZL15g_DTISendTables ; g_DTISendTables
		mov	eax, [ebp+var_30]
		add	eax, ecx

loc_F3B49:				; CODE XREF: ServerDTI_Flush(void)+6B0j
		movzx	eax, word ptr [eax+6]
		cmp	eax, 0FFFFh
		jz	short loc_F3B82

loc_F3B54:				; CODE XREF: ServerDTI_Flush(void)+161j
		shl	eax, 3
		mov	[ebp+var_30], eax
		add	eax, ecx
		mov	edx, [eax]
		mov	ebx, [edx+18h]
		test	ebx, ebx
		jnz	loc_F39B0
		mov	edi, [edx+24h]
		test	edi, edi
		mov	[ebp+var_28], edi
		jz	loc_F3EE8
		mov	ecx, [edx+30h]
		mov	[ebp+var_5C], ecx
		jmp	loc_F39BC
; ---------------------------------------------------------------------------

loc_F3B82:				; CODE XREF: ServerDTI_Flush(void)+312j
		mov	eax, dword ptr [ebp+var_78+4]
		fild	[ebp+var_78]
		test	eax, eax
		js	loc_F3F7D

loc_F3B90:				; CODE XREF: ServerDTI_Flush(void)+743j
		mov	edi, dword ptr [ebp+var_38+4]
		fild	[ebp+var_38]
		test	edi, edi
		js	loc_F3F72

loc_F3B9E:				; CODE XREF: ServerDTI_Flush(void)+738j
		mov	esi, dword ptr [ebp+var_40+4]
		fild	[ebp+var_40]
		test	esi, esi
		js	loc_F3F5C

loc_F3BAC:				; CODE XREF: ServerDTI_Flush(void)+722j
		mov	ebx, dword ptr [ebp+var_80+4]
		fild	[ebp+var_80]
		test	ebx, ebx
		jns	short loc_F3BBC
		fadd	ds:flt_1F6CC4

loc_F3BBC:				; CODE XREF: ServerDTI_Flush(void)+374j
					; ServerDTI_Flush(void)+717j
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ebp+var_60]
		mov	edx, [eax]
		fstp	[ebp+var_98]
		fstp	[ebp+var_A8]
		fstp	[ebp+var_B8]
		mov	[esp+4], ecx
		fstp	[ebp+var_C8]
		mov	dword ptr [esp+8], (offset aConsoleHistory+1Bh)
		mov	[esp], eax
		call	dword ptr [edx+60h]
		mov	eax, ds:g_pFileSystem
		fld	[ebp+var_68]
		fmul	qword ptr ds:g_ClockSpeedMillisecondsMultiplier
		mov	esi, [ebp+var_60]
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aTotalProfileMs ; "Total profile ms:\t%.3f\n"
		mov	[esp], eax
		mov	[esp+4], esi
		fstp	qword ptr [esp+0Ch]
		call	dword ptr [edx+60h]
		mov	eax, ds:g_pFileSystem
		fld	qword ptr ds:g_ClockSpeedMillisecondsMultiplier
		fld	[ebp+var_C8]
		fmul	st, st(1)
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aTotalCalcdelta ; "Total CalcDelta ms:\t%.3f\tPercent:\t%.3f\n"...
		mov	[esp+4], esi
		mov	[esp], eax
		fld	ds:dbl_1F6CD0
		fmul	st, st(1)
		fxch	st(2)
		fmul	[ebp+var_68]
		fdivp	st(2), st
		fxch	st(1)
		fstp	qword ptr [esp+14h]
		fstp	qword ptr [esp+0Ch]
		call	dword ptr [edx+60h]
		mov	eax, ds:g_pFileSystem
		fld	qword ptr ds:g_ClockSpeedMillisecondsMultiplier
		fld	[ebp+var_B8]
		fmul	st, st(1)
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aTotalEncodeMs_ ; "Total Encode ms:\t%.3f\tPercent:\t%.3f\n"
		mov	[esp+4], esi
		mov	[esp], eax
		fld	ds:dbl_1F6CD0
		fmul	st, st(1)
		fxch	st(2)
		fmul	[ebp+var_68]
		fdivp	st(2), st
		fxch	st(1)
		fstp	qword ptr [esp+14h]
		fstp	qword ptr [esp+0Ch]
		call	dword ptr [edx+60h]
		mov	eax, ds:g_pFileSystem
		fld	qword ptr ds:g_ClockSpeedMillisecondsMultiplier
		fld	[ebp+var_A8]
		fmul	st, st(1)
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aTotalShouldtra ; "Total ShouldTransmit ms:\t%.3f\tPercent:\t"...
		mov	[esp+4], esi
		mov	[esp], eax
		fld	ds:dbl_1F6CD0
		fmul	st, st(1)
		fxch	st(2)
		fmul	[ebp+var_68]
		fdivp	st(2), st
		fxch	st(1)
		fstp	qword ptr [esp+14h]
		fstp	qword ptr [esp+0Ch]
		call	dword ptr [edx+60h]
		mov	eax, ds:g_pFileSystem
		fld	qword ptr ds:g_ClockSpeedMillisecondsMultiplier
		fld	[ebp+var_98]
		fmul	st, st(1)
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aTotalWritedelt ; "Total WriteDeltaProps ms:\t%.3f\tPercent:"...
		mov	[esp+4], esi
		mov	[esp], eax
		fld	ds:dbl_1F6CD0
		fmul	st, st(1)
		fxch	st(2)
		fmul	[ebp+var_68]
		fdivp	st(2), st
		fxch	st(1)
		fstp	qword ptr [esp+14h]
		fstp	qword ptr [esp+0Ch]
		call	dword ptr [edx+60h]
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		mov	eax, ds:_ZL20g_pServerDTIFilename ; g_pServerDTIFilename
		mov	dword ptr [esp], offset	aDtiWroteDeltaD	; "DTI:	Wrote delta distances into %s.\n"
		mov	[esp+4], eax
		call	Msg

loc_F3D43:				; CODE XREF: ServerDTI_Flush(void)+58j
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	dword ptr [esp+0Ch], offset aLogdir ; "LOGDIR"
		mov	dword ptr [esp+8], offset aWt ;	"wt"
		mov	dword ptr [esp+4], offset aDti_delta_dist ; "dti_delta_distances.txt"
		mov	[esp], edx
		call	dword ptr [eax+8]
		test	eax, eax
		mov	esi, eax
		jz	loc_F3ED6
		mov	eax, ds:g_pFileSystem
		mov	ebx, 0C8h
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aClassname ; "ClassName"
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+60h]
		lea	esi, [esi+0]

loc_F3D98:				; CODE XREF: ServerDTI_Flush(void)+581j
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	[esp+0Ch], ebx
		add	ebx, 0C8h
		mov	dword ptr [esp+8], offset aD_0 ; "\t<%d"
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+60h]
		cmp	ebx, 2008h
		jnz	short loc_F3D98
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	dword ptr [esp+8], (offset aConsoleHistory+1Ch)
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+60h]
		movzx	eax, word ptr ds:_ZL15g_DTISendTables+0Ch
		cmp	eax, 0FFFFh
		jz	loc_F3EAD
		mov	edx, dword ptr ds:_ZL15g_DTISendTables ; g_DTISendTables
		lea	esi, [esi+0]

loc_F3DF8:				; CODE XREF: ServerDTI_Flush(void)+667j
		shl	eax, 3
		mov	[ebp+var_30], eax
		add	eax, edx
		mov	edi, [eax]
		mov	ecx, [edi+18h]
		test	ecx, ecx
		jnz	short loc_F3E20
		mov	ebx, [edi+24h]
		test	ebx, ebx
		jnz	short loc_F3E20
		mov	ecx, [edi+30h]
		test	ecx, ecx
		jz	loc_F3E9E
		nop
		lea	esi, [esi+0]

loc_F3E20:				; CODE XREF: ServerDTI_Flush(void)+5C7j
					; ServerDTI_Flush(void)+5CEj
		mov	eax, ds:g_pFileSystem
		mov	eax, [eax]
		mov	ebx, [eax+60h]
		mov	[esp], edi
		call	_ZNK10CUtlString3GetEv ; CUtlString::Get(void)
		mov	dword ptr [esp+8], (offset aDFS+9)
		mov	[esp+0Ch], eax
		mov	eax, ds:g_pFileSystem
		mov	[esp+4], esi
		mov	[esp], eax
		call	ebx
		xor	ebx, ebx
		db	66h
		nop

loc_F3E50:				; CODE XREF: ServerDTI_Flush(void)+638j
		mov	eax, ds:g_pFileSystem
		movzx	ecx, word ptr [edi+ebx*2+44h]
		add	ebx, 1
		mov	edx, [eax]
		mov	dword ptr [esp+8], offset aD_1 ; "\t%d"
		mov	[esp+0Ch], ecx
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+60h]
		cmp	ebx, 28h
		jnz	short loc_F3E50
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	dword ptr [esp+8], (offset aConsoleHistory+1Ch)
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+60h]
		mov	edx, dword ptr ds:_ZL15g_DTISendTables ; g_DTISendTables
		mov	eax, [ebp+var_30]
		add	eax, edx

loc_F3E9E:				; CODE XREF: ServerDTI_Flush(void)+5D5j
		movzx	eax, word ptr [eax+6]
		cmp	eax, 0FFFFh
		jnz	loc_F3DF8

loc_F3EAD:				; CODE XREF: ServerDTI_Flush(void)+5A8j
		mov	eax, ds:g_pFileSystem
		lea	edx, [eax+4]
		mov	eax, [eax+4]
		mov	[esp+4], esi
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		mov	dword ptr [esp+4], offset aDti_delta_dist ; "dti_delta_distances.txt"
		mov	dword ptr [esp], offset	aDtiWroteInstru	; "DTI:	Wrote instrumentation data into	%s"...
		call	Msg

loc_F3ED6:				; CODE XREF: ServerDTI_Flush(void)+14j
					; ServerDTI_Flush(void)+530j
		add	esp, 14Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F3EE8:				; CODE XREF: ServerDTI_Flush(void)+331j
		mov	esi, [edx+30h]
		test	esi, esi
		mov	[ebp+var_5C], esi
		jz	loc_F3B49
		jmp	loc_F39BC
; ---------------------------------------------------------------------------

loc_F3EFB:				; CODE XREF: ServerDTI_Flush(void)+242j
		fadd	ds:flt_1F6CC4
		jmp	loc_F3A88
; ---------------------------------------------------------------------------

loc_F3F06:				; CODE XREF: ServerDTI_Flush(void)+232j
		fadd	ds:flt_1F6CC4
		jmp	loc_F3A78
; ---------------------------------------------------------------------------

loc_F3F11:				; CODE XREF: ServerDTI_Flush(void)+222j
		fadd	ds:flt_1F6CC4
		jmp	loc_F3A68
; ---------------------------------------------------------------------------

loc_F3F1C:				; CODE XREF: ServerDTI_Flush(void)+212j
		fadd	ds:flt_1F6CC4
		jmp	loc_F3A58
; ---------------------------------------------------------------------------

loc_F3F27:				; CODE XREF: ServerDTI_Flush(void)+1DBj
		fadd	ds:flt_1F6CC4
		jmp	loc_F3A21
; ---------------------------------------------------------------------------

loc_F3F32:				; CODE XREF: ServerDTI_Flush(void)+95j
		movd	xmm0, esi
		movd	xmm1, edi
		test	edi, edi
		punpckldq xmm0,	xmm1
		movq	[ebp+var_20], xmm0
		fild	[ebp+var_20]
		js	short loc_F3F88

loc_F3F4A:				; CODE XREF: ServerDTI_Flush(void)+74Ej
		fstp	[ebp+var_68]
		fldz
		fld	st
		fld	st(1)
		fld	st(2)
		fxch	st(2)
		jmp	loc_F3BBC
; ---------------------------------------------------------------------------

loc_F3F5C:				; CODE XREF: ServerDTI_Flush(void)+366j
		fadd	ds:flt_1F6CC4
		jmp	loc_F3BAC
; ---------------------------------------------------------------------------

loc_F3F67:				; CODE XREF: ServerDTI_Flush(void)+156j
		fadd	ds:flt_1F6CC4
		jmp	loc_F399C
; ---------------------------------------------------------------------------

loc_F3F72:				; CODE XREF: ServerDTI_Flush(void)+358j
		fadd	ds:flt_1F6CC4
		jmp	loc_F3B9E
; ---------------------------------------------------------------------------

loc_F3F7D:				; CODE XREF: ServerDTI_Flush(void)+34Aj
		fadd	ds:flt_1F6CC4
		jmp	loc_F3B90
; ---------------------------------------------------------------------------

loc_F3F88:				; CODE XREF: ServerDTI_Flush(void)+708j
		fadd	ds:flt_1F6CC4
		jmp	short loc_F3F4A
_Z15ServerDTI_Flushv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl ServerDTI_AddEntityEncodeEvent(int, float)
_Z30ServerDTI_AddEntityEncodeEventP9SendTablef proc near
					; CODE XREF: SV_DetermineUpdateType(CEntityWriteInfo &)+C4Dp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short locret_F3FD3
		mov	ecx, [eax+90h]
		test	ecx, ecx
		jz	short locret_F3FD3
		fld	[ebp+arg_4]
		mov	edx, 27h
		fmul	ds:flt_1F6CC8
		fstp	[ebp+var_4]
		cvttss2si eax, [ebp+var_4]
		cmp	eax, 27h
		cmovle	edx, eax
		xor	eax, eax
		test	edx, edx
		cmovns	eax, edx
		add	word ptr [ecx+eax*2+44h], 1

locret_F3FD3:				; CODE XREF: ServerDTI_AddEntityEncodeEvent(SendTable *,float)+Ej
					; ServerDTI_AddEntityEncodeEvent(SendTable *,float)+18j
		leave
		retn
_Z30ServerDTI_AddEntityEncodeEventP9SendTablef endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; _ServerDTI_HookTimer(SendTable  const*, ServerDTITimerType, CCycleCount  const&)
_Z20_ServerDTI_HookTimerPK9SendTable18ServerDTITimerTypeRK11CCycleCount	proc near
					; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+3F3p
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+48Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_F403F
		mov	ecx, [eax+90h]
		test	ecx, ecx
		jz	short loc_F403F
		cmp	_ZL17g_bFirstHookTimer,	0 ; g_bFirstHookTimer
		jz	short loc_F4018
		rdtsc
		mov	_ZL17g_bFirstHookTimer,	0 ; g_bFirstHookTimer
		mov	dword ptr ds:_ZL16g_ServerDTITimer, eax	; g_ServerDTITimer
		mov	dword ptr ds:_ZL16g_ServerDTITimer+4, edx

loc_F4018:				; CODE XREF: _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount  const&)+22j
		mov	eax, [ebp+arg_8]
		mov	edx, [eax+4]
		mov	eax, [eax]
		add	dword ptr ds:_ZL22g_TotalServerDTICycles, eax ;	g_TotalServerDTICycles
		adc	dword ptr ds:_ZL22g_TotalServerDTICycles+4, edx
		test	ebx, ebx
		jz	short loc_F4048
		cmp	ebx, 1
		jz	short loc_F4068
		cmp	ebx, 2
		jz	short loc_F4078
		cmp	ebx, 3
		jz	short loc_F4058

loc_F403F:				; CODE XREF: _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount  const&)+Fj
					; _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount	 const&)+19j ...
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F4048:				; CODE XREF: _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount  const&)+4Ej
		add	[ecx+10h], eax
		adc	[ecx+14h], edx
		add	dword ptr [ecx+18h], 1
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F4058:				; CODE XREF: _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount  const&)+5Dj
		add	[ecx+34h], eax
		adc	[ecx+38h], edx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F4068:				; CODE XREF: _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount  const&)+53j
		add	[ecx+1Ch], eax
		adc	[ecx+20h], edx
		add	dword ptr [ecx+24h], 1
		jmp	short loc_F403F
; ---------------------------------------------------------------------------
		align 8

loc_F4078:				; CODE XREF: _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount  const&)+58j
		add	[ecx+28h], eax
		adc	[ecx+2Ch], edx
		add	dword ptr [ecx+30h], 1
		jmp	short loc_F403F
_Z20_ServerDTI_HookTimerPK9SendTable18ServerDTITimerTypeRK11CCycleCount	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; _ServerDTI_RegisterNetworkStateChange(SendTable *, bool)
_Z37_ServerDTI_RegisterNetworkStateChangeP9SendTableb proc near

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		movzx	edx, [ebp+arg_4]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_F40B3
		mov	eax, [eax+90h]
		test	eax, eax
		jz	short loc_F40B3
		test	dl, dl
		jnz	short loc_F40B8
		add	dword ptr [eax+40h], 1

loc_F40B3:				; CODE XREF: _ServerDTI_RegisterNetworkStateChange(SendTable *,bool)+Fj
					; _ServerDTI_RegisterNetworkStateChange(SendTable *,bool)+19j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_F40B8:				; CODE XREF: _ServerDTI_RegisterNetworkStateChange(SendTable *,bool)+1Dj
		add	dword ptr [eax+3Ch], 1
		pop	ebp
		retn
_Z37_ServerDTI_RegisterNetworkStateChangeP9SendTableb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ServerDTI_Term(void)
_Z14ServerDTI_Termv proc near		; CODE XREF: Host_Shutdown(void)+26Fj
		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ecx, ds:_ZL20g_pServerDTIFilename ; g_pServerDTIFilename
		test	ecx, ecx
		jz	loc_F417C
		call	_Z15ServerDTI_Flushv ; ServerDTI_Flush(void)
		movzx	esi, word ptr ds:_ZL15g_DTISendTables+0Ch

loc_F40E2:				; CODE XREF: ServerDTI_Term(void)+3Cj
		cmp	si, 0FFFFh
		jz	short loc_F412E

loc_F40E8:				; CODE XREF: ServerDTI_Term(void)+6Cj
		mov	edx, dword ptr ds:_ZL15g_DTISendTables ; g_DTISendTables
		movzx	eax, si
		lea	eax, [edx+eax*8]
		mov	ebx, [eax]
		movzx	esi, word ptr [eax+6]
		test	ebx, ebx
		jz	short loc_F40E2
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_F4120
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F4119
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_F4119:				; CODE XREF: ServerDTI_Term(void)+49j
		mov	dword ptr [ebx+4], 0

loc_F4120:				; CODE XREF: ServerDTI_Term(void)+43j
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		cmp	si, 0FFFFh
		jnz	short loc_F40E8

loc_F412E:				; CODE XREF: ServerDTI_Term(void)+26j
		mov	dword ptr [esp], offset	_ZL15g_DTISendTables ; g_DTISendTables
		call	_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::RemoveAll(void)
		mov	dword ptr [esp], offset	_ZL15g_DTISendTables ; g_DTISendTables
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTISendTabletEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Purge(void)
		mov	eax, dword ptr ds:_ZL15g_DTISendTables ; g_DTISendTables
		mov	word ptr ds:_ZL15g_DTISendTables+10h, 0FFFFh
		mov	word ptr ds:_ZL15g_DTISendTables+14h, 0
		mov	word ptr ds:_ZL15g_DTISendTables+16h, 0FFFFh
		mov	ds:_ZL20g_pServerDTIFilename, 0	; g_pServerDTIFilename
		mov	dword ptr ds:_ZL15g_DTISendTables+18h, eax
		mov	ds:g_bServerDTIEnabled,	0

loc_F417C:				; CODE XREF: ServerDTI_Term(void)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_Z14ServerDTI_Termv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; ServerDTI_HookTable(SendTable	*)
_Z19ServerDTI_HookTableP9SendTable proc	near
					; CODE XREF: SendTable_Init(SendTable **,int)+6Fp

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	ebx
		sub	esp, 20h
		cmp	ds:g_bServerDTIEnabled,	0
		jz	loc_F4280
		mov	dword ptr [esp], 94h
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	[esp], eax
		call	_ZN10CUtlStringC2Ev ; CUtlString::CUtlString(void)
		test	bl, 1
		mov	dword ptr [ebx+10h], 0
		mov	edi, ebx
		mov	dword ptr [ebx+14h], 0
		mov	edx, 94h
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 0
		mov	dword ptr [ebx+28h], 0
		mov	dword ptr [ebx+2Ch], 0
		mov	dword ptr [ebx+34h], 0
		mov	dword ptr [ebx+38h], 0
		mov	[ebp+var_C], ebx
		jnz	loc_F42A0

loc_F4206:				; CODE XREF: ServerDTI_HookTable(SendTable *)+118j
		test	edi, 2
		jnz	loc_F4290

loc_F4212:				; CODE XREF: ServerDTI_HookTable(SendTable *)+10Bj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jnz	short loc_F4268
		and	edx, 1
		jnz	short loc_F4260

loc_F4225:				; CODE XREF: ServerDTI_HookTable(SendTable *)+D3j
					; ServerDTI_HookTable(SendTable	*)+E3j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[esp+4], eax	; s
		mov	eax, [ebp+var_C]
		mov	[esp], eax	; int
		call	_ZN10CUtlString3SetEPKc	; CUtlString::Set(char	const*)
		lea	eax, [ebp+var_C]
		mov	dword ptr [esp+4], 0FFFFh
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	_ZL15g_DTISendTables ; g_DTISendTables
		call	_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)
		mov	eax, [ebp+var_C]
		add	esp, 20h
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4260:				; CODE XREF: ServerDTI_HookTable(SendTable *)+93j
					; ServerDTI_HookTable(SendTable	*)+E5j
		mov	byte ptr [edi],	0
		jmp	short loc_F4225
; ---------------------------------------------------------------------------
		align 4

loc_F4268:				; CODE XREF: ServerDTI_HookTable(SendTable *)+8Ej
		mov	word ptr [edi],	0
		add	edi, 2
		and	edx, 1
		jz	short loc_F4225
		jmp	short loc_F4260
; ---------------------------------------------------------------------------
		align 10h

loc_F4280:				; CODE XREF: ServerDTI_HookTable(SendTable *)+Fj
		add	esp, 20h
		xor	eax, eax
		pop	ebx
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4290:				; CODE XREF: ServerDTI_HookTable(SendTable *)+7Cj
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_F4212
; ---------------------------------------------------------------------------

loc_F42A0:				; CODE XREF: ServerDTI_HookTable(SendTable *)+70j
		mov	byte ptr [ebx],	0
		add	edi, 1
		mov	dl, 93h
		jmp	loc_F4206
_Z19ServerDTI_HookTableP9SendTable endp

; ---------------------------------------------------------------------------
		mov	edi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], edi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTISendTabletEtE5PurgeEv proc	near
					; CODE XREF: ServerDTI_Term(void)+81p
					; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::~CUtlLinkedList()+1Aj

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_F42EC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F42E5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_F42E5:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_F42EC:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTISendTabletEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTISendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDTISendTable *, unsigned short>, unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv proc near
					; CODE XREF: ServerDTI_Term(void)+75p
					; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::~CUtlLinkedList()+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	word ptr [ebx+16h], 0FFFFh
		jz	short loc_F4368
		movzx	edx, word ptr [ebx+0Ch]
		cmp	dx, 0FFFFh
		jz	short loc_F4356
		nop
		lea	esi, [esi+0]

loc_F4320:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::RemoveAll(void)+38j
		mov	ecx, [ebx]
		movzx	eax, dx
		lea	eax, [ecx+eax*8]
		movzx	ecx, word ptr [eax+6]
		mov	[eax+4], dx
		cmp	cx, 0FFFFh
		jz	short loc_F4340
		mov	edx, ecx
		jmp	short loc_F4320
; ---------------------------------------------------------------------------
		align 10h

loc_F4340:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::RemoveAll(void)+34j
		movzx	edx, word ptr [ebx+10h]
		mov	[eax+6], dx
		movzx	eax, word ptr [ebx+0Ch]
		cmp	ax, 0FFFFh
		jz	short loc_F4356
		mov	[ebx+10h], ax

loc_F4356:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::RemoveAll(void)+16j
					; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::RemoveAll(void)+50j
		mov	word ptr [ebx+0Ch], 0FFFFh
		mov	word ptr [ebx+0Eh], 0FFFFh
		mov	word ptr [ebx+12h], 0

loc_F4368:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::RemoveAll(void)+Cj
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTISendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDTISendTable *, unsigned short>, unsigned short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_bServerDTIEnabled+27o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::RemoveAll(void)
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTISendTabletEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Purge(void)
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTISendTabletEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_F43F2
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_F4400
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi

loc_F43BE:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+7Cj
					; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+86j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_F43D8
		test	ax, ax
		jnz	short loc_F4420
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jg	short loc_F43F2
		lea	esi, [esi+0]

loc_F43D8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+33j
					; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+99j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jz	short loc_F4450

loc_F43E4:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+BCj
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_F43F2:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+43j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4400:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 4
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_F43BE
		db	66h
		nop

loc_F4410:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_F4410
		jmp	short loc_F43BE
; ---------------------------------------------------------------------------
		align 10h

loc_F4420:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+38j
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_F43F2
		cmp	esi, ecx
		jge	short loc_F43D8
		nop
		lea	esi, [esi+0]

loc_F4430:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+B0j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_F4430
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jnz	short loc_F43E4
		db	66h
		nop

loc_F4450:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)+52j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTISendTabletEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTISendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDTISendTable *, unsigned short>, unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb proc near
					; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)+20p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_F44E0
		mov	edi, [ebx]
		movzx	ecx, ax
		shl	ecx, 3
		add	edi, ecx
		movzx	esi, word ptr [edi+6]
		mov	[ebx+10h], si

loc_F44A2:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+A9j
		test	dl, dl
		jz	short loc_F44C8
		mov	word ptr [edi+6], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+4], 0FFFFh

loc_F44B5:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+136j	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F44C8:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+34j
		mov	[edi+6], ax
		mov	edx, [ebx]
		mov	[edx+ecx+4], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F44E0:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_F4520
		test	ecx, ecx
		jz	short loc_F4540
		xor	edi, edi
		xor	esi, esi

loc_F44F6:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_F4540

loc_F44FA:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_F45B0
		mov	edi, [ebx]
		movzx	ecx, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		shl	ecx, 3
		mov	eax, esi
		add	edi, ecx
		jmp	short loc_F44A2
; ---------------------------------------------------------------------------
		align 10h

loc_F4520:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_F44F6
; ---------------------------------------------------------------------------
		align 10h

loc_F4540:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP13CDTISendTabletEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_F45E0
		test	ecx, ecx
		jz	short loc_F4580
		xor	edi, edi
		xor	esi, esi

loc_F4578:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_F44FA

loc_F4580:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 9 ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_F44B5
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount, 1 ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_F44B5
; ---------------------------------------------------------------------------
		align 10h

loc_F45B0:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<CDTISendTable	*,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_F44B5
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<CDTISendTable	*,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_F44B5
; ---------------------------------------------------------------------------
		align 10h

loc_F45E0:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_F4578
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTISendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDTISendTable *, unsigned short>, unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt proc near
					; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)+3Bp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_F467A
		cmp	cx, [eax+16h]
		ja	short loc_F467A
		mov	esi, [eax]
		lea	edx, [esi+edx*8]
		cmp	cx, [edx+4]
		jz	short loc_F467A
		movzx	ebx, word ptr [edx+4]
		cmp	bx, 0FFFFh
		jz	short loc_F4690
		movzx	edi, word ptr [edx+6]
		movzx	ebx, bx
		mov	[esi+ebx*8+6], di
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jz	short loc_F46A2

loc_F465F:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::Unlink(ushort)+90j
		movzx	edi, word ptr [edx+4]
		movzx	ebx, bx
		mov	esi, [eax]
		mov	[esi+ebx*8+4], di

loc_F466D:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::Unlink(ushort)+9Aj
		mov	[edx+6], cx
		mov	[edx+4], cx
		sub	word ptr [eax+12h], 1

loc_F467A:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4690:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::Unlink(ushort)+37j
		movzx	ebx, word ptr [edx+6]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jnz	short loc_F465F

loc_F46A2:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::Unlink(ushort)+4Dj
		movzx	ebx, word ptr [edx+4]
		mov	[eax+0Eh], bx
		jmp	short loc_F466D
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CDTISendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CDTISendTable *, unsigned short>, unsigned short>>::InsertBefore(unsigned short, CDTISendTable * const&)
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ proc	near
					; CODE XREF: ServerDTI_HookTable(SendTable *)+C0p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::AllocInternal(bool)
		cmp	ax, 0FFFFh
		jz	short loc_F473B
		movzx	edx, ax
		mov	[ebp+var_1C], eax
		mov	[esp+4], edx
		mov	[ebp+var_20], edx
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::Unlink(ushort)
		mov	edx, [ebp+var_20]
		mov	ecx, [ebx]
		shl	edx, 3
		add	ecx, edx
		cmp	si, 0FFFFh
		mov	[ecx+6], si
		mov	eax, [ebp+var_1C]
		jz	short loc_F4750
		movzx	edi, si
		mov	esi, [ebx]
		lea	edi, [esi+edi*8]
		movzx	esi, word ptr [edi+4]
		mov	[edi+4], ax
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		jz	short loc_F4762

loc_F4721:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)+B0j
		mov	ecx, [ebx]
		movzx	esi, si
		mov	[ecx+esi*8+6], ax

loc_F472B:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)+B6j
		add	word ptr [ebx+12h], 1
		add	edx, [ebx]
		jz	short loc_F473B
		mov	ecx, [ebp+arg_8]
		mov	ecx, [ecx]
		mov	[edx], ecx

loc_F473B:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)+29j
					; CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable	* const&)+82j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4750:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)+55j
		movzx	esi, word ptr [ebx+0Eh]
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		mov	[ebx+0Eh], ax
		jnz	short loc_F4721

loc_F4762:				; CODE XREF: CUtlLinkedList<CDTISendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CDTISendTable *,ushort>,ushort>>::InsertBefore(ushort,CDTISendTable * const&)+6Fj
		mov	[ebx+0Ch], ax
		jmp	short loc_F472B
_ZN14CUtlLinkedListIP13CDTISendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; PrintPartialChangeEntsList(void)
_Z26PrintPartialChangeEntsListv	proc near
					; CODE XREF: SV_ComputeClientPacks(int,CGameClient **,CFrameSnapshot *)+32Ap

var_41C		= dword	ptr -41Ch
arg		= byte ptr -418h
s		= byte ptr -218h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 42Ch
		mov	eax, dword ptr ds:_ZL24dt_ShowPartialChangeEnts+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jnz	short loc_F4798
		add	esp, 42Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F4798:				; CODE XREF: PrintPartialChangeEntsList(void)+16j
		mov	dword ptr [esp+4], offset aDt_showparti_0 ; "----- dt_ShowPartialChangeEnts -----"
		lea	esi, [ebp+arg]
		mov	dword ptr [esp], 0Fh ; int
		call	_Z11Con_NPrintfiPKcz ; Con_NPrintf(int,char  const*,...)
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; format
		mov	dword ptr [esp], 10h ; int
		call	_Z11Con_NPrintfiPKcz ; Con_NPrintf(int,char  const*,...)
		mov	eax, ds:_ZL19g_nTotalPropChanges ; g_nTotalPropChanges
		mov	dword ptr [esp+4], offset aEntChanges3dPr ; "Ent changes: %3d, prop changes: %3d"
		mov	dword ptr [esp], 11h ; int
		mov	[esp+0Ch], eax
		mov	eax, ds:_ZL18g_nTotalEntChanges	; g_nTotalEntChanges
		mov	[esp+8], eax	; arg
		call	_Z11Con_NPrintfiPKcz ; Con_NPrintf(int,char  const*,...)
		mov	dword ptr [esp+4], (offset asc_20E578+4) ; format
		mov	dword ptr [esp], 12h ; int
		call	_Z11Con_NPrintfiPKcz ; Con_NPrintf(int,char  const*,...)
		mov	eax, dword ptr ds:_ZL19g_PartialChangeEnts+0Ch
		mov	[ebp+arg], 0
		test	eax, eax
		jle	loc_F48C0
		lea	edi, [ebp+s]
		xor	ebx, ebx
		mov	ecx, 1
		jmp	short loc_F486D
; ---------------------------------------------------------------------------
		align 8

loc_F4828:				; CODE XREF: PrintPartialChangeEntsList(void)+112j
					; PrintPartialChangeEntsList(void)+148j
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], (offset aD_1+1) ; format
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	[esp], edi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 200h	; int
		mov	[esp+4], edi	; int
		mov	[esp], esi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		xor	ecx, ecx

loc_F4862:				; CODE XREF: PrintPartialChangeEntsList(void)+10Ej
		add	ebx, 1
		cmp	dword ptr ds:_ZL19g_PartialChangeEnts+0Ch, ebx
		jle	short loc_F48C0

loc_F486D:				; CODE XREF: PrintPartialChangeEntsList(void)+B1j
		mov	eax, dword ptr ds:_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		lea	edx, ds:0[ebx*4]
		mov	eax, [eax+ebx*4]
		test	eax, eax
		js	short loc_F4862
		test	cl, cl
		jnz	short loc_F4828
		mov	[ebp+var_41C], edx
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 200h	; int
		mov	dword ptr [esp+4], (offset aS_9+6) ; int
		mov	[esp], esi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	eax, dword ptr ds:_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		mov	edx, [ebp+var_41C]
		mov	eax, [eax+edx]
		jmp	loc_F4828
; ---------------------------------------------------------------------------
		align 10h

loc_F48C0:				; CODE XREF: PrintPartialChangeEntsList(void)+9Ej
					; PrintPartialChangeEntsList(void)+FBj
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 200h	; int
		mov	dword ptr [esp+4], offset aPartial ; " - PARTIAL"
		mov	[esp], esi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	[esp+8], esi	; arg
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	dword ptr [esp], 13h ; int
		call	_Z11Con_NPrintfiPKcz ; Con_NPrintf(int,char  const*,...)
		mov	eax, dword ptr ds:_ZL19g_PartialChangeEnts+0Ch
		mov	[ebp+arg], 0
		test	eax, eax
		jle	loc_F4991
		xor	ebx, ebx
		mov	edx, 1
		jmp	short loc_F4923
; ---------------------------------------------------------------------------
		align 4

loc_F4918:				; CODE XREF: PrintPartialChangeEntsList(void)+1C4j
		add	ebx, 1
		cmp	dword ptr ds:_ZL19g_PartialChangeEnts+0Ch, ebx
		jle	short loc_F4991

loc_F4923:				; CODE XREF: PrintPartialChangeEntsList(void)+1A3j
					; PrintPartialChangeEntsList(void)+21Fj
		mov	eax, dword ptr ds:_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		lea	edi, ds:0[ebx*4]
		mov	eax, [eax+ebx*4]
		test	eax, eax
		jns	short loc_F4918
		test	dl, dl
		jz	loc_F4A10

loc_F493E:				; CODE XREF: PrintPartialChangeEntsList(void)+2C8j
		neg	eax
		mov	dword ptr [esp+8], (offset aD_1+1) ; format
		add	ebx, 1
		mov	[esp+0Ch], eax	; arg
		lea	eax, [ebp+s]
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	[esp], eax	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		lea	eax, [ebp+s]
		mov	[esp], esi	; s
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 200h	; int
		mov	[esp+4], eax	; int
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		xor	edx, edx
		cmp	dword ptr ds:_ZL19g_PartialChangeEnts+0Ch, ebx
		jg	short loc_F4923

loc_F4991:				; CODE XREF: PrintPartialChangeEntsList(void)+196j
					; PrintPartialChangeEntsList(void)+1B1j
		mov	[esp], esi	; s
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 200h	; int
		mov	dword ptr [esp+4], offset aFull	; " -	 FULL"
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	[esp+8], esi	; arg
		mov	dword ptr [esp+4], (offset aDFS+9) ; format
		mov	dword ptr [esp], 14h ; int
		call	_Z11Con_NPrintfiPKcz ; Con_NPrintf(int,char  const*,...)
		mov	dword ptr [esp], offset	_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		mov	dword ptr ds:_ZL19g_PartialChangeEnts+0Ch, 0
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, dword ptr ds:_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		mov	ds:_ZL18g_nTotalEntChanges, 0 ;	g_nTotalEntChanges
		mov	ds:_ZL19g_nTotalPropChanges, 0 ; g_nTotalPropChanges
		mov	dword ptr ds:_ZL19g_PartialChangeEnts+10h, eax
		add	esp, 42Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4A10:				; CODE XREF: PrintPartialChangeEntsList(void)+1C8j
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh	; int
		mov	dword ptr [esp+8], 200h	; int
		mov	dword ptr [esp+4], (offset aS_9+6) ; int
		mov	[esp], esi	; s
		call	_Z9V_strncatPcPKcji ; V_strncat(char *,char  const*,uint,int)
		mov	eax, dword ptr ds:_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		mov	eax, [eax+edi]
		jmp	loc_F493E
_Z26PrintPartialChangeEntsListv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; AddPropOffsetToMap(CSendTablePrecalc *, int, int)
_Z18AddPropOffsetToMapP17CSendTablePrecalcii proc near
					; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+105p
					; BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies  const*)+137p

var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		lea	ebx, [eax+0FCh]
		movzx	eax, word ptr [eax+10Ch]
		mov	[ebp+var_2E], dx
		mov	[ebp+var_1C], dx
		lea	edx, [ebp+var_1C]
		mov	[ebp+var_2C], edx
		cmp	ax, 0FFFFh
		jnz	short loc_F4A92
		jmp	short loc_F4AE6
; ---------------------------------------------------------------------------
		align 8

loc_F4A78:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+75j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F4B10

loc_F4A85:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+DEj
					; AddPropOffsetToMap(CSendTablePrecalc *,int,int)+10Bj
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+edi*4]
		cmp	ax, 0FFFFh
		jz	short loc_F4AE6

loc_F4A92:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+2Ej
					; AddPropOffsetToMap(CSendTablePrecalc *,int,int)+A4j
		movzx	eax, ax
		mov	edx, [ebp+var_2C]
		lea	edi, [eax+eax*2]
		mov	eax, [ebx+4]
		lea	esi, ds:0[edi*4]
		mov	[esp], edx
		add	eax, esi
		add	eax, 8
		mov	[esp+4], eax
		call	dword ptr [ebx]
		test	al, al
		jnz	short loc_F4A78
		mov	edx, [ebp+var_2C]
		mov	[esp+4], edx
		mov	eax, [ebx+4]
		add	eax, esi
		add	eax, 8
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jz	short loc_F4B04
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F4B50

loc_F4AD8:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+11Ej
					; AddPropOffsetToMap(CSendTablePrecalc *,int,int)+14Bj
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+esi+2]
		cmp	ax, 0FFFFh
		jnz	short loc_F4A92

loc_F4AE6:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+30j
					; AddPropOffsetToMap(CSendTablePrecalc *,int,int)+50j
		movzx	edx, [ebp+var_2E]
		mov	[esp], ebx
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], dx
		mov	edx, [ebp+var_2C]
		mov	[ebp+var_1A], ax
		mov	[esp+4], edx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE6InsertERKS2_ ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)

loc_F4B04:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+8Dj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4B10:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+3Fj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F4A85
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F4A85
; ---------------------------------------------------------------------------

loc_F4B50:				; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+96j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F4AD8
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F4AD8
_Z18AddPropOffsetToMapP17CSendTablePrecalcii endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BuildPropOffsetToIndexMap(CSendTablePrecalc *, CStandardSendProxies  const*)
_Z25BuildPropOffsetToIndexMapP17CSendTablePrecalcPK20CStandardSendProxies proc near
					; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+27p

var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		lea	ebx, [ebp+var_13C]
		sub	esp, 15Ch
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	dword ptr [esp+8], 1
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp+4], 0
		mov	edx, [ebp+arg_0]
		mov	[esp], ebx
		mov	[ebp+var_13C], (offset _ZTV13CPropMapStack+8)
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], edx
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+38h]
		test	ecx, ecx
		jle	loc_F4CE9
		xor	edi, edi
		mov	esi, esi
		lea	edi, [edi+0]

loc_F4C00:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+153j
		mov	eax, [ebp+var_138]
		mov	[ebp+var_30], edi
		mov	edx, [eax+2Ch]
		mov	edx, [edx+edi*4]
		mov	[ebp+var_2C], edx
		mov	eax, [eax+40h]
		movzx	eax, byte ptr [eax+edi]
		mov	ebx, [ebp+eax*4+var_134]
		test	ebx, ebx
		jz	loc_F4CDA
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		mov	eax, [eax+edi*4]
		mov	edx, eax
		mov	[ebp+var_14C], eax
		mov	eax, [eax+48h]
		cmp	dword ptr [edx+8], 5
		jz	loc_F4CF8
		mov	[ebp+var_150], 1
		lea	ebx, [ebx+eax-1]
		xor	eax, eax

loc_F4C56:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+183j
		test	ebx, ebx
		jz	loc_F4CDA
		mov	edx, [ebp+var_150]
		test	edx, edx
		jle	short loc_F4CDA
		mov	edx, edi
		mov	[ebp+var_154], edi
		xor	esi, esi
		or	dh, 80h
		mov	edi, eax
		mov	[ebp+var_158], edx
		jmp	short loc_F4CA2
; ---------------------------------------------------------------------------
		align 10h

loc_F4C80:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+120j
		mov	edx, [ebp+var_158]
		add	esi, 1
		add	ebx, edi
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edx
		mov	[esp], eax
		call	_Z18AddPropOffsetToMapP17CSendTablePrecalcii ; AddPropOffsetToMap(CSendTablePrecalc *,int,int)
		cmp	esi, [ebp+var_150]
		jz	short loc_F4CD4

loc_F4CA2:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+EDj
					; BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies  const*)+142j
		mov	eax, [ebp+var_14C]
		test	byte ptr [eax+39h], 8
		mov	[esp+8], ebx
		jnz	short loc_F4C80
		mov	edx, [ebp+var_154]
		add	esi, 1
		add	ebx, edi
		mov	eax, [ebp+arg_0]
		mov	[esp+4], edx
		mov	[esp], eax
		call	_Z18AddPropOffsetToMapP17CSendTablePrecalcii ; AddPropOffsetToMap(CSendTablePrecalc *,int,int)
		cmp	esi, [ebp+var_150]
		jnz	short loc_F4CA2

loc_F4CD4:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+110j
		mov	edi, [ebp+var_154]

loc_F4CDA:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+92j
					; BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies  const*)+C8j ...
		mov	edx, [ebp+arg_0]
		add	edi, 1
		cmp	[edx+38h], edi
		jg	loc_F4C00

loc_F4CE9:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+5Fj
		add	esp, 15Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F4CF8:				; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+B0j
		mov	edx, [ebp+var_14C]
		mov	eax, [edx+18h]
		add	ebx, [eax+48h]
		mov	eax, [edx+20h]
		sub	ebx, 1
		mov	[ebp+var_150], eax
		mov	eax, [edx+24h]
		jmp	loc_F4C56
_Z25BuildPropOffsetToIndexMapP17CSendTablePrecalcPK20CStandardSendProxies endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; LocalTransfer_InitFastCopy(SendTable	const*,	CStandardSendProxies  const*, RecvTable	*, CStandardRecvProxies	 const*, int &,	int &)
_Z26LocalTransfer_InitFastCopyPK9SendTablePK20CStandardSendProxiesP9RecvTablePK20CStandardRecvProxiesRiSA_ proc	near

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+0Ch]
		lea	eax, [esi+0FCh]
		mov	[esp], eax
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE9RemoveAllEv ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RemoveAll(void)
		mov	edx, [ebp+arg_4]
		mov	[esp], esi
		mov	[esp+4], edx
		call	_Z25BuildPropOffsetToIndexMapP17CSendTablePrecalcPK20CStandardSendProxies ; BuildPropOffsetToIndexMap(CSendTablePrecalc	*,CStandardSendProxies	const*)
		mov	eax, [esi+9Ch]
		mov	dword ptr [esi+0A0h], 0
		test	eax, eax
		mov	eax, [esi+94h]
		js	short loc_F4D88
		test	eax, eax
		jz	short loc_F4D7C
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [esi+94h], 0

loc_F4D7C:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+48j
		mov	dword ptr [esi+98h], 0
		xor	eax, eax

loc_F4D88:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+44j
		mov	[esi+0A4h], eax
		mov	eax, [esi+0B0h]
		mov	dword ptr [esi+0B4h], 0
		test	eax, eax
		mov	eax, [esi+0A8h]
		js	short loc_F4DCA
		test	eax, eax
		jz	short loc_F4DBE
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [esi+0A8h], 0

loc_F4DBE:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+8Aj
		mov	dword ptr [esi+0ACh], 0
		xor	eax, eax

loc_F4DCA:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+86j
		mov	[esi+0B8h], eax
		mov	eax, [esi+0C4h]
		mov	dword ptr [esi+0C8h], 0
		test	eax, eax
		mov	eax, [esi+0BCh]
		js	short loc_F4E0C
		test	eax, eax
		jz	short loc_F4E00
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [esi+0BCh], 0

loc_F4E00:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+CCj
		mov	dword ptr [esi+0C0h], 0
		xor	eax, eax

loc_F4E0C:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+C8j
		mov	edi, [esi+0D8h]
		mov	[esi+0CCh], eax
		mov	dword ptr [esi+0DCh], 0
		mov	eax, [esi+0D0h]
		test	edi, edi
		js	short loc_F4E4E
		test	eax, eax
		jz	short loc_F4E42
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [esi+0D0h], 0

loc_F4E42:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+10Ej
		mov	dword ptr [esi+0D4h], 0
		xor	eax, eax

loc_F4E4E:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+10Aj
		mov	ebx, [esi+0ECh]
		mov	[esi+0E0h], eax
		mov	dword ptr [esi+0F0h], 0
		mov	eax, [esi+0E4h]
		test	ebx, ebx
		js	short loc_F4E90
		test	eax, eax
		jz	short loc_F4E84
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [esi+0E4h], 0

loc_F4E84:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+150j
		mov	dword ptr [esi+0E8h], 0
		xor	eax, eax

loc_F4E90:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+14Cj
		mov	ecx, [esi+38h]
		mov	[esi+0F4h], eax
		mov	eax, [ebp+arg_8]
		test	ecx, ecx
		mov	[ebp+var_2C], ecx
		mov	edi, [eax+8]
		jle	loc_F4F2F
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_F4EB0:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+20Dj
		mov	eax, [esi+2Ch]
		cmp	ebx, [edi+12Ch]
		mov	eax, [eax+ebx*4]
		jnb	short loc_F4F27
		mov	edx, [edi+120h]
		mov	edx, [edx+ebx*4]
		test	edx, edx
		mov	[ebp+var_34], edx
		jz	short loc_F4F27
		mov	ecx, [eax+8]
		test	ecx, ecx
		jz	short loc_F4F40
		cmp	ecx, 1
		jnz	loc_F4FF8
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+18h]
		cmp	[eax+3Ch], ecx
		jz	loc_F4FDF
		lea	esi, [esi+0]

loc_F4EF0:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+250j
					; LocalTransfer_InitFastCopy(SendTable	const*,CStandardSendProxies  const*,RecvTable *,CStandardRecvProxies  const*,int &,int &)+261j	...
		mov	edx, [ebp+arg_10]
		lea	ecx, [esi+0E4h]
		add	dword ptr [edx], 1

loc_F4EFC:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+273j
					; LocalTransfer_InitFastCopy(SendTable	const*,CStandardSendProxies  const*,RecvTable *,CStandardRecvProxies  const*,int &,int &)+29Aj	...
		mov	eax, [eax+48h]
		mov	[ebp+var_1A], bx
		mov	edx, [ebp+var_34]
		mov	[ebp+var_1C], ax
		lea	eax, [ebp+var_1E]
		mov	edx, [edx+2Ch]
		mov	[esp+8], eax
		mov	eax, [ecx+0Ch]
		mov	[esp], ecx
		mov	[ebp+var_1E], dx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorI26CFastLocalTransferPropInfo10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<CFastLocalTransferPropInfo,CUtlMemory<CFastLocalTransferPropInfo,int>>::InsertBefore(int,CFastLocalTransferPropInfo const&)

loc_F4F27:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+19Cj
					; LocalTransfer_InitFastCopy(SendTable	const*,CStandardSendProxies  const*,RecvTable *,CStandardRecvProxies  const*,int &,int &)+1ACj
		add	ebx, 1
		cmp	ebx, [ebp+var_2C]
		jnz	short loc_F4EB0

loc_F4F2F:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+184j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F4F40:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+1B3j
		mov	edx, [eax+3Ch]
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_30], edx
		cmp	edx, [ecx+8]
		jz	short loc_F4FA0
		cmp	edx, [ecx+14h]
		jz	short loc_F4FA0

loc_F4F53:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+28Cj
		mov	edx, [ebp+var_30]
		mov	ecx, [ebp+arg_4]
		cmp	edx, [ecx+4]
		jz	short loc_F4FC0
		cmp	edx, [ecx+10h]
		jz	short loc_F4FC0

loc_F4F63:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+2ACj
		mov	edx, [ebp+var_30]
		mov	ecx, [ebp+arg_4]
		cmp	edx, [ecx]
		jz	short loc_F4F76
		cmp	edx, [ecx+0Ch]
		jnz	loc_F4EF0

loc_F4F76:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+24Bj
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx]
		mov	ecx, [ebp+var_34]
		cmp	[ecx+20h], edx
		jnz	loc_F4EF0
		mov	edx, [ebp+arg_14]
		lea	ecx, [esi+0BCh]
		add	dword ptr [edx], 1
		jmp	loc_F4EFC
; ---------------------------------------------------------------------------
		align 10h

loc_F4FA0:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+22Cj
					; LocalTransfer_InitFastCopy(SendTable	const*,CStandardSendProxies  const*,RecvTable *,CStandardRecvProxies  const*,int &,int &)+231j
		mov	edx, [ebp+arg_C]
		mov	ecx, [edx+8]
		mov	edx, [ebp+var_34]
		cmp	[edx+20h], ecx
		jnz	short loc_F4F53

loc_F4FAE:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+2D1j
		mov	edx, [ebp+arg_14]
		lea	ecx, [esi+94h]
		add	dword ptr [edx], 1
		jmp	loc_F4EFC
; ---------------------------------------------------------------------------
		align 10h

loc_F4FC0:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+23Cj
					; LocalTransfer_InitFastCopy(SendTable	const*,CStandardSendProxies  const*,RecvTable *,CStandardRecvProxies  const*,int &,int &)+241j
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+4]
		mov	ecx, [ebp+var_34]
		cmp	[ecx+20h], edx
		jnz	short loc_F4F63
		mov	edx, [ebp+arg_14]
		lea	ecx, [esi+0A8h]
		add	dword ptr [edx], 1
		jmp	loc_F4EFC
; ---------------------------------------------------------------------------

loc_F4FDF:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+1C7j
		mov	edx, [ebp+arg_C]
		mov	ecx, [edx+0Ch]
		mov	edx, [ebp+var_34]
		cmp	[edx+20h], ecx
		jnz	loc_F4EF0
		jmp	short loc_F4FAE
; ---------------------------------------------------------------------------
		align 8

loc_F4FF8:				; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+1B8j
		cmp	ecx, 2
		jnz	loc_F4EF0
		mov	ecx, [ebp+arg_4]
		mov	ecx, [ecx+1Ch]
		cmp	[eax+3Ch], ecx
		jnz	loc_F4EF0
		mov	edx, [ebp+arg_C]
		mov	ecx, [edx+10h]
		mov	edx, [ebp+var_34]
		cmp	[edx+20h], ecx
		jnz	loc_F4EF0
		mov	edx, [ebp+arg_14]
		lea	ecx, [esi+0D0h]
		add	dword ptr [edx], 1
		jmp	loc_F4EFC
_Z26LocalTransfer_InitFastCopyPK9SendTablePK20CStandardSendProxiesP9RecvTablePK20CStandardRecvProxiesRiSA_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; LocalTransfer_TransferEntity(CBaseEdict  const*, SendTable  const*, void  const*, RecvTable *, void *, bool, bool, int)
_Z28LocalTransfer_TransferEntityPK10CBaseEdictPK9SendTablePKvP9RecvTablePvbbi proc near
					; CODE XREF: CLocalNetworkBackdoor::EntState(int,int,int,SendTable  const*,void	 const*,bool,bool)+12Bp
					; CLocalNetworkBackdoor::EntState(int,int,int,SendTable	 const*,void  const*,bool,bool)+19Ep

var_620		= dword	ptr -620h
var_61C		= dword	ptr -61Ch
var_616		= word ptr -616h
var_614		= dword	ptr -614h
var_610		= dword	ptr -610h
var_60C		= dword	ptr -60Ch
var_608		= dword	ptr -608h
var_604		= dword	ptr -604h
var_600		= dword	ptr -600h
var_5FC		= dword	ptr -5FCh
s		= byte ptr -5F8h
var_3F8		= dword	ptr -3F8h
var_3F4		= dword	ptr -3F4h
var_3F0		= dword	ptr -3F0h
var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_2E4		= dword	ptr -2E4h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_1CC		= dword	ptr -1CCh
var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1B8		= dword	ptr -1B8h
var_1B4		= dword	ptr -1B4h
var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A8		= dword	ptr -1A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_94		= dword	ptr -94h
var_8E		= word ptr -8Eh
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= byte ptr  1Ch
arg_18		= byte ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 63Ch
		mov	edx, [ebp+arg_0]
		add	ds:_ZL18g_nTotalEntChanges, 1 ;	g_nTotalEntChanges
		movzx	ebx, [ebp+arg_14]
		movzx	esi, [ebp+arg_18]
		mov	[esp], edx
		mov	edi, g_pSharedChangeInfo
		call	_ZNK10CBaseEdict17GetChangeAccessorEv ;	CBaseEdict::GetChangeAccessor(void)
		mov	ecx, [ebp+arg_0]
		movzx	eax, word ptr [eax]
		mov	[esp], ecx
		mov	word ptr [ebp+var_5FC],	ax
		call	_ZNK10CBaseEdict17GetChangeAccessorEv ;	CBaseEdict::GetChangeAccessor(void)
		mov	edx, g_pSharedChangeInfo
		movzx	ecx, word ptr [eax+2]
		cmp	[edx], cx
		jz	loc_F5523

loc_F5094:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+4E5j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+4EFj ...
		mov	edx, [ebp+arg_4]
		mov	edx, [edx+0Ch]
		test	edx, edx
		mov	[ebp+var_604], edx
		jz	loc_F57A0

loc_F50A8:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+776j
		mov	edx, [ebp+var_604]
		lea	ebx, [ebp+var_2D4]
		mov	esi, [ebp+arg_1C]
		mov	[esp], ebx
		mov	edi, [ebp+arg_8]
		mov	[esp+4], edx
		mov	[esp+0Ch], esi
		mov	[esp+8], edi
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	ecx, [ebp+var_604]
		mov	[esp], ebx
		mov	[ebp+var_2D4], (offset _ZTV21CServerDatatableStack+8)
		mov	[ebp+var_1B4], 0
		mov	dword ptr [esp+4], 0
		mov	[ebp+var_1B8], ecx
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	ebx, [ebp+arg_C]
		mov	ebx, [ebx+8]
		test	ebx, ebx
		mov	[ebp+var_5FC], ebx
		jz	loc_F57BB

loc_F5112:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+791j
		mov	eax, [ebp+var_5FC]
		lea	ebx, [ebp+var_1B0]
		mov	edx, [ebp+arg_10]
		mov	[esp], ebx
		mov	edi, [ebp+arg_1C]
		add	eax, 8
		mov	[esp+8], edx
		mov	[esp+4], eax
		mov	[esp+0Ch], edi
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	ecx, [ebp+var_5FC]
		mov	[esp], ebx
		mov	[ebp+var_1B0], (offset _ZTV21CClientDatatableStack+8)
		mov	dword ptr [esp+4], 0
		mov	[ebp+var_94], ecx
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	edx, [ebp+arg_0]
		mov	eax, dword ptr ds:_ZL24dt_ShowPartialChangeEnts+1Ch
		sub	edx, dword ptr ds:sv+1A8h
		sar	edx, 2
		imul	edx, 0CCCCCCCDh
		mov	[ebp+var_1C], edx
		mov	eax, [eax+30h]
		test	eax, eax
		jz	short loc_F51D0
		mov	ecx, dword ptr ds:_ZL19g_PartialChangeEnts+0Ch
		neg	edx
		mov	[ebp+var_1C], edx
		test	ecx, ecx
		jle	short loc_F51B2
		mov	ebx, dword ptr ds:_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		xor	eax, eax
		cmp	edx, [ebx]
		jnz	short loc_F51A9
		jmp	short loc_F51D0
; ---------------------------------------------------------------------------
		align 10h

loc_F51A0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+170j
		cmp	edx, [ebx+eax*4]
		jz	loc_F5789

loc_F51A9:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+15Bj
		add	eax, 1
		cmp	eax, ecx
		db	66h
		nop
		jnz	short loc_F51A0

loc_F51B2:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+14Fj
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+752j
		lea	eax, [ebp+var_1C]
		mov	[esp+4], ecx
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE12InsertBeforeEiRKi ;	CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int  const&)
		lea	esi, [esi+0]

loc_F51D0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+140j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+15Dj ...
		mov	esi, [ebp+var_604]
		mov	ebx, [ebp+var_604]
		mov	eax, [esi+0F0h]
		mov	ebx, [ebx+0E4h]
		test	eax, eax
		mov	[ebp+var_60C], ebx
		jle	loc_F52D2
		lea	eax, [eax+eax*2]
		xor	ebx, ebx
		add	eax, eax
		mov	[ebp+var_608], eax
		nop
		lea	esi, [esi+0]

loc_F5208:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+28Cj
		mov	edi, [ebp+var_60C]
		mov	edx, [ebp+var_2D0]
		movzx	eax, word ptr [edi+ebx+4]
		mov	[ebp+var_1C8], eax
		mov	ecx, [edx+2Ch]
		mov	ecx, [ecx+eax*4]
		mov	[ebp+var_1C4], ecx
		mov	ecx, [ebp+var_1B8]
		mov	edx, [edx+40h]
		mov	ecx, [ecx+2Ch]
		movzx	edx, byte ptr [edx+eax]
		mov	ecx, [ecx+eax*4]
		mov	[ebp+var_600], ecx
		mov	ecx, [ebp+edx*4+var_2CC]
		test	ecx, ecx
		jz	short loc_F52C3
		mov	esi, [ebp+var_5FC]
		xor	edx, edx
		cmp	eax, [esi+12Ch]
		jnb	short loc_F5268
		mov	edx, [esi+120h]
		mov	edx, [edx+eax*4]

loc_F5268:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+21Dj
		mov	esi, [ebp+var_1AC]
		mov	[ebp+var_A4], eax
		mov	edi, [esi+2Ch]
		mov	edi, [edi+eax*4]
		mov	[ebp+var_A0], edi
		mov	edi, [edx+4]
		lea	edi, [edi+edi*8]
		mov	[ebp+var_610], edi
		mov	edi, [ebp+arg_1C]
		mov	[esp+10h], edi
		mov	esi, [esi+40h]
		movzx	eax, byte ptr [esi+eax]
		mov	[esp+4], edx
		mov	edx, [ebp+var_610]
		mov	[esp+8], ecx
		mov	eax, [ebp+eax*4+var_1A8]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+var_600]
		mov	[esp], eax
		call	off_27716C[edx*4] ; Int_GetTypeNameString(void)

loc_F52C3:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+20Dj
		add	ebx, 6
		cmp	ebx, [ebp+var_608]
		jnz	loc_F5208

loc_F52D2:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+1B0j
		mov	ecx, [ebp+var_604]
		mov	edx, [ecx+0A0h]
		mov	eax, [ecx+94h]
		test	edx, edx
		jle	short loc_F535C
		lea	edx, [edx+edx*2]
		lea	edi, [eax+edx*2]
		db	66h
		nop

loc_F52F0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+31Aj
		movzx	edx, word ptr [eax+4]
		mov	ecx, [ebp+var_2D0]
		mov	[ebp+var_1C8], edx
		mov	ebx, [ecx+2Ch]
		mov	ebx, [ebx+edx*4]
		mov	[ebp+var_1C4], ebx
		mov	ecx, [ecx+40h]
		movzx	edx, byte ptr [ecx+edx]
		mov	ecx, [ebp+edx*4+var_2CC]
		test	ecx, ecx
		jz	short loc_F5355
		movzx	edx, word ptr [eax+4]
		mov	ebx, [ebp+var_1AC]
		mov	[ebp+var_A4], edx
		mov	esi, [ebx+2Ch]
		mov	esi, [esi+edx*4]
		mov	[ebp+var_A0], esi
		mov	ebx, [ebx+40h]
		movzx	esi, word ptr [eax+2]
		movzx	ebx, byte ptr [ebx+edx]
		mov	ecx, [ecx+esi]
		movzx	edx, word ptr [eax]
		mov	ebx, [ebp+ebx*4+var_1A8]
		mov	[ebx+edx], ecx

loc_F5355:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+2DCj
		add	eax, 6
		cmp	eax, edi
		jnz	short loc_F52F0

loc_F535C:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+2A6j
		mov	ebx, [ebp+var_604]
		mov	edx, [ebx+0B4h]
		mov	eax, [ebx+0A8h]
		test	edx, edx
		jle	short loc_F53EE
		lea	edx, [edx+edx*2]
		lea	edi, [eax+edx*2]
		nop
		lea	esi, [esi+0]

loc_F5380:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+3ACj
		movzx	edx, word ptr [eax+4]
		mov	ecx, [ebp+var_2D0]
		mov	[ebp+var_1C8], edx
		mov	ebx, [ecx+2Ch]
		mov	ebx, [ebx+edx*4]
		mov	[ebp+var_1C4], ebx
		mov	ecx, [ecx+40h]
		movzx	edx, byte ptr [ecx+edx]
		mov	ecx, [ebp+edx*4+var_2CC]
		test	ecx, ecx
		jz	short loc_F53E7
		movzx	edx, word ptr [eax+4]
		mov	ebx, [ebp+var_1AC]
		mov	[ebp+var_A4], edx
		mov	esi, [ebx+2Ch]
		mov	esi, [esi+edx*4]
		mov	[ebp+var_A0], esi
		mov	ebx, [ebx+40h]
		movzx	esi, word ptr [eax+2]
		movzx	ebx, byte ptr [ebx+edx]
		movzx	ecx, word ptr [ecx+esi]
		movzx	edx, word ptr [eax]
		mov	ebx, [ebp+ebx*4+var_1A8]
		mov	[ebx+edx], cx

loc_F53E7:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+36Cj
		add	eax, 6
		cmp	eax, edi
		jnz	short loc_F5380

loc_F53EE:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+330j
		mov	esi, [ebp+var_604]
		mov	edx, [esi+0C8h]
		mov	eax, [esi+0BCh]
		test	edx, edx
		jle	short loc_F547D
		lea	edx, [edx+edx*2]
		lea	edi, [eax+edx*2]
		lea	esi, [esi+0]

loc_F5410:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+43Bj
		movzx	edx, word ptr [eax+4]
		mov	ecx, [ebp+var_2D0]
		mov	[ebp+var_1C8], edx
		mov	ebx, [ecx+2Ch]
		mov	ebx, [ebx+edx*4]
		mov	[ebp+var_1C4], ebx
		mov	ecx, [ecx+40h]
		movzx	edx, byte ptr [ecx+edx]
		mov	ecx, [ebp+edx*4+var_2CC]
		test	ecx, ecx
		jz	short loc_F5476
		movzx	edx, word ptr [eax+4]
		mov	ebx, [ebp+var_1AC]
		mov	[ebp+var_A4], edx
		mov	esi, [ebx+2Ch]
		mov	esi, [esi+edx*4]
		mov	[ebp+var_A0], esi
		mov	ebx, [ebx+40h]
		movzx	esi, word ptr [eax+2]
		movzx	ebx, byte ptr [ebx+edx]
		movzx	ecx, byte ptr [ecx+esi]
		movzx	edx, word ptr [eax]
		mov	ebx, [ebp+ebx*4+var_1A8]
		mov	[ebx+edx], cl

loc_F5476:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+3FCj
		add	eax, 6
		cmp	eax, edi
		jnz	short loc_F5410

loc_F547D:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+3C2j
		mov	edi, [ebp+var_604]
		mov	edx, [edi+0DCh]
		mov	eax, [edi+0D0h]
		test	edx, edx
		jle	loc_F5518
		lea	edx, [edx+edx*2]
		lea	ebx, [eax+edx*2]
		lea	esi, [esi+0]

loc_F54A0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+4D6j
		movzx	edx, word ptr [eax+4]
		mov	ecx, [ebp+var_2D0]
		mov	[ebp+var_1C8], edx
		mov	esi, [ecx+2Ch]
		mov	esi, [esi+edx*4]
		mov	[ebp+var_1C4], esi
		mov	ecx, [ecx+40h]
		movzx	edx, byte ptr [ecx+edx]
		mov	ecx, [ebp+edx*4+var_2CC]
		test	ecx, ecx
		jz	short loc_F5511
		movzx	edx, word ptr [eax+4]
		mov	esi, [ebp+var_1AC]
		mov	[ebp+var_A4], edx
		mov	edi, [esi+2Ch]
		mov	edi, [edi+edx*4]
		mov	[ebp+var_A0], edi
		mov	esi, [esi+40h]
		movzx	edi, word ptr [eax+2]
		movzx	esi, byte ptr [esi+edx]
		movzx	edx, word ptr [eax]
		add	ecx, edi
		add	edx, [ebp+esi*4+var_1A8]
		mov	esi, [ecx]
		mov	[edx], esi
		mov	esi, [ecx+4]
		mov	[edx+4], esi
		mov	ecx, [ecx+8]
		mov	[edx+8], ecx

loc_F5511:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+48Cj
		add	eax, 6
		cmp	eax, ebx
		jnz	short loc_F54A0

loc_F5518:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+451j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+533j ...
		add	esp, 63Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F5523:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+4Ej
		test	bl, bl
		jnz	loc_F5094
		mov	ebx, esi
		test	bl, bl
		jnz	loc_F5094
		mov	eax, dword ptr ds:_ZL23dt_UsePartialChangeEnts+1Ch
		mov	ebx, [eax+30h]
		test	ebx, ebx
		jz	loc_F5094
		movzx	eax, word ptr [ebp+var_5FC]
		mov	esi, [ebp+arg_4]
		lea	eax, [eax+eax*4]
		lea	eax, [edi+eax*8+2]
		mov	esi, [esi+0Ch]
		movzx	edi, word ptr [eax+26h]
		mov	[ebp+var_610], eax
		mov	[ebp+var_604], esi
		test	di, di
		mov	word ptr [ebp+var_614],	di
		jz	short loc_F5518
		mov	[ebp+var_600], 0
		lea	ebx, [esi+0FCh]
		mov	[ebp+var_60C], 0
		nop

loc_F5590:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+675j
		mov	edx, [ebp+var_600]
		mov	ecx, [ebp+var_610]
		mov	esi, [ebp+var_604]
		movzx	eax, word ptr [ecx+edx*2]
		mov	word ptr [ebp+var_1B0],	ax
		movzx	eax, word ptr [esi+10Ch]
		lea	esi, [esi+0]

loc_F55B8:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+7D0j
		cmp	ax, 0FFFFh
		jz	short loc_F5604

loc_F55BE:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+5C2j
		movzx	eax, ax
		lea	edi, [eax+eax*2]
		mov	eax, [ebx+4]
		lea	esi, ds:0[edi*4]
		add	eax, esi
		add	eax, 8
		mov	[esp+4], eax
		lea	eax, [ebp+var_1B0]
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jz	loc_F57E0
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F5818

loc_F55F7:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+7E6j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+813j
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+edi*4]
		cmp	ax, 0FFFFh
		jnz	short loc_F55BE

loc_F5604:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+57Cj
		mov	eax, dword ptr ds:_ZL24dt_ShowPartialChangeEnts+1Ch
		mov	edi, [eax+30h]
		test	edi, edi
		jz	loc_F56A0
		cmp	byte ptr ds:_ZGVZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict, 0	; `guard variable for'MapPropOffsetsToIndices(CBaseEdict  const*,CSendTablePrecalc *,ushort  const*,ushort,ushort *)::testDict
		jz	loc_F5E2A

loc_F5621:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+DF8j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+E80j
		mov	ecx, [ebp+var_604]
		mov	edi, [ebp+var_600]
		mov	edx, [ebp+var_610]
		mov	eax, [ecx+8Ch]
		mov	ecx, [ebp+arg_0]
		movzx	esi, word ptr [edx+edi*2]
		mov	edi, [eax+8]
		mov	eax, (offset asc_20E578+4)
		mov	edx, [ecx+8]
		mov	ecx, [ecx+0Ch]
		test	ecx, ecx
		jz	short loc_F565A
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+0Ch]

loc_F565A:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+610j
		mov	[esp+14h], esi
		lea	esi, [ebp+s]
		mov	[esp+10h], edi
		mov	[esp+0Ch], eax	; arg
		mov	dword ptr [esp+8], offset aLocaltransferO ; "LocalTransfer offset miss - class:	%s, "...
		mov	dword ptr [esp+4], 200h	; maxlen
		mov	[esp], esi	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict ; MapPropOffsetsToIndices(CBaseEdict  const*,CSendTablePrecalc *,ushort	const*,ushort,ushort *)::testDict
		call	_ZNK8CUtlDictIiiE4FindEPKc ; CUtlDict<int,int>::Find(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	loc_F5EC5
		lea	esi, [esi+0]

loc_F56A0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+5CEj
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+891j ...
		add	[ebp+var_600], 1
		movzx	eax, word ptr [ebp+var_600]
		cmp	word ptr [ebp+var_614],	ax
		ja	loc_F5590
		mov	eax, [ebp+var_60C]
		test	eax, eax
		jz	loc_F5518
		mov	edx, [ebp+arg_0]
		mov	eax, dword ptr ds:_ZL24dt_ShowPartialChangeEnts+1Ch
		sub	edx, dword ptr ds:sv+1A8h
		sar	edx, 2
		imul	edx, 0CCCCCCCDh
		mov	[ebp+var_1C], edx
		mov	eax, [eax+30h]
		test	eax, eax
		jz	short loc_F572F
		mov	ebx, dword ptr ds:_ZL19g_PartialChangeEnts+0Ch
		test	ebx, ebx
		jle	short loc_F5718
		mov	ecx, dword ptr ds:_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		xor	eax, eax
		cmp	edx, [ecx]
		jnz	short loc_F5711
		jmp	short loc_F572F
; ---------------------------------------------------------------------------
		align 8

loc_F5708:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+6D6j
		cmp	edx, [ecx+eax*4]
		jz	loc_F5EFE

loc_F5711:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+6BEj
		add	eax, 1
		cmp	eax, ebx
		jnz	short loc_F5708

loc_F5718:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+6B2j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+EC7j
		lea	eax, [ebp+var_1C]
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	_ZL19g_PartialChangeEnts ; g_PartialChangeEnts
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE12InsertBeforeEiRKi ;	CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int  const&)

loc_F572F:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+6A8j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+6C0j ...
		movzx	eax, word ptr [ebp+var_60C]
		cmp	ax, 1
		jz	loc_F58EE
		movzx	eax, ax
		xor	edx, edx
		lea	edi, [eax-1]
		xor	eax, eax
		lea	esi, [esi+0]

loc_F5750:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+73Fj
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+747j ...
		lea	ebx, [eax+1]
		movzx	esi, [ebp+eax*2+var_8E]
		movzx	ecx, [ebp+ebx*2+var_8E]
		cmp	cx, si
		jnb	loc_F58E0
		test	dx, dx
		mov	[ebp+ebx*2+var_8E], si
		mov	[ebp+eax*2+var_8E], cx
		jz	short loc_F5750
		sub	edx, 1
		movzx	eax, dx
		jmp	short loc_F5750
; ---------------------------------------------------------------------------

loc_F5789:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+163j
		cmp	eax, 0FFFFFFFFh
		jnz	loc_F51D0
		jmp	loc_F51B2
; ---------------------------------------------------------------------------
		align 10h

loc_F57A0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+62j
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebx+8]
		mov	dword ptr [esp], offset	aSendtable_enco	; "SendTable_Encode: Missing m_pPrecalc	fo"...
		mov	[esp+4], eax
		call	Error
		jmp	loc_F50A8
; ---------------------------------------------------------------------------

loc_F57BB:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+CCj
		mov	esi, [ebp+arg_C]
		mov	eax, [esi+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_deco	; "RecvTable_Decode: table '%s' missing a "...
		mov	[esp+4], eax
		call	Error
		jmp	loc_F5112
; ---------------------------------------------------------------------------
		align 10h

loc_F57E0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+5A4j
		lea	edx, [ebp+var_1B0]
		mov	[esp+4], edx
		mov	eax, [ebx+4]
		add	eax, esi
		add	eax, 8
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jz	loc_F58A0
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F5860

loc_F5808:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+82Ej
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+857j
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+esi+2]
		jmp	loc_F55B8
; ---------------------------------------------------------------------------
		align 4

loc_F5818:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+5B1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F55F7
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F55F7
; ---------------------------------------------------------------------------
		align 10h

loc_F5860:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+7C6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_F5808
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F5808
; ---------------------------------------------------------------------------
		align 10h

loc_F58A0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+7B9j
		mov	ecx, [ebp+var_604]
		mov	eax, [ecx+100h]
		movzx	eax, word ptr [eax+esi+0Ah]
		test	ax, ax
		js	loc_F5C8B
		mov	edi, [ebp+var_60C]
		mov	[ebp+edi*2+var_8E], ax
		add	edi, 1
		mov	[ebp+var_60C], edi
		jmp	loc_F56A0
; ---------------------------------------------------------------------------
		align 10h

loc_F58E0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+726j
		add	edx, 1
		movzx	eax, dx
		cmp	eax, edi
		jl	loc_F5750

loc_F58EE:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+6FAj
		mov	edx, [ebp+arg_1C]
		lea	esi, [ebp+var_3F8]
		mov	ecx, [ebp+arg_8]
		mov	[esp], esi
		mov	ebx, [ebp+var_604]
		mov	[esp+0Ch], edx
		mov	[esp+8], ecx
		mov	[esp+4], ebx
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	[ebp+var_2DC], ebx
		mov	[ebp+var_3F8], (offset _ZTV21CServerDatatableStack+8)
		mov	[ebp+var_2D8], 0
		mov	dword ptr [esp+4], 1
		mov	[esp], esi
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	edx, [ebp+arg_C]
		mov	edx, [edx+8]
		test	edx, edx
		mov	[ebp+var_610], edx
		jz	loc_F5F10

loc_F5952:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+EE6j
		mov	eax, [ebp+var_610]
		lea	edi, [ebp+var_2D4]
		mov	ebx, [ebp+arg_1C]
		mov	[esp], edi
		mov	esi, [ebp+arg_10]
		add	eax, 8
		mov	[esp+4], eax
		mov	[esp+0Ch], ebx
		mov	[esp+8], esi
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	edx, [ebp+var_610]
		mov	[esp], edi
		mov	[ebp+var_2D4], (offset _ZTV21CClientDatatableStack+8)
		mov	dword ptr [esp+4], 1
		mov	[ebp+var_1B8], edx
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	[ebp+var_600], 0
		jmp	loc_F5A5C
; ---------------------------------------------------------------------------

loc_F59B0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+A74j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+A93j ...
		test	eax, eax
		jz	loc_F5A43
		mov	[ebp+var_5FC], 0
		mov	edi, [ebp+var_610]
		cmp	esi, [edi+12Ch]
		jnb	short loc_F59DF
		mov	edx, [edi+120h]
		mov	edx, [edx+esi*4]
		mov	[ebp+var_5FC], edx

loc_F59DF:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+98Ej
		mov	edi, [ebp+var_2D0]
		mov	[ebp+var_1C8], esi
		mov	edx, [edi+2Ch]
		mov	edx, [edx+esi*4]
		mov	[ebp+var_1C4], edx
		mov	edx, [edi+40h]
		movzx	edx, byte ptr [edx+esi]
		mov	[ebp+var_604], edx
		mov	edx, [ebp+edx*4+var_2CC]
		cmp	edx, 0FFFFFFFFh
		jz	loc_F5B98

loc_F5A14:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+B71j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+C37j ...
		mov	esi, [ebp+var_5FC]
		mov	edi, [ebp+arg_1C]
		mov	ecx, [esi+4]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+var_608]
		mov	[esp+10h], edi
		mov	[esp+8], eax
		mov	[esp+4], esi
		lea	ecx, [ecx+ecx*8]
		mov	[esp], edx
		call	off_27716C[ecx*4] ; Int_GetTypeNameString(void)

loc_F5A43:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+972j
		add	[ebp+var_600], 1
		mov	ecx, [ebp+var_60C]
		cmp	[ebp+var_600], ecx
		jge	loc_F5518

loc_F5A5C:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+96Bj
		mov	ebx, [ebp+var_600]
		mov	eax, [ebp+var_3F4]
		mov	ecx, [ebp+var_2DC]
		add	ds:_ZL19g_nTotalPropChanges, 1 ; g_nTotalPropChanges
		movzx	esi, [ebp+ebx*2+var_8E]
		mov	[ebp+var_2EC], esi
		mov	eax, [eax+2Ch]
		mov	eax, [eax+esi*4]
		mov	[ebp+var_2E8], eax
		mov	eax, [ecx+2Ch]
		mov	eax, [eax+esi*4]
		mov	[ebp+var_608], eax
		mov	eax, [ecx+40h]
		movzx	eax, byte ptr [eax+esi]
		mov	[ebp+var_604], eax
		mov	edi, eax
		mov	eax, [ebp+eax*4+var_3F0]
		cmp	eax, 0FFFFFFFFh
		jnz	loc_F59B0
		mov	eax, [ecx+18h]
		mov	edx, [ebp+var_2F0]
		lea	edi, [eax+edi*4]
		cmp	word ptr [edi+2], 0
		mov	[ebp+var_5FC], edx
		mov	eax, edx
		jz	loc_F59B0
		xor	ebx, ebx
		mov	[ebp+var_614], esi
		jmp	short loc_F5B01
; ---------------------------------------------------------------------------
		align 8

loc_F5AE8:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+ADDj
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+B20j
		add	ebx, 1
		cmp	bx, [edi+2]
		jnb	loc_F5B88
		mov	ecx, [ebp+var_2DC]
		mov	[ebp+var_5FC], eax

loc_F5B01:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+AA1j
		movzx	edx, word ptr [edi]
		movzx	eax, bx
		mov	esi, [ecx+4]
		add	edx, eax
		lea	edx, [esi+edx*4]
		movzx	esi, word ptr [edx+2]
		mov	eax, [ebp+esi*4+var_3F0]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_F5AE8
		movzx	eax, word ptr [edx]
		mov	edx, [ecx+54h]
		mov	ecx, [ebp+var_2E4]
		mov	eax, [edx+eax*4]
		mov	edx, [ebp+var_5FC]
		add	edx, [eax+48h]
		mov	[esp+10h], ecx
		mov	ecx, [ebp+var_5FC]
		mov	dword ptr [esp+0Ch], offset _ZL12s_Recipients_1	; s_Recipients
		mov	[esp], eax
		mov	[esp+8], edx
		mov	[esp+4], ecx
		call	dword ptr [eax+40h]
		test	eax, eax
		mov	[ebp+esi*4+var_3F0], eax
		jnz	short loc_F5AE8
		mov	ebx, [ebp+var_604]
		mov	esi, [ebp+var_614]
		mov	eax, [ebp+var_5FC]
		mov	[ebp+ebx*4+var_3F0], 0
		jmp	loc_F59B0
; ---------------------------------------------------------------------------
		align 8

loc_F5B88:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+AAFj
		mov	esi, [ebp+var_614]
		jmp	loc_F59B0
; ---------------------------------------------------------------------------
		align 8

loc_F5B98:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+9CEj
		mov	esi, [ebp+var_604]
		mov	ebx, [edi+18h]
		mov	ecx, [ebp+var_1CC]
		lea	esi, [ebx+esi*4]
		cmp	word ptr [esi+2], 0
		mov	edx, ecx
		jz	loc_F5A14
		xor	ebx, ebx
		mov	[ebp+var_61C], eax
		jmp	short loc_F5BDD
; ---------------------------------------------------------------------------
		align 8

loc_F5BC8:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+BB9j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+C18j
		add	ebx, 1
		cmp	bx, [esi+2]
		jnb	loc_F5C80
		mov	edi, [ebp+var_2D0]
		mov	ecx, edx

loc_F5BDD:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+B7Fj
		movzx	edx, word ptr [esi]
		movzx	eax, bx
		add	eax, edx
		mov	edx, [edi+4]
		lea	eax, [edx+eax*4]
		movzx	edi, word ptr [eax+2]
		mov	edx, [ebp+edi*4+var_2CC]
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_F5BC8
		movzx	eax, word ptr [eax]
		mov	edx, [ebp+var_1B8]
		mov	[ebp+var_614], eax
		mov	eax, [edx+134h]
		mov	edx, [ebp+var_614]
		mov	eax, [eax+edx*4]
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+var_1C0]
		mov	[esp+0Ch], edx
		mov	edx, [eax+2Ch]
		mov	[ebp+var_620], ecx
		mov	[esp], eax
		add	edx, ecx
		mov	[esp+8], edx
		lea	edx, [ebp+var_1C]
		mov	[esp+4], edx
		call	dword ptr [eax+24h]
		mov	edx, [ebp+var_1C]
		mov	[ebp+edi*4+var_2CC], edx
		test	edx, edx
		mov	ecx, [ebp+var_620]
		jnz	loc_F5BC8
		mov	ebx, [ebp+var_604]
		mov	edx, ecx
		mov	eax, [ebp+var_61C]
		mov	[ebp+ebx*4+var_2CC], 0
		jmp	loc_F5A14
; ---------------------------------------------------------------------------
		align 10h

loc_F5C80:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+B8Fj
		mov	eax, [ebp+var_61C]
		jmp	loc_F5A14
; ---------------------------------------------------------------------------

loc_F5C8B:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+874j
		mov	esi, [ebp+var_600]
		mov	edi, [ebp+var_610]
		movzx	esi, word ptr [edi+esi*2]
		mov	word ptr [ebp+var_5FC],	si
		add	esi, 0Ch
		mov	[ebp+var_616], si

loc_F5CAC:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+DDFj
		movzx	edi, word ptr [ebp+var_5FC]
		mov	edx, [ebp+var_604]
		mov	word ptr [ebp+var_1B0],	di
		movzx	eax, word ptr [edx+10Ch]
		mov	esi, esi
		lea	edi, [edi+0]

loc_F5CD0:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+D10j
		cmp	ax, 0FFFFh
		jz	loc_F56A0

loc_F5CDA:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+CD6j
		lea	ecx, [ebp+var_1B0]
		movzx	eax, ax
		lea	edi, [eax+eax*2]
		mov	eax, [ebx+4]
		mov	[esp], ecx
		lea	esi, ds:0[edi*4]
		add	eax, esi
		add	eax, 8
		mov	[esp+4], eax
		call	dword ptr [ebx]
		test	al, al
		jz	short loc_F5D20
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F5D58

loc_F5D0B:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+D26j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+D4Fj
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+edi*4]
		cmp	ax, 0FFFFh
		jnz	short loc_F5CDA
		jmp	loc_F56A0
; ---------------------------------------------------------------------------
		align 10h

loc_F5D20:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+CC0j
		lea	edi, [ebp+var_1B0]
		mov	[esp+4], edi
		mov	eax, [ebx+4]
		add	eax, esi
		add	eax, 8
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jz	loc_F5DD8
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F5D98

loc_F5D48:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+D66j
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+D8Fj
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+esi+2]
		jmp	loc_F5CD0
; ---------------------------------------------------------------------------
		align 4

loc_F5D58:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+CC9j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_F5D0B
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F5D0B
; ---------------------------------------------------------------------------
		align 8

loc_F5D98:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+D06j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_F5D48
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F5D48
; ---------------------------------------------------------------------------
		align 8

loc_F5DD8:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+CF9j
		mov	edx, [ebp+var_604]
		mov	eax, [edx+100h]
		movzx	eax, word ptr [eax+esi+0Ah]
		test	ax, ax
		jns	short loc_F5E09
		mov	ecx, [ebp+var_60C]
		and	ax, 7FFFh
		mov	[ebp+ecx*2+var_8E], ax
		add	ecx, 1
		mov	[ebp+var_60C], ecx

loc_F5E09:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+DACj
		add	word ptr [ebp+var_5FC],	4
		movzx	esi, [ebp+var_616]
		cmp	word ptr [ebp+var_5FC],	si
		jnz	loc_F5CAC
		jmp	loc_F56A0
; ---------------------------------------------------------------------------

loc_F5E2A:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+5DBj
		mov	dword ptr [esp], offset	_ZGVZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict ; `guard variable for'MapPropOffsetsToIndices(CBaseEdict  const*,CSendTablePrecalc *,ushort  const*,ushort,ushort *)::testDict
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F5621
		mov	dword ptr [esp], offset	_ZGVZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict ; `guard variable for'MapPropOffsetsToIndices(CBaseEdict  const*,CSendTablePrecalc *,ushort  const*,ushort,ushort *)::testDict
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+4, 0
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+8, 0
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+0Ch, 0
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+10h, 0FFFFFFFFh
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+14h, 0
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+18h, 0FFFFFFFFh
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+1Ch, 0FFFFFFFFh
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict+20h, 0
		mov	dword ptr ds:_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict, offset _Z22CaselessStringLessThanRKPKcS2_ ; CaselessStringLessThan(char  const* const&,char  const* const&)
		call	__cxa_guard_release
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict ; MapPropOffsetsToIndices(CBaseEdict  const*,CSendTablePrecalc	*,ushort  const*,ushort,ushort *)::testDict
		mov	dword ptr [esp], offset	_ZN8CUtlDictIiiED2Ev ; CUtlDict<int,int>::~CUtlDict()
		call	__cxa_atexit
		jmp	loc_F5621
; ---------------------------------------------------------------------------

loc_F5EC5:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+657j
		mov	[esp], esi	; s
		call	strdup
		lea	edx, [ebp+var_1B0]
		mov	dword ptr [esp], offset	_ZZ23MapPropOffsetsToIndicesPK10CBaseEdictP17CSendTablePrecalcPKttPtE8testDict ; MapPropOffsetsToIndices(CBaseEdict  const*,CSendTablePrecalc *,ushort	const*,ushort,ushort *)::testDict
		mov	[ebp+var_1B0], eax
		mov	[esp+4], edx
		call	_ZN10CUtlRBTreeIN7CUtlMapIPKciiE6Node_tEiNS3_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS4_iEiEE6InsertERKS4_ ; CUtlRBTree<CUtlMap<char  const*,int,int>::Node_t,int,CUtlMap<char	 const*,int,int>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<char  const*,int,int>::Node_t,int>,int>>::Insert(CUtlMap<char  const*,int,int>::Node_t const&)
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	off_20DC96
		call	Warning
		jmp	loc_F56A0
; ---------------------------------------------------------------------------

loc_F5EFE:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+6CBj
		cmp	eax, 0FFFFFFFFh
		jnz	loc_F572F
		jmp	loc_F5718
; ---------------------------------------------------------------------------
		align 10h

loc_F5F10:				; CODE XREF: LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable	const*,void  const*,RecvTable *,void *,bool,bool,int)+90Cj
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_deco	; "RecvTable_Decode: table '%s' missing a "...
		mov	[esp+4], eax
		call	Error
		jmp	loc_F5952
_Z28LocalTransfer_TransferEntityPK10CBaseEdictPK9SendTablePKvP9RecvTablePvbbi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientDatatableStack::RecurseAndCallProxies(CSendNode *, unsigned char *)
_ZN21CClientDatatableStack21RecurseAndCallProxiesEP9CSendNodePh	proc near
					; DATA XREF: .rodata:`vtable for'CClientDatatableStacko

var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	esi, [ebp+arg_0]
		movzx	eax, word ptr [edx+22h]
		mov	[esi+eax*4+8], ecx
		mov	ecx, [edx+0Ch]
		test	ecx, ecx
		jle	short loc_F5FCD
		xor	ebx, ebx
		mov	[ebp+var_2C], edx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_F5F60:				; CODE XREF: CClientDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+9Bj
		mov	edx, [ebp+var_2C]
		mov	eax, [edx]
		mov	edx, [ebp+arg_8]
		mov	edi, [eax+ebx*4]
		xor	eax, eax
		test	edx, edx
		jz	short loc_F5FB3
		mov	edx, [esi+11Ch]
		movsx	ecx, word ptr [edi+14h]
		mov	edx, [edx+134h]
		mov	edx, [edx+ecx*4]
		mov	[ebp+var_1C], 0
		test	edx, edx
		jz	short loc_F5FB3
		mov	eax, [esi+114h]
		lea	ecx, [ebp+var_1C]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_8]
		add	eax, [edx+2Ch]
		mov	[esp+4], ecx
		mov	[esp], edx
		mov	[esp+8], eax
		call	dword ptr [edx+24h]
		mov	eax, [ebp+var_1C]

loc_F5FB3:				; CODE XREF: CClientDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+3Fj
					; CClientDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+5Dj
		mov	edx, [esi]
		mov	[esp+8], eax
		add	ebx, 1
		mov	[esp+4], edi
		mov	[esp], esi
		call	dword ptr [edx]
		mov	eax, [ebp+var_2C]
		cmp	ebx, [eax+0Ch]
		jl	short loc_F5F60

loc_F5FCD:				; CODE XREF: CClientDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+1Fj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN21CClientDatatableStack21RecurseAndCallProxiesEP9CSendNodePh	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPropMapStack::RecurseAndCallProxies(CSendNode *, unsigned char *)
_ZN13CPropMapStack21RecurseAndCallProxiesEP9CSendNodePh	proc near
					; DATA XREF: .rodata:`vtable for'CPropMapStacko

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		movzx	eax, word ptr [edi+22h]
		mov	[esi+eax*4+8], edx
		mov	eax, [edi+0Ch]
		test	eax, eax
		jle	loc_F60A0
		xor	ebx, ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_F6010:				; CODE XREF: CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+BAj
		mov	eax, [edi]
		mov	[ebp+var_1C], 0
		mov	ecx, [eax+ebx*4]
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_F6082
		mov	eax, [esi+11Ch]
		movsx	edx, word ptr [ecx+14h]
		mov	eax, [eax+54h]
		mov	eax, [eax+edx*4]
		mov	[ebp+var_20], eax
		mov	eax, [esi+120h]
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_20]
		mov	edx, [eax+40h]
		mov	eax, [ebp+var_24]
		cmp	edx, [eax+20h]
		jz	short loc_F60B0
		cmp	edx, [eax+24h]
		jz	short loc_F60B0
		mov	eax, [eax+28h]
		test	eax, eax
		mov	[ebp+var_24], eax
		jz	short loc_F6082
		mov	eax, [eax]
		test	eax, eax
		mov	[ebp+var_24], eax
		jz	short loc_F6082
		cmp	edx, [eax]
		jz	short loc_F60B0
		mov	eax, [ebp+var_24]
		jmp	short loc_F6074
; ---------------------------------------------------------------------------
		align 10h

loc_F6070:				; CODE XREF: CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+99j
		cmp	edx, [eax]
		jz	short loc_F60B0

loc_F6074:				; CODE XREF: CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+8Cj
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_F6070
		mov	[ebp+var_1C], 0

loc_F6082:				; CODE XREF: CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+41j
					; CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+7Aj ...
		mov	edx, [ebp+var_1C]
		add	ebx, 1
		mov	eax, [esi]
		mov	[esp+4], ecx
		mov	[esp], esi
		mov	[esp+8], edx
		call	dword ptr [eax]
		cmp	ebx, [edi+0Ch]
		jl	loc_F6010

loc_F60A0:				; CODE XREF: CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+1Fj
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F60B0:				; CODE XREF: CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+6Bj
					; CPropMapStack::RecurseAndCallProxies(CSendNode *,uchar *)+70j ...
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+var_20]
		add	eax, [edx+48h]
		mov	[ebp+var_1C], eax
		jmp	short loc_F6082
_ZN13CPropMapStack21RecurseAndCallProxiesEP9CSendNodePh	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CServerDatatableStack::RecurseAndCallProxies(CSendNode *, unsigned char *)
_ZN21CServerDatatableStack21RecurseAndCallProxiesEP9CSendNodePh	proc near
					; DATA XREF: .rodata:`vtable for'CServerDatatableStacko
					; .rodata:`vtable for'CEncodeInfoo

var_20		= dword	ptr -20h
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		movzx	eax, word ptr [edx+22h]
		mov	[ebx+eax*4+8], ecx
		mov	ecx, [edx+0Ch]
		test	ecx, ecx
		jle	loc_F61BD
		xor	esi, esi
		mov	esi, esi
		lea	edi, [edi+0]

loc_F60F0:				; CODE XREF: CServerDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+F7j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	edx, [ebp+arg_8]
		mov	edi, [eax+esi*4]
		xor	eax, eax
		test	edx, edx
		jz	loc_F619F
		mov	eax, [ebx+11Ch]
		mov	ecx, [ebx+120h]
		movsx	edx, word ptr [edi+14h]
		mov	eax, [eax+54h]
		test	ecx, ecx
		mov	[ebp+var_20], ecx
		mov	edx, [eax+edx*4]
		mov	eax, offset _ZL12s_Recipients_1	; s_Recipients
		jz	short loc_F617A
		movzx	ecx, word ptr [edi+20h]
		cmp	cx, 0FFh
		mov	[ebp+var_1A], cx
		jz	short loc_F617A
		movzx	eax, cx
		mov	ecx, [ebp+var_20]
		shl	eax, 5
		add	eax, [ecx]
		jz	short loc_F617A
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	dword ptr [eax+8], 0FFFFFFFFh
		mov	dword ptr [eax+0Ch], 0FFFFFFFFh
		mov	dword ptr [eax+10h], 0FFFFFFFFh
		mov	dword ptr [eax+14h], 0FFFFFFFFh
		mov	dword ptr [eax+18h], 0FFFFFFFFh
		mov	dword ptr [eax+1Ch], 0FFFFFFFFh

loc_F617A:				; CODE XREF: CServerDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+65j
					; CServerDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+74j ...
		mov	ecx, [ebx+114h]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+10h], ecx
		mov	ecx, [ebp+arg_8]
		add	eax, [edx+48h]
		mov	[esp], edx
		mov	[esp+4], ecx
		mov	[esp+8], eax
		call	dword ptr [edx+40h]

loc_F619F:				; CODE XREF: CServerDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+3Fj
		mov	edx, [ebx]
		mov	[esp+8], eax
		add	esi, 1
		mov	[esp+4], edi
		mov	[esp], ebx
		call	dword ptr [edx]
		mov	edx, [ebp+arg_4]
		cmp	esi, [edx+0Ch]
		jl	loc_F60F0

loc_F61BD:				; CODE XREF: CServerDatatableStack::RecurseAndCallProxies(CSendNode *,uchar *)+1Fj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN21CServerDatatableStack21RecurseAndCallProxiesEP9CSendNodePh	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CFastLocalTransferPropInfo, int>::Grow(int)
_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE4GrowEi proc near
					; CODE XREF: CUtlVector<CFastLocalTransferPropInfo,CUtlMemory<CFastLocalTransferPropInfo,int>>::InsertBefore(int,CFastLocalTransferPropInfo const&)+97p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_F6222
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_F6230
		test	eax, eax
		mov	edx, 6
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_F6206
		lea	esi, [esi+0]

loc_F6200:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_F6200

loc_F6206:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+2Aj
					; CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		add	eax, eax
		test	edx, edx
		jz	short loc_F6265

loc_F6214:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+93j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_F6222:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F6230:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_F6206
		lea	esi, [esi+0]

loc_F6248:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_F6248
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		add	eax, eax
		test	edx, edx
		jnz	short loc_F6214

loc_F6265:				; CODE XREF: CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)+42j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<CFastLocalTransferPropInfo, CUtlMemory<CFastLocalTransferPropInfo,	int>>::InsertBefore(int, CFastLocalTransferPropInfo const&)
_ZN10CUtlVectorI26CFastLocalTransferPropInfo10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: LocalTransfer_InitFastCopy(SendTable  const*,CStandardSendProxies	const*,RecvTable *,CStandardRecvProxies	 const*,int &,int &)+202p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx+4]
		cmp	eax, ecx
		jge	short loc_F6308

loc_F62A2:				; CODE XREF: CUtlVector<CFastLocalTransferPropInfo,CUtlMemory<CFastLocalTransferPropInfo,int>>::InsertBefore(int,CFastLocalTransferPropInfo const&)+A2j
		lea	ecx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], ecx
		lea	edi, [esi+esi*2]
		sub	ecx, esi
		sub	ecx, 1
		add	edi, edi
		test	ecx, ecx
		mov	[ebx+10h], eax
		jle	short loc_F62E2
		lea	ecx, [ecx+ecx*2]
		mov	[ebp+var_1C], edx
		add	ecx, ecx
		mov	[esp+8], ecx	; n
		lea	ecx, [eax+edi]
		mov	[esp+4], ecx	; src
		lea	ecx, [esi+esi*2+3]
		lea	eax, [eax+ecx*2]
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]
		mov	edx, [ebp+var_1C]

loc_F62E2:				; CODE XREF: CUtlVector<CFastLocalTransferPropInfo,CUtlMemory<CFastLocalTransferPropInfo,int>>::InsertBefore(int,CFastLocalTransferPropInfo const&)+39j
		add	edi, eax
		jz	short loc_F62F2
		mov	eax, [edx]
		mov	[edi], eax
		movzx	eax, word ptr [edx+4]
		mov	[edi+4], ax

loc_F62F2:				; CODE XREF: CUtlVector<CFastLocalTransferPropInfo,CUtlMemory<CFastLocalTransferPropInfo,int>>::InsertBefore(int,CFastLocalTransferPropInfo const&)+64j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F6308:				; CODE XREF: CUtlVector<CFastLocalTransferPropInfo,CUtlMemory<CFastLocalTransferPropInfo,int>>::InsertBefore(int,CFastLocalTransferPropInfo const&)+20j
		add	eax, 1
		mov	[ebp+var_1C], edx
		sub	eax, ecx
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI26CFastLocalTransferPropInfoiE4GrowEi ;	CUtlMemory<CFastLocalTransferPropInfo,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		mov	edx, [ebp+var_1C]
		jmp	loc_F62A2
_ZN10CUtlVectorI26CFastLocalTransferPropInfo10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned	short>::Grow(int)
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapItttE6Node_tEtEtE4GrowEi proc near
					; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+9Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_F63B5
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_F63C0
		test	eax, eax
		mov	edx, 3
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_F6366
		lea	esi, [esi+0]

loc_F6360:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_F6360

loc_F6366:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_F6398
		test	ax, ax
		jz	short loc_F63D8
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_F63B5
		cmp	esi, ecx
		jge	short loc_F6398
		lea	esi, [esi+0]

loc_F6380:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_F6380
		lea	esi, [esi+0]

loc_F6398:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		lea	eax, [eax+eax*2]
		shl	eax, 2
		test	edx, edx
		jz	short loc_F63E8
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_F63B5:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F63C0:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_F6366
; ---------------------------------------------------------------------------
		align 8

loc_F63D8:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_F6398
		jmp	short loc_F63B5
; ---------------------------------------------------------------------------
		align 4

loc_F63E8:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)+75j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapItttE6Node_tEtEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short, CUtlMap<unsigned short, unsigned short, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned short>>::NewNode(void)
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv proc near
					; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+8Cp
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+1ACp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		movzx	eax, word ptr [ebx+14h]
		cmp	ax, 0FFFFh
		jz	short loc_F6440
		mov	edx, [ebx+4]
		movzx	ecx, ax
		lea	ecx, [ecx+ecx*2]
		movzx	ecx, word ptr [edx+ecx*4+2]
		mov	[ebx+18h], edx
		mov	[ebx+14h], cx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F6440:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+17j
		movzx	ecx, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	esi, cx
		cmp	esi, edx
		jb	short loc_F6478
		test	edx, edx
		jz	short loc_F648F
		xor	ecx, ecx
		xor	eax, eax
		cmp	edx, ecx
		jbe	short loc_F648F
		lea	esi, [esi+0]

loc_F6460:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+8Dj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+CAj	...
		mov	edx, [ebx+4]
		mov	[ebx+16h], ax
		mov	[ebx+18h], edx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F6478:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+4Cj
		add	ecx, 1
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi
		cmp	edx, ecx
		ja	short loc_F6460

loc_F648F:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+50j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+58j
		lea	eax, [ebx+4]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tIN7CUtlMapItttE6Node_tEtEtE4GrowEi ; CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>::Grow(int)
		movzx	eax, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	ecx, ax
		cmp	ecx, edx
		jnb	short loc_F64E0
		lea	ecx, [eax+1]
		mov	eax, 0FFFFFFFFh
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi

loc_F64C8:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+EDj
		cmp	ecx, edx
		jb	short loc_F6460

loc_F64CC:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+E7j
		mov	[ebp+var_C], eax
		mov	dword ptr [esp], offset	aCutlrbtreeOver	; "CUtlRBTree overflow!\n"
		call	Error
		mov	eax, [ebp+var_C]
		jmp	short loc_F6460
; ---------------------------------------------------------------------------

loc_F64E0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)+AEj
		test	edx, edx
		mov	eax, 0FFFFFFFFh
		jz	short loc_F64CC
		xor	ecx, ecx
		xor	eax, eax
		jmp	short loc_F64C8
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short, CUtlMap<unsigned short, unsigned short, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned short>>::RotateLeft(unsigned short)
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt proc	near
					; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+289p
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+7B7p

var_30		= dword	ptr -30h
var_29		= byte ptr -29h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	al, al
		mov	[ebp+var_29], al
		jz	loc_F6750

loc_F6512:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+27Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+471j
		cmp	si, 0FFFFh
		mov	[ebp+var_30], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6535
		mov	ecx, [ebx+4]
		movzx	edx, si
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_30], edx
		add	ecx, edx

loc_F6535:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+32j
		cmp	[ebp+var_29], 0
		movzx	edi, word ptr [ecx+2]
		jz	loc_F6710

loc_F6543:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+431j
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		jz	loc_F673B

loc_F6550:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+245j
		movzx	ecx, di
		lea	ecx, [ecx+ecx*2]
		shl	ecx, 2
		mov	[ebp+var_1C], ecx
		add	ecx, edx

loc_F655E:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+257j
		movzx	ecx, word ptr [ecx]
		mov	eax, [ebp+var_30]
		cmp	[ebp+var_29], 0
		mov	[edx+eax+2], cx
		jz	loc_F66D0

loc_F6573:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+1EEj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+21Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6584
		mov	eax, [ebp+var_1C]
		add	eax, [ebx+4]

loc_F6584:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+8Cj
		cmp	word ptr [eax],	0FFFFh
		jz	short loc_F65B5
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F67B0

loc_F6597:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+2CEj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+2FBj
		cmp	di, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F65AA
		mov	eax, [ebp+var_1C]
		add	eax, ecx

loc_F65AA:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+B3j
		movzx	eax, word ptr [eax]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+4], si

loc_F65B5:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+98j
		cmp	di, 0FFFFh
		jz	short loc_F65EC
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F67F0

loc_F65C8:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+30Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+33Bj
		cmp	si, 0FFFFh
		jz	loc_F6860
		mov	ecx, [ebx+4]
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], ecx
		add	eax, ecx

loc_F65DD:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+37Bj
		movzx	eax, word ptr [eax+4]
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	[ecx+edx+4], ax

loc_F65EC:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+C9j
		cmp	si, [ebx+10h]
		jz	loc_F66C0
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_F6830
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6616

loc_F6610:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+364j
		mov	eax, [ebp+var_30]
		add	eax, [ebx+4]

loc_F6616:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+11Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+36Aj
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_F6778

loc_F6622:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+4B4j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6639

loc_F662D:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+2B2j
		movzx	eax, dx
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]

loc_F6639:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+13Bj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+2B8j
		cmp	si, [eax]
		jnz	short loc_F6690
		test	cl, cl
		jz	loc_F6870

loc_F6646:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+38Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+3BBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6659
		mov	eax, [ebp+var_30]
		add	eax, ecx

loc_F6659:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+162j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4], di

loc_F6664:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+1C7j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+1D4j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	edx, [ebp+var_1C]
		mov	[eax+edx], si
		jz	short loc_F667F
		mov	eax, [ebx+4]
		mov	ecx, [ebp+var_30]
		mov	[eax+ecx+4], di

loc_F667F:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+182j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F6690:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+14Cj
		test	cl, cl
		jz	loc_F68B0

loc_F6698:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+3CEj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+3FBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F66AB
		mov	eax, [ebp+var_30]
		add	eax, ecx

loc_F66AB:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+1B4j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+2], di
		jmp	short loc_F6664
; ---------------------------------------------------------------------------
		align 10h

loc_F66C0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+100j
		mov	[ebx+10h], di
		jmp	short loc_F6664
; ---------------------------------------------------------------------------
		align 10h

loc_F66D0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+7Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6573
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6573
; ---------------------------------------------------------------------------

loc_F6710:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+4Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F68F0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		cmp	di, 0FFFFh
		mov	[ebp+var_29], al
		mov	edx, [ebx+4]
		jnz	loc_F6550

loc_F673B:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+5Aj
		mov	[ebp+var_1C], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F655E
; ---------------------------------------------------------------------------
		align 10h

loc_F6750:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+1Cj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F6930
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], dl
		jmp	loc_F6512
; ---------------------------------------------------------------------------
		align 8

loc_F6778:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+12Cj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_F6970
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_F662D
		jmp	loc_F6639
; ---------------------------------------------------------------------------
		align 10h

loc_F67B0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+A1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6597
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6597
; ---------------------------------------------------------------------------

loc_F67F0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+D2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F65C8
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F65C8
; ---------------------------------------------------------------------------

loc_F6830:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+10Fj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F69B0

loc_F6844:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+4E7j
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_F6610
		jmp	loc_F6616
; ---------------------------------------------------------------------------
		align 10h

loc_F6860:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+DCj
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_20], edx
		jmp	loc_F65DD
; ---------------------------------------------------------------------------

loc_F6870:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+150j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6646
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6646
; ---------------------------------------------------------------------------

loc_F68B0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6698
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6698
; ---------------------------------------------------------------------------

loc_F68F0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+22Ej
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], dl
		jmp	loc_F6543
; ---------------------------------------------------------------------------
		align 10h

loc_F6930:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+26Ej
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_29], cl
		jmp	loc_F6512
; ---------------------------------------------------------------------------
		align 10h

loc_F6970:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+29Cj
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_F6622
; ---------------------------------------------------------------------------
		align 10h

loc_F69B0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)+34Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6844
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short, CUtlMap<unsigned short, unsigned short, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned short>>::RotateRight(unsigned short)
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt proc near
					; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+4ECp
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+607p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	al, al
		jz	loc_F6C10

loc_F69FF:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+24Bj
		cmp	si, 0FFFFh
		mov	[ebp+var_38], 0BFFF4h
		mov	ecx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6A22
		mov	ecx, [ebx+4]
		movzx	edx, si
		lea	edx, [edx+edx*2]
		shl	edx, 2
		mov	[ebp+var_38], edx
		add	ecx, edx

loc_F6A22:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+2Fj
		test	al, al
		movzx	edi, word ptr [ecx]
		jz	loc_F6BD0

loc_F6A2D:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+1FEj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+22Bj
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		jz	loc_F6D60
		movzx	eax, di
		lea	ecx, [eax+eax*2]
		shl	ecx, 2
		mov	eax, ecx
		mov	[ebp+var_34], ecx
		add	eax, edx

loc_F6A4A:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+38Cj
		movzx	eax, word ptr [eax+2]
		mov	ecx, [ebp+var_38]
		mov	[edx+ecx], ax
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F6B90

loc_F6A62:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+1BEj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+1EBj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6A73
		mov	eax, [ebp+var_34]
		add	eax, [ebx+4]

loc_F6A73:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+8Bj
		cmp	word ptr [eax+2], 0FFFFh
		jz	short loc_F6AA6
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F6C68

loc_F6A87:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+296j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+2C3j
		cmp	di, 0FFFFh
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6A9A
		mov	eax, [ebp+var_34]
		add	eax, edx

loc_F6A9A:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+B3j
		movzx	eax, word ptr [eax+2]
		lea	eax, [eax+eax*2]
		mov	[edx+eax*4+4], si

loc_F6AA6:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+98j
		cmp	di, 0FFFFh
		jz	short loc_F6ADD
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F6CB0

loc_F6AB9:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+2DEj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+30Bj
		cmp	si, 0FFFFh
		jz	loc_F6D50
		mov	edx, [ebx+4]
		mov	eax, [ebp+var_38]
		mov	[ebp+var_1C], edx
		add	eax, edx

loc_F6ACE:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+37Bj
		movzx	eax, word ptr [eax+4]
		mov	edx, [ebp+var_1C]
		mov	ecx, [ebp+var_34]
		mov	[edx+ecx+4], ax

loc_F6ADD:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+CAj
		cmp	si, [ebx+10h]
		jz	loc_F6B80
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_F6CF0
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6B07

loc_F6B01:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+334j
		mov	eax, [ebp+var_38]
		add	eax, [ebx+4]

loc_F6B07:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+11Fj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+33Aj
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_F6C30

loc_F6B13:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+444j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6B2A

loc_F6B1E:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+27Aj
		movzx	eax, dx
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]

loc_F6B2A:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+13Cj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+280j
		cmp	si, [eax+2]
		jz	loc_F6D20
		test	cl, cl
		jz	loc_F6D78

loc_F6B3C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+3A6j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+3D3j
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6B4F
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_F6B4F:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+168j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4], di

loc_F6B5A:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+1A4j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+367j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	ecx, [ebp+var_34]
		mov	[eax+ecx+2], si
		jz	short loc_F6B76
		mov	eax, [ebx+4]
		mov	edx, [ebp+var_38]
		mov	[eax+edx+4], di

loc_F6B76:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+189j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F6B80:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+101j
		mov	[ebx+10h], di
		jmp	short loc_F6B5A
; ---------------------------------------------------------------------------
		align 10h

loc_F6B90:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+7Cj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6A62
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6A62
; ---------------------------------------------------------------------------

loc_F6BD0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+47j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6A2D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6A2D
; ---------------------------------------------------------------------------

loc_F6C10:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+19j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F6DC0

loc_F6C24:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+407j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F69FF
; ---------------------------------------------------------------------------

loc_F6C30:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+12Dj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_F6DF0
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_F6B1E
		jmp	loc_F6B2A
; ---------------------------------------------------------------------------
		align 4

loc_F6C68:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+A1j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6A87
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6A87
; ---------------------------------------------------------------------------
		align 10h

loc_F6CB0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+D3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6AB9
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6AB9
; ---------------------------------------------------------------------------

loc_F6CF0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+110j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F6E30

loc_F6D04:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+477j
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_F6B01
		jmp	loc_F6B07
; ---------------------------------------------------------------------------
		align 10h

loc_F6D20:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+14Ej
		test	cl, cl
		jz	loc_F6E60

loc_F6D28:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+48Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+4BBj
		cmp	si, 0FFFFh
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6D3B
		mov	eax, [ebp+var_38]
		add	eax, ecx

loc_F6D3B:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+354j
		movzx	eax, word ptr [eax+4]
		lea	eax, [eax+eax*2]
		mov	[ecx+eax*4+2], di
		jmp	loc_F6B5A
; ---------------------------------------------------------------------------
		align 10h

loc_F6D50:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+DDj
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6ACE
; ---------------------------------------------------------------------------

loc_F6D60:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+54j
		mov	[ebp+var_34], 0BFFF4h
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6A4A
; ---------------------------------------------------------------------------
		align 8

loc_F6D78:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+156j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6B3C
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6B3C
; ---------------------------------------------------------------------------
		align 10h

loc_F6DC0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+23Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6C24
; ---------------------------------------------------------------------------
		align 10h

loc_F6DF0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+264j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_F6B13
; ---------------------------------------------------------------------------
		align 10h

loc_F6E30:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+31Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6D04
; ---------------------------------------------------------------------------
		align 10h

loc_F6E60:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)+342j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6D28
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6D28
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short, CUtlMap<unsigned short, unsigned short, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned short>>::InsertRebalance(unsigned short)
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE15InsertRebalanceEt	proc near
					; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+E4p

var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	edi, [ebp+arg_4]

loc_F6EB0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+1BAj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+28Ej ...
		movzx	eax, word ptr [ebx+10h]
		cmp	di, ax
		jz	short loc_F6F0D
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_F7210

loc_F6EC8:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+38Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6EDF
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_F6EDF:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+31j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_F71D0

loc_F6EEB:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+33Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+36Bj
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6F02
		movzx	esi, si
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_F6F02:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+54j
		cmp	word ptr [eax+6], 0
		jz	short loc_F6F30
		movzx	eax, word ptr [ebx+10h]

loc_F6F0D:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+17j
		mov	ecx, [ebx+4]
		movzx	eax, ax
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]
		mov	word ptr [eax+6], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F6F30:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+67j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	loc_F7160

loc_F6F3F:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+2DBj
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6F56
		mov	esi, [ebx+4]
		movzx	edx, di
		lea	edx, [edx+edx*2]
		lea	edx, [esi+edx*4]

loc_F6F56:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+A8j
		movzx	edx, word ptr [edx+4]
		test	al, al
		mov	[ebp+var_1A], dx
		movzx	esi, dx
		jz	loc_F7138

loc_F6F69:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+2B3j
		cmp	[ebp+var_1A], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6F7E
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*4]

loc_F6F7E:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+D3j
		movzx	edx, word ptr [edx+4]
		test	al, al
		mov	[ebp+var_1C], dx
		jz	loc_F71B0

loc_F6F8E:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+32Bj
		cmp	[ebp+var_1A], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6FA3
		mov	ecx, [ebx+4]
		lea	edx, [esi+esi*2]
		lea	edx, [ecx+edx*4]

loc_F6FA3:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+F8j
		test	al, al
		movzx	ecx, word ptr [edx+4]
		jz	loc_F7180

loc_F6FAF:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+301j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+5C4j
		cmp	cx, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6FC6
		movzx	ecx, cx
		lea	edx, [ecx+ecx*2]
		mov	ecx, [ebx+4]
		lea	edx, [ecx+edx*4]

loc_F6FC6:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+118j
		movzx	ecx, [ebp+var_1A]
		cmp	cx, [edx]
		jnz	loc_F7060
		test	al, al
		jz	loc_F72F0

loc_F6FDB:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+46Bj
		cmp	[ebp+var_1C], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F6FF4
		movzx	edx, [ebp+var_1C]
		mov	ecx, [ebx+4]
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_F6FF4:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+145j
		test	al, al
		movzx	edx, word ptr [edx+2]
		jz	loc_F7250

loc_F7000:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+3C4j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+3F4j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F7017
		mov	ecx, [ebx+4]
		movzx	eax, dx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_F7017:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+169j
		cmp	word ptr [eax+6], 0
		jnz	loc_F7310

loc_F7022:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+208j
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		movzx	edx, dx
		lea	eax, [esi+eax*4]
		mov	word ptr [eax+6], 1
		lea	eax, [edx+edx*2]
		mov	edi, [ebx+4]
		lea	eax, [edi+eax*4]
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	edx, [ebx+4]
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		mov	word ptr [eax+6], 0
		movzx	edi, [ebp+var_1C]
		jmp	loc_F6EB0
; ---------------------------------------------------------------------------
		align 10h

loc_F7060:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+12Dj
		test	al, al
		jz	loc_F7230

loc_F7068:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+3ABj
		cmp	[ebp+var_1C], 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F7081
		movzx	edx, [ebp+var_1C]
		mov	ecx, [ebx+4]
		lea	edx, [edx+edx*2]
		lea	edx, [ecx+edx*4]

loc_F7081:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+1D2j
		test	al, al
		movzx	edx, word ptr [edx]
		jz	loc_F72A0

loc_F708C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+414j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+444j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F70A3
		mov	ecx, [ebx+4]
		movzx	eax, dx
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_F70A3:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+1F5j
		cmp	word ptr [eax+6], 0
		jz	loc_F7022
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_F7588

loc_F70BD:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+703j
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F70D4
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_F70D4:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+226j
		test	dl, dl
		movzx	ecx, word ptr [eax+4]
		jz	loc_F7538

loc_F70E0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+6ACj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+6DCj
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F70F7
		mov	edx, [ebx+4]
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		lea	eax, [edx+eax*4]

loc_F70F7:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+249j
		cmp	di, [eax]
		jz	loc_F74A0
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_F7109:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+660j
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	esi, [ebx+4]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	word ptr [edx+6], 0
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)
		jmp	loc_F6EB0
; ---------------------------------------------------------------------------
		align 8

loc_F7138:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+C3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F73D0

loc_F714C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+557j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6F69
; ---------------------------------------------------------------------------
		align 10h

loc_F7160:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+99j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F7400

loc_F7174:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+587j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6F3F
; ---------------------------------------------------------------------------

loc_F7180:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+109j
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jnz	loc_F7430
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6FAF
; ---------------------------------------------------------------------------
		align 10h

loc_F71B0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+E8j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F73A0

loc_F71C4:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+527j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6F8E
; ---------------------------------------------------------------------------

loc_F71D0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+45j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F6EEB
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F6EEB
; ---------------------------------------------------------------------------

loc_F7210:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+22j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F7470

loc_F7224:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+5F7j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6EC8
; ---------------------------------------------------------------------------

loc_F7230:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+1C2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F7508

loc_F7244:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+68Fj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F7068
; ---------------------------------------------------------------------------

loc_F7250:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+15Aj
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jz	loc_F7000
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_20]
		jmp	loc_F7000
; ---------------------------------------------------------------------------
		align 10h

loc_F72A0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+1E6j
		mov	[ebp+var_20], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_20]
		test	eax, eax
		jz	loc_F708C
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_20]
		jmp	loc_F708C
; ---------------------------------------------------------------------------
		align 10h

loc_F72F0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+135j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F7620

loc_F7304:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+7A7j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F6FDB
; ---------------------------------------------------------------------------

loc_F7310:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+17Cj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_F7600

loc_F731F:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+77Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F7336
		mov	ecx, [ebx+4]
		movzx	eax, di
		lea	eax, [eax+eax*2]
		lea	eax, [ecx+eax*4]

loc_F7336:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+488j
		test	dl, dl
		movzx	ecx, word ptr [eax+4]
		jz	loc_F75B0

loc_F7342:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+724j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+754j
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F7359
		mov	edx, [ebx+4]
		movzx	ecx, cx
		lea	eax, [ecx+ecx*2]
		lea	eax, [edx+eax*4]

loc_F7359:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+4ABj
		cmp	di, [eax+2]
		jz	loc_F7650
		lea	eax, [esi+esi*2]
		mov	esi, [ebx+4]
		lea	eax, [esi+eax*4]

loc_F736C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+808j
		mov	word ptr [eax+6], 1
		movzx	eax, [ebp+var_1C]
		mov	esi, [ebx+4]
		lea	edx, [eax+eax*2]
		lea	edx, [esi+edx*4]
		mov	word ptr [edx+6], 0
		mov	[esp+4], eax
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)
		jmp	loc_F6EB0
; ---------------------------------------------------------------------------
		align 10h

loc_F73A0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+31Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F71C4
; ---------------------------------------------------------------------------
		align 10h

loc_F73D0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+2A6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F714C
; ---------------------------------------------------------------------------
		align 10h

loc_F7400:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+2CEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F7174
; ---------------------------------------------------------------------------
		align 10h

loc_F7430:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+2F4j
		mov	[ebp+var_20], ecx
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ecx, [ebp+var_20]
		jmp	loc_F6FAF
; ---------------------------------------------------------------------------
		align 10h

loc_F7470:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+37Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F7224
; ---------------------------------------------------------------------------
		align 10h

loc_F74A0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+25Aj
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE11RotateRightEt ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateRight(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_F7710

loc_F74BB:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+88Bj
		cmp	[ebp+var_1A], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F74D0
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_F74D0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+625j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_F7790

loc_F74DC:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+8FEj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+92Bj
		cmp	si, 0FFFFh
		jz	loc_F77D0
		mov	edi, [ebx+4]
		movzx	esi, si
		lea	eax, [esi+esi*2]
		lea	eax, [edi+eax*4]
		mov	edx, eax

loc_F74F4:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+93Dj
		movzx	edx, word ptr [edx+4]
		movzx	edi, [ebp+var_1A]
		mov	[ebp+var_1C], dx
		jmp	loc_F7109
; ---------------------------------------------------------------------------
		align 4

loc_F7508:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+39Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F7244
; ---------------------------------------------------------------------------
		align 8

loc_F7538:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+23Aj
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jz	loc_F70E0
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_20]
		jmp	loc_F70E0
; ---------------------------------------------------------------------------
		align 8

loc_F7588:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+217j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F7760

loc_F759C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+8E7j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F70BD
; ---------------------------------------------------------------------------
		align 10h

loc_F75B0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+49Cj
		mov	[ebp+var_20], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	ecx, [ebp+var_20]
		test	eax, eax
		jz	loc_F7342
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_20]
		jmp	loc_F7342
; ---------------------------------------------------------------------------
		align 10h

loc_F7600:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+479j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F7730

loc_F7614:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+8B7j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F731F
; ---------------------------------------------------------------------------

loc_F7620:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+45Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F7304
; ---------------------------------------------------------------------------
		align 10h

loc_F7650:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+4BDj
		mov	[esp+4], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE10RotateLeftEt ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::RotateLeft(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	short loc_F76E6

loc_F7667:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+861j
		cmp	[ebp+var_1A], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_F767C
		mov	ecx, [ebx+4]
		lea	eax, [esi+esi*2]
		lea	eax, [ecx+eax*4]

loc_F767C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+7D1j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	short loc_F76AD

loc_F7684:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+81Bj
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+844j
		cmp	si, 0FFFFh
		jz	loc_F77E2
		mov	edi, [ebx+4]
		movzx	esi, si
		lea	edx, [esi+esi*2]
		lea	edx, [edi+edx*4]
		mov	eax, edx

loc_F769C:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+94Fj
		movzx	edx, word ptr [edx+4]
		movzx	edi, [ebp+var_1A]
		mov	[ebp+var_1C], dx
		jmp	loc_F736C
; ---------------------------------------------------------------------------

loc_F76AD:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+7E2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_F7684
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	short loc_F7684
; ---------------------------------------------------------------------------

loc_F76E6:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+7C5j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F77F4

loc_F76FA:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+97Bj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F7667
; ---------------------------------------------------------------------------
		align 10h

loc_F7710:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+615j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_F7820

loc_F7724:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+9A7j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_F74BB
; ---------------------------------------------------------------------------

loc_F7730:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+76Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F7614
; ---------------------------------------------------------------------------
		align 10h

loc_F7760:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+6F6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F759C
; ---------------------------------------------------------------------------
		align 10h

loc_F7790:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+636j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F74DC
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F74DC
; ---------------------------------------------------------------------------

loc_F77D0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+640j
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, 0BFFF4h
		jmp	loc_F74F4
; ---------------------------------------------------------------------------

loc_F77E2:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+7E8j
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, 0BFFF4h
		jmp	loc_F769C
; ---------------------------------------------------------------------------

loc_F77F4:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+854j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F76FA
; ---------------------------------------------------------------------------

loc_F7820:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)+87Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F7724
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE15InsertRebalanceEt	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short, CUtlMap<unsigned short, unsigned short, unsigned short>::CKeyLess, CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned short, unsigned short, unsigned short>::Node_t, unsigned short>, unsigned short>>::Insert(CUtlMap<unsigned	short, unsigned	short, unsigned	short>::Node_t const&)
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE6InsertERKS2_ proc near
					; CODE XREF: AddPropOffsetToMap(CSendTablePrecalc *,int,int)+BFp

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	esi, word ptr [ebx+10h]
		cmp	si, 0FFFFh
		mov	[ebp+var_1A], si
		jnz	short loc_F7893
		jmp	loc_F79F9
; ---------------------------------------------------------------------------
		align 10h

loc_F7870:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+67j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F7970

loc_F787D:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+12Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+15Bj
		mov	eax, [ebx+4]
		movzx	eax, word ptr [eax+edi*4]
		mov	edi, 1
		cmp	ax, 0FFFFh
		jz	short loc_F78D6

loc_F788F:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+84j
		mov	[ebp+var_1A], ax

loc_F7893:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+18j
		movzx	eax, [ebp+var_1A]
		lea	edi, [eax+eax*2]
		mov	eax, [ebx+4]
		lea	esi, ds:0[edi*4]
		add	eax, esi
		add	eax, 8
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jnz	short loc_F7870
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_F79B0

loc_F78C6:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+16Ej
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+19Bj
		mov	eax, [ebx+4]
		xor	edi, edi
		movzx	eax, word ptr [eax+esi+2]
		cmp	ax, 0FFFFh
		jnz	short loc_F788F

loc_F78D6:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+3Dj
		mov	[ebp+var_28], esi
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)
		movzx	esi, [ebp+var_1A]
		movzx	edx, ax
		mov	ecx, eax
		lea	eax, [edx+edx*2]
		shl	eax, 2
		mov	[ebp+var_20], eax
		add	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	[eax+4], si
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0
		jz	loc_F7A29
		mov	eax, edi
		mov	esi, [ebp+var_28]
		test	al, al
		mov	eax, [ebx+4]
		jnz	loc_F79F0
		mov	[eax+esi+2], cx

loc_F792A:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+1A4j
					; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+1DDj
		mov	[ebp+var_24], ecx
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE15InsertRebalanceEt	; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::InsertRebalance(ushort)
		mov	eax, [ebp+var_20]
		add	word ptr [ebx+12h], 1
		add	eax, [ebx+4]
		mov	ecx, [ebp+var_24]
		cmp	eax, 0FFFFFFF8h
		jz	short loc_F795E
		mov	ebx, [ebp+arg_4]
		movzx	edx, word ptr [ebx]
		mov	[eax+8], dx
		movzx	edx, word ptr [ebx+2]
		mov	[eax+0Ah], dx

loc_F795E:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+FAj
		add	esp, 2Ch
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F7970:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+27j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F787D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F787D
; ---------------------------------------------------------------------------

loc_F79B0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+70j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_F78C6
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_F78C6
; ---------------------------------------------------------------------------

loc_F79F0:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+CFj
		mov	[eax+esi], cx
		jmp	loc_F792A
; ---------------------------------------------------------------------------

loc_F79F9:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+1Aj
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE7NewNodeEv ; CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::NewNode(void)
		movzx	edx, ax
		mov	ecx, eax
		lea	eax, [edx+edx*2]
		shl	eax, 2
		mov	[ebp+var_20], eax
		add	eax, [ebx+4]
		mov	word ptr [eax+4], 0FFFFh
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0

loc_F7A29:				; CODE XREF: CUtlRBTree<CUtlMap<ushort,ushort,ushort>::Node_t,ushort,CUtlMap<ushort,ushort,ushort>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<ushort,ushort,ushort>::Node_t,ushort>,ushort>>::Insert(CUtlMap<ushort,ushort,ushort>::Node_t const&)+BFj
		mov	[ebx+10h], cx
		jmp	loc_F792A
_ZN10CUtlRBTreeIN7CUtlMapItttE6Node_tEtNS1_8CKeyLessE10CUtlMemoryI15UtlRBTreeNode_tIS2_tEtEE6InsertERKS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CRecvDecoder::CRecvDecoder(void)
_ZN12CRecvDecoderC2Ev proc near		; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+221p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		lea	eax, [ebx+8]
		mov	[esp], eax
		call	_ZN17CSendTablePrecalcC2Ev ; CSendTablePrecalc::CSendTablePrecalc(void)
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+120h], 0
		mov	dword ptr [ebx+124h], 0
		mov	dword ptr [ebx+128h], 0
		mov	dword ptr [ebx+12Ch], 0
		mov	dword ptr [ebx+130h], 0
		mov	dword ptr [ebx+134h], 0
		mov	dword ptr [ebx+138h], 0
		mov	dword ptr [ebx+13Ch], 0
		mov	dword ptr [ebx+140h], 0
		mov	dword ptr [ebx+144h], 0
		mov	dword ptr [ebx+4], 0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN12CRecvDecoderC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientSendProp::CClientSendProp(void)
_ZN15CClientSendPropC2Ev proc near	; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+76p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 0
		pop	ebp
		retn
_ZN15CClientSendPropC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientSendProp::~CClientSendProp()
_ZN15CClientSendPropD2Ev proc near	; CODE XREF: CUtlVector<CClientSendProp,CUtlMemory<CClientSendProp,int>>::SetCount(int)+2Dp
					; CClientSendTable::~CClientSendTable()+D0p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_F7AF8
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZdaPv		; operator delete[](void *)
; ---------------------------------------------------------------------------
		align 4

loc_F7AF8:				; CODE XREF: CClientSendProp::~CClientSendProp()+Aj
		pop	ebp
		retn
_ZN15CClientSendPropD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientSendTable::CClientSendTable(void)
_ZN16CClientSendTableC2Ev proc near	; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+1Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN9SendTableC2Ev ; SendTable::SendTable(void)
		mov	dword ptr [ebx+14h], 0
		mov	dword ptr [ebx+18h], 0
		mov	dword ptr [ebx+1Ch], 0
		mov	dword ptr [ebx+20h], 0
		mov	dword ptr [ebx+24h], 0
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN16CClientSendTableC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CClientSendTable::~CClientSendTable()
_ZN16CClientSendTableD2Ev proc near	; CODE XREF: RecvTable_Term(bool)+E1p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_F7B5B
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_F7B5B:				; CODE XREF: CClientSendTable::~CClientSendTable()+11j
		mov	edx, [esi+4]
		xor	ebx, ebx
		xor	edi, edi
		mov	eax, [esi]
		test	edx, edx
		jle	short loc_F7BB7
		nop
		lea	esi, [esi+0]

loc_F7B70:				; CODE XREF: CClientSendTable::~CClientSendTable()+75j
		lea	edx, [eax+ebx]
		mov	ecx, [edx+30h]
		test	ecx, ecx
		jz	short loc_F7B87
		mov	[esp], ecx	; void *
		call	_ZdaPv		; operator delete[](void *)
		mov	eax, [esi]
		lea	edx, [eax+ebx]

loc_F7B87:				; CODE XREF: CClientSendTable::~CClientSendTable()+38j
		mov	ecx, [edx+28h]
		test	ecx, ecx
		jz	short loc_F7B9B
		mov	[esp], ecx	; void *
		call	_ZdaPv		; operator delete[](void *)
		mov	eax, [esi]
		lea	edx, [eax+ebx]

loc_F7B9B:				; CODE XREF: CClientSendTable::~CClientSendTable()+4Cj
		mov	edx, [edx+2Ch]
		test	edx, edx
		jz	short loc_F7BAC
		mov	[esp], edx	; void *
		call	_ZdaPv		; operator delete[](void *)
		mov	eax, [esi]

loc_F7BAC:				; CODE XREF: CClientSendTable::~CClientSendTable()+60j
		add	edi, 1
		add	ebx, 50h
		cmp	[esi+4], edi
		jg	short loc_F7B70

loc_F7BB7:				; CODE XREF: CClientSendTable::~CClientSendTable()+26j
		test	eax, eax
		jz	short loc_F7BEB
		mov	edx, [eax-4]
		lea	ebx, [edx+edx*4]
		shl	ebx, 4
		add	ebx, eax
		jmp	short loc_F7BDC
; ---------------------------------------------------------------------------
		align 10h

loc_F7BD0:				; CODE XREF: CClientSendTable::~CClientSendTable()+9Ej
		sub	ebx, 50h
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	eax, [esi]

loc_F7BDC:				; CODE XREF: CClientSendTable::~CClientSendTable()+86j
		cmp	ebx, eax
		jnz	short loc_F7BD0
		sub	ebx, 4
		mov	[esp], ebx	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_F7BEB:				; CODE XREF: CClientSendTable::~CClientSendTable()+79j
		mov	ebx, [esi+20h]
		lea	eax, [esi+14h]
		mov	[ebp+var_1C], eax
		sub	ebx, 1
		js	short loc_F7C1A
		lea	edi, ds:0[ebx*4]

loc_F7C00:				; CODE XREF: CClientSendTable::~CClientSendTable()+D8j
		mov	edx, [ebp+var_1C]
		sub	ebx, 1
		mov	eax, [edx]
		add	eax, edi
		sub	edi, 4
		mov	[esp], eax
		call	_ZN15CClientSendPropD2Ev ; CClientSendProp::~CClientSendProp()
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_F7C00

loc_F7C1A:				; CODE XREF: CClientSendTable::~CClientSendTable()+B7j
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esi+20h], 0
		mov	[esp], eax
		call	_ZN10CUtlMemoryI15CClientSendPropiE5PurgeEv ; CUtlMemory<CClientSendProp,int>::Purge(void)
		mov	eax, [esi+14h]
		mov	edx, [ebp+var_1C]
		mov	[esi+24h], eax
		mov	[esp], edx
		call	_ZN10CUtlMemoryI15CClientSendPropiE5PurgeEv ; CUtlMemory<CClientSendProp,int>::Purge(void)
		mov	[ebp+arg_0], esi
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZN9SendTableD2Ev ; SendTable::~SendTable()
_ZN16CClientSendTableD2Ev endp

; ---------------------------------------------------------------------------
		mov	ebx, [esi+20h]
		mov	[ebp-20h], eax
		lea	eax, [esi+14h]
		mov	[ebp-1Ch], eax
		sub	ebx, 1
		js	short loc_F7C7E
		lea	edi, ds:0[ebx*4]

loc_F7C64:				; CODE XREF: .text:000F7C7Cj
		mov	edx, [ebp-1Ch]
		sub	ebx, 1
		mov	eax, [edx]
		add	eax, edi
		sub	edi, 4
		mov	[esp], eax
		call	_ZN15CClientSendPropD2Ev ; CClientSendProp::~CClientSendProp()
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_F7C64

loc_F7C7E:				; CODE XREF: .text:000F7C5Bj
		mov	eax, [ebp-1Ch]
		mov	dword ptr [esi+20h], 0
		mov	[esp], eax
		call	_ZN10CUtlMemoryI15CClientSendPropiE5PurgeEv ; CUtlMemory<CClientSendProp,int>::Purge(void)
		mov	eax, [esi+14h]
		mov	edx, [ebp-1Ch]
		mov	[esi+24h], eax
		mov	[esp], edx
		call	_ZN10CUtlMemoryI15CClientSendPropiE5PurgeEv ; CUtlMemory<CClientSendProp,int>::Purge(void)
		mov	[esp], esi
		call	_ZN9SendTableD2Ev ; SendTable::~SendTable()
		mov	eax, [ebp-20h]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<CClientSendProp, int>::Purge(void)
_ZN10CUtlMemoryI15CClientSendPropiE5PurgeEv proc near
					; CODE XREF: CClientSendTable::~CClientSendTable()+E7p
					; CClientSendTable::~CClientSendTable()+F8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_F7CEC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_F7CE5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_F7CE5:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_F7CEC:				; CODE XREF: CUtlMemory<CClientSendProp,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15CClientSendPropiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable proc near
					; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+2D6p
					; RecvTable_Term(bool)+81p

var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		cmp	byte ptr [eax+11h], 0
		jz	loc_F80D0
		mov	edx, [eax+4]
		mov	byte ptr [eax+11h], 0
		mov	dword ptr [eax+8], 0
		test	edx, edx
		jle	loc_F80D0
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_1C], eax
		jmp	short loc_F7D4A
; ---------------------------------------------------------------------------
		align 8

loc_F7D38:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+55j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+5Ej	...
		mov	eax, [ebp+var_1C]
		add	ebx, 1
		add	esi, 3Ch
		cmp	[eax+4], ebx
		jle	loc_F80D0

loc_F7D4A:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+30j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+3C2j
		mov	edx, [ebp+var_1C]
		mov	eax, esi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7D38
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7D38
		mov	eax, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	eax, eax
		jle	short loc_F7D38
		xor	ecx, ecx
		mov	[ebp+var_3C], ebx
		xor	edi, edi
		mov	[ebp+var_20], edx
		mov	ebx, ecx
		mov	[ebp+var_40], esi
		jmp	short loc_F7D9A
; ---------------------------------------------------------------------------
		align 8

loc_F7D88:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+A5j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+AEj	...
		mov	edx, [ebp+var_20]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jge	loc_F80B0

loc_F7D9A:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+81j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+3A2j
		mov	edx, [ebp+var_20]
		mov	eax, edi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7D88
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7D88
		mov	eax, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	eax, eax
		jle	short loc_F7D88
		xor	ecx, ecx
		mov	[ebp+var_44], ebx
		xor	esi, esi
		mov	[ebp+var_24], edx
		mov	ebx, ecx
		mov	[ebp+var_48], edi
		jmp	short loc_F7DEA
; ---------------------------------------------------------------------------
		align 8

loc_F7DD8:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+F5j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+FEj	...
		mov	edx, [ebp+var_24]
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edx+4]
		jge	loc_F8090

loc_F7DEA:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+D1j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+382j
		mov	edx, [ebp+var_24]
		mov	eax, esi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7DD8
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7DD8
		mov	eax, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	eax, eax
		jle	short loc_F7DD8
		xor	ecx, ecx
		mov	[ebp+var_4C], ebx
		xor	edi, edi
		mov	[ebp+var_28], edx
		mov	ebx, ecx
		mov	[ebp+var_50], esi
		jmp	short loc_F7E3A
; ---------------------------------------------------------------------------
		align 8

loc_F7E28:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+145j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+14Ej ...
		mov	edx, [ebp+var_28]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jge	loc_F8070

loc_F7E3A:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+121j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+362j
		mov	edx, [ebp+var_28]
		mov	eax, edi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7E28
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7E28
		mov	eax, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	eax, eax
		jle	short loc_F7E28
		xor	ecx, ecx
		mov	[ebp+var_54], ebx
		xor	esi, esi
		mov	[ebp+var_2C], edx
		mov	ebx, ecx
		mov	[ebp+var_58], edi
		jmp	short loc_F7E8A
; ---------------------------------------------------------------------------
		align 8

loc_F7E78:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+195j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+19Ej ...
		mov	edx, [ebp+var_2C]
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edx+4]
		jge	loc_F8050

loc_F7E8A:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+171j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+342j
		mov	edx, [ebp+var_2C]
		mov	eax, esi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7E78
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7E78
		mov	eax, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	eax, eax
		jle	short loc_F7E78
		xor	ecx, ecx
		mov	[ebp+var_5C], ebx
		xor	edi, edi
		mov	[ebp+var_30], edx
		mov	ebx, ecx
		mov	[ebp+var_60], esi
		jmp	short loc_F7EDA
; ---------------------------------------------------------------------------
		align 8

loc_F7EC8:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+1E5j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+1EEj ...
		mov	edx, [ebp+var_30]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jge	loc_F8030

loc_F7EDA:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+1C1j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+322j
		mov	edx, [ebp+var_30]
		mov	eax, edi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7EC8
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7EC8
		mov	eax, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	eax, eax
		jle	short loc_F7EC8
		xor	ecx, ecx
		mov	[ebp+var_64], ebx
		xor	esi, esi
		mov	[ebp+var_34], edx
		mov	ebx, ecx
		mov	[ebp+var_68], edi
		jmp	short loc_F7F2A
; ---------------------------------------------------------------------------
		align 8

loc_F7F18:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+235j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+23Ej ...
		mov	edx, [ebp+var_34]
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edx+4]
		jge	loc_F8010

loc_F7F2A:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+211j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+30Aj
		mov	edx, [ebp+var_34]
		mov	eax, esi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7F18
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7F18
		mov	edi, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	edi, edi
		jle	short loc_F7F18
		xor	ecx, ecx
		mov	[ebp+var_6C], ebx
		xor	edi, edi
		mov	[ebp+var_38], edx
		mov	ebx, ecx
		mov	[ebp+var_70], esi
		jmp	short loc_F7F7A
; ---------------------------------------------------------------------------
		align 8

loc_F7F68:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+285j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+28Ej ...
		mov	edx, [ebp+var_38]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jge	loc_F7FF8

loc_F7F7A:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+261j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+2F2j
		mov	edx, [ebp+var_38]
		mov	eax, edi
		add	eax, [edx]
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7F68
		mov	edx, [eax+28h]
		cmp	byte ptr [edx+11h], 0
		jz	short loc_F7F68
		mov	esi, [edx+4]
		mov	byte ptr [edx+11h], 0
		mov	dword ptr [edx+8], 0
		test	esi, esi
		jle	short loc_F7F68
		xor	ecx, ecx
		mov	[ebp+var_74], ebx
		xor	esi, esi
		mov	[ebp+var_78], edi
		mov	ebx, ecx
		mov	edi, edx
		jmp	short loc_F7FC3
; ---------------------------------------------------------------------------
		align 8

loc_F7FB8:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+2CBj
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edi+4]
		jge	short loc_F7FE0

loc_F7FC3:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+2B0j
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+2DEj
		mov	eax, [edi]
		add	eax, esi
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F7FB8
		mov	eax, [eax+28h]
		add	ebx, 1
		add	esi, 3Ch
		call	_ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable
		cmp	ebx, [edi+4]
		jl	short loc_F7FC3

loc_F7FE0:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+2C1j
		mov	ebx, [ebp+var_74]
		mov	edi, [ebp+var_78]
		mov	edx, [ebp+var_38]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jl	short loc_F7F7A
		lea	esi, [esi+0]

loc_F7FF8:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+274j
		mov	ebx, [ebp+var_6C]
		mov	esi, [ebp+var_70]
		mov	edx, [ebp+var_34]
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edx+4]
		jl	loc_F7F2A

loc_F8010:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+224j
		mov	ebx, [ebp+var_64]
		mov	edi, [ebp+var_68]
		mov	edx, [ebp+var_30]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jl	loc_F7EDA
		nop
		lea	esi, [esi+0]

loc_F8030:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+1D4j
		mov	ebx, [ebp+var_5C]
		mov	esi, [ebp+var_60]
		mov	edx, [ebp+var_2C]
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edx+4]
		jl	loc_F7E8A
		nop
		lea	esi, [esi+0]

loc_F8050:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+184j
		mov	ebx, [ebp+var_54]
		mov	edi, [ebp+var_58]
		mov	edx, [ebp+var_28]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jl	loc_F7E3A
		nop
		lea	esi, [esi+0]

loc_F8070:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+134j
		mov	ebx, [ebp+var_4C]
		mov	esi, [ebp+var_50]
		mov	edx, [ebp+var_24]
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edx+4]
		jl	loc_F7DEA
		nop
		lea	esi, [esi+0]

loc_F8090:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+E4j
		mov	ebx, [ebp+var_44]
		mov	edi, [ebp+var_48]
		mov	edx, [ebp+var_20]
		add	ebx, 1
		add	edi, 3Ch
		cmp	ebx, [edx+4]
		jl	loc_F7D9A
		nop
		lea	esi, [esi+0]

loc_F80B0:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+94j
		mov	ebx, [ebp+var_3C]
		mov	esi, [ebp+var_40]
		mov	eax, [ebp+var_1C]
		add	ebx, 1
		add	esi, 3Ch
		cmp	[eax+4], ebx
		jg	loc_F7D4A
		nop
		lea	esi, [esi+0]

loc_F80D0:				; CODE XREF: _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+Dj
					; _ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable+23j	...
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FindRecvTable(char *s2)
_Z13FindRecvTablePKc proc near		; CODE XREF: DataTable_SetupReceiveTableFromSendTable(SendTable	*,bool)+24Dp

var_1C		= dword	ptr -1Ch
s2		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 2Ch
		movzx	eax, word ptr ds:g_RecvTables+0Ch
		mov	edi, [ebp+s2]
		cmp	eax, 0FFFFh
		jz	short loc_F8136
		mov	edx, dword ptr ds:g_RecvTables
		mov	[ebp+var_1C], edx
		jmp	short loc_F811B
; ---------------------------------------------------------------------------
		align 10h

loc_F8110:				; CODE XREF: FindRecvTable(char	 const*)+54j
		movzx	eax, word ptr [ebx+6]
		cmp	eax, 0FFFFh
		jz	short loc_F8140

loc_F811B:				; CODE XREF: FindRecvTable(char	 const*)+25j
		mov	edx, [ebp+var_1C]
		lea	ebx, [edx+eax*8]
		mov	esi, [ebx]
		mov	[esp+4], edi	; s2
		mov	eax, [esi+0Ch]
		mov	[esp], eax	; s1
		call	strcasecmp
		test	eax, eax
		jnz	short loc_F8110

loc_F8136:				; CODE XREF: FindRecvTable(char	 const*)+1Aj
		add	esp, 2Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F8140:				; CODE XREF: FindRecvTable(char	 const*)+39j
		add	esp, 2Ch
		xor	esi, esi
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z13FindRecvTablePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SetupClientSendTableHierarchy(void)
_Z29SetupClientSendTableHierarchyv proc	near
					; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *):loc_FA3B2p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	eax, 1
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	edx, word ptr ds:g_ClientSendTables+0Ch
		cmp	edx, 0FFFFh
		mov	[ebp+var_30], edx
		mov	ecx, edx
		jz	loc_F8260
		mov	edx, dword ptr ds:g_ClientSendTables

loc_F817C:				; CODE XREF: SetupClientSendTableHierarchy(void)+105j
		shl	ecx, 3
		mov	eax, ecx
		mov	[ebp+var_34], ecx
		add	eax, edx
		mov	ecx, [eax]
		mov	[ebp+var_24], ecx
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jle	loc_F824B
		mov	[ebp+var_28], 0
		mov	[ebp+var_20], 0
		jmp	short loc_F81C3
; ---------------------------------------------------------------------------
		align 10h

loc_F81B0:				; CODE XREF: SetupClientSendTableHierarchy(void)+85j
					; SetupClientSendTableHierarchy(void)+E3j
		add	[ebp+var_20], 1
		mov	edx, [ebp+var_24]
		add	[ebp+var_28], 50h
		mov	ecx, [ebp+var_20]
		cmp	[edx+4], ecx
		jle	short loc_F8240

loc_F81C3:				; CODE XREF: SetupClientSendTableHierarchy(void)+54j
		mov	edx, [ebp+var_24]
		mov	ecx, [ebp+var_28]
		mov	eax, [edx+14h]
		add	ecx, [edx]
		cmp	dword ptr [ecx+8], 6
		mov	[ebp+var_2C], ecx
		jnz	short loc_F81B0
		mov	edx, [ebp+var_20]
		mov	edi, [eax+edx*4]
		test	edi, edi
		jz	loc_F8268
		mov	eax, [ebp+var_30]
		cmp	eax, 0FFFFh
		jz	loc_F8298

loc_F81F3:				; CODE XREF: SetupClientSendTableHierarchy(void)+13Dj
		mov	edx, dword ptr ds:g_ClientSendTables
		mov	[ebp+var_1C], edx
		jmp	short loc_F820F
; ---------------------------------------------------------------------------
		align 10h

loc_F8200:				; CODE XREF: SetupClientSendTableHierarchy(void)+DBj
		movzx	eax, word ptr [ebx+6]
		cmp	eax, 0FFFFh
		jz	loc_F8298

loc_F820F:				; CODE XREF: SetupClientSendTableHierarchy(void)+ACj
		mov	ecx, [ebp+var_1C]
		movzx	eax, ax
		lea	ebx, [ecx+eax*8]
		mov	esi, [ebx]
		mov	[esp+4], edi	; s2
		mov	eax, [esi+8]
		mov	[esp], eax	; s1
		call	strcasecmp
		test	eax, eax
		jnz	short loc_F8200
		mov	edx, [ebp+var_2C]
		mov	[edx+44h], esi
		jmp	loc_F81B0
; ---------------------------------------------------------------------------
		align 10h

loc_F8240:				; CODE XREF: SetupClientSendTableHierarchy(void)+71j
		mov	edx, dword ptr ds:g_ClientSendTables
		mov	eax, [ebp+var_34]
		add	eax, edx

loc_F824B:				; CODE XREF: SetupClientSendTableHierarchy(void)+40j
		movzx	ecx, word ptr [eax+6]
		cmp	ecx, 0FFFFh
		jnz	loc_F817C
		mov	eax, 1

loc_F8260:				; CODE XREF: SetupClientSendTableHierarchy(void)+20j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F8268:				; CODE XREF: SetupClientSendTableHierarchy(void)+8Fj
		mov	eax, [ecx+30h]
		mov	dword ptr [esp], offset	aSetupclientsen	; "SetupClientSendTableHierarchy: missing "...
		mov	[esp+4], eax
		call	Error
		movzx	ecx, word ptr ds:g_ClientSendTables+0Ch
		mov	[ebp+var_30], ecx
		mov	eax, [ebp+var_30]
		cmp	eax, 0FFFFh
		jnz	loc_F81F3
		nop
		lea	esi, [esi+0]

loc_F8298:				; CODE XREF: SetupClientSendTableHierarchy(void)+9Dj
					; SetupClientSendTableHierarchy(void)+B9j
		mov	ecx, [ebp+var_24]
		mov	eax, [ecx+8]
		mov	[esp+4], edi	; arg
		mov	dword ptr [esp], offset	aSetupclients_0	; "SetupClientSendTableHierarchy: missing "...
		mov	[esp+8], eax
		call	_Z17DataTable_WarningPKcz ; DataTable_Warning(char  const*,...)
		add	esp, 3Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z29SetupClientSendTableHierarchyv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CompareRecvPropToSendProp(RecvProp  const*, SendProp	const*)
_Z25CompareRecvPropToSendPropPK8RecvPropPK8SendProp proc near
					; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+B9p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		test	ebx, ebx
		jz	short loc_F8313
		lea	esi, [esi+0]

loc_F82D8:				; CODE XREF: CompareRecvPropToSendProp(RecvProp	 const*,SendProp  const*)+51j
		test	esi, esi
		jz	short loc_F8313

loc_F82DC:				; CODE XREF: CompareRecvPropToSendProp(RecvProp	 const*,SendProp  const*)+5Fj
		mov	eax, [esi+4]
		cmp	eax, [ebx+8]
		jz	short loc_F82F0

loc_F82E4:				; CODE XREF: CompareRecvPropToSendProp(RecvProp	 const*,SendProp  const*)+3Aj
					; CompareRecvPropToSendProp(RecvProp  const*,SendProp  const*)+47j
		xor	eax, eax

loc_F82E6:				; CODE XREF: CompareRecvPropToSendProp(RecvProp	 const*,SendProp  const*)+66j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F82F0:				; CODE XREF: CompareRecvPropToSendProp(RecvProp	 const*,SendProp  const*)+22j
		test	byte ptr [ebx+39h], 1
		setnz	dl
		cmp	[esi+10h], dl
		jnz	short loc_F82E4
		cmp	eax, 5
		jnz	short loc_F8321
		mov	eax, [ebx+20h]
		cmp	[esi+34h], eax
		jnz	short loc_F82E4
		mov	ebx, [ebx+18h]
		mov	esi, [esi+18h]
		test	ebx, ebx
		jnz	short loc_F82D8

loc_F8313:				; CODE XREF: CompareRecvPropToSendProp(RecvProp	 const*,SendProp  const*)+10j
					; CompareRecvPropToSendProp(RecvProp  const*,SendProp  const*)+1Aj
		mov	dword ptr [esp], offset	aComparerecvpro	; "CompareRecvPropToSendProp: missing a	pr"...
		call	Error
		jmp	short loc_F82DC
; ---------------------------------------------------------------------------

loc_F8321:				; CODE XREF: CompareRecvPropToSendProp(RecvProp	 const*,SendProp  const*)+3Fj
		mov	eax, 1
		jmp	short loc_F82E6
_Z25CompareRecvPropToSendPropPK8RecvPropPK8SendProp endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl RecvTable_FreeSendTable(void *)
_Z23RecvTable_FreeSendTableP9SendTable proc near
					; CODE XREF: RecvTable_RecvClassInfos(bf_read *,bool,int)+44p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		mov	ebx, [esi+4]
		test	ebx, ebx
		jle	short loc_F8383
		xor	edi, edi
		xor	ebx, ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_F8350:				; CODE XREF: RecvTable_FreeSendTable(SendTable *)+51j
		mov	eax, [esi]
		add	eax, edi
		mov	edx, [eax+30h]
		test	edx, edx
		jz	short loc_F8369
		mov	[ebp+var_20], eax
		mov	[esp], edx	; void *
		call	_ZdaPv		; operator delete[](void *)
		mov	eax, [ebp+var_20]

loc_F8369:				; CODE XREF: RecvTable_FreeSendTable(SendTable *)+29j
		mov	eax, [eax+28h]
		test	eax, eax
		jz	short loc_F8378
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_F8378:				; CODE XREF: RecvTable_FreeSendTable(SendTable *)+3Ej
		add	ebx, 1
		add	edi, 50h
		cmp	[esi+4], ebx
		jg	short loc_F8350

loc_F8383:				; CODE XREF: RecvTable_FreeSendTable(SendTable *)+11j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_F83C4
		mov	edx, [eax-4]
		lea	edi, [edx+edx*4]
		shl	edi, 4
		add	edi, eax
		cmp	eax, edi
		jz	short loc_F83B9
		lea	eax, [edi-50h]
		mov	ebx, edi
		mov	[ebp+var_1C], eax

loc_F83A0:				; CODE XREF: RecvTable_FreeSendTable(SendTable *)+87j
		mov	edx, [ebp+var_1C]
		sub	ebx, 50h
		mov	eax, ebx
		sub	eax, edi
		mov	eax, [edx+eax+50h]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	eax, [esi]
		cmp	eax, ebx
		jnz	short loc_F83A0

loc_F83B9:				; CODE XREF: RecvTable_FreeSendTable(SendTable *)+66j
		sub	eax, 4
		mov	[esp], eax	; void *
		call	_ZdaPv		; operator delete[](void *)

loc_F83C4:				; CODE XREF: RecvTable_FreeSendTable(SendTable *)+57j
		mov	[esp], esi	; void *
		call	_ZN9SendTableD2Ev ; SendTable::~SendTable()
		mov	[ebp+arg_0], esi
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_Z23RecvTable_FreeSendTableP9SendTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_ReadInfos(bf_read *, int)
_Z19RecvTable_ReadInfosP7bf_readi proc near
					; CODE XREF: RecvTable_RecvClassInfos(bf_read *,bool,int)+22p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [esp], 14h
		call	_Znwj		; operator new(uint)
		mov	[ebp+var_28], eax
		mov	[esp], eax
		call	_ZN9SendTableC2Ev ; SendTable::SendTable(void)
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN7bf_read21ReadAndAllocateStringEPb ;	bf_read::ReadAndAllocateString(bool *)
		mov	edx, [ebp+var_28]
		mov	[edx+8], eax
		mov	edx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 9
		jle	loc_F87D8
		mov	edx, [ebx]
		lea	esi, [eax+9]
		mov	ecx, eax
		and	ecx, 1Fh
		sar	esi, 5
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Ah]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		mov	edi, [edx+esi*4]
		mov	eax, [edx+eax*4]
		shl	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		or	edi, eax
		mov	eax, [ebp+var_28]
		and	edi, 3FFh
		test	edi, edi
		mov	[eax+4], edi
		jnz	short loc_F8488

loc_F846D:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+40Dj
		mov	eax, [ebp+var_28]
		mov	dword ptr [eax], 0

loc_F8476:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+105j
					; RecvTable_ReadInfos(bf_read *,int)+198j
		mov	eax, [ebp+var_28]
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_F8488:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+8Bj
		lea	eax, [edi+edi*4]
		shl	eax, 4
		add	eax, 4
		mov	[esp], eax
		call	_Znaj		; operator new[](uint)
		mov	[eax], edi
		sub	edi, 1
		mov	esi, eax
		mov	[ebp+var_20], edi
		add	esi, 4
		cmp	[ebp+var_20], 0FFFFFFFFh
		mov	[ebp+var_1C], edi
		mov	edi, esi
		mov	[ebp+var_24], eax
		jz	loc_F87F2
		mov	[ebp+var_2C], esi
		mov	esi, ebx
		mov	ebx, [ebp+var_20]

loc_F84C0:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+F1j
		mov	[esp], edi
		call	_ZN8SendPropC2Ev ; SendProp::SendProp(void)
		sub	ebx, 1
		add	edi, 50h
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_F84C0
		mov	ecx, [ebp+var_28]
		mov	ebx, esi
		mov	esi, [ebp+var_2C]
		mov	eax, [ecx+4]

loc_F84DE:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+418j
		mov	edx, [ebp+var_28]
		test	eax, eax
		mov	[edx], esi
		jle	short loc_F8476
		xor	edx, edx
		cmp	[ebp+arg_4], 2
		mov	eax, 2
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		setnz	dl
		lea	edx, [edx+edx*4+0Bh]
		mov	ecx, edx
		mov	[ebp+var_2C], edx
		sub	ecx, 1
		shl	eax, cl
		sub	eax, 1
		mov	[ebp+var_30], eax
		jmp	short loc_F8580
; ---------------------------------------------------------------------------
		align 10h

loc_F8520:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+271j
		sub	ecx, edx
		cmp	ecx, 9
		jle	loc_F8790
		lea	eax, [edx+0Ah]
		mov	edi, edx
		mov	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], eax
		lea	eax, [edx+9]
		sub	ecx, edi
		sar	edx, 5
		mov	[ebp+var_1C], ecx
		mov	ecx, [ebx]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shl	eax, cl
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx
		and	eax, 3FFh

loc_F8564:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+3BDj
		mov	[esi+20h], eax

loc_F8567:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+350j
					; RecvTable_ReadInfos(bf_read *,int)+36Bj
		add	[ebp+var_20], 1
		mov	eax, [ebp+var_28]
		add	[ebp+var_24], 50h
		mov	edx, [ebp+var_20]
		cmp	[eax+4], edx
		jle	loc_F8476
		mov	esi, [eax]

loc_F8580:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+137j
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		add	esi, [ebp+var_24]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 4
		jle	loc_F8768
		lea	eax, [edx+5]
		mov	edi, edx
		mov	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], eax
		lea	eax, [edx+4]
		sub	ecx, edi
		sar	edx, 5
		mov	[ebp+var_1C], ecx
		mov	ecx, [ebx]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shl	eax, cl
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx
		and	eax, 1Fh

loc_F85CD:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+395j
		mov	[esi+8], eax
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN7bf_read21ReadAndAllocateStringEPb ;	bf_read::ReadAndAllocateString(bool *)
		mov	[esi+30h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	[ebp+var_2C], ecx
		jg	loc_F8750
		mov	edi, edx
		mov	eax, [ebp+var_2C]
		mov	ecx, 20h
		and	edi, 1Fh
		sub	ecx, edi
		mov	[ebp+var_1C], ecx
		mov	ecx, [ebx]
		add	eax, edx
		sar	edx, 5
		mov	[ebx+0Ch], eax
		sub	eax, 1
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shl	eax, cl
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx
		and	eax, [ebp+var_30]

loc_F862F:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+37Dj
		mov	edx, [esi+8]
		mov	[esi+38h], eax
		cmp	edx, 6
		jz	loc_F8738
		test	al, 40h
		jnz	loc_F8738
		mov	eax, [ebx+8]
		cmp	edx, 5
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		jz	loc_F8520
		sub	ecx, edx
		cmp	ecx, 1Fh
		jle	loc_F87C0
		lea	eax, [edx+20h]
		mov	edi, edx
		mov	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], eax
		lea	eax, [edx+1Fh]
		sub	ecx, edi
		sar	edx, 5
		mov	[ebp+var_1C], ecx
		mov	ecx, [ebx]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shl	eax, cl
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx

loc_F8696:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+3EDj
		mov	[esi+10h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 1Fh
		jle	loc_F87A8
		lea	eax, [edx+20h]
		mov	edi, edx
		mov	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], eax
		lea	eax, [edx+1Fh]
		sub	ecx, edi
		sar	edx, 5
		mov	[ebp+var_1C], ecx
		mov	ecx, [ebx]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shl	eax, cl
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx

loc_F86E0:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+3D5j
		mov	[esi+14h], eax
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 6
		jle	loc_F8780
		lea	eax, [edx+7]
		mov	edi, edx
		mov	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], eax
		lea	eax, [edx+6]
		sub	ecx, edi
		sar	edx, 5
		mov	[ebp+var_1C], ecx
		mov	ecx, [ebx]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shl	eax, cl
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		mov	ecx, edi
		shr	edx, cl
		or	eax, edx
		and	eax, 7Fh

loc_F872D:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+3ADj
		mov	[esi+0Ch], eax
		jmp	loc_F8567
; ---------------------------------------------------------------------------
		align 4

loc_F8738:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+258j
					; RecvTable_ReadInfos(bf_read *,int)+260j
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN7bf_read21ReadAndAllocateStringEPb ;	bf_read::ReadAndAllocateString(bool *)
		mov	[esi+28h], eax
		jmp	loc_F8567
; ---------------------------------------------------------------------------

loc_F8750:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+210j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F862F
; ---------------------------------------------------------------------------
		align 8

loc_F8768:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+1B0j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F85CD
; ---------------------------------------------------------------------------
		align 10h

loc_F8780:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+310j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_F872D
; ---------------------------------------------------------------------------
		align 10h

loc_F8790:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+145j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F8564
; ---------------------------------------------------------------------------
		align 8

loc_F87A8:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+2C6j
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F86E0
; ---------------------------------------------------------------------------
		align 10h

loc_F87C0:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+27Cj
		mov	[ebx+0Ch], eax
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_F8696
; ---------------------------------------------------------------------------
		align 8

loc_F87D8:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+46j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_28]
		mov	dword ptr [eax+4], 0
		jmp	loc_F846D
; ---------------------------------------------------------------------------

loc_F87F2:				; CODE XREF: RecvTable_ReadInfos(bf_read *,int)+D2j
		mov	edx, [ebp+var_28]
		mov	eax, [edx+4]
		jmp	loc_F84DE
_Z19RecvTable_ReadInfosP7bf_readi endp

; ---------------------------------------------------------------------------
		mov	esi, [ebp-2Ch]
		mov	[ebp-20h], ebx
		mov	[ebp-28h], eax
		test	esi, esi
		jz	short loc_F883A
		mov	eax, [ebp-1Ch]
		sub	eax, ebx
		lea	edi, [eax+eax*4]
		shl	edi, 4
		add	edi, esi
		cmp	esi, edi
		jz	short loc_F883A
		lea	eax, [edi-50h]
		mov	ebx, edi

loc_F8820:				; CODE XREF: .text:000F8838j
		sub	ebx, 50h
		mov	edx, ebx
		sub	edx, edi
		mov	edx, [eax+edx+50h]
		mov	[ebp-34h], eax
		mov	[esp], ebx
		call	dword ptr [edx]
		cmp	esi, ebx
		mov	eax, [ebp-34h]
		jnz	short loc_F8820

loc_F883A:				; CODE XREF: .text:000F8808j
					; .text:000F8819j
		mov	eax, [ebp-24h]
		mov	[esp], eax
		call	_ZdaPv		; operator delete[](void *)
		mov	eax, [ebp-28h]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-28h]
		mov	[esp], eax
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_RecvClassInfos(bf_read *, bool, int)
_Z24RecvTable_RecvClassInfosP7bf_readbi	proc near
					; CODE XREF: CBaseClientState::ProcessSendTable(SVC_SendTable *)+DCp
					; DataTable_LoadDataTablesFromBuffer(bf_read *,int)+66p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		movzx	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		xor	edi, edi
		mov	[esp+4], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z19RecvTable_ReadInfosP7bf_readi ; RecvTable_ReadInfos(bf_read	*,int)
		test	eax, eax
		mov	ebx, eax
		jz	short loc_F88B9
		and	esi, 0FFh
		mov	[esp], eax
		mov	[esp+4], esi
		call	_Z40DataTable_SetupReceiveTableFromSendTableP9SendTableb ; DataTable_SetupReceiveTableFromSendTable(SendTable *,bool)
		mov	[esp], ebx	; void *
		mov	edi, eax
		call	_Z23RecvTable_FreeSendTableP9SendTable ; RecvTable_FreeSendTable(SendTable *)

loc_F88B9:				; CODE XREF: RecvTable_RecvClassInfos(bf_read *,bool,int)+2Bj
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z24RecvTable_RecvClassInfosP7bf_readbi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_Decode(RecvTable *,	void *,	bf_read	*, int,	bool)
_Z16RecvTable_DecodeP9RecvTablePvP7bf_readib proc near

var_380		= dword	ptr -380h
var_379		= byte ptr -379h
var_378		= dword	ptr -378h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_364		= dword	ptr -364h
var_354		= dword	ptr -354h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_33C		= dword	ptr -33Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 38Ch
		mov	eax, [ebp+arg_0]
		movzx	edx, [ebp+arg_10]
		mov	ebx, [ebp+arg_8]
		mov	esi, [eax+8]
		mov	[ebp+var_379], dl
		test	esi, esi
		jz	loc_F8BBD

loc_F88F7:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+300j
		mov	eax, [ebp+arg_4]
		lea	edi, [ebp+var_138]
		mov	edx, [ebp+arg_C]
		mov	[esp], edi
		mov	[esp+8], eax
		lea	eax, [esi+8]
		mov	[esp+0Ch], edx
		mov	[esp+4], eax
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	[ebp+var_1C], esi
		mov	[ebp+var_138], (offset _ZTV21CClientDatatableStack+8)
		mov	dword ptr [esp+4], 0
		mov	[esp], edi
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	edx, [ebx+0Ch]
		mov	[ebp+var_36C], 0FFFFFFFFh
		mov	[ebp+var_380], 0
		mov	[ebp+var_374], 0
		mov	[ebp+var_378], edx
		mov	ecx, edx
		jmp	loc_F8B0C
; ---------------------------------------------------------------------------
		align 4

loc_F8968:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+246j
		mov	eax, [ebx+0Ch]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 6
		jle	loc_F8B50
		lea	edx, [eax+7]
		mov	edi, eax
		mov	ecx, 20h
		and	edi, 1Fh
		mov	[ebx+0Ch], edx
		lea	edx, [eax+6]
		sub	ecx, edi
		sar	eax, 5
		mov	[ebp+var_370], ecx
		mov	ecx, [ebx]
		sar	edx, 5
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_370]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		mov	ecx, edi
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_F8B5B
		and	edx, 6
		jnz	loc_F8B80
		shr	eax, 3

loc_F89CC:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+2BEj
		mov	edx, [ebp+var_36C]
		lea	edi, [eax+edx+1]
		cmp	edi, 0FFFh
		ja	loc_F8B3A
		mov	edx, [ebp+var_134]
		mov	[ebp+var_2C], edi
		mov	ecx, edi
		shl	ecx, 2
		mov	[ebp+var_36C], edi
		mov	[ebp+var_370], ecx
		mov	eax, [edx+2Ch]
		mov	eax, [eax+edi*4]
		mov	[ebp+var_28], eax
		xor	eax, eax
		cmp	[esi+12Ch], edi
		jbe	short loc_F8A18
		mov	eax, [esi+120h]
		mov	eax, [eax+edi*4]

loc_F8A18:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+13Dj
		cmp	ds:g_bDTIEnabled, 0
		jz	short loc_F8A36
		mov	ecx, [ebx+0Ch]
		mov	[ebp+var_374], ecx
		sub	ecx, [ebp+var_378]
		mov	[ebp+var_380], ecx

loc_F8A36:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+14Fj
		mov	[ebp+var_354], 1
		mov	edx, [edx+40h]
		add	edx, edi
		test	eax, eax
		movzx	ecx, byte ptr [edx]
		mov	ecx, [ebp+ecx*4+var_130]
		mov	[ebp+var_348], ecx
		jz	loc_F8B68
		movzx	ecx, byte ptr [edx]
		mov	ecx, [ebp+ecx*4+var_130]
		add	ecx, [eax+2Ch]
		mov	[ebp+var_344], ecx

loc_F8A70:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+2A2j
		movzx	edx, byte ptr [edx]
		lea	ecx, [ebp+var_364]
		mov	edx, [ebp+edx*4+var_130]
		test	edx, edx
		mov	edx, 0
		cmovz	eax, edx
		mov	edx, [ebp+var_370]
		mov	[ebp+var_364], eax
		mov	eax, [esi+34h]
		mov	eax, [eax+edx]
		mov	[ebp+var_33C], ebx
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_340], eax
		mov	[ebp+var_34C], edx
		mov	eax, [eax+8]
		mov	[esp], ecx
		lea	eax, [eax+eax*8]
		call	off_277164[eax*4] ; Int_GetTypeNameString(void)
		add	ds:g_nPropsDecoded, 1
		cmp	[ebp+var_379], 0
		jz	short loc_F8B09
		cmp	ds:g_bDTIEnabled, 0
		jz	short loc_F8B09
		mov	edx, [ebx+0Ch]
		mov	[esp+4], edi
		mov	[esp], esi
		mov	[ebp+var_378], edx
		mov	edx, [ebp+var_380]
		mov	eax, [ebp+var_378]
		mov	[esp+0Ch], edx
		sub	eax, [ebp+var_374]
		mov	[esp+8], eax
		call	_Z18_DTI_HookDeltaBitsP12CRecvDecoderiii ; _DTI_HookDeltaBits(CRecvDecoder *,int,int,int)

loc_F8B09:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+1FFj
					; RecvTable_Decode(RecvTable *,void *,bf_read *,int,bool)+208j
		mov	ecx, [ebx+0Ch]

loc_F8B0C:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+90j
		mov	edx, [ebx+8]
		mov	eax, edx
		sub	eax, ecx
		cmp	eax, 6
		jg	loc_F8968
		test	eax, eax
		jle	loc_F8BB0
		mov	eax, [ebx]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		test	al, 1
		mov	[ebx+0Ch], ecx
		jnz	short loc_F8B98

loc_F8B3A:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+10Cj
					; RecvTable_Decode(RecvTable *,void *,bf_read *,int,bool)+28Fj	...
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 38Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_F8B50:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+A2j
		mov	[ebx+0Ch], edx
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_F8B5B:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+EAj
		sub	dword ptr [ebx+0Ch], 6
		jmp	short loc_F8B3A
; ---------------------------------------------------------------------------
		align 8

loc_F8B68:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+187j
		mov	[ebp+var_344], 0
		jmp	loc_F8A70
; ---------------------------------------------------------------------------
		align 10h

loc_F8B80:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+F3j
		shr	edx, 1
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_F89CC
; ---------------------------------------------------------------------------
		align 8

loc_F8B98:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+268j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		jmp	short loc_F8B3A
; ---------------------------------------------------------------------------
		align 10h

loc_F8BB0:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+24Ej
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_F8B3A
; ---------------------------------------------------------------------------

loc_F8BBD:				; CODE XREF: RecvTable_Decode(RecvTable	*,void *,bf_read *,int,bool)+21j
		mov	eax, [eax+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_deco	; "RecvTable_Decode: table '%s' missing a "...
		mov	[esp+4], eax
		call	Error
		jmp	loc_F88F7
_Z16RecvTable_DecodeP9RecvTablePvP7bf_readib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_DecodeZeros(RecvTable *, void *, int)
_Z21RecvTable_DecodeZerosP9RecvTablePvi	proc near

var_364		= dword	ptr -364h
var_354		= dword	ptr -354h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_33C		= dword	ptr -33Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 36Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+8]
		test	esi, esi
		jz	loc_F8D1F

loc_F8BFA:				; CODE XREF: RecvTable_DecodeZeros(RecvTable *,void *,int)+152j
		mov	eax, [ebp+arg_8]
		lea	ebx, [ebp+var_138]
		mov	[esp], ebx
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+8], eax
		lea	eax, [esi+8]
		mov	[esp+4], eax
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	[ebp+var_1C], esi
		mov	[ebp+var_138], (offset _ZTV21CClientDatatableStack+8)
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	edx, [esi+12Ch]
		test	edx, edx
		jle	loc_F8D14
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_F8C50:				; CODE XREF: RecvTable_DecodeZeros(RecvTable *,void *,int)+12Ej
		mov	ecx, [ebp+var_134]
		mov	[ebp+var_2C], ebx
		cmp	ebx, edx
		lea	edi, ds:0[ebx*4]
		mov	eax, [ecx+2Ch]
		mov	eax, [eax+ebx*4]
		mov	[ebp+var_28], eax
		jnb	loc_F8D09
		mov	eax, [esi+120h]
		mov	eax, [eax+ebx*4]
		test	eax, eax
		jz	loc_F8D09
		mov	[ebp+var_354], 1
		mov	edx, [ecx+40h]
		add	edx, ebx
		movzx	ecx, byte ptr [edx]
		mov	ecx, [ebp+ecx*4+var_130]
		mov	[ebp+var_348], ecx
		movzx	ecx, byte ptr [edx]
		mov	ecx, [ebp+ecx*4+var_130]
		add	ecx, [eax+2Ch]
		mov	[ebp+var_344], ecx
		movzx	edx, byte ptr [edx]
		mov	ecx, [ebp+edx*4+var_130]
		mov	edx, 0
		test	ecx, ecx
		cmovnz	edx, eax
		mov	[ebp+var_364], edx
		mov	edx, [esi+34h]
		mov	edx, [edx+edi]
		mov	[ebp+var_33C], 0
		mov	[ebp+var_340], edx
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_34C], edx
		lea	edx, [ebp+var_364]
		mov	eax, [eax+4]
		mov	[esp], edx
		lea	eax, [eax+eax*8]
		call	off_277178[eax*4] ; Int_DecodeZero(DecodeInfo *)
		mov	edx, [esi+12Ch]

loc_F8D09:				; CODE XREF: RecvTable_DecodeZeros(RecvTable *,void *,int)+8Bj
					; RecvTable_DecodeZeros(RecvTable *,void *,int)+9Cj
		add	ebx, 1
		cmp	ebx, edx
		jl	loc_F8C50

loc_F8D14:				; CODE XREF: RecvTable_DecodeZeros(RecvTable *,void *,int)+62j
		add	esp, 36Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F8D1F:				; CODE XREF: RecvTable_DecodeZeros(RecvTable *,void *,int)+14j
		mov	eax, [eax+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_de_0	; "RecvTable_DecodeZeros: table	'%s' missi"...
		mov	[esp+4], eax
		call	Error
		jmp	loc_F8BFA
_Z21RecvTable_DecodeZerosP9RecvTablePvi	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_MergeDeltas(RecvTable *, bf_read *,	bf_read	*, bf_write *, int, int	*, bool)
_Z21RecvTable_MergeDeltasP9RecvTableP7bf_readS2_P8bf_writeiPib proc near
					; CODE XREF: CBaseServer::UncompressPackedEntity(PackedEntity *,int &)+13Cp
					; RecvTable_CopyEncoding(RecvTable *,bf_read *,bf_write	*,int)+39p ...

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_45		= byte ptr -45h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_14		= dword	ptr  1Ch
arg_18		= byte ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 6Ch
		mov	esi, [ebp+arg_8]
		movzx	eax, [ebp+arg_18]
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_C]
		test	esi, esi
		mov	[ebp+var_45], al
		jz	loc_F9694
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	loc_F9694
		test	edi, edi
		jz	loc_F9694

loc_F8D74:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+960j
		mov	edx, [ebp+arg_0]
		mov	edx, [edx+8]
		test	edx, edx
		mov	[ebp+var_44], edx
		jz	loc_F976C

loc_F8D85:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+A42j
		test	ebx, ebx
		jz	loc_F9719
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		mov	[ebp+var_24], ecx
		sub	eax, ecx
		cmp	eax, 6
		jle	loc_F96BC
		mov	eax, [ebp+var_24]
		and	ecx, 1Fh
		mov	edx, [ebp+var_24]
		mov	[ebp+var_28], ecx
		mov	ecx, 20h
		sub	ecx, [ebp+var_28]
		add	eax, 7
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		add	edx, 6
		sar	edx, 5
		mov	edx, [eax+edx*4]
		mov	eax, [ebp+var_24]
		shl	edx, cl
		mov	ecx, [ebx]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_28]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_F9179
		and	edx, 6
		jnz	loc_F9756
		shr	eax, 3
		mov	[ebp+var_28], eax

loc_F8DF8:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+A27j
		mov	eax, [ebp+var_28]
		mov	[ebp+var_50], eax

loc_F8DFE:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+9AAj
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+9CCj ...
		mov	ecx, [esi+0Ch]
		mov	eax, [esi+8]
		mov	[ebp+var_4C], ecx
		sub	eax, ecx
		cmp	eax, 6
		jle	loc_F919F

loc_F8E12:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+459j
		mov	eax, [ebp+var_4C]
		and	ecx, 1Fh
		mov	edx, [ebp+var_4C]
		mov	[ebp+var_24], ecx
		mov	ecx, 20h
		sub	ecx, [ebp+var_24]
		add	eax, 7
		mov	[esi+0Ch], eax
		mov	eax, [esi]
		add	edx, 6
		sar	edx, 5
		mov	edx, [eax+edx*4]
		mov	eax, [ebp+var_4C]
		shl	edx, cl
		mov	ecx, [esi]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_24]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_F96A5
		and	edx, 6
		jnz	loc_F9740
		shr	eax, 3
		mov	[ebp+var_24], eax

loc_F8E69:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+A11j
		mov	eax, [ebp+var_24]
		mov	[ebp+var_58], eax

loc_F8E6F:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+491j
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+4B3j ...
		mov	[ebp+var_1C], 0FFFFFFFFh
		mov	[ebp+var_5C], 0
		mov	[ebp+var_54], 0
		mov	[ebp+var_3C], 0
		nop
		lea	esi, [esi+0]

loc_F8E90:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+434j
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+6F1j ...
		mov	eax, [ebp+var_24]
		cmp	[ebp+var_28], eax
		jb	loc_F9050

loc_F8E9C:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+308j
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+732j ...
		cmp	[ebp+var_24], 0FFFh
		ja	loc_F93CE

loc_F8EA9:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+688j
		mov	eax, [ebp+var_24]
		cmp	[ebp+var_28], eax
		jz	loc_F94C0

loc_F8EB5:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+81Bj
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+89Bj ...
		cmp	[ebp+var_45], 0
		jz	short loc_F8ED0
		cmp	ds:g_bDTIEnabled, 0
		jz	short loc_F8ED0
		mov	eax, [esi+0Ch]
		mov	[ebp+var_54], eax
		sub	eax, [ebp+var_4C]
		mov	[ebp+var_5C], eax

loc_F8ED0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+179j
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+182j
		mov	eax, [ebp+var_24]
		mov	[ebp+var_40], eax
		sub	eax, [ebp+var_1C]
		cmp	eax, 10h
		mov	[ebp+var_1C], eax
		jbe	loc_F9360
		cmp	eax, 101h
		sbb	edx, edx
		mov	eax, edx
		mov	[ebp+var_2C], edx
		and	edx, 0FFFFFFFCh
		and	eax, 0FFFFFFFCh
		add	edx, 0Ch
		add	eax, 0Fh
		mov	[ebp+var_20], edx

loc_F8F00:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+633j
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		mov	[ebp+var_34], ecx
		sub	ecx, edx
		cmp	eax, ecx
		jle	loc_F92C0
		mov	eax, [ebp+var_34]
		mov	byte ptr [edi+10h], 1
		mov	[edi+0Ch], eax

loc_F8F1D:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+617j
		mov	ecx, [ebp+var_44]
		mov	edx, [ebp+var_24]
		mov	eax, [ecx+34h]
		mov	ecx, [esi+0Ch]
		mov	eax, [eax+edx*4]
		mov	[ebp+var_1C], ecx
		mov	edx, [eax+8]
		mov	[esp+4], esi
		mov	[esp], eax
		lea	edx, [edx+edx*8]
		call	off_277180[edx*4] ; Float_GetTypeNameString(void)
		mov	eax, [esi+0Ch]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_1C]
		test	eax, eax
		js	loc_F9398
		mov	edx, [ebp+var_1C]
		cmp	edx, [esi+8]
		jg	loc_F9398
		mov	ecx, [ebp+var_1C]
		mov	[esi+0Ch], ecx

loc_F8F66:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+666j
		mov	eax, [ebp+var_20]
		mov	[esp+4], esi
		mov	[esp], edi
		sub	eax, [ebp+var_1C]
		mov	[esp+8], eax
		call	_ZN8bf_write19WriteBitsFromBufferEP7bf_readi ; bf_write::WriteBitsFromBuffer(bf_read *,int)
		mov	eax, [ebp+arg_14]
		test	eax, eax
		jz	short loc_F8F8F
		mov	ecx, [ebp+var_24]
		mov	eax, [ebp+var_3C]
		mov	edx, [ebp+arg_14]
		mov	[edx+eax*4], ecx

loc_F8F8F:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+241j
		add	[ebp+var_3C], 1
		cmp	[ebp+var_45], 0
		jz	short loc_F8FCA
		cmp	ds:g_bDTIEnabled, 0
		jz	short loc_F8FCA
		mov	ecx, [esi+0Ch]
		mov	eax, [ebp+var_5C]
		mov	edx, [ebp+var_44]
		mov	[ebp+var_4C], ecx
		mov	[esp+0Ch], eax
		mov	eax, ecx
		sub	eax, [ebp+var_54]
		mov	[esp], edx
		mov	[esp+8], eax
		mov	eax, [ebp+var_24]
		mov	[esp+4], eax
		call	_Z18_DTI_HookDeltaBitsP12CRecvDecoderiii ; _DTI_HookDeltaBits(CRecvDecoder *,int,int,int)

loc_F8FCA:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+257j
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+260j
		mov	eax, [esi+0Ch]
		mov	edx, [esi+8]
		sub	edx, eax
		cmp	edx, 6
		jle	loc_F9480
		lea	edx, [eax+7]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[esi+0Ch], edx
		mov	[ebp+var_1C], ecx
		lea	edx, [eax+6]
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_20], ecx
		mov	ecx, [esi]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shl	edx, cl
		mov	ecx, [esi]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_F9420
		and	edx, 6
		jnz	loc_F9578
		shr	eax, 3

loc_F902F:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+846j
		mov	edx, [ebp+var_58]
		mov	ecx, [ebp+var_40]
		lea	eax, [edx+eax+1]
		mov	[ebp+var_24], eax
		mov	[ebp+var_58], eax
		mov	eax, [ebp+var_24]
		mov	[ebp+var_1C], ecx
		cmp	[ebp+var_28], eax
		jnb	loc_F8E9C
		db	66h
		nop

loc_F9050:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+156j
		mov	eax, [ebp+var_28]
		mov	[ebp+var_40], eax
		sub	eax, [ebp+var_1C]
		cmp	eax, 10h
		mov	[ebp+var_1C], eax
		jbe	loc_F92A0
		cmp	eax, 101h
		sbb	edx, edx
		mov	eax, edx
		mov	[ebp+var_20], edx
		and	edx, 0FFFFFFFCh
		and	eax, 0FFFFFFFCh
		add	edx, 0Ch
		add	eax, 0Fh
		mov	[ebp+var_2C], edx

loc_F9080:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+573j
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		mov	[ebp+var_34], ecx
		sub	ecx, edx
		cmp	ecx, eax
		jge	loc_F9200
		mov	eax, [ebp+var_34]
		mov	byte ptr [edi+10h], 1
		mov	[edi+0Ch], eax

loc_F909D:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+557j
		mov	ecx, [ebp+var_44]
		mov	edx, [ebp+var_28]
		mov	eax, [ecx+34h]
		mov	ecx, [ebx+0Ch]
		mov	eax, [eax+edx*4]
		mov	[ebp+var_1C], ecx
		mov	edx, [eax+8]
		mov	[esp+4], ebx
		mov	[esp], eax
		lea	edx, [edx+edx*8]
		call	off_277180[edx*4] ; Float_GetTypeNameString(void)
		mov	eax, [ebx+0Ch]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_1C]
		test	eax, eax
		js	loc_F9380
		mov	edx, [ebp+var_1C]
		cmp	edx, [ebx+8]
		jg	loc_F9380
		mov	ecx, [ebp+var_1C]
		mov	[ebx+0Ch], ecx

loc_F90E6:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+64Ej
		mov	eax, [ebp+var_20]
		mov	[esp+4], ebx
		mov	[esp], edi
		sub	eax, [ebp+var_1C]
		mov	[esp+8], eax
		call	_ZN8bf_write19WriteBitsFromBufferEP7bf_readi ; bf_write::WriteBitsFromBuffer(bf_read *,int)
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+8]
		sub	edx, eax
		cmp	edx, 6
		jle	loc_F9440
		lea	edx, [eax+7]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebx+0Ch], edx
		mov	[ebp+var_1C], ecx
		lea	edx, [eax+6]
		mov	ecx, 20h
		sub	ecx, [ebp+var_1C]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_20], ecx
		mov	ecx, [ebx]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shl	edx, cl
		mov	ecx, [ebx]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_F93B0
		and	edx, 6
		jnz	loc_F9560
		shr	eax, 3

loc_F9161:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+82Ej
		mov	edx, [ebp+var_50]
		mov	ecx, [ebp+var_40]
		lea	eax, [eax+edx+1]
		mov	[ebp+var_28], eax
		mov	[ebp+var_50], eax
		mov	[ebp+var_1C], ecx
		jmp	loc_F8E90
; ---------------------------------------------------------------------------

loc_F9179:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+A3j
		sub	dword ptr [ebx+0Ch], 6
		mov	[ebp+var_50], 0FFFFFFFFh
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	ecx, [esi+0Ch]
		mov	eax, [esi+8]
		mov	[ebp+var_4C], ecx
		sub	eax, ecx
		cmp	eax, 6
		jg	loc_F8E12

loc_F919F:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+CCj
		test	eax, eax
		jle	loc_F9787
		mov	edx, [ebp+var_4C]
		mov	[ebp+var_58], 0FFFFFFFFh
		mov	eax, [esi]
		mov	[ebp+var_24], 0FFFFFFFFh
		movzx	ecx, byte ptr [ebp+var_4C]
		sar	edx, 5
		mov	eax, [eax+edx*4]
		mov	edx, [ebp+var_4C]
		shr	eax, cl
		add	edx, 1
		test	al, 1
		mov	[esi+0Ch], edx
		jz	loc_F8E6F
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [esi+8]
		mov	[ebp+var_58], 0FFFFFFFFh
		mov	[ebp+var_24], 0FFFFFFFFh
		mov	[esi+0Ch], eax
		jmp	loc_F8E6F
; ---------------------------------------------------------------------------
		align 10h

loc_F9200:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+34Dj
		add	eax, edx
		mov	ecx, edx
		sar	edx, 5
		mov	[edi+0Ch], eax
		mov	eax, [edi]
		and	ecx, 1Fh
		shl	edx, 2
		mov	[ebp+var_30], ecx
		mov	ecx, [ebp+var_1C]
		add	edx, eax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_68], edx
		lea	edx, [eax+ecx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		mov	eax, 1
		lea	edx, [edx+edx-3]
		rol	edx, cl
		mov	ecx, [ebp+var_2C]
		add	ecx, 2
		shl	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_30]
		mov	[ebp+var_2C], eax
		sub	eax, 1
		shr	eax, cl
		mov	ecx, [ebp+var_68]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_68]
		mov	eax, [eax]
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_20]
		and	eax, 1
		lea	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_38], eax
		mov	eax, [eax]
		mov	[ebp+var_60], eax
		lea	eax, [ecx+ecx-1]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	eax, cl
		mov	ecx, [ebp+var_34]
		xor	ecx, edx
		xor	edx, [ebp+var_60]
		and	eax, ecx
		mov	ecx, [ebp+var_20]
		xor	eax, [ebp+var_34]
		and	edx, ecx
		mov	ecx, [ebp+var_60]
		xor	edx, ecx
		mov	ecx, [ebp+var_38]
		mov	[ecx], edx
		mov	edx, [ebp+var_68]
		mov	[edx], eax
		jmp	loc_F909D
; ---------------------------------------------------------------------------
		align 10h

loc_F92A0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+31Fj
		mov	[ebp+var_20], 0FFFFFFFEh
		mov	eax, 7
		mov	[ebp+var_2C], 4
		jmp	loc_F9080
; ---------------------------------------------------------------------------
		align 10h

loc_F92C0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+1CDj
		add	eax, edx
		mov	ecx, edx
		sar	edx, 5
		mov	[edi+0Ch], eax
		mov	eax, [edi]
		and	ecx, 1Fh
		shl	edx, 2
		mov	[ebp+var_30], ecx
		mov	ecx, [ebp+var_1C]
		add	edx, eax
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_68], edx
		lea	edx, [eax+ecx*4]
		movzx	ecx, byte ptr [ebp+var_30]
		mov	eax, 1
		lea	edx, [edx+edx-3]
		rol	edx, cl
		mov	ecx, [ebp+var_20]
		add	ecx, 2
		shl	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_30]
		mov	[ebp+var_2C], eax
		sub	eax, 1
		shr	eax, cl
		mov	ecx, [ebp+var_68]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_68]
		mov	eax, [eax]
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_20]
		and	eax, 1
		lea	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_2C]
		mov	[ebp+var_38], eax
		mov	eax, [eax]
		mov	[ebp+var_64], eax
		lea	eax, [ecx+ecx-1]
		movzx	ecx, byte ptr [ebp+var_30]
		shl	eax, cl
		mov	ecx, [ebp+var_34]
		xor	ecx, edx
		xor	edx, [ebp+var_64]
		and	eax, ecx
		mov	ecx, [ebp+var_20]
		xor	eax, [ebp+var_34]
		and	edx, ecx
		mov	ecx, [ebp+var_64]
		xor	edx, ecx
		mov	ecx, [ebp+var_38]
		mov	[ecx], edx
		mov	edx, [ebp+var_68]
		mov	[edx], eax
		jmp	loc_F8F1D
; ---------------------------------------------------------------------------
		align 10h

loc_F9360:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+19Fj
		mov	[ebp+var_2C], 0FFFFFFFEh
		mov	eax, 7
		mov	[ebp+var_20], 4
		jmp	loc_F8F00
; ---------------------------------------------------------------------------
		align 10h

loc_F9380:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+38Ej
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+39Aj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		jmp	loc_F90E6
; ---------------------------------------------------------------------------
		align 8

loc_F9398:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+20Ej
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+21Aj
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [esi+8]
		mov	[esi+0Ch], eax
		jmp	loc_F8F66
; ---------------------------------------------------------------------------
		align 10h

loc_F93B0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+40Fj
		mov	eax, [ebp+var_28]
		mov	[ebp+var_28], 0FFFFFFFFh
		sub	dword ptr [ebx+0Ch], 6
		cmp	[ebp+var_24], 0FFFh
		mov	[ebp+var_1C], eax
		jbe	loc_F8EA9

loc_F93CE:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+163j
		test	ebx, ebx
		jz	short loc_F93DC
		cmp	byte ptr [ebx+10h], 0
		jnz	loc_F9650

loc_F93DC:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+690j
		cmp	byte ptr [esi+10h], 0
		jnz	loc_F9650
		cmp	byte ptr [edi+10h], 0
		jnz	loc_F9650
		mov	ecx, [edi+0Ch]
		cmp	ecx, [edi+8]
		jge	loc_F9672

loc_F93FC:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+92Cj
		mov	eax, [edi]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [eax+edx*4]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax
		mov	eax, [ebp+var_3C]
		add	dword ptr [edi+0Ch], 1
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F9420:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+2DDj
		mov	eax, [ebp+var_24]
		mov	[ebp+var_24], 0FFFFFFFFh
		sub	dword ptr [esi+0Ch], 6
		mov	[ebp+var_1C], eax
		jmp	loc_F8E90
; ---------------------------------------------------------------------------
		align 10h

loc_F9440:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+3C7j
		test	edx, edx
		jle	loc_F9630
		mov	edx, [ebx]
		mov	ecx, eax
		sar	ecx, 5
		mov	edx, [edx+ecx*4]
		mov	ecx, eax
		add	eax, 1
		mov	[ebx+0Ch], eax
		shr	edx, cl
		and	edx, 1
		jnz	loc_F9590

loc_F9465:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+8F8j
		mov	eax, [ebp+var_28]
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_1C], eax
		jmp	loc_F8E9C
; ---------------------------------------------------------------------------
		align 10h

loc_F9480:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+295j
		test	edx, edx
		jle	loc_F9640
		mov	edx, [esi]
		mov	ecx, eax
		sar	ecx, 5
		mov	edx, [edx+ecx*4]
		mov	ecx, eax
		add	eax, 1
		mov	[esi+0Ch], eax
		shr	edx, cl
		and	edx, 1
		jnz	loc_F95B0

loc_F94A5:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+908j
		mov	eax, [ebp+var_24]
		mov	[ebp+var_24], 0FFFFFFFFh
		mov	[ebp+var_1C], eax
		jmp	loc_F8E90
; ---------------------------------------------------------------------------
		align 10h

loc_F94C0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+16Fj
		mov	edx, [ebp+var_44]
		mov	ecx, [ebp+var_24]
		mov	eax, [edx+34h]
		mov	edx, [eax+ecx*4]
		mov	eax, [edx+8]
		mov	[esp+4], ebx
		mov	[esp], edx
		lea	eax, [eax+eax*8]
		call	off_277180[eax*4] ; Float_GetTypeNameString(void)
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		mov	[ebp+var_28], ecx
		sub	eax, ecx
		cmp	eax, 6
		jle	loc_F95E0
		mov	eax, [ebp+var_28]
		and	ecx, 1Fh
		mov	edx, 20h
		sub	edx, ecx
		mov	[ebp+var_20], ecx
		mov	ecx, [ebx]
		mov	[ebp+var_2C], edx
		add	eax, 7
		mov	[ebx+0Ch], eax
		mov	eax, [ebp+var_28]
		add	eax, 6
		sar	eax, 5
		mov	edx, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		mov	eax, [ebp+var_28]
		shl	edx, cl
		mov	ecx, [ebx]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_20]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_F95D0
		and	edx, 6
		jnz	loc_F9681
		shr	eax, 3

loc_F954E:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+94Fj
		mov	edx, [ebp+var_50]
		lea	eax, [eax+edx+1]
		mov	[ebp+var_28], eax
		mov	[ebp+var_50], eax
		jmp	loc_F8EB5
; ---------------------------------------------------------------------------

loc_F9560:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+418j
		shr	edx, 1
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_F9161
; ---------------------------------------------------------------------------
		align 8

loc_F9578:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+2E6j
		shr	edx, 1
		mov	[esp], esi
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_F902F
; ---------------------------------------------------------------------------
		align 10h

loc_F9590:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+71Fj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebx+0Ch], eax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebp+var_1C], eax
		jmp	loc_F8E9C
; ---------------------------------------------------------------------------

loc_F95B0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+75Fj
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [esi+8]
		mov	[esi+0Ch], eax
		mov	eax, [ebp+var_24]
		mov	[ebp+var_24], 0FFFFFFFFh
		mov	[ebp+var_1C], eax
		jmp	loc_F8E90
; ---------------------------------------------------------------------------

loc_F95D0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+7FCj
		sub	dword ptr [ebx+0Ch], 6
		mov	[ebp+var_28], 0FFFFFFFFh
		jmp	loc_F8EB5
; ---------------------------------------------------------------------------

loc_F95E0:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+7AEj
		test	eax, eax
		jle	loc_F972C
		mov	edx, [ebp+var_28]
		mov	eax, [ebx]
		movzx	ecx, byte ptr [ebp+var_28]
		sar	edx, 5
		mov	eax, [eax+edx*4]
		mov	edx, [ebp+var_28]
		mov	[ebp+var_28], 0FFFFFFFFh
		shr	eax, cl
		add	edx, 1
		test	al, 1
		mov	[ebx+0Ch], edx
		jz	loc_F8EB5
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebx+0Ch], eax
		jmp	loc_F8EB5
; ---------------------------------------------------------------------------
		align 10h

loc_F9630:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+702j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_F9465
; ---------------------------------------------------------------------------
		align 10h

loc_F9640:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+742j
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_F94A5
; ---------------------------------------------------------------------------
		align 10h

loc_F9650:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+696j
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+6A0j ...
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_merg	; "RecvTable_MergeDeltas: overflowed in	Re"...
		mov	[esp+4], eax
		call	Error
		mov	ecx, [edi+0Ch]
		cmp	ecx, [edi+8]
		jl	loc_F93FC

loc_F9672:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+6B6j
		mov	byte ptr [edi+10h], 1
		mov	eax, [ebp+var_3C]
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F9681:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+805j
		shr	edx, 1
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_F954E
; ---------------------------------------------------------------------------

loc_F9694:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+1Bj
					; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+26j	...
		mov	dword ptr [esp], offset	aRecvtable_me_0	; "RecvTable_MergeDeltas: invalid paramete"...
		call	Error
		jmp	loc_F8D74
; ---------------------------------------------------------------------------

loc_F96A5:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+114j
		sub	dword ptr [esi+0Ch], 6
		mov	[ebp+var_58], 0FFFFFFFFh
		mov	[ebp+var_24], 0FFFFFFFFh
		jmp	loc_F8E6F
; ---------------------------------------------------------------------------

loc_F96BC:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+5Bj
		test	eax, eax
		jle	short loc_F9711
		mov	edx, [ebp+var_24]
		mov	[ebp+var_50], 0FFFFFFFFh
		mov	eax, [ebx]
		mov	[ebp+var_28], 0FFFFFFFFh
		movzx	ecx, byte ptr [ebp+var_24]
		sar	edx, 5
		mov	eax, [eax+edx*4]
		mov	edx, [ebp+var_24]
		shr	eax, cl
		add	edx, 1
		test	al, 1
		mov	[ebx+0Ch], edx
		jz	loc_F8DFE
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebx+8]
		mov	[ebp+var_50], 0FFFFFFFFh
		mov	[ebp+var_28], 0FFFFFFFFh
		mov	[ebx+0Ch], eax
		jmp	loc_F8DFE
; ---------------------------------------------------------------------------

loc_F9711:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+97Ej
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)

loc_F9719:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+47j
		mov	[ebp+var_50], 0FFFFFFFFh
		mov	[ebp+var_28], 0FFFFFFFFh
		jmp	loc_F8DFE
; ---------------------------------------------------------------------------

loc_F972C:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+8A2j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_28], 0FFFFFFFFh
		jmp	loc_F8EB5
; ---------------------------------------------------------------------------

loc_F9740:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+11Dj
		shr	edx, 1
		mov	[esp], esi
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		mov	[ebp+var_24], eax
		jmp	loc_F8E69
; ---------------------------------------------------------------------------

loc_F9756:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+ACj
		shr	edx, 1
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		mov	[ebp+var_28], eax
		jmp	loc_F8DF8
; ---------------------------------------------------------------------------

loc_F976C:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+3Fj
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_me_1	; "RecvTable_MergeDeltas: table	'%s' is mi"...
		mov	[esp+4], eax
		call	Error
		jmp	loc_F8D85
; ---------------------------------------------------------------------------

loc_F9787:				; CODE XREF: RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write *,int,int *,bool)+461j
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_58], 0FFFFFFFFh
		mov	[ebp+var_24], 0FFFFFFFFh
		jmp	loc_F8E6F
_Z21RecvTable_MergeDeltasP9RecvTableP7bf_readS2_P8bf_writeiPib endp

; ---------------------------------------------------------------------------
		mov	ecx, [edi+0Ch]
		cmp	ecx, [edi+8]
		jge	short loc_F97CB
		mov	esi, [edi]
		mov	ebx, ecx
		mov	edx, 1
		sar	ebx, 5
		shl	edx, cl
		not	edx
		lea	ebx, [esi+ebx*4]
		and	[ebx], edx
		add	dword ptr [edi+0Ch], 1

loc_F97C3:				; CODE XREF: .text:000F97CFj
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------

loc_F97CB:				; CODE XREF: .text:000F97A8j
		mov	byte ptr [edi+10h], 1
		jmp	short loc_F97C3
; ---------------------------------------------------------------------------
		jmp	short _Z22RecvTable_CopyEncodingP9RecvTableP7bf_readP8bf_writei	; RecvTable_CopyEncoding(RecvTable *,bf_read *,bf_write	*,int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_CopyEncoding(RecvTable *, bf_read *, bf_write *, int)
_Z22RecvTable_CopyEncodingP9RecvTableP7bf_readP8bf_writei proc near
					; CODE XREF: .text:000F97D1j

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [ebp+arg_C]
		mov	dword ptr [esp+18h], 0
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+4], 0
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_0]
		mov	[esp], eax
		call	_Z21RecvTable_MergeDeltasP9RecvTableP7bf_readS2_P8bf_writeiPib ; RecvTable_MergeDeltas(RecvTable *,bf_read *,bf_read *,bf_write	*,int,int *,bool)
		leave
		retn
_Z22RecvTable_CopyEncodingP9RecvTableP7bf_readP8bf_writei endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_ proc near
					; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+48Ep
					; RecvTable_Init(RecvTable **,int)+9Ep

var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	[ebp+var_3C], eax
		cmp	byte ptr [eax+11h], 0
		jnz	loc_F9DC0
		mov	esi, [eax+8]
		test	esi, esi
		jz	short loc_F9853
		mov	eax, [eax+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	eax, [ebp+var_3C]

loc_F9853:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+1Bj
		mov	byte ptr [eax+11h], 1
		lea	eax, [ebp+var_3C]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	eax, [ebp+var_3C]
		mov	ebx, [eax+4]
		test	ebx, ebx
		jle	loc_F9DC0
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_F989F
; ---------------------------------------------------------------------------
		align 10h

loc_F9890:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+87j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+93j ...
		add	ebx, 1
		add	esi, 3Ch
		cmp	[eax+4], ebx
		jle	loc_F9DC0

loc_F989F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+64j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+592j
		mov	edx, [eax]
		add	edx, esi
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9890
		mov	edx, [edx+28h]
		cmp	byte ptr [edx+11h], 0
		mov	[ebp+var_38], edx
		jnz	short loc_F9890
		mov	ecx, [edx+8]
		test	ecx, ecx
		jz	short loc_F98D2
		mov	eax, [edx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	edx, [ebp+var_38]

loc_F98D2:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+9Aj
		mov	byte ptr [edx+11h], 1
		lea	eax, [ebp+var_38]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	ecx, [ebp+var_38]
		mov	eax, [ebp+var_3C]
		mov	edx, [ecx+4]
		test	edx, edx
		jle	short loc_F9890
		xor	edx, edx
		mov	[ebp+var_40], ebx
		xor	edi, edi
		mov	[ebp+var_44], esi
		mov	ebx, edx
		mov	eax, ecx
		jmp	short loc_F991F
; ---------------------------------------------------------------------------
		align 10h

loc_F9910:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+107j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+113j ...
		add	edi, 1
		add	ebx, 3Ch
		cmp	edi, [eax+4]
		jge	loc_F9DA0

loc_F991F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+ECj
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+572j
		mov	edx, [eax]
		add	edx, ebx
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9910
		mov	edx, [edx+28h]
		cmp	byte ptr [edx+11h], 0
		mov	[ebp+var_34], edx
		jnz	short loc_F9910
		mov	eax, [edx+8]
		test	eax, eax
		jz	short loc_F9952
		mov	eax, [edx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	edx, [ebp+var_34]

loc_F9952:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+11Aj
		mov	byte ptr [edx+11h], 1
		lea	eax, [ebp+var_34]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	ecx, [ebp+var_34]
		mov	eax, [ebp+var_38]
		mov	esi, [ecx+4]
		test	esi, esi
		jle	short loc_F9910
		xor	edx, edx
		mov	[ebp+var_4C], ebx
		xor	esi, esi
		mov	[ebp+var_48], edi
		mov	ebx, edx
		mov	eax, ecx
		jmp	short loc_F999F
; ---------------------------------------------------------------------------
		align 10h

loc_F9990:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+187j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+193j ...
		add	esi, 1
		add	ebx, 3Ch
		cmp	esi, [eax+4]
		jge	loc_F9D80

loc_F999F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+16Cj
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+552j
		mov	edx, [eax]
		add	edx, ebx
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9990
		mov	edx, [edx+28h]
		cmp	byte ptr [edx+11h], 0
		mov	[ebp+var_30], edx
		jnz	short loc_F9990
		mov	ecx, [edx+8]
		test	ecx, ecx
		jz	short loc_F99D2
		mov	eax, [edx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	edx, [ebp+var_30]

loc_F99D2:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+19Aj
		mov	byte ptr [edx+11h], 1
		lea	eax, [ebp+var_30]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	ecx, [ebp+var_30]
		mov	eax, [ebp+var_34]
		mov	edx, [ecx+4]
		test	edx, edx
		jle	short loc_F9990
		xor	edx, edx
		mov	[ebp+var_54], ebx
		xor	edi, edi
		mov	[ebp+var_50], esi
		mov	ebx, edx
		mov	eax, ecx
		jmp	short loc_F9A1F
; ---------------------------------------------------------------------------
		align 10h

loc_F9A10:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+207j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+213j ...
		add	edi, 1
		add	ebx, 3Ch
		cmp	edi, [eax+4]
		jge	loc_F9D60

loc_F9A1F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+1ECj
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+532j
		mov	edx, [eax]
		add	edx, ebx
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9A10
		mov	edx, [edx+28h]
		cmp	byte ptr [edx+11h], 0
		mov	[ebp+var_2C], edx
		jnz	short loc_F9A10
		mov	eax, [edx+8]
		test	eax, eax
		jz	short loc_F9A52
		mov	eax, [edx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	edx, [ebp+var_2C]

loc_F9A52:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+21Aj
		mov	byte ptr [edx+11h], 1
		lea	eax, [ebp+var_2C]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	ecx, [ebp+var_2C]
		mov	eax, [ebp+var_30]
		mov	esi, [ecx+4]
		test	esi, esi
		jle	short loc_F9A10
		xor	edx, edx
		mov	[ebp+var_5C], ebx
		xor	esi, esi
		mov	[ebp+var_58], edi
		mov	ebx, edx
		jmp	short loc_F9A9F
; ---------------------------------------------------------------------------
		align 10h

loc_F9A90:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+287j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+293j ...
		add	esi, 1
		add	ebx, 3Ch
		cmp	esi, [ecx+4]
		jge	loc_F9D40

loc_F9A9F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+26Aj
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+512j
		mov	eax, [ecx]
		add	eax, ebx
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F9A90
		mov	eax, [eax+28h]
		cmp	byte ptr [eax+11h], 0
		mov	[ebp+var_28], eax
		jnz	short loc_F9A90
		mov	edx, [eax+8]
		test	edx, edx
		jz	short loc_F9AD2
		mov	eax, [eax+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	eax, [ebp+var_28]

loc_F9AD2:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+29Aj
		mov	byte ptr [eax+11h], 1
		lea	eax, [ebp+var_28]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_2C]
		mov	edi, [eax+4]
		test	edi, edi
		jle	short loc_F9A90
		xor	edx, edx
		mov	[ebp+var_64], ebx
		xor	edi, edi
		mov	[ebp+var_60], esi
		mov	ebx, edx
		jmp	short loc_F9B1F
; ---------------------------------------------------------------------------
		align 10h

loc_F9B10:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+307j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+313j ...
		add	edi, 1
		add	ebx, 3Ch
		cmp	edi, [eax+4]
		jge	loc_F9D20

loc_F9B1F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+2EAj
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+4F2j
		mov	edx, [eax]
		add	edx, ebx
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9B10
		mov	edx, [edx+28h]
		cmp	byte ptr [edx+11h], 0
		mov	[ebp+var_24], edx
		jnz	short loc_F9B10
		mov	ecx, [edx+8]
		test	ecx, ecx
		jz	short loc_F9B52
		mov	eax, [edx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	edx, [ebp+var_24]

loc_F9B52:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+31Aj
		mov	byte ptr [edx+11h], 1
		lea	eax, [ebp+var_24]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	ecx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	edx, [ecx+4]
		test	edx, edx
		jle	short loc_F9B10
		xor	edx, edx
		mov	[ebp+var_68], ebx
		xor	esi, esi
		mov	ebx, edx
		mov	[ebp+var_6C], edi
		mov	eax, ecx
		jmp	short loc_F9B9F
; ---------------------------------------------------------------------------
		align 10h

loc_F9B90:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+387j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+393j ...
		add	esi, 1
		add	ebx, 3Ch
		cmp	esi, [eax+4]
		jge	loc_F9D00

loc_F9B9F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+36Cj
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+4D2j
		mov	edx, [eax]
		add	edx, ebx
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9B90
		mov	edx, [edx+28h]
		cmp	byte ptr [edx+11h], 0
		mov	[ebp+var_20], edx
		jnz	short loc_F9B90
		mov	eax, [edx+8]
		test	eax, eax
		jz	short loc_F9BD2
		mov	eax, [edx+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	edx, [ebp+var_20]

loc_F9BD2:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+39Aj
		mov	byte ptr [edx+11h], 1
		lea	eax, [ebp+var_20]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	ecx, [ebp+var_20]
		mov	eax, [ebp+var_24]
		mov	edi, [ecx+4]
		test	edi, edi
		jle	short loc_F9B90
		xor	edx, edx
		mov	[ebp+var_70], ebx
		xor	edi, edi
		mov	ebx, edx
		mov	[ebp+var_74], esi
		jmp	short loc_F9C1F
; ---------------------------------------------------------------------------
		align 10h

loc_F9C10:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+407j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+413j ...
		add	edi, 1
		add	ebx, 3Ch
		cmp	edi, [ecx+4]
		jge	loc_F9CE0

loc_F9C1F:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+3EAj
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+4B1j
		mov	eax, [ecx]
		add	eax, ebx
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F9C10
		mov	eax, [eax+28h]
		cmp	byte ptr [eax+11h], 0
		mov	[ebp+var_1C], eax
		jnz	short loc_F9C10
		mov	ecx, [eax+8]
		test	ecx, ecx
		jz	short loc_F9C52
		mov	eax, [eax+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	eax, [ebp+var_1C]

loc_F9C52:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+41Aj
		mov	byte ptr [eax+11h], 1
		lea	eax, [ebp+var_1C]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		mov	edx, [eax+4]
		test	edx, edx
		jle	short loc_F9C10
		xor	esi, esi
		mov	[ebp+var_78], edi
		mov	edi, ebx
		mov	ebx, esi
		jmp	short loc_F9C9B
; ---------------------------------------------------------------------------
		align 10h

loc_F9C90:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+483j
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [eax+4]
		jge	short loc_F9CC0

loc_F9C9B:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+467j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+499j
		mov	edx, [eax]
		add	edx, esi
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9C90
		mov	eax, [edx+28h]
		add	ebx, 1
		add	esi, 3Ch
		call	_ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_
		mov	eax, [ebp+var_1C]
		cmp	ebx, [eax+4]
		jl	short loc_F9C9B
		nop
		lea	esi, [esi+0]

loc_F9CC0:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+479j
		mov	ebx, edi
		mov	edi, [ebp+var_78]
		mov	ecx, [ebp+var_20]
		add	ebx, 3Ch
		add	edi, 1
		cmp	edi, [ecx+4]
		jl	loc_F9C1F
		mov	esi, esi
		lea	edi, [edi+0]

loc_F9CE0:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+3F9j
		mov	esi, [ebp+var_74]
		mov	ebx, [ebp+var_70]
		mov	eax, [ebp+var_24]
		add	esi, 1
		add	ebx, 3Ch
		cmp	esi, [eax+4]
		jl	loc_F9B9F
		nop
		lea	esi, [esi+0]

loc_F9D00:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+379j
		mov	edi, [ebp+var_6C]
		mov	ebx, [ebp+var_68]
		mov	eax, [ebp+var_28]
		add	edi, 1
		add	ebx, 3Ch
		cmp	edi, [eax+4]
		jl	loc_F9B1F
		nop
		lea	esi, [esi+0]

loc_F9D20:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+2F9j
		mov	esi, [ebp+var_60]
		mov	ebx, [ebp+var_64]
		mov	ecx, [ebp+var_2C]
		add	esi, 1
		add	ebx, 3Ch
		cmp	esi, [ecx+4]
		jl	loc_F9A9F
		nop
		lea	esi, [esi+0]

loc_F9D40:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+279j
		mov	edi, [ebp+var_58]
		mov	ebx, [ebp+var_5C]
		mov	eax, [ebp+var_30]
		add	edi, 1
		add	ebx, 3Ch
		cmp	edi, [eax+4]
		jl	loc_F9A1F
		nop
		lea	esi, [esi+0]

loc_F9D60:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+1F9j
		mov	esi, [ebp+var_50]
		mov	ebx, [ebp+var_54]
		mov	eax, [ebp+var_34]
		add	esi, 1
		add	ebx, 3Ch
		cmp	esi, [eax+4]
		jl	loc_F999F
		nop
		lea	esi, [esi+0]

loc_F9D80:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+179j
		mov	edi, [ebp+var_48]
		mov	ebx, [ebp+var_4C]
		mov	eax, [ebp+var_38]
		add	edi, 1
		add	ebx, 3Ch
		cmp	edi, [eax+4]
		jl	loc_F991F
		nop
		lea	esi, [esi+0]

loc_F9DA0:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+F9j
		mov	ebx, [ebp+var_40]
		mov	esi, [ebp+var_44]
		mov	eax, [ebp+var_3C]
		add	ebx, 1
		add	esi, 3Ch
		cmp	[eax+4], ebx
		jg	loc_F989F
		nop
		lea	esi, [esi+0]

loc_F9DC0:				; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+10j
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+5Aj ...
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_Init(RecvTable **, int)
_Z14RecvTable_InitPP9RecvTablei	proc near
					; CODE XREF: CHLTVServer::InitClientRecvTables(void)+115p
					; CReplayServer::InitClientRecvTables(void)+115p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		jle	loc_F9E8C
		xor	edi, edi
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_F9DF0:				; CODE XREF: RecvTable_Init(RecvTable **,int)+B6j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+edi*4]
		cmp	byte ptr [eax+11h], 0
		mov	[ebp+var_1C], eax
		jnz	loc_F9E80
		mov	ecx, [eax+8]
		test	ecx, ecx
		jz	short loc_F9E20
		mov	eax, [eax+0Ch]
		mov	dword ptr [esp], offset	aRecvtable_init	; "RecvTable_Init: table '%s' has a decode"...
		mov	[esp+4], eax
		call	Error
		mov	eax, [ebp+var_1C]

loc_F9E20:				; CODE XREF: RecvTable_Init(RecvTable **,int)+38j
		mov	byte ptr [eax+11h], 1
		lea	eax, [ebp+var_1C]
		mov	[esp+8], eax
		mov	dword ptr [esp+4], 0FFFFh
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ ;	CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)
		mov	eax, [ebp+var_1C]
		mov	edx, [eax+4]
		test	edx, edx
		jle	short loc_F9E80
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_F9E5B
; ---------------------------------------------------------------------------
		align 10h

loc_F9E50:				; CODE XREF: RecvTable_Init(RecvTable **,int)+93j
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [eax+4]
		jge	short loc_F9E80

loc_F9E5B:				; CODE XREF: RecvTable_Init(RecvTable **,int)+7Dj
					; RecvTable_Init(RecvTable **,int)+A9j
		mov	edx, [eax]
		add	edx, esi
		cmp	dword ptr [edx+4], 6
		jnz	short loc_F9E50
		mov	eax, [edx+28h]
		add	ebx, 1
		add	esi, 3Ch
		call	_ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_
		mov	eax, [ebp+var_1C]
		cmp	ebx, [eax+4]
		jl	short loc_F9E5B
		nop
		lea	esi, [esi+0]

loc_F9E80:				; CODE XREF: RecvTable_Init(RecvTable **,int)+2Dj
					; RecvTable_Init(RecvTable **,int)+77j	...
		add	edi, 1
		cmp	edi, [ebp+arg_4]
		jnz	loc_F9DF0

loc_F9E8C:				; CODE XREF: RecvTable_Init(RecvTable **,int)+Ej
		add	esp, 2Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z14RecvTable_InitPP9RecvTablei	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_Term(bool)
_Z14RecvTable_Termb proc near		; CODE XREF: CBaseClientState::Clear(void)+DDp
					; CHLTVServer::~CHLTVServer()+48p ...

var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		movzx	eax, [ebp+arg_0]
		mov	[ebp+var_19], al
		call	_Z8DTI_Termv	; DTI_Term(void)
		movzx	edx, word ptr ds:g_RecvTables+0Ch
		cmp	edx, 0FFFFh
		jz	loc_F9F45
		mov	ecx, dword ptr ds:g_RecvTables
		db	66h
		nop

loc_F9ED0:				; CODE XREF: RecvTable_Term(bool)+A3j
		shl	edx, 3
		lea	eax, [ecx+edx]
		mov	edi, [eax]
		cmp	byte ptr [edi+11h], 0
		jz	short loc_F9F39
		mov	ebx, [edi+4]
		mov	byte ptr [edi+11h], 0
		mov	dword ptr [edi+8], 0
		test	ebx, ebx
		jle	short loc_F9F39
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_F9F0B
; ---------------------------------------------------------------------------
		align 10h

loc_F9F00:				; CODE XREF: RecvTable_Term(bool)+73j
		add	ebx, 1
		add	esi, 3Ch
		cmp	ebx, [edi+4]
		jge	short loc_F9F30

loc_F9F0B:				; CODE XREF: RecvTable_Term(bool)+54j
					; RecvTable_Term(bool)+8Cj
		mov	eax, [edi]
		add	eax, esi
		cmp	dword ptr [eax+4], 6
		jnz	short loc_F9F00
		mov	eax, [eax+28h]
		add	ebx, 1
		mov	[ebp+var_20], edx
		add	esi, 3Ch
		call	_ZZ14RecvTable_TermbEN12CPropVisitor7Visit_REP9RecvTable
		cmp	ebx, [edi+4]
		mov	edx, [ebp+var_20]
		jl	short loc_F9F0B
		db	66h
		nop

loc_F9F30:				; CODE XREF: RecvTable_Term(bool)+69j
		mov	ecx, dword ptr ds:g_RecvTables
		lea	eax, [ecx+edx]

loc_F9F39:				; CODE XREF: RecvTable_Term(bool)+3Cj
					; RecvTable_Term(bool)+4Ej
		movzx	edx, word ptr [eax+6]
		cmp	edx, 0FFFFh
		jnz	short loc_F9ED0

loc_F9F45:				; CODE XREF: RecvTable_Term(bool)+22j
		cmp	[ebp+var_19], 0
		jnz	loc_F9FD9

loc_F9F4F:				; CODE XREF: RecvTable_Term(bool)+176j
		mov	dword ptr [esp], offset	g_RecvDecoders
		call	_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE22PurgeAndDeleteElementsEv ; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::PurgeAndDeleteElements(void)
		movzx	esi, word ptr ds:g_ClientSendTables+0Ch

loc_F9F62:				; CODE XREF: RecvTable_Term(bool)+DCj
		cmp	si, 0FFFFh
		jz	short loc_F9F94

loc_F9F68:				; CODE XREF: RecvTable_Term(bool)+F2j
		mov	edx, dword ptr ds:g_ClientSendTables
		movzx	eax, si
		lea	eax, [edx+eax*8]
		mov	ebx, [eax]
		movzx	esi, word ptr [eax+6]
		test	ebx, ebx
		jz	short loc_F9F62
		mov	[esp], ebx
		call	_ZN16CClientSendTableD2Ev ; CClientSendTable::~CClientSendTable()
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		cmp	si, 0FFFFh
		jnz	short loc_F9F68

loc_F9F94:				; CODE XREF: RecvTable_Term(bool)+C6j
		mov	dword ptr [esp], offset	g_ClientSendTables
		call	_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::RemoveAll(void)
		mov	dword ptr [esp], offset	g_ClientSendTables
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP16CClientSendTabletEtE5PurgeEv ;	CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>::Purge(void)
		mov	eax, dword ptr ds:g_ClientSendTables
		mov	word ptr ds:g_ClientSendTables+10h, 0FFFFh
		mov	word ptr ds:g_ClientSendTables+14h, 0
		mov	word ptr ds:g_ClientSendTables+16h, 0FFFFh
		mov	dword ptr ds:g_ClientSendTables+18h, eax
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_F9FD9:				; CODE XREF: RecvTable_Term(bool)+A9j
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<RecvTable	*,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::RemoveAll(void)
		mov	dword ptr [esp], offset	g_RecvTables
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP9RecvTabletEtE5PurgeEv ;	CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Purge(void)
		mov	eax, dword ptr ds:g_RecvTables
		mov	word ptr ds:g_RecvTables+10h, 0FFFFh
		mov	word ptr ds:g_RecvTables+14h, 0
		mov	word ptr ds:g_RecvTables+16h, 0FFFFh
		mov	dword ptr ds:g_RecvTables+18h, eax
		jmp	loc_F9F4F
_Z14RecvTable_Termb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t, unsigned short, bool (*)(MatchingProp_t const&, MatchingProp_t	const&), CUtlMemory<UtlRBTreeNode_t<MatchingProp_t, unsigned short>, unsigned short>> &, char  const*, SendTable *, RecvTable *, bool, bool *)
_ZL27MatchRecvPropsToSendProps_RR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEEPKcP9SendTableP9RecvTablebPb proc near
					; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+17Bp
					; RecvTable_CreateDecoders(CStandardSendProxies	 const*,bool,bool *)+C9p

var_50		= dword	ptr -50h
var_49		= byte ptr -49h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 5Ch
		mov	[ebp+var_48], edx
		mov	edx, [ecx+4]
		mov	[ebp+var_44], eax
		movzx	eax, [ebp+arg_4]
		mov	[ebp+var_40], ecx
		test	edx, edx
		mov	[ebp+var_49], al
		mov	eax, 1
		jle	loc_FA126
		movzx	edx, [ebp+var_49]
		mov	[ebp+var_38], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_50], edx
		db	66h
		nop

loc_FA060:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+FBj
		mov	edx, [ebp+var_38]
		mov	eax, [ebp+var_40]
		add	edx, [eax]
		test	dword ptr [edx+38h], 140h
		mov	[ebp+var_34], edx
		jnz	loc_FA10A
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	loc_FA130
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+var_34]
		mov	eax, [eax+4]
		mov	edi, [edx+30h]
		test	eax, eax
		mov	[ebp+var_2C], eax
		jle	loc_FA130
		mov	edx, [ebp+arg_0]
		xor	esi, esi
		mov	ebx, [edx]
		jmp	short loc_FA0B3
; ---------------------------------------------------------------------------
		align 8

loc_FA0A8:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+A6j
		add	esi, 1
		add	ebx, 3Ch
		cmp	esi, [ebp+var_2C]
		jz	short loc_FA130

loc_FA0B3:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+81j
		mov	[esp+4], edi	; s2
		mov	eax, [ebx]
		mov	[ebp+var_30], ebx
		mov	[esp], eax	; s1
		call	strcasecmp
		test	eax, eax
		jnz	short loc_FA0A8
		test	ebx, ebx
		mov	edi, [ebp+var_30]
		jz	short loc_FA130
		mov	edx, [ebp+var_34]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_Z25CompareRecvPropToSendPropPK8RecvPropPK8SendProp ; CompareRecvPropToSendProp(RecvProp  const*,SendProp  const*)
		mov	edx, [ebp+var_34]
		test	al, al
		jz	loc_FA1B2
		lea	eax, [ebp+var_20]
		mov	[ebp+var_20], edx
		mov	[esp+4], eax
		mov	eax, [ebp+var_44]
		mov	[ebp+var_1C], edi
		mov	[esp], eax
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE6InsertES2_	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)
		mov	edx, [ebp+var_34]
		cmp	dword ptr [edx+8], 6
		jz	short loc_FA175

loc_FA10A:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+52j
					; MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>	&,char	const*,SendTable *,RecvTable *,bool,bool *)+153j ...
		add	[ebp+var_3C], 1
		mov	eax, [ebp+var_40]
		add	[ebp+var_38], 50h
		mov	edx, [ebp+var_3C]
		cmp	[eax+4], edx
		jg	loc_FA060
		mov	eax, 1

loc_FA126:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+23j
		add	esp, 5Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FA130:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+5Dj
					; MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>	&,char	const*,SendTable *,RecvTable *,bool,bool *)+74j ...
		mov	edi, [ebp+arg_8]
		test	edi, edi
		jz	short loc_FA13D
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx],	1

loc_FA13D:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+115j
		mov	edx, [ebp+var_34]
		mov	eax, [edx+30h]
		mov	edx, [ebp+var_40]
		mov	[esp+0Ch], eax
		mov	eax, [edx+8]
		mov	dword ptr [esp], offset	aMissingRecvpro	; "Missing RecvProp for	%s - %s/%s\n"
		mov	edx, [ebp+var_48]
		mov	[esp+8], eax
		mov	[esp+4], edx
		call	Warning
		cmp	[ebp+var_49], 0
		jz	short loc_FA1A8
		mov	edx, [ebp+var_34]
		xor	edi, edi
		cmp	dword ptr [edx+8], 6
		jnz	short loc_FA10A

loc_FA175:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+E8j
		xor	eax, eax
		test	edi, edi
		jz	short loc_FA17E
		mov	eax, [edi+28h]

loc_FA17E:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+159j
		mov	edx, [ebp+var_34]
		mov	ecx, [edx+44h]
		mov	[esp], eax
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+var_44]
		mov	[esp+8], edx
		mov	edx, [ebp+var_50]
		mov	[esp+4], edx
		mov	edx, [ebp+var_48]
		call	_ZL27MatchRecvPropsToSendProps_RR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEEPKcP9SendTableP9RecvTablebPb ; MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable	*,RecvTable *,bool,bool	*)
		test	al, al
		jnz	loc_FA10A

loc_FA1A8:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+148j
		add	esp, 5Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_FA1B2:				; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+C3j
		mov	eax, [edx+30h]
		mov	edx, [ebp+var_40]
		mov	[esp+8], eax
		mov	eax, [edx+8]
		mov	dword ptr [esp], offset	aRecvpropTypeDo	; "RecvProp type doesn't match server type"...
		mov	[esp+4], eax
		call	Warning
		add	esp, 5Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZL27MatchRecvPropsToSendProps_RR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEEPKcP9SendTableP9RecvTablebPb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108 proc near
					; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+E1p
					; RecvTable_CreateDecoders(CStandardSendProxies	 const*,bool,bool *)+F1p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ebx, eax
		sub	esp, 3Ch
		mov	[ebp+var_30], edx
		mov	eax, [edx+0Ch]
		mov	[ebp+var_38], ecx
		mov	[esp], ecx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIPK8RecvProp10CUtlMemoryIS2_iEE8SetCountEi ; CUtlVector<RecvProp	 const*,CUtlMemory<RecvProp  const*,int>>::SetCount(int)
		mov	edx, [ebp+var_30]
		mov	ecx, [edx+0Ch]
		test	ecx, ecx
		jle	loc_FA290
		mov	[ebp+var_2C], 0
		lea	esi, [esi+0]

loc_FA218:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+AEj
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_30]
		movzx	edi, word ptr [ebx+10h]
		shl	ecx, 2
		mov	[ebp+var_34], ecx
		mov	eax, [edx]
		mov	ecx, [ebp+var_2C]
		mov	eax, [eax+ecx*4]
		mov	[ebp+var_20], eax
		nop
		lea	esi, [esi+0]

loc_FA238:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+EDj
		cmp	di, 0FFFFh
		jz	short loc_FA272

loc_FA23E:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+90j
		mov	eax, [ebx+4]
		movzx	esi, di
		shl	esi, 4
		add	eax, esi
		add	eax, 8
		mov	[esp+4], eax
		lea	eax, [ebp+var_20]
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jz	short loc_FA2A0
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FA2D8

loc_FA265:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+106j
					; _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+133j
		mov	eax, [ebx+4]
		movzx	edi, word ptr [eax+esi]
		cmp	di, 0FFFFh
		jnz	short loc_FA23E

loc_FA272:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+5Cj
					; _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+184j
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_34]
		mov	eax, [ecx]
		mov	dword ptr [eax+edx], 0

loc_FA281:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+19Cj
		add	[ebp+var_2C], 1
		mov	edx, [ebp+var_30]
		mov	ecx, [ebp+var_2C]
		cmp	ecx, [edx+0Ch]
		jl	short loc_FA218

loc_FA290:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+28j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FA2A0:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+7Aj
		mov	eax, [ebx+4]
		lea	edx, [ebp+var_20]
		mov	[esp+4], edx
		add	eax, esi
		add	eax, 8
		mov	[esp], eax
		call	dword ptr [ebx]
		test	al, al
		jz	loc_FA360
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FA320

loc_FA2C5:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+14Ej
					; _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+177j
		mov	eax, [ebx+4]
		movzx	edi, word ptr [eax+esi+2]
		jmp	loc_FA238
; ---------------------------------------------------------------------------
		align 8

loc_FA2D8:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+83j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FA265
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FA265
; ---------------------------------------------------------------------------
		align 10h

loc_FA320:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+E3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_FA2C5
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FA2C5
; ---------------------------------------------------------------------------
		align 10h

loc_FA360:				; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+D6j
		cmp	di, 0FFFFh
		jz	loc_FA272
		mov	eax, [ebx+4]
		mov	ecx, [ebp+var_38]
		mov	edx, [eax+esi+0Ch]
		mov	eax, [ecx]
		mov	ecx, [ebp+var_34]
		mov	[eax+ecx], edx
		jmp	loc_FA281
_ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108 endp

; ---------------------------------------------------------------------------
		jmp	short _Z24RecvTable_CreateDecodersPK20CStandardSendProxiesbPb ;	RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool	*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; RecvTable_CreateDecoders(CStandardSendProxies	 const*, bool, bool *)
_Z24RecvTable_CreateDecodersPK20CStandardSendProxiesbPb	proc near
					; CODE XREF: .text:000FA381j
					; CHLTVClientState::ProcessClassInfo(SVC_ClassInfo *)+4Bp

var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		movzx	eax, [ebp+arg_4]
		mov	byte ptr [ebp+var_3C], al
		call	_Z8DTI_Initv	; DTI_Init(void)
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_FA3B2
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	0

loc_FA3B2:				; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+1Aj
		call	_Z29SetupClientSendTableHierarchyv ; SetupClientSendTableHierarchy(void)
		test	al, al
		jz	loc_FA4ED
		movzx	eax, word ptr ds:g_RecvDecoders+0Ch
		cmp	ax, 0FFFFh
		jz	loc_FA500
		mov	edx, dword ptr ds:g_RecvDecoders
		movzx	eax, ax
		lea	edi, ds:0[eax*8]
		mov	ebx, [edx+eax*8]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	loc_FA4ED
		movzx	eax, byte ptr [ebp+var_3C]
		lea	esi, [ebp+var_34]
		mov	[ebp+var_3C], eax
		jmp	loc_FA4DA
; ---------------------------------------------------------------------------
		align 10h

loc_FA400:				; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+157j
		mov	ecx, [ebx+94h]
		mov	[ebp+var_2C], 0
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0FFFFh
		mov	[ebp+var_22], 0
		mov	[ebp+var_20], 0FFFFh
		mov	[ebp+var_1E], 0FFFFh
		mov	[ebp+var_1C], 0
		mov	edx, [ecx+8]
		mov	[esp+8], eax
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_34], offset _ZN14MatchingProp_t8LessFuncERKS_S1_ ; MatchingProp_t::LessFunc(MatchingProp_t const&,MatchingProp_t const&)
		mov	[ebp+var_30], 0
		mov	[esp+4], eax
		mov	eax, [ebx]
		mov	[esp], eax
		mov	eax, esi
		call	_ZL27MatchRecvPropsToSendProps_RR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEEPKcP9SendTableP9RecvTablebPb ; MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable	*,RecvTable *,bool,bool	*)
		test	al, al
		jz	loc_FA510
		lea	ecx, [ebx+120h]
		mov	eax, esi
		lea	edx, [ebx+34h]
		call	_ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108
		lea	ecx, [ebx+134h]
		mov	eax, esi
		lea	edx, [ebx+5Ch]
		call	_ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108
		mov	[esp], ebx
		call	_Z19DTI_HookRecvDecoderP12CRecvDecoder ; DTI_HookRecvDecoder(CRecvDecoder *)
		lea	ebx, [ebp+var_30]
		mov	[esp], esi
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE9RemoveAllEv ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)
		mov	[ebp+var_20], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)
		mov	[ebp+var_1E], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)
		mov	edx, dword ptr ds:g_RecvDecoders
		movzx	eax, word ptr [edx+edi+6]
		cmp	ax, 0FFFFh
		jz	short loc_FA500
		movzx	eax, ax
		mov	ebx, [edx+eax*8]
		lea	edi, ds:0[eax*8]
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_FA4ED

loc_FA4DA:				; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+68j
		lea	eax, [ebx+8]
		mov	[esp], eax
		call	_ZN17CSendTablePrecalc22SetupFlatPropertyArrayEv ; CSendTablePrecalc::SetupFlatPropertyArray(void)
		test	al, al
		jnz	loc_FA400

loc_FA4ED:				; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+29j
					; RecvTable_CreateDecoders(CStandardSendProxies	 const*,bool,bool *)+58j ...
		add	esp, 4Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FA500:				; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+3Aj
					; RecvTable_CreateDecoders(CStandardSendProxies	 const*,bool,bool *)+134j
		add	esp, 4Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FA510:				; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+D0j
		lea	ebx, [ebp+var_30]
		mov	[esp], esi
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE9RemoveAllEv ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)
		mov	[esp], ebx
		mov	[ebp+var_20], 0FFFFh
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)
		mov	[esp], ebx
		mov	[ebp+var_1E], 0FFFFh
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)
		add	esp, 4Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z24RecvTable_CreateDecodersPK20CStandardSendProxiesbPb	endp

; ---------------------------------------------------------------------------
		lea	ebx, [ebp-30h]
		mov	edi, eax
		mov	[esp], esi
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE9RemoveAllEv ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)
		mov	word ptr [ebp-20h], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)
		mov	word ptr [ebp-1Eh], 0FFFFh
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv ; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)
		mov	[esp], edi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; MatchingProp_t::LessFunc(MatchingProp_t const&, MatchingProp_t const&)
_ZN14MatchingProp_t8LessFuncERKS_S1_ proc near
					; DATA XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+B0o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		pop	ebp
		mov	ecx, [eax]
		cmp	[edx], ecx
		setb	al
		retn
_ZN14MatchingProp_t8LessFuncERKS_S1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<RecvTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<RecvTable *, unsigned short>, unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv proc near
					; CODE XREF: RecvTable_Term(bool)+140p
					; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::~CUtlLinkedList()+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	word ptr [ebx+16h], 0FFFFh
		jz	short loc_FA608
		movzx	edx, word ptr [ebx+0Ch]
		cmp	dx, 0FFFFh
		jz	short loc_FA5F6
		nop
		lea	esi, [esi+0]

loc_FA5C0:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::RemoveAll(void)+38j
		mov	ecx, [ebx]
		movzx	eax, dx
		lea	eax, [ecx+eax*8]
		movzx	ecx, word ptr [eax+6]
		mov	[eax+4], dx
		cmp	cx, 0FFFFh
		jz	short loc_FA5E0
		mov	edx, ecx
		jmp	short loc_FA5C0
; ---------------------------------------------------------------------------
		align 10h

loc_FA5E0:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::RemoveAll(void)+34j
		movzx	edx, word ptr [ebx+10h]
		mov	[eax+6], dx
		movzx	eax, word ptr [ebx+0Ch]
		cmp	ax, 0FFFFh
		jz	short loc_FA5F6
		mov	[ebx+10h], ax

loc_FA5F6:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::RemoveAll(void)+16j
					; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::RemoveAll(void)+50j
		mov	word ptr [ebx+0Ch], 0FFFFh
		mov	word ptr [ebx+0Eh], 0FFFFh
		mov	word ptr [ebx+12h], 0

loc_FA608:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::RemoveAll(void)+Cj
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<RecvTable *, unsigned short>, unsigned	short>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP9RecvTabletEtE5PurgeEv proc near
					; CODE XREF: RecvTable_Term(bool)+14Cp
					; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::~CUtlLinkedList()+1Aj

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_FA63C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_FA635
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_FA635:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_FA63C:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP9RecvTabletEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<RecvTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<RecvTable *, unsigned short>, unsigned short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_RecvTables+52o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<RecvTable	*,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::RemoveAll(void)
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP9RecvTabletEtE5PurgeEv ;	CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Purge(void)
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP12CRecvDecodertEtE5PurgeEv proc near
					; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::~CUtlLinkedList()+1Aj
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::PurgeAndDeleteElements(void)+BCp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_FA69C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_FA695
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_FA695:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_FA69C:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP12CRecvDecodertEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<CClientSendTable *, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP16CClientSendTabletEtE5PurgeEv proc near
					; CODE XREF: RecvTable_Term(bool)+107p
					; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>>::~CUtlLinkedList()+1Aj

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_FA6DC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_FA6D5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_FA6D5:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_FA6DC:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP16CClientSendTabletEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CRecvDecoder *, unsigned short, false,	unsigned short,	CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned	short>,	unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv proc near
					; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::~CUtlLinkedList()+Dp
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::PurgeAndDeleteElements(void)+B1p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	word ptr [ebx+16h], 0FFFFh
		jz	short loc_FA758
		movzx	edx, word ptr [ebx+0Ch]
		cmp	dx, 0FFFFh
		jz	short loc_FA746
		nop
		lea	esi, [esi+0]

loc_FA710:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::RemoveAll(void)+38j
		mov	ecx, [ebx]
		movzx	eax, dx
		lea	eax, [ecx+eax*8]
		movzx	ecx, word ptr [eax+6]
		mov	[eax+4], dx
		cmp	cx, 0FFFFh
		jz	short loc_FA730
		mov	edx, ecx
		jmp	short loc_FA710
; ---------------------------------------------------------------------------
		align 10h

loc_FA730:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::RemoveAll(void)+34j
		movzx	edx, word ptr [ebx+10h]
		mov	[eax+6], dx
		movzx	eax, word ptr [ebx+0Ch]
		cmp	ax, 0FFFFh
		jz	short loc_FA746
		mov	[ebx+10h], ax

loc_FA746:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::RemoveAll(void)+16j
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::RemoveAll(void)+50j
		mov	word ptr [ebx+0Ch], 0FFFFh
		mov	word ptr [ebx+0Eh], 0FFFFh
		mov	word ptr [ebx+12h], 0

loc_FA758:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::RemoveAll(void)+Cj
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CRecvDecoder *, unsigned short, false,	unsigned short,	CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned	short>,	unsigned short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_RecvTables+CCo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::RemoveAll(void)
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP12CRecvDecodertEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>::Purge(void)
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CClientSendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CClientSendTable *, unsigned	short>,	unsigned short>>::RemoveAll(void)
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv proc near
					; CODE XREF: RecvTable_Term(bool)+FBp
					; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>>::~CUtlLinkedList()+Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	word ptr [ebx+16h], 0FFFFh
		jz	short loc_FA7E8
		movzx	edx, word ptr [ebx+0Ch]
		cmp	dx, 0FFFFh
		jz	short loc_FA7D6
		nop
		lea	esi, [esi+0]

loc_FA7A0:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::RemoveAll(void)+38j
		mov	ecx, [ebx]
		movzx	eax, dx
		lea	eax, [ecx+eax*8]
		movzx	ecx, word ptr [eax+6]
		mov	[eax+4], dx
		cmp	cx, 0FFFFh
		jz	short loc_FA7C0
		mov	edx, ecx
		jmp	short loc_FA7A0
; ---------------------------------------------------------------------------
		align 10h

loc_FA7C0:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::RemoveAll(void)+34j
		movzx	edx, word ptr [ebx+10h]
		mov	[eax+6], dx
		movzx	eax, word ptr [ebx+0Ch]
		cmp	ax, 0FFFFh
		jz	short loc_FA7D6
		mov	[ebx+10h], ax

loc_FA7D6:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::RemoveAll(void)+16j
					; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>>::RemoveAll(void)+50j
		mov	word ptr [ebx+0Ch], 0FFFFh
		mov	word ptr [ebx+0Eh], 0FFFFh
		mov	word ptr [ebx+12h], 0

loc_FA7E8:				; CODE XREF: CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::RemoveAll(void)+Cj
		pop	ebx
		pop	ebp
		retn
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CClientSendTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<CClientSendTable *, unsigned	short>,	unsigned short>>::~CUtlLinkedList()
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev proc near
					; DATA XREF: _GLOBAL__sub_I_g_RecvTables+146o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CClientSendTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CClientSendTable *,ushort>,ushort>>::RemoveAll(void)
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP16CClientSendTabletEtE5PurgeEv ;	CUtlMemory<UtlLinkedListElem_t<CClientSendTable	*,ushort>,ushort>::Purge(void)
_ZN14CUtlLinkedListIP16CClientSendTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t, unsigned short>, unsigned short>::Purge(void)
_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv proc near
					; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+112p
					; RecvTable_CreateDecoders(CStandardSendProxies	 const*,bool,bool *)+120p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_FA83C
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_FA835
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_FA835:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_FA83C:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<MatchingProp_t, unsigned short, bool (*)(MatchingProp_t const&, MatchingProp_t const&), CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,	unsigned short>, unsigned short>>::RemoveAll(void)
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE9RemoveAllEv proc near
					; CODE XREF: RecvTable_CreateDecoders(CStandardSendProxies  const*,bool,bool *)+104p
					; RecvTable_CreateDecoders(CStandardSendProxies	 const*,bool,bool *)+186p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		movzx	edx, word ptr [edi+16h]
		cmp	dx, 0FFFFh
		jz	short loc_FA8AC
		mov	eax, [edi+8]
		test	eax, eax
		jz	short loc_FA8A0
		xor	esi, esi
		nop

loc_FA870:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+46j
		cmp	esi, eax
		mov	ebx, esi
		jnb	short loc_FA87B
		cmp	si, dx
		jbe	short loc_FA8B8

loc_FA87B:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+24j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+97j
		cmp	bx, dx
		jz	short loc_FA8A0
		mov	eax, [edi+8]
		add	ebx, 1
		movzx	ebx, bx
		cmp	ebx, eax
		jnb	short loc_FA8A0
		add	esi, 1
		cmp	esi, 0FFFFh
		jnz	short loc_FA870
		nop
		lea	esi, [esi+0]

loc_FA8A0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+1Bj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+2Ej ...
		mov	word ptr [edi+10h], 0FFFFh
		mov	word ptr [edi+12h], 0

loc_FA8AC:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+14j
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FA8B8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+29j
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FA8F0

loc_FA8C1:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+AEj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+D7j
		mov	ecx, [edi+4]
		mov	edx, esi
		shl	edx, 4
		add	ecx, edx
		cmp	bx, [ecx]
		jz	short loc_FA8E3
		movzx	eax, word ptr [edi+14h]
		mov	[ecx+2], ax
		mov	eax, [edi+4]
		mov	[eax+edx], bx
		mov	[edi+14h], bx

loc_FA8E3:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+7Ej
		movzx	edx, word ptr [edi+16h]
		jmp	short loc_FA87B
; ---------------------------------------------------------------------------
		align 10h

loc_FA8F0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RemoveAll(void)+6Fj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_FA8C1
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	short loc_FA8C1
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE9RemoveAllEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t, unsigned short>, unsigned short>::Grow(int)
_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE4GrowEi proc near
					; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+9Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_FA9B2
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_FA9C0
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_FA966
		lea	esi, [esi+0]

loc_FA960:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_FA960

loc_FA966:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_FA998
		test	ax, ax
		jz	short loc_FA9D8
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_FA9B2
		cmp	esi, ecx
		jge	short loc_FA998
		lea	esi, [esi+0]

loc_FA980:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_FA980
		lea	esi, [esi+0]

loc_FA998:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jz	short loc_FA9E8
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_FA9B2:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FA9C0:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_FA966
; ---------------------------------------------------------------------------
		align 8

loc_FA9D8:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_FA998
		jmp	short loc_FA9B2
; ---------------------------------------------------------------------------
		align 4

loc_FA9E8:				; CODE XREF: CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)+72j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<MatchingProp_t, unsigned short, bool (*)(MatchingProp_t const&, MatchingProp_t const&), CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,	unsigned short>, unsigned short>>::NewNode(void)
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE7NewNodeEv proc near
					; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+82p
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+19Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		movzx	eax, word ptr [ebx+14h]
		cmp	ax, 0FFFFh
		jz	short loc_FAA40
		mov	ecx, [ebx+4]
		movzx	edx, ax
		shl	edx, 4
		movzx	edx, word ptr [ecx+edx+2]
		mov	[ebx+18h], ecx
		mov	[ebx+14h], dx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FAA40:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+17j
		movzx	ecx, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	esi, cx
		cmp	esi, edx
		jb	short loc_FAA78
		test	edx, edx
		jz	short loc_FAA8F
		xor	ecx, ecx
		xor	eax, eax
		cmp	edx, ecx
		jbe	short loc_FAA8F
		lea	esi, [esi+0]

loc_FAA60:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+8Dj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+CAj	...
		mov	ecx, [ebx+4]
		mov	[ebx+16h], ax
		mov	[ebx+18h], ecx
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FAA78:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+4Cj
		add	ecx, 1
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi
		cmp	edx, ecx
		ja	short loc_FAA60

loc_FAA8F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+50j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+58j
		lea	eax, [ebx+4]
		mov	dword ptr [esp+4], 1
		mov	[esp], eax
		call	_ZN10CUtlMemoryI15UtlRBTreeNode_tI14MatchingProp_ttEtE4GrowEi ;	CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>::Grow(int)
		movzx	eax, word ptr [ebx+16h]
		mov	edx, [ebx+8]
		movzx	ecx, ax
		cmp	ecx, edx
		jnb	short loc_FAAE0
		lea	ecx, [eax+1]
		mov	eax, 0FFFFFFFFh
		movzx	esi, cx
		cmp	edx, esi
		cmova	eax, ecx
		mov	ecx, 0FFFFh
		cmova	ecx, esi

loc_FAAC8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+EDj
		cmp	ecx, edx
		jb	short loc_FAA60

loc_FAACC:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+E7j
		mov	[ebp+var_C], eax
		mov	dword ptr [esp], offset	aCutlrbtreeOver	; "CUtlRBTree overflow!\n"
		call	Error
		mov	eax, [ebp+var_C]
		jmp	short loc_FAA60
; ---------------------------------------------------------------------------

loc_FAAE0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)+AEj
		test	edx, edx
		mov	eax, 0FFFFFFFFh
		jz	short loc_FAACC
		xor	ecx, ecx
		xor	eax, eax
		jmp	short loc_FAAC8
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE7NewNodeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<UtlLinkedListElem_t<RecvTable *, unsigned short>, unsigned	short>::Grow(int)
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP9RecvTabletEtE4GrowEi proc near
					; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+E1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_FAB72
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_FAB80
		test	eax, eax
		mov	edx, 4
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_FAB26
		lea	esi, [esi+0]

loc_FAB20:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_FAB20

loc_FAB26:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+2Aj
					; CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+A0j
		movzx	esi, ax
		cmp	ecx, esi
		jle	short loc_FAB58
		test	ax, ax
		jz	short loc_FAB98
		movzx	edx, cx
		cmp	edx, ecx
		jnz	short loc_FAB72
		cmp	esi, ecx
		jge	short loc_FAB58
		lea	esi, [esi+0]

loc_FAB40:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+60j
		add	eax, edx
		mov	ecx, eax
		shr	ecx, 1Fh
		add	eax, ecx
		sar	eax, 1
		movzx	ecx, ax
		cmp	edx, ecx
		jg	short loc_FAB40
		lea	esi, [esi+0]

loc_FAB58:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+3Bj
					; CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+4Bj ...
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 3
		test	edx, edx
		jz	short loc_FABA8
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_FAB72:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+10j
					; CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+47j ...
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FAB80:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		jmp	short loc_FAB26
; ---------------------------------------------------------------------------
		align 8

loc_FAB98:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+40j
		sub	eax, 1
		cmp	ecx, 0FFFFh
		jle	short loc_FAB58
		jmp	short loc_FAB72
; ---------------------------------------------------------------------------
		align 4

loc_FABA8:				; CODE XREF: CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>::Grow(int)+72j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI19UtlLinkedListElem_tIP9RecvTabletEtE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<RecvTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<RecvTable *, unsigned short>, unsigned short>>::AllocInternal(bool)
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb proc near
					; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+20p

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		movzx	edx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		movzx	eax, word ptr [ebx+10h]
		cmp	ax, 0FFFFh
		jz	short loc_FAC30
		mov	edi, [ebx]
		movzx	ecx, ax
		shl	ecx, 3
		add	edi, ecx
		movzx	esi, word ptr [edi+6]
		mov	[ebx+10h], si

loc_FABF2:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+A9j
		test	dl, dl
		jz	short loc_FAC18
		mov	word ptr [edi+6], 0FFFFh
		mov	edx, [ebx]
		mov	word ptr [edx+ecx+4], 0FFFFh

loc_FAC05:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+117j
					; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+136j	...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FAC18:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+34j
		mov	[edi+6], ax
		mov	edx, [ebx]
		mov	[edx+ecx+4], ax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_FAC30:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+1Ej
		movzx	esi, word ptr [ebx+16h]
		mov	ecx, [ebx+4]
		movzx	edi, si
		cmp	edi, ecx
		jb	short loc_FAC70
		test	ecx, ecx
		jz	short loc_FAC90
		xor	edi, edi
		xor	esi, esi

loc_FAC46:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+C7j
		cmp	edi, ecx
		jnb	short loc_FAC90

loc_FAC4A:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+10Aj
		cmp	si, 0FFFFh
		jz	loc_FAD00
		mov	edi, [ebx]
		movzx	ecx, si
		mov	[ebx+16h], si
		add	word ptr [ebx+14h], 1
		shl	ecx, 3
		mov	eax, esi
		add	edi, ecx
		jmp	short loc_FABF2
; ---------------------------------------------------------------------------
		align 10h

loc_FAC70:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+7Cj
		add	esi, 1
		movzx	edi, si
		cmp	ecx, edi
		mov	[ebp+var_1C], edi
		mov	edi, 0FFFFh
		cmovbe	esi, eax
		cmova	edi, [ebp+var_1C]
		jmp	short loc_FAC46
; ---------------------------------------------------------------------------
		align 10h

loc_FAC90:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+80j
					; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+88j
		mov	[ebp+var_20], eax
		mov	[ebp+var_24], dl
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP9RecvTabletEtE4GrowEi ; CUtlMemory<UtlLinkedListElem_t<RecvTable	*,ushort>,ushort>::Grow(int)
		mov	ecx, [ebx]
		movzx	edi, word ptr [ebx+16h]
		mov	[ebx+18h], ecx
		mov	ecx, [ebx+4]
		movzx	esi, di
		mov	eax, [ebp+var_20]
		movzx	edx, [ebp+var_24]
		cmp	esi, ecx
		jb	short loc_FAD30
		test	ecx, ecx
		jz	short loc_FACD0
		xor	edi, edi
		xor	esi, esi

loc_FACC8:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+18Dj
		cmp	ecx, edi
		ja	loc_FAC4A

loc_FACD0:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+102j
		cmp	ds:_ZZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount,	9 ; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_FAC05
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedlist	; "CUtlLinkedList overflow! (exhausted mem"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount,	1 ; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_FAC05
; ---------------------------------------------------------------------------
		align 10h

loc_FAD00:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+8Ej
		cmp	ds:_ZZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 9 ; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jg	loc_FAC05
		mov	[ebp+var_20], eax
		mov	dword ptr [esp], offset	aCutllinkedli_0	; "CUtlLinkedList overflow! (exhausted ind"...
		call	Warning
		mov	eax, [ebp+var_20]
		add	ds:_ZZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEbE14__executeCount_0, 1 ; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)::__executeCount
		jmp	loc_FAC05
; ---------------------------------------------------------------------------
		align 10h

loc_FAD30:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)+FEj
		add	edi, 1
		movzx	esi, di
		mov	[ebp+var_1C], esi
		mov	esi, 0FFFFFFFFh
		cmp	ecx, [ebp+var_1C]
		cmova	esi, edi
		mov	edi, 0FFFFh
		cmova	edi, [ebp+var_1C]
		jmp	loc_FACC8
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<RecvTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<RecvTable *, unsigned short>, unsigned short>>::Unlink(unsigned short)
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt proc near
					; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+3Bp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		movzx	ecx, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		movzx	edx, cx
		cmp	edx, [eax+4]
		jnb	short loc_FADCA
		cmp	cx, [eax+16h]
		ja	short loc_FADCA
		mov	esi, [eax]
		lea	edx, [esi+edx*8]
		cmp	cx, [edx+4]
		jz	short loc_FADCA
		movzx	ebx, word ptr [edx+4]
		cmp	bx, 0FFFFh
		jz	short loc_FADE0
		movzx	edi, word ptr [edx+6]
		movzx	ebx, bx
		mov	[esi+ebx*8+6], di
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jz	short loc_FADF2

loc_FADAF:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::Unlink(ushort)+90j
		movzx	edi, word ptr [edx+4]
		movzx	ebx, bx
		mov	esi, [eax]
		mov	[esi+ebx*8+4], di

loc_FADBD:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::Unlink(ushort)+9Aj
		mov	[edx+6], cx
		mov	[edx+4], cx
		sub	word ptr [eax+12h], 1

loc_FADCA:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::Unlink(ushort)+1Cj
					; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::Unlink(ushort)+22j ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FADE0:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::Unlink(ushort)+37j
		movzx	ebx, word ptr [edx+6]
		mov	[eax+0Ch], bx
		movzx	ebx, word ptr [edx+6]
		cmp	bx, 0FFFFh
		jnz	short loc_FADAF

loc_FADF2:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::Unlink(ushort)+4Dj
		movzx	ebx, word ptr [edx+4]
		mov	[eax+0Eh], bx
		jmp	short loc_FADBD
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<RecvTable *, unsigned short, false, unsigned short, CUtlMemory<UtlLinkedListElem_t<RecvTable *, unsigned short>, unsigned short>>::InsertBefore(unsigned short, RecvTable * const&)
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ proc near
					; CODE XREF: _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+4Dp
					; _ZZ14RecvTable_InitPP9RecvTableiEN12CPropVisitor7Visit_RES0_+CCp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE13AllocInternalEb ; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::AllocInternal(bool)
		cmp	ax, 0FFFFh
		jz	short loc_FAE8B
		movzx	edx, ax
		mov	[ebp+var_1C], eax
		mov	[esp+4], edx
		mov	[ebp+var_20], edx
		mov	[esp], ebx
		call	_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE6UnlinkEt ; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::Unlink(ushort)
		mov	edx, [ebp+var_20]
		mov	ecx, [ebx]
		shl	edx, 3
		add	ecx, edx
		cmp	si, 0FFFFh
		mov	[ecx+6], si
		mov	eax, [ebp+var_1C]
		jz	short loc_FAEA0
		movzx	edi, si
		mov	esi, [ebx]
		lea	edi, [esi+edi*8]
		movzx	esi, word ptr [edi+4]
		mov	[edi+4], ax
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		jz	short loc_FAEB2

loc_FAE71:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+B0j
		mov	ecx, [ebx]
		movzx	esi, si
		mov	[ecx+esi*8+6], ax

loc_FAE7B:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+B6j
		add	word ptr [ebx+12h], 1
		add	edx, [ebx]
		jz	short loc_FAE8B
		mov	ecx, [ebp+arg_8]
		mov	ecx, [ecx]
		mov	[edx], ecx

loc_FAE8B:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+29j
					; CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+82j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FAEA0:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+55j
		movzx	esi, word ptr [ebx+0Eh]
		cmp	si, 0FFFFh
		mov	[ecx+4], si
		mov	[ebx+0Eh], ax
		jnz	short loc_FAE71

loc_FAEB2:				; CODE XREF: CUtlLinkedList<RecvTable *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<RecvTable *,ushort>,ushort>>::InsertBefore(ushort,RecvTable * const&)+6Fj
		mov	[ebx+0Ch], ax
		jmp	short loc_FAE7B
_ZN14CUtlLinkedListIP9RecvTabletLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE12InsertBeforeEtRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<RecvProp  const*, int>::Purge(void)
_ZN10CUtlMemoryIPK8RecvPropiE5PurgeEv proc near
					; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::PurgeAndDeleteElements(void)+46p
					; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>>::PurgeAndDeleteElements(void)+60p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_FAEEC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_FAEE5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_FAEE5:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_FAEEC:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIPK8RecvPropiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlLinkedList<CRecvDecoder *, unsigned short, false,	unsigned short,	CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *, unsigned	short>,	unsigned short>>::PurgeAndDeleteElements(void)
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE22PurgeAndDeleteElementsEv proc near
					; CODE XREF: RecvTable_Term(bool)+B6p

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_0]
		movzx	esi, word ptr [edx+0Ch]

loc_FAF10:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::PurgeAndDeleteElements(void)+2Ej
		cmp	si, 0FFFFh
		jz	loc_FAFAB

loc_FAF1A:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::PurgeAndDeleteElements(void)+A5j
		movzx	esi, si
		lea	eax, ds:0[esi*8]
		add	eax, [edx]
		mov	ebx, [eax]
		movzx	esi, word ptr [eax+6]
		test	ebx, ebx
		jz	short loc_FAF10
		mov	dword ptr [ebx+140h], 0
		lea	edi, [ebx+134h]
		mov	[ebp+var_1C], edx
		mov	[esp], edi
		call	_ZN10CUtlMemoryIPK8RecvPropiE5PurgeEv ;	CUtlMemory<RecvProp  const*,int>::Purge(void)
		mov	eax, [ebx+134h]
		mov	[ebx+144h], eax
		mov	[esp], edi
		lea	edi, [ebx+120h]
		call	_ZN10CUtlMemoryIPK8RecvPropiE5PurgeEv ;	CUtlMemory<RecvProp  const*,int>::Purge(void)
		mov	dword ptr [ebx+12Ch], 0
		mov	[esp], edi
		call	_ZN10CUtlMemoryIPK8RecvPropiE5PurgeEv ;	CUtlMemory<RecvProp  const*,int>::Purge(void)
		mov	eax, [ebx+120h]
		mov	[ebx+130h], eax
		mov	[esp], edi
		call	_ZN10CUtlMemoryIPK8RecvPropiE5PurgeEv ;	CUtlMemory<RecvProp  const*,int>::Purge(void)
		lea	eax, [ebx+8]
		mov	[esp], eax
		call	_ZN17CSendTablePrecalcD2Ev ; CSendTablePrecalc::~CSendTablePrecalc()
		mov	[esp], ebx	; void *
		call	_ZdlPv		; operator delete(void *)
		cmp	si, 0FFFFh
		mov	edx, [ebp+var_1C]
		jnz	loc_FAF1A

loc_FAFAB:				; CODE XREF: CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::PurgeAndDeleteElements(void)+14j
		mov	[esp], edx
		mov	[ebp+var_1C], edx
		call	_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE9RemoveAllEv ; CUtlLinkedList<CRecvDecoder *,ushort,false,ushort,CUtlMemory<UtlLinkedListElem_t<CRecvDecoder *,ushort>,ushort>>::RemoveAll(void)
		mov	edx, [ebp+var_1C]
		mov	[esp], edx
		call	_ZN10CUtlMemoryI19UtlLinkedListElem_tIP12CRecvDecodertEtE5PurgeEv ; CUtlMemory<UtlLinkedListElem_t<CRecvDecoder	*,ushort>,ushort>::Purge(void)
		mov	edx, [ebp+var_1C]
		mov	eax, [edx]
		mov	word ptr [edx+10h], 0FFFFh
		mov	word ptr [edx+14h], 0
		mov	word ptr [edx+16h], 0FFFFh
		mov	[edx+18h], eax
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN14CUtlLinkedListIP12CRecvDecodertLb0Et10CUtlMemoryI19UtlLinkedListElem_tIS1_tEtEE22PurgeAndDeleteElementsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<MatchingProp_t, unsigned short, bool (*)(MatchingProp_t const&, MatchingProp_t const&), CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,	unsigned short>, unsigned short>>::RotateLeft(unsigned short)
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE10RotateLeftEt proc	near
					; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+24Bp
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+7FAp

var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	dl, dl
		jz	loc_FB260

loc_FB00F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+28Bj
		cmp	si, 0FFFFh
		mov	edi, (offset loc_FFFED+3)
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB02A
		mov	eax, [ebx+4]
		movzx	edi, si
		shl	edi, 4
		add	eax, edi

loc_FB02A:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+2Dj
		movzx	eax, word ptr [eax+2]
		test	dl, dl
		mov	[ebp+var_32], ax
		jz	loc_FB220
		cmp	[ebp+var_32], 0FFFFh
		jz	loc_FB246

loc_FB045:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+250j
		mov	ecx, [ebx+4]
		mov	[ebp+var_20], ecx
		movzx	ecx, [ebp+var_32]
		mov	eax, [ebp+var_20]
		shl	ecx, 4
		mov	[ebp+var_30], ecx
		add	eax, ecx

loc_FB05A:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+268j
		movzx	eax, word ptr [eax]
		test	dl, dl
		mov	ecx, [ebp+var_20]
		mov	[ecx+edi+2], ax
		jz	loc_FB1D8

loc_FB06D:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+1F6j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+223j
		cmp	[ebp+var_32], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB07F
		mov	eax, [ebp+var_30]
		add	eax, [ebx+4]

loc_FB07F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+87j
		cmp	word ptr [eax],	0FFFFh
		jz	short loc_FB0B6
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_FB280

loc_FB092:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+29Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+2CBj
		cmp	[ebp+var_32], 0FFFFh
		jz	loc_FB380
		mov	edx, [ebx+4]
		mov	eax, [ebp+var_30]
		mov	[ebp+var_1C], edx
		add	eax, edx

loc_FB0A8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+39Bj
		movzx	edx, word ptr [eax]
		mov	ecx, [ebp+var_1C]
		shl	edx, 4
		mov	[ecx+edx+4], si

loc_FB0B6:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+93j
		cmp	[ebp+var_32], 0FFFFh
		jz	short loc_FB0ED
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_FB2F0

loc_FB0CA:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+30Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+33Bj
		cmp	si, 0FFFFh
		jz	loc_FB368
		mov	edx, [ebx+4]
		mov	eax, edx
		mov	[ebp+var_1C], edx
		add	eax, edi

loc_FB0DE:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+383j
		movzx	eax, word ptr [eax+4]
		mov	edx, [ebp+var_1C]
		mov	ecx, [ebp+var_30]
		mov	[edx+ecx+4], ax

loc_FB0ED:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+CBj
		cmp	si, [ebx+10h]
		jz	loc_FB1C8
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_FB2C0
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB116

loc_FB111:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+2F4j
		mov	eax, [ebx+4]
		add	eax, edi

loc_FB116:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+11Fj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+2FAj
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_FB330

loc_FB122:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+504j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB136

loc_FB12D:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+36Aj
		movzx	eax, dx
		shl	eax, 4
		add	eax, [ebx+4]

loc_FB136:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+13Bj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+370j
		cmp	si, [eax]
		jnz	short loc_FB190
		test	cl, cl
		jz	loc_FB390

loc_FB143:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+3AEj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+3DBj
		cmp	si, 0FFFFh
		jz	loc_FB480
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		add	eax, edi

loc_FB155:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+49Bj
		movzx	ecx, word ptr [eax+4]
		mov	edx, [ebp+var_1C]
		movzx	eax, [ebp+var_32]
		shl	ecx, 4
		mov	[edx+ecx], ax

loc_FB167:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+1CFj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+1E0j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	edx, [ebp+var_30]
		mov	[eax+edx], si
		jz	short loc_FB183
		mov	eax, [ebx+4]
		movzx	ecx, [ebp+var_32]
		mov	[eax+edi+4], cx

loc_FB183:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+185j
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FB190:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+149j
		test	cl, cl
		jz	loc_FB3D0

loc_FB198:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+3EEj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+41Bj
		cmp	si, 0FFFFh
		jz	loc_FB470
		mov	ecx, [ebx+4]
		mov	eax, ecx
		mov	[ebp+var_1C], ecx
		add	eax, edi

loc_FB1AC:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+48Bj
		movzx	ecx, word ptr [eax+4]
		movzx	edx, [ebp+var_32]
		mov	eax, [ebp+var_1C]
		shl	ecx, 4
		mov	[eax+ecx+2], dx
		jmp	short loc_FB167
; ---------------------------------------------------------------------------
		align 8

loc_FB1C8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+101j
		movzx	ecx, [ebp+var_32]
		mov	[ebx+10h], cx
		jmp	short loc_FB167
; ---------------------------------------------------------------------------
		align 8

loc_FB1D8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+77j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB06D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB06D
; ---------------------------------------------------------------------------
		align 10h

loc_FB220:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+44j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FB440

loc_FB234:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+477j
		cmp	[ebp+var_32], 0FFFFh
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_FB045

loc_FB246:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+4Fj
		mov	eax, [ebx+4]
		mov	[ebp+var_30], (offset loc_FFFED+3)
		mov	[ebp+var_20], eax
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB05A
; ---------------------------------------------------------------------------
		align 10h

loc_FB260:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+19j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FB410

loc_FB274:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+447j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB00F
; ---------------------------------------------------------------------------

loc_FB280:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+9Cj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB092
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB092
; ---------------------------------------------------------------------------

loc_FB2C0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+110j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FB490

loc_FB2D4:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+4C7j
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_FB111
		jmp	loc_FB116
; ---------------------------------------------------------------------------
		align 10h

loc_FB2F0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+D4j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB0CA
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB0CA
; ---------------------------------------------------------------------------

loc_FB330:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+12Cj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FB4C0
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_FB12D
		jmp	loc_FB136
; ---------------------------------------------------------------------------
		align 4

loc_FB368:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+DEj
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB0DE
; ---------------------------------------------------------------------------
		align 10h

loc_FB380:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+A7j
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB0A8
; ---------------------------------------------------------------------------

loc_FB390:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+14Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB143
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB143
; ---------------------------------------------------------------------------

loc_FB3D0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+1A2j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB198
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB198
; ---------------------------------------------------------------------------

loc_FB410:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+27Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB274
; ---------------------------------------------------------------------------
		align 10h

loc_FB440:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+23Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB234
; ---------------------------------------------------------------------------
		align 10h

loc_FB470:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+1ACj
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_1C], edx
		jmp	loc_FB1AC
; ---------------------------------------------------------------------------

loc_FB480:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+157j
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_1C], ecx
		jmp	loc_FB155
; ---------------------------------------------------------------------------

loc_FB490:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+2DEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB2D4
; ---------------------------------------------------------------------------
		align 10h

loc_FB4C0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+354j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FB122
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE10RotateLeftEt endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<MatchingProp_t, unsigned short, bool (*)(MatchingProp_t const&, MatchingProp_t const&), CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,	unsigned short>, unsigned short>>::RotateRight(unsigned	short)
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE11RotateRightEt proc near
					; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+4EAp
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+612p

var_36		= word ptr -36h
var_34		= dword	ptr -34h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]
		test	al, al
		jz	loc_FB740

loc_FB51F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+25Bj
		cmp	si, 0FFFFh
		mov	edi, (offset loc_FFFED+3)
		mov	edx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB53A
		mov	edx, [ebx+4]
		movzx	edi, si
		shl	edi, 4
		add	edx, edi

loc_FB53A:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+2Dj
		movzx	edx, word ptr [edx]
		test	al, al
		mov	[ebp+var_36], dx
		jz	loc_FB700

loc_FB549:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+20Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+23Bj
		cmp	[ebp+var_36], 0FFFFh
		mov	edx, [ebx+4]
		jz	loc_FB8B0
		movzx	ecx, [ebp+var_36]
		shl	ecx, 4
		mov	eax, ecx
		mov	[ebp+var_34], ecx
		add	eax, edx

loc_FB565:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+3BCj
		movzx	eax, word ptr [eax+2]
		mov	[edx+edi], ax
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_FB6B8

loc_FB57A:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+1C6j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+1F3j
		cmp	[ebp+var_36], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB58C
		mov	eax, [ebp+var_34]
		add	eax, [ebx+4]

loc_FB58C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+84j
		cmp	word ptr [eax+2], 0FFFFh
		jz	short loc_FB5C5
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_FB7D0

loc_FB5A0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+2DEj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+30Bj
		cmp	[ebp+var_36], 0FFFFh
		jz	loc_FB890
		mov	edx, [ebx+4]
		mov	eax, [ebp+var_34]
		mov	[ebp+var_1C], edx
		add	eax, edx

loc_FB5B6:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+39Bj
		movzx	edx, word ptr [eax+2]
		mov	ecx, [ebp+var_1C]
		shl	edx, 4
		mov	[ecx+edx+4], si

loc_FB5C5:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+91j
		cmp	[ebp+var_36], 0FFFFh
		jz	short loc_FB5FC
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_FB810

loc_FB5D9:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+31Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+34Bj
		cmp	si, 0FFFFh
		jz	loc_FB8A0
		mov	edx, [ebx+4]
		mov	eax, edx
		mov	[ebp+var_1C], edx
		add	eax, edi

loc_FB5ED:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+3ABj
		movzx	eax, word ptr [eax+4]
		mov	edx, [ebp+var_1C]
		mov	ecx, [ebp+var_34]
		mov	[edx+ecx+4], ax

loc_FB5FC:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+CAj
		cmp	si, [ebx+10h]
		jz	loc_FB6A8
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_FB798
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB625

loc_FB620:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+2BCj
		mov	eax, [ebx+4]
		add	eax, edi

loc_FB625:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+11Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+2C2j
		test	cl, cl
		movzx	edx, word ptr [eax+4]
		jz	loc_FB760

loc_FB631:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+4B4j
		cmp	dx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FB645

loc_FB63C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+28Aj
		movzx	eax, dx
		shl	eax, 4
		add	eax, [ebx+4]

loc_FB645:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+13Aj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+290j
		cmp	si, [eax+2]
		jz	loc_FB850
		test	cl, cl
		jz	loc_FB8C8

loc_FB657:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+3D6j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+403j
		cmp	si, 0FFFFh
		jz	loc_FB940
		mov	ecx, [ebx+4]
		mov	eax, ecx
		mov	[ebp+var_1C], ecx
		add	eax, edi

loc_FB66B:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+44Bj
		movzx	ecx, word ptr [eax+4]
		movzx	edx, [ebp+var_36]
		mov	eax, [ebp+var_1C]
		shl	ecx, 4
		mov	[eax+ecx], dx

loc_FB67D:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+1B0j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+381j
		mov	eax, [ebx+4]
		cmp	si, 0FFFFh
		mov	edx, [ebp+var_34]
		mov	[eax+edx+2], si
		jz	short loc_FB69A
		mov	eax, [ebx+4]
		movzx	ecx, [ebp+var_36]
		mov	[eax+edi+4], cx

loc_FB69A:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+18Cj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FB6A8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+100j
		movzx	ecx, [ebp+var_36]
		mov	[ebx+10h], cx
		jmp	short loc_FB67D
; ---------------------------------------------------------------------------
		align 8

loc_FB6B8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+74j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB57A
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB57A
; ---------------------------------------------------------------------------
		align 10h

loc_FB700:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+43j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB549
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB549
; ---------------------------------------------------------------------------

loc_FB740:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+19j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FB910

loc_FB754:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+437j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB51F
; ---------------------------------------------------------------------------

loc_FB760:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+12Bj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FB980
		cmp	dx, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_FB63C
		jmp	loc_FB645
; ---------------------------------------------------------------------------
		align 4

loc_FB798:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+10Fj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FB950

loc_FB7AC:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+477j
		cmp	si, 0FFFFh
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jnz	loc_FB620
		jmp	loc_FB625
; ---------------------------------------------------------------------------
		align 10h

loc_FB7D0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+9Aj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB5A0
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB5A0
; ---------------------------------------------------------------------------

loc_FB810:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+D3j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB5D9
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB5D9
; ---------------------------------------------------------------------------

loc_FB850:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+149j
		test	cl, cl
		jz	loc_FB9C0

loc_FB858:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+4CEj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+4FBj
		cmp	si, 0FFFFh
		lea	esi, [esi+0]
		jz	loc_FBA00
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		add	eax, edi

loc_FB86E:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+50Bj
		movzx	ecx, word ptr [eax+4]
		mov	edx, [ebp+var_1C]
		movzx	eax, [ebp+var_36]
		shl	ecx, 4
		mov	[edx+ecx+2], ax
		jmp	loc_FB67D
; ---------------------------------------------------------------------------
		align 10h

loc_FB890:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+A5j
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB5B6
; ---------------------------------------------------------------------------

loc_FB8A0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+DDj
		mov	eax, [ebx+4]
		mov	[ebp+var_1C], eax
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB5ED
; ---------------------------------------------------------------------------

loc_FB8B0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+51j
		mov	[ebp+var_34], (offset loc_FFFED+3)
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FB565
; ---------------------------------------------------------------------------
		align 8

loc_FB8C8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+151j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB657
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB657
; ---------------------------------------------------------------------------
		align 10h

loc_FB910:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+24Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB754
; ---------------------------------------------------------------------------
		align 10h

loc_FB940:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+15Bj
		mov	edx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_1C], edx
		jmp	loc_FB66B
; ---------------------------------------------------------------------------

loc_FB950:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+2A6j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB7AC
; ---------------------------------------------------------------------------
		align 10h

loc_FB980:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+274j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FB631
; ---------------------------------------------------------------------------
		align 10h

loc_FB9C0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+352j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FB858
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FB858
; ---------------------------------------------------------------------------

loc_FBA00:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)+360j
		mov	ecx, [ebx+4]
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	[ebp+var_1C], ecx
		jmp	loc_FB86E
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE11RotateRightEt endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<MatchingProp_t, unsigned short, bool (*)(MatchingProp_t const&, MatchingProp_t const&), CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,	unsigned short>, unsigned short>>::InsertRebalance(unsigned short)
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE15InsertRebalanceEt	proc near
					; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+D8p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		movzx	esi, [ebp+arg_4]

loc_FBA20:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+18Aj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+250j ...
		movzx	eax, word ptr [ebx+10h]
		cmp	si, ax
		jz	short loc_FBA77
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_FBD50

loc_FBA38:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+35Bj
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBA4C
		movzx	eax, si
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBA4C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+31j
		test	dl, dl
		movzx	edi, word ptr [eax+4]
		jz	loc_FBD10

loc_FBA58:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+30Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+33Bj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBA6C
		movzx	eax, di
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBA6C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+51j
		cmp	word ptr [eax+6], 0
		jz	short loc_FBA90
		movzx	eax, word ptr [ebx+10h]

loc_FBA77:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+17j
		movzx	eax, ax
		shl	eax, 4
		add	eax, [ebx+4]
		mov	word ptr [eax+6], 1
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FBA90:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+61j
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	al, al
		jz	loc_FBC90

loc_FBA9F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+29Bj
		cmp	si, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBAB3
		movzx	edx, si
		shl	edx, 4
		add	edx, [ebx+4]

loc_FBAB3:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+98j
		movzx	edi, word ptr [edx+4]
		test	al, al
		movzx	edx, di
		mov	[ebp+var_1C], edx
		jz	loc_FBC68

loc_FBAC5:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+273j
		cmp	di, 0FFFFh
		mov	edx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBAD9
		mov	edx, [ebp+var_1C]
		shl	edx, 4
		add	edx, [ebx+4]

loc_FBAD9:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+BEj
		test	al, al
		movzx	edx, word ptr [edx+4]
		jz	loc_FBCE0

loc_FBAE5:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+2F1j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+52Cj
		cmp	di, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBAF9
		mov	ecx, [ebp+var_1C]
		shl	ecx, 4
		add	ecx, [ebx+4]

loc_FBAF9:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+DEj
		movzx	ecx, word ptr [ecx+4]
		test	al, al
		mov	[ebp+var_1E], cx
		jz	loc_FBCB0

loc_FBB09:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+2C1j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+5CCj
		cmp	[ebp+var_1E], 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBB1F
		movzx	ecx, [ebp+var_1E]
		shl	ecx, 4
		add	ecx, [ebx+4]

loc_FBB1F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+103j
		cmp	di, [ecx]
		jnz	short loc_FBBA0
		test	al, al
		jz	loc_FBE50

loc_FBB2C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+461j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+7E4j
		cmp	dx, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBB40
		movzx	ecx, dx
		shl	ecx, 4
		add	ecx, [ebx+4]

loc_FBB40:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+125j
		test	al, al
		movzx	ecx, word ptr [ecx+2]
		jz	loc_FBDA0

loc_FBB4C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+3AAj
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+3DDj
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBB60
		movzx	eax, cx
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBB60:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+145j
		cmp	word ptr [eax+6], 0
		jnz	loc_FBE80

loc_FBB6B:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+1D0j
		mov	eax, [ebp+var_1C]
		movzx	ecx, cx
		mov	esi, edx
		shl	ecx, 4
		shl	eax, 4
		add	eax, [ebx+4]
		mov	word ptr [eax+6], 1
		movzx	eax, dx
		add	ecx, [ebx+4]
		shl	eax, 4
		mov	word ptr [ecx+6], 1
		add	eax, [ebx+4]
		mov	word ptr [eax+6], 0
		jmp	loc_FBA20
; ---------------------------------------------------------------------------
		align 10h

loc_FBBA0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+112j
		test	al, al
		jz	loc_FBD70

loc_FBBA8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+381j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+6A4j
		cmp	dx, 0FFFFh
		mov	ecx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBBBC
		movzx	ecx, dx
		shl	ecx, 4
		add	ecx, [ebx+4]

loc_FBBBC:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+1A1j
		test	al, al
		movzx	ecx, word ptr [ecx]
		jz	loc_FBDF8

loc_FBBC7:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+402j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+435j
		cmp	cx, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBBDB
		movzx	eax, cx
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBBDB:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+1C0j
		cmp	word ptr [eax+6], 0
		jz	short loc_FBB6B
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_FC110

loc_FBBF1:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+721j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+934j
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBC05
		movzx	eax, si
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBC05:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+1EAj
		movzx	eax, word ptr [eax+4]
		test	cl, cl
		mov	[ebp+var_1E], ax
		jz	loc_FC0C0

loc_FBC15:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+6C4j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+6F4j
		cmp	[ebp+var_1E], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBC2B
		movzx	eax, [ebp+var_1E]
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBC2B:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+20Fj
		cmp	si, [eax]
		jz	loc_FC018
		mov	eax, [ebp+var_1C]
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBC3D:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+661j
		movzx	edx, dx
		mov	word ptr [eax+6], 1
		mov	eax, edx
		shl	eax, 4
		add	eax, [ebx+4]
		mov	word ptr [eax+6], 0
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE10RotateLeftEt ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)
		jmp	loc_FBA20
; ---------------------------------------------------------------------------
		align 4

loc_FBC68:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+AFj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FBF48

loc_FBC7C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+55Fj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBAC5
; ---------------------------------------------------------------------------
		align 10h

loc_FBC90:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+89j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FBF78

loc_FBCA4:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+58Fj
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBA9F
; ---------------------------------------------------------------------------

loc_FBCB0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+F3j
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FBFA8
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBB09
; ---------------------------------------------------------------------------
		align 10h

loc_FBCE0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+CFj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FBF08
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBAE5
; ---------------------------------------------------------------------------
		align 10h

loc_FBD10:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+42j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FBA58
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FBA58
; ---------------------------------------------------------------------------

loc_FBD50:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+22j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FBFE8

loc_FBD64:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+5FFj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBA38
; ---------------------------------------------------------------------------

loc_FBD70:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+192j
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FC080
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBBA8
; ---------------------------------------------------------------------------
		align 10h

loc_FBDA0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+136j
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		mov	ecx, [ebp+var_28]
		jz	loc_FBB4C
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_28]
		mov	edx, [ebp+var_24]
		jmp	loc_FBB4C
; ---------------------------------------------------------------------------
		align 8

loc_FBDF8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+1B1j
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], ecx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		mov	ecx, [ebp+var_28]
		jz	loc_FBBC7
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	ecx, [ebp+var_28]
		mov	edx, [ebp+var_24]
		jmp	loc_FBBC7
; ---------------------------------------------------------------------------
		align 10h

loc_FBE50:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+116j
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FC1C0
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBB2C
; ---------------------------------------------------------------------------
		align 10h

loc_FBE80:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+155j
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	cl, cl
		jz	loc_FC190

loc_FBE8F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+7A1j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+8F4j
		cmp	si, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBEA3
		movzx	eax, si
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBEA3:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+488j
		movzx	eax, word ptr [eax+4]
		test	cl, cl
		mov	[ebp+var_1E], ax
		jz	loc_FC140

loc_FBEB3:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+744j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+774j
		cmp	[ebp+var_1E], 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FBEC9
		movzx	eax, [ebp+var_1E]
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBEC9:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+4ADj
		cmp	si, [eax+2]
		jz	loc_FC200
		mov	eax, [ebp+var_1C]
		shl	eax, 4
		add	eax, [ebx+4]

loc_FBEDC:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+841j
		movzx	edx, dx
		mov	word ptr [eax+6], 1
		mov	eax, edx
		shl	eax, 4
		add	eax, [ebx+4]
		mov	word ptr [eax+6], 0
		mov	[esp+4], edx
		mov	[esp], ebx
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE11RotateRightEt ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)
		jmp	loc_FBA20
; ---------------------------------------------------------------------------
		align 8

loc_FBF08:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+2E4j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FBAE5
; ---------------------------------------------------------------------------
		align 8

loc_FBF48:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+266j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FBC7C
; ---------------------------------------------------------------------------
		align 8

loc_FBF78:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+28Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FBCA4
; ---------------------------------------------------------------------------
		align 8

loc_FBFA8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+2B4j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FBB09
; ---------------------------------------------------------------------------
		align 8

loc_FBFE8:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+34Ej
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FBD64
; ---------------------------------------------------------------------------
		align 8

loc_FC018:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+21Ej
		mov	edx, [ebp+var_1C]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE11RotateRightEt ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateRight(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	loc_FC2B0

loc_FC036:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+8BBj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FC04A
		mov	eax, [ebp+var_1C]
		shl	eax, 4
		add	eax, [ebx+4]

loc_FC04A:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+62Fj
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	loc_FC350

loc_FC056:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+94Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+97Bj
		cmp	si, 0FFFFh
		jz	loc_FC390
		movzx	eax, si
		shl	eax, 4
		add	eax, [ebx+4]
		mov	edx, eax

loc_FC06B:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+98Dj
		movzx	edx, word ptr [edx+4]
		mov	esi, edi
		jmp	loc_FBC3D
; ---------------------------------------------------------------------------
		align 10h

loc_FC080:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+374j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FBBA8
; ---------------------------------------------------------------------------
		align 10h

loc_FC0C0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+1FFj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jz	loc_FBC15
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_24]
		jmp	loc_FBC15
; ---------------------------------------------------------------------------
		align 10h

loc_FC110:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+1DBj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FC310
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBBF1
; ---------------------------------------------------------------------------
		align 10h

loc_FC140:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+49Dj
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jz	loc_FBEB3
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		mov	edx, [ebp+var_24]
		jmp	loc_FBEB3
; ---------------------------------------------------------------------------
		align 10h

loc_FC190:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+479j
		mov	[ebp+var_24], edx
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		mov	edx, [ebp+var_24]
		test	eax, eax
		jnz	loc_FC2D0
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FBE8F
; ---------------------------------------------------------------------------
		align 10h

loc_FC1C0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+454j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	eax, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FBB2C
; ---------------------------------------------------------------------------
		align 10h

loc_FC200:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+4BDj
		mov	edx, [ebp+var_1C]
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE10RotateLeftEt ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		test	dl, dl
		jz	short loc_FC28F

loc_FC21A:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+89Aj
		cmp	di, 0FFFFh
		mov	eax, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	short loc_FC22E
		mov	eax, [ebp+var_1C]
		shl	eax, 4
		add	eax, [ebx+4]

loc_FC22E:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+813j
		test	dl, dl
		movzx	esi, word ptr [eax+4]
		jz	short loc_FC256

loc_FC236:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+854j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+87Dj
		cmp	si, 0FFFFh
		jz	loc_FC3A2
		movzx	esi, si
		shl	esi, 4
		add	esi, [ebx+4]
		mov	eax, esi

loc_FC24B:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+99Fj
		movzx	edx, word ptr [esi+4]
		mov	esi, edi
		jmp	loc_FBEDC
; ---------------------------------------------------------------------------

loc_FC256:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+824j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	short loc_FC236
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	short loc_FC236
; ---------------------------------------------------------------------------

loc_FC28F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+808j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FC3B4

loc_FC2A3:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+9CBj
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FC21A
; ---------------------------------------------------------------------------
		align 10h

loc_FC2B0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+620j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jnz	loc_FC3E0

loc_FC2C4:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+9F7j
		movzx	edx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jmp	loc_FC036
; ---------------------------------------------------------------------------

loc_FC2D0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+794j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FBE8F
; ---------------------------------------------------------------------------
		align 10h

loc_FC310:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+714j
		mov	[ebp+var_24], edx
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_release
		movzx	ecx, byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ; `guard	variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	edx, [ebp+var_24]
		jmp	loc_FBBF1
; ---------------------------------------------------------------------------
		align 10h

loc_FC350:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+640j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FC056
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FC056
; ---------------------------------------------------------------------------

loc_FC390:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+64Aj
		mov	eax, [ebx+4]
		mov	edx, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, (offset loc_FFFED+3)
		jmp	loc_FC06B
; ---------------------------------------------------------------------------

loc_FC3A2:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+82Aj
		mov	eax, [ebx+4]
		mov	esi, offset _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		add	eax, (offset loc_FFFED+3)
		jmp	loc_FC24B
; ---------------------------------------------------------------------------

loc_FC3B4:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+88Dj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FC2A3
; ---------------------------------------------------------------------------

loc_FC3E0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)+8AEj
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FC2C4
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE15InsertRebalanceEt	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlRBTree<MatchingProp_t, unsigned short, bool (*)(MatchingProp_t const&, MatchingProp_t const&), CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,	unsigned short>, unsigned short>>::Insert(MatchingProp_t const&)
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE6InsertES2_	proc near
					; CODE XREF: MatchRecvPropsToSendProps_R(CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>> &,char  const*,SendTable *,RecvTable	*,bool,bool *)+DCp

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_0]
		movzx	edi, word ptr [esi+10h]
		cmp	di, 0FFFFh
		jnz	short loc_FC451
		jmp	loc_FC5A9
; ---------------------------------------------------------------------------
		align 10h

loc_FC430:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+5Dj
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_FC520

loc_FC43D:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+11Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+14Bj
		mov	eax, [esi+4]
		mov	edx, 1
		movzx	eax, word ptr [eax+ebx]
		cmp	ax, 0FFFFh
		jz	short loc_FC48C

loc_FC44F:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+7Aj
		mov	edi, eax

loc_FC451:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+14j
		mov	eax, [esi+4]
		movzx	ebx, di
		mov	edx, [ebp+arg_4]
		shl	ebx, 4
		add	eax, ebx
		add	eax, 8
		mov	[esp], edx
		mov	[esp+4], eax
		call	dword ptr [esi]
		test	al, al
		jnz	short loc_FC430
		cmp	byte ptr ds:_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0 ; `guard variable for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		jz	loc_FC560

loc_FC47C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+15Ej
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+18Bj
		mov	eax, [esi+4]
		xor	edx, edx
		movzx	eax, word ptr [eax+ebx+2]
		cmp	ax, 0FFFFh
		jnz	short loc_FC44F

loc_FC48C:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+3Dj
		mov	byte ptr [ebp+var_24], dl
		mov	[esp], esi
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE7NewNodeEv ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)
		mov	ecx, eax
		movzx	eax, ax
		mov	[ebp+var_20], eax
		shl	eax, 4
		mov	[ebp+var_1C], eax
		add	eax, [esi+4]
		cmp	di, 0FFFFh
		mov	[eax+4], di
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0
		movzx	edx, byte ptr [ebp+var_24]
		jz	loc_FC5D9
		test	dl, dl
		mov	eax, [esi+4]
		jnz	loc_FC5A0
		mov	[eax+ebx+2], cx

loc_FC4DB:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+194j
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+1CDj
		mov	edx, [ebp+var_20]
		mov	[ebp+var_24], ecx
		mov	[esp], esi
		mov	[esp+4], edx
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE15InsertRebalanceEt	; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::InsertRebalance(ushort)
		mov	eax, [ebp+var_1C]
		add	word ptr [esi+12h], 1
		add	eax, [esi+4]
		mov	ecx, [ebp+var_24]
		cmp	eax, 0FFFFFFF8h
		jz	short loc_FC50E
		mov	edx, [ebp+arg_4]
		mov	esi, [edx]
		mov	edi, [edx+4]
		mov	[eax+8], esi
		mov	[eax+0Ch], edi

loc_FC50E:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+EEj
		add	esp, 2Ch
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FC520:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+27j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FC43D
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FC43D
; ---------------------------------------------------------------------------

loc_FC560:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+66j
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_FC47C
		mov	dword ptr [esp], offset	_ZGVZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel ;	`guard variable	for'CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel, 0FFFFh ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t	const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Links(ushort)::s_Sentinel
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+2,	0FFFFh
		mov	word ptr _ZZNK10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE5LinksEtE10s_Sentinel+4,	0FFFFh
		call	__cxa_guard_release
		jmp	loc_FC47C
; ---------------------------------------------------------------------------

loc_FC5A0:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+C0j
		mov	[eax+ebx], cx
		jmp	loc_FC4DB
; ---------------------------------------------------------------------------

loc_FC5A9:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+16j
		mov	[esp], esi
		call	_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE7NewNodeEv ; CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t	const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::NewNode(void)
		mov	ecx, eax
		movzx	eax, ax
		mov	[ebp+var_20], eax
		shl	eax, 4
		mov	[ebp+var_1C], eax
		add	eax, [esi+4]
		mov	word ptr [eax+4], 0FFFFh
		mov	word ptr [eax+2], 0FFFFh
		mov	word ptr [eax],	0FFFFh
		mov	word ptr [eax+6], 0

loc_FC5D9:				; CODE XREF: CUtlRBTree<MatchingProp_t,ushort,bool (*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::Insert(MatchingProp_t const&)+B5j
		mov	[esi+10h], cx
		jmp	loc_FC4DB
_ZN10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEE6InsertES2_	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<RecvProp  const*, int>::Grow(int)
_ZN10CUtlMemoryIPK8RecvPropiE4GrowEi proc near
					; CODE XREF: CUtlVector<RecvProp  const*,CUtlMemory<RecvProp  const*,int>>::SetCount(int)+4Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_FC640
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_FC650
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_FC626
		lea	esi, [esi+0]

loc_FC620:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_FC620

loc_FC626:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Grow(int)+2Aj
					; CUtlMemory<RecvProp  const*,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_FC683

loc_FC632:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_FC640:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FC650:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_FC626
		lea	esi, [esi+0]

loc_FC668:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_FC668
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_FC632

loc_FC683:				; CODE XREF: CUtlMemory<RecvProp  const*,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIPK8RecvPropiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<RecvProp  const*, CUtlMemory<RecvProp  const*, int>>::SetCount(int)
_ZN10CUtlVectorIPK8RecvProp10CUtlMemoryIS2_iEE8SetCountEi proc near
					; CODE XREF: _ZL24CopySendPropsToRecvPropsR10CUtlRBTreeI14MatchingProp_ttPFbRKS0_S2_E10CUtlMemoryI15UtlRBTreeNode_tIS0_tEtEERK10CUtlVectorIPK8SendPropS5_ISE_iEERSB_IPK8RecvPropS5_ISL_iEE_constprop_108+1Bp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_FC6CF
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_FC6E0
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_FC6CF:				; CODE XREF: CUtlVector<RecvProp  const*,CUtlMemory<RecvProp  const*,int>>::SetCount(int)+1Ej
					; CUtlVector<RecvProp  const*,CUtlMemory<RecvProp  const*,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FC6E0:				; CODE XREF: CUtlVector<RecvProp  const*,CUtlMemory<RecvProp  const*,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIPK8RecvPropiE4GrowEi ; CUtlMemory<RecvProp  const*,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_FC6CF
		test	cl, cl
		jz	short loc_FC6CF
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIPK8RecvProp10CUtlMemoryIS2_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_CalcNextVectorElems(SendTable *)
_ZL29SendTable_CalcNextVectorElemsP9SendTable proc near
					; CODE XREF: SendTable_CalcNextVectorElems(SendTable *)+63p
					; SendTable_Init(SendTable **,int)+67p
		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, eax
		push	esi
		push	ebx
		sub	esp, 0Ch
		mov	eax, [eax+4]
		test	eax, eax
		jle	short loc_FC793
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_FC76B
; ---------------------------------------------------------------------------
		align 10h

loc_FC760:				; CODE XREF: SendTable_CalcNextVectorElems(SendTable *)+3Aj
					; SendTable_CalcNextVectorElems(SendTable *)+68j
		add	ebx, 1
		add	esi, 50h
		cmp	[edi+4], ebx
		jle	short loc_FC793

loc_FC76B:				; CODE XREF: SendTable_CalcNextVectorElems(SendTable *)+16j
					; SendTable_CalcNextVectorElems(SendTable *)+51j
		mov	eax, [edi]
		add	eax, esi
		cmp	dword ptr [eax+8], 6
		jz	short loc_FC7A0
		mov	edx, [eax+48h]
		test	edx, edx
		jns	short loc_FC760
		or	dword ptr [eax+38h], 800h
		neg	edx
		add	ebx, 1
		mov	[eax+48h], edx
		add	esi, 50h
		cmp	[edi+4], ebx
		jg	short loc_FC76B

loc_FC793:				; CODE XREF: SendTable_CalcNextVectorElems(SendTable *)+10j
					; SendTable_CalcNextVectorElems(SendTable *)+29j
		add	esp, 0Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FC7A0:				; CODE XREF: SendTable_CalcNextVectorElems(SendTable *)+33j
		mov	eax, [eax+44h]
		call	_ZL29SendTable_CalcNextVectorElemsP9SendTable ;	SendTable_CalcNextVectorElems(SendTable	*)
		jmp	short loc_FC760
_ZL29SendTable_CalcNextVectorElemsP9SendTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __fastcall ShowEncodeDeltaWatchInfo(int, int, int, int)
_ZL24ShowEncodeDeltaWatchInfoPK9SendTablePK8SendPropR7bf_readii	proc near
					; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+4ECp

var_26C		= dword	ptr -26Ch
var_25C		= dword	ptr -25Ch
var_258		= dword	ptr -258h
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
arg		= byte ptr -24Ch
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, ecx
		push	esi
		mov	esi, edx
		push	ebx
		mov	ebx, eax
		sub	esp, 29Ch
		mov	eax, [edx+30h]
		mov	[esp], ebx	; int
		mov	[esp+8], eax	; s2
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax	; int
		call	_Z19ShouldWatchThisPropPK9SendTableiPKc	; ShouldWatchThisProp(SendTable	 const*,int,char  const*)
		test	al, al
		jz	loc_FC901
		mov	eax, ds:host_framecount
		cmp	eax, _ZZL24ShowEncodeDeltaWatchInfoPK9SendTablePK8SendPropR7bf_readiiE9lastframe ; ShowEncodeDeltaWatchInfo(SendTable  const*,SendProp	const*,bf_read &,int,int)::lastframe
		jz	short loc_FC805
		mov	_ZZL24ShowEncodeDeltaWatchInfoPK9SendTablePK8SendPropR7bf_readiiE9lastframe, eax ; ShowEncodeDeltaWatchInfo(SendTable  const*,SendProp	const*,bf_read &,int,int)::lastframe
		mov	eax, [ebp+arg_0]
		mov	dword ptr [esp], offset	aDeltaEntityI ;	"delta entity: %i\n"
		mov	[esp+4], eax
		call	ConDMsg

loc_FC805:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int)+3Bj
		mov	eax, [edi]
		lea	ecx, [ebp+var_25C]
		mov	ds:_ZL18s_debug_info_shown, 1 ;	s_debug_info_shown
		mov	edx, [edi+0Ch]
		mov	[ebp+var_238], esi
		mov	[ebp+var_240], 0
		mov	[ebp+var_23C], 0
		mov	[ebp+var_30], eax
		mov	eax, [edi+4]
		mov	[ebp+var_24], edx
		mov	[ebp+var_25C], 0
		mov	[ebp+var_2C], eax
		mov	eax, [edi+8]
		mov	[ebp+var_28], eax
		mov	eax, [edi+10h]
		mov	[ebp+var_20], eax
		mov	eax, [edi+14h]
		mov	[esp], ecx
		mov	[ebp+var_26C], edx
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_30]
		mov	[ebp+var_234], eax
		mov	eax, [esi+8]
		mov	dword ptr [ebp+arg], eax
		lea	eax, [eax+eax*8]
		call	off_277164[eax*4] ; Int_GetTypeNameString(void)
		mov	eax, [esi+8]
		mov	edx, [ebp+var_26C]
		mov	edi, [ebp+var_24]
		lea	eax, [eax+eax*8]
		sub	edi, edx
		call	off_277170[eax*4] ; Int_GetTypeNameString(void)
		mov	edx, eax
		mov	eax, dword ptr [ebp+arg]
		cmp	eax, 6		; switch 7 cases
		jbe	short loc_FC910
		mov	[esp+0Ch], eax	; jumptable 000FC910 default case
		mov	dword ptr [esp+8], offset aDvariantTypeIU ; "DVariant type %i unknown"

loc_FC8AF:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int)+2A2j
		mov	[ebp+var_26C], edx
		mov	dword ptr [esp+4], 80h ; maxlen
		mov	dword ptr [esp], offset	_ZZN8DVariant8ToStringEvE4text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	edx, [ebp+var_26C]
		mov	eax, offset _ZZN8DVariant8ToStringEvE4text ; DVariant::ToString(void)::text

loc_FC8D4:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int)+19Dj
					; ShowEncodeDeltaWatchInfo(SendTable  const*,SendProp  const*,bf_read &,int,int)+1B0j ...
		mov	[esp+18h], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+14h], edi
		mov	[esp+0Ch], edx
		mov	dword ptr [esp], offset	aSSSIndexIBitsI	; "+ %s	%s, %s,	index %i, bits %i, value %"...
		mov	[esp+10h], eax
		mov	eax, [esi+30h]
		mov	[esp+8], eax
		mov	eax, [ebx+8]
		mov	[esp+4], eax
		call	ConDMsg

loc_FC901:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int)+2Aj
		add	esp, 29Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FC910:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int)+F1j
		jmp	ds:off_1F75EC[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_FC920:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int):loc_FC910j
					; DATA XREF: .rodata:off_1F75ECo
		mov	dword ptr [esp+8], (offset aDpt_array+4) ; jumptable 000FC910 case 5

loc_FC928:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int)+2B8j
		mov	[ebp+var_26C], edx
		mov	dword ptr [esp+4], 80h ; maxlen
		mov	dword ptr [esp], offset	_ZZN8DVariant8ToStringEvE4text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZZN8DVariant8ToStringEvE4text ; DVariant::ToString(void)::text
		mov	edx, [ebp+var_26C]
		jmp	short loc_FC8D4
; ---------------------------------------------------------------------------
		align 10h

loc_FC950:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int):loc_FC910j
					; DATA XREF: .rodata:off_1F75ECo
		mov	eax, [ebp+var_258] ; jumptable 000FC910	case 4
		mov	ecx, offset aNull ; "NULL"
		test	eax, eax
		cmovz	eax, ecx
		jmp	loc_FC8D4
; ---------------------------------------------------------------------------
		align 4

loc_FC968:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int):loc_FC910j
					; DATA XREF: .rodata:off_1F75ECo
		fld	[ebp+var_254]	; jumptable 000FC910 case 3
		mov	[ebp+var_26C], edx
		fstp	qword ptr [esp+14h]
		mov	dword ptr [esp+8], offset a_3f_3f ; "(%.3f,%.3f)"
		fld	[ebp+var_258]
		mov	dword ptr [esp+4], 80h ; maxlen
		fstp	qword ptr [esp+0Ch] ; arg
		mov	dword ptr [esp], offset	_ZZN8DVariant8ToStringEvE4text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZZN8DVariant8ToStringEvE4text ; DVariant::ToString(void)::text
		mov	edx, [ebp+var_26C]
		jmp	loc_FC8D4
; ---------------------------------------------------------------------------
		align 10h

loc_FC9B0:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int):loc_FC910j
					; DATA XREF: .rodata:off_1F75ECo
		fld	[ebp+var_250]	; jumptable 000FC910 case 2
		mov	[ebp+var_26C], edx
		fstp	qword ptr [esp+1Ch]
		mov	dword ptr [esp+8], offset a_3f_3f_3f ; "(%.3f,%.3f,%.3f)"
		fld	[ebp+var_254]
		mov	dword ptr [esp+4], 80h ; maxlen
		fstp	qword ptr [esp+14h]
		mov	dword ptr [esp], offset	_ZZN8DVariant8ToStringEvE4text ; s
		fld	[ebp+var_258]
		fstp	qword ptr [esp+0Ch] ; arg
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZZN8DVariant8ToStringEvE4text ; DVariant::ToString(void)::text
		mov	edx, [ebp+var_26C]
		jmp	loc_FC8D4
; ---------------------------------------------------------------------------

loc_FCA00:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int):loc_FC910j
					; DATA XREF: .rodata:off_1F75ECo
		fld	[ebp+var_258]	; jumptable 000FC910 case 1
		mov	[ebp+var_26C], edx
		fstp	qword ptr [esp+0Ch] ; arg
		mov	dword ptr [esp+8], offset a_3f ; "%.3f"
		mov	dword ptr [esp+4], 80h ; maxlen
		mov	dword ptr [esp], offset	_ZZN8DVariant8ToStringEvE4text ; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, offset _ZZN8DVariant8ToStringEvE4text ; DVariant::ToString(void)::text
		mov	edx, [ebp+var_26C]
		jmp	loc_FC8D4
; ---------------------------------------------------------------------------
		align 10h

loc_FCA40:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int):loc_FC910j
					; DATA XREF: .rodata:off_1F75ECo
		mov	eax, [ebp+var_258] ; jumptable 000FC910	case 0
		mov	dword ptr [esp+8], (offset aSSendtablecrcI+11h)
		mov	[esp+0Ch], eax
		jmp	loc_FC8AF
; ---------------------------------------------------------------------------
		align 10h

loc_FCA60:				; CODE XREF: ShowEncodeDeltaWatchInfo(SendTable	 const*,SendProp  const*,bf_read &,int,int):loc_FC910j
					; DATA XREF: .rodata:off_1F75ECo
		mov	dword ptr [esp+8], (offset aDpt_datatable+4) ; jumptable 000FC910 case 6
		jmp	loc_FC928
_ZL24ShowEncodeDeltaWatchInfoPK9SendTablePK8SendPropR7bf_readii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

_ZN16CDeltaBitsWriterD2Ev_isra_45 proc near ; CODE XREF: .text:000FD37Fp
					; SendTable_WritePropList(SendTable  const*,void  const*,int,bf_write *,int,int	 const*,int)+5D6p
		mov	ecx, [eax+0Ch]
		push	ebp
		mov	ebp, esp
		push	ebx
		cmp	ecx, [eax+8]
		jl	short loc_FCA88
		pop	ebx
		mov	byte ptr [eax+10h], 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FCA88:				; CODE XREF: _ZN16CDeltaBitsWriterD2Ev_isra_45+Aj
		mov	edx, [eax]
		mov	ebx, ecx
		sar	ebx, 5
		lea	ebx, [edx+ebx*4]
		mov	edx, 1
		shl	edx, cl
		not	edx
		and	[ebx], edx
		pop	ebx
		add	dword ptr [eax+0Ch], 1
		pop	ebp
		retn
_ZN16CDeltaBitsWriterD2Ev_isra_45 endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_CullPropsFromProxies(SendTable  const*, int	 const*, int, int, CSendProxyRecipients	 const*, int, CSendProxyRecipients  const*, int, int *,	int)
_Z30SendTable_CullPropsFromProxiesPK9SendTablePKiiiPK20CSendProxyRecipientsiS6_iPii proc near
					; CODE XREF: SV_DetermineUpdateType(CEntityWriteInfo &)+A73p

var_4160	= dword	ptr -4160h
var_415C	= dword	ptr -415Ch
var_4158	= dword	ptr -4158h
var_4044	= dword	ptr -4044h
var_4040	= dword	ptr -4040h
var_403C	= dword	ptr -403Ch
var_4038	= dword	ptr -4038h
var_4034	= dword	ptr -4034h
var_4030	= dword	ptr -4030h
var_402C	= dword	ptr -402Ch
var_4028	= dword	ptr -4028h
var_4024	= dword	ptr -4024h
var_4020	= dword	ptr -4020h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		lea	ebx, [ebp+var_4160]
		sub	esp, 416Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [eax+0Ch]
		mov	[esp], ebx
		mov	dword ptr [esp+0Ch], 0FFFFFFFFh
		mov	dword ptr [esp+8], 1
		mov	[esp+4], esi
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_4044],	esi
		mov	edx, [ebp+arg_24]
		mov	[esp], ebx
		lea	ebx, [ebp+var_4020]
		mov	[ebp+var_4160],	(offset	_ZTV14CPropCullStack+8)
		mov	[ebp+var_4024],	0
		mov	[ebp+var_403C],	eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_4028],	edx
		mov	[ebp+var_1C], 0
		mov	dword ptr [esp+4], 0
		mov	[ebp+var_4038],	eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_4034],	eax
		mov	eax, [ebp+arg_1C]
		mov	[ebp+var_4030],	eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_4040],	eax
		mov	eax, [ebp+arg_20]
		mov	[ebp+var_402C],	eax
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+arg_8]
		mov	[ebp+eax*4+var_4020], 0FFFFFFFFh
		test	ecx, ecx
		mov	edx, [ebp+var_4020]
		mov	eax, [ebp+var_4024]
		jle	short loc_FCBED
		lea	esi, [esi+0]

loc_FCB80:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+1A4j
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+edi*4]
		cmp	edx, esi
		jb	short loc_FCBB1
		jmp	loc_FCC10
; ---------------------------------------------------------------------------
		align 10h

loc_FCB90:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+107j
		mov	ecx, [ebp+var_402C]
		mov	[ecx+eax*4], edx

loc_FCB99:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+115j
		mov	eax, [ebp+var_4024]
		add	ebx, 4
		add	eax, 1
		mov	[ebp+var_4024],	eax
		mov	edx, [ebx]
		cmp	edx, esi
		jnb	short loc_FCC10

loc_FCBB1:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+D8j
		cmp	[ebp+var_4028],	eax
		jg	short loc_FCB90
		mov	dword ptr [esp], offset	aCpropcullstack	; "CPropCullStack::AddProp - m_pOutProps o"...
		call	Error
		jmp	short loc_FCB99
; ---------------------------------------------------------------------------
		align 10h

loc_FCBD0:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+14Bj
		mov	ecx, [ebp+var_402C]
		mov	[ecx+eax*4], edx

loc_FCBD9:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+159j
		mov	eax, [ebp+var_4024]
		add	ebx, 4
		add	eax, 1
		mov	[ebp+var_4024],	eax
		mov	edx, [ebx]

loc_FCBED:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+CBj
		cmp	edx, 0FFFh
		ja	short loc_FCC62

loc_FCBF5:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+1B0j
		cmp	[ebp+var_4028],	eax
		jg	short loc_FCBD0
		mov	dword ptr [esp], offset	aCpropcullstack	; "CPropCullStack::AddProp - m_pOutProps o"...
		call	Error
		jmp	short loc_FCBD9
; ---------------------------------------------------------------------------
		align 10h

loc_FCC10:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+DAj
					; SendTable_CullPropsFromProxies(SendTable  const*,int	const*,int,int,CSendProxyRecipients  const*,int,CSendProxyRecipients  const*,int,int *,int)+FFj
		mov	edx, [ebp+var_415C]
		mov	edx, [edx+40h]
		movzx	edx, byte ptr [edx+esi]
		mov	edx, [ebp+edx*4+var_4158]
		test	edx, edx
		jz	short loc_FCC90
		cmp	[ebp+var_4028],	eax
		jle	short loc_FCC98
		mov	edx, [ebp+var_402C]
		mov	[edx+eax*4], esi

loc_FCC39:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+1F4j
		mov	eax, [ebp+var_4024]
		add	eax, 1
		mov	[ebp+var_4024],	eax
		mov	edx, [ebx]
		cmp	esi, edx
		jz	short loc_FCCB0

loc_FCC4E:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+1E2j
					; SendTable_CullPropsFromProxies(SendTable  const*,int	const*,int,int,CSendProxyRecipients  const*,int,CSendProxyRecipients  const*,int,int *,int)+206j
		add	edi, 1
		cmp	edi, [ebp+arg_8]
		jnz	loc_FCB80
		cmp	edx, 0FFFh
		jbe	short loc_FCBF5

loc_FCC62:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+143j
		cmp	[ebp+arg_24], eax
		jge	short loc_FCC83
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		mov	dword ptr [esp], offset	aCullpropsfromp	; "CullPropsFromProxies: overflow in '%s'."...
		mov	[esp+4], eax
		call	Error
		mov	eax, [ebp+var_4024]

loc_FCC83:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+1B5j
		add	esp, 416Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FCC90:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+176j
		mov	edx, [ebx]
		jmp	short loc_FCC4E
; ---------------------------------------------------------------------------
		align 8

loc_FCC98:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+17Ej
		mov	dword ptr [esp], offset	aCpropcullstack	; "CPropCullStack::AddProp - m_pOutProps o"...
		call	Error
		jmp	short loc_FCC39
; ---------------------------------------------------------------------------
		align 10h

loc_FCCB0:				; CODE XREF: SendTable_CullPropsFromProxies(SendTable  const*,int  const*,int,int,CSendProxyRecipients	const*,int,CSendProxyRecipients	 const*,int,int	*,int)+19Cj
		mov	edx, [ebx+4]
		add	ebx, 4
		jmp	short loc_FCC4E
_Z30SendTable_CullPropsFromProxiesPK9SendTablePKiiiPK20CSendProxyRecipientsiS6_iPii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_Encode(SendTable  const*, void  const*, bf_write *,	int, CUtlMemory<CSendProxyRecipients, int> *, bool)
_Z16SendTable_EncodePK9SendTablePKvP8bf_writeiP10CUtlMemoryI20CSendProxyRecipientsiEb proc near
					; CODE XREF: SV_CreateBaseline(void)+2B7p
					; SV_PackEntity(int,edict_t *,ServerClass *,CFrameSnapshot *)+170p ...

var_1BC		= dword	ptr -1BCh
var_1B8		= dword	ptr -1B8h
var_1B4		= dword	ptr -1B4h
var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A5		= byte ptr -1A5h
var_1A4		= dword	ptr -1A4h
var_1A0		= dword	ptr -1A0h
var_19C		= dword	ptr -19Ch
var_198		= dword	ptr -198h
var_194		= dword	ptr -194h
var_190		= dword	ptr -190h
var_18C		= dword	ptr -18Ch
var_184		= dword	ptr -184h
var_180		= dword	ptr -180h
var_17C		= dword	ptr -17Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= byte ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1ECh
		mov	esi, [ebp+arg_0]
		movzx	eax, [ebp+arg_14]
		mov	edi, [ebp+arg_10]
		mov	ebx, [esi+0Ch]
		mov	[ebp+var_1A5], al
		test	ebx, ebx
		jz	loc_FD2FD

loc_FCCE7:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+650j
		test	edi, edi
		jz	short loc_FCCFA
		mov	edx, [ebx+0F8h]
		cmp	[edi+4], edx
		jl	loc_FD268

loc_FCCFA:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+29j
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+5B4j
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_1B0], 0
		mov	[ebp+var_1B8], 0
		mov	[ebp+var_1B4], 0
		test	eax, eax
		jz	short loc_FCDAA
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aSendtable_en_0 ; "SendTable_Encode"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ16SendTable_EncodePK9SendTablePKvP8bf_writeiP10CUtlMemoryI20CSendProxyRecipientsiEbE6tm_fmt ; SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)::tm_fmt
		mov	dword ptr [esp+1Ch], 1A6h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_7 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_24]
		mov	eax, [ebp+var_28]
		mov	[ebp+var_1B4], edx
		mov	edx, ds:g_Telemetry+0Ch
		mov	[ebp+var_1B8], eax
		mov	[ebp+var_1B0], edx

loc_FCDAA:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+6Dj
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_FCDD8
		mov	ecx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_18C], ecx
		call	ThreadGetCurrentId
		cmp	[ebp+var_18C], eax
		jz	loc_FD2A8

loc_FCDD8:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+F9j
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+631j
		cmp	ds:g_bServerDTIEnabled,	0
		mov	[ebp+var_50], 0
		mov	[ebp+var_4C], 0
		jz	short loc_FCE01
		mov	[ebp+var_58], esi
		mov	[ebp+var_54], 1
		rdtsc
		mov	[ebp+var_50], eax
		mov	[ebp+var_4C], edx

loc_FCE01:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+12Dj
		mov	eax, [ebp+arg_C]
		lea	esi, [ebp+var_184]
		mov	[esp+4], ebx
		mov	[esp], esi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+8], eax
		call	_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi ; CDatatableStack::CDatatableStack(CSendTablePrecalc *,uchar *,int)
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_68], ebx
		mov	[ebp+var_184], (offset _ZTV11CEncodeInfo+8)
		mov	[ebp+var_5C], 0FFFFFFFFh
		mov	[ebp+var_64], edi
		mov	[ebp+var_60], eax
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN15CDatatableStack4InitEb ; CDatatableStack::Init(bool)
		mov	ebx, [ebx+38h]
		test	ebx, ebx
		mov	[ebp+var_19C], ebx
		jle	loc_FD060
		xor	ebx, ebx
		jmp	loc_FCF98
; ---------------------------------------------------------------------------
		align 10h

loc_FCE70:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+303j
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+386j
		mov	eax, [ebp+var_68]
		mov	[ebp+var_2C], 1
		lea	ecx, [ebp+var_38]
		mov	edx, [esi+10Ch]
		mov	eax, [eax+2Ch]
		mov	edi, [eax+edx*4]
		mov	eax, [ebp+var_180]
		mov	eax, [eax+40h]
		movzx	eax, byte ptr [eax+edx]
		mov	eax, [ebp+eax*4+var_17C]
		mov	[ebp+var_18C], eax
		mov	eax, [esi+114h]
		mov	dword ptr [esp+10h], 0
		mov	[esp+0Ch], ecx
		mov	[esp+14h], eax
		mov	eax, [ebp+var_18C]
		add	eax, [edi+48h]
		mov	[esp], edi
		mov	[esp+8], eax
		mov	eax, [ebp+var_18C]
		mov	[esp+4], eax
		call	dword ptr [edi+3Ch]
		mov	eax, ebx
		sub	eax, [ebp+var_5C]
		mov	[ebp+var_5C], ebx
		cmp	eax, 10h
		mov	[ebp+var_190], eax
		jbe	loc_FD138
		cmp	eax, 101h
		sbb	edx, edx
		mov	[ebp+var_1A4], edx
		and	edx, 0FFFFFFFCh
		mov	eax, [ebp+var_1A4]
		add	edx, 0Fh
		mov	[ebp+var_1AC], edx
		and	eax, 0FFFFFFFCh
		add	eax, 0Ch
		mov	[ebp+var_198], eax

loc_FCF18:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+496j
		mov	eax, [ebp+var_60]
		mov	edx, [eax+8]
		mov	[ebp+var_194], edx
		mov	edx, [eax+0Ch]
		mov	ecx, [ebp+var_194]
		sub	ecx, edx
		mov	[ebp+var_1A0], ecx
		mov	ecx, [ebp+var_1AC]
		cmp	[ebp+var_1A0], ecx
		jge	loc_FD160
		mov	edx, [ebp+var_194]
		mov	byte ptr [eax+10h], 1
		mov	[eax+0Ch], edx

loc_FCF54:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+585j
		mov	edx, [esi+114h]
		lea	ecx, [ebp+var_38]
		mov	eax, [edi+8]
		mov	[esp+10h], edx
		mov	edx, [esi+124h]
		lea	eax, [eax+eax*8]
		mov	[esp+8], edi
		mov	[esp+4], ecx
		mov	[esp+0Ch], edx
		mov	edx, [ebp+var_18C]
		mov	[esp], edx
		call	g_PropTypeFns[eax*4] ; Int_Encode(uchar	 const*,DVariant *,SendProp  const*,bf_write *,int)

loc_FCF89:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+2EEj
		add	ebx, 1
		cmp	ebx, [ebp+var_19C]
		jz	loc_FD060

loc_FCF98:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+1A1j
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+395j
		mov	eax, [ebp+var_180]
		mov	edx, [eax+40h]
		movzx	edx, byte ptr [edx+ebx]
		mov	edi, [ebp+edx*4+var_17C]
		test	edi, edi
		jz	short loc_FCF89
		mov	[ebp+var_78], ebx
		cmp	[ebp+var_1A5], 0
		mov	edx, [eax+2Ch]
		mov	edx, [edx+ebx*4]
		mov	[ebp+var_74], edx
		jz	loc_FCE70
		mov	edx, [ebp+var_68]
		mov	eax, [eax+40h]
		mov	edx, [edx+2Ch]
		mov	edi, [edx+ebx*4]
		mov	[ebp+var_3C], 1
		lea	edx, [ebp+var_48]
		movzx	eax, byte ptr [eax+ebx]
		mov	eax, [ebp+eax*4+var_17C]
		mov	[ebp+var_18C], eax
		mov	eax, [esi+114h]
		mov	dword ptr [esp+10h], 0
		mov	ecx, [ebp+var_18C]
		mov	[esp+0Ch], edx
		mov	[esp+14h], eax
		mov	eax, [ebp+var_18C]
		add	eax, [edi+48h]
		mov	[esp+4], ecx
		mov	[esp], edi
		mov	[esp+8], eax
		call	dword ptr [edi+3Ch]
		mov	eax, [edi+8]
		lea	edx, [ebp+var_48]
		mov	[esp+8], edi
		mov	ecx, [ebp+var_18C]
		mov	[esp+4], edx
		lea	eax, [eax+eax*8]
		mov	[esp], ecx
		call	off_277174[eax*4] ; Int_IsZero(uchar  const*,DVariant *,SendProp  const*)
		test	al, al
		jz	loc_FCE70
		add	ebx, 1
		cmp	ebx, [ebp+var_19C]
		jnz	loc_FCF98
		nop
		lea	esi, [esi+0]

loc_FD060:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+199j
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+2D2j
		mov	[ebp+var_184], (offset _ZTV11CEncodeInfo+8)
		mov	ecx, [ebp+arg_8]
		mov	eax, [ebp+var_60]
		movzx	esi, byte ptr [ecx+10h]
		mov	ecx, [eax+0Ch]
		cmp	ecx, [eax+8]
		jl	loc_FD24A
		mov	byte ptr [eax+10h], 1

loc_FD084:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+5A3j
		cmp	ds:g_bServerDTIEnabled,	0
		jz	short loc_FD0B8
		mov	ecx, [ebp+var_58]
		test	ecx, ecx
		jz	short loc_FD0B8
		rdtsc
		sub	eax, [ebp+var_50]
		mov	[esp], ecx
		mov	[ebp+var_50], eax
		lea	eax, [ebp+var_50]
		sbb	edx, [ebp+var_4C]
		mov	[esp+8], eax
		mov	eax, [ebp+var_54]
		mov	[ebp+var_4C], edx
		mov	[esp+4], eax
		call	_Z20_ServerDTI_HookTimerPK9SendTable18ServerDTITimerTypeRK11CCycleCount	; _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount	 const&)

loc_FD0B8:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+3CBj
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+3D2j
		cmp	[ebp+var_19], 0
		jz	short loc_FD0E3
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_FD0D0
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_FD0E3

loc_FD0D0:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+405j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_FD279

loc_FD0E3:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+3FCj
					; SendTable_Encode(SendTable  const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+40Ej ...
		mov	edi, [ebp+var_1B0]
		test	edi, edi
		jz	short loc_FD125
		mov	edx, [ebp+var_1B4]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_1B8]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_1B0]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_FD125:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+42Bj
		add	esp, 1ECh
		mov	eax, esi
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_FD138:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+227j
		mov	[ebp+var_1A4], 0FFFFFFFEh
		mov	[ebp+var_1AC], 7
		mov	[ebp+var_198], 4
		jmp	loc_FCF18
; ---------------------------------------------------------------------------
		align 10h

loc_FD160:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+281j
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebp+var_1A0], ecx
		mov	ecx, [ebp+var_1AC]
		add	ecx, edx
		sar	edx, 5
		mov	[eax+0Ch], ecx
		mov	ecx, [eax]
		shl	edx, 2
		add	edx, ecx
		mov	ecx, [ebp+var_1A4]
		mov	[ebp+var_194], edx
		mov	edx, [ebp+var_190]
		lea	eax, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1A0]
		mov	edx, 1
		lea	eax, [eax+eax-3]
		rol	eax, cl
		mov	ecx, [ebp+var_198]
		mov	[ebp+var_190], eax
		add	ecx, 2
		shl	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1A0]
		lea	eax, [edx-1]
		shr	eax, cl
		mov	ecx, [ebp+var_194]
		mov	[ebp+var_198], eax
		mov	eax, [ebp+var_194]
		mov	eax, [eax]
		mov	[ebp+var_1A4], eax
		mov	eax, [ebp+var_198]
		and	eax, 1
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1A0]
		mov	[ebp+var_1AC], eax
		mov	eax, [eax]
		mov	[ebp+var_1BC], eax
		lea	eax, [edx+edx-1]
		mov	edx, [ebp+var_190]
		shl	eax, cl
		mov	ecx, [ebp+var_1AC]
		xor	edx, [ebp+var_1A4]
		and	eax, edx
		mov	edx, [ebp+var_1BC]
		xor	eax, [ebp+var_1A4]
		xor	edx, [ebp+var_190]
		and	edx, [ebp+var_198]
		xor	edx, [ebp+var_1BC]
		mov	[ecx], edx
		mov	edx, [ebp+var_194]
		mov	[edx], eax
		jmp	loc_FCF54
; ---------------------------------------------------------------------------

loc_FD24A:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+3BAj
		mov	ebx, [eax]
		mov	edx, ecx
		sar	edx, 5
		lea	edx, [ebx+edx*4]
		mov	ebx, 1
		shl	ebx, cl
		not	ebx
		and	[edx], ebx
		add	dword ptr [eax+0Ch], 1
		jmp	loc_FD084
; ---------------------------------------------------------------------------

loc_FD268:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+34j
		mov	dword ptr [esp], offset	aSendtable_en_1	; "SendTable_Encode: pRecipients array too"...
		call	Error
		jmp	loc_FCCFA
; ---------------------------------------------------------------------------

loc_FD279:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+41Dj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_FD2F6
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_FD297:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+63Bj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_FD0E3
; ---------------------------------------------------------------------------

loc_FD2A8:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+112j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSendtable_en_0	; "SendTable_Encode"
		jz	short loc_FD2E2
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSendtable_en_0 ; "SendTable_Encode"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_FD2E2:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+5F3j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_FCDD8
; ---------------------------------------------------------------------------

loc_FD2F6:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+5C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_FD297
; ---------------------------------------------------------------------------

loc_FD2FD:				; CODE XREF: SendTable_Encode(SendTable	 const*,void  const*,bf_write *,int,CUtlMemory<CSendProxyRecipients,int> *,bool)+21j
		mov	eax, [esi+8]
		mov	dword ptr [esp], offset	aSendtable_enco	; "SendTable_Encode: Missing m_pPrecalc	fo"...
		mov	[esp+4], eax
		call	Error
		jmp	loc_FCCE7
_Z16SendTable_EncodePK9SendTablePKvP8bf_writeiP10CUtlMemoryI20CSendProxyRecipientsiEb endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_FD317:				; CODE XREF: .text:000FD38Fj
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_FD322:				; CODE XREF: .text:000FD36Ej
		mov	esi, [ebp-1B0h]
		test	esi, esi
		jz	short loc_FD364
		mov	edx, [ebp-1B4h]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp-1B8h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp-1B0h]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_FD364:				; CODE XREF: .text:000FD32Aj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_FD322
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-184h], (offset _ZTV11CEncodeInfo+8)
		mov	ebx, eax
		mov	eax, [ebp-60h]
		call	_ZN16CDeltaBitsWriterD2Ev_isra_45

loc_FD384:				; CODE XREF: .text:000FD393j
		lea	eax, [ebp-58h]
		mov	[esp], eax
		call	_ZN15CServerDTITimerD2Ev ; CServerDTITimer::~CServerDTITimer()
		jmp	short loc_FD317
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_FD384
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_WritePropList(SendTable  const*, void  const*, int,	bf_write *, int, int  const*, int)
_Z23SendTable_WritePropListPK9SendTablePKviP8bf_writeiPKii proc	near
					; CODE XREF: SendTable_WriteAllDeltaProps(SendTable  const*,void  const*,int,void  const*,int,int,bf_write *)+8Ep
					; SV_DetermineUpdateType(CEntityWriteInfo &)+4F0p

var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_55		= byte ptr -55h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	ecx, [ebp+arg_18]
		mov	ebx, [ebp+arg_8]
		test	ecx, ecx
		jnz	short loc_FD3F1

loc_FD3B3:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+1F8j
					; SendTable_WritePropList(SendTable  const*,void  const*,int,bf_write *,int,int	 const*,int)+224j
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+0Ch]
		cmp	ecx, [eax+8]
		jl	short loc_FD3CA
		mov	byte ptr [eax+10h], 1
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_FD3CA:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+1Cj
		mov	eax, [ebp+arg_C]
		mov	edx, ecx
		sar	edx, 5
		shl	edx, 2
		add	edx, [eax]
		mov	eax, 1
		shl	eax, cl
		not	eax
		and	[edx], eax
		mov	eax, [ebp+arg_C]
		add	dword ptr [eax+0Ch], 1
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_FD3F1:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+11j
		call	_Z24Sendprop_UsingDebugWatchv ;	Sendprop_UsingDebugWatch(void)
		mov	edx, [ebp+arg_C]
		mov	ds:_ZL18s_debug_info_shown, 0 ;	s_debug_info_shown
		mov	[ebp+var_55], al
		mov	ecx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	edi, [ecx+0Ch]
		mov	[esp+10h], ebx
		add	ebx, 7
		sar	ebx, 3
		mov	dword ptr [esp+4], offset aSendtable_writ ; "SendTable_WritePropList->inputBuffer"
		mov	[esp+0Ch], ebx
		lea	ebx, [ebp+var_30]
		mov	ds:_ZL18s_debug_bits_start, eax	; s_debug_bits_start
		mov	eax, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_ZN7bf_readC2EPKcPKvii ; bf_read::bf_read(char	const*,void  const*,int,int)
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_28]
		sub	edx, eax
		cmp	edx, 6
		jle	loc_FD8F9
		mov	esi, [ebp+var_30]
		lea	edx, [eax+7]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebp+var_24], edx
		lea	edx, [eax+6]
		mov	[ebp+var_3C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_3C]
		mov	edx, [esi+edx*4]
		shl	edx, cl
		mov	ecx, eax
		sar	ecx, 5
		mov	esi, [esi+ecx*4]
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	esi, cl
		or	edx, esi
		mov	ecx, edx
		and	ecx, 7Fh
		test	dl, 1
		jz	loc_FD5C9
		mov	eax, edx
		and	eax, 6
		jnz	loc_FD949
		mov	eax, ecx
		shr	eax, 3

loc_FD49C:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+5B7j
		mov	[ebp+var_48], eax

loc_FD49F:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+23Bj
					; SendTable_WritePropList(SendTable  const*,void  const*,int,bf_write *,int,int	 const*,int)+584j ...
		mov	edx, [ebp+arg_18]
		test	edx, edx
		jle	loc_FD591
		mov	[ebp+var_4C], 0FFFFFFFFh
		mov	[ebp+var_44], 0
		nop
		lea	esi, [esi+0]

loc_FD4C0:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+1EBj
					; SendTable_WritePropList(SendTable  const*,void  const*,int,bf_write *,int,int	 const*,int)+24Bj ...
		mov	edx, [ebp+var_44]
		mov	ecx, [ebp+arg_14]
		mov	esi, [ecx+edx*4]
		cmp	eax, esi
		jnb	loc_FD572

loc_FD4D1:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+1CCj
		mov	edx, [edi+2Ch]
		mov	eax, [edx+eax*4]
		mov	edx, [eax+8]
		mov	[esp+4], ebx
		mov	[esp], eax
		lea	edx, [edx+edx*8]
		call	off_277180[edx*4] ; Float_GetTypeNameString(void)
		mov	edx, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, edx
		cmp	eax, 6
		jle	loc_FD5F0
		lea	eax, [edx+7]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebp+var_24], eax
		mov	[ebp+var_3C], ecx
		lea	eax, [edx+6]
		mov	ecx, 20h
		sub	ecx, [ebp+var_3C]
		sar	eax, 5
		mov	[ebp+var_40], ecx
		mov	ecx, [ebp+var_30]
		mov	esi, [ecx+eax*4]
		mov	eax, edx
		movzx	ecx, byte ptr [ebp+var_40]
		sar	eax, 5
		shl	esi, cl
		mov	ecx, [ebp+var_30]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_3C]
		shr	eax, cl
		or	esi, eax
		mov	eax, esi
		and	eax, 7Fh
		test	esi, 1
		jz	loc_FD5E0
		and	esi, 6
		jnz	loc_FD630
		shr	eax, 3

loc_FD557:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+29Ej
		mov	edx, [ebp+var_48]
		mov	ecx, [ebp+arg_14]
		lea	eax, [edx+eax+1]
		mov	edx, [ebp+var_44]
		mov	[ebp+var_48], eax
		mov	esi, [ecx+edx*4]
		cmp	eax, esi
		jb	loc_FD4D1

loc_FD572:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+12Bj
		cmp	eax, 0FFFh
		ja	short loc_FD591
		cmp	eax, esi
		jz	loc_FD65A

loc_FD581:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+3F9j
					; SendTable_WritePropList(SendTable  const*,void  const*,int,bf_write *,int,int	 const*,int)+4D5j ...
		add	[ebp+var_44], 1
		mov	edx, [ebp+arg_18]
		cmp	[ebp+var_44], edx
		jnz	loc_FD4C0

loc_FD591:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+104j
					; SendTable_WritePropList(SendTable  const*,void  const*,int,bf_write *,int,int	 const*,int)+1D7j
		cmp	ds:_ZL18s_debug_info_shown, 0 ;	s_debug_info_shown
		jz	loc_FD3B3
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+0Ch]
		mov	dword ptr [esp], offset	aIBitsIBytes ; "= %i bits (%i bytes)\n"
		sub	eax, ds:_ZL18s_debug_bits_start	; s_debug_bits_start
		lea	edx, [eax+7]
		mov	[esp+4], eax
		sar	edx, 3
		mov	[esp+8], edx
		call	ConDMsg
		jmp	loc_FD3B3
; ---------------------------------------------------------------------------

loc_FD5C9:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+E6j
		add	eax, 1
		mov	[ebp+var_48], 0FFFFFFFFh
		mov	[ebp+var_24], eax
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD49F
; ---------------------------------------------------------------------------

loc_FD5E0:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+1A5j
		add	edx, 1
		mov	eax, 0FFFFFFFFh
		mov	[ebp+var_24], edx
		jmp	loc_FD4C0
; ---------------------------------------------------------------------------

loc_FD5F0:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+156j
		test	eax, eax
		jle	short loc_FD648
		mov	eax, [ebx]
		mov	ecx, edx
		sar	ecx, 5
		mov	esi, [eax+ecx*4]
		mov	ecx, edx
		add	edx, 1
		mov	[ebp+var_24], edx
		mov	eax, 0FFFFFFFFh
		shr	esi, cl
		and	esi, 1
		jz	loc_FD4C0
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_28]
		mov	[ebp+var_24], eax
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD4C0
; ---------------------------------------------------------------------------
		align 10h

loc_FD630:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+1AEj
		shr	esi, 1
		mov	[esp], ebx
		mov	[esp+4], esi
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_FD557
; ---------------------------------------------------------------------------
		align 8

loc_FD648:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+252j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD4C0
; ---------------------------------------------------------------------------

loc_FD65A:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+1DBj
		mov	eax, [edi+2Ch]
		cmp	[ebp+var_55], 0
		mov	eax, [eax+esi*4]
		mov	[ebp+var_40], eax
		jnz	loc_FD87A

loc_FD66D:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+4F1j
		mov	edx, esi
		sub	edx, [ebp+var_4C]
		cmp	edx, 10h
		mov	[ebp+var_5C], edx
		jbe	loc_FD79E
		cmp	edx, 101h
		sbb	ecx, ecx
		mov	edx, ecx
		mov	[ebp+var_54], ecx
		and	ecx, 0FFFFFFFCh
		and	edx, 0FFFFFFFCh
		add	ecx, 0Ch
		add	edx, 0Fh
		mov	[ebp+var_4C], ecx

loc_FD69A:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+411j
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_C]
		mov	eax, [eax+8]
		mov	[ebp+var_3C], eax
		mov	eax, [ecx+0Ch]
		mov	ecx, [ebp+var_3C]
		sub	ecx, eax
		cmp	edx, ecx
		jle	loc_FD7B6
		mov	eax, [ebp+arg_C]
		mov	edx, [ebp+var_3C]
		mov	byte ptr [eax+10h], 1
		mov	[eax+0Ch], edx

loc_FD6C3:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+4ACj
		mov	edx, [ebp+var_40]
		mov	ecx, [ebx+0Ch]
		mov	eax, [edx+8]
		mov	[esp+4], ebx
		mov	[ebp+var_3C], ecx
		mov	[esp], edx
		lea	eax, [eax+eax*8]
		call	off_277180[eax*4] ; Float_GetTypeNameString(void)
		mov	eax, [ebp+var_3C]
		mov	ecx, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_40], ecx
		js	loc_FD851
		mov	eax, [ebp+var_3C]
		cmp	eax, [ebp+var_28]
		jg	loc_FD851
		mov	edx, [ebp+var_3C]
		mov	[ebp+var_24], edx

loc_FD703:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+4BFj
		mov	eax, [ebp+var_40]
		mov	[esp+4], ebx
		sub	eax, [ebp+var_3C]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_C]
		mov	[esp], eax
		call	_ZN8bf_write19WriteBitsFromBufferEP7bf_readi ; bf_write::WriteBitsFromBuffer(bf_read *,int)
		mov	ecx, [ebx+0Ch]
		mov	eax, [ebx+8]
		mov	[ebp+var_3C], ecx
		sub	eax, ecx
		cmp	eax, 6
		jle	loc_FD896
		mov	eax, [ebp+var_3C]
		and	ecx, 1Fh
		mov	edx, 20h
		sub	edx, ecx
		mov	[ebp+var_40], ecx
		mov	ecx, [ebp+var_30]
		mov	[ebp+var_4C], edx
		add	eax, 7
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_3C]
		add	eax, 6
		sar	eax, 5
		mov	edx, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_4C]
		mov	eax, [ebp+var_3C]
		shl	edx, cl
		mov	ecx, [ebp+var_30]
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_40]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_FD864
		and	edx, 6
		jnz	loc_FD8E4
		shr	eax, 3

loc_FD78C:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+554j
		mov	edx, [ebp+var_48]
		mov	[ebp+var_4C], esi
		lea	eax, [edx+eax+1]
		mov	[ebp+var_48], eax
		jmp	loc_FD581
; ---------------------------------------------------------------------------

loc_FD79E:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+2D8j
		mov	[ebp+var_54], 0FFFFFFFEh
		mov	edx, 7
		mov	[ebp+var_4C], 4
		jmp	loc_FD69A
; ---------------------------------------------------------------------------

loc_FD7B6:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+310j
		mov	ecx, eax
		add	edx, eax
		sar	eax, 5
		and	ecx, 1Fh
		shl	eax, 2
		mov	[ebp+var_50], ecx
		mov	ecx, [ebp+arg_C]
		mov	[ecx+0Ch], edx
		mov	edx, [ecx]
		mov	ecx, [ebp+var_5C]
		add	eax, edx
		mov	edx, [ebp+var_54]
		mov	[ebp+var_3C], eax
		lea	eax, [edx+ecx*4]
		movzx	ecx, byte ptr [ebp+var_50]
		lea	edx, [eax+eax-3]
		mov	eax, 1
		rol	edx, cl
		mov	ecx, [ebp+var_4C]
		add	ecx, 2
		shl	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_50]
		mov	[ebp+var_54], eax
		sub	eax, 1
		shr	eax, cl
		mov	ecx, [ebp+var_3C]
		mov	[ebp+var_4C], eax
		mov	eax, [ebp+var_3C]
		mov	eax, [eax]
		mov	[ebp+var_5C], eax
		mov	eax, [ebp+var_4C]
		and	eax, 1
		lea	eax, [ecx+eax*4]
		mov	ecx, [ebp+var_54]
		mov	[ebp+var_60], eax
		mov	eax, [eax]
		mov	[ebp+var_64], eax
		lea	eax, [ecx+ecx-1]
		movzx	ecx, byte ptr [ebp+var_50]
		shl	eax, cl
		mov	ecx, [ebp+var_5C]
		xor	ecx, edx
		xor	edx, [ebp+var_64]
		and	eax, ecx
		mov	ecx, [ebp+var_60]
		xor	eax, [ebp+var_5C]
		and	edx, [ebp+var_4C]
		xor	edx, [ebp+var_64]
		mov	[ecx], edx
		mov	edx, [ebp+var_3C]
		mov	[edx], eax
		jmp	loc_FD6C3
; ---------------------------------------------------------------------------

loc_FD851:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+34Bj
					; SendTable_WritePropList(SendTable  const*,void  const*,int,bf_write *,int,int	 const*,int)+357j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_28]
		mov	[ebp+var_24], eax
		jmp	loc_FD703
; ---------------------------------------------------------------------------

loc_FD864:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+3DAj
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_4C], esi
		add	eax, 1
		mov	[ebp+var_24], eax
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD581
; ---------------------------------------------------------------------------

loc_FD87A:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+2C7j
		mov	eax, [ebp+arg_10]
		mov	ecx, ebx	; int
		mov	[esp+4], esi	; int
		mov	edx, [ebp+var_40] ; int
		mov	[esp], eax	; int
		mov	eax, [ebp+arg_0]
		call	_ZL24ShowEncodeDeltaWatchInfoPK9SendTablePK8SendPropR7bf_readii	; ShowEncodeDeltaWatchInfo(SendTable  const*,SendProp  const*,bf_read &,int,int)
		jmp	loc_FD66D
; ---------------------------------------------------------------------------

loc_FD896:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+38Aj
		test	eax, eax
		jle	loc_FD95C
		mov	edx, [ebp+var_3C]
		mov	[ebp+var_4C], esi
		mov	eax, [ebx]
		movzx	ecx, byte ptr [ebp+var_3C]
		sar	edx, 5
		mov	edx, [eax+edx*4]
		mov	eax, [ebp+var_3C]
		shr	edx, cl
		add	eax, 1
		and	edx, 1
		mov	[ebp+var_24], eax
		mov	eax, 0FFFFFFFFh
		jz	loc_FD581
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4C], esi
		mov	[ebp+var_24], eax
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD581
; ---------------------------------------------------------------------------

loc_FD8E4:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+3E3j
		mov	eax, edx
		mov	[esp], ebx
		shr	eax, 1
		mov	[esp+4], eax
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_FD78C
; ---------------------------------------------------------------------------

loc_FD8F9:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+A4j
		test	edx, edx
		jle	loc_FD985
		mov	edx, [ebx]
		mov	ecx, eax
		mov	[ebp+var_48], 0FFFFFFFFh
		sar	ecx, 5
		mov	edx, [edx+ecx*4]
		mov	ecx, eax
		add	eax, 1
		mov	[ebp+var_24], eax
		mov	eax, 0FFFFFFFFh
		shr	edx, cl
		and	edx, 1
		jz	loc_FD49F
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_28]
		mov	[ebp+var_48], 0FFFFFFFFh
		mov	[ebp+var_24], eax
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD49F
; ---------------------------------------------------------------------------

loc_FD949:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+F1j
		shr	eax, 1
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_FD49C
; ---------------------------------------------------------------------------

loc_FD95C:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+4F8j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_4C], esi
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD581
; ---------------------------------------------------------------------------

loc_FD971:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+5E3j
		mov	ebx, eax
		mov	eax, [ebp+arg_C]
		call	_ZN16CDeltaBitsWriterD2Ev_isra_45
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		jmp	short loc_FD971
; ---------------------------------------------------------------------------

loc_FD985:				; CODE XREF: SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)+55Bj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_48], 0FFFFFFFFh
		mov	eax, 0FFFFFFFFh
		jmp	loc_FD49F
_Z23SendTable_WritePropListPK9SendTablePKviP8bf_writeiPKii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_CalcDelta(SendTable	 const*, void  const*, int, void  const*, int, int *, int, int)
_Z19SendTable_CalcDeltaPK9SendTablePKviS3_iPiii	proc near
					; CODE XREF: SendTable_WriteAllDeltaProps(SendTable  const*,void  const*,int,void  const*,int,int,bf_write *)+59p
					; SV_DetermineUpdateType(CEntityWriteInfo &)+76Fp ...

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0BCh
		mov	[ebp+var_30], 0
		cmp	ds:g_bServerDTIEnabled,	0
		mov	[ebp+var_2C], 0
		mov	ebx, [ebp+arg_0]
		jz	short loc_FD9D8
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], 0
		rdtsc
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_FD9D8:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+24j
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		test	eax, eax
		jz	loc_FE205
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aSendtable_calc ; "SendTable_CalcDelta"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZ19SendTable_CalcDeltaPK9SendTablePKviS3_iPiiiE6tm_fmt ; SendTable_CalcDelta(SendTable  const*,void  const*,int,void  const*,int,int *,int,int)::tm_fmt
		mov	dword ptr [esp+1Ch], 22Ch
		mov	dword ptr [esp+18h], offset aHomeBuildbot_7 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_90], eax
		mov	[ebp+var_8C], edx
		mov	[ebp+var_84], esi

loc_FDA6E:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+883j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_FDA92
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_FE228

loc_FDA92:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+DDj
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+8D1j
		mov	esi, [ebp+arg_10]
		mov	edi, [ebx+0Ch]
		mov	dword ptr [esp+4], offset aSendtable_ca_0 ; "SendTable_CalcDelta/toBits"
		mov	eax, esi
		mov	[esp+10h], esi
		add	eax, 7
		sar	eax, 3
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+8], eax
		lea	eax, [ebp+var_68]
		mov	[esp], eax
		call	_ZN7bf_readC2EPKcPKvii ; bf_read::bf_read(char	const*,void  const*,int,int)
		mov	ebx, [ebp+var_5C]
		mov	eax, [ebp+var_60]
		sub	eax, ebx
		cmp	eax, 6
		jle	loc_FE01A
		mov	esi, [ebp+var_68]
		lea	eax, [ebx+7]
		mov	ecx, ebx
		and	ecx, 1Fh
		mov	[ebp+var_5C], eax
		lea	eax, [ebx+6]
		mov	[ebp+var_6C], ecx
		mov	ecx, 20h
		sar	eax, 5
		sub	ecx, [ebp+var_6C]
		mov	edx, [esi+eax*4]
		mov	eax, ebx
		sar	eax, 5
		mov	eax, [esi+eax*4]
		shl	edx, cl
		movzx	ecx, byte ptr [ebp+var_6C]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_FDC88
		and	edx, 6
		jnz	loc_FE2D5
		shr	eax, 3
		mov	[ebp+var_74], eax

loc_FDB24:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+94Bj
		mov	eax, [ebp+var_74]
		mov	[ebp+var_7C], eax

loc_FDB2A:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+2FCj
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+6A7j ...
		mov	eax, [ebp+arg_18]
		mov	esi, [ebp+arg_14]
		lea	eax, [esi+eax*4]
		mov	[ebp+var_80], eax
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	loc_FE088
		mov	esi, [ebp+arg_8]
		lea	ebx, [ebp+var_50]
		mov	dword ptr [esp+4], offset aSendtable_ca_1 ; "SendTable_CalcDelta/fromBits"
		mov	[esp], ebx
		mov	eax, esi
		mov	[esp+10h], esi
		mov	esi, [ebp+arg_4]
		add	eax, 7
		sar	eax, 3
		mov	[esp+0Ch], eax
		mov	[esp+8], esi
		call	_ZN7bf_readC2EPKcPKvii ; bf_read::bf_read(char	const*,void  const*,int,int)
		mov	esi, [ebp+var_44]
		mov	eax, [ebp+var_48]
		sub	eax, esi
		cmp	eax, 6
		jle	loc_FE1BB
		lea	eax, [esi+7]
		mov	ecx, esi
		mov	[ebp+var_44], eax
		mov	eax, [ebp+var_50]
		and	ecx, 1Fh
		lea	edx, [esi+6]
		mov	[ebp+var_6C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_6C]
		mov	edx, [eax+edx*4]
		mov	eax, esi
		sar	eax, 5
		shl	edx, cl
		mov	ecx, [ebp+var_50]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_6C]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	loc_FE071
		and	edx, 6
		jnz	loc_FE2BE
		mov	esi, eax
		shr	esi, 3

loc_FDBD2:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+930j
		mov	[ebp+var_70], esi

loc_FDBD5:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+6E3j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+845j ...
		cmp	[ebp+var_74], 0FFFh
		ja	loc_FE39E
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_78], eax

loc_FDBE8:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+3DDj
		cmp	[ebp+var_74], esi
		jbe	loc_FDCB3
		lea	esi, [esi+0]

loc_FDBF8:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+2DAj
		mov	eax, [edi+2Ch]
		mov	eax, [eax+esi*4]
		mov	edx, [eax+8]
		mov	[esp+4], ebx
		mov	[esp], eax
		lea	edx, [edx+edx*8]
		call	off_277180[edx*4] ; Float_GetTypeNameString(void)
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+8]
		sub	edx, eax
		cmp	edx, 6
		jle	loc_FDE40
		mov	esi, [ebp+var_50]
		lea	edx, [eax+7]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebp+var_44], edx
		lea	edx, [eax+6]
		mov	[ebp+var_6C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_6C]
		mov	edx, [esi+edx*4]
		shl	edx, cl
		mov	ecx, eax
		sar	ecx, 5
		mov	esi, [esi+ecx*4]
		movzx	ecx, byte ptr [ebp+var_6C]
		shr	esi, cl
		or	edx, esi
		mov	ecx, edx
		and	ecx, 7Fh
		test	dl, 1
		jz	short loc_FDCA8
		and	edx, 6
		jnz	loc_FDE78
		shr	ecx, 3

loc_FDC6D:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+4E8j
		mov	eax, [ebp+var_70]
		lea	esi, [ecx+eax+1]
		cmp	[ebp+var_74], esi
		mov	[ebp+var_70], esi
		ja	loc_FDBF8
		jmp	short loc_FDCB3
; ---------------------------------------------------------------------------
		align 8

loc_FDC88:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+16Fj
		add	ebx, 1
		mov	[ebp+var_7C], 0FFFFFFFFh
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	loc_FDB2A
; ---------------------------------------------------------------------------
		align 8

loc_FDCA8:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+2BFj
		add	eax, 1
		mov	[ebp+var_44], eax

loc_FDCAE:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+4BBj
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+4CFj ...
		mov	esi, 0FFFFFFFFh

loc_FDCB3:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+24Bj
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+2E0j
		cmp	esi, [ebp+var_74]
		mov	eax, [edi+2Ch]
		jz	loc_FDEE3
		mov	ecx, [ebp+var_74]
		mov	edx, [eax+ecx*4]
		lea	ecx, [ebp+var_68]
		mov	eax, [edx+8]
		mov	[esp+4], ecx
		mov	[esp], edx
		lea	eax, [eax+eax*8]
		call	off_277180[eax*4] ; Float_GetTypeNameString(void)
		mov	eax, [ebp+var_78]
		mov	edx, [ebp+var_74]
		mov	[eax], edx
		add	eax, 4
		cmp	[ebp+var_80], eax
		mov	[ebp+var_78], eax
		jbe	loc_FE00D

loc_FDCF3:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+5E3j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+609j ...
		mov	edx, [ebp+var_5C]
		mov	eax, [ebp+var_60]
		sub	eax, edx
		cmp	eax, 6
		jle	loc_FDEA8
		lea	eax, [edx+7]
		mov	ecx, edx
		and	ecx, 1Fh
		mov	[ebp+var_5C], eax
		mov	[ebp+var_74], ecx
		lea	eax, [edx+6]
		mov	ecx, 20h
		sub	ecx, [ebp+var_74]
		sar	eax, 5
		mov	[ebp+var_94], ecx
		mov	ecx, [ebp+var_68]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_94]
		shl	eax, cl
		mov	ecx, [ebp+var_68]
		mov	[ebp+var_6C], eax
		mov	eax, edx
		sar	eax, 5
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_74]
		shr	eax, cl
		or	[ebp+var_6C], eax
		mov	eax, [ebp+var_6C]
		and	eax, 7Fh
		test	byte ptr [ebp+var_6C], 1
		jz	loc_FDE9D
		mov	edx, [ebp+var_6C]
		and	edx, 6
		jnz	loc_FDF88
		shr	eax, 3

loc_FDD6B:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+5F9j
		mov	edx, [ebp+var_7C]
		lea	eax, [edx+eax+1]
		cmp	eax, 0FFFh
		mov	[ebp+var_74], eax
		mov	[ebp+var_7C], eax
		jbe	loc_FDBE8
		nop
		lea	esi, [esi+0]

loc_FDD88:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+503j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+527j ...
		mov	ebx, [ebp+var_78]
		sub	ebx, [ebp+arg_14]
		sar	ebx, 2

loc_FDD91:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+675j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+799j ...
		cmp	[ebp+var_19], 0
		jz	short loc_FDDBC
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_FDDA9
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jz	short loc_FDDBC

loc_FDDA9:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+3FEj
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	loc_FE276

loc_FDDBC:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+3F5j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+407j ...
		mov	edi, [ebp+var_84]
		test	edi, edi
		jz	short loc_FDDFE
		mov	edx, [ebp+var_90]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp+var_8C]
		mov	dword ptr [esp+10h], 0
		mov	esi, [ebp+var_84]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], edx
		mov	[esp+8], ecx
		mov	[esp], esi
		call	dword ptr [esi+54h]

loc_FDDFE:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+424j
		cmp	ds:g_bServerDTIEnabled,	0
		jz	short loc_FDE32
		mov	ecx, [ebp+var_38]
		test	ecx, ecx
		jz	short loc_FDE32
		rdtsc
		sub	eax, [ebp+var_30]
		mov	[esp], ecx
		mov	[ebp+var_30], eax
		lea	eax, [ebp+var_30]
		sbb	edx, [ebp+var_2C]
		mov	[esp+8], eax
		mov	eax, [ebp+var_34]
		mov	[ebp+var_2C], edx
		mov	[esp+4], eax
		call	_Z20_ServerDTI_HookTimerPK9SendTable18ServerDTITimerTypeRK11CCycleCount	; _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount	 const&)

loc_FDE32:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+465j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+46Cj
		add	esp, 0BCh
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FDE40:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+27Dj
		test	edx, edx
		jle	short loc_FDE90
		mov	edx, [ebx]
		mov	ecx, eax
		sar	ecx, 5
		mov	edx, [edx+ecx*4]
		mov	ecx, eax
		add	eax, 1
		mov	[ebp+var_44], eax
		shr	edx, cl
		and	edx, 1
		jz	loc_FDCAE
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_48]
		mov	[ebp+var_44], eax
		jmp	loc_FDCAE
; ---------------------------------------------------------------------------
		align 8

loc_FDE78:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+2C4j
		shr	edx, 1
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		mov	ecx, eax
		jmp	loc_FDC6D
; ---------------------------------------------------------------------------
		align 10h

loc_FDE90:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+4A2j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_FDCAE
; ---------------------------------------------------------------------------

loc_FDE9D:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+3B6j
		add	edx, 1
		mov	[ebp+var_5C], edx
		jmp	loc_FDD88
; ---------------------------------------------------------------------------

loc_FDEA8:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+35Ej
		test	eax, eax
		jle	loc_FDFFD
		mov	eax, [ebp+var_68]
		mov	ecx, edx
		sar	ecx, 5
		mov	eax, [eax+ecx*4]
		mov	ecx, edx
		add	edx, 1
		mov	[ebp+var_5C], edx
		shr	eax, cl
		test	al, 1
		jz	loc_FDD88
		lea	esi, [ebp+var_68]
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_60]
		mov	[ebp+var_5C], eax
		jmp	loc_FDD88
; ---------------------------------------------------------------------------

loc_FDEE3:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+319j
		mov	edx, [eax+esi*4]
		lea	ecx, [ebp+var_68]
		mov	eax, [edx+8]
		mov	[esp+8], ecx
		mov	[esp+4], ebx
		mov	[esp], edx
		lea	eax, [eax+eax*8]
		call	off_277168[eax*4] ; Int_GetTypeNameString(void)
		test	eax, eax
		jz	short loc_FDF19
		mov	eax, [ebp+var_78]
		mov	[eax], esi
		add	eax, 4
		cmp	[ebp+var_80], eax
		mov	[ebp+var_78], eax
		jbe	loc_FE00D

loc_FDF19:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+563j
		mov	esi, [ebx+0Ch]
		mov	eax, [ebx+8]
		sub	eax, esi
		cmp	eax, 6
		jle	loc_FDFAE
		lea	eax, [esi+7]
		mov	ecx, esi
		mov	edx, 20h
		and	ecx, 1Fh
		mov	[ebp+var_44], eax
		mov	[ebp+var_6C], ecx
		lea	eax, [esi+6]
		sub	edx, ecx
		mov	ecx, [ebp+var_50]
		sar	eax, 5
		mov	[ebp+var_74], edx
		mov	edx, [ecx+eax*4]
		mov	eax, esi
		movzx	ecx, byte ptr [ebp+var_74]
		sar	eax, 5
		shl	edx, cl
		mov	ecx, [ebp+var_50]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_6C]
		shr	eax, cl
		or	edx, eax
		mov	eax, edx
		and	eax, 7Fh
		test	dl, 1
		jz	short loc_FDF9E
		and	edx, 6
		jnz	short loc_FDFEA
		shr	eax, 3

loc_FDF79:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+658j
		mov	edx, [ebp+var_70]
		lea	esi, [edx+eax+1]
		mov	[ebp+var_70], esi
		jmp	loc_FDCF3
; ---------------------------------------------------------------------------

loc_FDF88:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+3C2j
		lea	eax, [ebp+var_68]
		shr	edx, 1
		mov	[esp+4], edx
		mov	[esp], eax
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_FDD6B
; ---------------------------------------------------------------------------

loc_FDF9E:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+5CFj
		add	esi, 1
		mov	[ebp+var_44], esi
		mov	esi, 0FFFFFFFFh
		jmp	loc_FDCF3
; ---------------------------------------------------------------------------

loc_FDFAE:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+584j
		test	eax, eax
		jle	loc_FE2AC
		mov	eax, [ebx]
		mov	edx, esi
		mov	ecx, esi
		sar	edx, 5
		add	esi, 1
		mov	eax, [eax+edx*4]
		mov	[ebp+var_44], esi
		mov	esi, 0FFFFFFFFh
		shr	eax, cl
		test	al, 1
		jz	loc_FDCF3
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_48]
		mov	[ebp+var_44], eax
		jmp	loc_FDCF3
; ---------------------------------------------------------------------------

loc_FDFEA:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+5D4j
		shr	edx, 1
		mov	[esp], ebx
		mov	[esp+4], edx
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_FDF79
; ---------------------------------------------------------------------------

loc_FDFFD:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+50Aj
		lea	ecx, [ebp+var_68]
		mov	[esp], ecx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		jmp	loc_FDD88
; ---------------------------------------------------------------------------

loc_FE00D:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+34Dj
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+573j
		mov	ebx, eax
		sub	ebx, [ebp+arg_14]
		sar	ebx, 2
		jmp	loc_FDD91
; ---------------------------------------------------------------------------

loc_FE01A:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+12Dj
		test	eax, eax
		jle	loc_FE37B
		mov	eax, [ebp+var_68]
		mov	edx, ebx
		mov	ecx, ebx
		sar	edx, 5
		add	ebx, 1
		mov	[ebp+var_7C], 0FFFFFFFFh
		mov	[ebp+var_74], 0FFFFFFFFh
		mov	eax, [eax+edx*4]
		mov	[ebp+var_5C], ebx
		shr	eax, cl
		test	al, 1
		jz	loc_FDB2A
		lea	esi, [ebp+var_68]
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_60]
		mov	[ebp+var_7C], 0FFFFFFFFh
		mov	[ebp+var_74], 0FFFFFFFFh
		mov	[ebp+var_5C], eax
		jmp	loc_FDB2A
; ---------------------------------------------------------------------------

loc_FE071:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+21Ej
		add	esi, 1
		mov	[ebp+var_70], 0FFFFFFFFh
		mov	[ebp+var_44], esi
		mov	esi, 0FFFFFFFFh
		jmp	loc_FDBD5
; ---------------------------------------------------------------------------

loc_FE088:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+19Bj
		cmp	[ebp+var_74], 0FFFFFFFFh
		jz	loc_FE39E
		mov	esi, [ebp+arg_14]

loc_FE095:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+78Bj
		mov	eax, [edi+2Ch]
		lea	ecx, [ebp+var_68]
		mov	edx, [ebp+var_74]
		mov	eax, [eax+edx*4]
		mov	edx, [eax+8]
		mov	[esp+4], ecx
		mov	[esp], eax
		lea	edx, [edx+edx*8]
		call	off_27717C[edx*4] ; Float_GetTypeNameString(void)
		test	al, al
		jnz	short loc_FE0C6
		mov	eax, [ebp+var_74]
		mov	[esi], eax
		add	esi, 4
		cmp	[ebp+var_80], esi
		jbe	short loc_FE131

loc_FE0C6:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+717j
		mov	eax, [ebp+var_5C]
		mov	edx, [ebp+var_60]
		sub	edx, eax
		cmp	edx, 6
		jle	short loc_FE151
		mov	ebx, [ebp+var_68]
		lea	edx, [eax+7]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[ebp+var_5C], edx
		lea	edx, [eax+6]
		mov	[ebp+var_6C], ecx
		mov	ecx, 20h
		sar	edx, 5
		sub	ecx, [ebp+var_6C]
		mov	edx, [ebx+edx*4]
		shl	edx, cl
		mov	ecx, eax
		sar	ecx, 5
		mov	ebx, [ebx+ecx*4]
		movzx	ecx, byte ptr [ebp+var_6C]
		shr	ebx, cl
		or	edx, ebx
		mov	ecx, edx
		and	ecx, 7Fh
		test	dl, 1
		jz	short loc_FE13E
		and	edx, 6
		jnz	short loc_FE18D
		mov	eax, ecx
		shr	eax, 3

loc_FE11B:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+7FEj
		mov	edx, [ebp+var_7C]
		lea	eax, [edx+eax+1]
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_74], eax
		mov	[ebp+var_7C], eax
		jnz	loc_FE095

loc_FE131:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+724j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+7CDj
		mov	ebx, esi
		sub	ebx, [ebp+arg_14]
		sar	ebx, 2
		jmp	loc_FDD91
; ---------------------------------------------------------------------------

loc_FE13E:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+76Fj
		mov	ebx, esi
		add	eax, 1
		sub	ebx, [ebp+arg_14]
		mov	[ebp+var_5C], eax
		sar	ebx, 2
		jmp	loc_FDD91
; ---------------------------------------------------------------------------

loc_FE151:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+731j
		test	edx, edx
		jle	short loc_FE1A3
		mov	edx, [ebp+var_68]
		mov	ecx, eax
		sar	ecx, 5
		mov	edx, [edx+ecx*4]
		mov	ecx, eax
		add	eax, 1
		mov	[ebp+var_5C], eax
		shr	edx, cl
		and	edx, 1
		jz	short loc_FE131
		lea	eax, [ebp+var_68]
		mov	[esp], eax
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	ebx, esi
		mov	eax, [ebp+var_60]
		sub	ebx, [ebp+arg_14]
		mov	[ebp+var_5C], eax
		sar	ebx, 2
		jmp	loc_FDD91
; ---------------------------------------------------------------------------

loc_FE18D:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+774j
		lea	eax, [ebp+var_68]
		shr	edx, 1
		mov	[esp+4], edx
		mov	[esp], eax
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		jmp	loc_FE11B
; ---------------------------------------------------------------------------

loc_FE1A3:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+7B3j
		lea	ecx, [ebp+var_68]
		mov	[esp], ecx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	ebx, esi
		sub	ebx, [ebp+arg_14]
		sar	ebx, 2
		jmp	loc_FDD91
; ---------------------------------------------------------------------------

loc_FE1BB:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+1D9j
		test	eax, eax
		jle	loc_FE362
		mov	eax, [ebx]
		mov	edx, esi
		mov	ecx, esi
		sar	edx, 5
		add	esi, 1
		mov	[ebp+var_70], 0FFFFFFFFh
		mov	eax, [eax+edx*4]
		mov	[ebp+var_44], esi
		mov	esi, 0FFFFFFFFh
		shr	eax, cl
		test	al, 1
		jz	loc_FDBD5
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	eax, [ebp+var_48]
		mov	[ebp+var_70], 0FFFFFFFFh
		mov	[ebp+var_44], eax
		jmp	loc_FDBD5
; ---------------------------------------------------------------------------

loc_FE205:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+4Dj
		mov	[ebp+var_84], 0
		mov	[ebp+var_90], 0
		mov	[ebp+var_8C], 0
		jmp	loc_FDA6E
; ---------------------------------------------------------------------------

loc_FE228:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+ECj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aSendtable_calc	; "SendTable_CalcDelta"
		jz	short loc_FE262
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aSendtable_calc ; "SendTable_CalcDelta"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_FE262:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+893j
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_FDA92
; ---------------------------------------------------------------------------

loc_FE276:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+416j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_FE2A5
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_FE294:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+90Aj
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_FDDBC
; ---------------------------------------------------------------------------

loc_FE2A5:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+8E5j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_FE294
; ---------------------------------------------------------------------------

loc_FE2AC:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+610j
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	esi, 0FFFFFFFFh
		jmp	loc_FDCF3
; ---------------------------------------------------------------------------

loc_FE2BE:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+227j
		mov	eax, edx
		mov	[esp], ebx
		shr	eax, 1
		mov	[esp+4], eax
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		mov	esi, eax
		jmp	loc_FDBD2
; ---------------------------------------------------------------------------

loc_FE2D5:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+178j
		lea	esi, [ebp+var_68]
		mov	eax, edx
		shr	eax, 1
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN7bf_read19ReadUBitVarInternalEi ; bf_read::ReadUBitVarInternal(int)
		mov	[ebp+var_74], eax
		jmp	loc_FDB24
; ---------------------------------------------------------------------------

loc_FE2F0:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+9C0j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+9F9j
		mov	ebx, eax
		lea	eax, [ebp+var_19]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()

loc_FE2FD:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+9B8j
		mov	esi, [ebp+var_84]
		test	esi, esi
		jz	short loc_FE33F
		mov	eax, [ebp+var_90]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_8C]
		mov	dword ptr [esp+10h], 0
		mov	esi, [ebp+var_84]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp+8], edx
		mov	[esp], esi
		call	dword ptr [esi+54h]

loc_FE33F:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+965j
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+9B4j
		lea	eax, [ebp+var_38]
		mov	[esp], eax
		call	_ZN15CServerDTITimerD2Ev ; CServerDTITimer::~CServerDTITimer()
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_FE33F
; ---------------------------------------------------------------------------
		mov	ebx, eax
		jmp	short loc_FE2FD
; ---------------------------------------------------------------------------
		align 10h
		jmp	short loc_FE2F0
; ---------------------------------------------------------------------------

loc_FE362:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+81Dj
		mov	[esp], ebx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_70], 0FFFFFFFFh
		mov	esi, 0FFFFFFFFh
		jmp	loc_FDBD5
; ---------------------------------------------------------------------------

loc_FE37B:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+67Cj
		lea	edx, [ebp+var_68]
		mov	[esp], edx
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		mov	[ebp+var_7C], 0FFFFFFFFh
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	loc_FDB2A
; ---------------------------------------------------------------------------
		jmp	loc_FE2F0
; ---------------------------------------------------------------------------

loc_FE39E:				; CODE XREF: SendTable_CalcDelta(SendTable  const*,void	 const*,int,void  const*,int,int *,int,int)+23Cj
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+6ECj
		xor	ebx, ebx
		jmp	loc_FDD91
_Z19SendTable_CalcDeltaPK9SendTablePKviS3_iPiii	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_WriteAllDeltaProps(SendTable  const*, void	const*,	int, void  const*, int,	int, bf_write *)
_Z28SendTable_WriteAllDeltaPropsPK9SendTablePKviS3_iiP8bf_write	proc near
					; CODE XREF: CBaseServer::CompressPackedEntity(ServerClass *,char  const*,int &)+9Ep
					; CBaseServer::WriteTempEntities(CBaseClient *,CFrameSnapshot *,CFrameSnapshot *,bf_write &,int)+37Ap ...

var_4020	= dword	ptr -4020h
var_401C	= dword	ptr -401Ch
var_4018	= byte ptr -4018h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 4048h
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], ebx
		lea	edx, [ebp+var_4018]
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_C]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_10]
		mov	[esp+14h], edx
		mov	edi, [ebp+arg_14]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], ecx
		mov	[esp+0Ch], ebx
		mov	[esp+10h], esi
		mov	[esp+1Ch], edi
		mov	[ebp+var_4020],	edx
		mov	[ebp+var_401C],	ecx
		mov	dword ptr [esp+18h], 1000h
		mov	[esp+4], eax
		call	_Z19SendTable_CalcDeltaPK9SendTablePKviS3_iPiii	; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)
		mov	edx, [ebp+var_4020]
		mov	[esp+10h], edi
		mov	ecx, [ebp+var_401C]
		mov	[esp+18h], eax
		mov	[esp+8], esi
		mov	[esp+4], ebx
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_18]
		mov	[ebp+var_401C],	eax
		mov	[esp], ecx
		mov	[esp+0Ch], edx
		call	_Z23SendTable_WritePropListPK9SendTablePKviP8bf_writeiPKii ; SendTable_WritePropList(SendTable	const*,void  const*,int,bf_write *,int,int  const*,int)
		mov	eax, [ebp+var_401C]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_Z28SendTable_WriteAllDeltaPropsPK9SendTablePKviS3_iiP8bf_write	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_WriteInfos(SendTable *, bf_write *)
_Z20SendTable_WriteInfosP9SendTableP8bf_write proc near
					; CODE XREF: DataTable_MaybeWriteSendTableBuffer(SendTable *,bf_write *,bool)+49j
					; SV_MaybeWriteSendTable(SendTable *,bf_write &,bool)+98p

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	eax, [edx+8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edi, [ebp+arg_0]
		mov	esi, ecx
		sub	esi, eax
		cmp	esi, 9
		mov	edx, [edi+4]
		jg	loc_FE890
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_FE49E:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+492j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	edi, [edx+4]
		test	edi, edi
		jg	loc_FE6AB
		jmp	loc_FE880
; ---------------------------------------------------------------------------
		align 10h

loc_FE4C0:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+263j
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1

loc_FE4C7:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+2D8j
		mov	eax, [esi+30h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+38h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 0Fh
		jg	loc_FE740
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		mov	eax, [esi+8]
		cmp	eax, 6
		jz	loc_FE7C1

loc_FE4FF:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+35Bj
		test	byte ptr [esi+38h], 40h
		jnz	loc_FE7F0
		cmp	eax, 5
		jz	loc_FE808
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+10h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 1Fh
		jle	loc_FE7E0
		mov	ecx, eax
		mov	edi, 7FFFFFFFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+20h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_24], edi
		lea	edx, [eax+edx*4]
		mov	edi, [edx]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_28]
		mov	[ebp+var_40], edi
		mov	edi, 0FFFFFFFFh
		shl	edi, cl
		mov	ecx, [ebp+var_40]
		xor	edx, [ebp+var_20]
		xor	ecx, [ebp+var_20]
		and	edx, edi
		mov	edi, [ebp+var_2C]
		xor	edx, [ebp+var_28]
		and	ecx, [ebp+var_24]
		xor	ecx, [ebp+var_40]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+14h]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 1Fh
		jle	loc_FE7E0
		mov	ecx, eax
		mov	edi, [ebx]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+20h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [edi+eax*4]
		mov	edi, 7FFFFFFFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_24], edi
		lea	edx, [eax+edx*4]
		mov	edi, [edx]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_28]
		mov	[ebp+var_44], edi
		mov	edi, 0FFFFFFFFh
		shl	edi, cl
		mov	ecx, [ebp+var_44]
		xor	edx, [ebp+var_20]
		xor	ecx, [ebp+var_20]
		and	edx, edi
		mov	edi, [ebp+var_2C]
		xor	edx, [ebp+var_28]
		and	ecx, [ebp+var_24]
		xor	ecx, [ebp+var_44]
		mov	[edi], ecx
		mov	[eax], edx
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+0Ch]
		mov	esi, ecx
		sub	esi, eax
		cmp	esi, 6
		jle	loc_FE7E0
		mov	ecx, eax
		mov	esi, 3Fh
		mov	[ebp+var_20], 7Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+7]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edi, [eax]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], edi
		shr	esi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edx, esi
		and	edx, 1
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_28]
		shl	[ebp+var_20], cl
		mov	ecx, [edi]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]

loc_FE689:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+411j
		and	ecx, esi
		xor	ecx, [edi]
		mov	[edi], ecx
		xor	edx, [ebp+var_28]
		mov	[eax], edx

loc_FE694:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+373j
					; SendTable_WriteInfos(SendTable *,bf_write *)+387j ...
		add	[ebp+var_30], 1
		mov	edi, [ebp+arg_0]
		add	[ebp+var_34], 50h
		mov	edx, [ebp+var_30]
		cmp	[edi+4], edx
		jle	loc_FE880

loc_FE6AB:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+54j
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+var_34]
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		add	esi, [edi]
		mov	edi, ecx
		sub	edi, eax
		cmp	edi, 4
		mov	edx, [esi+8]
		jle	loc_FE4C0
		mov	ecx, eax
		mov	edi, 0Fh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+5]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_20], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		mov	[ebp+var_24], edi
		lea	edx, [eax+edx*4]
		mov	edi, [edx]
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_28]
		mov	[ebp+var_3C], edi
		mov	edi, 1Fh
		shl	edi, cl
		mov	ecx, [ebp+var_3C]
		xor	edx, [ebp+var_20]
		xor	ecx, [ebp+var_20]
		and	edx, edi
		mov	edi, [ebp+var_2C]
		xor	edx, [ebp+var_28]
		and	ecx, [ebp+var_24]
		xor	ecx, [ebp+var_3C]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_FE4C7
; ---------------------------------------------------------------------------
		align 10h

loc_FE740:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+86j
		mov	ecx, eax
		mov	edi, [ebx]
		and	edx, 0FFFFh
		and	ecx, 1Fh
		mov	[ebp+var_24], 0FFFFh
		mov	[ebp+var_20], ecx
		lea	ecx, [eax+10h]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_20]
		lea	eax, [edi+eax*4]
		mov	edi, 7FFFh
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_1C], edx
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_28], edx
		mov	edx, edi
		and	edx, 1
		lea	edx, [eax+edx*4]
		shl	[ebp+var_24], cl
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_38], edx
		mov	edx, [ebp+var_1C]
		xor	ecx, [ebp+var_38]
		xor	edx, [ebp+var_28]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_38]
		and	edx, [ebp+var_24]
		mov	[edi], ecx
		xor	edx, [ebp+var_28]
		mov	[eax], edx
		mov	eax, [esi+8]
		cmp	eax, 6
		jnz	loc_FE4FF

loc_FE7C1:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+99j
		mov	eax, [esi+44h]
		mov	eax, [eax+8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		jmp	loc_FE694
; ---------------------------------------------------------------------------
		align 10h

loc_FE7E0:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+C2j
					; SendTable_WriteInfos(SendTable *,bf_write *)+147j ...
		mov	[ebx+0Ch], ecx
		mov	byte ptr [ebx+10h], 1
		jmp	loc_FE694
; ---------------------------------------------------------------------------
		align 10h

loc_FE7F0:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+A3j
		mov	eax, [esi+28h]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		jmp	loc_FE694
; ---------------------------------------------------------------------------
		align 8

loc_FE808:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+ACj
		mov	ecx, [ebx+8]
		mov	eax, [ebx+0Ch]
		mov	edx, [esi+20h]
		mov	esi, ecx
		sub	esi, eax
		cmp	esi, 9
		jle	short loc_FE7E0
		mov	ecx, eax
		mov	esi, [ebx]
		mov	[ebp+var_20], 3FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [eax+0Ah]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		lea	eax, [esi+eax*4]
		mov	esi, 1FFh
		mov	edi, [eax]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edx
		mov	[ebp+var_28], edi
		shr	esi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	edx, esi
		and	edx, 1
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	edx, [ebp+var_28]
		xor	ecx, [edi]
		and	edx, [ebp+var_20]
		jmp	loc_FE689
; ---------------------------------------------------------------------------
		align 10h

loc_FE880:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+5Aj
					; SendTable_WriteInfos(SendTable *,bf_write *)+245j
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 4Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FE890:				; CODE XREF: SendTable_WriteInfos(SendTable *,bf_write *)+31j
		mov	ecx, eax
		mov	esi, [ebx]
		mov	[ebp+var_34], 3FFh
		and	ecx, 1Fh
		mov	[ebp+var_30], ecx
		lea	ecx, [eax+0Ah]
		sar	eax, 5
		mov	[ebx+0Ch], ecx
		movzx	ecx, byte ptr [ebp+var_30]
		lea	eax, [esi+eax*4]
		mov	esi, 1FFh
		mov	edi, [eax]
		rol	edx, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_30]
		mov	[ebp+var_1C], edx
		mov	[ebp+var_20], edi
		shr	esi, cl
		movzx	ecx, byte ptr [ebp+var_30]
		mov	edx, esi
		and	edx, 1
		lea	edi, [eax+edx*4]
		mov	edx, [ebp+var_20]
		shl	[ebp+var_34], cl
		mov	ecx, [edi]
		xor	edx, [ebp+var_1C]
		xor	ecx, [ebp+var_1C]
		and	edx, [ebp+var_34]
		and	ecx, esi
		xor	ecx, [edi]
		xor	edx, [ebp+var_20]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_FE49E
_Z20SendTable_WriteInfosP9SendTableP8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_GetNumFlatProps(SendTable *)
_Z25SendTable_GetNumFlatPropsP9SendTable proc near
					; CODE XREF: CHLTVClientState::CopyNewEntity(CEntityReadInfo &,int,int)+B0p
					; SV_PackEntity(int,edict_t *,ServerClass *,CFrameSnapshot *)+1BFp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax+0Ch]
		test	ebx, ebx
		jz	short loc_FE920
		mov	eax, [ebx+38h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FE920:				; CODE XREF: SendTable_GetNumFlatProps(SendTable *)+Fj
		mov	dword ptr [esp], offset	aSendtable_getn	; "SendTable_GetNumFlatProps: missing pPre"...
		call	Error
		mov	eax, [ebx+38h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z25SendTable_GetNumFlatPropsP9SendTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_CRCTable(unsigned long &, SendTable	*)
_Z18SendTable_CRCTableRmP9SendTable proc near ;	CODE XREF: SendTable_ComputeCRC(void)+32p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	ebx, [edx+8]
		mov	[esp], ebx	; s
		call	strlen
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	[esp], esi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+4]
		mov	dword ptr [esp+8], 4
		mov	[esp], esi
		mov	[ebp+var_30], eax
		lea	eax, [ebp+var_30]
		mov	[esp+4], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+4]
		test	eax, eax
		jle	loc_FEAF0
		xor	edi, edi
		mov	[ebp+var_3C], 0
		jmp	short loc_FEA1E
; ---------------------------------------------------------------------------
		align 8

loc_FE9A8:				; CODE XREF: SendTable_CRCTable(ulong &,SendTable *)+14Cj
		cmp	eax, 5
		jz	loc_FEAB8
		mov	eax, [ebx+10h]
		lea	edx, [ebp+var_24]
		mov	dword ptr [esp+8], 4
		mov	[esp+4], edx
		mov	[esp], esi
		mov	[ebp+var_24], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	eax, [ebx+14h]
		mov	dword ptr [esp+8], 4
		mov	[esp], esi
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_20]
		mov	[esp+4], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+8], 4
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C]
		mov	[esp+4], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)

loc_FEA08:				; CODE XREF: SendTable_CRCTable(ulong &,SendTable *)+16Dj
					; SendTable_CRCTable(ulong &,SendTable *)+195j
		add	[ebp+var_3C], 1
		add	edi, 50h
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_3C]
		cmp	[edx+4], eax
		jle	loc_FEAF0

loc_FEA1E:				; CODE XREF: SendTable_CRCTable(ulong &,SendTable *)+61j
		mov	edx, [ebp+arg_4]
		mov	ebx, edi
		add	ebx, [edx]
		mov	eax, [ebx+8]
		mov	dword ptr [esp+8], 4
		mov	[esp], esi
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_2C]
		mov	[esp+4], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	edx, [ebx+30h]
		mov	[esp], edx	; s
		mov	[ebp+var_40], edx
		call	strlen
		mov	edx, [ebp+var_40]
		mov	[esp], esi
		mov	[esp+8], eax
		mov	[esp+4], edx
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	eax, [ebx+38h]
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+8], 4
		mov	[esp+4], edx
		mov	[esp], esi
		mov	[ebp+var_28], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		mov	eax, [ebx+8]
		cmp	eax, 6
		jz	short loc_FEAE0
		test	byte ptr [ebx+38h], 40h
		jz	loc_FE9A8
		mov	ebx, [ebx+28h]

loc_FEA95:				; CODE XREF: SendTable_CRCTable(ulong &,SendTable *)+1A6j
		mov	[esp], ebx	; s
		call	strlen
		mov	[esp+4], ebx
		mov	[esp+8], eax
		mov	[esp], esi
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		jmp	loc_FEA08
; ---------------------------------------------------------------------------
		align 8

loc_FEAB8:				; CODE XREF: SendTable_CRCTable(ulong &,SendTable *)+6Bj
		mov	eax, [ebx+20h]
		mov	dword ptr [esp+8], 4
		mov	[esp], esi
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_24]
		mov	[esp+4], eax
		call	_Z19CRC32_ProcessBufferPmPKvi ;	CRC32_ProcessBuffer(ulong *,void  const*,int)
		jmp	loc_FEA08
; ---------------------------------------------------------------------------
		align 10h

loc_FEAE0:				; CODE XREF: SendTable_CRCTable(ulong &,SendTable *)+146j
		mov	eax, [ebx+44h]
		mov	ebx, [eax+8]
		jmp	short loc_FEA95
; ---------------------------------------------------------------------------
		align 10h

loc_FEAF0:				; CODE XREF: SendTable_CRCTable(ulong &,SendTable *)+52j
					; SendTable_CRCTable(ulong &,SendTable *)+D8j
		mov	eax, [esi]
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z18SendTable_CRCTableRmP9SendTable endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_PrintStats(void)
_Z20SendTable_PrintStatsv proc near	; CODE XREF: SendTable_Init(SendTable **,int)+EBp

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	eax, dword ptr ds:g_SendTables+0Ch
		test	eax, eax
		mov	[ebp+var_24], eax
		jle	loc_FED11
		mov	edx, dword ptr ds:g_SendTables
		xor	esi, esi
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		xor	edi, edi
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_28], edx
		mov	[ebp+var_3C], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		lea	esi, [esi+0]

loc_FEB68:				; CODE XREF: SendTable_PrintStats(void)+D3j
		mov	ecx, [ebp+var_28]
		mov	eax, [ecx+edi*4]
		add	edi, 1
		mov	edx, [eax+0Ch]
		mov	ebx, [eax+4]
		mov	ecx, [edx+38h]
		add	[ebp+var_1C], ebx
		add	[ebp+var_20], ecx
		test	ebx, ebx
		jle	short loc_FEBD0
		mov	eax, [eax]
		xor	edx, edx
		add	eax, 38h
		jmp	short loc_FEB9D
; ---------------------------------------------------------------------------
		align 10h

loc_FEB90:				; CODE XREF: SendTable_PrintStats(void)+A2j
		add	esi, 1

loc_FEB93:				; CODE XREF: SendTable_PrintStats(void)+A7j
					; SendTable_PrintStats(void)+ADj ...
		add	edx, 1
		add	eax, 50h
		cmp	edx, ebx
		jz	short loc_FEBD0

loc_FEB9D:				; CODE XREF: SendTable_PrintStats(void)+8Bj
					; SendTable_PrintStats(void)+CCj
		mov	ecx, [eax]
		test	cl, 40h
		jnz	short loc_FEB90
		and	ch, 1
		jnz	short loc_FEB93
		cmp	dword ptr [eax-30h], 6
		ja	short loc_FEB93
		mov	ecx, [eax-30h]
		jmp	ds:off_1F7608[ecx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_FEBC0:				; CODE XREF: SendTable_PrintStats(void)+B2j
					; DATA XREF: .rodata:001F761Co
		add	[ebp+var_34], 1
		add	edx, 1
		add	eax, 50h
		cmp	edx, ebx
		jnz	short loc_FEB9D
		db	66h
		nop

loc_FEBD0:				; CODE XREF: SendTable_PrintStats(void)+82j
					; SendTable_PrintStats(void)+9Bj
		cmp	edi, [ebp+var_24]
		jnz	short loc_FEB68

loc_FEBD5:				; CODE XREF: SendTable_PrintStats(void)+254j
		mov	dword ptr [esp], offset	aTotalSendTable	; "Total Send Table stats\n"
		call	Msg
		mov	[esp+4], edi
		mov	dword ptr [esp], offset	aSendTablesI ; "Send Tables   :	%i\n"
		call	Msg
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp], offset	aSendPropsI ; "Send Props    : %i\n"
		mov	[esp+4], eax
		call	Msg
		mov	edx, [ebp+var_20]
		mov	dword ptr [esp], offset	aFlatPropsI ; "Flat Props    : %i\n"
		mov	[esp+4], edx
		call	Msg
		mov	ecx, [ebp+var_38]
		mov	dword ptr [esp], offset	aIntPropsI ; "Int Props	    : %i\n"
		mov	[esp+4], ecx
		call	Msg
		mov	eax, [ebp+var_2C]
		mov	dword ptr [esp], offset	aFloatPropsI ; "Float Props   :	%i\n"
		mov	[esp+4], eax
		call	Msg
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp], offset	aVectorPropsI ;	"Vector	Props  : %i\n"
		mov	[esp+4], edx
		call	Msg
		mov	ecx, [ebp+var_40]
		mov	dword ptr [esp], offset	aVectorxyPropsI	; "VectorXY Props: %i\n"
		mov	[esp+4], ecx
		call	Msg
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp], offset	aStringPropsI ;	"String	Props  : %i\n"
		mov	[esp+4], eax
		call	Msg
		mov	edx, [ebp+var_34]
		mov	dword ptr [esp], offset	aArrayPropsI ; "Array Props   :	%i\n"
		mov	[esp+4], edx
		call	Msg
		mov	ecx, [ebp+var_44]
		mov	dword ptr [esp], offset	aTablePropsI ; "Table Props   :	%i\n"
		mov	[esp+4], ecx
		call	Msg
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aExcluPropsI ; "Exclu Props   :	%i\n"
		call	Msg
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FECB8:				; CODE XREF: SendTable_PrintStats(void)+B2j
					; DATA XREF: .rodata:001F7618o
		add	[ebp+var_30], 1
		jmp	loc_FEB93
; ---------------------------------------------------------------------------
		align 8

loc_FECC8:				; CODE XREF: SendTable_PrintStats(void)+B2j
					; DATA XREF: .rodata:001F7614o
		add	[ebp+var_40], 1
		jmp	loc_FEB93
; ---------------------------------------------------------------------------
		align 8

loc_FECD8:				; CODE XREF: SendTable_PrintStats(void)+B2j
					; DATA XREF: .rodata:001F7610o
		add	[ebp+var_3C], 1
		jmp	loc_FEB93
; ---------------------------------------------------------------------------
		align 8

loc_FECE8:				; CODE XREF: SendTable_PrintStats(void)+B2j
					; DATA XREF: .rodata:001F760Co
		add	[ebp+var_2C], 1
		jmp	loc_FEB93
; ---------------------------------------------------------------------------
		align 8

loc_FECF8:				; CODE XREF: SendTable_PrintStats(void)+B2j
					; DATA XREF: .rodata:off_1F7608o
		add	[ebp+var_38], 1
		jmp	loc_FEB93
; ---------------------------------------------------------------------------
		align 8

loc_FED08:				; CODE XREF: SendTable_PrintStats(void)+B2j
					; DATA XREF: .rodata:001F7620o
		add	[ebp+var_44], 1
		jmp	loc_FEB93
; ---------------------------------------------------------------------------

loc_FED11:				; CODE XREF: SendTable_PrintStats(void)+13j
		xor	esi, esi
		mov	[ebp+var_20], 0
		xor	edi, edi
		mov	[ebp+var_1C], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_3C], 0
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		jmp	loc_FEBD5
_Z20SendTable_PrintStatsv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_ComputeCRC(void)
_Z20SendTable_ComputeCRCv proc near	; CODE XREF: SendTable_Init(SendTable **,int):loc_FEF33p

var_1C		= dword	ptr -1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_1C]
		push	ebx
		sub	esp, 2Ch
		mov	[esp], esi
		call	_Z10CRC32_InitPm ; CRC32_Init(ulong *)
		mov	edi, dword ptr ds:g_SendTables+0Ch
		test	edi, edi
		jle	short loc_FED9E
		xor	ebx, ebx

loc_FED80:				; CODE XREF: SendTable_ComputeCRC(void)+3Cj
		mov	eax, dword ptr ds:g_SendTables
		mov	eax, [eax+ebx*4]
		add	ebx, 1
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z18SendTable_CRCTableRmP9SendTable ; SendTable_CRCTable(ulong &,SendTable *)
		cmp	ebx, edi
		mov	[ebp+var_1C], eax
		jnz	short loc_FED80

loc_FED9E:				; CODE XREF: SendTable_ComputeCRC(void)+1Cj
		mov	[esp], esi
		call	_Z11CRC32_FinalPm ; CRC32_Final(ulong *)
		mov	eax, [ebp+var_1C]
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z20SendTable_ComputeCRCv endp

; ---------------------------------------------------------------------------
		jmp	short _Z17SendTabe_GetTablei ; SendTabe_GetTable(int)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTabe_GetTable(int)
_Z17SendTabe_GetTablei proc near	; CODE XREF: .text:000FEDB1j

arg_0		= dword	ptr  8

		push	ebp
		mov	eax, dword ptr ds:g_SendTables
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+edx*4]
		retn
_Z17SendTabe_GetTablei endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_GetNum(void)
_Z16SendTable_GetNumv proc near
		push	ebp
		mov	eax, dword ptr ds:g_SendTables+0Ch
		mov	ebp, esp
		pop	ebp
		retn
_Z16SendTable_GetNumv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_GetCRC(void)
_Z16SendTable_GetCRCv proc near		; CODE XREF: CHLTVClient::SendSignonData(void)+11p
					; CHLTVClientState::SendClientInfo(void)+1Cp ...
		push	ebp
		mov	eax, ds:g_SendTableCRC
		mov	ebp, esp
		pop	ebp
		retn
_Z16SendTable_GetCRCv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_CheckIntegrity(SendTable *,	void  const*, int)
_Z24SendTable_CheckIntegrityP9SendTablePKvi proc near
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_Z24SendTable_CheckIntegrityP9SendTablePKvi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_Term(void)
_Z14SendTable_Termv proc near		; CODE XREF: SV_TermSendTables(ServerClass *)+4j
					; SV_ShutdownGameDLL(void)+2Dp
		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, dword ptr ds:g_SendTables+0Ch
		test	eax, eax
		jle	short loc_FEE3A
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_FEE18:				; CODE XREF: SendTable_Term(void)+38j
		mov	eax, dword ptr ds:g_SendTables
		mov	eax, [eax+ebx*4]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_FEE2F
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+4]

loc_FEE2F:				; CODE XREF: SendTable_Term(void)+25j
		add	ebx, 1
		cmp	dword ptr ds:g_SendTables+0Ch, ebx
		jg	short loc_FEE18

loc_FEE3A:				; CODE XREF: SendTable_Term(void)+Ej
		mov	dword ptr [esp], offset	g_SendTables
		mov	dword ptr ds:g_SendTables+0Ch, 0
		call	_ZN10CUtlMemoryIP9SendTableiE5PurgeEv ;	CUtlMemory<SendTable *,int>::Purge(void)
		mov	eax, dword ptr ds:g_SendTables
		mov	ds:g_SendTableCRC, 0
		mov	dword ptr ds:g_SendTables+10h, eax
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_Z14SendTable_Termv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SendTable_Init(SendTable **, int)
_Z14SendTable_InitPP9SendTablei	proc near ; CODE XREF: SV_InitSendTables(ServerClass *)+2Ep

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, dword ptr ds:g_SendTables+0Ch
		mov	edi, [ebp+arg_0]
		test	eax, eax
		jnz	loc_FF0B8

loc_FEE89:				; CODE XREF: SendTable_Init(SendTable **,int)+254j
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jle	loc_FF0C9
		xor	esi, esi
		jmp	short loc_FEEA8
; ---------------------------------------------------------------------------
		align 10h

loc_FEEA0:				; CODE XREF: SendTable_Init(SendTable **,int)+40j
					; SendTable_Init(SendTable **,int)+19Ej ...
		add	esi, 1
		cmp	esi, [ebp+arg_4]
		jz	short loc_FEF08

loc_FEEA8:				; CODE XREF: SendTable_Init(SendTable **,int)+26j
		mov	ebx, [edi+esi*4]
		mov	eax, [ebx+0Ch]
		test	eax, eax
		jnz	short loc_FEEA0
		mov	dword ptr [esp], 118h
		call	_Znwj		; operator new(uint)
		mov	[ebp+var_1C], eax
		mov	[esp], eax
		call	_ZN17CSendTablePrecalcC2Ev ; CSendTablePrecalc::CSendTablePrecalc(void)
		mov	eax, [ebp+var_1C]
		mov	[eax+8Ch], ebx
		mov	[ebx+0Ch], eax
		mov	eax, ebx
		call	_ZL29SendTable_CalcNextVectorElemsP9SendTable ;	SendTable_CalcNextVectorElems(SendTable	*)
		mov	[esp], ebx
		call	_Z19ServerDTI_HookTableP9SendTable ; ServerDTI_HookTable(SendTable *)
		mov	edx, [ebp+var_1C]
		mov	[edx+90h], eax
		mov	[esp], edx
		call	_ZN17CSendTablePrecalc22SetupFlatPropertyArrayEv ; CSendTablePrecalc::SetupFlatPropertyArray(void)
		test	al, al
		jnz	short loc_FEF70
		xor	ebx, ebx

loc_FEEFB:				; CODE XREF: SendTable_Init(SendTable **,int)+E9j
		add	esp, 3Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_FEF08:				; CODE XREF: SendTable_Init(SendTable **,int)+36j
		mov	edx, [ebp+arg_4]
		mov	dword ptr [esp], offset	g_SendTables
		mov	[esp+4], edx
		call	_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEE8SetCountEi ; CUtlVector<SendTable *,CUtlMemory<SendTable	*,int>>::SetCount(int)
		mov	ebx, [ebp+arg_4]
		xor	eax, eax

loc_FEF20:				; CODE XREF: SendTable_Init(SendTable **,int)+C1j
		mov	ecx, [edi+eax*4]
		mov	edx, dword ptr ds:g_SendTables
		mov	[edx+eax*4], ecx
		add	eax, 1
		cmp	eax, ebx
		jnz	short loc_FEF20

loc_FEF33:				; CODE XREF: SendTable_Init(SendTable **,int)+26Cj
		call	_Z20SendTable_ComputeCRCv ; SendTable_ComputeCRC(void)
		mov	ebx, 1
		mov	ds:g_SendTableCRC, eax
		call	CommandLine_Tier0
		mov	edx, [eax]
		mov	dword ptr [esp+4], offset aDti ; "-dti"
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	eax, eax
		jz	short loc_FEEFB
		call	_Z20SendTable_PrintStatsv ; SendTable_PrintStats(void)
		add	esp, 3Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FEF70:				; CODE XREF: SendTable_Init(SendTable **,int)+87j
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+8Ch]
		mov	ebx, [ecx+4]
		test	ebx, ebx
		jle	loc_FF006
		xor	edx, edx
		xor	eax, eax
		mov	[ebp+var_20], esi
		mov	[ebp+var_24], edi
		mov	esi, edx
		mov	edi, eax
		mov	edx, ebx
		jmp	short loc_FEFAD
; ---------------------------------------------------------------------------
		align 10h

loc_FEFA0:				; CODE XREF: SendTable_Init(SendTable **,int)+15Aj
					; SendTable_Init(SendTable **,int)+160j
		mov	edx, [ecx+4]
		add	esi, 1
		add	edi, 50h
		cmp	esi, edx
		jge	short loc_FF000

loc_FEFAD:				; CODE XREF: SendTable_Init(SendTable **,int)+124j
					; SendTable_Init(SendTable **,int)+18Dj
		mov	ebx, [ecx]
		add	ebx, edi
		mov	eax, [ebx+18h]
		test	eax, eax
		jz	loc_FF050
		cmp	dword ptr [eax+8], 6
		jz	loc_FF080

loc_FEFC6:				; CODE XREF: SendTable_Init(SendTable **,int)+1E4j
					; SendTable_Init(SendTable **,int)+20Aj ...
		cmp	dword ptr [ebx+0Ch], 1
		jnz	short loc_FEFA0
		test	byte ptr [ebx+38h], 1
		jnz	short loc_FEFA0
		mov	eax, [ebx+30h]
		add	esi, 1
		add	edi, 50h
		mov	[esp+8], eax
		mov	eax, [ecx+8]
		mov	[ebp+var_28], ecx
		mov	dword ptr [esp], offset	aSendtablePropS	; "SendTable prop %s::%s is a 1-bit signed"...
		mov	[esp+4], eax	; arg
		call	_Z17DataTable_WarningPKcz ; DataTable_Warning(char  const*,...)
		mov	ecx, [ebp+var_28]
		mov	edx, [ecx+4]
		cmp	esi, edx
		jl	short loc_FEFAD
		nop

loc_FF000:				; CODE XREF: SendTable_Init(SendTable **,int)+13Bj
		mov	esi, [ebp+var_20]
		mov	edi, [ebp+var_24]

loc_FF006:				; CODE XREF: SendTable_Init(SendTable **,int)+10Ej
		mov	eax, [ebp+var_1C]
		mov	edx, [eax+38h]
		test	edx, edx
		jle	loc_FEEA0
		mov	ebx, [eax+2Ch]
		mov	eax, [ebx]
		test	byte ptr [eax+3Ah], 1
		jnz	short loc_FF047
		mov	[ebp+var_1C], ecx
		xor	eax, eax
		mov	ecx, edx
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_FF030:				; CODE XREF: SendTable_Init(SendTable **,int)+1D2j
		add	eax, 1
		cmp	eax, ecx
		jz	loc_FEEA0
		mov	edx, [ebx+eax*4]
		test	byte ptr [edx+3Ah], 1
		jz	short loc_FF030
		mov	ecx, [ebp+var_1C]

loc_FF047:				; CODE XREF: SendTable_Init(SendTable **,int)+1ADj
		or	byte ptr [ecx+10h], 4
		jmp	loc_FEEA0
; ---------------------------------------------------------------------------

loc_FF050:				; CODE XREF: SendTable_Init(SendTable **,int)+146j
		cmp	dword ptr [ebx+20h], 1
		jz	loc_FEFC6
		mov	eax, [ebx+30h]
		mov	[esp+8], eax
		mov	eax, [ecx+8]
		mov	[ebp+var_28], ecx
		mov	dword ptr [esp], offset	aPropSSHasAnInv	; "Prop	%s/%s has an invalid element count"...
		mov	[esp+4], eax
		call	Error
		mov	ecx, [ebp+var_28]
		jmp	loc_FEFC6
; ---------------------------------------------------------------------------
		align 10h

loc_FF080:				; CODE XREF: SendTable_Init(SendTable **,int)+150j
		mov	eax, [eax+30h]
		mov	[esp+10h], edx
		mov	[esp+0Ch], esi
		mov	[esp+14h], eax
		mov	eax, [ebx+30h]
		mov	[esp+8], eax
		mov	eax, [ecx+8]
		mov	[ebp+var_28], ecx
		mov	dword ptr [esp], offset	aInvalidPropert	; "Invalid property: %s/%s (array of datat"...
		mov	[esp+4], eax
		call	Error
		mov	ecx, [ebp+var_28]
		jmp	loc_FEFC6
; ---------------------------------------------------------------------------
		align 8

loc_FF0B8:				; CODE XREF: SendTable_Init(SendTable **,int)+13j
		mov	dword ptr [esp], offset	aSendtable_init	; "SendTable_Init: called twice."
		call	Error
		jmp	loc_FEE89
; ---------------------------------------------------------------------------

loc_FF0C9:				; CODE XREF: SendTable_Init(SendTable **,int)+1Ej
		mov	eax, [ebp+arg_4]
		mov	dword ptr [esp], offset	g_SendTables
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEE8SetCountEi ; CUtlVector<SendTable *,CUtlMemory<SendTable	*,int>>::SetCount(int)
		jmp	loc_FEF33
_Z14SendTable_InitPP9SendTablei	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	eax, [ebp-1Ch]
		mov	[esp], eax
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPropCullStack::RecurseAndCallProxies(CSendNode *, unsigned char *)
_ZN14CPropCullStack21RecurseAndCallProxiesEP9CSendNodePh proc near
					; DATA XREF: .rodata:`vtable for'CPropCullStacko

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, [ebp+arg_4]
		mov	ebx, [ebp+arg_0]
		movzx	eax, word ptr [edx+22h]
		mov	edx, [ebp+arg_8]
		mov	[ebx+eax*4+8], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+0Ch]
		test	ecx, ecx
		jle	loc_FF22A
		xor	edi, edi
		lea	esi, [esi+0]

loc_FF130:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+124j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	edx, [ebp+arg_8]
		mov	esi, [eax+edi*4]
		xor	eax, eax
		test	edx, edx
		jz	loc_FF20C
		movzx	edx, word ptr [esi+20h]
		mov	al, 1
		cmp	dx, 0FFh
		jz	loc_FF20C
		mov	ecx, [ebx+120h]
		movzx	edx, dx
		shl	edx, 5
		shr	ecx, 5
		mov	[ebp+var_1C], ecx
		movzx	ecx, byte ptr [ebx+120h]
		shl	eax, cl
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_20]
		shl	eax, 2
		mov	[ebp+var_24], eax
		add	eax, [ebx+12Ch]
		test	[eax+edx], ecx
		mov	eax, [ebx+124h]
		setnz	byte ptr [ebp+var_1C]
		test	eax, eax
		jz	short loc_FF208
		add	eax, [ebp+var_24]
		test	[eax+edx], ecx
		setnz	dl
		cmp	byte ptr [ebp+var_1C], dl
		jz	short loc_FF208
		xor	eax, eax
		test	dl, dl
		jnz	short loc_FF20C
		cmp	word ptr [esi+1Eh], 0
		jz	short loc_FF20C
		xor	edx, edx
		mov	eax, [ebx+4144h]
		mov	[ebp+var_20], edi
		mov	edi, esi
		mov	esi, ebx
		mov	ebx, edx
		jmp	short loc_FF1E9
; ---------------------------------------------------------------------------
		align 4

loc_FF1C8:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+EEj
		movzx	edx, word ptr [edi+1Ch]
		add	edx, ebx
		mov	[esi+eax*4+140h], edx

loc_FF1D5:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+102j
		add	eax, 1
		add	ebx, 1
		mov	[esi+4144h], eax
		movzx	edx, word ptr [edi+1Eh]
		cmp	ebx, edx
		jge	short loc_FF238

loc_FF1E9:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+C3j
		cmp	eax, 1000h
		jbe	short loc_FF1C8
		mov	dword ptr [esp], offset	aCpropcullsta_0	; "CPropCullStack::CallPropProxy - overflo"...
		call	Error
		mov	eax, [esi+4144h]
		jmp	short loc_FF1D5
; ---------------------------------------------------------------------------
		align 8

loc_FF208:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+95j
					; CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+A3j
		movzx	eax, byte ptr [ebp+var_1C]

loc_FF20C:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+3Fj
					; CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+50j ...
		mov	edx, [ebx]
		mov	[esp+8], eax
		add	edi, 1
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [edx]
		mov	eax, [ebp+arg_4]
		cmp	edi, [eax+0Ch]
		jl	loc_FF130

loc_FF22A:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+22j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FF238:				; CODE XREF: CPropCullStack::RecurseAndCallProxies(CSendNode *,uchar *)+E7j
		mov	ebx, esi
		xor	eax, eax
		mov	esi, edi
		mov	edi, [ebp+var_20]
		jmp	short loc_FF20C
_ZN14CPropCullStack21RecurseAndCallProxiesEP9CSendNodePh endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CServerDTITimer::~CServerDTITimer()
_ZN15CServerDTITimerD2Ev proc near	; CODE XREF: .text:000FD38Ap
					; SendTable_CalcDelta(SendTable	 const*,void  const*,int,void  const*,int,int *,int,int)+9A5p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		cmp	ds:g_bServerDTIEnabled,	0
		mov	ecx, [ebp+arg_0]
		jz	short loc_FF28D
		mov	ebx, [ecx]
		test	ebx, ebx
		jz	short loc_FF28D
		rdtsc
		sub	eax, [ecx+8]
		sbb	edx, [ecx+0Ch]
		mov	[ecx+8], eax
		lea	eax, [ecx+8]
		mov	[ecx+0Ch], edx
		mov	[esp+8], eax
		mov	eax, [ecx+4]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z20_ServerDTI_HookTimerPK9SendTable18ServerDTITimerTypeRK11CCycleCount	; _ServerDTI_HookTimer(SendTable  const*,ServerDTITimerType,CCycleCount	 const&)

loc_FF28D:				; CODE XREF: CServerDTITimer::~CServerDTITimer()+11j
					; CServerDTITimer::~CServerDTITimer()+17j
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN15CServerDTITimerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<SendTable *, CUtlMemory<SendTable *, int>>::~CUtlVector()
_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEED2Ev proc	near
					; DATA XREF: _GLOBAL__sub_I_g_SendTables+52o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	dword ptr [ebx+0Ch], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIP9SendTableiE5PurgeEv ;	CUtlMemory<SendTable *,int>::Purge(void)
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZN10CUtlMemoryIP9SendTableiE5PurgeEv ;	CUtlMemory<SendTable *,int>::Purge(void)
_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEED2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<SendTable *, CUtlMemory<SendTable *, int>>::SetCount(int)
_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEE8SetCountEi proc near
					; CODE XREF: SendTable_Init(SendTable **,int)+A6p
					; SendTable_Init(SendTable **,int)+267p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	esi, esi
		mov	dword ptr [ebx+0Ch], 0
		jz	short loc_FF2FF
		mov	eax, [ebx+4]
		cmp	esi, eax
		jg	short loc_FF310
		mov	eax, [ebx]
		mov	[ebx+0Ch], esi
		mov	[ebx+10h], eax

loc_FF2FF:				; CODE XREF: CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::SetCount(int)+1Ej
					; CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::SetCount(int)+6Ej ...
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FF310:				; CODE XREF: CUtlVector<SendTable *,CUtlMemory<SendTable *,int>>::SetCount(int)+25j
		mov	edx, esi
		mov	[esp], ebx
		sub	edx, eax
		mov	[esp+4], edx
		call	_ZN10CUtlMemoryIP9SendTableiE4GrowEi ; CUtlMemory<SendTable *,int>::Grow(int)
		mov	edx, [ebx+0Ch]
		test	edx, edx
		setnle	cl
		test	esi, esi
		setnle	al
		mov	edi, eax
		lea	eax, [esi+edx]
		mov	[ebx+0Ch], eax
		mov	eax, [ebx]
		mov	[ebx+10h], eax
		mov	ebx, edi
		test	bl, bl
		jz	short loc_FF2FF
		test	cl, cl
		jz	short loc_FF2FF
		mov	[esp+4], eax	; src
		lea	eax, [eax+esi*4]
		shl	edx, 2
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CUtlVectorIP9SendTable10CUtlMemoryIS1_iEE8SetCountEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDatatableStack::CDatatableStack(CSendTablePrecalc *,	unsigned char *, int)
_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi proc near
					; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+2Cp
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+89p	...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	dword ptr [eax], (offset _ZTV15CDatatableStack+8)
		mov	[eax+4], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [eax+10Ch], 0
		mov	dword ptr [eax+110h], 0
		mov	byte ptr [eax+118h], 0
		mov	[eax+108h], edx
		mov	edx, [ebp+arg_C]
		mov	[eax+114h], edx
		pop	ebp
		retn
_ZN15CDatatableStackC2EP17CSendTablePrecalcPhi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CDatatableStack::Init(bool)
_ZN15CDatatableStack4InitEb proc near	; CODE XREF: BuildPropOffsetToIndexMap(CSendTablePrecalc *,CStandardSendProxies	 const*)+52p
					; LocalTransfer_TransferEntity(CBaseEdict  const*,SendTable  const*,void  const*,RecvTable *,void *,bool,bool,int)+B9p	...

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		cmp	[ebp+arg_4], 0
		mov	ebx, [ebp+arg_0]
		jnz	short loc_FF400
		mov	edx, [ebx+108h]
		mov	eax, [ebx]
		mov	[esp+8], edx
		mov	edx, [ebx+4]
		mov	[esp], ebx
		add	edx, 68h
		mov	[esp+4], edx
		call	dword ptr [eax]
		mov	byte ptr [ebx+118h], 1
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FF400:				; CODE XREF: CDatatableStack::Init(bool)+Ej
		mov	edx, [ebx+4]
		lea	eax, [ebx+8]
		mov	edx, [edx+24h]
		mov	dword ptr [esp+4], 0FFh	; c
		mov	[esp], eax	; s
		shl	edx, 2
		mov	[esp+8], edx	; n
		call	memset
		mov	byte ptr [ebx+118h], 1
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN15CDatatableStack4InitEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::GetRecipientCount(void)const
_ZNK22CEngineRecipientFilter17GetRecipientCountEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineRecipientFiltero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+14h]
		retn
_ZNK22CEngineRecipientFilter17GetRecipientCountEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::GetRecipientIndex(int)const
_ZNK22CEngineRecipientFilter17GetRecipientIndexEi proc near
					; DATA XREF: .rodata:`vtable for'CEngineRecipientFiltero

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, 0FFFFFFFFh
		test	ebx, ebx
		js	short loc_FF46A
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+10h]
		cmp	ebx, eax
		jl	short loc_FF480

loc_FF46A:				; CODE XREF: CEngineRecipientFilter::GetRecipientIndex(int)+1Cj
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FF480:				; CODE XREF: CEngineRecipientFilter::GetRecipientIndex(int)+28j
		mov	eax, [esi+8]
		mov	esi, [ebp+var_8]
		mov	edi, [eax+ebx*4]
		mov	ebx, [ebp+var_C]
		mov	eax, edi
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZNK22CEngineRecipientFilter17GetRecipientIndexEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::CEngineRecipientFilter(void)
_ZN22CEngineRecipientFilterC2Ev	proc near
					; CODE XREF: CEngineSoundServer::StopSound(int,int,char	 const*)+11p
					; CVEngineServer::PlaybackTempEntity(IRecipientFilter &,float,void  const*,SendTable  const*,int)+272p	...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV22CEngineRecipientFilter+8)
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	dword ptr [eax+14h], 0
		mov	dword ptr [eax+18h], 0
		mov	byte ptr [eax+5], 0
		mov	byte ptr [eax+4], 0
		pop	ebp
		retn
_ZN22CEngineRecipientFilterC2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::Reset(void)
_ZN22CEngineRecipientFilter5ResetEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+5], 0
		mov	byte ptr [eax+4], 0
		mov	dword ptr [eax+14h], 0
		pop	ebp
		retn
_ZN22CEngineRecipientFilter5ResetEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::MakeReliable(void)
_ZN22CEngineRecipientFilter12MakeReliableEv proc near
					; CODE XREF: CEngineSoundServer::StopSound(int,int,char	 const*)+21p
					; CVEngineServer::EmitAmbientSound(int,Vector  const&,char  const*,float,soundlevel_t,int,int,float)+268p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+5], 1
		pop	ebp
		retn
_ZN22CEngineRecipientFilter12MakeReliableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::MakeInitMessage(void)
_ZN22CEngineRecipientFilter15MakeInitMessageEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+4], 1
		pop	ebp
		retn
_ZN22CEngineRecipientFilter15MakeInitMessageEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::RemoveRecipient(int)
_ZN22CEngineRecipientFilter15RemoveRecipientEi proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	edx, [ebx+14h]
		test	edx, edx
		jle	short loc_FF54C
		mov	ecx, [ebx+8]
		xor	eax, eax
		cmp	[ecx], esi
		jnz	short loc_FF545
		jmp	short loc_FF55D
; ---------------------------------------------------------------------------

loc_FF540:				; CODE XREF: CEngineRecipientFilter::RemoveRecipient(int)+2Aj
		cmp	[ecx+eax*4], esi
		jz	short loc_FF558

loc_FF545:				; CODE XREF: CEngineRecipientFilter::RemoveRecipient(int)+1Cj
		add	eax, 1
		cmp	eax, edx
		jnz	short loc_FF540

loc_FF54C:				; CODE XREF: CEngineRecipientFilter::RemoveRecipient(int)+13j
					; CEngineRecipientFilter::RemoveRecipient(int)+3Bj
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FF558:				; CODE XREF: CEngineRecipientFilter::RemoveRecipient(int)+23j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_FF54C

loc_FF55D:				; CODE XREF: CEngineRecipientFilter::RemoveRecipient(int)+1Ej
		mov	esi, edx
		sub	esi, eax
		sub	esi, 1
		test	esi, esi
		jle	short loc_FF585
		lea	edx, [ecx+eax*4+4]
		shl	esi, 2
		lea	eax, [ecx+eax*4]
		mov	[esp+4], edx	; src
		mov	[esp+8], esi	; n
		mov	[esp], eax	; dest
		call	memmove
		mov	edx, [ebx+14h]

loc_FF585:				; CODE XREF: CEngineRecipientFilter::RemoveRecipient(int)+46j
		sub	edx, 1
		mov	[ebx+14h], edx
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN22CEngineRecipientFilter15RemoveRecipientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::IncludesPlayer(int)
_ZN22CEngineRecipientFilter14IncludesPlayerEi proc near
					; CODE XREF: CBaseClient::IgnoreTempEntity(CEventInfo *)+21p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 1Ch
		mov	ebx, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		jmp	short loc_FF5CB
; ---------------------------------------------------------------------------
		align 8

loc_FF5B8:				; CODE XREF: CEngineRecipientFilter::IncludesPlayer(int)+35j
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		cmp	eax, edi
		jz	short loc_FF5E8
		add	esi, 1

loc_FF5CB:				; CODE XREF: CEngineRecipientFilter::IncludesPlayer(int)+11j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		cmp	esi, eax
		jl	short loc_FF5B8
		add	esp, 1Ch
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FF5E8:				; CODE XREF: CEngineRecipientFilter::IncludesPlayer(int)+26j
		add	esp, 1Ch
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN22CEngineRecipientFilter14IncludesPlayerEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::AddRecipient(int)
_ZN22CEngineRecipientFilter12AddRecipientEi proc near
					; CODE XREF: CEngineRecipientFilter::AddPlayersFromFilter(IRecipientFilter  const*)+2Ep
					; CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255> &)+8Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+14h]
		test	edx, edx
		jle	short loc_FF62C
		mov	ecx, [esi+8]
		xor	eax, eax
		mov	ebx, [ebp+arg_4]
		cmp	[ecx], ebx
		jnz	short loc_FF625
		jmp	short loc_FF642
; ---------------------------------------------------------------------------

loc_FF620:				; CODE XREF: CEngineRecipientFilter::AddRecipient(int)+2Aj
		cmp	[ecx+eax*4], ebx
		jz	short loc_FF650

loc_FF625:				; CODE XREF: CEngineRecipientFilter::AddRecipient(int)+1Cj
		add	eax, 1
		cmp	eax, edx
		jnz	short loc_FF620

loc_FF62C:				; CODE XREF: CEngineRecipientFilter::AddRecipient(int)+10j
					; CEngineRecipientFilter::AddRecipient(int)+53j
		lea	eax, [ebp+arg_4]
		add	esi, 8
		mov	[esp+4], edx
		mov	[esp+8], eax
		mov	[esp], esi
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE12InsertBeforeEiRKi ;	CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int  const&)

loc_FF642:				; CODE XREF: CEngineRecipientFilter::AddRecipient(int)+1Ej
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FF650:				; CODE XREF: CEngineRecipientFilter::AddRecipient(int)+23j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_FF62C
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN22CEngineRecipientFilter12AddRecipientEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::AddPlayersFromFilter(IRecipientFilter	 const*)
_ZN22CEngineRecipientFilter20AddPlayersFromFilterEPK16IRecipientFilter proc near
					; CODE XREF: CVEngineServer::PlaybackTempEntity(IRecipientFilter &,float,void  const*,SendTable	 const*,int)+2B6p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_FF693
; ---------------------------------------------------------------------------
		align 8

loc_FF678:				; CODE XREF: CEngineRecipientFilter::AddPlayersFromFilter(IRecipientFilter  const*)+3Dj
		mov	eax, [ebx]
		mov	[esp+4], esi
		add	esi, 1
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	[esp], edi
		mov	[esp+4], eax
		call	_ZN22CEngineRecipientFilter12AddRecipientEi ; CEngineRecipientFilter::AddRecipient(int)

loc_FF693:				; CODE XREF: CEngineRecipientFilter::AddPlayersFromFilter(IRecipientFilter  const*)+11j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		cmp	esi, eax
		jl	short loc_FF678
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN22CEngineRecipientFilter20AddPlayersFromFilterEPK16IRecipientFilter endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255> &)
_ZN22CEngineRecipientFilter21AddPlayersFromBitMaskER7CBitVecILi255EE proc near
					; CODE XREF: CEngineRecipientFilter::AddRecipientsByPAS(Vector	const&)+49p
					; CEngineRecipientFilter::AddRecipientsByPVS(Vector  const&)+49p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	edx, dword ptr ds:sv+128h
		mov	esi, [ebp+arg_4]
		test	edx, edx
		jle	loc_FF758
		mov	ebx, 1
		xor	ecx, ecx
		mov	edi, 1
		jmp	short loc_FF6F0
; ---------------------------------------------------------------------------
		align 10h

loc_FF6E0:				; CODE XREF: CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255>	&)+4Cj
		mov	eax, ebx

loc_FF6E2:				; CODE XREF: CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255>	&)+78j
		add	ecx, 1
		add	ebx, 1
		cmp	dword ptr ds:sv+128h, eax
		jle	short loc_FF758

loc_FF6F0:				; CODE XREF: CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255>	&)+26j
					; CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255> &)+A1j
		mov	edx, edi
		mov	eax, ecx
		shl	edx, cl
		sar	eax, 5
		test	[esi+eax*4], edx
		jz	short loc_FF6E0
		mov	eax, dword ptr ds:sv+11Ch
		mov	edx, [eax+ecx*4]
		lea	eax, [edx+4]
		test	edx, edx
		mov	edx, 0
		cmovz	eax, edx
		mov	edx, [eax]
		mov	[ebp+var_1C], ecx
		mov	[esp], eax
		call	dword ptr [edx+88h]
		mov	ecx, [ebp+var_1C]
		test	al, al
		mov	eax, ebx
		jz	short loc_FF6E2
		mov	edx, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[ebp+var_20], ebx
		add	ebx, 1
		mov	[ebp+var_1C], ecx
		mov	[esp], edx
		call	_ZN22CEngineRecipientFilter12AddRecipientEi ; CEngineRecipientFilter::AddRecipient(int)
		mov	ecx, [ebp+var_1C]
		mov	eax, [ebp+var_20]
		add	ecx, 1
		cmp	dword ptr ds:sv+128h, eax
		jg	short loc_FF6F0
		nop
		lea	esi, [esi+0]

loc_FF758:				; CODE XREF: CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255>	&)+14j
					; CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255> &)+3Ej
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN22CEngineRecipientFilter21AddPlayersFromBitMaskER7CBitVecILi255EE endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::AddAllPlayers(void)
_ZN22CEngineRecipientFilter13AddAllPlayersEv proc near
					; CODE XREF: CEngineRecipientFilter::AddRecipientsByPAS(Vector	const&)+5Bp
					; CEngineRecipientFilter::AddRecipientsByPVS(Vector  const&)+5Bp ...

var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+14h], 0
		mov	ecx, dword ptr ds:sv+128h
		test	ecx, ecx
		jle	short loc_FF7EE
		add	edx, 8
		mov	ebx, 1
		xor	esi, esi
		mov	[ebp+var_2C], edx
		jmp	short loc_FF79E
; ---------------------------------------------------------------------------
		align 10h

loc_FF790:				; CODE XREF: CEngineRecipientFilter::AddAllPlayers(void)+5Fj
		add	esi, 4
		add	ebx, 1
		cmp	dword ptr ds:sv+128h, edi
		jle	short loc_FF7EE

loc_FF79E:				; CODE XREF: CEngineRecipientFilter::AddAllPlayers(void)+2Aj
					; CEngineRecipientFilter::AddAllPlayers(void)+8Cj
		mov	eax, dword ptr ds:sv+11Ch
		mov	edi, ebx
		mov	edx, [eax+esi]
		xor	eax, eax
		lea	ecx, [edx+4]
		test	edx, edx
		cmovnz	eax, ecx
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+88h]
		test	al, al
		jz	short loc_FF790
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], ebx
		mov	[esp+8], eax
		add	esi, 4
		add	ebx, 1
		mov	eax, [edx+14h]
		mov	edx, [ebp+var_2C]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE12InsertBeforeEiRKi ;	CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(int,int  const&)
		cmp	dword ptr ds:sv+128h, edi
		jg	short loc_FF79E

loc_FF7EE:				; CODE XREF: CEngineRecipientFilter::AddAllPlayers(void)+1Bj
					; CEngineRecipientFilter::AddAllPlayers(void)+3Cj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN22CEngineRecipientFilter13AddAllPlayersEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::AddRecipientsByPAS(Vector  const&)
_ZN22CEngineRecipientFilter18AddRecipientsByPASERK6Vector proc near

var_28		= dword	ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		cmp	dword ptr ds:sv+110h, 1
		mov	ebx, [ebp+arg_0]
		jz	short loc_FF858

loc_FF815:				; CODE XREF: CEngineRecipientFilter::AddRecipientsByPAS(Vector	const&)+23j
		mov	[ebp+eax+var_28], 0
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_FF815
		lea	eax, [ebp+var_28]
		mov	dword ptr [esp], 1
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		call	_Z31SV_DetermineMulticastRecipientsbRK6VectorR7CBitVecILi255EE ; SV_DetermineMulticastRecipients(bool,Vector  const&,CBitVec<255> &)
		lea	eax, [ebp+var_28]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN22CEngineRecipientFilter21AddPlayersFromBitMaskER7CBitVecILi255EE ; CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255> &)
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FF858:				; CODE XREF: CEngineRecipientFilter::AddRecipientsByPAS(Vector	const&)+13j
		mov	[esp], ebx
		call	_ZN22CEngineRecipientFilter13AddAllPlayersEv ; CEngineRecipientFilter::AddAllPlayers(void)
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_ZN22CEngineRecipientFilter18AddRecipientsByPASERK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::AddRecipientsByPVS(Vector  const&)
_ZN22CEngineRecipientFilter18AddRecipientsByPVSERK6Vector proc near

var_28		= dword	ptr -28h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		cmp	dword ptr ds:sv+110h, 1
		mov	ebx, [ebp+arg_0]
		jz	short loc_FF8C8

loc_FF885:				; CODE XREF: CEngineRecipientFilter::AddRecipientsByPVS(Vector	const&)+23j
		mov	[ebp+eax+var_28], 0
		add	eax, 4
		cmp	eax, 20h
		jb	short loc_FF885
		lea	eax, [ebp+var_28]
		mov	dword ptr [esp], 0
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+4], eax
		call	_Z31SV_DetermineMulticastRecipientsbRK6VectorR7CBitVecILi255EE ; SV_DetermineMulticastRecipients(bool,Vector  const&,CBitVec<255> &)
		lea	eax, [ebp+var_28]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN22CEngineRecipientFilter21AddPlayersFromBitMaskER7CBitVecILi255EE ; CEngineRecipientFilter::AddPlayersFromBitMask(CBitVec<255> &)
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_FF8C8:				; CODE XREF: CEngineRecipientFilter::AddRecipientsByPVS(Vector	const&)+13j
		mov	[esp], ebx
		call	_ZN22CEngineRecipientFilter13AddAllPlayersEv ; CEngineRecipientFilter::AddAllPlayers(void)
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
_ZN22CEngineRecipientFilter18AddRecipientsByPVSERK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::IsReliable(void)const
_ZNK22CEngineRecipientFilter10IsReliableEv proc	near
					; DATA XREF: .rodata:`vtable for'CEngineRecipientFiltero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+5]
		retn
_ZNK22CEngineRecipientFilter10IsReliableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::IsInitMessage(void)const
_ZNK22CEngineRecipientFilter13IsInitMessageEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineRecipientFiltero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		movzx	eax, byte ptr [eax+4]
		retn
_ZNK22CEngineRecipientFilter13IsInitMessageEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::~CEngineRecipientFilter()
_ZN22CEngineRecipientFilterD2Ev	proc near
					; DATA XREF: .rodata:`vtable for'CEngineRecipientFiltero

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+8]
		mov	dword ptr [ebx], (offset _ZTV22CEngineRecipientFilter+8)
		mov	dword ptr [ebx+14h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebx+8]
		mov	[ebx+18h], eax
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV16IRecipientFilter+8)
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN22CEngineRecipientFilterD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineRecipientFilter::~CEngineRecipientFilter()
_ZN22CEngineRecipientFilterD0Ev	proc near
					; DATA XREF: .rodata:`vtable for'CEngineRecipientFiltero

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_4], esi
		lea	esi, [ebx+8]
		mov	dword ptr [ebx], (offset _ZTV22CEngineRecipientFilter+8)
		mov	dword ptr [ebx+14h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebx+8]
		mov	[ebx+18h], eax
		mov	[esp], esi	; void *
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	dword ptr [ebx], (offset _ZTV16IRecipientFilter+8)
		mov	esi, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN22CEngineRecipientFilterD0Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; __CreateCEngineSoundServerIEngineSound_interface(void)
_ZL48__CreateCEngineSoundServerIEngineSound_interfacev proc near
					; DATA XREF: _GLOBAL__sub_I__Z17EngineSoundServerv+7Do
		push	ebp
		mov	eax, offset _ZL19s_EngineSoundServer ; s_EngineSoundServer
		mov	ebp, esp
		pop	ebp
		retn
_ZL48__CreateCEngineSoundServerIEngineSound_interfacev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::~CEngineSoundServer()
_ZN18CEngineSoundServerD2Ev proc near	; DATA XREF: _GLOBAL__sub_I__Z17EngineSoundServerv+41o
					; .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18CEngineSoundServer+8)
		pop	ebp
		retn
_ZN18CEngineSoundServerD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::StopAllSounds(bool)
_ZN18CEngineSoundServer13StopAllSoundsEb proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN18CEngineSoundServer13StopAllSoundsEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::EmitAmbientSound(char  const*, float, int, int, float)
_ZN18CEngineSoundServer16EmitAmbientSoundEPKcfiif proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN18CEngineSoundServer16EmitAmbientSoundEPKcfiif endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::~CEngineSoundServer()
_ZN18CEngineSoundServerD0Ev proc near	; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18CEngineSoundServer+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN18CEngineSoundServerD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::GetDistGainFromSoundLevel(soundlevel_t, float)
_ZN18CEngineSoundServer25GetDistGainFromSoundLevelE12soundlevel_tf proc	near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		pop	ebp
		jmp	_Z23S_GetGainFromSoundLevel12soundlevel_tf ; S_GetGainFromSoundLevel(soundlevel_t,float)
_ZN18CEngineSoundServer25GetDistGainFromSoundLevelE12soundlevel_tf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::GetSoundDuration(char  const*)
_ZN18CEngineSoundServer16GetSoundDurationEPKc proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_Z21Host_GetSoundDurationPKc ; Host_GetSoundDuration(char  const*)
_ZN18CEngineSoundServer16GetSoundDurationEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineSoundServer__PrecacheSound(int, char arg, char)
_ZN18CEngineSoundServer13PrecacheSoundEPKcbb proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

var_C		= byte ptr -0Ch
arg		= byte ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	ebx, dword ptr [ebp+arg]
		movzx	ecx, [ebp+arg_8]
		test	ebx, ebx
		jz	short loc_FFAA0
		mov	edx, ebx
		jmp	short loc_FFA83
; ---------------------------------------------------------------------------
		align 10h

loc_FFA50:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+58j
		cmp	al, 2Ah
		jz	short loc_FFA8A
		cmp	al, 23h
		jz	short loc_FFA8A
		cmp	al, 21h
		jz	short loc_FFA8A
		cmp	al, 40h
		db	66h
		nop
		jz	short loc_FFA80
		cmp	al, 3Ch
		jz	short loc_FFA8A
		cmp	al, 3Eh
		jz	short loc_FFA8A
		cmp	al, 29h
		lea	esi, [esi+0]
		jz	short loc_FFA8A
		cmp	al, 5Eh
		jz	short loc_FFA8A
		cmp	al, 7Dh
		jnz	short loc_FFAA0
		lea	esi, [esi+0]

loc_FFA80:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+30j
					; CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+5Cj
		add	edx, 1

loc_FFA83:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+14j
		movzx	eax, byte ptr [edx]
		cmp	al, 3Fh
		jnz	short loc_FFA50

loc_FFA8A:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+22j
					; CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+26j ...
		cmp	al, 21h
		jnz	short loc_FFA80
		mov	edx, 1

loc_FFA93:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+8Bj
		add	esp, 24h
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FFAA0:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+10j
					; CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+48j
		cmp	byte ptr [ebx],	20h
		jle	short loc_FFAE0

loc_FFAA5:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+C7j
		movzx	ecx, cl
		mov	[esp], ebx	; arg
		mov	[esp+4], ecx	; char
		call	_Z17SV_FindOrAddSoundPKcb ; SV_FindOrAddSound(char  const*,bool)
		mov	edx, 1
		test	eax, eax
		jns	short loc_FFA93
		mov	[esp+4], ebx	; arg
		mov	dword ptr [esp], offset	aCenginesoundse	; "CEngineSoundServer::PrecacheSound: '%s'"...
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)
		add	esp, 24h
		xor	edx, edx
		pop	ebx
		mov	eax, edx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FFAE0:				; CODE XREF: CEngineSoundServer::PrecacheSound(char  const*,bool,bool)+73j
		mov	[ebp+var_C], cl
		mov	[esp+4], ebx	; arg
		mov	dword ptr [esp], offset	aCenginesound_0	; "CEngineSoundServer::PrecacheSound:  Bad"...
		call	_Z10Host_ErrorPKcz ; Host_Error(char  const*,...)
		movzx	ecx, [ebp+var_C]
		jmp	short loc_FFAA5
_ZN18CEngineSoundServer13PrecacheSoundEPKcbb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::IsSoundPrecached(char  const*)
_ZN18CEngineSoundServer16IsSoundPrecachedEPKc proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	ecx, [ebp+arg_4]
		test	ecx, ecx
		jz	short loc_FFB68
		mov	edx, ecx
		jmp	short loc_FFB53
; ---------------------------------------------------------------------------
		align 8

loc_FFB18:				; CODE XREF: CEngineSoundServer::IsSoundPrecached(char	const*)+58j
		cmp	al, 2Ah
		jz	short loc_FFB5A
		cmp	al, 23h
		db	66h
		nop
		jz	short loc_FFB5A
		cmp	al, 21h
		jz	short loc_FFB5A
		cmp	al, 40h
		jz	short loc_FFB50
		cmp	al, 3Ch
		lea	esi, [esi+0]
		jz	short loc_FFB5A
		cmp	al, 3Eh
		jz	short loc_FFB5A
		cmp	al, 29h
		jz	short loc_FFB5A
		cmp	al, 5Eh
		lea	esi, [esi+0]
		jz	short loc_FFB5A
		cmp	al, 7Dh
		jnz	short loc_FFB68
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_FFB50:				; CODE XREF: CEngineSoundServer::IsSoundPrecached(char	const*)+28j
					; CEngineSoundServer::IsSoundPrecached(char  const*)+5Cj
		add	edx, 1

loc_FFB53:				; CODE XREF: CEngineSoundServer::IsSoundPrecached(char	const*)+Fj
		movzx	eax, byte ptr [edx]
		cmp	al, 3Fh
		jnz	short loc_FFB18

loc_FFB5A:				; CODE XREF: CEngineSoundServer::IsSoundPrecached(char	const*)+1Aj
					; CEngineSoundServer::IsSoundPrecached(char  const*)+20j ...
		cmp	al, 21h
		jnz	short loc_FFB50
		leave
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		align 4

loc_FFB68:				; CODE XREF: CEngineSoundServer::IsSoundPrecached(char	const*)+Bj
					; CEngineSoundServer::IsSoundPrecached(char  const*)+44j
		mov	[esp], ecx
		call	_Z13SV_SoundIndexPKc ; SV_SoundIndex(char  const*)
		leave
		cmp	eax, 0FFFFFFFFh
		setnz	al
		retn
_ZN18CEngineSoundServer16IsSoundPrecachedEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::PrefetchSound(char  const*)
_ZN18CEngineSoundServer13PrefetchSoundEPKc proc	near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_C		= word ptr -0Ch
var_A		= word ptr -0Ah
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	ecx, [ebp+arg_4]
		test	ecx, ecx
		jz	short loc_FFBE0
		mov	edx, ecx
		jmp	short loc_FFBD3
; ---------------------------------------------------------------------------
		align 8

loc_FFB98:				; CODE XREF: CEngineSoundServer::PrefetchSound(char  const*)+58j
		cmp	al, 2Ah
		jz	short loc_FFBDA
		cmp	al, 23h
		db	66h
		nop
		jz	short loc_FFBDA
		cmp	al, 21h
		jz	short loc_FFBDA
		cmp	al, 40h
		jz	short loc_FFBD0
		cmp	al, 3Ch
		lea	esi, [esi+0]
		jz	short loc_FFBDA
		cmp	al, 3Eh
		jz	short loc_FFBDA
		cmp	al, 29h
		jz	short loc_FFBDA
		cmp	al, 5Eh
		lea	esi, [esi+0]
		jz	short loc_FFBDA
		cmp	al, 7Dh
		jnz	short loc_FFBE0
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_FFBD0:				; CODE XREF: CEngineSoundServer::PrefetchSound(char  const*)+28j
					; CEngineSoundServer::PrefetchSound(char  const*)+5Cj
		add	edx, 1

loc_FFBD3:				; CODE XREF: CEngineSoundServer::PrefetchSound(char  const*)+Fj
		movzx	eax, byte ptr [edx]
		cmp	al, 3Fh
		jnz	short loc_FFB98

loc_FFBDA:				; CODE XREF: CEngineSoundServer::PrefetchSound(char  const*)+1Aj
					; CEngineSoundServer::PrefetchSound(char  const*)+20j ...
		cmp	al, 21h
		jnz	short loc_FFBD0

locret_FFBDE:				; CODE XREF: CEngineSoundServer::PrefetchSound(char  const*)+6Bj
		leave
		retn
; ---------------------------------------------------------------------------

loc_FFBE0:				; CODE XREF: CEngineSoundServer::PrefetchSound(char  const*)+Bj
					; CEngineSoundServer::PrefetchSound(char  const*)+44j
		mov	[esp], ecx
		call	_Z13SV_SoundIndexPKc ; SV_SoundIndex(char  const*)
		cmp	eax, 0FFFFFFFFh
		jz	short locret_FFBDE
		mov	[ebp+var_A], ax
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_18], 1
		mov	[ebp+var_14], 0
		mov	[ebp+var_1C], (offset _ZTV12SVC_Prefetch+8)
		mov	[ebp+var_C], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 1
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	sv
		call	_ZN11CBaseServer16BroadcastMessageER11INetMessagebb ; CBaseServer::BroadcastMessage(INetMessage	&,bool,bool)
		leave
		retn
_ZN18CEngineSoundServer13PrefetchSoundEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineSoundServer__EmitSound(int, int, int, int,	int, int, float, int, int, int,	int, int, int, char, int, int)
_ZN18CEngineSoundServer9EmitSoundER16IRecipientFilteriiPKcffiiiPK6VectorS6_P10CUtlVectorIS4_10CUtlMemoryIS4_iEEbfi proc	near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_34		= byte ptr  3Ch
arg_38		= dword	ptr  40h
arg_3C		= dword	ptr  44h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		xor	ebx, ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_30], 0
		movzx	edi, [ebp+arg_34]
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_FFCD6
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCenginesound_1 ; "CEngineSoundServer::EmitSound"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN18CEngineSoundServer9EmitSoundER16IRecipientFilteriiPKcffiiiPK6VectorS6_P10CUtlVectorIS4_10CUtlMemoryIS4_iEEbfiE6tm_fmt	; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,float,int,int,int,Vector	const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>>	*,bool,float,int)::tm_fmt
		mov	dword ptr [esp+1Ch], 113h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_8 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	ebx, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_FFCD6:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+35j
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_FFCFF
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_34], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_34], eax
		jz	loc_FFE30

loc_FFCFF:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+B6j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,float,int,int,int,Vector	const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>>	*,bool,float,int)+249j
		mov	eax, [esi]
		fldz
		and	edi, 0FFh
		fld	[ebp+arg_18]
		mov	ecx, [eax+14h]
		xor	eax, eax
		fcomi	st, st(1)
		fstp	st(1)
		jz	short loc_FFD30
		fdivr	ds:flt_1F7AB4
		fadd	ds:flt_1F7AB8
		fstp	[ebp+var_38]
		cvttss2si eax, [ebp+var_38]
		jmp	short loc_FFD32
; ---------------------------------------------------------------------------
		align 10h

loc_FFD30:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+E5j
		fstp	st

loc_FFD32:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+FBj
		mov	edx, [ebp+arg_3C]
		mov	[esp+18h], eax
		mov	eax, [ebp+arg_14]
		mov	[esp+34h], edi
		mov	[esp], esi
		mov	[esp+3Ch], edx
		mov	edx, [ebp+arg_38]
		mov	[esp+14h], eax
		mov	eax, [ebp+arg_10]
		mov	[esp+38h], edx
		mov	edx, [ebp+arg_30]
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_C]
		mov	[esp+30h], edx
		mov	edx, [ebp+arg_2C]
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+2Ch], edx
		mov	edx, [ebp+arg_28]
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp+28h], edx
		mov	edx, [ebp+arg_24]
		mov	[esp+4], eax
		mov	[esp+24h], edx
		mov	edx, [ebp+arg_20]
		mov	[esp+20h], edx
		mov	edx, [ebp+arg_1C]
		mov	[esp+1Ch], edx
		call	ecx
		cmp	[ebp+var_19], 0
		jz	short loc_FFDC2
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_FFDB3
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		jz	short loc_FFDC2

loc_FFDB3:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+177j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jz	short loc_FFE00

loc_FFDC2:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+16Ej
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,float,int,int,int,Vector	const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>>	*,bool,float,int)+181j	...
		test	ebx, ebx
		jz	short loc_FFDF2
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_FFDF2:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+194j
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_FFE00:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+190j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_FFE80
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_FFE1E:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+255j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	short loc_FFDC2
; ---------------------------------------------------------------------------
		align 10h

loc_FFE30:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+C9j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCenginesound_1	; "CEngineSoundServer::EmitSound"
		jz	short loc_FFE6A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCenginesound_1 ; "CEngineSoundServer::EmitSound"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_FFE6A:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+20Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_FFCFF
; ---------------------------------------------------------------------------
		align 10h

loc_FFE80:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,float,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+1DFj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_FFE1E
_ZN18CEngineSoundServer9EmitSoundER16IRecipientFilteriiPKcffiiiPK6VectorS6_P10CUtlVectorIS4_10CUtlMemoryIS4_iEEbfi endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_FFE89:				; CODE XREF: .text:000FFECEj
		test	ebx, ebx
		jz	short loc_FFEB9
		mov	eax, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], ebx
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [ebx+54h]

loc_FFEB9:				; CODE XREF: .text:000FFE8Bj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	esi, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_FFE89

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; EngineSoundServer(void)
_Z17EngineSoundServerv proc near
		push	ebp
		mov	eax, offset _ZL19s_EngineSoundServer ; s_EngineSoundServer
		mov	ebp, esp
		pop	ebp
		retn
_Z17EngineSoundServerv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::CEngineSoundServer(void)
_ZN18CEngineSoundServerC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV18CEngineSoundServer+8)
		pop	ebp
		retn
_ZN18CEngineSoundServerC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineSoundServer__EmitSoundInternal(int, double, int, int, float, int, int, int, int, int, int,	int, int, int, int)
_ZN18CEngineSoundServer17EmitSoundInternalER16IRecipientFilteriiPKcf12soundlevel_tiiiPK6VectorS7_P10CUtlVectorIS5_10CUtlMemoryIS5_iEEbfi proc near
					; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+2EFp
					; CEngineSoundServer::EmitSentenceByIndex(IRecipientFilter &,int,int,int,float,soundlevel_t,int,int,int,Vector	const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>>	*,bool,float,int)+A5p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_38		= dword	ptr  40h
arg_3C		= dword	ptr  44h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_10]
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_8], esi
		mov	eax, dword ptr [ebp+arg_4]
		mov	[ebp+var_4], edi
		fld	[ebp+arg_14]
		mov	[ebp+var_24], ebx
		mov	ebx, [ebp+arg_24]
		fldz
		mov	[ebp+var_20], edx
		mov	edx, [ebp+arg_1C]
		fcomip	st, st(1)
		mov	[ebp+var_1C], eax
		mov	ecx, dword ptr [ebp+arg_4+4]
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_2C], ebx
		mov	ebx, [ebp+arg_28]
		mov	[ebp+var_28], edx
		mov	edi, [ebp+arg_30]
		mov	edx, [ebp+arg_20]
		mov	esi, [ebp+arg_3C]
		mov	[ebp+var_30], ebx
		mov	ebx, [ebp+arg_38]
		ja	short loc_FFF48
		fld1
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		jbe	short loc_FFF68

loc_FFF48:				; CODE XREF: CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+4Cj
		fstp	[ebp+arg_4]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_0], offset aEmitsoundVolum ; "EmitSound: volume out of	bounds = %f\n"
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	Warning
; ---------------------------------------------------------------------------
		align 8

loc_FFF68:				; CODE XREF: CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+56j
		cmp	eax, 1FFh
		ja	short loc_FFFE8
		cmp	edx, 0FFh
		ja	loc_100008
		test	ecx, ecx
		mov	[ebp+var_34], 0
		js	short loc_FFF98
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 2
		mov	[ebp+var_34], ecx
		mov	ecx, dword ptr ds:sv+1A8h
		add	[ebp+var_34], ecx

loc_FFF98:				; CODE XREF: CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+94j
		mov	[ebp+arg_28], ebx
		mov	ebx, [ebp+var_30]
		mov	ecx, [ebp+var_2C]
		mov	[ebp+arg_1C], edx
		mov	[ebp+arg_14], eax
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_24]
		mov	[ebp+arg_30], edi
		mov	[ebp+arg_24], ebx
		mov	ebx, [ebp+var_28]
		mov	[ebp+arg_20], ecx
		mov	ecx, [ebp+var_34]
		mov	[ebp+arg_2C], esi
		mov	edi, [ebp+var_4]
		fstp	[ebp+arg_10]
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_18], ebx
		mov	ebx, [ebp+var_1C]
		mov	[ebp+arg_C], eax
		mov	dword ptr [ebp+arg_4+4], edx
		mov	dword ptr [ebp+arg_4], ecx
		mov	[ebp+arg_0], ebx
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		jmp	_Z13SV_StartSoundR16IRecipientFilterP7edict_tiPKcf12soundlevel_tiiiPK6VectorfiP10CUtlVectorIS6_10CUtlMemoryIS6_iEE ; SV_StartSound(IRecipientFilter &,edict_t *,int,char  const*,float,soundlevel_t,int,int,int,Vector	const*,float,int,CUtlVector<Vector,CUtlMemory<Vector,int>> *)
; ---------------------------------------------------------------------------
		align 4

loc_FFFE8:				; CODE XREF: CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+7Dj
		fstp	st
		mov	dword ptr [ebp+arg_4], eax

loc_FFFED:				; DATA XREF: CStudioHdr::CActivityToSequenceMapping::Initialize(CStudioHdr*):loc_A5EFDo
					; CUtlRBTree<MatchingProp_t,ushort,bool	(*)(MatchingProp_t const&,MatchingProp_t const&),CUtlMemory<UtlRBTreeNode_t<MatchingProp_t,ushort>,ushort>>::RotateLeft(ushort)+23o ...
		mov	[ebp+arg_0], offset aEmitsoundSound ; "EmitSound: soundlevel out of bounds = %"...

loc_FFFF4:				; CODE XREF: CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+124j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp

loc_FFFFF:				; DATA XREF: SVC_GameEventList::WriteToBuffer(bf_write &)+15Do
					; SVC_PacketEntities::WriteToBuffer(bf_write &)+22Bo ...
		pop	ebp

loc_100000:				; DATA XREF: Cmd_Exec_f(CCommand  const&)+1D0o
					; CHLTVClient::SetRate(int,bool)+57o ...
		jmp	Warning
; ---------------------------------------------------------------------------
		align 4

loc_100008:				; CODE XREF: CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+85j
		fstp	st
		mov	dword ptr [ebp+arg_4], edx
		mov	[ebp+arg_0], offset aEmitsoundPitch ; "EmitSound: pitch	out of bounds =	%i\n"
		jmp	short loc_FFFF4
_ZN18CEngineSoundServer17EmitSoundInternalER16IRecipientFilteriiPKcf12soundlevel_tiiiPK6VectorS7_P10CUtlVectorIS5_10CUtlMemoryIS5_iEEbfi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineSoundServer__EmitSound(int, double, int, char *s1,	float, int, int, int, int, int,	int, int, char,	int, int)
_ZN18CEngineSoundServer9EmitSoundER16IRecipientFilteriiPKcf12soundlevel_tiiiPK6VectorS7_P10CUtlVectorIS5_10CUtlMemoryIS5_iEEbfi	proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch
arg_C		= dword	ptr  14h
s1		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_34		= byte ptr  3Ch
arg_38		= dword	ptr  40h
arg_3C		= dword	ptr  44h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		xor	esi, esi
		push	ebx
		sub	esp, 6Ch
		mov	[ebp+var_28], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_24], 0
		mov	ebx, [ebp+s1]
		mov	[ebp+var_30], 0
		movzx	edi, [ebp+arg_34]
		mov	[ebp+var_2C], 0
		test	eax, eax
		jz	short loc_1000C6
		lea	edx, [ebp+var_28]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCenginesound_1 ; "CEngineSoundServer::EmitSound"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN18CEngineSoundServer9EmitSoundER16IRecipientFilteriiPKcf12soundlevel_tiiiPK6VectorS7_P10CUtlVectorIS5_10CUtlMemoryIS5_iEEbfiE6tm_fmt ; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)::tm_fmt
		mov	dword ptr [esp+1Ch], 11Dh
		mov	dword ptr [esp+18h], offset aHomeBuildbot_8 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		mov	esi, ds:g_Telemetry+0Ch
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx

loc_1000C6:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+35j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	al
		test	al, al
		mov	[ebp+var_19], al
		jz	short loc_1000EE
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_34], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_34], eax
		jz	loc_1003E0

loc_1000EE:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+B5j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+409j
		test	ebx, ebx
		jz	loc_1002A0
		mov	edx, ebx
		jmp	short loc_100133
; ---------------------------------------------------------------------------
		align 10h

loc_100100:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+118j
		cmp	al, 2Ah
		jz	short loc_10013A
		cmp	al, 23h
		jz	short loc_10013A
		cmp	al, 21h
		jz	short loc_10013A
		cmp	al, 40h
		db	66h
		nop
		jz	short loc_100130
		cmp	al, 3Ch
		jz	short loc_10013A
		cmp	al, 3Eh
		jz	short loc_10013A
		cmp	al, 29h
		lea	esi, [esi+0]
		jz	short loc_10013A
		cmp	al, 5Eh
		jz	short loc_10013A
		cmp	al, 7Dh
		jnz	loc_1002A0
		db	66h
		nop

loc_100130:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+F0j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+11Cj
		add	edx, 1

loc_100133:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+D8j
		movzx	eax, byte ptr [edx]
		cmp	al, 3Fh
		jnz	short loc_100100

loc_10013A:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+E2j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+E6j ...
		cmp	al, 21h
		jnz	short loc_100130
		mov	[ebp+var_20], 0FFFFFFFFh
		mov	edx, ebx
		mov	esi, esi
		lea	edi, [edi+0]

loc_100150:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+3BBj
		movzx	eax, byte ptr [edx]
		cmp	al, 3Fh
		jz	loc_1003D8
		cmp	al, 2Ah
		jz	loc_1003D8
		cmp	al, 23h
		jz	loc_1003D8
		cmp	al, 21h
		lea	esi, [esi+0]
		jz	loc_1003D8
		cmp	al, 40h
		jz	loc_1003D8
		cmp	al, 3Ch
		jz	loc_1003D8
		cmp	al, 3Eh
		jz	loc_1003D8
		cmp	al, 29h
		jz	loc_1003D8
		cmp	al, 5Eh
		jz	loc_1003D8
		cmp	al, 7Dh
		jz	loc_1003D8
		lea	eax, [ebp+var_20]
		mov	dword ptr [esp+10h], 0 ; int
		mov	dword ptr [esp+0Ch], 0 ; int
		mov	dword ptr [esp+8], 0 ; int
		mov	[esp+4], eax	; int
		mov	[esp], edx	; s1
		call	VOX_LookupString
		mov	eax, [ebp+var_20]
		test	eax, eax
		js	loc_100383
		mov	ecx, [ebp+arg_0]
		and	edi, 0FFh
		mov	edx, [ecx]
		mov	[esp+10h], eax
		mov	ecx, [ebp+arg_3C]
		mov	[esp+34h], edi
		mov	eax, [ebp+arg_C]
		mov	[esp+3Ch], ecx
		mov	ecx, [ebp+arg_38]
		mov	[esp+0Ch], eax
		mov	eax, dword ptr [ebp+arg_4]
		mov	[esp+38h], ecx
		mov	ecx, [ebp+arg_30]
		mov	[esp+4], eax
		mov	[esp+30h], ecx
		mov	ecx, [ebp+arg_2C]
		mov	[esp+2Ch], ecx
		mov	ecx, [ebp+arg_28]
		mov	[esp+28h], ecx
		mov	ecx, [ebp+arg_24]
		mov	[esp+24h], ecx
		mov	ecx, [ebp+arg_20]
		mov	[esp+20h], ecx
		mov	ecx, [ebp+arg_1C]
		mov	[esp+1Ch], ecx
		mov	ecx, [ebp+arg_18]
		mov	[esp+18h], ecx
		mov	ecx, [ebp+arg_14]
		mov	[esp+14h], ecx
		mov	ecx, dword ptr [ebp+arg_4+4]
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	[esp], ecx
		call	dword ptr [edx+18h]
		cmp	[ebp+var_19], 0
		jnz	loc_10031E
		lea	esi, [esi+0]

loc_100260:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+2F8j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+30Fj ...
		test	esi, esi
		jz	short loc_100290
		mov	eax, [ebp+var_30]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_2C]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [esi+54h]

loc_100290:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+242j
		add	esp, 6Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1002A0:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+D0j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+108j
		mov	ecx, [ebp+arg_3C]
		and	edi, 0FFh
		mov	[esp+10h], ebx	; int
		mov	eax, [ebp+arg_38]
		mov	[esp+34h], edi	; int
		mov	edx, [ebp+arg_30]
		mov	[esp+3Ch], ecx	; int
		mov	ecx, [ebp+arg_2C]
		mov	[esp+38h], eax	; int
		mov	eax, [ebp+arg_28]
		mov	[esp+30h], edx	; int
		mov	edx, [ebp+arg_24]
		mov	[esp+2Ch], ecx	; int
		mov	ecx, [ebp+arg_20]
		mov	[esp+28h], eax	; int
		mov	eax, [ebp+arg_1C]
		mov	[esp+24h], edx	; int
		mov	edx, [ebp+arg_18]
		mov	[esp+20h], ecx	; int
		mov	ecx, [ebp+arg_14]
		mov	[esp+1Ch], eax	; int
		mov	eax, [ebp+arg_C]
		mov	[esp+18h], edx	; int
		mov	edx, dword ptr [ebp+arg_4+4]
		mov	[esp+14h], ecx	; float
		mov	ecx, dword ptr [ebp+arg_4]
		mov	[esp+0Ch], eax	; int
		mov	eax, [ebp+arg_0]
		mov	[esp+8], edx
		mov	[esp+4], ecx	; double
		mov	[esp], eax	; int
		call	_ZN18CEngineSoundServer17EmitSoundInternalER16IRecipientFilteriiPKcf12soundlevel_tiiiPK6VectorS7_P10CUtlVectorIS5_10CUtlMemoryIS5_iEEbfi ; CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector	const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>>	*,bool,float,int)

loc_100314:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+3AEj
		cmp	[ebp+var_19], 0
		jz	loc_100260

loc_10031E:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+233j
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_100335
		mov	ebx, dword ptr g_VProfCurrentProfile+100Ch
		test	ebx, ebx
		jz	loc_100260

loc_100335:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+305j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jnz	loc_100260
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	loc_10042E
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_10036A:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+413j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_100260
; ---------------------------------------------------------------------------
		align 10h

loc_100380:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+368j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+36Cj ...
		add	ebx, 1

loc_100383:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+1B2j
		movzx	eax, byte ptr [ebx]
		cmp	al, 3Fh
		jz	short loc_100380
		cmp	al, 2Ah
		jz	short loc_100380
		cmp	al, 23h
		jz	short loc_100380
		cmp	al, 21h
		jz	short loc_100380
		cmp	al, 40h
		jz	short loc_100380
		cmp	al, 3Ch
		lea	esi, [esi+0]
		jz	short loc_100380
		cmp	al, 3Eh
		jz	short loc_100380
		cmp	al, 29h
		jz	short loc_100380
		cmp	al, 5Eh
		lea	esi, [esi+0]
		jz	short loc_100380
		cmp	al, 7Dh
		jz	short loc_100380
		mov	[esp+8], ebx
		mov	dword ptr [esp+4], offset aUnableToFindSI ; "Unable to find %s in sentences.txt\n"
		mov	dword ptr [esp], 2
		call	DevWarning
		jmp	loc_100314
; ---------------------------------------------------------------------------
		align 8

loc_1003D8:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+135j
					; CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char	 const*,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+13Dj ...
		add	edx, 1
		jmp	loc_100150
; ---------------------------------------------------------------------------

loc_1003E0:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+C8j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCenginesound_1	; "CEngineSoundServer::EmitSound"
		jz	short loc_10041A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCenginesound_1 ; "CEngineSoundServer::EmitSound"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_10041A:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+3CBj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_1000EE
; ---------------------------------------------------------------------------

loc_10042E:				; CODE XREF: CEngineSoundServer::EmitSound(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector  const*,Vector	 const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+337j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	loc_10036A
_ZN18CEngineSoundServer9EmitSoundER16IRecipientFilteriiPKcf12soundlevel_tiiiPK6VectorS7_P10CUtlVectorIS5_10CUtlMemoryIS5_iEEbfi	endp

; ---------------------------------------------------------------------------
		mov	ebx, eax

loc_10043A:				; CODE XREF: .text:0010047Fj
		test	esi, esi
		jz	short loc_10046A
		mov	edx, [ebp-30h]
		mov	dword ptr [esp+14h], 0
		mov	ecx, [ebp-2Ch]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], esi
		mov	[esp+4], edx
		mov	[esp+8], ecx
		call	dword ptr [esi+54h]

loc_10046A:				; CODE XREF: .text:0010043Cj
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	ebx, eax
		lea	eax, [ebp-19h]
		mov	[esp], eax
		call	_ZN11CVProfScopeD2Ev ; CVProfScope::~CVProfScope()
		jmp	short loc_10043A
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineSoundServer__EmitSentenceByIndex(int, double, int,	char arg, float, int, int, int,	int, int, int, int, char, int, int)
_ZN18CEngineSoundServer19EmitSentenceByIndexER16IRecipientFilteriiif12soundlevel_tiiiPK6VectorS5_P10CUtlVectorIS3_10CUtlMemoryIS3_iEEbfi proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

s		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch
arg_C		= dword	ptr  14h
arg		= byte ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h
arg_2C		= dword	ptr  34h
arg_30		= dword	ptr  38h
arg_34		= byte ptr  3Ch
arg_38		= dword	ptr  40h
arg_3C		= dword	ptr  44h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 50h
		mov	eax, dword ptr [ebp+arg]
		movzx	esi, [ebp+arg_34]
		test	eax, eax
		js	loc_10053A
		lea	ebx, [ebp+s]
		mov	[esp+0Ch], eax	; arg
		and	esi, 0FFh
		mov	dword ptr [esp+8], offset aD_2 ; "!%d"
		mov	dword ptr [esp+4], 8 ; maxlen
		mov	[esp], ebx	; s
		call	_Z10V_snprintfPciPKcz ;	V_snprintf(char	*,int,char  const*,...)
		mov	eax, [ebp+arg_3C]
		mov	[esp+34h], esi	; int
		mov	[esp+10h], ebx	; int
		mov	[esp+3Ch], eax	; int
		mov	eax, [ebp+arg_38]
		mov	[esp+38h], eax	; int
		mov	eax, [ebp+arg_30]
		mov	[esp+30h], eax	; int
		mov	eax, [ebp+arg_2C]
		mov	[esp+2Ch], eax	; int
		mov	eax, [ebp+arg_28]
		mov	[esp+28h], eax	; int
		mov	eax, [ebp+arg_24]
		mov	[esp+24h], eax	; int
		mov	eax, [ebp+arg_20]
		mov	[esp+20h], eax	; int
		mov	eax, [ebp+arg_1C]
		mov	[esp+1Ch], eax	; int
		mov	eax, [ebp+arg_18]
		mov	[esp+18h], eax	; int
		mov	eax, [ebp+arg_14]
		mov	[esp+14h], eax	; float
		mov	eax, [ebp+arg_C]
		mov	[esp+0Ch], eax	; int
		mov	eax, dword ptr [ebp+arg_4+4]
		mov	[esp+8], eax
		mov	eax, dword ptr [ebp+arg_4]
		mov	[esp+4], eax	; double
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	_ZN18CEngineSoundServer17EmitSoundInternalER16IRecipientFilteriiPKcf12soundlevel_tiiiPK6VectorS7_P10CUtlVectorIS5_10CUtlMemoryIS5_iEEbfi ; CEngineSoundServer::EmitSoundInternal(IRecipientFilter &,int,int,char  const*,float,soundlevel_t,int,int,int,Vector	const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>>	*,bool,float,int)

loc_10053A:				; CODE XREF: CEngineSoundServer::EmitSentenceByIndex(IRecipientFilter &,int,int,int,float,soundlevel_t,int,int,int,Vector  const*,Vector  const*,CUtlVector<Vector,CUtlMemory<Vector,int>> *,bool,float,int)+11j
		add	esp, 50h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN18CEngineSoundServer19EmitSentenceByIndexER16IRecipientFilteriiif12soundlevel_tiiiPK6VectorS5_P10CUtlVectorIS3_10CUtlMemoryIS3_iEEbfi endp

; ---------------------------------------------------------------------------
		jmp	short _Z19SV_GetSoundDurationPKc ; SV_GetSoundDuration(char  const*)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; SV_GetSoundDuration(char  const*)
_Z19SV_GetSoundDurationPKc proc	near	; CODE XREF: .text:00100541j
					; Host_GetSoundDuration(char  const*)+4j
		push	ebp
		fldz
		mov	ebp, esp
		pop	ebp
		retn
_Z19SV_GetSoundDurationPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::StopSound(int, int, char	const*)
_ZN18CEngineSoundServer9StopSoundEiiPKc	proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		lea	ebx, [ebp+var_24]
		sub	esp, 60h
		mov	esi, [ebp+arg_0]
		mov	[esp], ebx
		call	_ZN22CEngineRecipientFilterC2Ev	; CEngineRecipientFilter::CEngineRecipientFilter(void)
		mov	[esp], ebx
		call	_ZN22CEngineRecipientFilter13AddAllPlayersEv ; CEngineRecipientFilter::AddAllPlayers(void)
		mov	[esp], ebx
		call	_ZN22CEngineRecipientFilter12MakeReliableEv ; CEngineRecipientFilter::MakeReliable(void)
		mov	edx, [ebp+arg_C]
		mov	eax, [esi]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		mov	dword ptr [esp+38h], 0
		mov	dword ptr [esp+34h], 1
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [esp+30h], 0
		mov	dword ptr [esp+2Ch], 0
		mov	dword ptr [esp+28h], 0
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_4]
		mov	dword ptr [esp+24h], 0
		mov	dword ptr [esp+20h], 64h
		mov	dword ptr [esp+1Ch], 4
		mov	dword ptr [esp+18h], 0
		mov	dword ptr [esp+14h], 0
		mov	[esp+8], edx
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+14h]
		lea	ebx, [ebp+var_1C]
		mov	[ebp+var_24], (offset _ZTV22CEngineRecipientFilter+8)
		mov	[esp], ebx
		mov	[ebp+var_10], 0
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp+var_1C]
		mov	[esp], ebx
		mov	[ebp+var_C], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		add	esp, 60h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN18CEngineSoundServer9StopSoundEiiPKc	endp

; ---------------------------------------------------------------------------
		lea	ebx, [ebp-1Ch]
		mov	esi, eax
		mov	dword ptr [ebp-24h], (offset _ZTV22CEngineRecipientFilter+8)
		mov	dword ptr [ebp-10h], 0
		mov	[esp], ebx
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp-1Ch]
		mov	[esp], ebx
		mov	[ebp-0Ch], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; BuildRecipientList(CUtlVector<edict_t	*, CUtlMemory<edict_t *, int>> &, IRecipientFilter  const&)
_Z18BuildRecipientListR10CUtlVectorIP7edict_t10CUtlMemoryIS1_iEERK16IRecipientFilter proc near
					; CODE XREF: CEngineSoundServer::SetPlayerDSP(IRecipientFilter &,int,bool)+46p
					; CEngineSoundServer::SetRoomType(IRecipientFilter &,int)+3Cp

var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	esi, [ebp+arg_4]
		mov	eax, [esi]
		mov	[esp], esi
		call	dword ptr [eax+10h]
		test	eax, eax
		mov	[ebp+var_1C], eax
		jle	short loc_1006F0
		xor	ebx, ebx
		jmp	short loc_100688
; ---------------------------------------------------------------------------
		align 10h

loc_100680:				; CODE XREF: BuildRecipientList(CUtlVector<edict_t *,CUtlMemory<edict_t	*,int>>	&,IRecipientFilter  const&)+36j
					; BuildRecipientList(CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>> &,IRecipientFilter	 const&)+3Ej ...
		add	ebx, 1
		cmp	ebx, [ebp+var_1C]
		jz	short loc_1006F0

loc_100688:				; CODE XREF: BuildRecipientList(CUtlVector<edict_t *,CUtlMemory<edict_t	*,int>>	&,IRecipientFilter  const&)+1Dj
					; BuildRecipientList(CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>> &,IRecipientFilter	 const&)+84j
		mov	eax, [esi]
		mov	[esp+4], ebx
		mov	[esp], esi
		call	dword ptr [eax+14h]
		test	eax, eax
		jle	short loc_100680
		cmp	eax, dword ptr ds:sv+128h
		jg	short loc_100680
		mov	edx, dword ptr ds:sv+11Ch
		mov	edi, [edx+eax*4-4]
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+70h]
		test	al, al
		jnz	short loc_100680
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+68h]
		test	al, al
		jz	short loc_100680
		mov	edx, [ebp+arg_0]
		add	edi, 273D0h
		add	ebx, 1
		mov	[esp+8], edi
		mov	eax, [edx+0Ch]
		mov	[esp], edx
		mov	[esp+4], eax
		call	_ZN10CUtlVectorIP7edict_t10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ ; CUtlVector<edict_t *,CUtlMemory<edict_t *,int>>::InsertBefore(int,edict_t *	const&)
		cmp	ebx, [ebp+var_1C]
		jnz	short loc_100688
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_1006F0:				; CODE XREF: BuildRecipientList(CUtlVector<edict_t *,CUtlMemory<edict_t	*,int>>	&,IRecipientFilter  const&)+19j
					; BuildRecipientList(CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>> &,IRecipientFilter	 const&)+26j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_Z18BuildRecipientListR10CUtlVectorIP7edict_t10CUtlMemoryIS1_iEERK16IRecipientFilter endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::SetPlayerDSP(IRecipientFilter &, int, bool)
_ZN18CEngineSoundServer12SetPlayerDSPER16IRecipientFilterib proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		cmp	[ebp+arg_C], 0
		mov	edi, [ebp+arg_8]
		jnz	loc_1007B0

loc_100716:				; CODE XREF: CEngineSoundServer::SetPlayerDSP(IRecipientFilter &,int,bool)+BCj
		mov	eax, [ebp+arg_4]
		lea	esi, [ebp+var_2C]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	[esp+4], eax
		mov	[esp], esi
		call	_Z18BuildRecipientListR10CUtlVectorIP7edict_t10CUtlMemoryIS1_iEERK16IRecipientFilter ; BuildRecipientList(CUtlVector<edict_t *,CUtlMemory<edict_t *,int>> &,IRecipientFilter  const&)
		mov	eax, [ebp+var_20]
		test	eax, eax
		jle	short loc_100785
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_100758:				; CODE XREF: CEngineSoundServer::SetPlayerDSP(IRecipientFilter &,int,bool)+83j
		mov	eax, g_pVEngineServer
		mov	edx, [eax]
		mov	[esp+0Ch], edi
		mov	dword ptr [esp+8], offset aDsp_playerI ; "dsp_player %i\n"
		mov	ecx, [esi]
		mov	ecx, [ecx+ebx*4]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+98h]
		add	ebx, 1
		cmp	[esi+0Ch], ebx
		jg	short loc_100758

loc_100785:				; CODE XREF: CEngineSoundServer::SetPlayerDSP(IRecipientFilter &,int,bool)+50j
		mov	[esp], esi
		mov	[ebp+var_20], 0
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1007B0:				; CODE XREF: CEngineSoundServer::SetPlayerDSP(IRecipientFilter &,int,bool)+10j
		mov	dword ptr [esp], offset	aSetplayerdspFa	; "SetPlayerDSP:  fastReset only valid fro"...
		call	Warning
		jmp	loc_100716
_ZN18CEngineSoundServer12SetPlayerDSPER16IRecipientFilterib endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [ebp-20h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		mov	eax, [ebp-2Ch]
		mov	[esp], esi
		mov	[ebp-1Ch], eax
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::SetRoomType(IRecipientFilter &, int)
_ZN18CEngineSoundServer11SetRoomTypeER16IRecipientFilteri proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	esi, [ebp+var_2C]
		push	ebx
		sub	esp, 3Ch
		mov	[ebp+var_2C], 0
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_28], 0
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		mov	[esp+4], eax
		mov	[esp], esi
		call	_Z18BuildRecipientListR10CUtlVectorIP7edict_t10CUtlMemoryIS1_iEERK16IRecipientFilter ; BuildRecipientList(CUtlVector<edict_t *,CUtlMemory<edict_t *,int>> &,IRecipientFilter  const&)
		mov	eax, [ebp+var_20]
		test	eax, eax
		jle	short loc_10086D
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_100840:				; CODE XREF: CEngineSoundServer::SetRoomType(IRecipientFilter &,int)+7Bj
		mov	eax, g_pVEngineServer
		mov	edx, [eax]
		mov	[esp+0Ch], edi
		mov	dword ptr [esp+8], offset aRoom_typeI ;	"room_type %i\n"
		mov	ecx, [esi]
		mov	ecx, [ecx+ebx*4]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+98h]
		add	ebx, 1
		cmp	[esi+0Ch], ebx
		jg	short loc_100840

loc_10086D:				; CODE XREF: CEngineSoundServer::SetRoomType(IRecipientFilter &,int)+46j
		mov	[esp], esi
		mov	[ebp+var_20], 0
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN18CEngineSoundServer11SetRoomTypeER16IRecipientFilteri endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [ebp-20h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		mov	eax, [ebp-2Ch]
		mov	[esp], esi
		mov	[ebp-1Ch], eax
		call	_ZN10CUtlMemoryIP7edict_tiE5PurgeEv ; CUtlMemory<edict_t *,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::NotifyBeginMoviePlayback(void)
_ZN18CEngineSoundServer24NotifyBeginMoviePlaybackEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN18CEngineSoundServer24NotifyBeginMoviePlaybackEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::NotifyEndMoviePlayback(void)
_ZN18CEngineSoundServer22NotifyEndMoviePlaybackEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN18CEngineSoundServer22NotifyEndMoviePlaybackEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::SetVolumeByGuid(int, float)
_ZN18CEngineSoundServer15SetVolumeByGuidEif proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset aCanTCallSetvol ; "Can't call SetVolumeByGuid from server\n"...
		pop	ebp
		jmp	Warning
_ZN18CEngineSoundServer15SetVolumeByGuidEif endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::GetActiveSounds(CUtlVector<SndInfo_t, CUtlMemory<SndInfo_t, int>>	&)
_ZN18CEngineSoundServer15GetActiveSoundsER10CUtlVectorI9SndInfo_t10CUtlMemoryIS1_iEE proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset aCanTCallGetact ; "Can't call GetActiveSounds from server\n"...
		pop	ebp
		jmp	Warning
_ZN18CEngineSoundServer15GetActiveSoundsER10CUtlVectorI9SndInfo_t10CUtlMemoryIS1_iEE endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::StopSoundByGuid(int)
_ZN18CEngineSoundServer15StopSoundByGuidEi proc	near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset aCanTCallStopso ; "Can't call StopSoundByGuid from server\n"...
		pop	ebp
		jmp	Warning
_ZN18CEngineSoundServer15StopSoundByGuidEi endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::IsSoundStillPlaying(int)
_ZN18CEngineSoundServer19IsSoundStillPlayingEi proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	aCanTCallIssoun	; "Can't call IsSoundStillPlaying from ser"...
		call	Warning
		xor	eax, eax
		leave
		retn
_ZN18CEngineSoundServer19IsSoundStillPlayingEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineSoundServer::GetGuidForLastSoundEmitted(void)
_ZN18CEngineSoundServer26GetGuidForLastSoundEmittedEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	dword ptr [esp], offset	aCanTCallGetgui	; "Can't call GetGuidForLastSoundEmitted f"...
		call	Warning
		xor	eax, eax
		leave
		retn
_ZN18CEngineSoundServer26GetGuidForLastSoundEmittedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineSoundServer__PrecacheSentenceGroup(int, char *s)
_ZN18CEngineSoundServer21PrecacheSentenceGroupEPKc proc	near
					; DATA XREF: .rodata:`vtable for'CEngineSoundServero

arg_0		= dword	ptr  8
s		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+s]
		mov	dword ptr [esp+8], 0 ; src
		mov	[esp+4], eax	; s
		mov	eax, [ebp+arg_0]
		mov	[esp], eax	; int
		call	VOX_PrecacheSentenceGroup
		leave
		retn
_ZN18CEngineSoundServer21PrecacheSentenceGroupEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<edict_t *,	int>::Purge(void)
_ZN10CUtlMemoryIP7edict_tiE5PurgeEv proc near
					; CODE XREF: CEngineSoundServer::SetPlayerDSP(IRecipientFilter &,int,bool)+8Fp
					; CEngineSoundServer::SetPlayerDSP(IRecipientFilter &,int,bool)+9Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		test	eax, eax
		js	short loc_1009AC
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_1009A5
		mov	[esp], eax	; ptr
		call	free
		mov	dword ptr [ebx], 0

loc_1009A5:				; CODE XREF: CUtlMemory<edict_t	*,int>::Purge(void)+15j
		mov	dword ptr [ebx+4], 0

loc_1009AC:				; CODE XREF: CUtlMemory<edict_t	*,int>::Purge(void)+Fj
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CUtlMemoryIP7edict_tiE5PurgeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<edict_t *,	int>::Grow(int)
_ZN10CUtlMemoryIP7edict_tiE4GrowEi proc	near
					; CODE XREF: CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>>::InsertBefore(int,edict_t * const&)+7Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_100A21
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jz	short loc_100A30
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_100A07
		lea	esi, [esi+0]

loc_1009F8:				; CODE XREF: CUtlMemory<edict_t	*,int>::Grow(int)+45j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_1009F8

loc_100A07:				; CODE XREF: CUtlMemory<edict_t	*,int>::Grow(int)+30j
					; CUtlMemory<edict_t *,int>::Grow(int)+7Cj
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jz	short loc_100A52

loc_100A13:				; CODE XREF: CUtlMemory<edict_t	*,int>::Grow(int)+90j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_100A21:				; CODE XREF: CUtlMemory<edict_t	*,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_100A30:				; CODE XREF: CUtlMemory<edict_t	*,int>::Grow(int)+1Cj
		test	eax, eax
		mov	edx, 8
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_100A07
		db	66h
		nop

loc_100A40:				; CODE XREF: CUtlMemory<edict_t	*,int>::Grow(int)+84j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_100A40
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 2
		test	edx, edx
		jnz	short loc_100A13

loc_100A52:				; CODE XREF: CUtlMemory<edict_t	*,int>::Grow(int)+51j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryIP7edict_tiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<edict_t *,	CUtlMemory<edict_t *, int>>::InsertBefore(int, edict_t * const&)
_ZN10CUtlVectorIP7edict_t10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ proc near
					; CODE XREF: BuildRecipientList(CUtlVector<edict_t *,CUtlMemory<edict_t	*,int>>	&,IRecipientFilter  const&)+7Cp
					; CTriggerMoved::EnumElement(IHandleEntity *)+1CBp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_100AE0

loc_100A8F:				; CODE XREF: CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>>::InsertBefore(int,edict_t * const&)+84j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		lea	edi, ds:0[esi*4]
		sub	edx, esi
		sub	edx, 1
		test	edx, edx
		mov	[ebx+10h], eax
		jle	short loc_100AC6
		shl	edx, 2
		mov	[esp+8], edx	; n
		lea	edx, [eax+edi]
		lea	eax, [eax+esi*4+4]
		mov	[esp+4], edx	; src
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]

loc_100AC6:				; CODE XREF: CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>>::InsertBefore(int,edict_t * const&)+38j
		add	edi, eax
		jz	short loc_100AD1
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		mov	[edi], eax

loc_100AD1:				; CODE XREF: CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>>::InsertBefore(int,edict_t * const&)+58j
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_100AE0:				; CODE XREF: CUtlVector<edict_t	*,CUtlMemory<edict_t *,int>>::InsertBefore(int,edict_t * const&)+1Dj
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryIP7edict_tiE4GrowEi ; CUtlMemory<edict_t	*,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	short loc_100A8F
_ZN10CUtlVectorIP7edict_t10CUtlMemoryIS1_iEE12InsertBeforeEiRKS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::CEngineStats(void)
_ZN12CEngineStatsC2Ev proc near		; CODE XREF: _GLOBAL__sub_I_g_pSoundServices+56p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+5Ch], 0
		mov	byte ptr [eax+5Eh], 0
		pop	ebp
		retn
_ZN12CEngineStatsC2Ev endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::BeginRun(void)
_ZN12CEngineStats8BeginRunEv proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 4
		mov	ebx, [ebp+arg_0]
		mov	byte ptr [ebx+5Eh], 1
		mov	dword ptr [ebx], 0
		call	Plat_FloatTime
		fstp	qword ptr [ebx+4]
		add	esp, 4
		pop	ebx
		pop	ebp
		retn
_ZN12CEngineStats8BeginRunEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::EndRun(void)
_ZN12CEngineStats6EndRunEv proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 4
		mov	ebx, [ebp+arg_0]
		call	Plat_FloatTime
		fstp	qword ptr [ebx+0Ch]
		mov	byte ptr [ebx+5Eh], 0
		add	esp, 4
		pop	ebx
		pop	ebp
		retn
_ZN12CEngineStats6EndRunEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::BeginFrame(void)
_ZN12CEngineStats10BeginFrameEv	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax+5Dh], 0
		mov	byte ptr [eax+5Ch], 0
		pop	ebp
		retn
_ZN12CEngineStats10BeginFrameEv	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::ComputeFrameTimeStats(void)
_ZN12CEngineStats21ComputeFrameTimeStatsEv proc	near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		fld	dword ptr [eax+60h]
		fld	ds:flt_1EBD88
		fld	st(1)
		fmul	st, st(1)
		fstp	qword ptr [eax+14h]
		fld	dword ptr [eax+64h]
		fmul	st, st(1)
		fstp	qword ptr [eax+24h]
		fldz
		fcomi	st, st(2)
		jz	short loc_100BA0
		fstp	st
		fdivrp	st(1), st
		fstp	qword ptr [eax+1Ch]
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_100BA0:				; CODE XREF: CEngineStats::ComputeFrameTimeStats(void)+22j
		fstp	st(1)
		fstp	st(1)
		fstp	qword ptr [eax+1Ch]
		pop	ebp
		retn
_ZN12CEngineStats21ComputeFrameTimeStatsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::EndFrame(void)
_ZN12CEngineStats8EndFrameEv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CEngineStats8EndFrameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::NextFrame(void)
_ZN12CEngineStats9NextFrameEv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN12CEngineStats9NextFrameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::PauseStats(bool)
_ZN12CEngineStats10PauseStatsEb	proc near

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		mov	eax, [ebp+arg_0]
		jz	short loc_100BF0
		cmp	byte ptr [eax+5Ch], 0
		jz	short loc_100BEA
		mov	byte ptr [eax+5Dh], 1
		mov	byte ptr [eax+5Ch], 0

loc_100BEA:				; CODE XREF: CEngineStats::PauseStats(bool)+10j
					; CEngineStats::PauseStats(bool)+24j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_100BF0:				; CODE XREF: CEngineStats::PauseStats(bool)+Aj
		cmp	byte ptr [eax+5Dh], 0
		jz	short loc_100BEA
		mov	byte ptr [eax+5Ch], 1
		mov	byte ptr [eax+5Dh], 0
		pop	ebp
		retn
_ZN12CEngineStats10PauseStatsEb	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::TimedStatInFrame(EngineTimedStatId_t)const
_ZNK12CEngineStats16TimedStatInFrameE19EngineTimedStatId_t proc	near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		pop	ebp
		fld	qword ptr [eax+edx*8+14h]
		retn
_ZNK12CEngineStats16TimedStatInFrameE19EngineTimedStatId_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::TotalTimedStat(EngineTimedStatId_t)const
_ZNK12CEngineStats14TotalTimedStatE19EngineTimedStatId_t proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		pop	ebp
		fld	qword ptr [eax+edx*8+44h]
		retn
_ZNK12CEngineStats14TotalTimedStatE19EngineTimedStatId_t endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineStats::GetRunTime(void)
_ZN12CEngineStats10GetRunTimeEv	proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		fld	qword ptr [eax+0Ch]
		fsub	qword ptr [eax+4]
		retn
_ZN12CEngineStats10GetRunTimeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStatTime::GetTime(void)
_ZN9CStatTime7GetTimeEv	proc near	; DATA XREF: .rodata:`vtable for'CStatTimeo
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		call	Plat_FloatTime
		leave
		retn
_ZN9CStatTime7GetTimeEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; __CreateCEngineTraceServerIEngineTrace_interface(void)
_ZL48__CreateCEngineTraceServerIEngineTrace_interfacev proc near
					; DATA XREF: _GLOBAL__sub_I_g_pEngineTraceServer+1Bo
		push	ebp
		mov	eax, offset _ZL19s_EngineTraceServer ; s_EngineTraceServer
		mov	ebp, esp
		pop	ebp
		retn
_ZL48__CreateCEngineTraceServerIEngineTrace_interfacev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTraceServer::SpatialPartitionMask(void)const
_ZNK18CEngineTraceServer20SpatialPartitionMaskEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceServero
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZNK18CEngineTraceServer20SpatialPartitionMaskEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTraceServer::SpatialPartitionTriggerMask(void)const
_ZNK18CEngineTraceServer27SpatialPartitionTriggerMaskEv	proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceServero
		push	ebp
		mov	eax, 2
		mov	ebp, esp
		pop	ebp
		retn
_ZNK18CEngineTraceServer27SpatialPartitionTriggerMaskEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::GetStatByIndex(int, bool)
_ZN12CEngineTrace14GetStatByIndexEib proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	ebx
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		movzx	ebx, [ebp+arg_8]
		cmp	edx, 2
		jg	short loc_100C95
		test	bl, bl
		mov	eax, [ecx+edx*4+4]
		jz	short loc_100C95
		mov	dword ptr [ecx+edx*4+4], 0

loc_100C95:				; CODE XREF: CEngineTrace::GetStatByIndex(int,bool)+13j
					; CEngineTrace::GetStatByIndex(int,bool)+1Bj
		pop	ebx
		pop	ebp
		retn
_ZN12CEngineTrace14GetStatByIndexEib endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToEntity(Ray_t  const&, unsigned	int, IHandleEntity *, CGameTrace *)
_ZN12CEngineTrace15ClipRayToEntityERK5Ray_tjP13IHandleEntityP10CGameTrace proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_4], edi
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		mov	eax, [ebx]
		mov	ecx, [eax+0Ch]
		mov	[esp], ebx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_24], ecx
		mov	ecx, [ebp+arg_C]
		mov	[esp+4], ecx
		call	dword ptr [eax+2Ch]
		mov	edx, [ebp+var_1C]
		mov	[ebp+arg_8], edi
		mov	[ebp+arg_4], esi
		mov	ecx, [ebp+var_24]
		mov	[ebp+arg_0], ebx
		mov	esi, [ebp+var_8]
		mov	[ebp+arg_C], eax
		mov	ebx, [ebp+var_C]
		mov	[ebp+arg_10], edx
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		jmp	ecx
_ZN12CEngineTrace15ClipRayToEntityERK5Ray_tjP13IHandleEntityP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTraceServer::GetWorldCollideable(void)
_ZN18CEngineTraceServer19GetWorldCollideableEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceServero

arg_0		= dword	ptr  8

		mov	eax, dword ptr ds:sv+1A8h
		push	ebp
		mov	ebp, esp
		test	eax, eax
		jz	short loc_100D28
		test	byte ptr [eax],	4
		jz	short loc_100D28
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_100D28
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+10h]
		jmp	eax
; ---------------------------------------------------------------------------
		align 8

loc_100D28:				; CODE XREF: CEngineTraceServer::GetWorldCollideable(void)+Aj
					; CEngineTraceServer::GetWorldCollideable(void)+Fj ...
		xor	eax, eax
		pop	ebp
		retn
_ZN18CEngineTraceServer19GetWorldCollideableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::SweepCollideable(ICollideable *, Vector	 const&, Vector	 const&, QAngle	 const&, unsigned int, ITraceFilter *, CGameTrace *)
_ZN12CEngineTrace16SweepCollideableEP12ICollideableRK6VectorS4_RK6QAnglejP12ITraceFilterP10CGameTrace proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= byte ptr -28h
var_27		= byte ptr -27h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	edi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	edx, [edi+10h]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_6C], edx
		call	dword ptr [eax+38h]
		test	ah, 1
		jz	short loc_100D60
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		mov	[edi+10h], eax

loc_100D60:				; CODE XREF: CEngineTrace::SweepCollideable(ICollideable *,Vector  const&,Vector  const&,QAngle	 const&,uint,ITraceFilter *,CGameTrace *)+23j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	esi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+arg_8]
		fld	dword ptr [edx]
		mov	edx, [ebp+arg_C]
		fld	dword ptr [edx]
		fsub	st, st(1)
		mov	edx, [ebp+arg_8]
		fst	[ebp+var_58]
		fld	dword ptr [edx+4]
		mov	edx, [ebp+arg_C]
		fld	dword ptr [edx+4]
		fsub	st, st(1)
		mov	edx, [ebp+arg_8]
		fst	[ebp+var_54]
		fld	dword ptr [edx+8]
		mov	edx, [ebp+arg_C]
		fld	dword ptr [edx+8]
		fsub	st, st(1)
		fst	[ebp+var_50]
		fxch	st(4)
		fmul	st, st
		fxch	st(2)
		fmul	st, st
		fxch	st(4)
		fmul	st, st
		fxch	st(4)
		faddp	st(2), st
		fxch	st(1)
		faddp	st(3), st
		fldz
		fcomip	st, st(3)
		fstp	st(2)
		setnz	[ebp+var_27]
		fld	dword ptr [esi]
		fsub	dword ptr [eax]
		fst	[ebp+var_38]
		fld	dword ptr [esi+4]
		fsub	dword ptr [eax+4]
		fst	[ebp+var_34]
		fld	dword ptr [esi+8]
		fsub	dword ptr [eax+8]
		fld	ds:flt_1EBAA4
		fmul	st(3), st
		fxch	st(3)
		fst	[ebp+var_38]
		fxch	st(2)
		fmul	st, st(3)
		fst	[ebp+var_34]
		fxch	st(1)
		fmul	st, st(3)
		fst	[ebp+var_30]
		fxch	st(2)
		fmul	st, st
		fxch	st(1)
		fmul	st, st
		fxch	st(2)
		fmul	st, st
		fxch	st(2)
		faddp	st(1), st
		faddp	st(1), st
		fld	ds:dbl_1EBDB0
		fcomip	st, st(1)
		fstp	st
		setnbe	[ebp+var_28]
		fld	dword ptr [esi]
		fadd	dword ptr [eax]
		fst	[ebp+var_48]
		fld	dword ptr [esi+4]
		fadd	dword ptr [eax+4]
		fst	[ebp+var_44]
		fxch	st(1)
		mov	edx, [ebp+arg_1C]
		fmul	st, st(2)
		fxch	st(1)
		fmul	st, st(2)
		fld	dword ptr [esi+8]
		fadd	dword ptr [eax+8]
		mov	eax, [edi]
		mov	[esp+10h], edx
		mov	edx, [ebp+arg_18]
		mov	[esp], edi
		fmulp	st(3), st
		fxch	st(5)
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_14]
		fadd	st, st(1)
		mov	[esp+8], edx
		lea	edx, [ebp+var_68]
		mov	[esp+4], edx
		fstp	[ebp+var_68]
		fxch	st(2)
		fadd	st, st(4)
		fstp	[ebp+var_64]
		fadd	st(2), st
		fxch	st(2)
		fstp	[ebp+var_60]
		fchs
		fstp	[ebp+var_48]
		fxch	st(1)
		fchs
		fstp	[ebp+var_44]
		fchs
		fstp	[ebp+var_40]
		call	dword ptr [eax+10h]
		mov	edx, [ebp+var_6C]
		mov	[edi+10h], edx
		add	esp, 8Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN12CEngineTrace16SweepCollideableEP12ICollideableRK6VectorS4_RK6QAnglejP12ITraceFilterP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::EnumerateEntities(Vector  const&, Vector  const&, IEntityEnumerator *)
_ZN12CEngineTrace17EnumerateEntitiesERK6VectorS2_P17IEntityEnumerator proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_4], edi
		mov	[ebp+var_24], (offset _ZTV18CEnumerationFilter+8)
		add	dword ptr [ebx+0Ch], 1
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_20], eax
		call	_Z16SpatialPartitionv ;	SpatialPartition(void)
		mov	esi, eax
		mov	eax, [eax]
		mov	edi, [eax+38h]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		lea	edx, [ebp+var_24]
		mov	[esp], esi
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_8]
		mov	dword ptr [esp+10h], 0
		mov	[esp+4], eax
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_4]
		mov	[esp+8], edx
		call	edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CEngineTrace17EnumerateEntitiesERK6VectorS2_P17IEntityEnumerator endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::EnumerateEntities(Ray_t	 const&, bool, IEntityEnumerator *)
_ZN12CEngineTrace17EnumerateEntitiesERK5Ray_tbP17IEntityEnumerator proc	near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 34h
		mov	[ebp+var_14], (offset _ZTV18CEnumerationFilter+8)
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_C]
		add	dword ptr [eax+0Ch], 1
		mov	[ebp+var_C], eax
		cmp	[ebp+arg_8], 0
		mov	[ebp+var_10], edx
		mov	edx, [eax]
		mov	[esp], eax
		jnz	short loc_100F60
		call	dword ptr [edx+54h]
		mov	ebx, eax

loc_100F2E:				; CODE XREF: CEngineTrace::EnumerateEntities(Ray_t  const&,bool,IEntityEnumerator *)+65j
		test	ebx, ebx
		jz	short loc_100F59
		call	_Z16SpatialPartitionv ;	SpatialPartition(void)
		lea	ecx, [ebp+var_14]
		mov	edx, [eax]
		mov	[esp+10h], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], ebx
		mov	[esp], eax
		mov	[esp+8], ecx
		call	dword ptr [edx+40h]

loc_100F59:				; CODE XREF: CEngineTrace::EnumerateEntities(Ray_t  const&,bool,IEntityEnumerator *)+30j
		add	esp, 34h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_100F60:				; CODE XREF: CEngineTrace::EnumerateEntities(Ray_t  const&,bool,IEntityEnumerator *)+27j
		call	dword ptr [edx+58h]
		mov	ebx, eax
		jmp	short loc_100F2E
_ZN12CEngineTrace17EnumerateEntitiesERK5Ray_tbP17IEntityEnumerator endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::SetupLeafAndEntityListBox(Vector  const&, Vector  const&, CTraceListData &)
_ZN12CEngineTrace25SetupLeafAndEntityListBoxERK6VectorS2_R14CTraceListData proc	near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_C]
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_8], esi
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], edi
		mov	edx, [ebp+arg_0]
		mov	edi, [ebp+arg_8]
		mov	[ebp+var_1C], 0FFFFFFFFh
		mov	dword ptr [ebx+4], 0
		mov	[esp+10h], eax
		mov	eax, [ebx+14h]
		mov	[esp+0Ch], eax
		mov	eax, [ebx+8]
		mov	[esp], ecx
		mov	[ebp+var_30], ecx
		mov	[ebp+var_34], edx
		mov	[esp+4], edi
		mov	[esp+8], eax
		call	_Z14CM_BoxLeafnumsRK6VectorS1_PiiS2_ ; CM_BoxLeafnums(Vector  const&,Vector  const&,int	*,int,int *)
		mov	dword ptr [ebx+1Ch], 0
		mov	[ebx+4], eax
		call	_Z16SpatialPartitionv ;	SpatialPartition(void)
		mov	edx, [ebp+var_34]
		mov	esi, eax
		mov	eax, [eax]
		mov	eax, [eax+38h]
		mov	[ebp+var_2C], eax
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+54h]
		mov	ecx, [ebp+var_30]
		mov	[esp+14h], ebx
		mov	[esp+0Ch], edi
		mov	[esp], esi
		mov	dword ptr [esp+10h], 0
		mov	[esp+8], ecx
		mov	[esp+4], eax
		call	[ebp+var_2C]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CEngineTrace25SetupLeafAndEntityListBoxERK6VectorS2_R14CTraceListData endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::GetLeafContainingPoint(Vector  const&)
_ZN12CEngineTrace22GetLeafContainingPointERK6Vector proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_Z15CM_PointLeafnumRK6Vector ; CM_PointLeafnum(Vector  const&)
_ZN12CEngineTrace22GetLeafContainingPointERK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::PointOutsideWorld(Vector  const&)
_ZN12CEngineTrace17PointOutsideWorldERK6Vector proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z15CM_PointLeafnumRK6Vector ; CM_PointLeafnum(Vector  const&)
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		cmp	word ptr [eax+4], 0FFFFh
		leave
		setz	al
		retn
_ZN12CEngineTrace17PointOutsideWorldERK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&, Vector  const&)
_ZN12CEngineTrace36GetCollidableFromDisplacementsInAABBERK6VectorS2_ proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_1884	= dword	ptr -1884h
var_1880	= dword	ptr -1880h
var_187C	= dword	ptr -187Ch
var_1878	= dword	ptr -1878h
var_1874	= dword	ptr -1874h
var_1870	= dword	ptr -1870h
var_186C	= dword	ptr -186Ch
var_1868	= dword	ptr -1868h
var_1864	= dword	ptr -1864h
var_1860	= dword	ptr -1860h
var_185C	= dword	ptr -185Ch
var_1858	= dword	ptr -1858h
var_1854	= dword	ptr -1854h
var_1850	= dword	ptr -1850h
var_184C	= dword	ptr -184Ch
var_1840	= word ptr -1840h
var_183E	= word ptr -183Eh
var_183C	= word ptr -183Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 189Ch
		mov	edx, dword ptr ds:g_BSPData+84h
		mov	ebx, [ebp+arg_8]
		lea	eax, ds:0Fh[edx*4]
		and	eax, 0FFFFFFF0h
		add	eax, 10h
		sub	esp, eax
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_4]
		lea	ecx, [esp+27h]
		and	ecx, 0FFFFFFF0h
		mov	dword ptr [esp+10h], 0
		mov	[ebp+var_1868],	ecx
		mov	[esp+8], ecx
		mov	[esp], edx
		mov	[esp+4], ebx
		call	_Z14CM_BoxLeafnumsRK6VectorS1_PiiS2_ ; CM_BoxLeafnums(Vector  const&,Vector  const&,int	*,int,int *)
		mov	[ebp+var_187C],	eax
		mov	eax, ds:physcollision
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+2Ch]
		mov	[ebp+var_1870],	eax
		call	_Z10BeginTracev	; BeginTrace(void)
		mov	edx, [eax+11Ch]
		mov	[ebp+var_1C], eax
		lea	ecx, [edx+edx*4]
		mov	edx, [eax+edx*4+120h]
		mov	ecx, [eax+ecx*4+150h]
		mov	eax, [ebp+var_187C]
		mov	[ebp+var_185C],	edx
		mov	[ebp+var_1860],	ecx
		test	eax, eax
		jle	loc_1013D9
		mov	[ebp+var_1878],	0
		mov	[ebp+var_186C],	0

loc_101116:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+373j
		mov	ecx, [ebp+var_1878]
		mov	ebx, [ebp+var_1868]
		mov	eax, [ebx+ecx*4]
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		movzx	edx, word ptr [eax+0Ch]
		movzx	eax, word ptr [eax+0Eh]
		test	ax, ax
		jz	loc_1013C0
		movzx	edx, dx
		movzx	eax, ax
		lea	edi, [edx+edx]
		add	eax, edx
		add	eax, eax
		mov	[ebp+var_1864],	eax
		jmp	short loc_101167
; ---------------------------------------------------------------------------
		align 8

loc_101158:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+130j
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+156j ...
		add	edi, 2
		cmp	edi, [ebp+var_1864]
		jz	loc_1013C0

loc_101167:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+F2j
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+350j
		mov	eax, dword ptr ds:g_BSPData+0B0h
		mov	edx, [ebp+var_1860]
		mov	ecx, [ebp+var_185C]
		movzx	ebx, word ptr [eax+edi]
		imul	ebx, 0F4h
		add	ebx, ds:g_pDispCollTrees
		mov	eax, [ebx+10h]
		lea	eax, [edx+eax*4]
		cmp	ecx, [eax]
		jz	short loc_101158
		mov	[eax], ecx
		mov	edx, [ebp+arg_8]
		lea	eax, [ebx+14h]
		mov	ecx, [ebp+arg_4]
		mov	[esp+0Ch], eax
		lea	eax, [ebx+4]
		mov	[esp+8], eax
		mov	[esp+4], edx
		mov	[esp], ecx
		call	_Z20IsBoxIntersectingBoxRK6VectorS1_S1_S1_ ; IsBoxIntersectingBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&)
		test	al, al
		jz	short loc_101158
		lea	eax, [ebp+var_1858]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN13CDispCollTree18GetVirtualMeshListEP17virtualmeshlist_t ; CDispCollTree::GetVirtualMeshList(virtualmeshlist_t *)
		mov	edx, [ebp+var_1850]
		add	[ebp+var_186C],	edx
		cmp	[ebp+var_186C],	0FFFFh
		jg	loc_10148C
		mov	eax, [ebp+var_1854]
		test	eax, eax
		jle	loc_101158
		cmp	eax, 2
		jle	loc_101460
		mov	esi, [ebp+var_184C]
		movzx	eax, [ebp+var_1840]
		movzx	edx, [ebp+var_183E]
		movzx	ecx, [ebp+var_183C]
		cmp	eax, esi
		jge	loc_101430
		movzx	edx, dx
		cmp	esi, edx
		jle	loc_101430
		movzx	ecx, cx
		cmp	esi, ecx
		jle	loc_101430
		xor	esi, esi
		mov	[ebp+var_1874],	ebx
		mov	[ebp+var_1880],	edi
		jmp	loc_1012E2
; ---------------------------------------------------------------------------
		align 10h

loc_101250:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+2E8j
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+309j ...
		mov	ebx, [ebp+var_1874]
		add	esi, 3
		mov	eax, ds:physcollision
		movsx	ecx, word ptr [ebx+6Ch]
		lea	ebx, [ebp+var_34]
		mov	edx, [eax]
		mov	[esp+0Ch], ebx
		mov	ebx, [ebp+var_1870]
		mov	[esp], eax
		mov	[esp+14h], ecx
		lea	ecx, [ebp+var_28]
		mov	[esp+10h], ecx
		lea	ecx, [ebp+var_40]
		mov	[esp+8], ecx
		mov	[esp+4], ebx
		call	dword ptr [edx+34h]
		mov	eax, [ebp+var_1854]
		cmp	eax, esi
		jle	loc_1013A1

loc_10129B:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+33Bj
		lea	edx, [esi+2]
		cmp	eax, edx
		jle	loc_101460
		mov	ebx, [ebp+var_184C]
		movzx	eax, [ebp+esi*2+var_1840]
		movzx	edx, [ebp+esi*2+var_183E]
		movzx	ecx, [ebp+esi*2+var_183C]
		cmp	eax, ebx
		jge	loc_101430
		movzx	edx, dx
		cmp	ebx, edx
		jle	loc_101430
		movzx	ecx, cx
		cmp	ebx, ecx
		jle	loc_101430

loc_1012E2:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+1E4j
		mov	ebx, [ebp+var_1858]
		lea	eax, [eax+eax*2]
		lea	eax, [ebx+eax*4]
		mov	edi, [eax]
		mov	[ebp+var_40], edi
		mov	edi, [eax+4]
		mov	[ebp+var_3C], edi
		mov	eax, [eax+8]
		mov	[ebp+var_38], eax
		lea	eax, [edx+edx*2]
		lea	eax, [ebx+eax*4]
		mov	edx, [eax]
		mov	[ebp+var_34], edx
		mov	edx, [eax+4]
		mov	[ebp+var_30], edx
		mov	eax, [eax+8]
		mov	[ebp+var_2C], eax
		lea	eax, [ecx+ecx*2]
		mov	ecx, [ebp+arg_4]
		lea	eax, [ebx+eax*4]
		mov	edx, [eax]
		lea	ebx, [ebp+var_40]
		mov	[ebp+var_28], edx
		mov	edx, [eax+4]
		mov	[ebp+var_24], edx
		mov	edx, [ebp+arg_8]
		mov	eax, [eax+8]
		mov	[esp+4], ecx
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	[ebp+var_20], eax
		call	_Z12IsPointInBoxRK6VectorS1_S1_	; IsPointInBox(Vector  const&,Vector  const&,Vector  const&)
		test	al, al
		jnz	loc_101250
		mov	edx, [ebp+arg_8]
		lea	ebx, [ebp+var_34]
		mov	ecx, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	[esp+4], ecx
		call	_Z12IsPointInBoxRK6VectorS1_S1_	; IsPointInBox(Vector  const&,Vector  const&,Vector  const&)
		test	al, al
		jnz	loc_101250
		mov	edx, [ebp+arg_8]
		lea	ebx, [ebp+var_28]
		mov	ecx, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+8], edx
		mov	[esp+4], ecx
		call	_Z12IsPointInBoxRK6VectorS1_S1_	; IsPointInBox(Vector  const&,Vector  const&,Vector  const&)
		test	al, al
		jnz	loc_101250
		mov	eax, [ebp+var_1854]
		add	esi, 3
		cmp	eax, esi
		jg	loc_10129B

loc_1013A1:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+235j
		mov	edi, [ebp+var_1880]
		add	edi, 2
		cmp	edi, [ebp+var_1864]
		jnz	loc_101167
		lea	esi, [esi+0]
		lea	edi, [edi+0]

loc_1013C0:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+D9j
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+101j
		add	[ebp+var_1878],	1
		mov	eax, [ebp+var_187C]
		cmp	[ebp+var_1878],	eax
		jnz	loc_101116

loc_1013D9:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+9Cj
		lea	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z8EndTraceRP11TraceInfo_t ; EndTrace(TraceInfo_t *&)
		mov	eax, ds:physcollision
		mov	ecx, [ebp+var_1870]
		mov	edx, [eax]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], ecx
		mov	[esp], eax
		call	dword ptr [edx+38h]
		mov	edx, ds:physcollision
		mov	ebx, [ebp+var_1870]
		mov	ecx, [edx]
		mov	[ebp+var_1884],	eax
		mov	[esp+4], ebx
		mov	[esp], edx
		call	dword ptr [ecx+30h]
		mov	eax, [ebp+var_1884]
		jmp	short loc_101454
; ---------------------------------------------------------------------------
		align 10h

loc_101430:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+1BAj
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+1C5j ...
		lea	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z8EndTraceRP11TraceInfo_t ; EndTrace(TraceInfo_t *&)
		mov	eax, ds:physcollision
		mov	ebx, [ebp+var_1870]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ebx
		call	dword ptr [edx+30h]
		xor	eax, eax

loc_101454:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+3C7j
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+439j
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_101460:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+197j
					; CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector  const&,Vector  const&)+240j
		lea	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z8EndTraceRP11TraceInfo_t ; EndTrace(TraceInfo_t *&)
		mov	eax, ds:physcollision
		mov	ecx, [ebp+var_1870]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+30h]
		lea	esp, [ebp-0Ch]
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_10148C:				; CODE XREF: CEngineTrace::GetCollidableFromDisplacementsInAABB(Vector	const&,Vector  const&)+180j
		lea	eax, [ebp+var_1C]
		mov	[esp], eax
		call	_Z8EndTraceRP11TraceInfo_t ; EndTrace(TraceInfo_t *&)
		xor	eax, eax
		jmp	short loc_101454
_ZN12CEngineTrace36GetCollidableFromDisplacementsInAABBERK6VectorS2_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTraceServer::HandleEntityToCollideable(IHandleEntity *, ICollideable **, char	const**)
_ZN18CEngineTraceServer25HandleEntityToCollideableEP13IHandleEntityPP12ICollideablePPKc	proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceServero

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_C]
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+20h]
		test	eax, eax
		mov	[esi], eax
		jz	short loc_1014E8
		mov	dword ptr [edi], offset	aStaticProp ; "static prop"

loc_1014D5:				; CODE XREF: CEngineTraceServer::HandleEntityToCollideable(IHandleEntity *,ICollideable	**,char	 const**)+94j
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_1014E8:				; CODE XREF: CEngineTraceServer::HandleEntityToCollideable(IHandleEntity *,ICollideable	**,char	 const**)+2Dj
		test	ebx, ebx
		jz	short loc_101528
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		test	eax, eax
		jz	short loc_101528
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	[esi], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+14h]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+0Ch]
		mov	[edi], eax
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_101528:				; CODE XREF: CEngineTraceServer::HandleEntityToCollideable(IHandleEntity *,ICollideable	**,char	 const**)+4Aj
					; CEngineTraceServer::HandleEntityToCollideable(IHandleEntity *,ICollideable **,char  const**)+56j
		mov	dword ptr [esi], 0
		mov	dword ptr [edi], offset	aNull_1	; "<null>"
		jmp	short loc_1014D5
_ZN18CEngineTraceServer25HandleEntityToCollideableEP13IHandleEntityPP12ICollideablePPKc	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTraceServer::GetCollideable(IHandleEntity *)
_ZN18CEngineTraceServer14GetCollideableEP13IHandleEntity proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceServero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_4]
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ebx
		call	dword ptr [edx+20h]
		test	eax, eax
		jz	short loc_101568
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_101568:				; CODE XREF: CEngineTraceServer::GetCollideable(IHandleEntity *)+1Dj
		mov	eax, [ebx]
		mov	[ebp+arg_0], ebx
		mov	eax, [eax+10h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	eax
_ZN18CEngineTraceServer14GetCollideableEP13IHandleEntity endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTraceServer::SetTraceEntity(ICollideable *, CGameTrace	*)
_ZN18CEngineTraceServer14SetTraceEntityEP12ICollideableP10CGameTrace proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceServero

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ebp+var_4], esi
		mov	eax, [ebp+arg_4]
		fld	dword ptr [ebx+2Ch]
		fld1
		fcomip	st, st(1)
		fstp	st
		ja	short loc_1015A3
		cmp	byte ptr [ebx+36h], 0
		jz	short loc_1015F8

loc_1015A3:				; CODE XREF: CEngineTraceServer::SetTraceEntity(ICollideable *,CGameTrace *)+1Bj
					; CEngineTraceServer::SetTraceEntity(ICollideable *,CGameTrace *)+7Ej
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		mov	esi, eax
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edx, [eax]
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	al, al
		jz	short loc_101600
		mov	edx, dword ptr ds:sv+1A8h
		xor	eax, eax
		test	byte ptr [edx],	4
		jz	short loc_1015D1
		mov	eax, [edx+0Ch]

loc_1015D1:				; CODE XREF: CEngineTraceServer::SetTraceEntity(ICollideable *,CGameTrace *)+4Cj
		mov	[ebx+4Ch], eax
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edx, [eax]
		mov	[esp+4], esi
		mov	[esp], eax
		call	dword ptr [edx+30h]
		add	eax, 1
		mov	[ebx+50h], eax

loc_1015EB:				; CODE XREF: CEngineTraceServer::SetTraceEntity(ICollideable *,CGameTrace *)+7Cj
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_1015F8:				; CODE XREF: CEngineTraceServer::SetTraceEntity(ICollideable *,CGameTrace *)+21j
		cmp	byte ptr [ebx+37h], 0
		jz	short loc_1015EB
		jmp	short loc_1015A3
; ---------------------------------------------------------------------------

loc_101600:				; CODE XREF: CEngineTraceServer::SetTraceEntity(ICollideable *,CGameTrace *)+3Fj
		mov	[ebx+4Ch], esi
		mov	ebx, [ebp+var_8]
		mov	esi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN18CEngineTraceServer14SetTraceEntityEP12ICollideableP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::SetupLeafAndEntityListRay(Ray_t	 const&, CTraceListData	&)
_ZN12CEngineTrace25SetupLeafAndEntityListRayERK5Ray_tR14CTraceListData proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		cmp	byte ptr [ebx+41h], 0
		jz	short loc_1016A0
		lea	eax, [esi+4]
		mov	dword ptr [esi+4], 0
		mov	[esp+0Ch], eax
		mov	eax, [esi+14h]
		mov	[esp+8], eax
		mov	eax, [esi+8]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_Z14CM_RayLeafnumsRK5Ray_tPiiRi	; CM_RayLeafnums(Ray_t	const&,int *,int,int &)
		mov	dword ptr [esi+1Ch], 0
		call	_Z16SpatialPartitionv ;	SpatialPartition(void)
		mov	edx, eax
		mov	eax, [eax]
		mov	eax, [eax+40h]
		mov	[ebp+var_3C], eax
		mov	eax, [edi]
		mov	[esp], edi
		mov	[ebp+var_40], edx
		call	dword ptr [eax+54h]
		mov	edx, [ebp+var_40]
		mov	[esp+10h], esi
		mov	[esp+8], ebx
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+4], eax
		mov	[esp], edx
		call	[ebp+var_3C]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1016A0:				; CODE XREF: CEngineTrace::SetupLeafAndEntityListRay(Ray_t  const&,CTraceListData &)+1Cj
		fld	dword ptr [ebx]
		lea	edx, [ebp+var_24]
		fld	dword ptr [ebx+30h]
		fld	st(1)
		mov	eax, [edi]
		fsub	st, st(1)
		fstp	[ebp+var_30]
		fld	dword ptr [ebx+4]
		fld	dword ptr [ebx+34h]
		fld	st(1)
		fsub	st, st(1)
		fstp	[ebp+var_2C]
		fld	dword ptr [ebx+8]
		fld	dword ptr [ebx+38h]
		mov	[esp+8], edx
		lea	edx, [ebp+var_30]
		fld	st(1)
		mov	[esp+0Ch], esi
		fsub	st, st(1)
		mov	[esp], edi
		mov	[esp+4], edx
		fstp	[ebp+var_28]
		fxch	st(5)
		faddp	st(4), st
		fxch	st(3)
		fstp	[ebp+var_24]
		faddp	st(1), st
		fstp	[ebp+var_20]
		faddp	st(1), st
		fstp	[ebp+var_1C]
		call	dword ptr [eax+18h]
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CEngineTrace25SetupLeafAndEntityListRayERK5Ray_tR14CTraceListData endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::GetPointContents(Vector	 const&, IHandleEntity **)
_ZN12CEngineTrace16GetPointContentsERK6VectorPP13IHandleEntity proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_4D		= byte ptr -4Dh
var_4C		= dword	ptr -4Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		xor	edi, edi
		push	esi
		push	ebx
		sub	esp, 8Ch
		mov	[ebp+var_20], 0
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_1C], 0
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_58], 0
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_54], 0
		test	eax, eax
		jz	short loc_1017A8
		lea	edx, [ebp+var_20]
		mov	[esp], eax
		mov	[esp+4], edx
		mov	dword ptr [esp+2Ch], offset aCenginetrace_g ; "CEngineTrace_GetPointContents"
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN12CEngineTrace16GetPointContentsERK6VectorPP13IHandleEntityE6tm_fmt ; CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)::tm_fmt
		mov	dword ptr [esp+1Ch], 180h
		mov	dword ptr [esp+18h], offset aHomeBuildbot_9 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		call	dword ptr [eax+50h]
		mov	eax, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		mov	edi, ds:g_Telemetry+0Ch
		mov	[ebp+var_58], eax
		mov	[ebp+var_54], edx

loc_1017A8:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+37j
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		setnz	[ebp+var_4D]
		jz	short loc_1017CC
		mov	edx, dword ptr g_VProfCurrentProfile+19B8h
		mov	[ebp+var_4C], edx
		call	ThreadGetCurrentId
		cmp	[ebp+var_4C], eax
		jz	loc_101940

loc_1017CC:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+B3j
					; CEngineTrace::GetPointContents(Vector	 const&,IHandleEntity **)+289j
		add	dword ptr [ebx+8], 1
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_Z16CM_PointContentsRK6Vectori ; CM_PointContents(Vector  const&,int)
		test	eax, 0FC0000h
		mov	[ebp+var_4C], eax
		jnz	loc_101888
		cmp	eax, 1
		jnz	loc_10188F
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	loc_10192F

loc_101802:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+229j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		mov	edx, [ebp+arg_8]
		mov	esi, [ebp+var_4C]
		mov	[edx], eax

loc_101819:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+200j
					; CEngineTrace::GetPointContents(Vector	 const&,IHandleEntity **)+215j	...
		cmp	[ebp+var_4D], 0
		jz	short loc_101845
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_101832
		mov	edx, dword ptr g_VProfCurrentProfile+100Ch
		test	edx, edx
		jz	short loc_101845

loc_101832:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+126j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jz	loc_101990

loc_101845:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+11Dj
					; CEngineTrace::GetPointContents(Vector	 const&,IHandleEntity **)+130j	...
		test	edi, edi
		jz	short loc_101875
		mov	eax, [ebp+var_58]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp+var_54]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_101875:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+147j
		add	esp, 8Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_101888:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+E8j
		mov	[ebp+var_4C], 20h

loc_10188F:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+F1j
		mov	eax, [esi]
		mov	[ebp+var_3C], (offset _ZTV18CPointContentsEnum+8)
		mov	[ebp+var_38], 0
		mov	[ebp+var_30], ebx
		mov	[ebp+var_34], 0
		mov	[ebp+var_2C], eax
		mov	eax, [esi+4]
		mov	[ebp+var_28], eax
		mov	eax, [esi+8]
		mov	[ebp+var_24], eax
		call	_Z16SpatialPartitionv ;	SpatialPartition(void)
		mov	[ebp+var_5C], eax
		mov	eax, [eax]
		mov	eax, [eax+44h]
		mov	[ebp+var_60], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		mov	[esp+4], eax
		mov	eax, [ebp+var_5C]
		lea	edx, [ebp+var_3C]
		mov	[esp+10h], edx
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], esi
		mov	[esp], eax
		call	[ebp+var_60]
		mov	esi, [ebp+var_38]
		test	esi, 0FC0000h
		jz	short loc_101920

loc_1018FB:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+222j
		mov	ebx, [ebp+arg_8]
		test	ebx, ebx
		jz	loc_101819
		mov	eax, [ebp+var_34]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx]
		mov	edx, [ebp+arg_8]
		mov	[edx], eax
		jmp	loc_101819
; ---------------------------------------------------------------------------
		align 10h

loc_101920:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+1F9j
		test	esi, esi
		jnz	short loc_1018FB
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jnz	loc_101802

loc_10192F:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+FCj
		mov	esi, [ebp+var_4C]
		jmp	loc_101819
; ---------------------------------------------------------------------------
		align 10h

loc_101940:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+C6j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCenginetrace_g	; "CEngineTrace_GetPointContents"
		jz	short loc_10197A
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCenginetrace_g ; "CEngineTrace_GetPointContents"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_10197A:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+24Bj
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_1017CC
; ---------------------------------------------------------------------------
		align 10h

loc_101990:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+13Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_1019C0
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_1019AE:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+2C5j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_101845
; ---------------------------------------------------------------------------
		align 10h

loc_1019C0:				; CODE XREF: CEngineTrace::GetPointContents(Vector  const&,IHandleEntity **)+29Fj
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_1019AE
_ZN12CEngineTrace16GetPointContentsERK6VectorPP13IHandleEntity endp

; ---------------------------------------------------------------------------
		mov	esi, eax

loc_1019C9:				; CODE XREF: .text:00101A07j
					; .text:00101A19j ...
		test	edi, edi
		jz	short loc_1019F9
		mov	eax, [ebp-58h]
		mov	dword ptr [esp+14h], 0
		mov	edx, [ebp-54h]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp], edi
		mov	[esp+4], eax
		mov	[esp+8], edx
		call	dword ptr [edi+54h]

loc_1019F9:				; CODE XREF: .text:001019CBj
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		cmp	byte ptr [ebp-4Dh], 0
		mov	esi, eax
		jz	short loc_1019C9
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	short loc_101A1B
		cmp	dword ptr g_VProfCurrentProfile+100Ch, 0
		jz	short loc_1019C9

loc_101A1B:				; CODE XREF: .text:00101A10j
		mov	ebx, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	ebx, eax
		jnz	short loc_1019C9
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_101A48
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_101A48:				; CODE XREF: .text:00101A39j
		cmp	dword ptr g_VProfCurrentProfile+1014h, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_1019C9
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::GetPointContents_Collideable(ICollideable *, Vector  const&)
_ZN12CEngineTrace28GetPointContents_CollideableEP12ICollideableRK6Vector proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_BC		= byte ptr -0BCh
var_85		= byte ptr -85h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= byte ptr -28h
var_27		= byte ptr -27h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ECh
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	esi, eax
		mov	eax, [eax]
		mov	eax, [eax+28h]
		mov	[ebp+var_D0], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	[esp], esi
		mov	[esp+4], eax
		call	[ebp+var_D0]
		test	al, al
		jz	loc_101B40
		mov	edx, [edi+4]
		mov	[ebp+var_58], 0
		xor	esi, esi
		mov	eax, [edi+8]
		mov	[ebp+var_54], 0
		mov	ecx, [edi]
		mov	[ebp+var_50], 0
		mov	[ebp+var_27], 0
		mov	[ebp+var_64], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_60], eax
		mov	[ebp+var_30], 0
		mov	[ebp+var_34], 0
		mov	eax, [edx]
		lea	edx, [ebp+var_BC]
		mov	[ebp+var_28], 1
		mov	[esp+10h], edx
		lea	edx, [ebp+var_68]
		mov	[esp+4], edx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_38], 0
		mov	[ebp+var_40], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_48], 0
		mov	[ebp+var_68], ecx
		mov	[esp+0Ch], ebx
		mov	dword ptr [esp+8], 0FFFFFFFFh
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		cmp	[ebp+var_85], 0
		jnz	loc_101BB0

loc_101B32:				; CODE XREF: CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+ECj
					; CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+F8j ...
		add	esp, 0ECh
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_101B40:				; CODE XREF: CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+3Aj
		mov	eax, [ebx]
		mov	[esp], ebx
		xor	esi, esi
		call	dword ptr [eax+38h]
		test	al, 20h
		jz	short loc_101B32
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+24h]
		test	eax, eax
		jz	short loc_101B32
		cmp	dword ptr [eax+70h], 1
		jnz	short loc_101B32
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	[ebp+var_CC], 0FFFFFFFFh
		cmp	eax, 7FFh
		mov	esi, eax
		jbe	short loc_101BD0

loc_101B7B:				; CODE XREF: CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+17Aj
					; CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+189j ...
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		mov	esi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+var_CC]
		mov	[esp+0Ch], esi
		mov	[esp+8], eax
		mov	[esp], edi
		mov	[esp+4], edx
		call	_Z27CM_TransformedPointContentsRK6VectoriS1_RK6QAngle ;	CM_TransformedPointContents(Vector  const&,int,Vector  const&,QAngle  const&)
		mov	esi, eax
		jmp	loc_101B32
; ---------------------------------------------------------------------------
		align 10h

loc_101BB0:				; CODE XREF: CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+CCj
		mov	edx, [ebp+arg_0]
		mov	si, 1
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4Ch]
		add	esp, 0ECh
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_101BD0:				; CODE XREF: CEngineTrace::GetPointContents_Collideable(ICollideable *,Vector  const&)+119j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+24h]
		test	eax, eax
		jz	short loc_101B7B
		sub	esi, 1
		mov	[esp], esi
		call	_Z20CM_InlineModelNumberi ; CM_InlineModelNumber(int)
		test	eax, eax
		jz	short loc_101B7B
		mov	eax, [eax+24h]
		mov	[ebp+var_CC], eax
		jmp	short loc_101B7B
_ZN12CEngineTrace28GetPointContents_CollideableEP12ICollideableRK6Vector endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToCustom(Ray_t  const&, unsigned	int, ICollideable *, CGameTrace	*)
_ZN12CEngineTrace15ClipRayToCustomERK5Ray_tjP12ICollideableP10CGameTrace proc near

arg_0		= dword	ptr  8
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_10]
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_C], ecx
		pop	ebp
		mov	eax, [edx+18h]
		jmp	eax
_ZN12CEngineTrace15ClipRayToCustomERK5Ray_tjP12ICollideableP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToHitboxes(Ray_t	 const&, unsigned int, ICollideable *, CGameTrace *)
_ZN12CEngineTrace17ClipRayToHitboxesERK5Ray_tjP12ICollideableP10CGameTrace proc	near
					; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+20Cp

var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_43		= byte ptr -43h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= word ptr -38h
var_36		= byte ptr -36h
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_4]
		lea	edx, [ebp+var_6C]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], esi
		mov	ebx, [ebp+arg_10]
		xor	esi, esi
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_C]
		mov	[esp], edx
		mov	[ebp+var_80], eax
		mov	[ebp+var_84], edx
		call	_Z13CM_ClearTraceP10CGameTrace ; CM_ClearTrace(CGameTrace *)
		mov	eax, [ebp+var_80]
		mov	ecx, [ebx+30h]
		mov	edx, [ebp+var_84]
		fld	dword ptr [eax+20h]
		fadd	dword ptr [eax]
		mov	[ebp+var_3C], ecx
		cmp	byte ptr [eax+40h], 0
		fst	[ebp+var_6C]
		fld	dword ptr [eax+24h]
		fadd	dword ptr [eax+4]
		fst	[ebp+var_68]
		fld	dword ptr [eax+28h]
		fadd	dword ptr [eax+8]
		fst	[ebp+var_64]
		fxch	st(2)
		fadd	dword ptr [eax+10h]
		fstp	[ebp+var_60]
		fadd	dword ptr [eax+14h]
		fstp	[ebp+var_5C]
		fadd	dword ptr [eax+18h]
		fstp	[ebp+var_58]
		jnz	short loc_101CA8

loc_101C94:				; CODE XREF: CEngineTrace::ClipRayToHitboxes(Ray_t  const&,uint,ICollideable *,CGameTrace *)+A1j
					; CEngineTrace::ClipRayToHitboxes(Ray_t	 const&,uint,ICollideable *,CGameTrace *)+183j	...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_101CA8:				; CODE XREF: CEngineTrace::ClipRayToHitboxes(Ray_t  const&,uint,ICollideable *,CGameTrace *)+72j
		mov	ecx, [edi]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+4], eax
		mov	[esp], edi
		mov	[esp+8], edx
		call	dword ptr [ecx+1Ch]
		test	al, al
		jz	short loc_101C94
		fld	[ebp+var_40]
		fld1
		fcomip	st, st(1)
		fstp	st
		ja	short loc_101CD8
		cmp	[ebp+var_36], 0
		jz	loc_101E00

loc_101CD8:				; CODE XREF: CEngineTrace::ClipRayToHitboxes(Ray_t  const&,uint,ICollideable *,CGameTrace *)+ACj
					; CEngineTrace::ClipRayToHitboxes(Ray_t	 const&,uint,ICollideable *,CGameTrace *)+1E4j
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+34h]
		cmp	eax, 6
		jz	loc_101DC8
		mov	eax, [ebx+8]
		mov	edx, [ebx]
		mov	ecx, [ebx+4]
		mov	esi, [ebx+38h]
		mov	[ebp+var_88], eax
		mov	eax, [ebp+var_6C]
		mov	[ebp+var_7C], esi
		mov	[ebx], eax
		mov	eax, [ebp+var_68]
		mov	[ebx+4], eax
		mov	eax, [ebp+var_64]
		mov	[ebx+8], eax
		mov	eax, [ebp+var_60]
		mov	[ebx+0Ch], eax
		mov	eax, [ebp+var_5C]
		mov	[ebx+10h], eax
		mov	eax, [ebp+var_58]
		mov	[ebx+14h], eax
		mov	eax, [ebp+var_54]
		mov	[ebx+18h], eax
		mov	eax, [ebp+var_50]
		mov	[ebx+1Ch], eax
		mov	eax, [ebp+var_4C]
		mov	[ebx+20h], eax
		mov	eax, [ebp+var_48]
		mov	[ebx+24h], eax
		movzx	eax, [ebp+var_44]
		mov	[ebx+28h], al
		movzx	eax, [ebp+var_43]
		mov	[ebx+29h], al
		movzx	eax, [ebp+var_42]
		mov	[ebx+2Ah], ax
		mov	eax, [ebp+var_40]
		mov	[ebx+2Ch], eax
		mov	esi, [ebp+var_34]
		mov	eax, [ebp+var_3C]
		mov	edi, [ebp+var_2C]
		mov	[ebx+38h], esi
		mov	esi, [ebp+var_30]
		mov	[ebx+30h], eax
		movzx	eax, [ebp+var_38]
		mov	[ebx+40h], edi
		mov	[ebx+3Ch], esi
		mov	esi, [ebp+var_28]
		mov	[ebx+34h], ax
		movzx	eax, [ebp+var_36]
		mov	[ebx+44h], esi
		movzx	esi, [ebp+var_24]
		mov	[ebx+36h], al
		movzx	eax, [ebp+var_35]
		mov	[ebx+48h], si
		mov	esi, [ebp+var_20]
		test	al, al
		mov	[ebx+37h], al
		mov	[ebx+4Ch], esi
		mov	esi, [ebp+var_1C]
		mov	[ebx+50h], esi
		mov	esi, 1
		jz	loc_101C94
		mov	edi, [ebp+var_88]
		mov	[ebx], edx
		mov	eax, [ebp+var_7C]
		mov	[ebx+4], ecx
		mov	[ebx+8], edi
		mov	[ebx+38h], eax
		jmp	loc_101C94
; ---------------------------------------------------------------------------
		align 8

loc_101DC8:				; CODE XREF: CEngineTrace::ClipRayToHitboxes(Ray_t  const&,uint,ICollideable *,CGameTrace *)+C3j
		mov	eax, [ebp+var_3C]
		mov	esi, 1
		mov	edx, [ebp+var_2C]
		mov	[ebx+30h], eax
		mov	eax, [ebp+var_28]
		mov	[ebx+40h], edx
		mov	[ebx+44h], eax
		mov	eax, [ebp+var_1C]
		mov	[ebx+50h], eax
		movzx	eax, [ebp+var_24]
		mov	[ebx+48h], ax
		mov	eax, [ebp+var_30]
		mov	[ebx+3Ch], eax
		jmp	loc_101C94
; ---------------------------------------------------------------------------
		align 10h

loc_101E00:				; CODE XREF: CEngineTrace::ClipRayToHitboxes(Ray_t  const&,uint,ICollideable *,CGameTrace *)+B2j
		cmp	[ebp+var_35], 0
		jnz	loc_101CD8
		mov	[esp], ebx
		mov	esi, 1
		call	_Z13CM_ClearTraceP10CGameTrace ; CM_ClearTrace(CGameTrace *)
		mov	eax, [ebp+var_6C]
		mov	[ebx], eax
		mov	eax, [ebp+var_68]
		mov	[ebx+4], eax
		mov	eax, [ebp+var_64]
		mov	[ebx+8], eax
		mov	eax, [ebp+var_60]
		mov	[ebx+0Ch], eax
		mov	eax, [ebp+var_5C]
		mov	[ebx+10h], eax
		mov	eax, [ebp+var_58]
		mov	[ebx+14h], eax
		jmp	loc_101C94
_ZN12CEngineTrace17ClipRayToHitboxesERK5Ray_tjP12ICollideableP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToVPhysics(Ray_t	 const&, unsigned int, ICollideable *, studiohdr_t *, CGameTrace *)
_ZN12CEngineTrace17ClipRayToVPhysicsERK5Ray_tjP12ICollideableP11studiohdr_tP10CGameTrace proc near
					; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+D0p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_C]
		mov	[ebp+var_8], esi
		xor	esi, esi
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_10]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+34h]
		cmp	eax, 6
		jz	short loc_101E78

loc_101E64:				; CODE XREF: CEngineTrace::ClipRayToVPhysics(Ray_t  const&,uint,ICollideable *,studiohdr_t *,CGameTrace	*)+70j
					; CEngineTrace::ClipRayToVPhysics(Ray_t	 const&,uint,ICollideable *,studiohdr_t	*,CGameTrace *)+77j ...
		mov	eax, esi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_101E78:				; CODE XREF: CEngineTrace::ClipRayToVPhysics(Ray_t  const&,uint,ICollideable *,studiohdr_t *,CGameTrace	*)+22j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+24h]
		test	edi, edi
		mov	edx, eax
		jz	loc_101F20
		mov	eax, ds:g_pMDLCache
		mov	[ebp+var_1C], edi
		mov	[ebp+var_20], (offset _ZTV17CStudioConvexInfo+8)
		movzx	edx, word ptr [edx+94h]
		mov	ecx, [eax]
		mov	[esp], eax
		mov	[esp+4], edx
		call	dword ptr [ecx+30h]
		test	eax, eax
		mov	edi, eax
		jz	short loc_101E64
		test	word ptr [eax],	7FFFh
		jz	short loc_101E64
		mov	eax, ds:physcollision
		mov	eax, [eax]
		mov	eax, [eax+88h]
		mov	[ebp+var_2C], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		mov	esi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+arg_14]
		mov	[esp+18h], esi
		mov	[esp+14h], eax
		mov	ecx, [ebp+arg_8]
		mov	esi, 1
		mov	[esp+1Ch], edx
		mov	edx, [ebp+arg_4]
		mov	eax, [edi+4]
		mov	eax, [eax]
		mov	[esp+8], ecx
		mov	[esp+4], edx
		mov	[esp+10h], eax
		lea	eax, [ebp+var_20]
		mov	[esp+0Ch], eax
		mov	eax, ds:physcollision
		mov	[esp], eax
		call	[ebp+var_2C]
		jmp	loc_101E64
; ---------------------------------------------------------------------------
		align 10h

loc_101F20:				; CODE XREF: CEngineTrace::ClipRayToVPhysics(Ray_t  const&,uint,ICollideable *,studiohdr_t *,CGameTrace	*)+44j
		mov	ecx, [ebp+arg_4]
		cmp	byte ptr [ecx+40h], 0
		jz	short loc_101F33
		cmp	dword ptr [eax+70h], 1
		jz	loc_101E64

loc_101F33:				; CODE XREF: CEngineTrace::ClipRayToVPhysics(Ray_t  const&,uint,ICollideable *,studiohdr_t *,CGameTrace	*)+E7j
		mov	eax, [ebx]
		mov	[ebp+var_30], edx
		xor	esi, esi
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	edx, [ebp+var_30]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z19CM_VCollideForModeliPK7model_t ; CM_VCollideForModel(int,model_t  const*)
		mov	edx, [ebp+var_30]
		test	eax, eax
		mov	edi, eax
		jz	loc_101E64
		test	word ptr [eax],	7FFFh
		jz	loc_101E64
		mov	[ebp+var_20], (offset _ZTV16CBrushConvexInfo+8)
		lea	eax, [ebp+var_20]
		xor	esi, esi
		mov	[ebp+var_1C], offset g_BSPData
		cmp	dword ptr [edx+70h], 1
		cmovz	esi, eax
		mov	eax, ds:physcollision
		mov	eax, [eax]
		mov	eax, [eax+88h]
		mov	[ebp+var_2C], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_30], edx
		call	dword ptr [eax+28h]
		mov	ecx, [ebp+arg_14]
		mov	edx, [ebp+var_30]
		mov	[esp+14h], eax
		mov	[esp+1Ch], ecx
		mov	ecx, [ebp+arg_4]
		mov	[esp+18h], edx
		mov	edx, [ebp+arg_8]
		mov	eax, [edi+4]
		mov	eax, [eax]
		mov	[esp+0Ch], esi
		mov	esi, 1
		mov	[esp+8], edx
		mov	[esp+4], ecx
		mov	[esp+10h], eax
		mov	eax, ds:physcollision
		mov	[esp], eax
		call	[ebp+var_2C]
		jmp	loc_101E64
_ZN12CEngineTrace17ClipRayToVPhysicsERK5Ray_tjP12ICollideableP11studiohdr_tP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToBSP(Ray_t  const&, unsigned int, ICollideable *, CGameTrace *)
_ZN12CEngineTrace12ClipRayToBSPERK5Ray_tjP12ICollideableP10CGameTrace proc near
					; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+339p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_C]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		sub	eax, 1
		mov	[esp], eax
		call	_Z20CM_InlineModelNumberi ; CM_InlineModelNumber(int)
		mov	esi, [eax+24h]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+arg_10]
		mov	[esp+10h], edi
		mov	[esp+0Ch], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+4], esi
		mov	[esp+14h], edx
		mov	[esp+8], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z22CM_TransformedBoxTraceRK5Ray_tiiRK6VectorRK6QAngleR10CGameTrace ; CM_TransformedBoxTrace(Ray_t  const&,int,int,Vector  const&,QAngle  const&,CGameTrace &)
		mov	ebx, [ebp+var_C]
		mov	eax, 1
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CEngineTrace12ClipRayToBSPERK5Ray_tjP12ICollideableP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToBBox(Ray_t  const&, unsigned int, ICollideable	*, CGameTrace *)
_ZN12CEngineTrace13ClipRayToBBoxERK5Ray_tjP12ICollideableP10CGameTrace proc near
					; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+23Cp

var_D8		= dword	ptr -0D8h
var_CC		= dword	ptr -0CCh
var_C8		= byte ptr -0C8h
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= byte ptr -88h
var_87		= byte ptr -87h
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0ECh
		mov	ebx, [ebp+arg_C]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_10]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+34h]
		xor	edx, edx
		cmp	eax, 2
		jnz	short loc_1020A8
		jmp	short loc_1020B8
; ---------------------------------------------------------------------------
		align 10h

loc_1020A0:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+27Bj
		fstp	st
		lea	esi, [esi+0]

loc_1020A8:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+22j
					; CEngineTrace::ClipRayToBBox(Ray_t  const&,uint,ICollideable *,CGameTrace *)+2A5j ...
		add	esp, 0ECh
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_1020B8:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+24j
		xor	edx, edx
		cmp	byte ptr [esi+40h], 0
		jnz	loc_102320
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+10h]
		test	eax, eax
		jz	loc_102320
		mov	edx, [esi+30h]
		mov	[ebp+var_98], edx
		mov	edx, [esi+34h]
		mov	[ebp+var_94], edx
		mov	edx, [esi+38h]
		mov	[ebp+var_90], edx
		mov	edx, [esi+3Ch]
		mov	[esp+4], eax
		lea	eax, [esi+10h]
		mov	[esp], eax
		mov	[ebp+var_8C], edx
		lea	edx, [ebp+var_B8]
		mov	[esp+8], edx
		call	_Z13VectorIRotatePKfRK11matrix3x4_tPf ;	VectorIRotate(float  const*,matrix3x4_t	 const&,float *)
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+var_C8]
		mov	[esp+8], eax
		fldz
		fst	[ebp+var_A8]
		fst	[ebp+var_A4]
		mov	eax, [edx+10h]
		fst	[ebp+var_A0]
		fstp	[ebp+var_D8]
		mov	[esp], esi
		mov	[esp+4], eax
		call	_Z16VectorITransformPKfRK11matrix3x4_tPf ; VectorITransform(float  const*,matrix3x4_t  const&,float *)
		fld	[ebp+var_B8]
		fld	[ebp+var_D8]
		fcomip	st, st(1)
		jz	loc_102410
		fdivr	ds:flt_1EBCFC

loc_10215F:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+3A8j
		fld	[ebp+var_B4]
		fldz
		fcomip	st, st(1)
		jz	loc_102430
		fld1
		fdivrp	st(1), st

loc_102173:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+3C8j
		fld	[ebp+var_B0]
		fldz
		fcomip	st, st(1)
		jz	loc_102420
		fdivr	ds:flt_1EBCFC
		fxch	st(2)

loc_10218B:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+3BAj
		mov	edx, [ebp+arg_0]
		fstp	[ebp+var_58]
		mov	eax, [ebx]
		fstp	[ebp+var_54]
		fstp	[ebp+var_50]
		mov	ecx, [edx+10h]
		mov	[esp], ebx
		mov	[ebp+var_CC], ecx
		call	dword ptr [eax+28h]
		mov	ecx, [ebp+var_CC]
		lea	edx, [ebp+var_3C]
		mov	[esp+8], edx
		mov	[esp], eax
		mov	[esp+4], ecx
		call	_Z16VectorITransformPKfRK11matrix3x4_tPf ; VectorITransform(float  const*,matrix3x4_t  const&,float *)
		movzx	eax, byte ptr [esi+40h]
		mov	[ebp+var_88], al
		movzx	eax, byte ptr [esi+41h]
		mov	[ebp+var_87], al
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		fld	dword ptr [eax]
		fadd	[ebp+var_3C]
		fstp	[ebp+var_78]
		fld	dword ptr [eax+4]
		fadd	[ebp+var_38]
		fstp	[ebp+var_74]
		fld	dword ptr [eax+8]
		fadd	[ebp+var_34]
		mov	eax, [ebx]
		mov	[esp], ebx
		fstp	[ebp+var_70]
		call	dword ptr [eax+10h]
		lea	ecx, [ebp+var_C8]
		fld	dword ptr [eax]
		fadd	[ebp+var_3C]
		fstp	[ebp+var_68]
		fld	dword ptr [eax+4]
		fadd	[ebp+var_38]
		fstp	[ebp+var_64]
		fld	dword ptr [eax+8]
		lea	eax, [ebp+var_68]
		mov	[esp+10h], edi
		fadd	[ebp+var_34]
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_78]
		mov	[esp+8], eax
		lea	eax, [ebp+var_58]
		mov	[esp+4], eax
		mov	[esp], ecx
		fstp	[ebp+var_60]
		call	_Z19IntersectRayWithBoxRK5Ray_tRK13VectorAlignedS4_S4_P10CGameTrace ; IntersectRayWithBox(Ray_t	 const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)
		fld	dword ptr [edi+2Ch]
		fld1
		fcomip	st, st(1)
		fstp	st
		ja	short loc_102255
		cmp	byte ptr [edi+36h], 0
		jz	loc_102440

loc_102255:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+1D9j
					; CEngineTrace::ClipRayToBBox(Ray_t  const&,uint,ICollideable *,CGameTrace *)+3D4j
		mov	eax, [edi+18h]
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_30], eax
		mov	eax, [edi+1Ch]
		mov	[ebp+var_2C], eax
		mov	eax, [edi+20h]
		mov	[ebp+var_28], eax
		lea	eax, [edi+18h]
		mov	[esp+8], eax
		mov	eax, [edx+10h]
		mov	[esp+4], eax
		lea	eax, [ebp+var_30]
		mov	[esp], eax
		call	_Z12VectorRotatePKfRK11matrix3x4_tPf ; VectorRotate(float  const*,matrix3x4_t  const&,float *)
		fld	dword ptr [esi+20h]
		fadd	dword ptr [esi]
		fst	dword ptr [edi]
		fld	dword ptr [esi+24h]
		fadd	dword ptr [esi+4]
		fst	dword ptr [edi+4]
		fld	dword ptr [esi+28h]
		fadd	dword ptr [esi+8]
		fst	dword ptr [edi+8]
		fld	dword ptr [edi+2Ch]
		fld1
		fcomip	st, st(1)
		jnz	loc_102470
		fstp	st
		fld	dword ptr [esi+10h]
		faddp	st(3), st
		fxch	st(2)
		fst	dword ptr [edi+0Ch]
		fld	dword ptr [esi+14h]
		faddp	st(2), st
		fxch	st(1)
		fst	dword ptr [edi+10h]
		fld	dword ptr [esi+18h]
		faddp	st(3), st
		fxch	st(2)
		fst	dword ptr [edi+14h]
		fxch	st(2)

loc_1022CB:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+424j
		fmul	dword ptr [edi+1Ch]
		fxch	st(1)
		mov	edx, 1
		fmul	dword ptr [edi+18h]
		faddp	st(1), st
		fxch	st(1)
		fmul	dword ptr [edi+20h]
		faddp	st(1), st
		fstp	dword ptr [edi+24h]
		fld	dword ptr [edi+38h]
		fld1
		fcomip	st, st(1)
		jbe	loc_1020A0
		fld	dword ptr [esi+14h]
		mov	edx, 1
		fmul	st, st(1)
		fld	dword ptr [esi+18h]
		fmul	st, st(2)
		fxch	st(2)
		fmul	dword ptr [esi+10h]
		fadd	dword ptr [edi]
		fstp	dword ptr [edi]
		fadd	dword ptr [edi+4]
		fstp	dword ptr [edi+4]
		fadd	dword ptr [edi+8]
		fstp	dword ptr [edi+8]
		jmp	loc_1020A8
; ---------------------------------------------------------------------------
		align 10h

loc_102320:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+4Ej
					; CEngineTrace::ClipRayToBBox(Ray_t  const&,uint,ICollideable *,CGameTrace *)+5Cj
		fldz

loc_102322:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+2CEj
		fld	dword ptr [esi+edx+10h]
		fcomi	st, st(1)
		jz	loc_1023F8
		fdivr	ds:flt_1EBCFC
		fstp	[ebp+edx+var_24]

loc_102338:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+392j
		add	edx, 4
		cmp	edx, 0Ch
		jnz	short loc_102322
		fstp	st
		mov	eax, [ebp+var_24]
		mov	[ebp+var_58], eax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_54], eax
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_50], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_CC], edx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+var_CC]
		fld	dword ptr [edx]
		fadd	dword ptr [eax]
		fstp	[ebp+var_78]
		fld	dword ptr [edx+4]
		fadd	dword ptr [eax+4]
		fstp	[ebp+var_74]
		fld	dword ptr [edx+8]
		fadd	dword ptr [eax+8]
		mov	eax, [ebx]
		mov	[esp], ebx
		fstp	[ebp+var_70]
		call	dword ptr [eax+10h]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_CC], edx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+var_CC]
		fld	dword ptr [edx]
		fadd	dword ptr [eax]
		fstp	[ebp+var_68]
		fld	dword ptr [edx+4]
		fadd	dword ptr [eax+4]
		fstp	[ebp+var_64]
		fld	dword ptr [edx+8]
		fadd	dword ptr [eax+8]
		lea	eax, [ebp+var_68]
		mov	[esp+10h], edi
		mov	[esp+0Ch], eax
		lea	eax, [ebp+var_78]
		mov	[esp+8], eax
		lea	eax, [ebp+var_58]
		mov	[esp], esi
		mov	[esp+4], eax
		fstp	[ebp+var_60]
		call	_Z19IntersectRayWithBoxRK5Ray_tRK13VectorAlignedS4_S4_P10CGameTrace ; IntersectRayWithBox(Ray_t	 const&,VectorAligned  const&,VectorAligned  const&,VectorAligned  const&,CGameTrace *)
		add	esp, 0ECh
		mov	edx, 1
		pop	ebx
		mov	eax, edx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_1023F8:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+2B8j
		fstp	st
		mov	[ebp+edx+var_24], 7F7FFFFFh
		jmp	loc_102338
; ---------------------------------------------------------------------------
		align 10h

loc_102410:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+E3j
		fstp	st
		fld	ds:flt_1F4CD8
		jmp	loc_10215F
; ---------------------------------------------------------------------------
		align 10h

loc_102420:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+10Dj
		fstp	st
		fld	ds:flt_1F4CD8
		fxch	st(2)
		jmp	loc_10218B
; ---------------------------------------------------------------------------
		align 10h

loc_102430:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+F9j
		fstp	st
		fld	ds:flt_1F4CD8
		jmp	loc_102173
; ---------------------------------------------------------------------------
		align 10h

loc_102440:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+1DFj
		cmp	byte ptr [edi+37h], 0
		jnz	loc_102255
		fld	dword ptr [esi+20h]
		mov	edx, 1
		fadd	dword ptr [esi]
		fstp	dword ptr [edi]
		fld	dword ptr [esi+24h]
		fadd	dword ptr [esi+4]
		fstp	dword ptr [edi+4]
		fld	dword ptr [esi+28h]
		fadd	dword ptr [esi+8]
		fstp	dword ptr [edi+8]
		jmp	loc_1020A8
; ---------------------------------------------------------------------------
		align 10h

loc_102470:				; CODE XREF: CEngineTrace::ClipRayToBBox(Ray_t	const&,uint,ICollideable *,CGameTrace *)+233j
		fld	dword ptr [esi+10h]
		fmul	st, st(1)
		faddp	st(4), st
		fxch	st(3)
		fst	dword ptr [edi+0Ch]
		fld	dword ptr [esi+14h]
		fmul	st, st(4)
		faddp	st(3), st
		fxch	st(2)
		fst	dword ptr [edi+10h]
		fxch	st(3)
		fmul	dword ptr [esi+18h]
		faddp	st(1), st
		fst	dword ptr [edi+14h]
		fxch	st(2)
		jmp	loc_1022CB
_ZN12CEngineTrace13ClipRayToBBoxERK5Ray_tjP12ICollideableP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToOBB(Ray_t  const&, unsigned int, ICollideable *, CGameTrace *)
_ZN12CEngineTrace12ClipRayToOBBERK5Ray_tjP12ICollideableP10CGameTrace proc near
					; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+10Ap

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_C]
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], edi
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+34h]
		xor	edx, edx
		cmp	eax, 3
		jz	short loc_1024D0
		mov	ebx, [ebp+var_C]
		mov	eax, edx
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_1024D0:				; CODE XREF: CEngineTrace::ClipRayToOBB(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+1Fj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+10h]
		mov	edx, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[ebp+var_1C], edx
		call	dword ptr [eax+0Ch]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		mov	esi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+var_1C]
		mov	dword ptr [esp+14h], 3D000000h ; float
		mov	ecx, [ebp+arg_10]
		mov	[esp+4], eax	; int
		mov	eax, [ebp+arg_4]
		mov	[esp+0Ch], edi	; int
		mov	[esp+8], esi	; int
		mov	[esp+10h], edx	; int
		mov	[esp+18h], ecx	; int
		mov	[esp], eax	; int
		call	_Z19IntersectRayWithOBBRK5Ray_tRK6VectorRK6QAngleS4_S4_fP10CBaseTrace ;	IntersectRayWithOBB(Ray_t  const&,Vector  const&,QAngle	 const&,Vector	const&,Vector  const&,float,CBaseTrace *)
		mov	ebx, [ebp+var_C]
		mov	edx, 1
		mov	esi, [ebp+var_8]
		mov	eax, edx
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN12CEngineTrace12ClipRayToOBBERK5Ray_tjP12ICollideableP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipRayToCollideable(Ray_t  const&, unsigned int, ICollideable *, CGameTrace *)
_ZN12CEngineTrace20ClipRayToCollideableERK5Ray_tjP12ICollideableP10CGameTrace proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1D		= byte ptr -1Dh
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	esi, [ebp+arg_10]
		mov	ebx, [ebp+arg_4]
		mov	edi, [ebp+arg_C]
		mov	[esp], esi
		call	_Z13CM_ClearTraceP10CGameTrace ; CM_ClearTrace(CGameTrace *)
		fld	dword ptr [ebx+20h]
		fadd	dword ptr [ebx]
		fst	dword ptr [esi]
		fld	dword ptr [ebx+24h]
		fadd	dword ptr [ebx+4]
		fst	dword ptr [esi+4]
		fld	dword ptr [ebx+28h]
		fadd	dword ptr [ebx+8]
		fst	dword ptr [esi+8]
		fxch	st(2)
		fadd	dword ptr [ebx+10h]
		fstp	dword ptr [esi+0Ch]
		fadd	dword ptr [ebx+14h]
		fstp	dword ptr [esi+10h]
		fadd	dword ptr [ebx+18h]
		fstp	dword ptr [esi+14h]
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+24h]
		mov	[ebp+var_28], 0
		test	eax, eax
		mov	[ebp+var_1C], eax
		mov	[ebp+var_1D], 0
		jz	short loc_1025AB
		cmp	dword ptr [eax+70h], 3
		jz	loc_102820

loc_1025AB:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+5Fj
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+302j ...
		mov	ecx, [ebp+arg_0]
		mov	eax, [edi]
		mov	ecx, [ecx+10h]
		mov	[esp], edi
		mov	[ebp+var_24], ecx
		call	dword ptr [eax+38h]
		test	ah, 1
		jnz	loc_102790

loc_1025C5:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+25Ej
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+34h]
		cmp	eax, 5
		jz	loc_1026F0
		cmp	byte ptr [ebx+40h], 0
		jnz	loc_1026E0

loc_1025E0:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+272j
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+38h]
		test	al, 2
		jnz	loc_1026F0

loc_1025F0:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+26Cj
		mov	eax, [ebp+var_28]
		mov	[esp+14h], esi
		mov	edx, [ebp+arg_8]
		mov	[esp+0Ch], edi
		mov	ecx, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp+10h], eax
		mov	[esp+8], edx
		mov	[esp], ecx
		call	_ZN12CEngineTrace17ClipRayToVPhysicsERK5Ray_tjP12ICollideableP11studiohdr_tP10CGameTrace ; CEngineTrace::ClipRayToVPhysics(Ray_t  const&,uint,ICollideable *,studiohdr_t *,CGameTrace *)
		test	al, al
		jnz	loc_102886
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jz	short loc_102631
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax+70h], 1
		jz	loc_102860

loc_102631:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+E2j
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+340j
		mov	edx, [ebp+arg_8]
		mov	[esp+10h], esi
		mov	ecx, [ebp+arg_0]
		mov	[esp+0Ch], edi
		mov	[esp+4], ebx
		mov	[esp+8], edx
		mov	[esp], ecx
		call	_ZN12CEngineTrace12ClipRayToOBBERK5Ray_tjP12ICollideableP10CGameTrace ;	CEngineTrace::ClipRayToOBB(Ray_t  const&,uint,ICollideable *,CGameTrace	*)
		xor	edx, edx
		cmp	[ebp+var_1D], 0
		jnz	loc_10271B
		nop
		lea	esi, [esi+0]

loc_102660:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+1D5j
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+1E2j ...
		test	al, al
		jz	loc_102760

loc_102668:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+245j
		cmp	[ebp+var_1D], 0
		jz	short loc_1026C0
		fld	dword ptr [esi+2Ch]
		fld1
		fcomip	st, st(1)
		fstp	st
		ja	short loc_102683
		cmp	byte ptr [esi+36h], 0
		jz	loc_1027C0

loc_102683:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+137j
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+290j
		test	dl, dl
		jnz	loc_1027D8

loc_10268B:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+2A3j
		mov	edx, [ebp+var_28]
		mov	eax, [edx+14Ch]
		mov	dword ptr [esi+3Ch], offset aStudio ; "**studio**"
		mov	word ptr [esi+42h], 0
		mov	[esi+30h], eax
		mov	eax, ds:physprop
		add	edx, [edx+134h]
		mov	ecx, [eax]
		mov	[esp], eax
		mov	[esp+4], edx
		call	dword ptr [ecx+10h]
		mov	[esi+40h], ax
		nop

loc_1026C0:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+12Cj
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+217j ...
		mov	eax, [esi+4Ch]
		test	eax, eax
		jz	loc_1027F0

loc_1026CB:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+2D8j
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+354j
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+arg_0]
		mov	[edx+10h], ecx

loc_1026D4:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+317j
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1026E0:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+9Aj
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+38h]
		test	al, 1
		jz	loc_1027A8

loc_1026F0:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+90j
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+AAj
		mov	ecx, [ebp+arg_8]
		mov	eax, [edi]
		mov	[esp+0Ch], esi
		mov	[esp+4], ebx
		mov	[esp], edi
		mov	[esp+8], ecx
		call	dword ptr [eax+18h]
		mov	edx, 1
		mov	eax, 1

loc_102711:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+348j
		cmp	[ebp+var_1D], 0
		jz	loc_102660

loc_10271B:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+115j
		test	[ebp+arg_8], 40000000h
		jz	loc_102660
		test	dl, dl
		jnz	loc_102660
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_2C], dl
		mov	[esp+10h], esi
		mov	[esp+0Ch], edi
		mov	[esp+4], ebx
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	[esp], ecx
		call	_ZN12CEngineTrace17ClipRayToHitboxesERK5Ray_tjP12ICollideableP10CGameTrace ; CEngineTrace::ClipRayToHitboxes(Ray_t  const&,uint,ICollideable *,CGameTrace *)
		movzx	edx, [ebp+var_2C]
		test	al, al
		jnz	loc_1026C0
		lea	esi, [esi+0]

loc_102760:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+122j
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_2C], dl
		mov	[esp+10h], esi
		mov	[esp+0Ch], edi
		mov	[esp+4], ebx
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	[esp], ecx
		call	_ZN12CEngineTrace13ClipRayToBBoxERK5Ray_tjP12ICollideableP10CGameTrace ; CEngineTrace::ClipRayToBBox(Ray_t  const&,uint,ICollideable *,CGameTrace *)
		movzx	edx, [ebp+var_2C]
		jmp	loc_102668
; ---------------------------------------------------------------------------
		align 10h

loc_102790:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+7Fj
		mov	eax, [edi]
		mov	[esp], edi
		call	dword ptr [eax+4Ch]
		mov	edx, [ebp+arg_0]
		mov	[edx+10h], eax
		jmp	loc_1025C5
; ---------------------------------------------------------------------------
		align 8

loc_1027A8:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+1AAj
		cmp	byte ptr [ebx+40h], 0
		jnz	loc_1025F0
		jmp	loc_1025E0
; ---------------------------------------------------------------------------
		align 10h

loc_1027C0:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+13Dj
		cmp	byte ptr [esi+37h], 0
		jz	loc_1026C0
		lea	esi, [esi+0]
		jmp	loc_102683
; ---------------------------------------------------------------------------
		align 4

loc_1027D8:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+145j
		cmp	word ptr [esi+40h], 0
		jnz	loc_1026C0
		jmp	loc_10268B
; ---------------------------------------------------------------------------
		align 10h

loc_1027F0:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+185j
		fld	dword ptr [esi+2Ch]
		fld1
		fcomip	st, st(1)
		fstp	st
		ja	short loc_102805
		cmp	byte ptr [esi+36h], 0
		jz	loc_102890

loc_102805:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+2B9j
					; CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable *,CGameTrace *)+35Aj
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx]
		mov	[esp+8], esi
		mov	[esp+4], edi
		mov	[esp], ecx
		call	dword ptr [eax+50h]
		jmp	loc_1026CB
; ---------------------------------------------------------------------------
		align 10h

loc_102820:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+65j
		mov	eax, modelloader
		mov	ecx, [ebp+var_1C]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+14h]
		test	[ebp+arg_8], 40000000h
		mov	[ebp+var_1D], 1
		mov	[ebp+var_28], eax
		jnz	loc_1025AB
		mov	edx, [ebp+arg_8]
		test	[eax+14Ch], edx
		jnz	loc_1025AB
		jmp	loc_1026D4
; ---------------------------------------------------------------------------
		align 10h

loc_102860:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+EBj
		mov	edx, [ebp+arg_8]
		mov	[esp+10h], esi
		mov	ecx, [ebp+arg_0]
		mov	[esp+0Ch], edi
		mov	[esp+4], ebx
		mov	[esp+8], edx
		mov	[esp], ecx
		call	_ZN12CEngineTrace12ClipRayToBSPERK5Ray_tjP12ICollideableP10CGameTrace ;	CEngineTrace::ClipRayToBSP(Ray_t  const&,uint,ICollideable *,CGameTrace	*)
		test	al, al
		jz	loc_102631

loc_102886:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+D7j
		xor	edx, edx
		jmp	loc_102711
; ---------------------------------------------------------------------------
		align 10h

loc_102890:				; CODE XREF: CEngineTrace::ClipRayToCollideable(Ray_t  const&,uint,ICollideable	*,CGameTrace *)+2BFj
		cmp	byte ptr [esi+37h], 0
		jz	loc_1026CB
		jmp	loc_102805
_ZN12CEngineTrace20ClipRayToCollideableERK5Ray_tjP12ICollideableP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::ClipTraceToTrace(CGameTrace &, CGameTrace*)
_ZN12CEngineTrace16ClipTraceToTraceER10CGameTracePS0_ proc near
					; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+201p
					; CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t	const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+1E7p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 8
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		cmp	byte ptr [edx+36h], 0
		jnz	short loc_1028BF
		cmp	byte ptr [edx+37h], 0
		jz	loc_1029C0

loc_1028BF:				; CODE XREF: CEngineTrace::ClipTraceToTrace(CGameTrace &,CGameTrace*)+13j
					; CEngineTrace::ClipTraceToTrace(CGameTrace &,CGameTrace*)+12Cj
		cmp	byte ptr [eax+37h], 0
		jz	loc_1029E0
		mov	edi, [edx]
		mov	ecx, [eax]
		mov	ebx, [eax+4]
		mov	esi, [eax+8]
		mov	[eax], edi
		fld	dword ptr [eax+38h]
		mov	edi, [edx+4]
		mov	[ebp+var_10], ecx
		mov	[ebp+var_14], ebx
		mov	[eax+4], edi
		mov	edi, [edx+8]
		mov	[eax+8], edi
		mov	edi, [edx+0Ch]
		mov	[eax+0Ch], edi
		mov	edi, [edx+10h]
		mov	[eax+10h], edi
		mov	edi, [edx+14h]
		mov	[eax+14h], edi
		mov	edi, [edx+18h]
		mov	[eax+18h], edi
		mov	edi, [edx+1Ch]
		mov	[eax+1Ch], edi
		mov	edi, [edx+20h]
		mov	[eax+20h], edi
		mov	edi, [edx+24h]
		mov	[eax+24h], edi
		movzx	edi, byte ptr [edx+28h]
		mov	ecx, edi
		mov	[eax+28h], cl
		movzx	edi, byte ptr [edx+29h]
		mov	ebx, edi
		mov	[eax+29h], bl
		movzx	edi, word ptr [edx+2Ah]
		mov	[eax+2Ah], di
		mov	edi, [edx+2Ch]
		mov	[eax+2Ch], edi
		mov	edi, [edx+30h]
		mov	[eax+30h], edi
		movzx	edi, word ptr [edx+34h]
		mov	[eax+34h], di
		movzx	edi, byte ptr [edx+36h]
		mov	ecx, edi
		mov	[eax+36h], cl
		movzx	edi, byte ptr [edx+37h]
		mov	ebx, edi
		mov	[eax+37h], bl
		mov	edi, [edx+38h]
		mov	[eax+38h], edi
		mov	ecx, [edx+3Ch]
		mov	ebx, [edx+40h]
		mov	[eax+3Ch], ecx
		mov	[eax+40h], ebx
		mov	edi, [edx+44h]
		mov	[eax+44h], edi
		movzx	edi, word ptr [edx+48h]
		mov	[eax+48h], di
		mov	edi, [edx+4Ch]
		mov	[eax+4Ch], edi
		mov	edi, [edx+50h]
		mov	byte ptr [eax+37h], 1
		mov	[eax+50h], edi
		fld	dword ptr [edx+38h]
		fxch	st(1)
		fcomi	st, st(1)
		fstp	st(1)
		ja	short loc_1029A0
		fstp	st
		add	esp, 8
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1029A0:				; CODE XREF: CEngineTrace::ClipTraceToTrace(CGameTrace &,CGameTrace*)+EDj
		mov	ebx, [ebp+var_10]
		fstp	dword ptr [eax+38h]
		mov	edx, [ebp+var_14]
		mov	[eax+8], esi
		mov	[eax], ebx
		mov	[eax+4], edx
		add	esp, 8
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1029C0:				; CODE XREF: CEngineTrace::ClipTraceToTrace(CGameTrace &,CGameTrace*)+19j
		fld	dword ptr [eax+2Ch]
		fld	dword ptr [edx+2Ch]
		fxch	st(1)
		fcomip	st, st(1)
		fstp	st
		ja	loc_1028BF
		add	esp, 8
		xor	eax, eax
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1029E0:				; CODE XREF: CEngineTrace::ClipTraceToTrace(CGameTrace &,CGameTrace*)+23j
		mov	ecx, [edx]
		mov	[eax], ecx
		mov	ecx, [edx+4]
		mov	[eax+4], ecx
		mov	ecx, [edx+8]
		mov	[eax+8], ecx
		mov	ecx, [edx+0Ch]
		mov	[eax+0Ch], ecx
		mov	ecx, [edx+10h]
		mov	[eax+10h], ecx
		mov	ecx, [edx+14h]
		mov	[eax+14h], ecx
		mov	ecx, [edx+18h]
		mov	[eax+18h], ecx
		mov	ecx, [edx+1Ch]
		mov	[eax+1Ch], ecx
		mov	ecx, [edx+20h]
		mov	[eax+20h], ecx
		mov	ecx, [edx+24h]
		mov	[eax+24h], ecx
		movzx	ecx, byte ptr [edx+28h]
		mov	[eax+28h], cl
		movzx	ecx, byte ptr [edx+29h]
		mov	[eax+29h], cl
		movzx	ecx, word ptr [edx+2Ah]
		mov	[eax+2Ah], cx
		mov	ecx, [edx+2Ch]
		mov	[eax+2Ch], ecx
		mov	ecx, [edx+30h]
		mov	[eax+30h], ecx
		movzx	ecx, word ptr [edx+34h]
		mov	[eax+34h], cx
		movzx	ecx, byte ptr [edx+36h]
		mov	[eax+36h], cl
		movzx	ecx, byte ptr [edx+37h]
		mov	[eax+37h], cl
		mov	ecx, [edx+38h]
		mov	[eax+38h], ecx
		mov	ecx, [edx+3Ch]
		mov	ebx, [edx+40h]
		mov	[eax+3Ch], ecx
		mov	[eax+40h], ebx
		mov	ecx, [edx+44h]
		mov	[eax+44h], ecx
		movzx	ecx, word ptr [edx+48h]
		mov	[eax+48h], cx
		mov	ecx, [edx+4Ch]
		mov	[eax+4Ch], ecx
		mov	edx, [edx+50h]
		mov	[eax+50h], edx
		add	esp, 8
		mov	eax, 1
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN12CEngineTrace16ClipTraceToTraceER10CGameTracePS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::TraceRay(Ray_t	const&,	unsigned int, ITraceFilter *, CGameTrace *)
_ZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTrace proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_10F0	= dword	ptr -10F0h
var_10EC	= dword	ptr -10ECh
var_10E8	= dword	ptr -10E8h
var_10E4	= dword	ptr -10E4h
var_10E0	= dword	ptr -10E0h
var_10DC	= dword	ptr -10DCh
var_10D4	= dword	ptr -10D4h
var_10D0	= dword	ptr -10D0h
var_10CC	= dword	ptr -10CCh
var_CC		= byte ptr -0CCh
var_78		= byte ptr -78h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 110Ch
		cmp	byte ptr ds:_ZGVZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTraceE8_counter, 0 ; `guard variable for'CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)::_counter
		mov	ebx, [ebp+arg_0]
		jz	loc_102DF0

loc_102AAC:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+36Ej
					; CEngineTrace::TraceRay(Ray_t	const&,uint,ITraceFilter *,CGameTrace *)+3BDj
		mov	eax, ds:_ZZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTraceE8_counter ; CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)::_counter
		mov	edx, [ebp+arg_C]
		add	dword ptr [eax], 1
		lea	eax, [ebp+var_24]
		mov	[ebp+var_24], (offset _ZTV18CTraceFilterHitAll+8)
		add	dword ptr [ebx+4], 1
		test	edx, edx
		cmovnz	eax, [ebp+arg_C]
		mov	[ebp+arg_C], eax
		mov	eax, [ebp+arg_10]
		mov	[esp], eax
		call	_Z13CM_ClearTraceP10CGameTrace ; CM_ClearTrace(CGameTrace *)
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		cmp	eax, 2
		jz	loc_102D68
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		mov	edx, [ebp+arg_8]
		mov	dword ptr [esp+0Ch], 1
		mov	esi, eax
		mov	eax, [ebp+arg_10]
		mov	dword ptr [esp+4], 0
		mov	[esp+8], edx
		mov	[esp+10h], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z11CM_BoxTraceRK5Ray_tiibR10CGameTrace	; CM_BoxTrace(Ray_t  const&,int,int,bool,CGameTrace &)
		mov	edx, [ebp+arg_10]
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+8], edx
		call	dword ptr [eax+50h]
		mov	eax, [ebp+arg_10]
		cmp	byte ptr [eax+37h], 0
		jz	short loc_102B50

loc_102B3C:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+CEj
					; CEngineTrace::TraceRay(Ray_t	const&,uint,ITraceFilter *,CGameTrace *)+2A2j
		add	esp, 110Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_102B50:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+AAj
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		cmp	eax, 1
		jz	short loc_102B3C

loc_102B60:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+30Bj
		mov	eax, [ebp+arg_10]
		mov	ecx, 14h
		mov	esi, [ebp+arg_4]
		fld	dword ptr [eax+2Ch]
		lea	eax, [ebp+var_78]
		fstp	[ebp+var_10EC]
		mov	edi, eax
		fldz
		mov	[ebp+var_10DC],	eax
		rep movsd
		fld	[ebp+var_10EC]
		fcomip	st, st(1)
		jnz	loc_102DA0
		mov	eax, [ebp+arg_10]
		fst	[ebp+var_68]
		fst	[ebp+var_64]
		fstp	[ebp+var_60]
		fld	dword ptr [eax+38h]
		mov	dword ptr [eax+2Ch], 3F800000h
		fstp	[ebp+var_10F0]
		mov	dword ptr [eax+38h], 3F800000h

loc_102BB4:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+35Aj
		mov	[ebp+var_10D4],	(offset	_ZTV19CEntityListAlongRay+8)
		mov	[ebp+var_10D0],	0
		call	_Z16SpatialPartitionv ;	SpatialPartition(void)
		mov	esi, eax
		mov	eax, [eax]
		mov	edi, [eax+40h]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+54h]
		lea	edx, [ebp+var_10D4]
		mov	[esp], esi
		mov	[esp+10h], edx
		lea	edx, [ebp+var_78]
		mov	[esp+8], edx
		mov	[esp+4], eax
		mov	dword ptr [esp+0Ch], 0
		call	edi
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_10E4],	eax
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		mov	edx, [ebp+var_10D0]
		mov	[ebp+var_10E8],	eax
		test	edx, edx
		mov	[ebp+var_10E0],	edx
		jle	loc_102D10
		xor	esi, esi
		jmp	short loc_102CAA
; ---------------------------------------------------------------------------
		align 10h

loc_102C40:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+24Ej
		cmp	[ebp+var_10E4],	2
		jz	short loc_102C9F
		cmp	[ebp+var_10E8],	3
		jz	loc_102CE4

loc_102C56:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+26Ej
		lea	edx, [ebp+var_CC]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+10h], edx
		mov	edx, [ebp+var_20]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		lea	edx, [ebp+var_78]
		mov	[esp+4], edx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebp+arg_10]
		lea	edx, [ebp+var_CC]
		mov	[esp+4], edx
		mov	[esp], ebx
		mov	[esp+8], eax
		call	_ZN12CEngineTrace16ClipTraceToTraceER10CGameTracePS0_ ;	CEngineTrace::ClipTraceToTrace(CGameTrace &,CGameTrace*)
		mov	eax, [ebp+arg_10]
		cmp	byte ptr [eax+36h], 0
		jnz	short loc_102D10

loc_102C9F:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+1B7j
		add	esi, 1
		cmp	esi, [ebp+var_10E0]
		jz	short loc_102D10

loc_102CAA:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+1A6j
					; CEngineTrace::TraceRay(Ray_t	const&,uint,ITraceFilter *,CGameTrace *)+27Dj
		mov	edi, [ebp+esi*4+var_10CC]
		lea	edx, [ebp+var_1C]
		mov	eax, [ebx]
		mov	[esp+0Ch], edx
		lea	edx, [ebp+var_20]
		mov	[esp+8], edx
		mov	[esp], ebx
		mov	[esp+4], edi
		call	dword ptr [eax+48h]
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edx, [eax]
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	al, al
		jnz	loc_102C40

loc_102CE4:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+1C0j
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		mov	[esp+4], edi
		mov	edx, [ebp+arg_8]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_C]
		mov	[esp], edx
		call	dword ptr [eax]
		test	al, al
		jnz	loc_102C56
		add	esi, 1
		cmp	esi, [ebp+var_10E0]
		jnz	short loc_102CAA
		nop

loc_102D10:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+19Ej
					; CEngineTrace::TraceRay(Ray_t	const&,uint,ITraceFilter *,CGameTrace *)+20Dj ...
		mov	edx, [ebp+arg_10]
		fld	[ebp+var_10EC]
		mov	eax, [ebp+arg_4]
		fmul	dword ptr [edx+2Ch]
		fstp	dword ptr [edx+2Ch]
		fld	[ebp+var_10F0]
		fmul	dword ptr [edx+38h]
		fstp	dword ptr [edx+38h]
		cmp	byte ptr [eax+40h], 0
		jnz	loc_102B3C
		fld	dword ptr [eax+20h]
		fadd	dword ptr [eax]
		fstp	dword ptr [edx]
		fld	dword ptr [eax+24h]
		fadd	dword ptr [eax+4]
		fstp	dword ptr [edx+4]
		fld	dword ptr [eax+28h]
		fadd	dword ptr [eax+8]
		mov	dword ptr [edx+38h], 0
		fstp	dword ptr [edx+8]
		add	esp, 110Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_102D68:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+57j
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_10]
		fld	dword ptr [eax+20h]
		fadd	dword ptr [eax]
		fst	dword ptr [edx]
		fld	dword ptr [eax+24h]
		fadd	dword ptr [eax+4]
		fst	dword ptr [edx+4]
		fld	dword ptr [eax+28h]
		fadd	dword ptr [eax+8]
		fst	dword ptr [edx+8]
		fxch	st(2)
		fadd	dword ptr [eax+10h]
		fstp	dword ptr [edx+0Ch]
		fadd	dword ptr [eax+14h]
		fstp	dword ptr [edx+10h]
		fadd	dword ptr [eax+18h]
		fstp	dword ptr [edx+14h]
		jmp	loc_102B60
; ---------------------------------------------------------------------------

loc_102DA0:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+FBj
		fstp	st
		fld	[ebp+var_10EC]
		fmul	[ebp+var_64]
		mov	eax, [ebp+arg_10]
		mov	dword ptr [eax+2Ch], 3F800000h
		fld	[ebp+var_10EC]
		fmul	[ebp+var_60]
		fld	[ebp+var_10EC]
		fmul	[ebp+var_68]
		fstp	[ebp+var_68]
		fxch	st(1)
		fstp	[ebp+var_64]
		fstp	[ebp+var_60]
		fld	[ebp+var_10EC]
		fdivr	dword ptr [eax+38h]
		fstp	dword ptr [eax+38h]
		fld	[ebp+var_10EC]
		fstp	[ebp+var_10F0]
		jmp	loc_102BB4
; ---------------------------------------------------------------------------
		align 10h

loc_102DF0:				; CODE XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+16j
		mov	dword ptr [esp], offset	_ZGVZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTraceE8_counter ;	`guard variable	for'CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)::_counter
		call	__cxa_guard_acquire
		test	eax, eax
		jz	loc_102AAC
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], offset aTraceray ; "TraceRay"
		mov	dword ptr [esp], offset	g_VProfCurrentProfile
		call	_ZN9CVProfile19FindOrCreateCounterEPKc14CounterGroup_t ; CVProfile::FindOrCreateCounter(char  const*,CounterGroup_t)
		mov	dword ptr [esp], offset	_ZGVZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTraceE8_counter ;	`guard variable	for'CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)::_counter
		mov	ds:_ZZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTraceE8_counter,	eax ; CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)::_counter
		call	__cxa_guard_release
		mov	dword ptr [esp+8], offset __dso_handle
		mov	dword ptr [esp+4], offset _ZZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTraceE8_counter ;	CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)::_counter
		mov	dword ptr [esp], offset	_ZN13CVProfCounterD2Ev ; CVProfCounter::~CVProfCounter()
		call	__cxa_atexit
		jmp	loc_102AAC
_ZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTrace endp

; ---------------------------------------------------------------------------
		mov	ebx, eax
		mov	dword ptr [esp], offset	_ZGVZN12CEngineTrace8TraceRayERK5Ray_tjP12ITraceFilterP10CGameTraceE8_counter ;	`guard variable	for'CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)::_counter
		call	__cxa_guard_abort
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t	const&,	CTraceListData &, unsigned int,	ITraceFilter *,	CGameTrace *)
_ZN12CEngineTrace32TraceRayAgainstLeafAndEntityListERK5Ray_tR14CTraceListDatajP12ITraceFilterP10CGameTrace proc	near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_CC		= byte ptr -0CCh
var_78		= byte ptr -78h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 10Ch
		mov	edx, [ebp+arg_14]
		mov	ebx, [ebp+arg_0]
		mov	[esp], edx
		call	_Z13CM_ClearTraceP10CGameTrace ; CM_ClearTrace(CGameTrace *)
		mov	esi, [ebp+arg_10]
		mov	[ebp+var_24], (offset _ZTV18CTraceFilterHitAll+8)
		test	esi, esi
		jz	loc_103178
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]

loc_102EA1:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+313j
		mov	edx, [ebp+arg_10]
		mov	[esp], edx
		call	dword ptr [eax+4]
		cmp	eax, 2
		jz	short loc_102F20
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+4Ch]
		mov	edx, [ebp+arg_14]
		mov	dword ptr [esp+10h], 1
		mov	esi, eax
		mov	[esp+14h], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+4]
		mov	[esp+8], eax
		mov	eax, [edx+8]
		mov	[esp+4], eax
		mov	eax, [ebp+arg_4]
		mov	[esp], eax
		call	_Z26CM_BoxTraceAgainstLeafListRK5Ray_tPiiibR10CGameTrace ; CM_BoxTraceAgainstLeafList(Ray_t  const&,int	*,int,int,bool,CGameTrace &)
		mov	edx, [ebp+arg_14]
		mov	eax, [ebx]
		mov	[esp+4], esi
		mov	[esp], ebx
		mov	[esp+8], edx
		call	dword ptr [eax+50h]
		mov	edx, [ebp+arg_14]
		fld	dword ptr [edx+2Ch]
		fldz
		fcomip	st, st(1)
		fstp	st
		jnz	loc_103158

loc_102F10:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+287j
					; CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t	const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+2FCj
		add	esp, 10Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_102F20:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+3Dj
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_14]
		fld	dword ptr [eax+20h]
		fadd	dword ptr [eax]
		fst	dword ptr [edx]
		fld	dword ptr [eax+24h]
		fadd	dword ptr [eax+4]
		fst	dword ptr [edx+4]
		fld	dword ptr [eax+28h]
		fadd	dword ptr [eax+8]
		fst	dword ptr [edx+8]
		fxch	st(2)
		fadd	dword ptr [eax+10h]
		fstp	dword ptr [edx+0Ch]
		fadd	dword ptr [eax+14h]
		fstp	dword ptr [edx+10h]
		fadd	dword ptr [eax+18h]
		fstp	dword ptr [edx+14h]

loc_102F53:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+2F6j
		mov	edx, [ebp+arg_14]
		lea	eax, [ebp+var_78]
		mov	ecx, 14h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_DC], eax
		mov	edi, eax
		fld	dword ptr [edx+2Ch]
		fst	[ebp+var_E4]
		rep movsd
		mov	dword ptr [edx+2Ch], 3F800000h
		fmul	[ebp+var_68]
		fstp	[ebp+var_68]
		fld	[ebp+var_E4]
		fmul	[ebp+var_64]
		fstp	[ebp+var_64]
		fld	[ebp+var_E4]
		fmul	[ebp+var_60]
		fstp	[ebp+var_60]
		fld	[ebp+var_E4]
		fdivr	dword ptr [edx+38h]
		fstp	dword ptr [edx+38h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_E8], eax
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_EC], eax
		mov	ecx, [edx+1Ch]
		test	ecx, ecx
		jle	loc_1030D5
		xor	esi, esi
		jmp	loc_103070
; ---------------------------------------------------------------------------
		align 10h

loc_102FE0:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+241j
		test	byte ptr [ebp+var_E0], 4
		jnz	loc_1030B7
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edx, [eax]
		mov	[esp+4], edi
		mov	[esp], eax
		call	dword ptr [edx+28h]
		test	al, al
		jz	loc_103130
		cmp	[ebp+var_E8], 2
		jz	short loc_103065
		cmp	[ebp+var_EC], 3
		jz	loc_103130

loc_10301C:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+2E0j
		lea	edx, [ebp+var_CC]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	[esp+10h], edx
		mov	edx, [ebp+var_20]
		mov	[esp+0Ch], edx
		mov	edx, [ebp+arg_C]
		mov	[esp+8], edx
		lea	edx, [ebp+var_78]
		mov	[esp+4], edx
		call	dword ptr [eax+0Ch]
		mov	edx, [ebp+arg_14]
		lea	eax, [ebp+var_CC]
		mov	[esp+4], eax
		mov	[esp], ebx
		mov	[esp+8], edx
		call	_ZN12CEngineTrace16ClipTraceToTraceER10CGameTracePS0_ ;	CEngineTrace::ClipTraceToTrace(CGameTrace &,CGameTrace*)
		mov	edx, [ebp+arg_14]
		cmp	byte ptr [edx+36h], 0
		jnz	short loc_1030D5

loc_103065:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+19Dj
					; CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t	const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+2DAj
		mov	edx, [ebp+arg_8]
		add	esi, 1
		cmp	[edx+1Ch], esi
		jle	short loc_1030D5

loc_103070:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+167j
					; CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t	const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+263j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+20h]
		lea	edx, [ebp+var_1C]
		mov	edi, [eax+esi*4]
		mov	eax, [ebx]
		mov	[esp+0Ch], edx
		lea	edx, [ebp+var_20]
		mov	[esp+8], edx
		mov	[esp], ebx
		mov	[esp+4], edi
		call	dword ptr [eax+48h]
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+38h]
		mov	[ebp+var_E0], eax
		mov	eax, [ebp+var_20]
		mov	edx, [eax]
		mov	[esp], eax
		call	dword ptr [edx+34h]
		test	eax, eax
		jnz	loc_102FE0

loc_1030B7:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+177j
		mov	eax, [ebp+var_1C]
		mov	dword ptr [esp], offset	aSInSolidListNo	; "%s in solid list (not solid)\n"
		add	esi, 1
		mov	[esp+4], eax
		call	Msg
		mov	edx, [ebp+arg_8]
		cmp	[edx+1Ch], esi
		jg	short loc_103070

loc_1030D5:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+15Fj
					; CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t	const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+1F3j	...
		mov	edx, [ebp+arg_14]
		fld	[ebp+var_E4]
		mov	eax, [ebp+arg_4]
		fmul	dword ptr [edx+2Ch]
		fstp	dword ptr [edx+2Ch]
		fld	[ebp+var_E4]
		fmul	dword ptr [edx+38h]
		fstp	dword ptr [edx+38h]
		cmp	byte ptr [eax+40h], 0
		jnz	loc_102F10
		fld	dword ptr [eax+20h]
		fadd	dword ptr [eax]
		fstp	dword ptr [edx]
		fld	dword ptr [eax+24h]
		fadd	dword ptr [eax+4]
		fstp	dword ptr [edx+4]
		fld	dword ptr [eax+28h]
		fadd	dword ptr [eax+8]
		mov	dword ptr [edx+38h], 0
		fstp	dword ptr [edx+8]
		add	esp, 10Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_103130:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+190j
					; CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t	const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+1A6j
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]
		mov	[esp+4], edi
		mov	edx, [ebp+arg_C]
		mov	[esp+8], edx
		mov	edx, [ebp+arg_10]
		mov	[esp], edx
		call	dword ptr [eax]
		test	al, al
		jz	loc_103065
		jmp	loc_10301C
; ---------------------------------------------------------------------------
		align 4

loc_103158:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+9Aj
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4]
		cmp	eax, 1
		jnz	loc_102F53
		jmp	loc_102F10
; ---------------------------------------------------------------------------
		align 8

loc_103178:				; CODE XREF: CEngineTrace::TraceRayAgainstLeafAndEntityList(Ray_t  const&,CTraceListData &,uint,ITraceFilter *,CGameTrace *)+26j
		lea	edx, [ebp+var_24]
		mov	eax, (offset _ZTV18CTraceFilterHitAll+8)
		mov	[ebp+arg_10], edx
		jmp	loc_102EA1
_ZN12CEngineTrace32TraceRayAgainstLeafAndEntityListERK5Ray_tR14CTraceListDatajP12ITraceFilterP10CGameTrace endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; EngineTraceRenderRayCasts(void)
_Z25EngineTraceRenderRayCastsv proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z25EngineTraceRenderRayCastsv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::GetBrushesInAABB(Vector	 const&, Vector	 const&, CUtlVector<int, CUtlMemory<int, int>> *, int)
_ZN12CEngineTrace16GetBrushesInAABBERK6VectorS2_P10CUtlVectorIi10CUtlMemoryIiiEEi proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_8C		= byte ptr -8Ch
var_84		= byte ptr -84h
var_38		= byte ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 0DCh
		mov	edi, [ebp+arg_C]
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		test	edi, edi
		jz	loc_103440
		lea	edx, [ebp+var_84]
		xor	eax, eax
		jmp	short loc_1031EA
; ---------------------------------------------------------------------------

loc_1031C7:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+4Cj
		mov	ecx, [esi]
		test	al, 2
		mov	[edx-8], ecx
		jz	short loc_1031F7

loc_1031D0:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+55j
		mov	ecx, [esi+4]
		test	al, 4
		mov	[edx-4], ecx
		jz	short loc_103201

loc_1031DA:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+5Fj
		mov	ecx, [esi+8]
		add	eax, 1
		mov	[edx], ecx
		add	edx, 0Ch
		cmp	eax, 8
		jz	short loc_103211

loc_1031EA:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+25j
					; CEngineTrace::GetBrushesInAABB(Vector	 const&,Vector	const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+6Fj
		test	al, 1
		jnz	short loc_1031C7
		mov	ecx, [ebx]
		test	al, 2
		mov	[edx-8], ecx
		jnz	short loc_1031D0

loc_1031F7:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+2Ej
		mov	ecx, [ebx+4]
		test	al, 4
		mov	[edx-4], ecx
		jnz	short loc_1031DA

loc_103201:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+38j
		mov	ecx, [ebx+8]
		add	eax, 1
		mov	[edx], ecx
		add	edx, 0Ch
		cmp	eax, 8
		jnz	short loc_1031EA

loc_103211:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+48j
		mov	eax, dword ptr ds:g_BSPData+84h
		lea	edx, ds:0Fh[eax*8]
		add	eax, eax
		and	edx, 0FFFFFFF0h
		add	edx, 10h
		sub	esp, edx
		lea	edx, [esp+23h]
		mov	[esp], ebx
		and	edx, 0FFFFFFF0h
		mov	dword ptr [esp+10h], 0
		mov	[ebp+var_BC], edx
		mov	[esp+0Ch], eax
		mov	[esp+8], edx
		mov	[esp+4], esi
		call	_Z14CM_BoxLeafnumsRK6VectorS1_PiiS2_ ; CM_BoxLeafnums(Vector  const&,Vector  const&,int	*,int,int *)
		mov	ebx, dword ptr ds:g_BSPData+0A4h
		mov	[ebp+var_2C], 0
		mov	[ebp+var_C0], eax
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		test	ebx, ebx
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		jnz	loc_1034E5
		lea	esi, [ebp+var_2C]
		xor	eax, eax
		xor	edx, edx
		mov	[ebp+var_B8], esi

loc_103294:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+377j
		shl	edx, 2
		mov	dword ptr [esp+4], 0 ; c
		mov	[esp+8], edx	; n
		mov	[esp], eax	; s
		call	memset
		mov	ebx, [ebp+var_C0]
		test	ebx, ebx
		jz	loc_10341D
		mov	[ebp+var_B4], 0
		nop
		lea	esi, [esi+0]

loc_1032C8:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+277j
		mov	esi, [ebp+var_B8]
		mov	edx, [ebp+var_BC]
		mov	esi, [esi]
		mov	[ebp+var_A8], esi
		mov	esi, [ebp+var_B4]
		mov	eax, [edx+esi*4]
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+88h
		cmp	word ptr [eax+0Ah], 0
		lea	esi, [eax+8]
		mov	[ebp+var_A0], esi
		lea	esi, [eax+0Ah]
		mov	[ebp+var_A4], esi
		jz	loc_103404
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_103310:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+25Ej
		mov	esi, [ebp+var_A0]
		mov	eax, dword ptr ds:g_BSPData+98h
		mov	ecx, [ebp+var_A8]
		movzx	edx, word ptr [esi]
		add	edx, ebx
		movzx	eax, word ptr [eax+edx*2]
		mov	[ebp+var_9C], eax
		mov	eax, dword ptr ds:g_BSPData+0A8h
		mov	esi, [ebp+var_9C]
		lea	edx, [ecx+esi*4]
		mov	ecx, [edx]
		test	ecx, ecx
		jnz	loc_1033F0
		lea	eax, [eax+esi*8]
		mov	esi, [ebp+arg_10]
		mov	dword ptr [edx], 1
		test	[eax], esi
		jz	loc_1033F0
		movzx	edx, word ptr [eax+4]
		cmp	dx, 0FFFFh
		jz	loc_1034A8
		movzx	edx, dx
		test	edx, edx
		mov	[ebp+var_AC], edx
		jz	loc_103458
		movzx	esi, word ptr [eax+6]
		mov	[ebp+var_B0], ebx
		xor	ecx, ecx
		mov	edi, dword ptr ds:g_BSPData+68h
		fldz
		mov	ebx, [ebp+var_AC]
		shl	esi, 3
		jmp	short loc_1033AE
; ---------------------------------------------------------------------------
		align 10h

loc_1033A0:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+238j
		add	ecx, 1
		add	esi, 8
		cmp	ebx, ecx
		jz	loc_103450

loc_1033AE:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+1F8j
		mov	eax, [edi+esi]
		movzx	edx, byte ptr [eax+11h]
		fld	dword ptr [eax]
		lea	edx, [edx+edx*2]
		lea	edx, [ebp+edx*4+var_8C]
		fmul	dword ptr [edx]
		fsub	dword ptr [eax+0Ch]
		fld	dword ptr [eax+4]
		fmul	dword ptr [edx+4]
		faddp	st(1), st
		fld	dword ptr [eax+8]
		fmul	dword ptr [edx+8]
		faddp	st(1), st
		fcomip	st, st(1)
		jbe	short loc_1033A0
		fstp	st
		cmp	[ebp+var_AC], ecx
		mov	ebx, [ebp+var_B0]
		jz	short loc_103458
		lea	esi, [esi+0]

loc_1033F0:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+1A2j
					; CEngineTrace::GetBrushesInAABB(Vector	 const&,Vector	const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+1B6j	...
		mov	esi, [ebp+var_A4]
		add	ebx, 1
		movzx	eax, word ptr [esi]
		cmp	ebx, eax
		jnz	loc_103310

loc_103404:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+165j
		add	[ebp+var_B4], 1
		mov	esi, [ebp+var_B4]
		cmp	[ebp+var_C0], esi
		jnz	loc_1032C8

loc_10341D:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+113j
		mov	esi, [ebp+var_B8]
		mov	[ebp+var_20], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp+var_2C]
		mov	[esp], esi
		mov	[ebp+var_1C], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)

loc_103440:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+17j
		lea	esp, [ebp-0Ch]
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_103450:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+208j
		fstp	st
		mov	ebx, [ebp+var_B0]

loc_103458:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+1D5j
					; CEngineTrace::GetBrushesInAABB(Vector	 const&,Vector	const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+248j	...
		mov	eax, [ebp+arg_C]
		mov	esi, [eax+0Ch]
		mov	[esp], eax
		mov	dword ptr [esp+4], 1
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE10GrowVectorEi ; CUtlVector<int,CUtlMemory<int,int>>::GrowVector(int)
		mov	edx, [ebp+arg_C]
		mov	dword ptr [esp+8], 1
		mov	[esp+4], esi
		mov	[esp], edx
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE18ShiftElementsRightEii ; CUtlVector<int,CUtlMemory<int,int>>::ShiftElementsRight(int,int)
		lea	eax, ds:0[esi*4]
		mov	esi, [ebp+arg_C]
		add	eax, [esi]
		jz	loc_1033F0
		mov	esi, [ebp+var_9C]
		mov	[eax], esi
		jmp	loc_1033F0
; ---------------------------------------------------------------------------
		align 8

loc_1034A8:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+1C4j
		movzx	eax, word ptr [eax+6]
		lea	edx, [ebp+var_38]
		mov	[esp+0Ch], edx
		lea	ecx, [ebp+var_8C]
		mov	[esp+8], ecx
		lea	eax, [eax+eax*2]
		shl	eax, 4
		add	eax, dword ptr ds:g_BSPData+70h
		lea	edx, [eax+10h]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z20IsBoxIntersectingBoxRK6VectorS1_S1_S1_ ; IsBoxIntersectingBox(Vector  const&,Vector	 const&,Vector	const&,Vector  const&)
		test	al, al
		jz	loc_1033F0
		jmp	loc_103458
; ---------------------------------------------------------------------------

loc_1034E5:				; CODE XREF: CEngineTrace::GetBrushesInAABB(Vector  const&,Vector  const&,CUtlVector<int,CUtlMemory<int,int>> *,int)+E1j
		lea	esi, [ebp+var_2C]
		mov	[esp+4], ebx
		mov	[ebp+var_B8], esi
		mov	[esp], esi
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE10GrowVectorEi ; CUtlVector<int,CUtlMemory<int,int>>::GrowVector(int)
		mov	[esp+8], ebx
		mov	dword ptr [esp+4], 0
		mov	[esp], esi
		call	_ZN10CUtlVectorIi10CUtlMemoryIiiEE18ShiftElementsRightEii ; CUtlVector<int,CUtlMemory<int,int>>::ShiftElementsRight(int,int)
		mov	edx, dword ptr ds:g_BSPData+0A4h
		mov	eax, [ebp+var_2C]
		jmp	loc_103294
_ZN12CEngineTrace16GetBrushesInAABBERK6VectorS2_P10CUtlVectorIi10CUtlMemoryIiiEEi endp

; ---------------------------------------------------------------------------
		mov	esi, [ebp-0B8h]
		mov	ebx, eax
		mov	dword ptr [ebp-20h], 0
		mov	[esp], esi
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	eax, [ebp-2Ch]
		mov	[esp], esi
		mov	[ebp-1Ch], eax
		call	_ZN10CUtlMemoryIiiE5PurgeEv ; CUtlMemory<int,int>::Purge(void)
		mov	[esp], ebx
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineTrace::GetBrushInfo(int, CUtlVector<Vector4D, CUtlMemory<Vector4D, int>> *, int *)
_ZN12CEngineTrace12GetBrushInfoEiP10CUtlVectorI8Vector4D10CUtlMemoryIS1_iEEPi proc near
					; DATA XREF: .rodata:`vtable for'CEngineTraceo
					; .rodata:`vtable for'CEngineTraceServero

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 4Ch
		mov	edx, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		test	edx, edx
		js	loc_10361B
		cmp	edx, dword ptr ds:g_BSPData+0A4h
		jge	loc_10361B
		mov	eax, dword ptr ds:g_BSPData+0A8h
		shl	edx, 3
		add	edx, eax
		test	esi, esi
		mov	[ebp+var_44], edx
		jz	short loc_103605
		mov	dword ptr [esi+0Ch], 0
		movzx	eax, word ptr [edx+4]
		cmp	ax, 0FFFFh
		jz	loc_103628
		mov	ecx, [ebp+var_44]
		movzx	eax, ax
		movzx	ebx, word ptr [ecx+6]
		mov	ecx, dword ptr ds:g_BSPData+68h
		lea	ebx, [ecx+ebx*8]
		lea	eax, [ebx+eax*8]
		cmp	ebx, eax
		mov	[ebp+var_40], eax
		jz	short loc_103605
		mov	[ebp+var_3C], 0
		jmp	short loc_1035CE
; ---------------------------------------------------------------------------
		align 8

loc_1035C8:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+B3j
		mov	ecx, [esi+0Ch]
		mov	[ebp+var_3C], ecx

loc_1035CE:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+6Fj
		mov	eax, [ebx]
		add	ebx, 8
		mov	edx, [eax+0Ch]
		mov	edi, [eax+4]
		mov	ecx, [eax+8]
		mov	eax, [eax]
		mov	[esp], esi
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+var_3C]
		mov	[ebp+var_24], edi
		mov	[ebp+var_20], ecx
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_28]
		mov	[esp+8], eax
		mov	[esp+4], edx
		call	_ZN10CUtlVectorI8Vector4D10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<Vector4D,CUtlMemory<Vector4D,int>>::InsertBefore(int,Vector4D const&)
		cmp	[ebp+var_40], ebx
		jnz	short loc_1035C8

loc_103605:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+34j
					; CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int *)+66j ...
		mov	edx, [ebp+arg_C]
		mov	eax, 1
		test	edx, edx
		jz	short loc_10361B
		mov	ecx, [ebp+var_44]
		mov	edx, [ecx]
		mov	ecx, [ebp+arg_C]
		mov	[ecx], edx

loc_10361B:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+13j
					; CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int *)+1Fj ...
		add	esp, 4Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_103628:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+45j
		movzx	eax, word ptr [edx+6]
		mov	edi, 0FFFFFFF4h
		xor	ebx, ebx
		lea	ecx, [ebp+var_38]
		lea	edx, [eax+eax*2]
		shl	edx, 4
		add	edx, dword ptr ds:g_BSPData+70h
		mov	[ebp+var_3C], edx
		jmp	short loc_103685
; ---------------------------------------------------------------------------
		align 10h

loc_103650:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+154j
		mov	edx, [ebp+var_3C]
		mov	dword ptr [ecx+ebx*4], 3F800000h
		mov	eax, [edx+ebx*4+10h]
		mov	[ebp+var_2C], eax

loc_103661:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+168j
		mov	[esp+8], ecx
		add	ebx, 1
		add	edi, 4
		mov	eax, [esi+0Ch]
		mov	[ebp+var_48], ecx
		mov	[esp], esi
		mov	[esp+4], eax
		call	_ZN10CUtlVectorI8Vector4D10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ ; CUtlVector<Vector4D,CUtlMemory<Vector4D,int>>::InsertBefore(int,Vector4D const&)
		cmp	ebx, 6
		mov	ecx, [ebp+var_48]
		jz	short loc_103605

loc_103685:				; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+F5j
		cmp	ebx, 2
		mov	[ebp+var_38], 0
		mov	[ebp+var_34], 0
		mov	[ebp+var_30], 0
		mov	[ebp+var_2C], 0
		jle	short loc_103650
		mov	edx, [ebp+var_3C]
		mov	dword ptr [ecx+edi], 0BF800000h
		fld	dword ptr [edx+edi]
		fchs
		fstp	[ebp+var_2C]
		jmp	short loc_103661
_ZN12CEngineTrace12GetBrushInfoEiP10CUtlVectorI8Vector4D10CUtlMemoryIS1_iEEPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CTraceFilter::GetTraceType(void)const
_ZNK12CTraceFilter12GetTraceTypeEv proc	near
					; DATA XREF: .rodata:`vtable for'CTraceFilterHitAllo
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK12CTraceFilter12GetTraceTypeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CTraceFilterHitAll::ShouldHitEntity(IHandleEntity *, int)
_ZN18CTraceFilterHitAll15ShouldHitEntityEP13IHandleEntityi proc	near
					; DATA XREF: .rodata:`vtable for'CTraceFilterHitAllo
		push	ebp
		mov	eax, 1
		mov	ebp, esp
		pop	ebp
		retn
_ZN18CTraceFilterHitAll15ShouldHitEntityEP13IHandleEntityi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CVProfCounter::~CVProfCounter()
_ZN13CVProfCounterD2Ev proc near	; DATA XREF: CEngineTrace::TraceRay(Ray_t  const&,uint,ITraceFilter *,CGameTrace *)+3B1o
					; _Host_RunFrame_Server(bool)+279o ...
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN13CVProfCounterD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CBrushConvexInfo::GetContents(int)
_ZN16CBrushConvexInfo11GetContentsEi proc near
					; DATA XREF: .rodata:`vtable for'CBrushConvexInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		pop	ebp
		mov	eax, [eax+4]
		mov	eax, [eax+0A8h]
		mov	eax, [eax+edx*8]
		retn
_ZN16CBrushConvexInfo11GetContentsEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEnumerationFilter::EnumElement(IHandleEntity	*)
_ZN18CEnumerationFilter11EnumElementEP13IHandleEntity proc near
					; DATA XREF: .rodata:`vtable for'CEnumerationFiltero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_4]
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ebx
		call	dword ptr [edx+28h]
		xor	edx, edx
		test	al, al
		jnz	short loc_103748
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx]
		xor	eax, 1
		movzx	edx, al

loc_103748:				; CODE XREF: CEnumerationFilter::EnumElement(IHandleEntity *)+1Fj
		add	esp, 14h
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
_ZN18CEnumerationFilter11EnumElementEP13IHandleEntity endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEntityListAlongRay::EnumElement(IHandleEntity *)
_ZN19CEntityListAlongRay11EnumElementEP13IHandleEntity proc near
					; DATA XREF: .rodata:`vtable for'CEntityListAlongRayo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		mov	edx, [eax+4]
		cmp	edx, 3FFh
		jg	short loc_103778
		mov	ecx, [ebp+arg_4]
		mov	[eax+edx*4+8], ecx
		add	edx, 1
		mov	[eax+4], edx
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_103778:				; CODE XREF: CEntityListAlongRay::EnumElement(IHandleEntity *)+12j
		mov	dword ptr [esp+4], offset aMaxEntityCount ; "Max entity	count along ray	exceeded!\n"
		mov	dword ptr [esp], 1
		call	DevMsg
		xor	eax, eax
		leave
		retn
_ZN19CEntityListAlongRay11EnumElementEP13IHandleEntity endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CStudioConvexInfo::GetContents(int)
_ZN17CStudioConvexInfo11GetContentsEi proc near
					; DATA XREF: .rodata:`vtable for'CStudioConvexInfoo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_1037C0
		mov	edx, [edx+4]
		sub	eax, 1
		imul	eax, 0D8h
		pop	ebp
		add	eax, [edx+0A0h]
		mov	eax, [edx+eax+0B4h]
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1037C0:				; CODE XREF: CStudioConvexInfo::GetContents(int)+Bj
		mov	eax, [edx+4]
		pop	ebp
		mov	eax, [eax+14Ch]
		retn
_ZN17CStudioConvexInfo11GetContentsEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CPointContentsEnum::EnumElement(IHandleEntity	*)
_ZN18CPointContentsEnum11EnumElementEP13IHandleEntity proc near
					; DATA XREF: .rodata:`vtable for'CPointContentsEnumo

var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_CC		= byte ptr -0CCh
var_95		= byte ptr -95h
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		lea	ecx, [ebp+var_1C]
		push	ebx
		sub	esp, 0FCh
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0Ch]
		mov	edx, [eax]
		mov	[esp+0Ch], ecx
		lea	ecx, [ebp+var_20]
		mov	[esp+8], ecx
		mov	ecx, [ebp+arg_4]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+48h]
		mov	ebx, [ebp+var_20]
		mov	[ebp+var_DC], 0
		test	ebx, ebx
		jz	loc_1038E2
		mov	edx, [esi+0Ch]
		mov	[ebp+var_E0], edx
		call	_Z13StaticPropMgrv ; StaticPropMgr(void)
		mov	edi, eax
		mov	eax, [eax]
		mov	eax, [eax+28h]
		mov	[ebp+var_E4], eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax]
		mov	[esp], edi
		mov	[esp+4], eax
		call	[ebp+var_E4]
		test	al, al
		jz	loc_1038F8
		mov	edx, [esi+10h]
		mov	[ebp+var_68], 0
		mov	eax, [esi+14h]
		mov	[ebp+var_64], 0
		mov	ecx, [esi+18h]
		mov	[ebp+var_60], 0
		mov	[ebp+var_37], 0
		mov	[ebp+var_78], edx
		mov	edx, [ebp+var_E0]
		mov	[ebp+var_40], 0
		mov	[ebp+var_44], 0
		mov	[ebp+var_48], 0
		mov	[ebp+var_38], 1
		mov	[ebp+var_50], 0
		mov	[ebp+var_54], 0
		mov	[ebp+var_58], 0
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], ecx
		mov	eax, [edx]
		lea	edx, [ebp+var_CC]
		mov	[esp+0Ch], ebx
		mov	[esp+10h], edx
		lea	edx, [ebp+var_78]
		mov	[esp+4], edx
		mov	edx, [ebp+var_E0]
		mov	dword ptr [esp+8], 0FFFFFFFFh
		mov	[esp], edx
		call	dword ptr [eax+0Ch]
		cmp	[ebp+var_95], 0
		jnz	loc_103990

loc_1038E2:				; CODE XREF: CPointContentsEnum::EnumElement(IHandleEntity *)+3Ej
					; CPointContentsEnum::EnumElement(IHandleEntity	*)+132j ...
		mov	eax, [ebp+var_DC]
		add	esp, 0FCh
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_1038F8:				; CODE XREF: CPointContentsEnum::EnumElement(IHandleEntity *)+75j
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+38h]
		test	al, 20h
		jz	short loc_1038E2
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+24h]
		test	eax, eax
		jz	short loc_1038E2
		cmp	dword ptr [eax+70h], 1
		jnz	short loc_1038E2
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+20h]
		mov	[ebp+var_DC], 0FFFFFFFFh
		cmp	eax, 7FFh
		mov	edi, eax
		jbe	loc_1039B7

loc_103935:				; CODE XREF: CPointContentsEnum::EnumElement(IHandleEntity *)+1F1j
					; CPointContentsEnum::EnumElement(IHandleEntity	*)+204j ...
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+2Ch]
		mov	edi, eax
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+28h]
		mov	edx, [ebp+var_DC]
		mov	[esp+0Ch], edi
		mov	[esp+8], eax
		lea	eax, [esi+10h]
		mov	[esp], eax
		mov	[esp+4], edx
		call	_Z27CM_TransformedPointContentsRK6VectoriS1_RK6QAngle ;	CM_TransformedPointContents(Vector  const&,int,Vector  const&,QAngle  const&)
		mov	[ebp+var_DC], 0
		test	eax, eax
		jz	loc_1038E2
		mov	[esi+4], eax
		mov	[esi+8], ebx
		mov	[ebp+var_DC], 1
		jmp	loc_1038E2
; ---------------------------------------------------------------------------
		align 10h

loc_103990:				; CODE XREF: CPointContentsEnum::EnumElement(IHandleEntity *)+10Cj
		mov	edx, [ebp+var_E0]
		mov	dword ptr [esi+4], 1
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [eax+4Ch]
		mov	[ebp+var_DC], 1
		mov	[esi+8], eax
		jmp	loc_1038E2
; ---------------------------------------------------------------------------

loc_1039B7:				; CODE XREF: CPointContentsEnum::EnumElement(IHandleEntity *)+15Fj
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+24h]
		test	eax, eax
		jz	loc_103935
		sub	edi, 1
		mov	[esp], edi
		call	_Z20CM_InlineModelNumberi ; CM_InlineModelNumber(int)
		test	eax, eax
		jz	loc_103935
		mov	eax, [eax+24h]
		mov	[ebp+var_DC], eax
		jmp	loc_103935
_ZN18CPointContentsEnum11EnumElementEP13IHandleEntity endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlMemory<Vector4D, int>::Grow(int)
_ZN10CUtlMemoryI8Vector4DiE4GrowEi proc	near
					; CODE XREF: CUtlVector<Vector4D,CUtlMemory<Vector4D,int>>::InsertBefore(int,Vector4D const&)+9Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		test	esi, esi
		js	short loc_103A40
		mov	eax, [ebx+4]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		test	esi, esi
		jnz	short loc_103A50
		test	eax, eax
		mov	edx, 2
		cmovz	eax, edx
		cmp	ecx, eax
		jle	short loc_103A26
		lea	esi, [esi+0]

loc_103A20:				; CODE XREF: CUtlMemory<Vector4D,int>::Grow(int)+34j
		add	eax, eax
		cmp	ecx, eax
		jg	short loc_103A20

loc_103A26:				; CODE XREF: CUtlMemory<Vector4D,int>::Grow(int)+2Aj
					; CUtlMemory<Vector4D,int>::Grow(int)+72j
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jz	short loc_103A83

loc_103A32:				; CODE XREF: CUtlMemory<Vector4D,int>::Grow(int)+91j
		mov	[esp+4], eax	; size
		mov	[esp], edx	; ptr
		call	realloc
		mov	[ebx], eax

loc_103A40:				; CODE XREF: CUtlMemory<Vector4D,int>::Grow(int)+10j
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_103A50:				; CODE XREF: CUtlMemory<Vector4D,int>::Grow(int)+1Cj
		lea	eax, [ecx-1]
		mov	edx, eax
		sar	edx, 1Fh
		idiv	esi
		add	eax, 1
		imul	eax, esi
		cmp	ecx, eax
		jle	short loc_103A26
		lea	esi, [esi+0]

loc_103A68:				; CODE XREF: CUtlMemory<Vector4D,int>::Grow(int)+85j
		add	eax, ecx
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		sar	eax, 1
		cmp	ecx, eax
		jg	short loc_103A68
		mov	edx, [ebx]
		mov	[ebx+4], eax
		shl	eax, 4
		test	edx, edx
		jnz	short loc_103A32

loc_103A83:				; CODE XREF: CUtlMemory<Vector4D,int>::Grow(int)+40j
		mov	[esp], eax	; size
		call	malloc
		mov	[ebx], eax
		add	esp, 10h
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN10CUtlMemoryI8Vector4DiE4GrowEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CUtlVector<Vector4D, CUtlMemory<Vector4D, int>>::InsertBefore(int, Vector4D const&)
_ZN10CUtlVectorI8Vector4D10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ proc near
					; CODE XREF: CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int	*)+ABp
					; CEngineTrace::GetBrushInfo(int,CUtlVector<Vector4D,CUtlMemory<Vector4D,int>> *,int *)+128p

var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_8]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	eax, [ebx+0Ch]
		mov	edx, [ebx+4]
		cmp	eax, edx
		jge	short loc_103B30

loc_103AC2:				; CODE XREF: CUtlVector<Vector4D,CUtlMemory<Vector4D,int>>::InsertBefore(int,Vector4D const&)+A4j
		lea	edx, [eax+1]
		mov	eax, [ebx]
		mov	[ebx+0Ch], edx
		sub	edx, edi
		lea	ecx, [edx-1]
		mov	edx, edi
		shl	edx, 4
		test	ecx, ecx
		mov	[ebx+10h], eax
		jle	short loc_103B01
		shl	ecx, 4
		mov	[ebp+var_1C], edx
		mov	[esp+8], ecx	; n
		lea	ecx, [eax+edx]
		mov	[esp+4], ecx	; src
		lea	ecx, [edi+1]
		shl	ecx, 4
		add	eax, ecx
		mov	[esp], eax	; dest
		call	memmove
		mov	eax, [ebx]
		mov	edx, [ebp+var_1C]

loc_103B01:				; CODE XREF: CUtlVector<Vector4D,CUtlMemory<Vector4D,int>>::InsertBefore(int,Vector4D const&)+39j
		add	edx, eax
		jz	short loc_103B1B
		mov	eax, [esi]
		mov	[edx], eax
		mov	eax, [esi+4]
		mov	[edx+4], eax
		mov	eax, [esi+8]
		mov	[edx+8], eax
		mov	eax, [esi+0Ch]
		mov	[edx+0Ch], eax

loc_103B1B:				; CODE XREF: CUtlVector<Vector4D,CUtlMemory<Vector4D,int>>::InsertBefore(int,Vector4D const&)+63j
		mov	eax, edi
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_103B30:				; CODE XREF: CUtlVector<Vector4D,CUtlMemory<Vector4D,int>>::InsertBefore(int,Vector4D const&)+20j
		add	eax, 1
		mov	[esp], ebx
		sub	eax, edx
		mov	[esp+4], eax
		call	_ZN10CUtlMemoryI8Vector4DiE4GrowEi ; CUtlMemory<Vector4D,int>::Grow(int)
		mov	eax, [ebx+0Ch]
		jmp	loc_103AC2
_ZN10CUtlVectorI8Vector4D10CUtlMemoryIS0_iEE12InsertBeforeEiRKS0_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; __CreateCEngineReplayIEngineReplay_interface(void)
_ZL44__CreateCEngineReplayIEngineReplay_interfacev proc	near
					; DATA XREF: _GLOBAL__sub_I_g_pEngineReplay+7Do
		push	ebp
		mov	eax, offset _ZL14s_EngineReplay	; s_EngineReplay
		mov	ebp, esp
		pop	ebp
		retn
_ZL44__CreateCEngineReplayIEngineReplay_interfacev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IBaseInterface::~IBaseInterface()
_ZN14IBaseInterfaceD2Ev	proc near	; DATA XREF: .rodata:`vtable for'IBaseInterfaceo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV14IBaseInterface+8)
		pop	ebp
		retn
_ZN14IBaseInterfaceD2Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetGameDir(void)
_ZN13CEngineReplay10GetGameDirEv proc near ; DATA XREF:	.rodata:`vtable	for'CEngineReplayo
		push	ebp
		mov	eax, offset com_gamedir
		mov	ebp, esp
		pop	ebp
		retn
_ZN13CEngineReplay10GetGameDirEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetHostTime(void)
_ZN13CEngineReplay11GetHostTimeEv proc near ; DATA XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		fld	ds:host_time
		mov	ebp, esp
		pop	ebp
		retn
_ZN13CEngineReplay11GetHostTimeEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetHostTickCount(void)
_ZN13CEngineReplay16GetHostTickCountEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		mov	eax, ds:host_tickcount
		mov	ebp, esp
		pop	ebp
		retn
_ZN13CEngineReplay16GetHostTickCountEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineReplay__TimeToTicks(int, float)
_ZN13CEngineReplay11TimeToTicksEf proc near ; DATA XREF: .rodata:`vtable for'CEngineReplayo

var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		fld	[ebp+arg_4]
		fdiv	dword ptr ds:host_state+8
		fadd	ds:flt_1EBAA4
		fstp	[ebp+var_4]
		cvttss2si eax, [ebp+var_4]
		leave
		retn
_ZN13CEngineReplay11TimeToTicksEf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::TicksToTime(int)
_ZN13CEngineReplay11TicksToTimeEi proc near ; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		fild	[ebp+arg_4]
		fmul	dword ptr ds:host_state+8
		pop	ebp
		retn
_ZN13CEngineReplay11TicksToTimeEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetReplayServer(void)
_ZN13CEngineReplay15GetReplayServerEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		mov	eax, ds:replay
		push	ebp
		mov	ebp, esp
		test	eax, eax
		jz	short loc_103BE8
		add	eax, 1A4h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_103BE8:				; CODE XREF: CEngineReplay::GetReplayServer(void)+Aj
		xor	eax, eax
		pop	ebp
		retn
_ZN13CEngineReplay15GetReplayServerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetReplayServerAsIServer(void)
_ZN13CEngineReplay24GetReplayServerAsIServerEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		mov	eax, ds:replay
		push	ebp
		mov	ebp, esp
		test	eax, eax
		jz	short loc_103C08
		add	eax, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_103C08:				; CODE XREF: CEngineReplay::GetReplayServerAsIServer(void)+Aj
		xor	eax, eax
		pop	ebp
		retn
_ZN13CEngineReplay24GetReplayServerAsIServerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetGameServer(void)
_ZN13CEngineReplay13GetGameServerEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		xor	eax, eax
		cmp	ds:sv+130h, 0
		push	ebp
		mov	edx, offset sv
		mov	ebp, esp
		pop	ebp
		cmovnz	eax, edx
		retn
_ZN13CEngineReplay13GetGameServerEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetSessionRecordBuffer(unsigned char **, int *)
_ZN13CEngineReplay22GetSessionRecordBufferEPPhPi proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	eax, ds:replay
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		test	eax, eax
		jz	short loc_103C68
		mov	eax, [eax+6E8h]
		mov	eax, [eax]
		mov	[ecx], eax
		mov	eax, ds:replay
		mov	eax, [eax+6E8h]
		mov	eax, [eax+10h]
		mov	[edx], eax
		mov	eax, 1
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_103C68:				; CODE XREF: CEngineReplay::GetSessionRecordBuffer(uchar **,int	*)+10j
		mov	dword ptr [ecx], 0
		mov	dword ptr [edx], 0
		pop	ebp
		retn
_ZN13CEngineReplay22GetSessionRecordBufferEPPhPi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::IsDedicated(void)
_ZN13CEngineReplay11IsDedicatedEv proc near ; DATA XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		movzx	eax, ds:sv+130h
		mov	ebp, esp
		pop	ebp
		retn
_ZN13CEngineReplay11IsDedicatedEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetReplayDemoHeader(void)
_ZN13CEngineReplay19GetReplayDemoHeaderEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		mov	eax, ds:replay
		push	ebp
		mov	ebp, esp
		pop	ebp
		add	eax, 2B8h
		retn
_ZN13CEngineReplay19GetReplayDemoHeaderEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IEngineReplay::~IEngineReplay()
_ZN13IEngineReplayD2Ev proc near	; DATA XREF: .rodata:`vtable for'IEngineReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV14IBaseInterface+8)
		pop	ebp
		retn
_ZN13IEngineReplayD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::~CEngineReplay()
_ZN13CEngineReplayD2Ev proc near	; DATA XREF: _GLOBAL__sub_I_g_pEngineReplay+41o
					; .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV14IBaseInterface+8)
		pop	ebp
		retn
_ZN13CEngineReplayD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::~CEngineReplay()
_ZN13CEngineReplayD0Ev proc near	; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV14IBaseInterface+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13CEngineReplayD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IEngineReplay::~IEngineReplay()
_ZN13IEngineReplayD0Ev proc near	; DATA XREF: .rodata:`vtable for'IEngineReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV14IBaseInterface+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN13IEngineReplayD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; IBaseInterface::~IBaseInterface()
_ZN14IBaseInterfaceD0Ev	proc near	; DATA XREF: .rodata:`vtable for'IBaseInterfaceo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV14IBaseInterface+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN14IBaseInterfaceD0Ev	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineReplay__NET_GetHostnameAsIP(int, char *src, char *dest, size_t n)
_ZN13CEngineReplay19NET_GetHostnameAsIPEPKcPci proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

var_14		= dword	ptr -14h
src		= dword	ptr  0Ch
dest		= dword	ptr  10h
n		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		lea	ebx, [ebp+var_14]
		sub	esp, 24h
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN8netadr_s5SetIPEj ; netadr_s::SetIP(uint)
		mov	dword ptr [esp+4], 0
		mov	[esp], ebx
		call	_ZN8netadr_s7SetPortEt ; netadr_s::SetPort(ushort)
		mov	dword ptr [esp+4], 3
		mov	[esp], ebx
		call	_ZN8netadr_s7SetTypeE12netadrtype_t ; netadr_s::SetType(netadrtype_t)
		mov	eax, [ebp+src]
		mov	[esp+4], ebx	; int
		mov	[esp], eax	; src
		call	_Z15NET_StringToAdrPKcP8netadr_s ; NET_StringToAdr(char	 const*,netadr_s *)
		xor	edx, edx
		test	al, al
		jz	short loc_103D9A
		mov	dword ptr [esp+4], 1
		mov	[esp], ebx
		call	_ZNK8netadr_s8ToStringEb ; netadr_s::ToString(bool)
		mov	edx, [ebp+n]
		mov	[esp+4], eax	; src
		mov	eax, [ebp+dest]
		mov	[esp+8], edx	; n
		mov	[esp], eax	; dest
		call	_Z9V_strncpyPcPKci ; V_strncpy(char *,char  const*,int)
		mov	edx, 1

loc_103D9A:				; CODE XREF: CEngineReplay::NET_GetHostnameAsIP(char  const*,char *,int)+4Dj
		add	esp, 24h
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
_ZN13CEngineReplay19NET_GetHostnameAsIPEPKcPci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::RecalculateTags(void)
_ZN13CEngineReplay15RecalculateTagsEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	[ebp+arg_0], offset sv
		pop	ebp
		jmp	_ZN11CBaseServer15RecalculateTagsEv ; CBaseServer::RecalculateTags(void)
_ZN13CEngineReplay15RecalculateTagsEv endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::ResetReplayRecordBuffer(void)
_ZN13CEngineReplay23ResetReplayRecordBufferEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:replay
		mov	dword ptr [esp+8], 0
		mov	dword ptr [esp+4], 0
		mov	eax, [eax+6E8h]
		mov	[esp], eax
		call	_ZN10CUtlBuffer7SeekPutENS_10SeekType_tEi ; CUtlBuffer::SeekPut(CUtlBuffer::SeekType_t,int)
		leave
		retn
_ZN13CEngineReplay23ResetReplayRecordBufferEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CEngineReplay__ReadDemoHeader(int, char *src, int)
_ZN13CEngineReplay14ReadDemoHeaderEPKcR12demoheader_t proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

dest		= byte ptr -554h
var_450		= byte ptr -450h
var_44F		= byte ptr -44Fh
src		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	edx, 430h
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 56Ch
		mov	esi, [ebp+arg_8]
		test	esi, 1
		mov	edi, esi
		jnz	loc_103F20

loc_103E12:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+138j
		test	edi, 2
		jnz	loc_103F10

loc_103E1E:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+12Bj
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jz	short loc_103E34
		mov	word ptr [edi],	0
		add	edi, 2

loc_103E34:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+3Aj
		and	edx, 1
		jz	short loc_103E3C
		mov	byte ptr [edi],	0

loc_103E3C:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+47j
		lea	ebx, [ebp+dest]
		mov	[esp], ebx
		call	_ZN9CDemoFileC2Ev ; CDemoFile::CDemoFile(void)
		mov	eax, [ebp+src]
		mov	dword ptr [esp+14h], 1 ; char
		mov	dword ptr [esp+10h], 0 ; size
		mov	dword ptr [esp+0Ch], 0 ; char
		mov	dword ptr [esp+8], 1 ; char
		mov	[esp+4], eax	; src
		mov	[esp], ebx	; dest
		call	_ZN9CDemoFile4OpenEPKcbbib ; CDemoFile::Open(char  const*,bool,bool,int,bool)
		test	al, al
		jz	loc_103F08
		mov	[esp], ebx
		call	_ZN9CDemoFile14ReadDemoHeaderEv	; CDemoFile::ReadDemoHeader(void)
		mov	edi, esi
		mov	eax, 430h
		lea	esi, [ebp+var_450]
		test	edi, 1
		jnz	loc_103F48

loc_103EA2:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+16Fj
		test	edi, 2
		jnz	loc_103F30

loc_103EAE:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+14Fj
		mov	ecx, eax
		xor	edx, edx
		shr	ecx, 2
		test	al, 2
		rep movsd
		jnz	short loc_103EF0
		test	al, 1
		jnz	short loc_103EE0

loc_103EBF:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+F7j
					; CEngineReplay::ReadDemoHeader(char  const*,demoheader_t &)+10Dj
		mov	esi, 1

loc_103EC4:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+11Aj
		mov	[esp], ebx
		call	_ZN9CDemoFileD2Ev ; CDemoFile::~CDemoFile()
		add	esp, 56Ch
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_103EE0:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+CDj
					; CEngineReplay::ReadDemoHeader(char  const*,demoheader_t &)+10Fj
		movzx	eax, byte ptr [esi+edx]
		mov	[edi+edx], al
		jmp	short loc_103EBF
; ---------------------------------------------------------------------------
		align 10h

loc_103EF0:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+C9j
		movzx	edx, word ptr [esi]
		test	al, 1
		mov	[edi], dx
		mov	edx, 2
		jz	short loc_103EBF
		jmp	short loc_103EE0
; ---------------------------------------------------------------------------
		align 8

loc_103F08:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+8Bj
		xor	esi, esi
		jmp	short loc_103EC4
; ---------------------------------------------------------------------------
		align 10h

loc_103F10:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+28j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_103E1E
; ---------------------------------------------------------------------------

loc_103F20:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+1Cj
		mov	byte ptr [esi],	0
		lea	edi, [esi+1]
		mov	dl, 2Fh
		jmp	loc_103E12
; ---------------------------------------------------------------------------
		align 10h

loc_103F30:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+B8j
		movzx	edx, word ptr [esi]
		sub	eax, 2
		add	esi, 2
		mov	[edi], dx
		add	edi, 2
		jmp	loc_103EAE
; ---------------------------------------------------------------------------
		align 8

loc_103F48:				; CODE XREF: CEngineReplay::ReadDemoHeader(char	 const*,demoheader_t &)+ACj
		movzx	eax, [ebp+var_450]
		lea	esi, [ebp+var_44F]
		mov	[edi], al
		add	edi, 1
		mov	eax, 42Fh
		jmp	loc_103EA2
_ZN13CEngineReplay14ReadDemoHeaderEPKcR12demoheader_t endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZN9CDemoFileD2Ev ; CDemoFile::~CDemoFile()
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::MD5_HashBuffer(unsigned char *, unsigned char	const*,	int, unsigned int *)
_ZN13CEngineReplay14MD5_HashBufferEPhPKhiPj proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_C]
		mov	eax, [ebp+arg_10]
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	[ebp+arg_8], ebx
		pop	ebx
		test	eax, eax
		setnz	al
		mov	[ebp+arg_0], edx
		movzx	eax, al
		mov	[ebp+arg_4], ecx
		mov	[ebp+arg_C], eax
		pop	ebp
		jmp	_Z15MD5_Hash_BufferPhPKhibPj ; MD5_Hash_Buffer(uchar *,uchar  const*,int,bool,uint *)
_ZN13CEngineReplay14MD5_HashBufferEPhPKhiPj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::LZSS_Decompress(char *, unsigned int *, char  const*, unsigned	int)
_ZN13CEngineReplay15LZSS_DecompressEPcPjPKcj proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_10]
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		mov	[ebp+arg_C], ebx
		pop	ebx
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		mov	[ebp+arg_8], ecx
		pop	ebp
		jmp	_Z28COM_BufferToBufferDecompressPcPjPKcj ; COM_BufferToBufferDecompress(char *,uint *,char  const*,uint)
_ZN13CEngineReplay15LZSS_DecompressEPcPjPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::LZSS_Compress(char *, unsigned	int *, char  const*, unsigned int)
_ZN13CEngineReplay13LZSS_CompressEPcPjPKcj proc	near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_10]
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		mov	[ebp+arg_C], ebx
		pop	ebx
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		mov	[ebp+arg_8], ecx
		pop	ebp
		jmp	_Z26COM_BufferToBufferCompressPcPjPKcj ; COM_BufferToBufferCompress(char *,uint	*,char	const*,uint)
_ZN13CEngineReplay13LZSS_CompressEPcPjPKcj endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::CopyFile(char	const*,	char  const*)
_ZN13CEngineReplay8CopyFileEPKcS1_ proc	near ; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		pop	ebp
		jmp	_Z12COM_CopyFilePKcS0_ ; COM_CopyFile(char  const*,char	 const*)
_ZN13CEngineReplay8CopyFileEPKcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::GetModDir(void)
_ZN13CEngineReplay9GetModDirEv proc near ; DATA	XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z19COM_GetModDirectoryv ; COM_GetModDirectory(void)
_ZN13CEngineReplay9GetModDirEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::HostState_Shutdown(void)
_ZN13CEngineReplay18HostState_ShutdownEv proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z18HostState_Shutdownv	; HostState_Shutdown(void)
_ZN13CEngineReplay18HostState_ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::Host_Disconnect(bool)
_ZN13CEngineReplay15Host_DisconnectEb proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		movzx	eax, byte ptr [ebp+arg_4]
		mov	[ebp+arg_4], (offset asc_20E578+4)
		movzx	eax, al
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_Z15Host_DisconnectbPKc	; Host_Disconnect(bool,char  const*)
_ZN13CEngineReplay15Host_DisconnectEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::Cbuf_Execute(void)
_ZN13CEngineReplay12Cbuf_ExecuteEv proc	near ; DATA XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z12Cbuf_Executev ; Cbuf_Execute(void)
_ZN13CEngineReplay12Cbuf_ExecuteEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::Cbuf_AddText(char  const*)
_ZN13CEngineReplay12Cbuf_AddTextEPKc proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_Z12Cbuf_AddTextPKc ; Cbuf_AddText(char	 const*)
_ZN13CEngineReplay12Cbuf_AddTextEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CEngineReplay::IsSupportedModAndPlatform(void)
_ZN13CEngineReplay25IsSupportedModAndPlatformEv	proc near
					; DATA XREF: .rodata:`vtable for'CEngineReplayo
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z32Replay_IsSupportedModAndPlatformv ;	Replay_IsSupportedModAndPlatform(void)
_ZN13CEngineReplay25IsSupportedModAndPlatformEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; path(CCommand	 const&)
_ZL4pathRK8CCommand proc near		; DATA XREF: _GLOBAL__sub_I_g_pFileSystem+67o

arg_0		= dword	ptr  8

		mov	eax, ds:g_pFileSystem
		push	ebp
		mov	ebp, esp
		test	eax, eax
		jz	short loc_1040C0
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+0FCh]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_1040C0:				; CODE XREF: path(CCommand  const&)+Aj
		pop	ebp
		retn
_ZL4pathRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; fs_printopenfiles(CCommand  const&)
_ZL17fs_printopenfilesRK8CCommand proc near ; DATA XREF: _GLOBAL__sub_I_g_pFileSystem+B7o

arg_0		= dword	ptr  8

		mov	eax, ds:g_pFileSystem
		push	ebp
		mov	ebp, esp
		test	eax, eax
		jz	short loc_1040F0
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+0F8h]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h

loc_1040F0:				; CODE XREF: fs_printopenfiles(CCommand	 const&)+Aj
		pop	ebp
		retn
_ZL17fs_printopenfilesRK8CCommand endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; fs_warning_level(CCommand  const&)
_ZL16fs_warning_levelRK8CCommand proc near ; DATA XREF:	_GLOBAL__sub_I_g_pFileSystem+107o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 2
		jnz	short loc_104150
		mov	dword ptr [esp+8], 0Ah ; base
		mov	dword ptr [esp+4], 0 ; endptr
		mov	eax, [eax+40Ch]
		mov	[esp], eax	; nptr
		call	strtol
		cmp	eax, 6		; switch 7 cases
		mov	ebx, eax
		jbe	short loc_104148
		mov	[ebp+arg_0], offset aFs_warning_l_0 ; jumptable	00104148 default case
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	Warning
; ---------------------------------------------------------------------------
		align 4

loc_104148:				; CODE XREF: fs_warning_level(CCommand	const&)+32j
		jmp	ds:off_1F83F8[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_104150:				; CODE XREF: fs_warning_level(CCommand	const&)+Dj
		mov	dword ptr [esp], offset	aFs_warning_l_1	; "\"fs_warning_level n\" where	n is one of:"...
		call	Warning
		mov	dword ptr [esp], offset	a0Filesystem_wa	; "\t0:\tFILESYSTEM_WARNING_QUIET\n"
		call	Warning
		mov	dword ptr [esp], offset	a1Filesystem_wa	; "\t1:\tFILESYSTEM_WARNING_REPORTUNCLOSED\n"
		call	Warning
		mov	dword ptr [esp], offset	a2Filesystem_wa	; "\t2:\tFILESYSTEM_WARNING_REPORTUSAGE\n"
		call	Warning
		mov	dword ptr [esp], offset	a3Filesystem_wa	; "\t3:\tFILESYSTEM_WARNING_REPORTALLACCESSE"...
		call	Warning
		mov	dword ptr [esp], offset	a4Filesystem_wa	; "\t4:\tFILESYSTEM_WARNING_REPORTALLACCESSE"...
		call	Warning
		mov	dword ptr [esp], offset	a5Filesystem_wa	; "\t5:\tFILESYSTEM_WARNING_REPORTALLACCESSE"...
		call	Warning
		mov	[ebp+arg_0], offset a6Filesystem_wa ; "\t6:\tFILESYSTEM_WARNING_REPORTALLACCESSE"...
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	Warning
; ---------------------------------------------------------------------------
		align 4

loc_1041B8:				; CODE XREF: fs_warning_level(CCommand	const&):loc_104148j
					; DATA XREF: .rodata:off_1F83F8o
		mov	dword ptr [esp], offset	aFs_warning_l_2	; jumptable 00104148 case 5
		call	Warning
		lea	esi, [esi+0]

loc_1041C8:				; CODE XREF: fs_warning_level(CCommand	const&)+F4j
					; fs_warning_level(CCommand  const&)+10Cj ...
		mov	eax, ds:g_pFileSystem
		mov	edx, [eax]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	dword ptr [edx+104h]
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_1041E8:				; CODE XREF: fs_warning_level(CCommand	const&):loc_104148j
					; DATA XREF: .rodata:off_1F83F8o
		mov	dword ptr [esp], offset	aFs_warning_l_3	; jumptable 00104148 case 4
		call	Warning
		jmp	short loc_1041C8
; ---------------------------------------------------------------------------
		align 10h

loc_104200:				; CODE XREF: fs_warning_level(CCommand	const&):loc_104148j
					; DATA XREF: .rodata:off_1F83F8o
		mov	dword ptr [esp], offset	aFs_warning_l_4	; jumptable 00104148 case 3
		call	Warning
		jmp	short loc_1041C8
; ---------------------------------------------------------------------------
		align 10h

loc_104210:				; CODE XREF: fs_warning_level(CCommand	const&):loc_104148j
					; DATA XREF: .rodata:off_1F83F8o
		mov	dword ptr [esp], offset	aFs_warning_l_5	; jumptable 00104148 case 2
		call	Warning
		jmp	short loc_1041C8
; ---------------------------------------------------------------------------
		align 10h

loc_104220:				; CODE XREF: fs_warning_level(CCommand	const&):loc_104148j
					; DATA XREF: .rodata:off_1F83F8o
		mov	dword ptr [esp], offset	aFs_warning_l_6	; jumptable 00104148 case 1
		call	Warning
		jmp	short loc_1041C8
; ---------------------------------------------------------------------------
		align 10h

loc_104230:				; CODE XREF: fs_warning_level(CCommand	const&):loc_104148j
					; DATA XREF: .rodata:off_1F83F8o
		mov	dword ptr [esp], offset	aFs_warning_l_7	; jumptable 00104148 case 0
		call	Warning
		jmp	short loc_1041C8
; ---------------------------------------------------------------------------
		align 10h

loc_104240:				; CODE XREF: fs_warning_level(CCommand	const&):loc_104148j
					; DATA XREF: .rodata:off_1F83F8o
		mov	dword ptr [esp], offset	aFs_warning_l_8	; jumptable 00104148 case 6
		call	Warning
		jmp	loc_1041C8
_ZL16fs_warning_levelRK8CCommand endp

; ---------------------------------------------------------------------------
		jmp	short _Z32fs_whitelist_spew_flags_changefnP7IConVarPKcf	; fs_whitelist_spew_flags_changefn(IConVar *,char  const*,float)
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; fs_whitelist_spew_flags_changefn(IConVar *, char  const*, float)
_Z32fs_whitelist_spew_flags_changefnP7IConVarPKcf proc near ; CODE XREF: .text:00104251j

var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, ds:g_pFileSystem
		test	eax, eax
		jz	short locret_10429B
		mov	eax, [ebp+arg_0]
		mov	[esp+4], eax
		lea	eax, [ebp+var_10]
		mov	[esp], eax
		call	_ZN9ConVarRefC2EP7IConVar ; ConVarRef::ConVarRef(IConVar *)
		mov	ecx, [ebp+var_C]
		mov	eax, ds:g_pFileSystem
		mov	ecx, [ecx+30h]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+19Ch]

locret_10429B:				; CODE XREF: fs_whitelist_spew_flags_changefn(IConVar *,char  const*,float)+Dj
		leave
		retn
_Z32fs_whitelist_spew_flags_changefnP7IConVarPKcf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl FileSystem_LoadModule(char *src)
_Z21FileSystem_LoadModulePKc proc near

src		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:g_pFileSystem
		mov	edx, [ebp+src]
		test	eax, eax
		jz	short loc_1042D0
		mov	ecx, [eax]
		mov	dword ptr [esp+0Ch], 1
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [ecx+64h]
		leave
		retn
; ---------------------------------------------------------------------------

loc_1042D0:				; CODE XREF: FileSystem_LoadModule(char	 const*)+10j
		mov	dword ptr [esp+4], 0 ; int
		mov	[esp], edx	; src
		call	_Z14Sys_LoadModulePKc9Sys_Flags	; Sys_LoadModule(char  const*,Sys_Flags)
		leave
		retn
_Z21FileSystem_LoadModulePKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_UnloadModule(CSysModule *)
_Z23FileSystem_UnloadModuleP10CSysModule proc near ; CODE XREF:	UnloadEntityDLLs(void)+12p
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	_Z16Sys_UnloadModuleP10CSysModule ; Sys_UnloadModule(CSysModule	*)
_Z23FileSystem_UnloadModuleP10CSysModule endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; FileSystem_SetWhitelistSpewFlags(void)
_Z32FileSystem_SetWhitelistSpewFlagsv proc near
					; CODE XREF: Sys_InitGame(void * (*)(char  const*,int *),char  const*,void *,int)+Dp
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_Z32FileSystem_SetWhitelistSpewFlagsv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::~CFileTransferMgr()
_ZN16CFileTransferMgrD2Ev proc near	; DATA XREF: .rodata:`vtable for'CFileTransferMgro

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16CFileTransferMgr+8)
		pop	ebp
		retn
_ZN16CFileTransferMgrD2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::~CFileTransferMgr()
_ZN16CFileTransferMgrD0Ev proc near	; DATA XREF: .rodata:`vtable for'CFileTransferMgro

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16CFileTransferMgr+8)
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN16CFileTransferMgrD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::CFileTransferMgr(void)
_ZN16CFileTransferMgrC2Ev proc near

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], (offset _ZTV16CFileTransferMgr+8)
		pop	ebp
		retn
_ZN16CFileTransferMgrC2Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::StartSending(INetChannel *,	void  const*, int, char	 const*, int, int)
_ZN16CFileTransferMgr12StartSendingEP11INetChannelPKviPKcii proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CFileTransferMgr12StartSendingEP11INetChannelPKviPKcii endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::HandleClientDisconnect(INetChannel *)
_ZN16CFileTransferMgr22HandleClientDisconnectEP11INetChannel proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CFileTransferMgr22HandleClientDisconnectEP11INetChannel endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::HandleReceivedData(INetChannel *, void  const*, int)
_ZN16CFileTransferMgr18HandleReceivedDataEP11INetChannelPKvi proc near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CFileTransferMgr18HandleReceivedDataEP11INetChannelPKvi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::FirstIncoming(void)const
_ZNK16CFileTransferMgr13FirstIncomingEv	proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CFileTransferMgr13FirstIncomingEv	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::NextIncoming(int)const
_ZNK16CFileTransferMgr12NextIncomingEi proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CFileTransferMgr12NextIncomingEi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::InvalidIncoming(void)const
_ZNK16CFileTransferMgr15InvalidIncomingEv proc near
		push	ebp
		xor	eax, eax
		mov	ebp, esp
		pop	ebp
		retn
_ZNK16CFileTransferMgr15InvalidIncomingEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CFileTransferMgr::GetIncomingUserData(int, void  const*&, int	&)
_ZN16CFileTransferMgr19GetIncomingUserDataEiRPKvRi proc	near
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
_ZN16CFileTransferMgr19GetIncomingUserDataEiRPKvRi endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; __CreateCGameEventManagerIGameEventManager2_interface(void)
_ZL53__CreateCGameEventManagerIGameEventManager2_interfacev proc near
					; DATA XREF: _GLOBAL__sub_I_g_GameEventManager+C7o
		push	ebp
		mov	eax, offset _ZL18s_GameEventManager ; s_GameEventManager
		mov	ebp, esp
		pop	ebp
		retn
_ZL53__CreateCGameEventManagerIGameEventManager2_interfacev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::IsLocal(void)const
_ZNK10CGameEvent7IsLocalEv proc	near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+4]
		movzx	eax, byte ptr [eax+28h]
		retn
_ZNK10CGameEvent7IsLocalEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::IsReliable(void)const
_ZNK10CGameEvent10IsReliableEv proc near ; DATA	XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	eax, [eax+4]
		movzx	eax, byte ptr [eax+29h]
		retn
_ZNK10CGameEvent10IsReliableEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::FreeEvent(IGameEvent *)
_ZN17CGameEventManager9FreeEventEP10IGameEvent proc near
					; DATA XREF: .rodata:`vtable for'CGameEventManagero

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_104408
		mov	edx, [eax]
		mov	[ebp+arg_0], eax
		pop	ebp
		mov	eax, [edx+4]
		jmp	eax
; ---------------------------------------------------------------------------
		align 4

loc_104408:				; CODE XREF: CGameEventManager::FreeEvent(IGameEvent *)+8j
		pop	ebp
		retn
_ZN17CGameEventManager9FreeEventEP10IGameEvent endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::GetName(void)const
_ZNK10CGameEvent7GetNameEv proc	near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
_ZNK10CGameEvent7GetNameEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::~CGameEvent()
_ZN10CGameEventD2Ev proc near		; CODE XREF: CGameEvent::~CGameEvent()+Dp
					; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+8]
		mov	dword ptr [ebx], (offset _ZTV10CGameEvent+8)
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		mov	dword ptr [ebx], (offset _ZTV10IGameEvent+8)
		add	esp, 14h
		pop	ebx
		pop	ebp
		retn
_ZN10CGameEventD2Ev endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ebx], (offset _ZTV10IGameEvent+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CGameEvent___CGameEvent(void *)
_ZN10CGameEventD0Ev proc near		; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	[esp], ebx	; void *
		call	_ZN10CGameEventD2Ev ; CGameEvent::~CGameEvent()
		mov	[ebp+arg_0], ebx
		add	esp, 14h
		pop	ebx
		pop	ebp
		jmp	_ZdlPv		; operator delete(void *)
_ZN10CGameEventD0Ev endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::GetString(char  const*, char  const*)
_ZN10CGameEvent9GetStringEPKcS1_ proc near ; DATA XREF:	.rodata:`vtable	for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues9GetStringEPKcS1_ ; KeyValues::GetString(char  const*,char	 const*)
_ZN10CGameEvent9GetStringEPKcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::SetInt(char  const*, int)
_ZN10CGameEvent6SetIntEPKci proc near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues6SetIntEPKci ; KeyValues::SetInt(char  const*,int)
_ZN10CGameEvent6SetIntEPKci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::SetBool(char  const*, bool)
_ZN10CGameEvent7SetBoolEPKcb proc near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		movzx	eax, byte ptr [ebp+arg_8]
		mov	[ebp+arg_8], eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues6SetIntEPKci ; KeyValues::SetInt(char  const*,int)
_ZN10CGameEvent7SetBoolEPKcb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::GetInt(char  const*, int)
_ZN10CGameEvent6GetIntEPKci proc near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
_ZN10CGameEvent6GetIntEPKci endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl CGameEvent__GetBool(int, char *src, char)
_ZN10CGameEvent7GetBoolEPKcb proc near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8
src		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		movzx	eax, [ebp+arg_8]
		mov	[esp+8], eax	; int
		mov	eax, [ebp+src]
		mov	[esp+4], eax	; src
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[esp], eax	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		leave
		test	eax, eax
		setnz	al
		retn
_ZN10CGameEvent7GetBoolEPKcb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::IsEmpty(char  const*)
_ZN10CGameEvent7IsEmptyEPKc proc near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues7IsEmptyEPKc ; KeyValues::IsEmpty(char  const*)
_ZN10CGameEvent7IsEmptyEPKc endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::SetString(char  const*, char  const*)
_ZN10CGameEvent9SetStringEPKcS1_ proc near ; DATA XREF:	.rodata:`vtable	for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues9SetStringEPKcS1_ ; KeyValues::SetString(char  const*,char	 const*)
_ZN10CGameEvent9SetStringEPKcS1_ endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::SetFloat(char  const*, float)
_ZN10CGameEvent8SetFloatEPKcf proc near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues8SetFloatEPKcf ; KeyValues::SetFloat(char	const*,float)
_ZN10CGameEvent8SetFloatEPKcf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::GetFloat(char  const*, float)
_ZN10CGameEvent8GetFloatEPKcf proc near	; DATA XREF: .rodata:`vtable for'CGameEvento

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		mov	[ebp+arg_0], eax
		pop	ebp
		jmp	_ZN9KeyValues8GetFloatEPKcf ; KeyValues::GetFloat(char	const*,float)
_ZN10CGameEvent8GetFloatEPKcf endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEvent::CGameEvent(CGameEventDescriptor *)
_ZN10CGameEventC2EP20CGameEventDescriptor proc near
					; CODE XREF: CGameEventManager::DuplicateEvent(IGameEvent *)+4Dp
					; CGameEventManager::CreateEvent(CGameEventDescriptor *)+1Fp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_C], ebx
		mov	dword ptr [esi], (offset _ZTV10CGameEvent+8)
		mov	[esi+4], edi
		mov	dword ptr [esp], 20h
		call	_ZN9KeyValuesnwEj ; KeyValues::operator	new(uint)
		mov	ebx, eax
		mov	[esp+4], edi
		mov	[esp], eax
		call	_ZN9KeyValuesC2EPKc ; KeyValues::KeyValues(char	 const*)
		mov	[esi+8], ebx
		mov	ebx, [ebp+var_C]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
_ZN10CGameEventC2EP20CGameEventDescriptor endp

; ---------------------------------------------------------------------------

loc_104608:				; CODE XREF: .text:00104622j
		mov	dword ptr [esi], (offset _ZTV10IGameEvent+8)
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		mov	edi, eax
		mov	[esp], ebx
		call	_ZN9KeyValuesdlEPv ; KeyValues::operator delete(void *)
		mov	eax, edi
		jmp	short loc_104608
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::DuplicateEvent(IGameEvent *)
_ZN17CGameEventManager14DuplicateEventEP10IGameEvent proc near
					; DATA XREF: .rodata:`vtable for'CGameEventManagero

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	ebx
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_1046A8
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset _ZTI10CGameEvent ; `typeinfo for'CGameEvent
		mov	dword ptr [esp+4], offset _ZTI10IGameEvent ; `typeinfo for'IGameEvent
		mov	[esp], eax
		call	__dynamic_cast
		test	eax, eax
		mov	esi, eax
		jz	short loc_1046A8
		mov	dword ptr [esp], 0Ch
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	eax, [esi+4]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CGameEventC2EP20CGameEventDescriptor ; CGameEvent::CGameEvent(CGameEventDescriptor	*)
		mov	eax, [ebx+8]
		mov	[esp], eax	; void *
		call	_ZN9KeyValues10deleteThisEv ; KeyValues::deleteThis(void)
		mov	eax, [esi+8]
		mov	[esp], eax
		call	_ZNK9KeyValues8MakeCopyEv ; KeyValues::MakeCopy(void)
		mov	[ebx+8], eax
		add	esp, 10h
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_1046A8:				; CODE XREF: CGameEventManager::DuplicateEvent(IGameEvent *)+Dj
					; CGameEventManager::DuplicateEvent(IGameEvent *)+33j
		add	esp, 10h
		xor	ebx, ebx
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN17CGameEventManager14DuplicateEventEP10IGameEvent endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	[esp], esi
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::Init(void)
_ZN17CGameEventManager4InitEv proc near	; CODE XREF: Host_Init(bool)+225p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 14h
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx]
		mov	[esp], ebx
		call	dword ptr [eax+0Ch]
		mov	eax, [ebx]
		mov	[esp], ebx
		mov	dword ptr [esp+4], offset aResourceServer ; "resource/serverevents.res"
		call	dword ptr [eax+8]
		add	esp, 14h
		mov	eax, 1
		pop	ebx
		pop	ebp
		retn
_ZN17CGameEventManager4InitEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::Shutdown(void)
_ZN17CGameEventManager8ShutdownEv proc near ; CODE XREF: Host_Shutdown(void)+15Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		pop	ebp
		mov	edx, [eax]
		mov	eax, [edx+0Ch]
		jmp	eax
_ZN17CGameEventManager8ShutdownEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::HasClientListenersChanged(bool)
_ZN17CGameEventManager25HasClientListenersChangedEb proc near
					; CODE XREF: CBaseClientState::RunFrame(void)+188p
					; CBaseClientState::ProcessServerInfo(SVC_ServerInfo *)+29Cp

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		movzx	ecx, [ebp+arg_4]
		cmp	byte ptr [edx+78h], 0
		jz	short loc_10472F
		test	cl, cl
		mov	eax, 1
		jz	short loc_10472F
		mov	byte ptr [edx+78h], 0

loc_10472F:				; CODE XREF: CGameEventManager::HasClientListenersChanged(bool)+10j
					; CGameEventManager::HasClientListenersChanged(bool)+19j
		pop	ebp
		retn
_ZN17CGameEventManager25HasClientListenersChangedEb endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::WriteEventList(SVC_GameEventList *)
_ZN17CGameEventManager14WriteEventListEP17SVC_GameEventList proc near
					; CODE XREF: SV_CreateBaseline(void)+11Fp

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	esi, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [esi+10h], 0
		mov	ecx, [edx+10h]
		test	ecx, ecx
		jle	loc_1048C1
		lea	edi, [esi+30h]
		mov	[ebp+var_30], 0
		mov	[ebp+var_34], edi
		db	66h
		nop

loc_104770:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+17Bj
		mov	ebx, [ebp+var_30]
		mov	edx, [ebp+arg_0]
		shl	ebx, 6
		add	ebx, [edx+4]
		cmp	byte ptr [ebx+28h], 0
		jnz	loc_1048AE
		mov	edx, [esi+38h]
		mov	eax, [esi+3Ch]
		mov	edi, [ebx+20h]
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, 8
		jg	loc_1048D0
		mov	[esi+3Ch], edx
		mov	byte ptr [esi+40h], 1

loc_1047A3:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+1FCj
		mov	edx, [ebp+var_34]
		mov	[esp+4], ebx
		mov	[esp], edx
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		mov	eax, [ebx+24h]
		mov	ebx, [eax+18h]
		test	ebx, ebx
		jnz	short loc_1047F1
		jmp	loc_104890
; ---------------------------------------------------------------------------
		align 8

loc_1047C8:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+DAj
		mov	[esi+3Ch], ecx
		mov	byte ptr [esi+40h], 1

loc_1047CF:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+143j
		mov	[esp], ebx
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	edi, [ebp+var_34]
		mov	[esp+4], eax
		mov	[esp], edi
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)

loc_1047E6:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+CBj
		mov	ebx, [ebx+14h]
		test	ebx, ebx
		jz	loc_104890

loc_1047F1:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+7Aj
		mov	dword ptr [esp+8], 0 ; int
		mov	dword ptr [esp+4], 0 ; src
		mov	[esp], ebx	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		test	eax, eax
		jz	short loc_1047E6
		mov	ecx, [esi+38h]
		mov	edx, [esi+3Ch]
		mov	edi, ecx
		sub	edi, edx
		cmp	edi, 2
		jle	short loc_1047C8
		mov	ecx, edx
		mov	edi, 3
		mov	[ebp+var_20], 7
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+3]
		sar	edx, 5
		mov	[esi+3Ch], ecx
		mov	ecx, [esi+30h]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		rol	eax, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	eax, [edx]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_2C], eax
		mov	eax, edi
		and	eax, 1
		mov	[ebp+var_28], edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+var_24]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_24]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		and	eax, [ebp+var_20]
		and	ecx, [ebp+var_28]
		xor	eax, [ebp+var_2C]
		xor	ecx, [edi]
		mov	[edi], ecx
		mov	[edx], eax
		jmp	loc_1047CF
; ---------------------------------------------------------------------------
		align 10h

loc_104890:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+7Cj
					; CGameEventManager::WriteEventList(SVC_GameEventList *)+ABj
		mov	eax, [esi+38h]
		mov	edx, [esi+3Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 2
		jg	loc_104948
		mov	[esi+3Ch], eax
		mov	byte ptr [esi+40h], 1

loc_1048AA:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+250j
		add	dword ptr [esi+10h], 1

loc_1048AE:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+40j
		add	[ebp+var_30], 1
		mov	edi, [ebp+arg_0]
		mov	edx, [ebp+var_30]
		cmp	[edi+10h], edx
		jg	loc_104770

loc_1048C1:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+1Bj
		add	esp, 3Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_1048D0:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+56j
		lea	edx, [eax+9]
		mov	ecx, eax
		sar	eax, 5
		mov	[esi+3Ch], edx
		mov	edx, [esi+30h]
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		rol	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edi
		mov	edi, 0FFh
		mov	[ebp+var_20], 1FFh
		lea	eax, [edx+eax*4]
		mov	edx, [eax]
		shr	edi, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_28], edx
		mov	edx, edi
		shl	[ebp+var_20], cl
		and	edx, 1
		lea	edx, [eax+edx*4]
		mov	[ebp+var_2C], edx
		mov	edx, [edx]
		mov	[ebp+var_38], edx
		mov	edx, [ebp+var_28]
		mov	ecx, [ebp+var_38]
		xor	edx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	edx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_38]
		xor	edx, [ebp+var_28]
		mov	[edi], ecx
		mov	[eax], edx
		jmp	loc_1047A3
; ---------------------------------------------------------------------------
		align 8

loc_104948:				; CODE XREF: CGameEventManager::WriteEventList(SVC_GameEventList *)+15Dj
		lea	eax, [edx+3]
		mov	ecx, edx
		sar	edx, 5
		and	ecx, 1Fh
		mov	[esi+3Ch], eax
		mov	eax, [esi+30h]
		mov	[ebp+var_1C], ecx
		mov	ecx, 1Fh
		mov	ebx, 3
		sub	ecx, [ebp+var_1C]
		lea	edx, [eax+edx*4]
		mov	eax, 7
		mov	edi, [edx]
		shr	ebx, cl
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_20], edi
		mov	edi, ebx
		not	ebx
		shl	eax, cl
		and	edi, 1
		and	eax, [ebp+var_20]
		and	[edx+edi*4], ebx
		xor	eax, [ebp+var_20]
		mov	[edx], eax
		jmp	loc_1048AA
_ZN17CGameEventManager14WriteEventListEP17SVC_GameEventList endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::WriteListenEventList(CLC_ListenEvents *)
_ZN17CGameEventManager20WriteListenEventListEP16CLC_ListenEvents proc near
					; CODE XREF: CBaseClientState::RunFrame(void)+1C0p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	edi, [ebp+arg_4]
		add	edi, 10h
		jz	short loc_1049E9
		test	edi, 1
		mov	edx, 40h
		jnz	loc_104AC8

loc_1049C2:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+139j
		test	edi, 2
		jnz	loc_104AB8

loc_1049CE:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+123j
		mov	ecx, edx
		xor	eax, eax
		shr	ecx, 2
		test	dl, 2
		rep stosd
		jnz	loc_104AA5
		and	edx, 1
		jnz	loc_104A9B

loc_1049E9:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+Fj
					; CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+100j ...
		mov	edx, [ebp+arg_0]
		mov	ebx, [edx+10h]
		test	ebx, ebx
		jle	short loc_104A42
		xor	ebx, ebx
		lea	esi, [esi+0]

loc_1049F8:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+A0j
					; CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+D6j ...
		mov	edx, [ebp+arg_0]
		mov	edi, ebx
		shl	edi, 6
		add	edi, [edx+4]
		mov	ecx, [edi+38h]
		test	ecx, ecx
		jle	short loc_104A37
		mov	esi, [edi+2Ch]
		mov	eax, [esi]
		mov	eax, [eax+4]
		cmp	eax, 4
		jz	short loc_104A50
		cmp	eax, 1
		jz	short loc_104A50
		xor	eax, eax
		jmp	short loc_104A30
; ---------------------------------------------------------------------------

loc_104A20:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+95j
		mov	edx, [esi+eax*4]
		mov	edx, [edx+4]
		cmp	edx, 4
		jz	short loc_104A50
		cmp	edx, 1
		jz	short loc_104A50

loc_104A30:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+7Ej
		add	eax, 1
		cmp	eax, ecx
		jnz	short loc_104A20

loc_104A37:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+68j
		mov	edx, [ebp+arg_0]
		add	ebx, 1
		cmp	[edx+10h], ebx
		jg	short loc_1049F8

loc_104A42:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+51j
					; CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+D8j ...
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_104A50:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+75j
					; CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+7Aj ...
		mov	ecx, [edi+20h]
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_104A7A
		mov	edx, 1
		mov	eax, ecx
		add	ebx, 1
		shl	edx, cl
		sar	eax, 5
		mov	ecx, edx
		mov	edx, [ebp+arg_4]
		or	[edx+eax*4+10h], ecx
		mov	edx, [ebp+arg_0]
		cmp	[edx+10h], ebx
		jg	short loc_1049F8
		jmp	short loc_104A42
; ---------------------------------------------------------------------------

loc_104A7A:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+B6j
		mov	[esp+4], edi
		add	ebx, 1
		mov	dword ptr [esp], offset	aWarningClientL	; "Warning! Client listens to event '%s' u"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		mov	edx, [ebp+arg_0]
		cmp	[edx+10h], ebx
		jg	loc_1049F8
		jmp	short loc_104A42
; ---------------------------------------------------------------------------

loc_104A9B:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+43j
					; CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+116j
		mov	byte ptr [edi],	0
		db	66h
		nop
		jmp	loc_1049E9
; ---------------------------------------------------------------------------

loc_104AA5:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+3Aj
		mov	word ptr [edi],	0
		add	edi, 2
		and	edx, 1
		jz	loc_1049E9
		jmp	short loc_104A9B
; ---------------------------------------------------------------------------

loc_104AB8:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+28j
		mov	word ptr [edi],	0
		sub	edx, 2
		add	edi, 2
		jmp	loc_1049CE
; ---------------------------------------------------------------------------

loc_104AC8:				; CODE XREF: CGameEventManager::WriteListenEventList(CLC_ListenEvents *)+1Cj
		mov	edx, [ebp+arg_4]
		mov	edi, edx
		mov	byte ptr [edx+10h], 0
		mov	edx, 3Fh
		add	edi, 11h
		jmp	loc_1049C2
_ZN17CGameEventManager20WriteListenEventListEP16CLC_ListenEvents endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::CreateEvent(CGameEventDescriptor *)
_ZN17CGameEventManager11CreateEventEP20CGameEventDescriptor proc near
					; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+B6p

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		sub	esp, 24h
		mov	dword ptr [esp], 0Ch
		call	_Znwj		; operator new(uint)
		mov	ebx, eax
		mov	eax, [ebp+arg_4]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	_ZN10CGameEventC2EP20CGameEventDescriptor ; CGameEvent::CGameEvent(CGameEventDescriptor	*)
		add	esp, 24h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZN17CGameEventManager11CreateEventEP20CGameEventDescriptor endp

; ---------------------------------------------------------------------------
		mov	[ebp-0Ch], eax
		mov	[esp], ebx
		call	_ZdlPv		; operator delete(void *)
		mov	eax, [ebp-0Ch]
		mov	[esp], eax
		call	_Unwind_Resume
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::UnserializeEvent(bf_read *)
_ZN17CGameEventManager16UnserializeEventEP7bf_read proc	near
					; DATA XREF: .rodata:`vtable for'CGameEventManagero

var_42C		= dword	ptr -42Ch
var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= byte ptr -418h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 44Ch
		mov	esi, [ebp+arg_4]
		mov	eax, [esi+8]
		mov	edx, [esi+0Ch]
		mov	ecx, eax
		sub	ecx, edx
		cmp	ecx, 8
		jle	loc_104ED8
		mov	edi, [esi]
		lea	eax, [edx+9]
		mov	ebx, edx
		mov	[esi+0Ch], eax
		lea	eax, [edx+8]
		sar	edx, 5
		sar	eax, 5
		and	ebx, 1Fh
		mov	ecx, 20h
		sub	ecx, ebx
		mov	eax, [edi+eax*4]
		mov	edx, [edi+edx*4]
		shl	eax, cl
		mov	ecx, ebx
		shr	edx, cl
		or	eax, edx
		and	eax, 1FFh

loc_104B82:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+3B5j
		mov	edx, [ebp+arg_0]
		mov	edi, [edx+10h]
		test	edi, edi
		jle	short loc_104BB1
		mov	ebx, [edx+4]
		xor	ecx, ecx
		cmp	eax, [ebx+20h]
		lea	edx, [ebx+40h]
		jnz	short loc_104BAA
		jmp	short loc_104BD8
; ---------------------------------------------------------------------------
		align 10h

loc_104BA0:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+7Fj
		mov	ebx, edx
		add	edx, 40h
		cmp	eax, [edx-20h]
		jz	short loc_104BD8

loc_104BAA:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+67j
		add	ecx, 1
		cmp	ecx, edi
		jnz	short loc_104BA0

loc_104BB1:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+5Aj
					; CGameEventManager::UnserializeEvent(bf_read *)+AAj
		mov	[esp+4], eax
		xor	edi, edi
		mov	dword ptr [esp], offset	aCgameeventmana	; "CGameEventManager::UnserializeEvent:: u"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		nop
		lea	esi, [esi+0]

loc_104BC8:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+CFj
					; CGameEventManager::UnserializeEvent(bf_read *)+115j ...
		add	esp, 44Ch
		mov	eax, edi
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4

loc_104BD8:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+69j
					; CGameEventManager::UnserializeEvent(bf_read *)+78j
		test	ebx, ebx
		jz	short loc_104BB1
		mov	eax, [ebp+arg_0]
		mov	[esp+4], ebx
		mov	[esp], eax
		call	_ZN17CGameEventManager11CreateEventEP20CGameEventDescriptor ; CGameEventManager::CreateEvent(CGameEventDescriptor *)
		test	eax, eax
		mov	edi, eax
		jz	loc_104EFC
		mov	eax, [ebx+24h]
		mov	ebx, [eax+18h]
		test	ebx, ebx
		jnz	short loc_104C47
		jmp	short loc_104BC8
; ---------------------------------------------------------------------------
		align 8

loc_104C08:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+140j
		mov	[esp], ebx	; jumptable 00104C72 default case
		mov	[ebp+var_428], eax
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	edx, [ebp+var_428]
		mov	dword ptr [esp+4], offset aCgameeventma_0 ; "CGameEventManager:	unknown	type %i	for "...
		mov	[esp+0Ch], eax
		mov	dword ptr [esp], 1
		mov	[esp+8], edx
		call	DevMsg
		nop
		lea	esi, [esi+0]

loc_104C40:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+142j
					; CGameEventManager::UnserializeEvent(bf_read *)+1D4j ...
		mov	ebx, [ebx+14h]	; jumptable 00104C72 case 0
		test	ebx, ebx
		jz	short loc_104BC8

loc_104C47:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+CDj
		mov	[esp], ebx
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	dword ptr [esp+8], 0 ; int
		mov	[ebp+var_41C], eax
		mov	dword ptr [esp+4], 0 ; src
		mov	[esp], ebx	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		cmp	eax, 6		; switch 7 cases
		ja	short loc_104C08 ; jumptable 00104C72 default case
		jmp	ds:off_1F8920[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_104C80:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+142j
					; DATA XREF: .rodata:off_1F8920o
		mov	eax, [edi]	; jumptable 00104C72 case 5
		mov	edx, [esi+8]
		mov	eax, [eax+2Ch]
		mov	ecx, edx
		mov	[ebp+var_424], eax
		mov	eax, [esi+0Ch]
		sub	ecx, eax
		cmp	ecx, 7
		jle	loc_104EC0
		lea	edx, [eax+8]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[esi+0Ch], edx
		mov	[ebp+var_420], ecx
		lea	edx, [eax+7]
		mov	ecx, 20h
		sub	ecx, [ebp+var_420]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_42C], ecx
		mov	ecx, [esi]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_42C]
		shl	edx, cl
		mov	ecx, [esi]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_420]
		shr	eax, cl
		or	edx, eax
		and	edx, 0FFh

loc_104CED:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+24Aj
					; CGameEventManager::UnserializeEvent(bf_read *)+2B7j ...
		mov	eax, [ebp+var_41C]
		mov	[esp+8], edx
		mov	[esp], edi
		mov	[esp+4], eax
		call	[ebp+var_424]
		jmp	loc_104C40	; jumptable 00104C72 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_104D10:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+142j
					; DATA XREF: .rodata:off_1F8920o
		mov	eax, [edi]	; jumptable 00104C72 case 4
		mov	edx, [esi+8]
		mov	eax, [eax+2Ch]
		mov	ecx, edx
		mov	[ebp+var_424], eax
		mov	eax, [esi+0Ch]
		sub	ecx, eax
		cmp	ecx, 0Fh
		jle	loc_104EC0
		lea	edx, [eax+10h]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[esi+0Ch], edx
		mov	[ebp+var_420], ecx
		lea	edx, [eax+0Fh]
		mov	ecx, 20h
		sub	ecx, [ebp+var_420]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_42C], ecx
		mov	ecx, [esi]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_42C]
		shl	edx, cl
		mov	ecx, [esi]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_420]
		shr	eax, cl
		or	edx, eax
		movsx	edx, dx
		jmp	loc_104CED
; ---------------------------------------------------------------------------
		align 10h

loc_104D80:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+142j
					; DATA XREF: .rodata:off_1F8920o
		mov	eax, [edi]	; jumptable 00104C72 case 3
		mov	edx, [esi+8]
		mov	eax, [eax+2Ch]
		mov	ecx, edx
		mov	[ebp+var_424], eax
		mov	eax, [esi+0Ch]
		sub	ecx, eax
		cmp	ecx, 1Fh
		jle	loc_104EC0
		lea	edx, [eax+20h]
		mov	ecx, eax
		and	ecx, 1Fh
		mov	[esi+0Ch], edx
		mov	[ebp+var_420], ecx
		lea	edx, [eax+1Fh]
		mov	ecx, 20h
		sub	ecx, [ebp+var_420]
		sar	edx, 5
		sar	eax, 5
		mov	[ebp+var_42C], ecx
		mov	ecx, [esi]
		mov	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_42C]
		shl	edx, cl
		mov	ecx, [esi]
		mov	eax, [ecx+eax*4]
		movzx	ecx, byte ptr [ebp+var_420]
		shr	eax, cl
		or	edx, eax
		jmp	loc_104CED
; ---------------------------------------------------------------------------
		align 10h

loc_104DF0:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+142j
					; DATA XREF: .rodata:off_1F8920o
		mov	eax, [edi]	; jumptable 00104C72 case 2
		mov	eax, [eax+30h]
		mov	[esp], esi
		mov	[ebp+var_420], eax
		call	_ZN7bf_read9ReadFloatEv	; bf_read::ReadFloat(void)
		mov	eax, [ebp+var_41C]
		mov	[esp], edi
		fstp	dword ptr [esp+8]
		mov	[esp+4], eax
		call	[ebp+var_420]
		jmp	loc_104C40	; jumptable 00104C72 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_104E20:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+142j
					; DATA XREF: .rodata:off_1F8920o
		lea	edx, [ebp+var_418] ; jumptable 00104C72	case 1
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], 400h
		mov	[esp+4], edx
		mov	[esp], esi
		call	_ZN7bf_read10ReadStringEPcibPi ; bf_read::ReadString(char *,int,bool,int *)
		test	al, al
		jz	loc_104C40	; jumptable 00104C72 case 0
		mov	edx, [ebp+var_41C]
		lea	ecx, [ebp+var_418]
		mov	eax, [edi]
		mov	[esp+8], ecx
		mov	[esp], edi
		mov	[esp+4], edx
		call	dword ptr [eax+34h]
		jmp	loc_104C40	; jumptable 00104C72 case 0
; ---------------------------------------------------------------------------
		align 8

loc_104E78:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+142j
					; DATA XREF: .rodata:off_1F8920o
		mov	eax, [edi]	; jumptable 00104C72 case 6
		mov	ecx, [esi+0Ch]
		mov	eax, [eax+2Ch]
		mov	[ebp+var_420], eax
		mov	eax, [esi+8]
		sub	eax, ecx
		test	eax, eax
		jle	short loc_104EF0
		mov	eax, [esi]
		mov	edx, ecx
		sar	edx, 5
		mov	eax, [eax+edx*4]
		shr	eax, cl
		add	ecx, 1
		mov	[esi+0Ch], ecx
		and	eax, 1

loc_104EA4:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+3CAj
		mov	[esp+8], eax
		mov	eax, [ebp+var_41C]
		mov	[esp], edi
		mov	[esp+4], eax
		call	[ebp+var_420]
		jmp	loc_104C40	; jumptable 00104C72 case 0
; ---------------------------------------------------------------------------

loc_104EC0:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+168j
					; CGameEventManager::UnserializeEvent(bf_read *)+1F8j ...
		mov	[esi+0Ch], edx
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	edx, edx
		jmp	loc_104CED
; ---------------------------------------------------------------------------
		align 8

loc_104ED8:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+1Cj
		mov	[esi+0Ch], eax
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	loc_104B82
; ---------------------------------------------------------------------------
		align 10h

loc_104EF0:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+35Dj
		mov	[esp], esi
		call	_ZN7bf_read15SetOverflowFlagEv ; bf_read::SetOverflowFlag(void)
		xor	eax, eax
		jmp	short loc_104EA4
; ---------------------------------------------------------------------------

loc_104EFC:				; CODE XREF: CGameEventManager::UnserializeEvent(bf_read *)+BFj
		mov	[esp+4], ebx
		mov	dword ptr [esp], offset	aCgameeventma_1	; "CGameEventManager::UnserializeEvent:: f"...
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_104BC8
_ZN17CGameEventManager16UnserializeEventEP7bf_read endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::FindEventListener(void *)
_ZN17CGameEventManager17FindEventListenerEPv proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		xor	eax, eax
		mov	ebp, esp
		push	esi
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	ecx, [edx+24h]
		test	ecx, ecx
		jle	short loc_104F58
		mov	esi, [edx+18h]
		xor	edx, edx
		mov	eax, [esi]
		cmp	[eax], ebx
		jnz	short loc_104F4F
		jmp	short loc_104F58
; ---------------------------------------------------------------------------
		align 8

loc_104F48:				; CODE XREF: CGameEventManager::FindEventListener(void *)+34j
		mov	eax, [esi+edx*4]
		cmp	[eax], ebx
		jz	short loc_104F58

loc_104F4F:				; CODE XREF: CGameEventManager::FindEventListener(void *)+1Dj
		add	edx, 1
		cmp	edx, ecx
		jnz	short loc_104F48
		xor	eax, eax

loc_104F58:				; CODE XREF: CGameEventManager::FindEventListener(void *)+12j
					; CGameEventManager::FindEventListener(void *)+1Fj ...
		pop	ebx
		pop	esi
		pop	ebp
		retn
_ZN17CGameEventManager17FindEventListenerEPv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::ReloadEventDefinitions(void)
_ZN17CGameEventManager22ReloadEventDefinitionsEv proc near
					; CODE XREF: SV_CreateBaseline(void)+C4p

var_1A		= word ptr -1Ah
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 2Ch
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+70h]
		test	esi, esi
		jle	short loc_104FAE
		lea	edi, [ebx+2Ch]
		xor	esi, esi
		nop
		lea	esi, [esi+0]

loc_104F80:				; CODE XREF: CGameEventManager::ReloadEventDefinitions(void)+4Cj
		mov	eax, [ebx+64h]
		movzx	eax, word ptr [eax+esi*2]
		mov	[esp], edi
		add	esi, 1
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1A]
		mov	[esp+4], eax
		call	_ZNK15CUtlSymbolTable6StringE10CUtlSymbol ; CUtlSymbolTable::String(CUtlSymbol)
		mov	edx, [ebx]
		mov	[esp], ebx
		mov	[esp+4], eax
		call	dword ptr [edx+8]
		cmp	[ebx+70h], esi
		jg	short loc_104F80

loc_104FAE:				; CODE XREF: CGameEventManager::ReloadEventDefinitions(void)+11j
		mov	ecx, [ebx+10h]
		test	ecx, ecx
		jle	short loc_104FD2
		xor	eax, eax
		mov	esi, esi
		lea	edi, [edi+0]

loc_104FC0:				; CODE XREF: CGameEventManager::ReloadEventDefinitions(void)+70j
		mov	edx, eax
		shl	edx, 6
		add	edx, [ebx+4]
		mov	[edx+20h], eax
		add	eax, 1
		cmp	eax, ecx
		jnz	short loc_104FC0

loc_104FD2:				; CODE XREF: CGameEventManager::ReloadEventDefinitions(void)+53j
		add	esp, 2Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
_ZN17CGameEventManager22ReloadEventDefinitionsEv endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::GetEventDescriptor(IGameEvent *)
_ZN17CGameEventManager18GetEventDescriptorEP10IGameEvent proc near
					; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+16p
					; CGameEventManager::ConPrintEvent(IGameEvent *)+16p ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_105017
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+8], offset _ZTI10CGameEvent ; `typeinfo for'CGameEvent
		mov	dword ptr [esp+4], offset _ZTI10IGameEvent ; `typeinfo for'IGameEvent
		mov	[esp], eax
		call	__dynamic_cast
		test	eax, eax
		jz	short loc_105017
		mov	ebx, [eax+4]

loc_105017:				; CODE XREF: CGameEventManager::GetEventDescriptor(IGameEvent *)+Ej
					; CGameEventManager::GetEventDescriptor(IGameEvent *)+32j
		add	esp, 14h
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
_ZN17CGameEventManager18GetEventDescriptorEP10IGameEvent endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::SerializeEvent(IGameEvent *, bf_write *)
_ZN17CGameEventManager14SerializeEventEP10IGameEventP8bf_write proc near
					; DATA XREF: .rodata:`vtable for'CGameEventManagero

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 3Ch
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[esp], eax
		mov	[esp+4], esi
		call	_ZN17CGameEventManager18GetEventDescriptorEP10IGameEvent ; CGameEventManager::GetEventDescriptor(IGameEvent *)
		mov	edx, [ebp+arg_8]
		mov	edi, [eax+20h]
		mov	ecx, [edx+8]
		mov	edx, [edx+0Ch]
		mov	ebx, ecx
		sub	ebx, edx
		cmp	ebx, 8
		jg	loc_105278
		mov	edi, [ebp+arg_8]
		mov	[edi+0Ch], ecx
		mov	byte ptr [edi+10h], 1

loc_10505E:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+2CAj
		mov	edx, [eax+24h]
		mov	ebx, [edx+18h]
		mov	edx, dword ptr ds:_ZL14net_showevents+1Ch
		cmp	dword ptr [edx+30h], 2
		jle	short loc_1050A3
		jmp	loc_105309
; ---------------------------------------------------------------------------
		align 4

loc_105078:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C2j
		mov	[esp], ebx	; jumptable 001050E4 default case
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	[esp+8], edi
		mov	[esp+0Ch], eax
		mov	dword ptr [esp+4], offset aCgameeventma_2 ; "CGameEventManager:	unkown type %i for k"...
		mov	dword ptr [esp], 1
		call	DevMsg
		lea	esi, [esi+0]

loc_1050A0:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C4j
					; CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+F6j ...
		mov	ebx, [ebx+14h]	; jumptable 001050E4 case 0

loc_1050A3:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+4Ej
					; CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+300j
		test	ebx, ebx
		jz	loc_105230
		mov	[esp], ebx
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	dword ptr [esp+8], 0 ; int
		mov	[ebp+var_1C], eax
		mov	dword ptr [esp+4], 0 ; src
		mov	[esp], ebx	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		mov	edi, eax
		mov	eax, dword ptr ds:_ZL14net_showevents+1Ch
		cmp	dword ptr [eax+30h], 2
		jg	loc_105210

loc_1050DF:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+207j
		cmp	edi, 6		; switch 7 cases
		ja	short loc_105078 ; jumptable 001050E4 default case
		jmp	ds:off_1F893C[edi*4] ; switch jump
; ---------------------------------------------------------------------------
		align 10h

loc_1050F0:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C4j
					; DATA XREF: .rodata:off_1F893Co
		mov	edx, [ebp+var_1C] ; jumptable 001050E4 case 5
		mov	eax, [esi]
		mov	dword ptr [esp+8], 0
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+1Ch]
		mov	edi, [ebp+arg_8]
		mov	[esp+4], eax
		mov	[esp], edi
		call	_ZN8bf_write9WriteByteEi ; bf_write::WriteByte(int)
		jmp	short loc_1050A0 ; jumptable 001050E4 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_105120:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C4j
					; DATA XREF: .rodata:off_1F893Co
		mov	edx, [ebp+var_1C] ; jumptable 001050E4 case 4
		mov	eax, [esi]
		mov	dword ptr [esp+8], 0
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+1Ch]
		mov	edi, [ebp+arg_8]
		mov	[esp+4], eax
		mov	[esp], edi
		call	_ZN8bf_write10WriteShortEi ; bf_write::WriteShort(int)
		jmp	loc_1050A0	; jumptable 001050E4 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_105150:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C4j
					; DATA XREF: .rodata:off_1F893Co
		mov	edx, [ebp+var_1C] ; jumptable 001050E4 case 3
		mov	eax, [esi]
		mov	dword ptr [esp+8], 0
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+1Ch]
		mov	edi, [ebp+arg_8]
		mov	[esp+4], eax
		mov	[esp], edi
		call	_ZN8bf_write9WriteLongEl ; bf_write::WriteLong(long)
		jmp	loc_1050A0	; jumptable 001050E4 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_105180:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C4j
					; DATA XREF: .rodata:off_1F893Co
		mov	edx, [ebp+var_1C] ; jumptable 001050E4 case 2
		mov	eax, [esi]
		mov	dword ptr [esp+8], 0
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+20h]
		mov	edi, [ebp+arg_8]
		fstp	dword ptr [esp+4] ; src
		mov	[esp], edi	; int
		call	_ZN8bf_write10WriteFloatEf ; bf_write::WriteFloat(float)
		jmp	loc_1050A0	; jumptable 001050E4 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_1051B0:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C4j
					; DATA XREF: .rodata:off_1F893Co
		mov	edx, [ebp+var_1C] ; jumptable 001050E4 case 1
		mov	eax, [esi]
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+24h]
		mov	edi, [ebp+arg_8]
		mov	[esp+4], eax
		mov	[esp], edi
		call	_ZN8bf_write11WriteStringEPKc ;	bf_write::WriteString(char  const*)
		jmp	loc_1050A0	; jumptable 001050E4 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_1051E0:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+C4j
					; DATA XREF: .rodata:off_1F893Co
		mov	edx, [ebp+var_1C] ; jumptable 001050E4 case 6
		mov	eax, [esi]
		mov	dword ptr [esp+8], 0
		mov	[esp], esi
		mov	[esp+4], edx
		call	dword ptr [eax+1Ch]
		mov	edi, [ebp+arg_8]
		mov	ecx, [edi+0Ch]
		cmp	ecx, [edi+8]
		jl	short loc_105248
		mov	byte ptr [edi+10h], 1
		jmp	loc_1050A0	; jumptable 001050E4 case 0
; ---------------------------------------------------------------------------
		align 10h

loc_105210:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+B9j
		mov	eax, [ebp+var_1C]
		mov	[esp+8], edi
		mov	dword ptr [esp], offset	aSI ; "	- %s (%i)\n"
		mov	[esp+4], eax
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_1050DF
; ---------------------------------------------------------------------------
		align 10h

loc_105230:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+85j
		mov	ebx, [ebp+arg_8]
		movzx	eax, byte ptr [ebx+10h]
		add	esp, 3Ch
		pop	ebx
		xor	eax, 1
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 8

loc_105248:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+1E0j
		test	eax, eax
		mov	eax, ecx
		jnz	loc_1052F0
		mov	edi, [ebp+arg_8]
		sar	eax, 5
		mov	edx, 1
		shl	eax, 2
		shl	edx, cl
		not	edx
		add	eax, [edi]
		and	[eax], edx

loc_105268:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+2E4j
		mov	edx, [ebp+arg_8]
		add	dword ptr [edx+0Ch], 1
		jmp	loc_1050A0	; jumptable 001050E4 case 0
; ---------------------------------------------------------------------------
		align 8

loc_105278:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+2Ej
		mov	ebx, [ebp+arg_8]
		mov	ecx, edx
		mov	[ebp+var_20], 1FFh
		and	ecx, 1Fh
		mov	[ebp+var_1C], ecx
		lea	ecx, [edx+9]
		sar	edx, 5
		mov	[ebx+0Ch], ecx
		mov	ecx, [ebx]
		lea	edx, [ecx+edx*4]
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	ebx, [edx]
		rol	edi, cl
		mov	ecx, 1Fh
		sub	ecx, [ebp+var_1C]
		mov	[ebp+var_24], edi
		mov	edi, 0FFh
		mov	[ebp+var_28], ebx
		shr	edi, cl
		mov	ecx, edi
		and	ecx, 1
		lea	ecx, [edx+ecx*4]
		mov	ebx, [ecx]
		mov	[ebp+var_2C], ecx
		movzx	ecx, byte ptr [ebp+var_1C]
		mov	[ebp+var_30], ebx
		mov	ebx, [ebp+var_28]
		shl	[ebp+var_20], cl
		mov	ecx, [ebp+var_30]
		xor	ebx, [ebp+var_24]
		xor	ecx, [ebp+var_24]
		and	ebx, [ebp+var_20]
		and	ecx, edi
		mov	edi, [ebp+var_2C]
		xor	ecx, [ebp+var_30]
		xor	ebx, [ebp+var_28]
		mov	[edi], ecx
		mov	[edx], ebx
		jmp	loc_10505E
; ---------------------------------------------------------------------------
		align 10h

loc_1052F0:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+22Cj
		mov	edx, [ebp+arg_8]
		sar	eax, 5
		shl	eax, 2
		add	eax, [edx]
		mov	edx, 1
		shl	edx, cl
		or	[eax], edx
		jmp	loc_105268
; ---------------------------------------------------------------------------

loc_105309:				; CODE XREF: CGameEventManager::SerializeEvent(IGameEvent *,bf_write *)+50j
		mov	edx, [eax+20h]
		mov	[esp+4], eax
		mov	dword ptr [esp], offset	aSerializingEve	; "Serializing event '%s' (%i):\n"
		mov	[esp+8], edx
		call	_Z6DevMsgPKcz	; DevMsg(char  const*,...)
		jmp	loc_1050A3
_ZN17CGameEventManager14SerializeEventEP10IGameEventP8bf_write endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::ConPrintEvent(IGameEvent *)
_ZN17CGameEventManager13ConPrintEventEP10IGameEvent proc near
					; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+1C7p
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+432p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 1Ch
		mov	eax, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	[esp], eax
		mov	[esp+4], edi
		call	_ZN17CGameEventManager18GetEventDescriptorEP10IGameEvent ; CGameEventManager::GetEventDescriptor(IGameEvent *)
		test	eax, eax
		jz	loc_1053FE
		mov	eax, [eax+24h]
		mov	ebx, [eax+18h]
		test	ebx, ebx
		jnz	short loc_1053A8
		jmp	loc_1053FE
; ---------------------------------------------------------------------------
		align 8

loc_105368:				; CODE XREF: CGameEventManager::ConPrintEvent(IGameEvent *)+9Dj
		cmp	eax, 2
		jz	loc_105440
		test	eax, eax
		mov	eax, [edi]
		jnz	loc_105410
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	[esp+4], esi
		mov	[esp], edi
		call	dword ptr [eax+24h]
		mov	[esp+4], esi
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	aSSLocal ; "- \"%s\" = \"%s\" (local)\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)

loc_1053A1:				; CODE XREF: CGameEventManager::ConPrintEvent(IGameEvent *)+106j
					; CGameEventManager::ConPrintEvent(IGameEvent *)+138j
		mov	ebx, [ebx+14h]
		test	ebx, ebx
		jz	short loc_1053FE

loc_1053A8:				; CODE XREF: CGameEventManager::ConPrintEvent(IGameEvent *)+2Bj
					; CGameEventManager::ConPrintEvent(IGameEvent *)+CCj
		mov	[esp], ebx
		call	_ZNK9KeyValues7GetNameEv ; KeyValues::GetName(void)
		mov	dword ptr [esp+8], 0 ; int
		mov	esi, eax
		mov	dword ptr [esp+4], 0 ; src
		mov	[esp], ebx	; int
		call	_ZN9KeyValues6GetIntEPKci ; KeyValues::GetInt(char  const*,int)
		cmp	eax, 1
		jnz	short loc_105368
		mov	eax, [edi]
		mov	dword ptr [esp+8], (offset asc_20E578+4)
		mov	[esp+4], esi
		mov	[esp], edi
		call	dword ptr [eax+24h]
		mov	[esp+4], esi
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	aSS_10 ; "- \"%s\" = \"%s\"\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ebx, [ebx+14h]
		test	ebx, ebx
		jnz	short loc_1053A8

loc_1053FE:				; CODE XREF: CGameEventManager::ConPrintEvent(IGameEvent *)+1Dj
					; CGameEventManager::ConPrintEvent(IGameEvent *)+2Dj ...
		add	esp, 1Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_105410:				; CODE XREF: CGameEventManager::ConPrintEvent(IGameEvent *)+45j
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], edi
		call	dword ptr [eax+1Ch]
		mov	[esp+4], esi
		mov	[esp+8], eax
		mov	dword ptr [esp], offset	aSI_0 ;	"- \"%s\" = \"%i\"\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_1053A1
; ---------------------------------------------------------------------------
		align 10h

loc_105440:				; CODE XREF: CGameEventManager::ConPrintEvent(IGameEvent *)+3Bj
		mov	eax, [edi]
		mov	dword ptr [esp+8], 0
		mov	[esp+4], esi
		mov	[esp], edi
		call	dword ptr [eax+20h]
		mov	[esp+4], esi
		fstp	qword ptr [esp+8]
		mov	dword ptr [esp], offset	aS_2f ;	"- \"%s\" = \"%.2f\"\n"
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		jmp	loc_1053A1
_ZN17CGameEventManager13ConPrintEventEP10IGameEvent endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; CGameEventManager::FireEventIntern(IGameEvent	*, bool, bool)
_ZN17CGameEventManager15FireEventInternEP10IGameEventbb	proc near
					; CODE XREF: CGameEventManager::FireEventClientSide(IGameEvent *)+23p
					; CGameEventManager::FireEvent(IGameEvent *,bool)+23p

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_2D		= byte ptr -2Dh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	ebx, [ebp+arg_4]
		movzx	eax, [ebp+arg_8]
		movzx	edi, [ebp+arg_C]
		test	ebx, ebx
		mov	[ebp+var_2D], al
		jz	loc_1058B3
		mov	eax, ds:g_Telemetry+0Ch
		mov	[ebp+var_28], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_2C], 0
		mov	[ebp+var_40], 0
		test	eax, eax
		mov	[ebp+var_3C], 0
		jz	short loc_10552D
		lea	edx, [ebp+var_28]
		mov	dword ptr [esp+2Ch], offset aCgameeventma_3 ; "CGameEventManager::FireEvent"
		mov	[esp+4], edx
		mov	dword ptr [esp+28h], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+24h], offset aSS_1 ; "(%s)%s"
		mov	dword ptr [esp+20h], offset _ZZN17CGameEventManager15FireEventInternEP10IGameEventbbE6tm_fmt ; CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)::tm_fmt
		mov	dword ptr [esp+1Ch], 18Fh
		mov	dword ptr [esp+18h], offset aHomeBuildbo_10 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	ecx, [ebp+var_24]
		mov	edx, [ebp+var_28]
		mov	[ebp+var_3C], ecx
		mov	ecx, ds:g_Telemetry+0Ch
		mov	[ebp+var_40], edx
		mov	[ebp+var_2C], ecx

loc_10552D:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+49j
		mov	eax, edi
		mov	ebx, 1
		test	al, al
		jz	loc_105790
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		test	ecx, ecx
		setnz	[ebp+var_35]
		jnz	loc_1057AE

loc_10554E:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+338j
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+34Bj ...
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	[esp+4], edx
		mov	[esp], ecx
		call	_ZN17CGameEventManager18GetEventDescriptorEP10IGameEvent ; CGameEventManager::GetEventDescriptor(IGameEvent *)
		test	eax, eax
		mov	esi, eax
		jz	loc_1058BF
		mov	eax, ds:g_Telemetry
		mov	[ebp+var_20], 0
		mov	[ebp+var_1C], 0
		test	eax, eax
		jz	loc_105862
		mov	edx, [esi+38h]
		mov	dword ptr [esp+28h], offset _ZZN17CGameEventManager15FireEventInternEP10IGameEventbbE12__FUNCTION__ ; "FireEventIntern"
		mov	dword ptr [esp+24h], (offset aSession_beginS+0Eh)
		mov	dword ptr [esp+20h], offset _ZZN17CGameEventManager15FireEventInternEP10IGameEventbbE6tm_fmt_0 ; CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)::tm_fmt
		mov	dword ptr [esp+1Ch], 19Ah
		mov	[esp+2Ch], edx
		lea	edx, [ebp+var_20]
		mov	dword ptr [esp+18h], offset aHomeBuildbo_10 ; "/home/buildbot/buildslave/rel_hl2_linux"...
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esp+0Ch], 32h
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+8], 0
		mov	[esp+4], edx
		mov	[esp], eax
		call	dword ptr [eax+50h]
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_20]
		mov	[ebp+var_44], edx
		mov	edx, ds:g_Telemetry
		mov	[ebp+var_48], eax
		mov	[ebp+var_34], edx

loc_1055F6:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+407j
		mov	eax, dword ptr ds:_ZL14net_showevents+1Ch
		mov	eax, [eax+30h]
		test	eax, eax
		jle	short loc_10563C
		mov	ecx, edi
		test	cl, cl
		jnz	loc_10587C
		cmp	eax, 1
		jz	short loc_10563C
		mov	eax, dword ptr ds:sv+0Ch
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aServerEventSTi	; "Server event	\"%s\",	Tick %i:\n"
		mov	[esp+8], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[esp+4], ecx
		mov	[esp], eax
		call	_ZN17CGameEventManager13ConPrintEventEP10IGameEvent ; CGameEventManager::ConPrintEvent(IGameEvent *)

loc_10563C:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+190j
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+19Fj ...
		mov	eax, [esi+38h]
		xor	ebx, ebx
		test	eax, eax
		jg	short loc_105680
		jmp	short loc_1056C0
; ---------------------------------------------------------------------------
		align 10h

loc_105650:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+22Bj
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+230j
		mov	ecx, edi
		test	cl, cl
		jz	short loc_105678
		cmp	eax, 2
		jz	short loc_1056A7

loc_10565B:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+235j
		sub	eax, 3
		cmp	eax, 1
		jbe	loc_105770

loc_105667:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+241j
		mov	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+8]

loc_105678:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+1E4j
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+226j ...
		add	ebx, 1
		cmp	[esi+38h], ebx
		jle	short loc_1056C0

loc_105680:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+1D3j
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+249j
		mov	eax, [esi+2Ch]
		mov	edx, [eax+ebx*4]
		mov	eax, [edx+4]
		cmp	eax, 3
		jz	short loc_105692
		test	eax, eax
		jnz	short loc_105698

loc_105692:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+21Cj
		mov	ecx, edi
		test	cl, cl
		jnz	short loc_105678

loc_105698:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+220j
		cmp	eax, 4
		jz	short loc_105650
		cmp	eax, 1
		jz	short loc_105650
		cmp	eax, 2
		jnz	short loc_10565B

loc_1056A7:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+1E9j
		cmp	[ebp+var_2D], 0
		jnz	short loc_105678
		mov	eax, edi
		test	al, al
		jz	short loc_105667
		add	ebx, 1
		cmp	[esi+38h], ebx
		jg	short loc_105680
		nop
		lea	esi, [esi+0]

loc_1056C0:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+1D5j
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+20Ej
		mov	edx, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	eax, [edx]
		mov	[esp], edx
		mov	[esp+4], ecx
		call	dword ptr [eax+2Ch]
		mov	eax, [ebp+var_34]
		test	eax, eax
		jz	short loc_105708
		mov	edx, [ebp+var_44]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_48]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_34]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_105708:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+267j
		mov	ebx, 1

loc_10570D:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+47Ej
		cmp	[ebp+var_35], 0
		jz	short loc_105730
		cmp	g_VProfCurrentProfile+1010h, 0
		jz	loc_105820
		mov	eax, dword ptr g_VProfCurrentProfile+100Ch
		test	eax, eax
		jnz	loc_105820
		lea	esi, [esi+0]

loc_105730:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+2A1j
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+3BDj ...
		mov	eax, [ebp+var_2C]
		test	eax, eax
		jz	short loc_105766
		mov	edx, [ebp+var_3C]
		mov	dword ptr [esp+14h], 0
		mov	eax, [ebp+var_40]
		mov	dword ptr [esp+10h], 0
		mov	dword ptr [esp+0Ch], 0
		mov	[esp+8], edx
		mov	edx, [ebp+var_2C]
		mov	[esp+4], eax
		mov	[esp], edx
		call	dword ptr [edx+54h]

loc_105766:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+2C5j
		add	esp, 7Ch
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_105770:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+1F1j
		mov	ecx, [ebp+arg_4]
		mov	eax, [edx]
		mov	ecx, [ecx+8]
		mov	edx, [eax]
		mov	[esp], eax
		mov	[esp+4], ecx
		call	dword ptr [edx+8]
		jmp	loc_105678
; ---------------------------------------------------------------------------
		align 10h

loc_105790:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+C6j
		cmp	[ebp+var_2D], 1
		mov	ecx, dword ptr g_VProfCurrentProfile+100Ch
		sbb	ebx, ebx
		and	ebx, 2
		add	ebx, 2
		test	ecx, ecx
		setnz	[ebp+var_35]
		jz	loc_10554E

loc_1057AE:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+D8j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jnz	loc_10554E
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		cmp	dword ptr [eax], offset	aCgameeventma_3	; "CGameEventManager::FireEvent"
		jz	short loc_1057F7
		mov	[esp+10h], ebx
		mov	dword ptr [esp+0Ch], offset aUnaccounted ; "Unaccounted"
		mov	dword ptr [esp+8], 1
		mov	dword ptr [esp+4], offset aCgameeventma_3 ; "CGameEventManager::FireEvent"
		mov	[esp], eax
		call	_ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char  const*,int,char  const*,int)
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_1057F7:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+35Cj
		mov	eax, [eax+70h]
		mov	edx, dword ptr g_VProfCurrentProfile+10A0h
		lea	eax, [edx+eax*8]
		or	[eax+4], ebx
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode10EnterScopeEv ;	CVProfNode::EnterScope(void)
		mov	g_VProfCurrentProfile+1010h, 0
		jmp	loc_10554E
; ---------------------------------------------------------------------------
		align 10h

loc_105820:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+2AAj
					; CGameEventManager::FireEventIntern(IGameEvent	*,bool,bool)+2B7j
		mov	esi, dword ptr g_VProfCurrentProfile+19B8h
		call	ThreadGetCurrentId
		cmp	esi, eax
		jnz	loc_105730
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	[esp], eax
		call	_ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
		test	al, al
		jz	short loc_1058AC
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		mov	eax, [eax+64h]
		mov	dword ptr g_VProfCurrentProfile+1014h, eax

loc_105851:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+441j
		cmp	eax, (offset g_VProfCurrentProfile+1018h)
		setz	g_VProfCurrentProfile+1010h
		jmp	loc_105730
; ---------------------------------------------------------------------------

loc_105862:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+10Fj
		mov	[ebp+var_34], 0
		mov	[ebp+var_48], 0
		mov	[ebp+var_44], 0
		jmp	loc_1055F6
; ---------------------------------------------------------------------------

loc_10587C:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+196j
		mov	eax, dword ptr ds:byte_28B880+1A0h
		mov	[esp+4], esi
		mov	dword ptr [esp], offset	aGameEventSTick	; "Game	event \"%s\", Tick %i:\n"
		mov	[esp+8], eax
		call	_Z6ConMsgPKcz	; ConMsg(char  const*,...)
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	[esp+4], eax
		mov	[esp], edx
		call	_ZN17CGameEventManager13ConPrintEventEP10IGameEvent ; CGameEventManager::ConPrintEvent(IGameEvent *)
		jmp	loc_10563C
; ---------------------------------------------------------------------------

loc_1058AC:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+3D2j
		mov	eax, dword ptr g_VProfCurrentProfile+1014h
		jmp	short loc_105851
; ---------------------------------------------------------------------------

loc_1058B3:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+19j
		add	esp, 7Ch
		xor	ebx, ebx
		mov	eax, ebx
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_1058BF:				; CODE XREF: CGameEventManager::FireEventIntern(IGameEvent *,bool,bool)+F4j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	[esp], edx
		call	dword ptr [e