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

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

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

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

; 371  : 		{	// construct from message string

	push	esi
	lea	eax, DWORD PTR __Message$[esp]
	push	eax
	mov	esi, ecx
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@

; 372  : 		}

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

; 380  : 		{	// destroy the object

	mov	DWORD PTR [ecx], OFFSET ??_7bad_alloc@std@@6B@

; 381  : 		}

	jmp	??1exception@std@@UAE@XZ		; std::exception::~exception
??1bad_alloc@std@@UAE@XZ ENDP				; std::bad_alloc::~bad_alloc
_TEXT	ENDS
EXTRN	??3@YAXPAX@Z:PROC				; operator delete
; Function compile flags: /Ogtpy
;	COMDAT ??_Gbad_alloc@std@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_Gbad_alloc@std@@UAEPAXI@Z PROC			; std::bad_alloc::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	mov	DWORD PTR [esi], OFFSET ??_7bad_alloc@std@@6B@
	call	??1exception@std@@UAE@XZ		; std::exception::~exception
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $LN6@scalar
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$LN6@scalar:
	mov	eax, esi
	pop	esi
	ret	4
??_Gbad_alloc@std@@UAEPAXI@Z ENDP			; std::bad_alloc::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Get_Beacon_Owner@BeaconGameObj@@QAEPAEXZ	; BeaconGameObj::Get_Beacon_Owner
; Function compile flags: /Odtpy
; File d:\source code\stgm\engine_weap.cpp
;	COMDAT ?Get_Beacon_Owner@BeaconGameObj@@QAEPAEXZ
_TEXT	SEGMENT
?Get_Beacon_Owner@BeaconGameObj@@QAEPAEXZ PROC		; BeaconGameObj::Get_Beacon_Owner, COMDAT
; _this$ = ecx

; 31   : IMPLEMENT_THUNK_RETURN(GetBeaconOwner)

	mov	eax, DWORD PTR ?GetBeaconOwner@@3PAXA	; GetBeaconOwner
	jmp	eax
?Get_Beacon_Owner@BeaconGameObj@@QAEPAEXZ ENDP		; BeaconGameObj::Get_Beacon_Owner
_TEXT	ENDS
PUBLIC	?Defuse@C4GameObj@@QAEXXZ			; C4GameObj::Defuse
; Function compile flags: /Odtpy
;	COMDAT ?Defuse@C4GameObj@@QAEXXZ
_TEXT	SEGMENT
?Defuse@C4GameObj@@QAEXXZ PROC				; C4GameObj::Defuse, COMDAT
; _this$ = ecx

; 33   : IMPLEMENT_THUNK(C4Defuse)

	mov	eax, DWORD PTR ?C4Defuse@@3PAXA		; C4Defuse
	jmp	eax
?Defuse@C4GameObj@@QAEXXZ ENDP				; C4GameObj::Defuse
_TEXT	ENDS
PUBLIC	?InitEngineWeap@@YAXI@Z				; InitEngineWeap
; Function compile flags: /Ogtpy
;	COMDAT ?InitEngineWeap@@YAXI@Z
_TEXT	SEGMENT
_exe$ = 8						; size = 4
?InitEngineWeap@@YAXI@Z PROC				; InitEngineWeap, COMDAT

; 37   : 	switch(exe)

	mov	eax, DWORD PTR _exe$[esp-4]
	cmp	eax, 3
	ja	$LN1@InitEngine
	jmp	DWORD PTR $LN10@InitEngine[eax*4]
$LN5@InitEngine:

; 38   : 	{
; 39   : 		case 0: //game.exe
; 40   : 			Mine_Limit = (char *)0x0070DD95;

	mov	DWORD PTR ?Mine_Limit@@3PADA, 7396757	; Mine_Limit, 0070dd95H

; 41   : 			C4Defuse = (void *)0x0070D610;

	mov	DWORD PTR ?C4Defuse@@3PAXA, 7394832	; C4Defuse, 0070d610H

; 42   : 			GetBeaconOwner = (void *)0x0070AA50;

	mov	DWORD PTR ?GetBeaconOwner@@3PAXA, 7383632 ; GetBeaconOwner, 0070aa50H

; 63   : 			break;
; 64   : 	}
; 65   : }

	ret	0
$LN4@InitEngine:

; 43   : 			break;
; 44   : 		case 1: //server.dat
; 45   : 			Mine_Limit = (char *)0x0070D355;

	mov	DWORD PTR ?Mine_Limit@@3PADA, 7394133	; Mine_Limit, 0070d355H

; 46   : 			C4Defuse = (void *)0x0070CBD0;

	mov	DWORD PTR ?C4Defuse@@3PAXA, 7392208	; C4Defuse, 0070cbd0H

; 47   : 			GetBeaconOwner = (void *)0x0070A010;

	mov	DWORD PTR ?GetBeaconOwner@@3PAXA, 7381008 ; GetBeaconOwner, 0070a010H

; 63   : 			break;
; 64   : 	}
; 65   : }

	ret	0
$LN3@InitEngine:

; 48   : 			break;
; 49   : 		case 2: //RH73
; 50   : 			Mine_Limit = (char *)0x080FABCE;

	mov	DWORD PTR ?Mine_Limit@@3PADA, 135244750	; Mine_Limit, 080fabceH

; 51   : 			C4Defuse = (void *)0x080FA990;

	mov	DWORD PTR ?C4Defuse@@3PAXA, 135244176	; C4Defuse, 080fa990H

; 52   : 			GetBeaconOwner = (void *)0x080F05D8;

	mov	DWORD PTR ?GetBeaconOwner@@3PAXA, 135202264 ; GetBeaconOwner, 080f05d8H

; 63   : 			break;
; 64   : 	}
; 65   : }

	ret	0
$LN2@InitEngine:

; 53   : 			break;
; 54   : 		case 3: //RH8
; 55   : 			Mine_Limit = (char *)0x080EE422;

	mov	DWORD PTR ?Mine_Limit@@3PADA, 135193634	; Mine_Limit, 080ee422H

; 56   : 			C4Defuse = (void *)0x080EE1EA;

	mov	DWORD PTR ?C4Defuse@@3PAXA, 135193066	; C4Defuse, 080ee1eaH

; 57   : 			GetBeaconOwner = (void *)0x080E5D98;

	mov	DWORD PTR ?GetBeaconOwner@@3PAXA, 135159192 ; GetBeaconOwner, 080e5d98H

; 63   : 			break;
; 64   : 	}
; 65   : }

	ret	0
$LN1@InitEngine:

; 58   : 			break;
; 59   : 		default:
; 60   : 			Mine_Limit = (char *)0;

	xor	eax, eax
	mov	DWORD PTR ?Mine_Limit@@3PADA, eax	; Mine_Limit

; 61   : 			C4Defuse = (void *)0;

	mov	DWORD PTR ?C4Defuse@@3PAXA, eax		; C4Defuse

; 62   : 			GetBeaconOwner = (void *)0;

	mov	DWORD PTR ?GetBeaconOwner@@3PAXA, eax	; GetBeaconOwner

; 63   : 			break;
; 64   : 	}
; 65   : }

	ret	0
	npad	2
$LN10@InitEngine:
	DD	$LN5@InitEngine
	DD	$LN4@InitEngine
	DD	$LN3@InitEngine
	DD	$LN2@InitEngine
?InitEngineWeap@@YAXI@Z ENDP				; InitEngineWeap
_TEXT	ENDS
PUBLIC	??_C@_04OHJIHAFH@None?$AA@			; `string'
PUBLIC	?Get_Powerup_Weapon@@YAPBDPBD@Z			; Get_Powerup_Weapon
EXTRN	?Find_Definition@@YAPAVDefinitionClass@@K@Z:PROC ; Find_Definition
EXTRN	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z:PROC ; Find_Named_Definition
;	COMDAT ??_C@_04OHJIHAFH@None?$AA@
CONST	SEGMENT
??_C@_04OHJIHAFH@None?$AA@ DB 'None', 00H		; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Get_Powerup_Weapon@@YAPBDPBD@Z
_TEXT	SEGMENT
_Powerup$ = 8						; size = 4
?Get_Powerup_Weapon@@YAPBDPBD@Z PROC			; Get_Powerup_Weapon, COMDAT

; 749  : 	DefinitionClass *powerupdef = Find_Named_Definition(Powerup);

	mov	eax, DWORD PTR _Powerup$[esp-4]
	push	eax
	call	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z ; Find_Named_Definition
	add	esp, 4

; 750  : 	char *c = (char *)powerupdef;
; 751  : 	if (!c)

	test	eax, eax

; 752  : 	{
; 753  : 		return "None";

	je	SHORT $LN1@Get_Poweru

; 754  : 	}
; 755  : #ifdef RH8
; 756  : 	c += 0xC0;
; 757  : #else
; 758  : 	c += 0xC4;
; 759  : #endif
; 760  : 	unsigned long weapondefid = (unsigned long)*(unsigned long *)c;

	mov	eax, DWORD PTR [eax+196]

; 761  : 	if (weapondefid)

	test	eax, eax
	je	SHORT $LN1@Get_Poweru

; 762  : 	{
; 763  : 		DefinitionClass *weapondef = Find_Definition(weapondefid);

	push	eax
	call	?Find_Definition@@YAPAVDefinitionClass@@K@Z ; Find_Definition

; 764  : 		return weapondef->Get_Name();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+48]
	add	esp, 4
	jmp	eax
$LN1@Get_Poweru:

; 765  : 	}
; 766  : 	return "None";

	mov	eax, OFFSET ??_C@_04OHJIHAFH@None?$AA@

; 767  : }

	ret	0
?Get_Powerup_Weapon@@YAPBDPBD@Z ENDP			; Get_Powerup_Weapon
_TEXT	ENDS
PUBLIC	?Get_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PBD_N@Z ; Get_Weapon_Ammo_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PBD_N@Z
_TEXT	SEGMENT
_weapon$ = 8						; size = 4
_PrimaryFire$ = 12					; size = 1
?Get_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PBD_N@Z PROC ; Get_Weapon_Ammo_Definition, COMDAT

; 771  : 	WeaponDefinitionClass *d = (WeaponDefinitionClass *)Find_Named_Definition(weapon);

	mov	eax, DWORD PTR _weapon$[esp-4]
	push	eax
	call	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z ; Find_Named_Definition
	add	esp, 4

; 772  : 	if (d)

	test	eax, eax
	je	SHORT $LN1@Get_Weapon

; 773  : 	{
; 774  : 		if (PrimaryFire)

	cmp	BYTE PTR _PrimaryFire$[esp-4], 0
	je	SHORT $LN2@Get_Weapon

; 775  : 		{
; 776  : 			unsigned long AmmoID = d->PrimaryAmmoDefID;

	mov	eax, DWORD PTR [eax+108]

; 777  : 			AmmoDefinitionClass *AmmoDef = (AmmoDefinitionClass*)Find_Definition(AmmoID);

	push	eax
	call	?Find_Definition@@YAPAVDefinitionClass@@K@Z ; Find_Definition
	add	esp, 4

; 788  : }

	ret	0
$LN2@Get_Weapon:

; 778  : 			return AmmoDef;
; 779  : 		}
; 780  : 		else
; 781  : 		{
; 782  : 			unsigned long AmmoID = d->SecondaryAmmoDefID;

	mov	eax, DWORD PTR [eax+112]

; 783  : 			AmmoDefinitionClass *AmmoDef = (AmmoDefinitionClass*)Find_Definition(AmmoID);

	push	eax
	call	?Find_Definition@@YAPAVDefinitionClass@@K@Z ; Find_Definition
	add	esp, 4

; 788  : }

	ret	0
$LN1@Get_Weapon:

; 784  : 			return AmmoDef;
; 785  : 		}
; 786  : 	}
; 787  : 	return 0;

	xor	eax, eax

; 788  : }

	ret	0
?Get_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PBD_N@Z ENDP ; Get_Weapon_Ammo_Definition
_TEXT	ENDS
PUBLIC	?GetWeapAmmoDef@@YAPAVAmmoDefinitionClass@@PAVWeaponClass@@_N@Z ; GetWeapAmmoDef
; Function compile flags: /Ogtpy
;	COMDAT ?GetWeapAmmoDef@@YAPAVAmmoDefinitionClass@@PAVWeaponClass@@_N@Z
_TEXT	SEGMENT
_wc$ = 8						; size = 4
_PrimaryFire$ = 12					; size = 1
?GetWeapAmmoDef@@YAPAVAmmoDefinitionClass@@PAVWeaponClass@@_N@Z PROC ; GetWeapAmmoDef, COMDAT

; 792  : 	if (PrimaryFire)

	cmp	BYTE PTR _PrimaryFire$[esp-4], 0
	je	SHORT $LN2@GetWeapAmm

; 793  : 	{
; 794  : 		return wc->AmmoDef1;

	mov	eax, DWORD PTR _wc$[esp-4]
	mov	eax, DWORD PTR [eax+28]

; 799  : 	}
; 800  : }

	ret	0
$LN2@GetWeapAmm:

; 795  : 	}
; 796  : 	else
; 797  : 	{
; 798  : 		return wc->AmmoDef2;

	mov	ecx, DWORD PTR _wc$[esp-4]
	mov	eax, DWORD PTR [ecx+32]

; 799  : 	}
; 800  : }

	ret	0
?GetWeapAmmoDef@@YAPAVAmmoDefinitionClass@@PAVWeaponClass@@_N@Z ENDP ; GetWeapAmmoDef
_TEXT	ENDS
PUBLIC	?Get_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PBD@Z ; Get_Weapon_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PBD@Z
_TEXT	SEGMENT
_weapon$ = 8						; size = 4
?Get_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PBD@Z PROC ; Get_Weapon_Definition, COMDAT

; 876  : 	return (WeaponDefinitionClass *)Find_Named_Definition(weapon);

	jmp	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z ; Find_Named_Definition
?Get_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PBD@Z ENDP ; Get_Weapon_Definition
_TEXT	ENDS
PUBLIC	?Get_Explosion@@YAPAVExplosionDefinitionClass@@PBD@Z ; Get_Explosion
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Explosion@@YAPAVExplosionDefinitionClass@@PBD@Z
_TEXT	SEGMENT
_explosion$ = 8						; size = 4
?Get_Explosion@@YAPAVExplosionDefinitionClass@@PBD@Z PROC ; Get_Explosion, COMDAT

; 905  : 	return (ExplosionDefinitionClass *)Find_Named_Definition(explosion);

	jmp	?Find_Named_Definition@@YAPAVDefinitionClass@@PBD@Z ; Find_Named_Definition
?Get_Explosion@@YAPAVExplosionDefinitionClass@@PBD@Z ENDP ; Get_Explosion
_TEXT	ENDS
PUBLIC	?Get_Powerup_Weapon_By_Obj@@YAPBDPAE@Z		; Get_Powerup_Weapon_By_Obj
EXTRN	?Get_Definition@@YAPAVDefinitionClass@@PAE@Z:PROC ; Get_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Powerup_Weapon_By_Obj@@YAPBDPAE@Z
_TEXT	SEGMENT
_Powerup$ = 8						; size = 4
?Get_Powerup_Weapon_By_Obj@@YAPBDPAE@Z PROC		; Get_Powerup_Weapon_By_Obj, COMDAT

; 910  : 	DefinitionClass *powerupdef = Get_Definition(Powerup);

	mov	eax, DWORD PTR _Powerup$[esp-4]
	push	eax
	call	?Get_Definition@@YAPAVDefinitionClass@@PAE@Z ; Get_Definition
	add	esp, 4

; 911  : 	char *c = (char *)powerupdef;
; 912  : 	if (!c)

	test	eax, eax

; 913  : 	{
; 914  : 		return "None";

	je	SHORT $LN1@Get_Poweru@2

; 915  : 	}
; 916  : #ifdef RH8
; 917  : 	c += 0xC0;
; 918  : #else
; 919  : 	c += 0xC4;
; 920  : #endif
; 921  : 	unsigned long weapondefid = (unsigned long)*(unsigned long *)c;

	mov	eax, DWORD PTR [eax+196]

; 922  : 	if (weapondefid)

	test	eax, eax
	je	SHORT $LN1@Get_Poweru@2

; 923  : 	{
; 924  : 		DefinitionClass *weapondef = Find_Definition(weapondefid);

	push	eax
	call	?Find_Definition@@YAPAVDefinitionClass@@K@Z ; Find_Definition

; 925  : 		return weapondef->Get_Name();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+48]
	add	esp, 4
	jmp	eax
$LN1@Get_Poweru@2:

; 926  : 	}
; 927  : 	return "None";

	mov	eax, OFFSET ??_C@_04OHJIHAFH@None?$AA@

; 928  : }

	ret	0
?Get_Powerup_Weapon_By_Obj@@YAPBDPAE@Z ENDP		; Get_Powerup_Weapon_By_Obj
_TEXT	ENDS
PUBLIC	?Disarm_Beacon@@YAXPAE@Z			; Disarm_Beacon
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
; Function compile flags: /Ogtpy
;	COMDAT ?Disarm_Beacon@@YAXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Disarm_Beacon@@YAXPAE@Z PROC				; Disarm_Beacon, COMDAT

; 1014 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Disarm_Bea
	test	esi, esi
	je	SHORT $LN3@Disarm_Bea

; 1015 : 	{
; 1016 : 		return;
; 1017 : 	}
; 1018 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1019 : 	if (!o2)

	test	eax, eax
	je	SHORT $LN3@Disarm_Bea

; 1020 : 	{
; 1021 : 		return;
; 1022 : 	}
; 1023 : 	BeaconGameObj *o3 = o2->As_BeaconGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+144]
	call	eax

; 1024 : 	if (!o3)

	test	eax, eax
	je	SHORT $LN3@Disarm_Bea

; 1025 : 	{
; 1026 : 		return;
; 1027 : 	}
; 1028 : 	o3->Completly_Damaged(*(OffenseObjectClass *)0);

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+88]
	push	0
	call	eax
$LN3@Disarm_Bea:
	pop	esi

; 1029 : }

	ret	0
?Disarm_Beacon@@YAXPAE@Z ENDP				; Disarm_Beacon
_TEXT	ENDS
PUBLIC	??_C@_0BB@NHJNEILC@Invisible_Object?$AA@	; `string'
PUBLIC	__real@459c4000
PUBLIC	__real@00000000
PUBLIC	?Disarm_Nearest_Beacon@@YAXPAEH_N@Z		; Disarm_Nearest_Beacon
EXTRN	?Get_Object_Type@@YAHPAE@Z:PROC			; Get_Object_Type
EXTRN	?As_BeaconGameObj@@YAPAEPAE@Z:PROC		; As_BeaconGameObj
EXTRN	?As_ScriptableGameObj@@YAPAEPAE@Z:PROC		; As_ScriptableGameObj
EXTRN	?BaseGameObjList@@3PAV?$SList@E@@A:DWORD	; BaseGameObjList
EXTRN	__fltused:DWORD
;	COMDAT ??_C@_0BB@NHJNEILC@Invisible_Object?$AA@
CONST	SEGMENT
??_C@_0BB@NHJNEILC@Invisible_Object?$AA@ DB 'Invisible_Object', 00H ; `string'
CONST	ENDS
;	COMDAT __real@459c4000
CONST	SEGMENT
__real@459c4000 DD 0459c4000r			; 5000
CONST	ENDS
;	COMDAT __real@00000000
CONST	SEGMENT
__real@00000000 DD 000000000r			; 0
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Disarm_Nearest_Beacon@@YAXPAEH_N@Z
_TEXT	SEGMENT
_NearestDistanceFound$ = -64				; size = 4
_HostPos$ = -60						; size = 12
_BeaconPos$55373 = -48					; size = 12
_BeaconPos$55380 = -36					; size = 12
$T59396 = -36						; size = 12
$T59397 = -24						; size = 12
$T59398 = -12						; size = 12
_Host$ = 8						; size = 4
_Team$ = 12						; size = 4
_Nearest$ = 16						; size = 1
?Disarm_Nearest_Beacon@@YAXPAEH_N@Z PROC		; Disarm_Nearest_Beacon, COMDAT

; 1050 : 	if (!Commands->Get_ID(Host) || !Host)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	sub	esp, 64					; 00000040H
	push	esi
	mov	esi, DWORD PTR _Host$[esp+64]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	$LN14@Disarm_Nea
	test	esi, esi
	je	$LN14@Disarm_Nea

; 1051 : 	{
; 1052 : 		return;
; 1053 : 	}
; 1054 : 	Vector3 HostPos = Commands->Get_Position(Host);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+64]
	push	ebx
	push	ebp
	push	edi
	lea	edx, DWORD PTR $T59396[esp+80]
	push	esi
	push	edx
	call	ecx

; 1055 : 	HostPos.Z = 0;

	fldz
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _HostPos$[esp+88], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _HostPos$[esp+92], ecx
	mov	edx, DWORD PTR [eax+8]

; 1056 : 	float NearestDistanceFound = 5000.0f;
; 1057 : 	GameObject *ClosestBeacon = Commands->Create_Object("Invisible_Object",HostPos);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	DWORD PTR _HostPos$[esp+96], edx
	fstp	DWORD PTR _HostPos$[esp+96]
	fld	DWORD PTR __real@459c4000
	mov	edx, DWORD PTR [ecx+100]
	lea	eax, DWORD PTR _HostPos$[esp+88]
	fstp	DWORD PTR _NearestDistanceFound$[esp+88]
	push	eax
	push	OFFSET ??_C@_0BB@NHJNEILC@Invisible_Object?$AA@
	call	edx

; 1058 : 	GenericSLNode *x = BaseGameObjList->HeadNode;
; 1059 : 	while (x)

	mov	bl, BYTE PTR _Nearest$[esp+92]
	mov	ebp, eax
	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	mov	edi, DWORD PTR [eax+4]
	add	esp, 16					; 00000010H
	test	edi, edi
	je	$LN21@Disarm_Nea
	npad	5
$LL13@Disarm_Nea:

; 1060 : 	{
; 1061 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1062 : 		if (o && As_ScriptableGameObj(o) && As_BeaconGameObj(o))

	test	esi, esi
	je	$LN20@Disarm_Nea
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	$LN20@Disarm_Nea
	push	esi
	call	?As_BeaconGameObj@@YAPAEPAE@Z		; As_BeaconGameObj
	add	esp, 4
	test	eax, eax
	je	$LN20@Disarm_Nea

; 1063 : 		{
; 1064 : 			if (Team == 2)

	cmp	DWORD PTR _Team$[esp+76], 2

; 1067 : 				{
; 1068 : 					Vector3 BeaconPos = Commands->Get_Position(o);

	push	esi
	jne	SHORT $LN10@Disarm_Nea

; 1065 : 			{
; 1066 : 				if (Nearest)

	test	bl, bl
	je	$LN9@Disarm_Nea

; 1067 : 				{
; 1068 : 					Vector3 BeaconPos = Commands->Get_Position(o);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	eax, DWORD PTR [edx+64]
	lea	ecx, DWORD PTR $T59397[esp+84]
	push	ecx
	call	eax

; 1069 : 					BeaconPos.Z = 0;

	fldz
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _BeaconPos$55373[esp+88], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _BeaconPos$55373[esp+92], edx
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR _BeaconPos$55373[esp+96], eax
	fstp	DWORD PTR _BeaconPos$55373[esp+96]

; 1070 : 					if (Commands->Get_Distance(BeaconPos,HostPos) < NearestDistanceFound)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _HostPos$[esp+88]
	push	ecx
	mov	ecx, DWORD PTR [eax+256]
	lea	edx, DWORD PTR _BeaconPos$55373[esp+92]
	push	edx
	call	ecx
	fcomp	DWORD PTR _NearestDistanceFound$[esp+96]
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 5
	jp	$LN20@Disarm_Nea

; 1071 : 					{
; 1072 : 						NearestDistanceFound = Commands->Get_Distance(BeaconPos,HostPos);

	lea	eax, DWORD PTR _BeaconPos$55373[esp+80]

; 1073 : 						ClosestBeacon = o;
; 1074 : 					}
; 1075 : 				}
; 1076 : 				else

	jmp	SHORT $LN24@Disarm_Nea
$LN10@Disarm_Nea:

; 1077 : 				{
; 1078 : 					Disarm_Beacon(o);
; 1079 : 				}
; 1080 : 			}
; 1081 : 			else if (Get_Object_Type(o) == Team)

	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, DWORD PTR _Team$[esp+76]
	jne	SHORT $LN20@Disarm_Nea

; 1082 : 			{
; 1083 : 				if (Nearest)

	test	bl, bl

; 1084 : 				{
; 1085 : 					Vector3 BeaconPos = Commands->Get_Position(o);

	push	esi
	je	SHORT $LN9@Disarm_Nea
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+64]
	lea	eax, DWORD PTR $T59398[esp+84]
	push	eax
	call	edx

; 1086 : 					BeaconPos.Z = 0;

	fldz
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _BeaconPos$55380[esp+88], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _BeaconPos$55380[esp+92], edx
	mov	eax, DWORD PTR [eax+8]
	mov	DWORD PTR _BeaconPos$55380[esp+96], eax
	fstp	DWORD PTR _BeaconPos$55380[esp+96]

; 1087 : 					if (Commands->Get_Distance(BeaconPos,HostPos) < NearestDistanceFound)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _HostPos$[esp+88]
	push	ecx
	mov	ecx, DWORD PTR [eax+256]
	lea	edx, DWORD PTR _BeaconPos$55380[esp+92]
	push	edx
	call	ecx
	fcomp	DWORD PTR _NearestDistanceFound$[esp+96]
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 5
	jp	SHORT $LN20@Disarm_Nea

; 1088 : 					{
; 1089 : 						NearestDistanceFound = Commands->Get_Distance(BeaconPos,HostPos);

	lea	eax, DWORD PTR _BeaconPos$55380[esp+80]
$LN24@Disarm_Nea:
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR _HostPos$[esp+80]
	push	edx
	mov	edx, DWORD PTR [ecx+256]
	push	eax
	call	edx
	fstp	DWORD PTR _NearestDistanceFound$[esp+88]
	add	esp, 8

; 1090 : 						ClosestBeacon = o;

	mov	ebp, esi

; 1091 : 					}
; 1092 : 				}
; 1093 : 				else 

	jmp	SHORT $LN20@Disarm_Nea
$LN9@Disarm_Nea:

; 1094 : 				{
; 1095 : 					Disarm_Beacon(o);

	call	?Disarm_Beacon@@YAXPAE@Z		; Disarm_Beacon
	add	esp, 4
$LN20@Disarm_Nea:

; 1096 : 				}
; 1097 : 			}
; 1098 : 		}
; 1099 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL13@Disarm_Nea
$LN21@Disarm_Nea:

; 1100 : 	}
; 1101 : 	if (Nearest && ClosestBeacon && As_BeaconGameObj(ClosestBeacon))

	test	bl, bl
	je	SHORT $LN22@Disarm_Nea
	test	ebp, ebp
	je	SHORT $LN22@Disarm_Nea
	push	ebp
	call	?As_BeaconGameObj@@YAPAEPAE@Z		; As_BeaconGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN22@Disarm_Nea

; 1102 : 	{
; 1103 : 		Disarm_Beacon(ClosestBeacon);

	push	ebp
	call	?Disarm_Beacon@@YAXPAE@Z		; Disarm_Beacon
	add	esp, 4
$LN22@Disarm_Nea:
	pop	edi
	pop	ebp
	pop	ebx
$LN14@Disarm_Nea:
	pop	esi

; 1104 : 	}
; 1105 : }

	add	esp, 64					; 00000040H
	ret	0
?Disarm_Nearest_Beacon@@YAXPAEH_N@Z ENDP		; Disarm_Nearest_Beacon
_TEXT	ENDS
PUBLIC	?Disarm_C4@@YAXPAE@Z				; Disarm_C4
; Function compile flags: /Ogtpy
;	COMDAT ?Disarm_C4@@YAXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Disarm_C4@@YAXPAE@Z PROC				; Disarm_C4, COMDAT

; 1109 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Disarm_C4
	test	esi, esi
	je	SHORT $LN3@Disarm_C4

; 1110 : 	{
; 1111 : 		return;
; 1112 : 	}
; 1113 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1114 : 	if (!o2)

	test	eax, eax
	je	SHORT $LN3@Disarm_C4

; 1115 : 	{
; 1116 : 		return;
; 1117 : 	}
; 1118 : 	C4GameObj *o3 = o2->As_C4GameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax

; 1119 : 	if (!o3)

	test	eax, eax
	je	SHORT $LN3@Disarm_C4

; 1120 : 	{
; 1121 : 		return;
; 1122 : 	}
; 1123 : 	o3->Defuse();

	mov	ecx, eax
	pop	esi
	jmp	?Defuse@C4GameObj@@QAEXXZ		; C4GameObj::Defuse
$LN3@Disarm_C4:
	pop	esi

; 1124 : }

	ret	0
?Disarm_C4@@YAXPAE@Z ENDP				; Disarm_C4
_TEXT	ENDS
PUBLIC	?Find_Beacon@@YAPAEHH@Z				; Find_Beacon
; Function compile flags: /Ogtpy
;	COMDAT ?Find_Beacon@@YAPAEHH@Z
_TEXT	SEGMENT
_ReturnObj$ = -4					; size = 4
_Number$ = 8						; size = 4
_Team$ = 12						; size = 4
?Find_Beacon@@YAPAEHH@Z PROC				; Find_Beacon, COMDAT

; 1260 : {

	push	ecx

; 1261 : 	if (Number < 0)

	mov	eax, DWORD PTR _Number$[esp]
	test	eax, eax

; 1262 : 	{
; 1263 : 		Number = 0;
; 1264 : 	}
; 1265 : 	if (!Number)

	jl	SHORT $LN14@Find_Beaco
	jne	SHORT $LN8@Find_Beaco
$LN14@Find_Beaco:

; 1266 : 	{
; 1267 : 		return 0;

	xor	eax, eax

; 1290 : }

	pop	ecx
	ret	0
$LN8@Find_Beaco:

; 1268 : 	}
; 1269 : 	int Total = 0;
; 1270 : 	GameObject *ReturnObj = 0;
; 1271 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	ebx
	push	edi
	mov	edi, DWORD PTR [eax+4]
	xor	ebx, ebx

; 1272 : 	while (x)

	test	edi, edi
	mov	DWORD PTR _ReturnObj$[esp+12], ebx
	je	SHORT $LN6@Find_Beaco
	push	ebp
	mov	ebp, DWORD PTR _Team$[esp+12]
	push	esi
	npad	7
$LL7@Find_Beaco:

; 1273 : 	{
; 1274 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1275 : 		if (o && As_ScriptableGameObj(o) && As_BeaconGameObj(o))

	test	esi, esi
	je	SHORT $LN15@Find_Beaco
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Find_Beaco
	push	esi
	call	?As_BeaconGameObj@@YAPAEPAE@Z		; As_BeaconGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Find_Beaco

; 1276 : 		{
; 1277 : 			if (Team == 2)

	cmp	ebp, 2

; 1278 : 			{
; 1279 : 				Total++;

	je	SHORT $LN16@Find_Beaco

; 1280 : 			}
; 1281 : 			else if (Get_Object_Type(o) == Team)

	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebp
	jne	SHORT $LN2@Find_Beaco
$LN16@Find_Beaco:

; 1282 : 			{
; 1283 : 				Total++;

	add	ebx, 1
$LN2@Find_Beaco:

; 1284 : 			}
; 1285 : 			if (Total == Number) ReturnObj = o;

	cmp	ebx, DWORD PTR _Number$[esp+16]
	jne	SHORT $LN15@Find_Beaco
	mov	DWORD PTR _ReturnObj$[esp+20], esi
$LN15@Find_Beaco:

; 1286 : 		}
; 1287 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL7@Find_Beaco
	pop	esi
	pop	ebp
$LN6@Find_Beaco:

; 1288 : 	}
; 1289 : 	return ReturnObj;

	mov	eax, DWORD PTR _ReturnObj$[esp+12]
	pop	edi
	pop	ebx

; 1290 : }

	pop	ecx
	ret	0
?Find_Beacon@@YAPAEHH@Z ENDP				; Find_Beacon
_TEXT	ENDS
PUBLIC	?Get_C4_Count@@YAHH@Z				; Get_C4_Count
EXTRN	?As_C4GameObj@@YAPAEPAE@Z:PROC			; As_C4GameObj
; Function compile flags: /Ogtpy
;	COMDAT ?Get_C4_Count@@YAHH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Get_C4_Count@@YAHH@Z PROC				; Get_C4_Count, COMDAT

; 1294 : 	int Total = 0;
; 1295 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	ebx
	push	edi
	mov	edi, DWORD PTR [eax+4]
	xor	ebx, ebx

; 1296 : 	while (x)

	test	edi, edi
	je	SHORT $LN11@Get_C4_Cou
	push	ebp
	mov	ebp, DWORD PTR _Team$[esp+8]
	push	esi
$LL6@Get_C4_Cou:

; 1297 : 	{
; 1298 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1299 : 		if (o && As_ScriptableGameObj(o) && As_C4GameObj(o))

	test	esi, esi
	je	SHORT $LN12@Get_C4_Cou
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN12@Get_C4_Cou
	push	esi
	call	?As_C4GameObj@@YAPAEPAE@Z		; As_C4GameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN12@Get_C4_Cou

; 1300 : 		{
; 1301 : 			if (Team == 2)

	cmp	ebp, 2

; 1302 : 			{
; 1303 : 				Total++;

	je	SHORT $LN13@Get_C4_Cou

; 1304 : 			}
; 1305 : 			else if (Get_Object_Type(o) == Team)

	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebp
	jne	SHORT $LN12@Get_C4_Cou
$LN13@Get_C4_Cou:

; 1306 : 			{
; 1307 : 				Total++;

	add	ebx, 1
$LN12@Get_C4_Cou:

; 1308 : 			}
; 1309 : 		}
; 1310 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL6@Get_C4_Cou
	pop	esi
	pop	ebp
$LN11@Get_C4_Cou:
	pop	edi

; 1311 : 	}
; 1312 : 	return Total;

	mov	eax, ebx
	pop	ebx

; 1313 : }

	ret	0
?Get_C4_Count@@YAHH@Z ENDP				; Get_C4_Count
_TEXT	ENDS
PUBLIC	?Get_Mine_Limit@@YADXZ				; Get_Mine_Limit
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Mine_Limit@@YADXZ
_TEXT	SEGMENT
?Get_Mine_Limit@@YADXZ PROC				; Get_Mine_Limit, COMDAT

; 1317 : 	return *Mine_Limit;

	mov	eax, DWORD PTR ?Mine_Limit@@3PADA	; Mine_Limit
	mov	al, BYTE PTR [eax]

; 1318 : }

	ret	0
?Get_Mine_Limit@@YADXZ ENDP				; Get_Mine_Limit
_TEXT	ENDS
PUBLIC	?Get_Beacon_Count@@YAHH@Z			; Get_Beacon_Count
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Beacon_Count@@YAHH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Get_Beacon_Count@@YAHH@Z PROC				; Get_Beacon_Count, COMDAT

; 1322 : 	int Total = 0;
; 1323 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	ebx
	push	edi
	mov	edi, DWORD PTR [eax+4]
	xor	ebx, ebx

; 1324 : 	while (x)

	test	edi, edi
	je	SHORT $LN11@Get_Beacon
	push	ebp
	mov	ebp, DWORD PTR _Team$[esp+8]
	push	esi
$LL6@Get_Beacon:

; 1325 : 	{
; 1326 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1327 : 		if (o && As_ScriptableGameObj(o) && As_BeaconGameObj(o))

	test	esi, esi
	je	SHORT $LN12@Get_Beacon
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN12@Get_Beacon
	push	esi
	call	?As_BeaconGameObj@@YAPAEPAE@Z		; As_BeaconGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN12@Get_Beacon

; 1328 : 		{
; 1329 : 			if (Team == 2)

	cmp	ebp, 2

; 1330 : 			{
; 1331 : 				Total++;

	je	SHORT $LN13@Get_Beacon

; 1332 : 			}
; 1333 : 			else if (Get_Object_Type(o) == Team)

	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebp
	jne	SHORT $LN12@Get_Beacon
$LN13@Get_Beacon:

; 1334 : 			{
; 1335 : 				Total++;

	add	ebx, 1
$LN12@Get_Beacon:

; 1336 : 			}
; 1337 : 		}
; 1338 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	SHORT $LL6@Get_Beacon
	pop	esi
	pop	ebp
$LN11@Get_Beacon:
	pop	edi

; 1339 : 	}
; 1340 : 	return Total;

	mov	eax, ebx
	pop	ebx

; 1341 : }

	ret	0
?Get_Beacon_Count@@YAHH@Z ENDP				; Get_Beacon_Count
_TEXT	ENDS
PUBLIC	?Get_C4_Mode@@YAHPAE@Z				; Get_C4_Mode
EXTRN	?Get@IntDataSafeClass@@QAEHXZ:PROC		; IntDataSafeClass::Get
; Function compile flags: /Ogtpy
;	COMDAT ?Get_C4_Mode@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_C4_Mode@@YAHPAE@Z PROC				; Get_C4_Mode, COMDAT

; 1345 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Get_C4_Mod
	test	esi, esi
	je	SHORT $LN3@Get_C4_Mod

; 1348 : 	}
; 1349 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1350 : 	if (!o2)

	test	eax, eax

; 1351 : 	{
; 1352 : 		return 0;

	je	SHORT $LN3@Get_C4_Mod

; 1353 : 	}
; 1354 : 	C4GameObj *o3 = o2->As_C4GameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax

; 1355 : 	if (!o3)

	test	eax, eax

; 1356 : 	{
; 1357 : 		return 0;

	je	SHORT $LN3@Get_C4_Mod

; 1358 : 	}
; 1359 : 	return o3->AmmoDef->AmmoType.Get();

	mov	ecx, DWORD PTR [eax+1992]
	add	ecx, 140				; 0000008cH
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN3@Get_C4_Mod:

; 1346 : 	{
; 1347 : 		return 0;

	xor	eax, eax
	pop	esi

; 1360 : }

	ret	0
?Get_C4_Mode@@YAHPAE@Z ENDP				; Get_C4_Mode
_TEXT	ENDS
PUBLIC	?Get_C4_Count_Proximity@@YAHH@Z			; Get_C4_Count_Proximity
; Function compile flags: /Ogtpy
;	COMDAT ?Get_C4_Count_Proximity@@YAHH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Get_C4_Count_Proximity@@YAHH@Z PROC			; Get_C4_Count_Proximity, COMDAT

; 1364 : 	int Total = 0;
; 1365 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	ebp
	push	edi
	mov	edi, DWORD PTR [eax+4]
	xor	ebp, ebp

; 1366 : 	while (x)

	test	edi, edi
	je	$LN16@Get_C4_Cou@2
	push	ebx
	mov	ebx, DWORD PTR _Team$[esp+8]
	push	esi
	npad	6
$LL5@Get_C4_Cou@2:

; 1367 : 	{
; 1368 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1369 : 		if (o && As_ScriptableGameObj(o) && As_C4GameObj(o) && Get_C4_Mode(o) == 3)

	test	esi, esi
	je	SHORT $LN17@Get_C4_Cou@2
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@2
	push	esi
	call	?As_C4GameObj@@YAPAEPAE@Z		; As_C4GameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@2
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+36]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@2
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@2
	mov	ecx, DWORD PTR [eax+1992]
	add	ecx, 140				; 0000008cH
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
	cmp	eax, 3
	jne	SHORT $LN17@Get_C4_Cou@2

; 1370 : 		{
; 1371 : 			if (Team == 2 || Get_Object_Type(o) == Team)

	cmp	ebx, 2
	je	SHORT $LN1@Get_C4_Cou@2
	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebx
	jne	SHORT $LN17@Get_C4_Cou@2
$LN1@Get_C4_Cou@2:

; 1372 : 			{
; 1373 : 				Total++;

	add	ebp, 1
$LN17@Get_C4_Cou@2:

; 1374 : 			}
; 1375 : 		}
; 1376 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL5@Get_C4_Cou@2
	pop	esi
	pop	ebx
$LN16@Get_C4_Cou@2:
	pop	edi

; 1377 : 	}
; 1378 : 	return Total;

	mov	eax, ebp
	pop	ebp

; 1379 : }

	ret	0
?Get_C4_Count_Proximity@@YAHH@Z ENDP			; Get_C4_Count_Proximity
_TEXT	ENDS
PUBLIC	?Get_C4_Count_Remote@@YAHH@Z			; Get_C4_Count_Remote
; Function compile flags: /Ogtpy
;	COMDAT ?Get_C4_Count_Remote@@YAHH@Z
_TEXT	SEGMENT
_Team$ = 8						; size = 4
?Get_C4_Count_Remote@@YAHH@Z PROC			; Get_C4_Count_Remote, COMDAT

; 1383 : 	int Total = 0;
; 1384 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	ebp
	push	edi
	mov	edi, DWORD PTR [eax+4]
	xor	ebp, ebp

; 1385 : 	while (x)

	test	edi, edi
	je	$LN16@Get_C4_Cou@3
	push	ebx
	mov	ebx, DWORD PTR _Team$[esp+8]
	push	esi
	npad	6
$LL5@Get_C4_Cou@3:

; 1386 : 	{
; 1387 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1388 : 		if (o && As_ScriptableGameObj(o) && As_C4GameObj(o) && Get_C4_Mode(o) == 1)

	test	esi, esi
	je	SHORT $LN17@Get_C4_Cou@3
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@3
	push	esi
	call	?As_C4GameObj@@YAPAEPAE@Z		; As_C4GameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@3
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@3
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+36]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@3
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax
	test	eax, eax
	je	SHORT $LN17@Get_C4_Cou@3
	mov	ecx, DWORD PTR [eax+1992]
	add	ecx, 140				; 0000008cH
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
	cmp	eax, 1
	jne	SHORT $LN17@Get_C4_Cou@3

; 1389 : 		{
; 1390 : 			if (Team == 2 || Get_Object_Type(o) == Team)

	cmp	ebx, 2
	je	SHORT $LN1@Get_C4_Cou@3
	push	esi
	call	?Get_Object_Type@@YAHPAE@Z		; Get_Object_Type
	add	esp, 4
	cmp	eax, ebx
	jne	SHORT $LN17@Get_C4_Cou@3
$LN1@Get_C4_Cou@3:

; 1391 : 			{
; 1392 : 				Total++;

	add	ebp, 1
$LN17@Get_C4_Cou@3:

; 1393 : 			}
; 1394 : 		}
; 1395 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL5@Get_C4_Cou@3
	pop	esi
	pop	ebx
$LN16@Get_C4_Cou@3:
	pop	edi

; 1396 : 	}
; 1397 : 	return Total;

	mov	eax, ebp
	pop	ebp

; 1398 : }

	ret	0
?Get_C4_Count_Remote@@YAHH@Z ENDP			; Get_C4_Count_Remote
_TEXT	ENDS
PUBLIC	?Get_C4_Planter@@YAPAEPAE@Z			; Get_C4_Planter
; Function compile flags: /Ogtpy
;	COMDAT ?Get_C4_Planter@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_C4_Planter@@YAPAEPAE@Z PROC			; Get_C4_Planter, COMDAT

; 1402 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_C4_Pla
	test	esi, esi
	je	SHORT $LN4@Get_C4_Pla

; 1405 : 	}
; 1406 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1407 : 	if (!o2)

	test	eax, eax

; 1408 : 	{
; 1409 : 		return 0;

	je	SHORT $LN4@Get_C4_Pla

; 1410 : 	}
; 1411 : 	C4GameObj *o3 = o2->As_C4GameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax

; 1412 : 	if (!o3)

	test	eax, eax

; 1413 : 	{
; 1414 : 		return 0;

	je	SHORT $LN4@Get_C4_Pla

; 1415 : 	}
; 1416 : 	if (o3->Owner.Reference)

	mov	eax, DWORD PTR [eax+1980]
	test	eax, eax
	je	SHORT $LN4@Get_C4_Pla

; 1417 : 	{
; 1418 : 		return (GameObject *)o3->Owner.Reference->obj;

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

; 1419 : 	}
; 1420 : 	return 0;
; 1421 : }

	ret	0
$LN4@Get_C4_Pla:

; 1403 : 	{
; 1404 : 		return 0;

	xor	eax, eax
	pop	esi

; 1419 : 	}
; 1420 : 	return 0;
; 1421 : }

	ret	0
?Get_C4_Planter@@YAPAEPAE@Z ENDP			; Get_C4_Planter
_TEXT	ENDS
PUBLIC	?Get_C4_Attached@@YAPAEPAE@Z			; Get_C4_Attached
; Function compile flags: /Ogtpy
;	COMDAT ?Get_C4_Attached@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_C4_Attached@@YAPAEPAE@Z PROC			; Get_C4_Attached, COMDAT

; 1425 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_C4_Att
	test	esi, esi
	je	SHORT $LN4@Get_C4_Att

; 1428 : 	}
; 1429 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1430 : 	if (!o2)

	test	eax, eax

; 1431 : 	{
; 1432 : 		return 0;

	je	SHORT $LN4@Get_C4_Att

; 1433 : 	}
; 1434 : 	C4GameObj *o3 = o2->As_C4GameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax

; 1435 : 	if (!o3)

	test	eax, eax

; 1436 : 	{
; 1437 : 		return 0;

	je	SHORT $LN4@Get_C4_Att

; 1438 : 	}
; 1439 : 	if (o3->Attached.Reference)

	mov	eax, DWORD PTR [eax+2012]
	test	eax, eax
	je	SHORT $LN4@Get_C4_Att

; 1440 : 	{
; 1441 : 		return (GameObject *)o3->Attached.Reference->obj;

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

; 1442 : 	}
; 1443 : 	return 0;
; 1444 : }

	ret	0
$LN4@Get_C4_Att:

; 1426 : 	{
; 1427 : 		return 0;

	xor	eax, eax
	pop	esi

; 1442 : 	}
; 1443 : 	return 0;
; 1444 : }

	ret	0
?Get_C4_Attached@@YAPAEPAE@Z ENDP			; Get_C4_Attached
_TEXT	ENDS
PUBLIC	?Get_Beacon_Planter@@YAPAEPAE@Z			; Get_Beacon_Planter
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Beacon_Planter@@YAPAEPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Beacon_Planter@@YAPAEPAE@Z PROC			; Get_Beacon_Planter, COMDAT

; 1448 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Get_Beacon@2
	test	esi, esi
	je	SHORT $LN3@Get_Beacon@2

; 1451 : 	}
; 1452 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1453 : 	if (!o2)

	test	eax, eax

; 1454 : 	{
; 1455 : 		return 0;

	je	SHORT $LN3@Get_Beacon@2

; 1456 : 	}
; 1457 : 	BeaconGameObj *o3 = o2->As_BeaconGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+144]
	call	eax

; 1458 : 	if (!o3)

	test	eax, eax

; 1459 : 	{
; 1460 : 		return 0;

	je	SHORT $LN3@Get_Beacon@2

; 1461 : 	}
; 1462 : 	return o3->Get_Beacon_Owner();

	mov	ecx, eax
	pop	esi
	jmp	?Get_Beacon_Owner@BeaconGameObj@@QAEPAEXZ ; BeaconGameObj::Get_Beacon_Owner
$LN3@Get_Beacon@2:

; 1449 : 	{
; 1450 : 		return 0;

	xor	eax, eax
	pop	esi

; 1463 : }

	ret	0
?Get_Beacon_Planter@@YAPAEPAE@Z ENDP			; Get_Beacon_Planter
_TEXT	ENDS
PUBLIC	__TI2?AVbad_alloc@std@@
PUBLIC	??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ ; `string'
PUBLIC	?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z ; std::_DebugHeapAllocator<char>::allocate
PUBLIC	__CTA2?AVbad_alloc@std@@
PUBLIC	__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
PUBLIC	??0bad_alloc@std@@QAE@ABV01@@Z			; std::bad_alloc::bad_alloc
PUBLIC	__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
EXTRN	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z:PROC	; operator new[]
EXTRN	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ:PROC ; std::_DebugHeapTag_func
EXTRN	__CxxThrowException@8:PROC
EXTRN	??0exception@std@@QAE@ABV01@@Z:PROC		; std::exception::exception
;	COMDAT __CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
; File c:\program files\microsoft visual studio 8\vc\include\exception
xdata$x	SEGMENT
__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVexception@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0exception@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
xdata$x	SEGMENT
__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12 DD 00H
	DD	FLAT:??_R0?AVbad_alloc@std@@@8
	DD	00H
	DD	0ffffffffH
	ORG $+4
	DD	0cH
	DD	FLAT:??0bad_alloc@std@@QAE@ABV01@@Z
xdata$x	ENDS
;	COMDAT __CTA2?AVbad_alloc@std@@
xdata$x	SEGMENT
__CTA2?AVbad_alloc@std@@ DD 02H
	DD	FLAT:__CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QAE@ABV01@@Z12
	DD	FLAT:__CT??_R0?AVexception@std@@@8??0exception@std@@QAE@ABV01@@Z12
xdata$x	ENDS
;	COMDAT __TI2?AVbad_alloc@std@@
xdata$x	SEGMENT
__TI2?AVbad_alloc@std@@ DD 00H
	DD	FLAT:??1bad_alloc@std@@UAE@XZ
	DD	00H
	DD	FLAT:__CTA2?AVbad_alloc@std@@
xdata$x	ENDS
;	COMDAT ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
CONST	SEGMENT
??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@ DB 'C:\Program '
	DB	'Files\Microsoft Visual Studio 8\VC\include\xdebug', 00H ; `string'
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
CONST	ENDS
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z
_TEXT	SEGMENT
$T59496 = -12						; size = 12
_this$ = 8						; size = 4
$T59502 = 12						; size = 4
__Count$ = 12						; size = 4
___formal$ = 16						; size = 4
?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z PROC ; std::_DebugHeapAllocator<char>::allocate, COMDAT

; 79   : 		{	// check for integer overflow

	sub	esp, 12					; 0000000cH
	push	esi

; 80   : 		if (_Count <= 0)

	mov	esi, DWORD PTR __Count$[esp+12]
	test	esi, esi
	ja	SHORT $LN3@allocate

; 81   : 			_Count = 0;

	xor	esi, esi
$LN1@allocate:

; 84   : 
; 85   : 			// allocate array of _Count elements, ignore hint
; 86   : 		return ((_Ty *)_NEW_CRT char[_Count * sizeof(_Ty)]);

	push	86					; 00000056H
	push	OFFSET ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	eax
	push	esi
	call	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new[]
	add	esp, 16					; 00000010H
	pop	esi

; 87   : 		}

	add	esp, 12					; 0000000cH
	ret	0
$LN3@allocate:

; 82   : 		else if (((size_t)(-1) / _Count) < sizeof(_Ty))

	or	eax, -1
	xor	edx, edx
	div	esi
	cmp	eax, 1
	jae	SHORT $LN1@allocate

; 83   : 			_THROW_NCEE(std::bad_alloc, NULL);

	lea	eax, DWORD PTR $T59502[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T59496[esp+20]
	mov	DWORD PTR $T59502[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T59496[esp+20]
	push	ecx
	mov	DWORD PTR $T59496[esp+24], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@allocate:
$LN8@allocate:
	int	3
?allocate@?$_DebugHeapAllocator@D@std@@QAAPADIPBX@Z ENDP ; std::_DebugHeapAllocator<char>::allocate
_TEXT	ENDS
PUBLIC	?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z ; std::_DebugHeapAllocator<char>::allocate
; Function compile flags: /Ogtpy
;	COMDAT ?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z
_TEXT	SEGMENT
$T59508 = -12						; size = 12
$T59513 = 8						; size = 4
__Count$ = 8						; size = 4
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z PROC	; std::_DebugHeapAllocator<char>::allocate, COMDAT
; _this$ = ecx

; 90   : 		{	// check for integer overflow

	sub	esp, 12					; 0000000cH
	push	esi

; 91   : 		if (_Count <= 0)

	mov	esi, DWORD PTR __Count$[esp+12]
	test	esi, esi
	ja	SHORT $LN3@allocate@2

; 92   : 			_Count = 0;

	xor	esi, esi
$LN1@allocate@2:

; 95   : 
; 96   : 			// allocate array of _Count elements
; 97   : 		return ((_Ty *)_NEW_CRT char[_Count * sizeof(_Ty)]);

	push	97					; 00000061H
	push	OFFSET ??_C@_0DN@JHKGIIJF@C?3?2Program?5Files?2Microsoft?5Visua@
	call	?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ ; std::_DebugHeapTag_func
	push	eax
	push	esi
	call	??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z ; operator new[]
	add	esp, 16					; 00000010H
	pop	esi

; 98   : 		}

	add	esp, 12					; 0000000cH
	ret	4
$LN3@allocate@2:

; 93   : 		else if (((size_t)(-1) / _Count) < sizeof(_Ty))

	or	eax, -1
	xor	edx, edx
	div	esi
	cmp	eax, 1
	jae	SHORT $LN1@allocate@2

; 94   : 			_THROW_NCEE(std::bad_alloc, NULL);

	lea	eax, DWORD PTR $T59513[esp+12]
	push	eax
	lea	ecx, DWORD PTR $T59508[esp+20]
	mov	DWORD PTR $T59513[esp+16], 0
	call	??0exception@std@@QAE@ABQBD@Z		; std::exception::exception
	push	OFFSET __TI2?AVbad_alloc@std@@
	lea	ecx, DWORD PTR $T59508[esp+20]
	push	ecx
	mov	DWORD PTR $T59508[esp+24], OFFSET ??_7bad_alloc@std@@6B@
	call	__CxxThrowException@8
$LN9@allocate@2:
$LN8@allocate@2:
	int	3
?allocate@?$_DebugHeapAllocator@D@std@@QAEPADI@Z ENDP	; std::_DebugHeapAllocator<char>::allocate
_TEXT	ENDS
PUBLIC	?Count@?$DynamicVectorClass@PAVWeaponClass@@@@QAEHXZ ; DynamicVectorClass<WeaponClass *>::Count
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_vector.h
;	COMDAT ?Count@?$DynamicVectorClass@PAVWeaponClass@@@@QAEHXZ
_TEXT	SEGMENT
?Count@?$DynamicVectorClass@PAVWeaponClass@@@@QAEHXZ PROC ; DynamicVectorClass<WeaponClass *>::Count, COMDAT
; _this$ = ecx

; 68   : 		return ActiveCount;

	mov	eax, DWORD PTR [ecx+16]

; 69   : 	}

	ret	0
?Count@?$DynamicVectorClass@PAVWeaponClass@@@@QAEHXZ ENDP ; DynamicVectorClass<WeaponClass *>::Count
_TEXT	ENDS
PUBLIC	??A?$VectorClass@PAVWeaponClass@@@@QAEAAPAVWeaponClass@@H@Z ; VectorClass<WeaponClass *>::operator[]
; Function compile flags: /Ogtpy
;	COMDAT ??A?$VectorClass@PAVWeaponClass@@@@QAEAAPAVWeaponClass@@H@Z
_TEXT	SEGMENT
_index$ = 8						; size = 4
??A?$VectorClass@PAVWeaponClass@@@@QAEAAPAVWeaponClass@@H@Z PROC ; VectorClass<WeaponClass *>::operator[], COMDAT
; _this$ = ecx

; 34   : 		return Vector[index];

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

; 35   : 	}

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

; 120  : 	allocator() _THROW0()

	mov	eax, ecx

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

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

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

	mov	eax, ecx

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

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

; 56   : 	if (_Ptr != 0)

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

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

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

; 62   : 		}
; 63   : 	}

	ret	0
??$_DebugHeapDelete@X@std@@YAXPAX@Z ENDP		; std::_DebugHeapDelete<void>
_TEXT	ENDS
PUBLIC	?Get_Current_Bullets@@YAHPAE@Z			; Get_Current_Bullets
; Function compile flags: /Ogtpy
; File d:\source code\stgm\engine_weap.cpp
;	COMDAT ?Get_Current_Bullets@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Bullets@@YAHPAE@Z PROC			; Get_Current_Bullets, COMDAT

; 69   : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren
	test	esi, esi
	je	SHORT $LN4@Get_Curren

; 72   : 	}
; 73   : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 74   : 	if (!o2)

	test	eax, eax

; 75   : 	{
; 76   : 		return 0;

	je	SHORT $LN4@Get_Curren

; 77   : 	}
; 78   : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 79   : 	if (!o3)

	test	eax, eax

; 80   : 	{
; 81   : 		return 0;

	je	SHORT $LN4@Get_Curren

; 82   : 	}
; 83   : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 84   : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren

; 85   : 	{
; 86   : 		WeaponClass *wc = w->Vector[w->current];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 87   : 		return wc->LoadedBullets.Get();

	add	ecx, 36					; 00000024H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Curren:

; 70   : 	{
; 71   : 		return 0;

	xor	eax, eax
	pop	esi

; 88   : 	}
; 89   : 	return 0;
; 90   : }

	ret	0
?Get_Current_Bullets@@YAHPAE@Z ENDP			; Get_Current_Bullets
_TEXT	ENDS
PUBLIC	?Get_Current_Clip_Bullets@@YAHPAE@Z		; Get_Current_Clip_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Clip_Bullets@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Clip_Bullets@@YAHPAE@Z PROC		; Get_Current_Clip_Bullets, COMDAT

; 94   : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren@2
	test	esi, esi
	je	SHORT $LN4@Get_Curren@2

; 97   : 	}
; 98   : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 99   : 	if (!o2)

	test	eax, eax

; 100  : 	{
; 101  : 		return 0;

	je	SHORT $LN4@Get_Curren@2

; 102  : 	}
; 103  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 104  : 	if (!o3)

	test	eax, eax

; 105  : 	{
; 106  : 		return 0;

	je	SHORT $LN4@Get_Curren@2

; 107  : 	}
; 108  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 109  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren@2
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren@2

; 110  : 	{
; 111  : 		WeaponClass *wc = w->Vector[w->current];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 112  : 		return wc->InventoryBullets.Get();

	add	ecx, 40					; 00000028H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Curren@2:

; 95   : 	{
; 96   : 		return 0;

	xor	eax, eax
	pop	esi

; 113  : 	}
; 114  : 	return 0;
; 115  : }

	ret	0
?Get_Current_Clip_Bullets@@YAHPAE@Z ENDP		; Get_Current_Clip_Bullets
_TEXT	ENDS
PUBLIC	?Get_Current_Total_Bullets@@YAHPAE@Z		; Get_Current_Total_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Total_Bullets@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Total_Bullets@@YAHPAE@Z PROC		; Get_Current_Total_Bullets, COMDAT

; 119  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN14@Get_Curren@3
	test	esi, esi
	je	SHORT $LN14@Get_Curren@3

; 120  : 	{
; 121  : 		return 0;
; 122  : 	}
; 123  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 124  : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN4@Get_Curren@3
$LN14@Get_Curren@3:

; 125  : 	{
; 126  : 		return 0;

	xor	eax, eax
	pop	esi

; 144  : 	}
; 145  : 	return 0;
; 146  : }

	ret	0
$LN4@Get_Curren@3:

; 127  : 	}
; 128  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 129  : 	if (!o3)

	test	eax, eax

; 130  : 	{
; 131  : 		return 0;

	je	SHORT $LN14@Get_Curren@3

; 132  : 	}
; 133  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 134  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN14@Get_Curren@3
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN14@Get_Curren@3

; 135  : 	{
; 136  : 		WeaponClass *wc = w->Vector[w->current];

	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+ecx*4]
	push	edi

; 137  : 		int bullets = wc->LoadedBullets.Get();

	lea	ecx, DWORD PTR [esi+36]
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 138  : 		int clipbullets = wc->InventoryBullets.Get();

	lea	ecx, DWORD PTR [esi+40]
	mov	edi, eax
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 139  : 		if (clipbullets < 0)

	test	eax, eax
	jge	SHORT $LN1@Get_Curren@3
	pop	edi

; 140  : 		{
; 141  : 			return -1;

	or	eax, -1
	pop	esi

; 144  : 	}
; 145  : 	return 0;
; 146  : }

	ret	0
$LN1@Get_Curren@3:

; 142  : 		}
; 143  : 		return bullets+clipbullets;

	add	eax, edi
	pop	edi
	pop	esi

; 144  : 	}
; 145  : 	return 0;
; 146  : }

	ret	0
?Get_Current_Total_Bullets@@YAHPAE@Z ENDP		; Get_Current_Total_Bullets
_TEXT	ENDS
PUBLIC	?Get_Position_Bullets@@YAHPAEH@Z		; Get_Position_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Bullets@@YAHPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Bullets@@YAHPAEH@Z PROC			; Get_Position_Bullets, COMDAT

; 150  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Positi
	test	esi, esi
	je	SHORT $LN4@Get_Positi

; 153  : 	}
; 154  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 155  : 	if (!o2)

	test	eax, eax

; 156  : 	{
; 157  : 		return 0;

	je	SHORT $LN4@Get_Positi

; 158  : 	}
; 159  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 160  : 	if (!o3)

	test	eax, eax

; 161  : 	{
; 162  : 		return 0;

	je	SHORT $LN4@Get_Positi

; 163  : 	}
; 164  : 	WeaponBagClass *w = o3->WeaponBag;
; 165  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN4@Get_Positi
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Positi

; 166  : 	{
; 167  : 		WeaponClass *wc = w->Vector[position];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 168  : 		return wc->LoadedBullets.Get();

	add	ecx, 36					; 00000024H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Positi:

; 151  : 	{
; 152  : 		return 0;

	xor	eax, eax
	pop	esi

; 169  : 	}
; 170  : 	return 0;
; 171  : }

	ret	0
?Get_Position_Bullets@@YAHPAEH@Z ENDP			; Get_Position_Bullets
_TEXT	ENDS
PUBLIC	?Get_Position_Clip_Bullets@@YAHPAEH@Z		; Get_Position_Clip_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Clip_Bullets@@YAHPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Clip_Bullets@@YAHPAEH@Z PROC		; Get_Position_Clip_Bullets, COMDAT

; 175  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Positi@2
	test	esi, esi
	je	SHORT $LN4@Get_Positi@2

; 178  : 	}
; 179  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 180  : 	if (!o2)

	test	eax, eax

; 181  : 	{
; 182  : 		return 0;

	je	SHORT $LN4@Get_Positi@2

; 183  : 	}
; 184  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 185  : 	if (!o3)

	test	eax, eax

; 186  : 	{
; 187  : 		return 0;

	je	SHORT $LN4@Get_Positi@2

; 188  : 	}
; 189  : 	WeaponBagClass *w = o3->WeaponBag;
; 190  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN4@Get_Positi@2
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Positi@2

; 191  : 	{
; 192  : 		WeaponClass *wc = w->Vector[position];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 193  : 		return wc->InventoryBullets.Get();

	add	ecx, 40					; 00000028H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Positi@2:

; 176  : 	{
; 177  : 		return 0;

	xor	eax, eax
	pop	esi

; 194  : 	}
; 195  : 	return 0;
; 196  : }

	ret	0
?Get_Position_Clip_Bullets@@YAHPAEH@Z ENDP		; Get_Position_Clip_Bullets
_TEXT	ENDS
PUBLIC	?Get_Position_Total_Bullets@@YAHPAEH@Z		; Get_Position_Total_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Total_Bullets@@YAHPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Total_Bullets@@YAHPAEH@Z PROC		; Get_Position_Total_Bullets, COMDAT

; 200  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN14@Get_Positi@3
	test	esi, esi
	je	SHORT $LN14@Get_Positi@3

; 201  : 	{
; 202  : 		return 0;
; 203  : 	}
; 204  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 205  : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN4@Get_Positi@3
$LN14@Get_Positi@3:

; 206  : 	{
; 207  : 		return 0;

	xor	eax, eax
	pop	esi

; 225  : 	}
; 226  : 	return 0;
; 227  : }

	ret	0
$LN4@Get_Positi@3:

; 208  : 	}
; 209  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 210  : 	if (!o3)

	test	eax, eax

; 211  : 	{
; 212  : 		return 0;

	je	SHORT $LN14@Get_Positi@3

; 213  : 	}
; 214  : 	WeaponBagClass *w = o3->WeaponBag;
; 215  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN14@Get_Positi@3
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN14@Get_Positi@3

; 216  : 	{
; 217  : 		WeaponClass *wc = w->Vector[position];

	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+ecx*4]
	push	edi

; 218  : 		int bullets = wc->LoadedBullets.Get();

	lea	ecx, DWORD PTR [esi+36]
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 219  : 		int clipbullets = wc->InventoryBullets.Get();

	lea	ecx, DWORD PTR [esi+40]
	mov	edi, eax
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 220  : 		if (clipbullets < 0)

	test	eax, eax
	jge	SHORT $LN1@Get_Positi@3
	pop	edi

; 221  : 		{
; 222  : 			return -1;

	or	eax, -1
	pop	esi

; 225  : 	}
; 226  : 	return 0;
; 227  : }

	ret	0
$LN1@Get_Positi@3:

; 223  : 		}
; 224  : 		return bullets+clipbullets;

	add	eax, edi
	pop	edi
	pop	esi

; 225  : 	}
; 226  : 	return 0;
; 227  : }

	ret	0
?Get_Position_Total_Bullets@@YAHPAEH@Z ENDP		; Get_Position_Total_Bullets
_TEXT	ENDS
PUBLIC	?Get_Bullets@@YAHPAEPBD@Z			; Get_Bullets
EXTRN	__stricmp:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Bullets@@YAHPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Get_Bullets@@YAHPAEPBD@Z PROC				; Get_Bullets, COMDAT

; 231  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN28@Get_Bullet
	test	esi, esi
	je	SHORT $LN28@Get_Bullet

; 232  : 	{
; 233  : 		return 0;
; 234  : 	}
; 235  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 236  : 	if (!o2)

	test	eax, eax

; 237  : 	{
; 238  : 		return 0;

	je	SHORT $LN28@Get_Bullet

; 239  : 	}
; 240  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 241  : 	if (!o3)

	test	eax, eax

; 242  : 	{
; 243  : 		return 0;

	je	SHORT $LN28@Get_Bullet
	push	ebx
	push	ebp
	push	edi

; 244  : 	}
; 245  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 246  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 247  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN3@Get_Bullet
	mov	ebp, DWORD PTR _weapon$[esp+12]
	npad	2
$LL5@Get_Bullet:
	mov	ecx, DWORD PTR [edi+8]

; 248  : 	{
; 249  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Get_Bullet

; 250  : 		{
; 251  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN21@Get_Bullet
$LN4@Get_Bullet:

; 247  : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Get_Bullet
$LN3@Get_Bullet:
	pop	edi
	pop	ebp
	pop	ebx
$LN28@Get_Bullet:

; 255  : 			}
; 256  : 		}
; 257  : 	}
; 258  : 	return 0;

	xor	eax, eax
	pop	esi

; 259  : }

	ret	0
$LN21@Get_Bullet:

; 252  : 			{
; 253  : 				WeaponClass *wc = w->Vector[i];

	mov	eax, DWORD PTR [edi+8]
	mov	esi, DWORD PTR [eax+esi*4]
	pop	edi
	pop	ebp
	pop	ebx

; 254  : 				return wc->LoadedBullets.Get();

	lea	ecx, DWORD PTR [esi+36]
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
?Get_Bullets@@YAHPAEPBD@Z ENDP				; Get_Bullets
_TEXT	ENDS
PUBLIC	?Get_Clip_Bullets@@YAHPAEPBD@Z			; Get_Clip_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Clip_Bullets@@YAHPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Get_Clip_Bullets@@YAHPAEPBD@Z PROC			; Get_Clip_Bullets, COMDAT

; 263  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN28@Get_Clip_B
	test	esi, esi
	je	SHORT $LN28@Get_Clip_B

; 264  : 	{
; 265  : 		return 0;
; 266  : 	}
; 267  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 268  : 	if (!o2)

	test	eax, eax

; 269  : 	{
; 270  : 		return 0;

	je	SHORT $LN28@Get_Clip_B

; 271  : 	}
; 272  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 273  : 	if (!o3)

	test	eax, eax

; 274  : 	{
; 275  : 		return 0;

	je	SHORT $LN28@Get_Clip_B
	push	ebx
	push	ebp
	push	edi

; 276  : 	}
; 277  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 278  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 279  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN3@Get_Clip_B
	mov	ebp, DWORD PTR _weapon$[esp+12]
	npad	2
$LL5@Get_Clip_B:
	mov	ecx, DWORD PTR [edi+8]

; 280  : 	{
; 281  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Get_Clip_B

; 282  : 		{
; 283  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN21@Get_Clip_B
$LN4@Get_Clip_B:

; 279  : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Get_Clip_B
$LN3@Get_Clip_B:
	pop	edi
	pop	ebp
	pop	ebx
$LN28@Get_Clip_B:

; 287  : 			}
; 288  : 		}
; 289  : 	}
; 290  : 	return 0;

	xor	eax, eax
	pop	esi

; 291  : }

	ret	0
$LN21@Get_Clip_B:

; 284  : 			{
; 285  : 				WeaponClass *wc = w->Vector[i];

	mov	eax, DWORD PTR [edi+8]
	mov	esi, DWORD PTR [eax+esi*4]
	pop	edi
	pop	ebp
	pop	ebx

; 286  : 				return wc->InventoryBullets.Get();

	lea	ecx, DWORD PTR [esi+40]
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
?Get_Clip_Bullets@@YAHPAEPBD@Z ENDP			; Get_Clip_Bullets
_TEXT	ENDS
PUBLIC	?Get_Total_Bullets@@YAHPAEPBD@Z			; Get_Total_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Total_Bullets@@YAHPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Get_Total_Bullets@@YAHPAEPBD@Z PROC			; Get_Total_Bullets, COMDAT

; 295  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN27@Get_Total_
	test	esi, esi
	je	SHORT $LN27@Get_Total_

; 296  : 	{
; 297  : 		return 0;
; 298  : 	}
; 299  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 300  : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN8@Get_Total_
$LN27@Get_Total_:

; 301  : 	{
; 302  : 		return 0;

	xor	eax, eax
	pop	esi

; 329  : }

	ret	0
$LN8@Get_Total_:

; 303  : 	}
; 304  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 305  : 	if (!o3)

	test	eax, eax

; 306  : 	{
; 307  : 		return 0;

	je	SHORT $LN27@Get_Total_
	push	ebx
	push	ebp
	push	edi

; 308  : 	}
; 309  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 310  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 311  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN4@Get_Total_
	mov	ebp, DWORD PTR _weapon$[esp+12]
$LL6@Get_Total_:
	mov	ecx, DWORD PTR [edi+8]

; 312  : 	{
; 313  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN5@Get_Total_

; 314  : 		{
; 315  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN22@Get_Total_
$LN5@Get_Total_:

; 311  : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL6@Get_Total_
$LN4@Get_Total_:
	pop	edi
	pop	ebp
	pop	ebx

; 325  : 			}
; 326  : 		}
; 327  : 	}
; 328  : 	return 0;

	xor	eax, eax
	pop	esi

; 329  : }

	ret	0
$LN22@Get_Total_:

; 316  : 			{
; 317  : 				WeaponClass *wc = w->Vector[i];

	mov	eax, DWORD PTR [edi+8]
	mov	esi, DWORD PTR [eax+esi*4]

; 318  : 				int bullets = wc->LoadedBullets.Get();

	lea	ecx, DWORD PTR [esi+36]
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 319  : 				int clipbullets = wc->InventoryBullets.Get();

	lea	ecx, DWORD PTR [esi+40]
	mov	edi, eax
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 320  : 				if (clipbullets < 0)

	test	eax, eax
	jge	SHORT $LN1@Get_Total_
	pop	edi
	pop	ebp
	pop	ebx

; 321  : 				{
; 322  : 					return -1;

	or	eax, -1
	pop	esi

; 329  : }

	ret	0
$LN1@Get_Total_:

; 323  : 				}
; 324  : 				return bullets+clipbullets;

	add	eax, edi
	pop	edi
	pop	ebp
	pop	ebx
	pop	esi

; 329  : }

	ret	0
?Get_Total_Bullets@@YAHPAEPBD@Z ENDP			; Get_Total_Bullets
_TEXT	ENDS
PUBLIC	?Get_Current_Max_Bullets@@YAHPAE@Z		; Get_Current_Max_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Max_Bullets@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Max_Bullets@@YAHPAE@Z PROC			; Get_Current_Max_Bullets, COMDAT

; 333  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren@4
	test	esi, esi
	je	SHORT $LN4@Get_Curren@4

; 336  : 	}
; 337  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 338  : 	if (!o2)

	test	eax, eax

; 339  : 	{
; 340  : 		return 0;

	je	SHORT $LN4@Get_Curren@4

; 341  : 	}
; 342  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 343  : 	if (!o3)

	test	eax, eax

; 344  : 	{
; 345  : 		return 0;

	je	SHORT $LN4@Get_Curren@4

; 346  : 	}
; 347  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 348  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren@4
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren@4

; 349  : 	{
; 350  : 		WeaponClass *wc = w->Vector[w->current];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 351  : 		return wc->WeaponDef->ClipSize.Get();

	mov	ecx, DWORD PTR [ecx]
	add	ecx, 116				; 00000074H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Curren@4:

; 334  : 	{
; 335  : 		return 0;

	xor	eax, eax
	pop	esi

; 352  : 	}
; 353  : 	return 0;
; 354  : }

	ret	0
?Get_Current_Max_Bullets@@YAHPAE@Z ENDP			; Get_Current_Max_Bullets
_TEXT	ENDS
PUBLIC	?Get_Current_Clip_Max_Bullets@@YAHPAE@Z		; Get_Current_Clip_Max_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Clip_Max_Bullets@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Clip_Max_Bullets@@YAHPAE@Z PROC		; Get_Current_Clip_Max_Bullets, COMDAT

; 358  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren@5
	test	esi, esi
	je	SHORT $LN4@Get_Curren@5

; 361  : 	}
; 362  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 363  : 	if (!o2)

	test	eax, eax

; 364  : 	{
; 365  : 		return 0;

	je	SHORT $LN4@Get_Curren@5

; 366  : 	}
; 367  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 368  : 	if (!o3)

	test	eax, eax

; 369  : 	{
; 370  : 		return 0;

	je	SHORT $LN4@Get_Curren@5

; 371  : 	}
; 372  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 373  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren@5
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren@5

; 374  : 	{
; 375  : 		WeaponClass *wc = w->Vector[w->current];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 376  : 		return wc->WeaponDef->MaxInventoryRounds.Get();

	mov	ecx, DWORD PTR [ecx]
	add	ecx, 132				; 00000084H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Curren@5:

; 359  : 	{
; 360  : 		return 0;

	xor	eax, eax
	pop	esi

; 377  : 	}
; 378  : 	return 0;
; 379  : }

	ret	0
?Get_Current_Clip_Max_Bullets@@YAHPAE@Z ENDP		; Get_Current_Clip_Max_Bullets
_TEXT	ENDS
PUBLIC	?Get_Current_Total_Max_Bullets@@YAHPAE@Z	; Get_Current_Total_Max_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Total_Max_Bullets@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Total_Max_Bullets@@YAHPAE@Z PROC		; Get_Current_Total_Max_Bullets, COMDAT

; 383  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN14@Get_Curren@6
	test	esi, esi
	je	SHORT $LN14@Get_Curren@6

; 384  : 	{
; 385  : 		return 0;
; 386  : 	}
; 387  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 388  : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN4@Get_Curren@6
$LN14@Get_Curren@6:

; 389  : 	{
; 390  : 		return 0;

	xor	eax, eax
	pop	esi

; 408  : 	}
; 409  : 	return 0;
; 410  : }

	ret	0
$LN4@Get_Curren@6:

; 391  : 	}
; 392  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 393  : 	if (!o3)

	test	eax, eax

; 394  : 	{
; 395  : 		return 0;

	je	SHORT $LN14@Get_Curren@6

; 396  : 	}
; 397  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 398  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN14@Get_Curren@6
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN14@Get_Curren@6

; 399  : 	{
; 400  : 		WeaponClass *wc = w->Vector[w->current];

	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+ecx*4]

; 401  : 		int bullets = wc->WeaponDef->ClipSize.Get();

	mov	ecx, DWORD PTR [esi]
	push	edi
	add	ecx, 116				; 00000074H
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 402  : 		int clipbullets = wc->WeaponDef->MaxInventoryRounds.Get();

	mov	ecx, DWORD PTR [esi]
	add	ecx, 132				; 00000084H
	mov	edi, eax
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 403  : 		if (clipbullets < 0)

	test	eax, eax
	jge	SHORT $LN1@Get_Curren@6
	pop	edi

; 404  : 		{
; 405  : 			return -1;

	or	eax, -1
	pop	esi

; 408  : 	}
; 409  : 	return 0;
; 410  : }

	ret	0
$LN1@Get_Curren@6:

; 406  : 		}
; 407  : 		return bullets+clipbullets;

	add	eax, edi
	pop	edi
	pop	esi

; 408  : 	}
; 409  : 	return 0;
; 410  : }

	ret	0
?Get_Current_Total_Max_Bullets@@YAHPAE@Z ENDP		; Get_Current_Total_Max_Bullets
_TEXT	ENDS
PUBLIC	?Get_Position_Max_Bullets@@YAHPAEH@Z		; Get_Position_Max_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Max_Bullets@@YAHPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Max_Bullets@@YAHPAEH@Z PROC		; Get_Position_Max_Bullets, COMDAT

; 414  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Positi@4
	test	esi, esi
	je	SHORT $LN4@Get_Positi@4

; 417  : 	}
; 418  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 419  : 	if (!o2)

	test	eax, eax

; 420  : 	{
; 421  : 		return 0;

	je	SHORT $LN4@Get_Positi@4

; 422  : 	}
; 423  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 424  : 	if (!o3)

	test	eax, eax

; 425  : 	{
; 426  : 		return 0;

	je	SHORT $LN4@Get_Positi@4

; 427  : 	}
; 428  : 	WeaponBagClass *w = o3->WeaponBag;
; 429  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN4@Get_Positi@4
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Positi@4

; 430  : 	{
; 431  : 		WeaponClass *wc = w->Vector[position];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 432  : 		return wc->WeaponDef->ClipSize.Get();

	mov	ecx, DWORD PTR [ecx]
	add	ecx, 116				; 00000074H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Positi@4:

; 415  : 	{
; 416  : 		return 0;

	xor	eax, eax
	pop	esi

; 433  : 	}
; 434  : 	return 0;
; 435  : }

	ret	0
?Get_Position_Max_Bullets@@YAHPAEH@Z ENDP		; Get_Position_Max_Bullets
_TEXT	ENDS
PUBLIC	?Get_Position_Clip_Max_Bullets@@YAHPAEH@Z	; Get_Position_Clip_Max_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Clip_Max_Bullets@@YAHPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Clip_Max_Bullets@@YAHPAEH@Z PROC		; Get_Position_Clip_Max_Bullets, COMDAT

; 439  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Positi@5
	test	esi, esi
	je	SHORT $LN4@Get_Positi@5

; 442  : 	}
; 443  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 444  : 	if (!o2)

	test	eax, eax

; 445  : 	{
; 446  : 		return 0;

	je	SHORT $LN4@Get_Positi@5

; 447  : 	}
; 448  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 449  : 	if (!o3)

	test	eax, eax

; 450  : 	{
; 451  : 		return 0;

	je	SHORT $LN4@Get_Positi@5

; 452  : 	}
; 453  : 	WeaponBagClass *w = o3->WeaponBag;
; 454  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN4@Get_Positi@5
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Positi@5

; 455  : 	{
; 456  : 		WeaponClass *wc = w->Vector[position];

	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [edx+ecx*4]

; 457  : 		return wc->WeaponDef->MaxInventoryRounds.Get();

	mov	ecx, DWORD PTR [ecx]
	add	ecx, 132				; 00000084H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
$LN4@Get_Positi@5:

; 440  : 	{
; 441  : 		return 0;

	xor	eax, eax
	pop	esi

; 458  : 	}
; 459  : 	return 0;
; 460  : }

	ret	0
?Get_Position_Clip_Max_Bullets@@YAHPAEH@Z ENDP		; Get_Position_Clip_Max_Bullets
_TEXT	ENDS
PUBLIC	?Get_Position_Total_Max_Bullets@@YAHPAEH@Z	; Get_Position_Total_Max_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Total_Max_Bullets@@YAHPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Total_Max_Bullets@@YAHPAEH@Z PROC		; Get_Position_Total_Max_Bullets, COMDAT

; 464  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN14@Get_Positi@6
	test	esi, esi
	je	SHORT $LN14@Get_Positi@6

; 465  : 	{
; 466  : 		return 0;
; 467  : 	}
; 468  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 469  : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN4@Get_Positi@6
$LN14@Get_Positi@6:

; 470  : 	{
; 471  : 		return 0;

	xor	eax, eax
	pop	esi

; 489  : 	}
; 490  : 	return 0;
; 491  : }

	ret	0
$LN4@Get_Positi@6:

; 472  : 	}
; 473  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 474  : 	if (!o3)

	test	eax, eax

; 475  : 	{
; 476  : 		return 0;

	je	SHORT $LN14@Get_Positi@6

; 477  : 	}
; 478  : 	WeaponBagClass *w = o3->WeaponBag;
; 479  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN14@Get_Positi@6
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN14@Get_Positi@6

; 480  : 	{
; 481  : 		WeaponClass *wc = w->Vector[position];

	mov	edx, DWORD PTR [eax+8]
	mov	esi, DWORD PTR [edx+ecx*4]

; 482  : 		int bullets = wc->WeaponDef->ClipSize.Get();

	mov	ecx, DWORD PTR [esi]
	push	edi
	add	ecx, 116				; 00000074H
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 483  : 		int clipbullets = wc->WeaponDef->MaxInventoryRounds.Get();

	mov	ecx, DWORD PTR [esi]
	add	ecx, 132				; 00000084H
	mov	edi, eax
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 484  : 		if (clipbullets < 0)

	test	eax, eax
	jge	SHORT $LN1@Get_Positi@6
	pop	edi

; 485  : 		{
; 486  : 			return -1;

	or	eax, -1
	pop	esi

; 489  : 	}
; 490  : 	return 0;
; 491  : }

	ret	0
$LN1@Get_Positi@6:

; 487  : 		}
; 488  : 		return bullets+clipbullets;

	add	eax, edi
	pop	edi
	pop	esi

; 489  : 	}
; 490  : 	return 0;
; 491  : }

	ret	0
?Get_Position_Total_Max_Bullets@@YAHPAEH@Z ENDP		; Get_Position_Total_Max_Bullets
_TEXT	ENDS
PUBLIC	?Get_Max_Bullets@@YAHPAEPBD@Z			; Get_Max_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Max_Bullets@@YAHPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Get_Max_Bullets@@YAHPAEPBD@Z PROC			; Get_Max_Bullets, COMDAT

; 495  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN28@Get_Max_Bu
	test	esi, esi
	je	SHORT $LN28@Get_Max_Bu

; 496  : 	{
; 497  : 		return 0;
; 498  : 	}
; 499  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 500  : 	if (!o2)

	test	eax, eax

; 501  : 	{
; 502  : 		return 0;

	je	SHORT $LN28@Get_Max_Bu

; 503  : 	}
; 504  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 505  : 	if (!o3)

	test	eax, eax

; 506  : 	{
; 507  : 		return 0;

	je	SHORT $LN28@Get_Max_Bu
	push	ebx
	push	ebp
	push	edi

; 508  : 	}
; 509  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 510  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 511  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN3@Get_Max_Bu
	mov	ebp, DWORD PTR _weapon$[esp+12]
	npad	2
$LL5@Get_Max_Bu:
	mov	ecx, DWORD PTR [edi+8]

; 512  : 	{
; 513  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Get_Max_Bu

; 514  : 		{
; 515  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN21@Get_Max_Bu
$LN4@Get_Max_Bu:

; 511  : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Get_Max_Bu
$LN3@Get_Max_Bu:
	pop	edi
	pop	ebp
	pop	ebx
$LN28@Get_Max_Bu:

; 519  : 			}
; 520  : 		}
; 521  : 	}
; 522  : 	return 0;

	xor	eax, eax
	pop	esi

; 523  : }

	ret	0
$LN21@Get_Max_Bu:

; 516  : 			{
; 517  : 				WeaponClass *wc = w->Vector[i];

	mov	eax, DWORD PTR [edi+8]
	mov	esi, DWORD PTR [eax+esi*4]

; 518  : 				return wc->WeaponDef->ClipSize.Get();

	mov	ecx, DWORD PTR [esi]
	pop	edi
	pop	ebp
	pop	ebx
	add	ecx, 116				; 00000074H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
?Get_Max_Bullets@@YAHPAEPBD@Z ENDP			; Get_Max_Bullets
_TEXT	ENDS
PUBLIC	?Get_Max_Clip_Bullets@@YAHPAEPBD@Z		; Get_Max_Clip_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Max_Clip_Bullets@@YAHPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Get_Max_Clip_Bullets@@YAHPAEPBD@Z PROC			; Get_Max_Clip_Bullets, COMDAT

; 527  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN28@Get_Max_Cl
	test	esi, esi
	je	SHORT $LN28@Get_Max_Cl

; 528  : 	{
; 529  : 		return 0;
; 530  : 	}
; 531  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 532  : 	if (!o2)

	test	eax, eax

; 533  : 	{
; 534  : 		return 0;

	je	SHORT $LN28@Get_Max_Cl

; 535  : 	}
; 536  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 537  : 	if (!o3)

	test	eax, eax

; 538  : 	{
; 539  : 		return 0;

	je	SHORT $LN28@Get_Max_Cl
	push	ebx
	push	ebp
	push	edi

; 540  : 	}
; 541  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 542  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 543  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN3@Get_Max_Cl
	mov	ebp, DWORD PTR _weapon$[esp+12]
	npad	2
$LL5@Get_Max_Cl:
	mov	ecx, DWORD PTR [edi+8]

; 544  : 	{
; 545  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Get_Max_Cl

; 546  : 		{
; 547  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN21@Get_Max_Cl
$LN4@Get_Max_Cl:

; 543  : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Get_Max_Cl
$LN3@Get_Max_Cl:
	pop	edi
	pop	ebp
	pop	ebx
$LN28@Get_Max_Cl:

; 551  : 			}
; 552  : 		}
; 553  : 	}
; 554  : 	return 0;

	xor	eax, eax
	pop	esi

; 555  : }

	ret	0
$LN21@Get_Max_Cl:

; 548  : 			{
; 549  : 				WeaponClass *wc = w->Vector[i];

	mov	eax, DWORD PTR [edi+8]
	mov	esi, DWORD PTR [eax+esi*4]

; 550  : 				return wc->WeaponDef->MaxInventoryRounds.Get();

	mov	ecx, DWORD PTR [esi]
	pop	edi
	pop	ebp
	pop	ebx
	add	ecx, 132				; 00000084H
	pop	esi
	jmp	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
?Get_Max_Clip_Bullets@@YAHPAEPBD@Z ENDP			; Get_Max_Clip_Bullets
_TEXT	ENDS
PUBLIC	?Get_Max_Total_Bullets@@YAHPAEPBD@Z		; Get_Max_Total_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Max_Total_Bullets@@YAHPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Get_Max_Total_Bullets@@YAHPAEPBD@Z PROC		; Get_Max_Total_Bullets, COMDAT

; 559  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN27@Get_Max_To
	test	esi, esi
	je	SHORT $LN27@Get_Max_To

; 560  : 	{
; 561  : 		return 0;
; 562  : 	}
; 563  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 564  : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN8@Get_Max_To
$LN27@Get_Max_To:

; 565  : 	{
; 566  : 		return 0;

	xor	eax, eax
	pop	esi

; 593  : }

	ret	0
$LN8@Get_Max_To:

; 567  : 	}
; 568  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 569  : 	if (!o3)

	test	eax, eax

; 570  : 	{
; 571  : 		return 0;

	je	SHORT $LN27@Get_Max_To
	push	ebx
	push	ebp
	push	edi

; 572  : 	}
; 573  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 574  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 575  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN4@Get_Max_To
	mov	ebp, DWORD PTR _weapon$[esp+12]
$LL6@Get_Max_To:
	mov	ecx, DWORD PTR [edi+8]

; 576  : 	{
; 577  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN5@Get_Max_To

; 578  : 		{
; 579  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN22@Get_Max_To
$LN5@Get_Max_To:

; 575  : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL6@Get_Max_To
$LN4@Get_Max_To:
	pop	edi
	pop	ebp
	pop	ebx

; 589  : 			}
; 590  : 		}
; 591  : 	}
; 592  : 	return 0;

	xor	eax, eax
	pop	esi

; 593  : }

	ret	0
$LN22@Get_Max_To:

; 580  : 			{
; 581  : 				WeaponClass *wc = w->Vector[i];

	mov	eax, DWORD PTR [edi+8]
	mov	esi, DWORD PTR [eax+esi*4]

; 582  : 				int bullets = wc->WeaponDef->ClipSize.Get();

	mov	ecx, DWORD PTR [esi]
	add	ecx, 116				; 00000074H
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 583  : 				int clipbullets = wc->WeaponDef->MaxInventoryRounds.Get();

	mov	ecx, DWORD PTR [esi]
	add	ecx, 132				; 00000084H
	mov	edi, eax
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get

; 584  : 				if (clipbullets < 0)

	test	eax, eax
	jge	SHORT $LN1@Get_Max_To
	pop	edi
	pop	ebp
	pop	ebx

; 585  : 				{
; 586  : 					return -1;

	or	eax, -1
	pop	esi

; 593  : }

	ret	0
$LN1@Get_Max_To:

; 587  : 				}
; 588  : 				return bullets+clipbullets;

	add	eax, edi
	pop	edi
	pop	ebp
	pop	ebx
	pop	esi

; 593  : }

	ret	0
?Get_Max_Total_Bullets@@YAHPAEPBD@Z ENDP		; Get_Max_Total_Bullets
_TEXT	ENDS
PUBLIC	?Set_Current_Bullets@@YAXPAEH@Z			; Set_Current_Bullets
EXTRN	?Set@IntDataSafeClass@@QAG_NAAH@Z:PROC		; IntDataSafeClass::Set
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Current_Bullets@@YAXPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_bullets$ = 12						; size = 4
?Set_Current_Bullets@@YAXPAEH@Z PROC			; Set_Current_Bullets, COMDAT

; 597  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Set_Curren
	test	esi, esi
	je	SHORT $LN4@Set_Curren

; 598  : 	{
; 599  : 		return;
; 600  : 	}
; 601  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 602  : 	if (!o2)

	test	eax, eax
	je	SHORT $LN4@Set_Curren

; 603  : 	{
; 604  : 		return;
; 605  : 	}
; 606  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 607  : 	if (!o3)

	test	eax, eax
	je	SHORT $LN4@Set_Curren

; 608  : 	{
; 609  : 		return;
; 610  : 	}
; 611  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 612  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Set_Curren
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Set_Curren

; 613  : 	{
; 614  : 		w->Vector[w->current]->InventoryBullets.Set(bullets);

	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+ecx*4]
	lea	edx, DWORD PTR _bullets$[esp]
	push	edx
	add	ecx, 40					; 00000028H
	push	ecx
	call	?Set@IntDataSafeClass@@QAG_NAAH@Z	; IntDataSafeClass::Set
$LN4@Set_Curren:
	pop	esi

; 615  : 	}
; 616  : }

	ret	0
?Set_Current_Bullets@@YAXPAEH@Z ENDP			; Set_Current_Bullets
_TEXT	ENDS
PUBLIC	?Set_Current_Clip_Bullets@@YAXPAEH@Z		; Set_Current_Clip_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Current_Clip_Bullets@@YAXPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_bullets$ = 12						; size = 4
?Set_Current_Clip_Bullets@@YAXPAEH@Z PROC		; Set_Current_Clip_Bullets, COMDAT

; 620  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Set_Curren@2
	test	esi, esi
	je	SHORT $LN4@Set_Curren@2

; 621  : 	{
; 622  : 		return;
; 623  : 	}
; 624  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 625  : 	if (!o2)

	test	eax, eax
	je	SHORT $LN4@Set_Curren@2

; 626  : 	{
; 627  : 		return;
; 628  : 	}
; 629  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 630  : 	if (!o3)

	test	eax, eax
	je	SHORT $LN4@Set_Curren@2

; 631  : 	{
; 632  : 		return;
; 633  : 	}
; 634  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 635  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Set_Curren@2
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Set_Curren@2

; 636  : 	{
; 637  : 		w->Vector[w->current]->LoadedBullets.Set(bullets);

	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+ecx*4]
	lea	edx, DWORD PTR _bullets$[esp]
	push	edx
	add	ecx, 36					; 00000024H
	push	ecx
	call	?Set@IntDataSafeClass@@QAG_NAAH@Z	; IntDataSafeClass::Set
$LN4@Set_Curren@2:
	pop	esi

; 638  : 	}
; 639  : }

	ret	0
?Set_Current_Clip_Bullets@@YAXPAEH@Z ENDP		; Set_Current_Clip_Bullets
_TEXT	ENDS
PUBLIC	?Set_Position_Bullets@@YAXPAEHH@Z		; Set_Position_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Position_Bullets@@YAXPAEHH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
_bullets$ = 16						; size = 4
?Set_Position_Bullets@@YAXPAEHH@Z PROC			; Set_Position_Bullets, COMDAT

; 643  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Set_Positi
	test	esi, esi
	je	SHORT $LN4@Set_Positi

; 644  : 	{
; 645  : 		return;
; 646  : 	}
; 647  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 648  : 	if (!o2)

	test	eax, eax
	je	SHORT $LN4@Set_Positi

; 649  : 	{
; 650  : 		return;
; 651  : 	}
; 652  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 653  : 	if (!o3)

	test	eax, eax
	je	SHORT $LN4@Set_Positi

; 654  : 	{
; 655  : 		return;
; 656  : 	}
; 657  : 	WeaponBagClass *w = o3->WeaponBag;
; 658  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN4@Set_Positi
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Set_Positi

; 659  : 	{
; 660  : 		w->Vector[position]->InventoryBullets.Set(bullets);

	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+ecx*4]
	lea	edx, DWORD PTR _bullets$[esp]
	push	edx
	add	ecx, 40					; 00000028H
	push	ecx
	call	?Set@IntDataSafeClass@@QAG_NAAH@Z	; IntDataSafeClass::Set
$LN4@Set_Positi:
	pop	esi

; 661  : 	}
; 662  : }

	ret	0
?Set_Position_Bullets@@YAXPAEHH@Z ENDP			; Set_Position_Bullets
_TEXT	ENDS
PUBLIC	?Set_Position_Clip_Bullets@@YAXPAEHH@Z		; Set_Position_Clip_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Position_Clip_Bullets@@YAXPAEHH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
_bullets$ = 16						; size = 4
?Set_Position_Clip_Bullets@@YAXPAEHH@Z PROC		; Set_Position_Clip_Bullets, COMDAT

; 666  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Set_Positi@2
	test	esi, esi
	je	SHORT $LN4@Set_Positi@2

; 667  : 	{
; 668  : 		return;
; 669  : 	}
; 670  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 671  : 	if (!o2)

	test	eax, eax
	je	SHORT $LN4@Set_Positi@2

; 672  : 	{
; 673  : 		return;
; 674  : 	}
; 675  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 676  : 	if (!o3)

	test	eax, eax
	je	SHORT $LN4@Set_Positi@2

; 677  : 	{
; 678  : 		return;
; 679  : 	}
; 680  : 	WeaponBagClass *w = o3->WeaponBag;
; 681  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN4@Set_Positi@2
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Set_Positi@2

; 682  : 	{
; 683  : 		w->Vector[position]->LoadedBullets.Set(bullets);

	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+ecx*4]
	lea	edx, DWORD PTR _bullets$[esp]
	push	edx
	add	ecx, 36					; 00000024H
	push	ecx
	call	?Set@IntDataSafeClass@@QAG_NAAH@Z	; IntDataSafeClass::Set
$LN4@Set_Positi@2:
	pop	esi

; 684  : 	}
; 685  : }

	ret	0
?Set_Position_Clip_Bullets@@YAXPAEHH@Z ENDP		; Set_Position_Clip_Bullets
_TEXT	ENDS
PUBLIC	?Set_Bullets@@YAXPAEPBDH@Z			; Set_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Bullets@@YAXPAEPBDH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
_bullets$ = 16						; size = 4
?Set_Bullets@@YAXPAEPBDH@Z PROC				; Set_Bullets, COMDAT

; 689  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN8@Set_Bullet
	test	esi, esi
	je	SHORT $LN8@Set_Bullet

; 690  : 	{
; 691  : 		return;
; 692  : 	}
; 693  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 694  : 	if (!o2)

	test	eax, eax
	je	SHORT $LN8@Set_Bullet

; 695  : 	{
; 696  : 		return;
; 697  : 	}
; 698  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 699  : 	if (!o3)

	test	eax, eax
	je	SHORT $LN8@Set_Bullet
	push	ebx
	push	edi

; 700  : 	{
; 701  : 		return;
; 702  : 	}
; 703  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 704  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 705  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN22@Set_Bullet
	push	ebp
	mov	ebp, DWORD PTR _weapon$[esp+12]
	npad	2
$LL5@Set_Bullet:
	mov	ecx, DWORD PTR [edi+8]

; 706  : 	{
; 707  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Set_Bullet

; 708  : 		{
; 709  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN4@Set_Bullet

; 710  : 			{
; 711  : 				w->Vector[i]->InventoryBullets.Set(bullets);

	mov	ecx, DWORD PTR [edi+8]
	mov	edx, DWORD PTR [ecx+esi*4]
	lea	eax, DWORD PTR _bullets$[esp+12]
	push	eax
	add	edx, 40					; 00000028H
	push	edx
	call	?Set@IntDataSafeClass@@QAG_NAAH@Z	; IntDataSafeClass::Set
$LN4@Set_Bullet:
	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Set_Bullet
	pop	ebp
$LN22@Set_Bullet:
	pop	edi
	pop	ebx
$LN8@Set_Bullet:
	pop	esi

; 712  : 			}
; 713  : 		}
; 714  : 	}
; 715  : }

	ret	0
?Set_Bullets@@YAXPAEPBDH@Z ENDP				; Set_Bullets
_TEXT	ENDS
PUBLIC	?Set_Clip_Bullets@@YAXPAEPBDH@Z			; Set_Clip_Bullets
; Function compile flags: /Ogtpy
;	COMDAT ?Set_Clip_Bullets@@YAXPAEPBDH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
_bullets$ = 16						; size = 4
?Set_Clip_Bullets@@YAXPAEPBDH@Z PROC			; Set_Clip_Bullets, COMDAT

; 719  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN8@Set_Clip_B
	test	esi, esi
	je	SHORT $LN8@Set_Clip_B

; 720  : 	{
; 721  : 		return;
; 722  : 	}
; 723  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 724  : 	if (!o2)

	test	eax, eax
	je	SHORT $LN8@Set_Clip_B

; 725  : 	{
; 726  : 		return;
; 727  : 	}
; 728  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 729  : 	if (!o3)

	test	eax, eax
	je	SHORT $LN8@Set_Clip_B
	push	ebx
	push	edi

; 730  : 	{
; 731  : 		return;
; 732  : 	}
; 733  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 734  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 735  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN22@Set_Clip_B
	push	ebp
	mov	ebp, DWORD PTR _weapon$[esp+12]
	npad	2
$LL5@Set_Clip_B:
	mov	ecx, DWORD PTR [edi+8]

; 736  : 	{
; 737  : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Set_Clip_B

; 738  : 		{
; 739  : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	jne	SHORT $LN4@Set_Clip_B

; 740  : 			{
; 741  : 				w->Vector[i]->LoadedBullets.Set(bullets);

	mov	ecx, DWORD PTR [edi+8]
	mov	edx, DWORD PTR [ecx+esi*4]
	lea	eax, DWORD PTR _bullets$[esp+12]
	push	eax
	add	edx, 36					; 00000024H
	push	edx
	call	?Set@IntDataSafeClass@@QAG_NAAH@Z	; IntDataSafeClass::Set
$LN4@Set_Clip_B:
	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Set_Clip_B
	pop	ebp
$LN22@Set_Clip_B:
	pop	edi
	pop	ebx
$LN8@Set_Clip_B:
	pop	esi

; 742  : 			}
; 743  : 		}
; 744  : 	}
; 745  : }

	ret	0
?Set_Clip_Bullets@@YAXPAEPBDH@Z ENDP			; Set_Clip_Bullets
_TEXT	ENDS
PUBLIC	?Get_Current_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAE_N@Z ; Get_Current_Weapon_Ammo_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAE_N@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_PrimaryFire$ = 12					; size = 1
?Get_Current_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAE_N@Z PROC ; Get_Current_Weapon_Ammo_Definition, COMDAT

; 804  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren@7
	test	esi, esi
	je	SHORT $LN4@Get_Curren@7

; 807  : 	}
; 808  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 809  : 	if (!o2)

	test	eax, eax

; 810  : 	{
; 811  : 		return 0;

	je	SHORT $LN4@Get_Curren@7

; 812  : 	}
; 813  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 814  : 	if (!o3)

	test	eax, eax

; 815  : 	{
; 816  : 		return 0;

	je	SHORT $LN4@Get_Curren@7

; 817  : 	}
; 818  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 819  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren@7
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren@7
	pop	esi

; 820  : 	{
; 821  : 		return GetWeapAmmoDef(w->Vector[w->current],PrimaryFire);

	mov	eax, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR [eax+ecx*4]
	mov	DWORD PTR _obj$[esp-4], ecx
	jmp	?GetWeapAmmoDef@@YAPAVAmmoDefinitionClass@@PAVWeaponClass@@_N@Z ; GetWeapAmmoDef
$LN4@Get_Curren@7:

; 805  : 	{
; 806  : 		return 0;

	xor	eax, eax
	pop	esi

; 822  : 	}
; 823  : 	return 0;
; 824  : }

	ret	0
?Get_Current_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAE_N@Z ENDP ; Get_Current_Weapon_Ammo_Definition
_TEXT	ENDS
PUBLIC	?Get_Position_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAEH_N@Z ; Get_Position_Weapon_Ammo_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAEH_N@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
_PrimaryFire$ = 16					; size = 1
?Get_Position_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAEH_N@Z PROC ; Get_Position_Weapon_Ammo_Definition, COMDAT

; 828  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Positi@7
	test	esi, esi
	je	SHORT $LN4@Get_Positi@7

; 831  : 	}
; 832  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 833  : 	if (!o2)

	test	eax, eax

; 834  : 	{
; 835  : 		return 0;

	je	SHORT $LN4@Get_Positi@7

; 836  : 	}
; 837  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 838  : 	if (!o3)

	test	eax, eax

; 839  : 	{
; 840  : 		return 0;

	je	SHORT $LN4@Get_Positi@7

; 841  : 	}
; 842  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 843  : 	if ((position < w->Vector.Count()) && (w->Vector[w->current]))

	mov	ecx, DWORD PTR _position$[esp]
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Positi@7
	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	cmp	DWORD PTR [eax+edx*4], 0
	lea	eax, DWORD PTR [eax+edx*4]
	je	SHORT $LN4@Get_Positi@7

; 844  : 	{
; 845  : 		return GetWeapAmmoDef(w->Vector[w->current],PrimaryFire);

	mov	ecx, DWORD PTR _PrimaryFire$[esp]
	mov	edx, DWORD PTR [eax]
	push	ecx
	push	edx
	call	?GetWeapAmmoDef@@YAPAVAmmoDefinitionClass@@PAVWeaponClass@@_N@Z ; GetWeapAmmoDef
	add	esp, 8
	pop	esi

; 846  : 	}
; 847  : 	return 0;
; 848  : }

	ret	0
$LN4@Get_Positi@7:

; 829  : 	{
; 830  : 		return 0;

	xor	eax, eax
	pop	esi

; 846  : 	}
; 847  : 	return 0;
; 848  : }

	ret	0
?Get_Position_Weapon_Ammo_Definition@@YAPAVAmmoDefinitionClass@@PAEH_N@Z ENDP ; Get_Position_Weapon_Ammo_Definition
_TEXT	ENDS
PUBLIC	?Get_Current_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAE@Z ; Get_Current_Weapon_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAE@Z PROC ; Get_Current_Weapon_Definition, COMDAT

; 852  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren@8
	test	esi, esi
	je	SHORT $LN4@Get_Curren@8

; 855  : 	}
; 856  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 857  : 	if (!o2)

	test	eax, eax

; 858  : 	{
; 859  : 		return 0;

	je	SHORT $LN4@Get_Curren@8

; 860  : 	}
; 861  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 862  : 	if (!o3)

	test	eax, eax

; 863  : 	{
; 864  : 		return 0;

	je	SHORT $LN4@Get_Curren@8

; 865  : 	}
; 866  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 867  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren@8
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren@8

; 868  : 	{
; 869  : 		return *(WeaponDefinitionClass **)w->Vector[w->current];

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

; 870  : 	}
; 871  : 	return 0;
; 872  : }

	ret	0
$LN4@Get_Curren@8:

; 853  : 	{
; 854  : 		return 0;

	xor	eax, eax
	pop	esi

; 870  : 	}
; 871  : 	return 0;
; 872  : }

	ret	0
?Get_Current_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAE@Z ENDP ; Get_Current_Weapon_Definition
_TEXT	ENDS
PUBLIC	?Get_Position_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAEH@Z ; Get_Position_Weapon_Definition
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAEH@Z PROC ; Get_Position_Weapon_Definition, COMDAT

; 881  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Positi@8
	test	esi, esi
	je	SHORT $LN4@Get_Positi@8

; 884  : 	}
; 885  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 886  : 	if (!o2)

	test	eax, eax

; 887  : 	{
; 888  : 		return 0;

	je	SHORT $LN4@Get_Positi@8

; 889  : 	}
; 890  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 891  : 	if (!o3)

	test	eax, eax

; 892  : 	{
; 893  : 		return 0;

	je	SHORT $LN4@Get_Positi@8

; 894  : 	}
; 895  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 896  : 	if ((position < w->Vector.Count()) && (w->Vector[w->current]))

	mov	ecx, DWORD PTR _position$[esp]
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Positi@8
	mov	edx, DWORD PTR [eax+28]
	mov	eax, DWORD PTR [eax+8]
	cmp	DWORD PTR [eax+edx*4], 0
	lea	eax, DWORD PTR [eax+edx*4]
	je	SHORT $LN4@Get_Positi@8

; 897  : 	{
; 898  : 		return *(WeaponDefinitionClass **)w->Vector[w->current];

	mov	ecx, DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx]
	pop	esi

; 899  : 	}
; 900  : 	return 0;
; 901  : }

	ret	0
$LN4@Get_Positi@8:

; 882  : 	{
; 883  : 		return 0;

	xor	eax, eax
	pop	esi

; 899  : 	}
; 900  : 	return 0;
; 901  : }

	ret	0
?Get_Position_Weapon_Definition@@YAPAVWeaponDefinitionClass@@PAEH@Z ENDP ; Get_Position_Weapon_Definition
_TEXT	ENDS
PUBLIC	?Get_Current_Weapon_Style@@YAHPAE@Z		; Get_Current_Weapon_Style
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Weapon_Style@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Weapon_Style@@YAHPAE@Z PROC		; Get_Current_Weapon_Style, COMDAT

; 932  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren@9
	test	esi, esi
	je	SHORT $LN4@Get_Curren@9

; 935  : 	}
; 936  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 937  : 	if (!o2)

	test	eax, eax

; 938  : 	{
; 939  : 		return 0;

	je	SHORT $LN4@Get_Curren@9

; 940  : 	}
; 941  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 942  : 	if (!o3)

	test	eax, eax

; 943  : 	{
; 944  : 		return 0;

	je	SHORT $LN4@Get_Curren@9

; 945  : 	}
; 946  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 947  : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren@9
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren@9

; 948  : 	{
; 949  : 		WeaponClass *wc = w->Vector[w->current];

	mov	edx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [edx+ecx*4]

; 950  : 		return wc->WeaponDef->Style;

	mov	ecx, DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx+28]
	pop	esi

; 951  : 	}
; 952  : 	return 0;
; 953  : }

	ret	0
$LN4@Get_Curren@9:

; 933  : 	{
; 934  : 		return 0;

	xor	eax, eax
	pop	esi

; 951  : 	}
; 952  : 	return 0;
; 953  : }

	ret	0
?Get_Current_Weapon_Style@@YAHPAE@Z ENDP		; Get_Current_Weapon_Style
_TEXT	ENDS
PUBLIC	?Get_Position_Weapon_Style@@YAHPAEH@Z		; Get_Position_Weapon_Style
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Position_Weapon_Style@@YAHPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Position_Weapon_Style@@YAHPAEH@Z PROC		; Get_Position_Weapon_Style, COMDAT

; 957  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Positi@9
	test	esi, esi
	je	SHORT $LN4@Get_Positi@9

; 960  : 	}
; 961  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 962  : 	if (!o2)

	test	eax, eax

; 963  : 	{
; 964  : 		return 0;

	je	SHORT $LN4@Get_Positi@9

; 965  : 	}
; 966  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 967  : 	if (!o3)

	test	eax, eax

; 968  : 	{
; 969  : 		return 0;

	je	SHORT $LN4@Get_Positi@9

; 970  : 	}
; 971  : 	WeaponBagClass *w = o3->WeaponBag;
; 972  : 	if ((position) && (position < w->Vector.Count()))

	mov	ecx, DWORD PTR _position$[esp]
	test	ecx, ecx
	mov	eax, DWORD PTR [eax+1968]
	je	SHORT $LN4@Get_Positi@9
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Positi@9

; 973  : 	{
; 974  : 		WeaponClass *wc = w->Vector[position];

	mov	edx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [edx+ecx*4]

; 975  : 		return wc->WeaponDef->Style;

	mov	ecx, DWORD PTR [eax]
	mov	eax, DWORD PTR [ecx+28]
	pop	esi

; 976  : 	}
; 977  : 	return 0;
; 978  : }

	ret	0
$LN4@Get_Positi@9:

; 958  : 	{
; 959  : 		return 0;

	xor	eax, eax
	pop	esi

; 976  : 	}
; 977  : 	return 0;
; 978  : }

	ret	0
?Get_Position_Weapon_Style@@YAHPAEH@Z ENDP		; Get_Position_Weapon_Style
_TEXT	ENDS
PUBLIC	?Get_Weapon_Style@@YAHPAEPBD@Z			; Get_Weapon_Style
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Weapon_Style@@YAHPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Get_Weapon_Style@@YAHPAEPBD@Z PROC			; Get_Weapon_Style, COMDAT

; 982  : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN26@Get_Weapon@2
	test	esi, esi
	je	SHORT $LN26@Get_Weapon@2

; 983  : 	{
; 984  : 		return 0;
; 985  : 	}
; 986  : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 987  : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN7@Get_Weapon@2
$LN26@Get_Weapon@2:

; 988  : 	{
; 989  : 		return 0;

	xor	eax, eax
	pop	esi

; 1010 : }

	ret	0
$LN7@Get_Weapon@2:

; 990  : 	}
; 991  : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 992  : 	if (!o3)

	test	eax, eax

; 993  : 	{
; 994  : 		return 0;

	je	SHORT $LN26@Get_Weapon@2
	push	ebx
	push	ebp
	push	edi

; 995  : 	}
; 996  : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 997  : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 998  : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN3@Get_Weapon@2
	mov	ebp, DWORD PTR _weapon$[esp+12]
$LL5@Get_Weapon@2:
	mov	ecx, DWORD PTR [edi+8]

; 999  : 	{
; 1000 : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Get_Weapon@2

; 1001 : 		{
; 1002 : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN21@Get_Weapon@2
$LN4@Get_Weapon@2:

; 998  : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Get_Weapon@2
$LN3@Get_Weapon@2:
	pop	edi
	pop	ebp
	pop	ebx

; 1006 : 			}
; 1007 : 		}
; 1008 : 	}
; 1009 : 	return 0;

	xor	eax, eax
	pop	esi

; 1010 : }

	ret	0
$LN21@Get_Weapon@2:

; 1003 : 			{
; 1004 : 				WeaponClass *wc = w->Vector[i];

	mov	eax, DWORD PTR [edi+8]
	mov	ecx, DWORD PTR [eax+esi*4]

; 1005 : 				return wc->WeaponDef->Style;

	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+28]
	pop	edi
	pop	ebp
	pop	ebx
	pop	esi

; 1010 : }

	ret	0
?Get_Weapon_Style@@YAHPAEPBD@Z ENDP			; Get_Weapon_Style
_TEXT	ENDS
PUBLIC	?Disarm_Beacons@@YAXH@Z				; Disarm_Beacons
EXTRN	?Get_Player_ID@@YAJPAE@Z:PROC			; Get_Player_ID
; Function compile flags: /Ogtpy
;	COMDAT ?Disarm_Beacons@@YAXH@Z
_TEXT	SEGMENT
_PlayerID$ = 8						; size = 4
?Disarm_Beacons@@YAXH@Z PROC				; Disarm_Beacons, COMDAT

; 1033 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	edi
	mov	edi, DWORD PTR [eax+4]

; 1034 : 	while (x)

	test	edi, edi
	je	$LN3@Disarm_Bea@2
	push	ebx
	mov	ebx, DWORD PTR _PlayerID$[esp+4]
	push	esi
	npad	9
$LL4@Disarm_Bea@2:

; 1035 : 	{
; 1036 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1037 : 		if (o && As_ScriptableGameObj(o) && As_BeaconGameObj(o))

	test	esi, esi
	je	$LN15@Disarm_Bea@2
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	$LN15@Disarm_Bea@2
	push	esi
	call	?As_BeaconGameObj@@YAPAEPAE@Z		; As_BeaconGameObj
	add	esp, 4
	test	eax, eax
	je	$LN15@Disarm_Bea@2

; 1038 : 		{
; 1039 : 			if (Get_Player_ID(Get_Beacon_Planter(o)) == PlayerID)

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN9@Disarm_Bea@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+36]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN9@Disarm_Bea@2
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+144]
	call	eax
	test	eax, eax
	je	SHORT $LN9@Disarm_Bea@2
	mov	ecx, eax
	call	?Get_Beacon_Owner@BeaconGameObj@@QAEPAEXZ ; BeaconGameObj::Get_Beacon_Owner
	jmp	SHORT $LN11@Disarm_Bea@2
$LN9@Disarm_Bea@2:
	xor	eax, eax
$LN11@Disarm_Bea@2:
	push	eax
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID
	add	esp, 4
	cmp	eax, ebx
	jne	SHORT $LN15@Disarm_Bea@2

; 1040 : 			{
; 1041 : 				Disarm_Beacon(o);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN15@Disarm_Bea@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+36]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN15@Disarm_Bea@2
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+144]
	call	eax
	test	eax, eax
	je	SHORT $LN15@Disarm_Bea@2
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+88]
	push	0
	call	eax
$LN15@Disarm_Bea@2:

; 1042 : 			}
; 1043 : 		}
; 1044 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL4@Disarm_Bea@2
	pop	esi
	pop	ebx
$LN3@Disarm_Bea@2:
	pop	edi

; 1045 : 	}
; 1046 : }

	ret	0
?Disarm_Beacons@@YAXH@Z ENDP				; Disarm_Beacons
_TEXT	ENDS
PUBLIC	?Disarm_All_Proxy_C4@@YAXH@Z			; Disarm_All_Proxy_C4
; Function compile flags: /Ogtpy
;	COMDAT ?Disarm_All_Proxy_C4@@YAXH@Z
_TEXT	SEGMENT
_PlayerID$ = 8						; size = 4
?Disarm_All_Proxy_C4@@YAXH@Z PROC			; Disarm_All_Proxy_C4, COMDAT

; 1128 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	edi
	mov	edi, DWORD PTR [eax+4]

; 1129 : 	while (x)

	test	edi, edi
	je	$LN3@Disarm_All
	push	ebx
	mov	ebx, DWORD PTR _PlayerID$[esp+4]
	push	esi
$LL4@Disarm_All:

; 1130 : 	{
; 1131 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1132 : 		if (o && As_ScriptableGameObj(o) && As_C4GameObj(o) && Get_C4_Mode(o) == 3)

	test	esi, esi
	je	SHORT $LN1@Disarm_All
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Disarm_All
	push	esi
	call	?As_C4GameObj@@YAPAEPAE@Z		; As_C4GameObj
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Disarm_All
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN1@Disarm_All
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+36]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN1@Disarm_All
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax
	test	eax, eax
	je	SHORT $LN1@Disarm_All
	mov	ecx, DWORD PTR [eax+1992]
	add	ecx, 140				; 0000008cH
	call	?Get@IntDataSafeClass@@QAEHXZ		; IntDataSafeClass::Get
	cmp	eax, 3
	jne	SHORT $LN1@Disarm_All

; 1133 : 		{
; 1134 : 			if (Get_Player_ID(Get_C4_Planter(o)) == PlayerID)

	push	esi
	call	?Get_C4_Planter@@YAPAEPAE@Z		; Get_C4_Planter
	push	eax
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID
	add	esp, 8
	cmp	eax, ebx
	jne	SHORT $LN1@Disarm_All

; 1135 : 			{
; 1136 : 				Disarm_C4(o);

	push	esi
	call	?Disarm_C4@@YAXPAE@Z			; Disarm_C4
	add	esp, 4
$LN1@Disarm_All:

; 1137 : 			}
; 1138 : 		}
; 1139 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL4@Disarm_All
	pop	esi
	pop	ebx
$LN3@Disarm_All:
	pop	edi

; 1140 : 	}
; 1141 : }

	ret	0
?Disarm_All_Proxy_C4@@YAXH@Z ENDP			; Disarm_All_Proxy_C4
_TEXT	ENDS
PUBLIC	?Disarm_All_C4@@YAXH@Z				; Disarm_All_C4
; Function compile flags: /Ogtpy
;	COMDAT ?Disarm_All_C4@@YAXH@Z
_TEXT	SEGMENT
_PlayerID$ = 8						; size = 4
?Disarm_All_C4@@YAXH@Z PROC				; Disarm_All_C4, COMDAT

; 1145 : 	GenericSLNode *x = BaseGameObjList->HeadNode;

	mov	eax, DWORD PTR ?BaseGameObjList@@3PAV?$SList@E@@A ; BaseGameObjList
	push	edi
	mov	edi, DWORD PTR [eax+4]

; 1146 : 	while (x)

	test	edi, edi
	je	$LN3@Disarm_All@2
	push	ebx
	mov	ebx, DWORD PTR _PlayerID$[esp+4]
	push	esi
	npad	9
$LL4@Disarm_All@2:

; 1147 : 	{
; 1148 : 		GameObject *o = (GameObject *)x->NodeData;

	mov	esi, DWORD PTR [edi+4]

; 1149 : 		if (o && As_ScriptableGameObj(o) && As_C4GameObj(o))

	test	esi, esi
	je	$LN16@Disarm_All@2
	push	esi
	call	?As_ScriptableGameObj@@YAPAEPAE@Z	; As_ScriptableGameObj
	add	esp, 4
	test	eax, eax
	je	$LN16@Disarm_All@2
	push	esi
	call	?As_C4GameObj@@YAPAEPAE@Z		; As_C4GameObj
	add	esp, 4
	test	eax, eax
	je	$LN16@Disarm_All@2

; 1150 : 		{
; 1151 : 			if (Get_Player_ID(Get_C4_Planter(o)) == PlayerID)

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN10@Disarm_All@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+36]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN10@Disarm_All@2
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax
	test	eax, eax
	je	SHORT $LN10@Disarm_All@2
	mov	eax, DWORD PTR [eax+1980]
	test	eax, eax
	je	SHORT $LN10@Disarm_All@2
	mov	eax, DWORD PTR [eax+4]
	jmp	SHORT $LN12@Disarm_All@2
$LN10@Disarm_All@2:
	xor	eax, eax
$LN12@Disarm_All@2:
	push	eax
	call	?Get_Player_ID@@YAJPAE@Z		; Get_Player_ID
	add	esp, 4
	cmp	eax, ebx
	jne	SHORT $LN16@Disarm_All@2

; 1152 : 			{
; 1153 : 				Disarm_C4(o);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	edx, DWORD PTR [ecx+108]
	push	esi
	call	edx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN16@Disarm_All@2
	mov	eax, DWORD PTR [esi]
	mov	edx, DWORD PTR [eax+36]
	mov	ecx, esi
	call	edx
	test	eax, eax
	je	SHORT $LN16@Disarm_All@2
	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+140]
	call	eax
	test	eax, eax
	je	SHORT $LN16@Disarm_All@2
	mov	ecx, eax
	call	?Defuse@C4GameObj@@QAEXXZ		; C4GameObj::Defuse
$LN16@Disarm_All@2:

; 1154 : 			}
; 1155 : 		}
; 1156 : 		x = x->NodeNext;

	mov	edi, DWORD PTR [edi]
	test	edi, edi
	jne	$LL4@Disarm_All@2
	pop	esi
	pop	ebx
$LN3@Disarm_All@2:
	pop	edi

; 1157 : 	}
; 1158 : }

	ret	0
?Disarm_All_C4@@YAXH@Z ENDP				; Disarm_All_C4
_TEXT	ENDS
PUBLIC	?Get_Current_Weapon@@YAPBDPAE@Z			; Get_Current_Weapon
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Current_Weapon@@YAPBDPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Current_Weapon@@YAPBDPAE@Z PROC			; Get_Current_Weapon, COMDAT

; 1162 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Curren@10
	test	esi, esi
	je	SHORT $LN4@Get_Curren@10

; 1165 : 	}
; 1166 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1167 : 	if (!o2)

	test	eax, eax

; 1168 : 	{
; 1169 : 		return 0;

	je	SHORT $LN4@Get_Curren@10

; 1170 : 	}
; 1171 : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 1172 : 	if (!o3)

	test	eax, eax

; 1173 : 	{
; 1174 : 		return 0;

	je	SHORT $LN4@Get_Curren@10

; 1175 : 	}
; 1176 : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 1177 : 	if ((w->current) && (w->current < w->Vector.Count()))

	mov	ecx, DWORD PTR [eax+28]
	test	ecx, ecx
	je	SHORT $LN4@Get_Curren@10
	cmp	ecx, DWORD PTR [eax+20]
	jge	SHORT $LN4@Get_Curren@10

; 1178 : 	{
; 1179 : 		return w->Vector[w->current]->WeaponDef->Get_Name();

	mov	edx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [edx+ecx*4]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	pop	esi
	jmp	eax
$LN4@Get_Curren@10:

; 1163 : 	{
; 1164 : 		return 0;

	xor	eax, eax
	pop	esi

; 1180 : 	}
; 1181 : 	return 0;
; 1182 : }

	ret	0
?Get_Current_Weapon@@YAPBDPAE@Z ENDP			; Get_Current_Weapon
_TEXT	ENDS
PUBLIC	?Get_Weapon_Count@@YAHPAE@Z			; Get_Weapon_Count
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Weapon_Count@@YAHPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Get_Weapon_Count@@YAHPAE@Z PROC			; Get_Weapon_Count, COMDAT

; 1186 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN3@Get_Weapon@3
	test	esi, esi
	je	SHORT $LN3@Get_Weapon@3

; 1189 : 	}
; 1190 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1191 : 	if (!o2)

	test	eax, eax

; 1192 : 	{
; 1193 : 		return 0;

	je	SHORT $LN3@Get_Weapon@3

; 1194 : 	}
; 1195 : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 1196 : 	if (!o3)

	test	eax, eax

; 1197 : 	{
; 1198 : 		return 0;

	je	SHORT $LN3@Get_Weapon@3

; 1199 : 	}
; 1200 : 	WeaponBagClass *w = o3->WeaponBag;
; 1201 : 	return w->Vector.Count();

	mov	ecx, DWORD PTR [eax+1968]
	mov	eax, DWORD PTR [ecx+20]
	pop	esi

; 1202 : }

	ret	0
$LN3@Get_Weapon@3:

; 1187 : 	{
; 1188 : 		return 0;

	xor	eax, eax
	pop	esi

; 1202 : }

	ret	0
?Get_Weapon_Count@@YAHPAE@Z ENDP			; Get_Weapon_Count
_TEXT	ENDS
PUBLIC	?Get_Weapon@@YAPBDPAEH@Z			; Get_Weapon
; Function compile flags: /Ogtpy
;	COMDAT ?Get_Weapon@@YAPBDPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_position$ = 12						; size = 4
?Get_Weapon@@YAPBDPAEH@Z PROC				; Get_Weapon, COMDAT

; 1206 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN4@Get_Weapon@4
	test	esi, esi
	je	SHORT $LN4@Get_Weapon@4

; 1209 : 	}
; 1210 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1211 : 	if (!o2)

	test	eax, eax

; 1212 : 	{
; 1213 : 		return 0;

	je	SHORT $LN4@Get_Weapon@4

; 1214 : 	}
; 1215 : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 1216 : 	if (!o3)

	test	eax, eax

; 1217 : 	{
; 1218 : 		return 0;

	je	SHORT $LN4@Get_Weapon@4

; 1219 : 	}
; 1220 : 	WeaponBagClass *w = o3->WeaponBag;

	mov	eax, DWORD PTR [eax+1968]

; 1221 : 	if (w->Vector[position])

	mov	ecx, DWORD PTR [eax+8]
	mov	edx, DWORD PTR _position$[esp]
	cmp	DWORD PTR [ecx+edx*4], 0
	lea	eax, DWORD PTR [ecx+edx*4]
	je	SHORT $LN4@Get_Weapon@4

; 1222 : 	{
; 1223 : 		return (w->Vector[position]->WeaponDef->Get_Name());

	mov	eax, DWORD PTR [eax]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx+48]
	pop	esi
	jmp	eax
$LN4@Get_Weapon@4:

; 1207 : 	{
; 1208 : 		return 0;

	xor	eax, eax
	pop	esi

; 1224 : 	}
; 1225 : 	return 0;
; 1226 : }

	ret	0
?Get_Weapon@@YAPBDPAEH@Z ENDP				; Get_Weapon
_TEXT	ENDS
PUBLIC	?Has_Weapon@@YA_NPAEPBD@Z			; Has_Weapon
; Function compile flags: /Ogtpy
;	COMDAT ?Has_Weapon@@YA_NPAEPBD@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_weapon$ = 12						; size = 4
?Has_Weapon@@YA_NPAEPBD@Z PROC				; Has_Weapon, COMDAT

; 1230 : 	if (!Commands->Get_ID(obj) || !obj)

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	ecx, DWORD PTR [eax+108]
	push	esi
	mov	esi, DWORD PTR _obj$[esp]
	push	esi
	call	ecx
	add	esp, 4
	test	eax, eax
	je	SHORT $LN24@Has_Weapon
	test	esi, esi
	je	SHORT $LN24@Has_Weapon

; 1231 : 	{
; 1232 : 		return 0;
; 1233 : 	}
; 1234 : 	PhysicalGameObj *o2 = ((ScriptableGameObj *)obj)->As_PhysicalGameObj();

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

; 1235 : 	if (!o2)

	test	eax, eax
	jne	SHORT $LN7@Has_Weapon
$LN24@Has_Weapon:

; 1236 : 	{
; 1237 : 		return 0;

	xor	al, al
	pop	esi

; 1257 : }

	ret	0
$LN7@Has_Weapon:

; 1238 : 	}
; 1239 : 	ArmedGameObj *o3 = o2->As_ArmedGameObj();

	mov	edx, DWORD PTR [eax]
	mov	ecx, eax
	mov	eax, DWORD PTR [edx+148]
	call	eax

; 1240 : 	if (!o3)

	test	eax, eax

; 1241 : 	{
; 1242 : 		return 0;

	je	SHORT $LN24@Has_Weapon
	push	ebx
	push	ebp
	push	edi

; 1243 : 	}
; 1244 : 	WeaponBagClass *w = o3->WeaponBag;

	mov	edi, DWORD PTR [eax+1968]

; 1245 : 	int x = w->Vector.Count();

	mov	ebx, DWORD PTR [edi+20]

; 1246 : 	for (int i = 0;i < x;i++)

	xor	esi, esi
	test	ebx, ebx
	jle	SHORT $LN3@Has_Weapon
	mov	ebp, DWORD PTR _weapon$[esp+12]
$LL5@Has_Weapon:
	mov	ecx, DWORD PTR [edi+8]

; 1247 : 	{
; 1248 : 		if (w->Vector[i])

	cmp	DWORD PTR [ecx+esi*4], 0
	lea	eax, DWORD PTR [ecx+esi*4]
	je	SHORT $LN4@Has_Weapon

; 1249 : 		{
; 1250 : 			if (!_stricmp(w->Vector[i]->WeaponDef->Get_Name(),weapon))

	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [edx]
	mov	eax, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax+48]
	push	ebp
	call	edx
	push	eax
	call	__stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $LN19@Has_Weapon
$LN4@Has_Weapon:

; 1246 : 	for (int i = 0;i < x;i++)

	add	esi, 1
	cmp	esi, ebx
	jl	SHORT $LL5@Has_Weapon
$LN3@Has_Weapon:
	pop	edi
	pop	ebp
	pop	ebx

; 1253 : 			}
; 1254 : 		}
; 1255 : 	}
; 1256 : 	return false;

	xor	al, al
	pop	esi

; 1257 : }

	ret	0
$LN19@Has_Weapon:
	pop	edi
	pop	ebp
	pop	ebx

; 1251 : 			{
; 1252 : 				return true;

	mov	al, 1
	pop	esi

; 1257 : }

	ret	0
?Has_Weapon@@YA_NPAEPBD@Z ENDP				; Has_Weapon
_TEXT	ENDS
PUBLIC	?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ; std::_DebugHeapAllocator<char>::deallocate
; Function compile flags: /Ogtpy
; File c:\program files\microsoft visual studio 8\vc\include\xdebug
;	COMDAT ?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z
_TEXT	SEGMENT
__Ptr$ = 8						; size = 4
___formal$ = 12						; size = 4
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z PROC ; std::_DebugHeapAllocator<char>::deallocate, COMDAT
; _this$ = ecx

; 102  : 		_DELETE_CRT_VEC(_Ptr);

	mov	eax, DWORD PTR __Ptr$[esp-4]
	test	eax, eax
	je	SHORT $LN3@deallocate
	push	eax
	call	_free
	pop	ecx
$LN3@deallocate:

; 103  : 		}

	ret	8
?deallocate@?$_DebugHeapAllocator@D@std@@QAEXPADI@Z ENDP ; std::_DebugHeapAllocator<char>::deallocate
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@XZ		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@XZ
_TEXT	SEGMENT
??0?$_DebugHeapAllocator@D@std@@QAE@XZ PROC		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	0
??0?$_DebugHeapAllocator@D@std@@QAE@XZ ENDP		; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
PUBLIC	??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
; Function compile flags: /Ogtpy
;	COMDAT ??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z
_TEXT	SEGMENT
___that$ = 8						; size = 4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z PROC	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>, COMDAT
; _this$ = ecx
	mov	eax, ecx
	ret	4
??0?$_DebugHeapAllocator@D@std@@QAE@ABV01@@Z ENDP	; std::_DebugHeapAllocator<char>::_DebugHeapAllocator<char>
_TEXT	ENDS
END
