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

	TITLE	d:\# METIN2\work in progress\source client\Client\EterBase\FileBase.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@GHFPNOJB@bad?5allocation?$AA@		; `string'
PUBLIC	?_Value@?$_Is_swap_move@U_Swap_move_tag@std@@@std@@2_NB ; std::_Is_swap_move<std::_Swap_move_tag>::_Value
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	?hexfloat@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::hexfloat
PUBLIC	?boolalpha@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::boolalpha
PUBLIC	?_Stdio@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::_Stdio
PUBLIC	?adjustfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::adjustfield
PUBLIC	?basefield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::basefield
PUBLIC	?floatfield@?$_Iosb@H@std@@2W4_Fmtflags@12@B	; std::_Iosb<int>::floatfield
PUBLIC	?goodbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::goodbit
PUBLIC	?eofbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::eofbit
PUBLIC	?failbit@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::failbit
PUBLIC	?badbit@?$_Iosb@H@std@@2W4_Iostate@12@B		; std::_Iosb<int>::badbit
PUBLIC	?_Hardfail@?$_Iosb@H@std@@2W4_Iostate@12@B	; std::_Iosb<int>::_Hardfail
PUBLIC	?in@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::in
PUBLIC	?out@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::out
PUBLIC	?ate@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::ate
PUBLIC	?app@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::app
PUBLIC	?trunc@?$_Iosb@H@std@@2W4_Openmode@12@B		; std::_Iosb<int>::trunc
PUBLIC	?_Nocreate@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Nocreate
PUBLIC	?_Noreplace@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::_Noreplace
PUBLIC	?binary@?$_Iosb@H@std@@2W4_Openmode@12@B	; std::_Iosb<int>::binary
PUBLIC	?beg@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::beg
PUBLIC	?cur@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::cur
PUBLIC	?end@?$_Iosb@H@std@@2W4_Seekdir@12@B		; std::_Iosb<int>::end
PUBLIC	?value@?$integral_constant@_N$0A@@tr1@std@@2_NB	; std::tr1::integral_constant<bool,0>::value
PUBLIC	?value@?$integral_constant@_N$00@tr1@std@@2_NB	; std::tr1::integral_constant<bool,1>::value
;	COMDAT ?value@?$integral_constant@_N$00@tr1@std@@2_NB
CONST	SEGMENT
?value@?$integral_constant@_N$00@tr1@std@@2_NB DB 01H	; std::tr1::integral_constant<bool,1>::value
CONST	ENDS
;	COMDAT ?value@?$integral_constant@_N$0A@@tr1@std@@2_NB
CONST	SEGMENT
?value@?$integral_constant@_N$0A@@tr1@std@@2_NB DB 00H	; std::tr1::integral_constant<bool,0>::value
CONST	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 ?hexfloat@?$_Iosb@H@std@@2W4_Fmtflags@12@B
CONST	SEGMENT
?hexfloat@?$_Iosb@H@std@@2W4_Fmtflags@12@B DD 03000H	; std::_Iosb<int>::hexfloat
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
;	COMDAT ?_Value@?$_Is_swap_move@U_Swap_move_tag@std@@@std@@2_NB
CONST	SEGMENT
?_Value@?$_Is_swap_move@U_Swap_move_tag@std@@@std@@2_NB DB 01H ; std::_Is_swap_move<std::_Swap_move_tag>::_Value
CONST	ENDS
PUBLIC	??_7CFileBase@@6B@				; CFileBase::`vftable'
PUBLIC	??0CFileBase@@QAE@XZ				; CFileBase::CFileBase
PUBLIC	??_R4CFileBase@@6B@				; CFileBase::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVCFileBase@@@8				; CFileBase `RTTI Type Descriptor'
PUBLIC	??_R3CFileBase@@8				; CFileBase::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CFileBase@@8				; CFileBase::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CFileBase@@8			; CFileBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	?Write@CFileBase@@UAEHPBXH@Z			; CFileBase::Write
EXTRN	??_7type_info@@6B@:QWORD			; type_info::`vftable'
EXTRN	??_ECFileBase@@UAEPAXI@Z:PROC			; CFileBase::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@CFileBase@@8
; File d:\# metin2\work in progress\source client\client\eterbase\filebase.cpp
rdata$r	SEGMENT
??_R1A@?0A@EA@CFileBase@@8 DD FLAT:??_R0?AVCFileBase@@@8 ; CFileBase::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CFileBase@@8
rdata$r	ENDS
;	COMDAT ??_R2CFileBase@@8
rdata$r	SEGMENT
??_R2CFileBase@@8 DD FLAT:??_R1A@?0A@EA@CFileBase@@8	; CFileBase::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3CFileBase@@8
rdata$r	SEGMENT
??_R3CFileBase@@8 DD 00H				; CFileBase::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2CFileBase@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCFileBase@@@8
_DATA	SEGMENT
??_R0?AVCFileBase@@@8 DD FLAT:??_7type_info@@6B@	; CFileBase `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCFileBase@@', 00H
_DATA	ENDS
;	COMDAT ??_R4CFileBase@@6B@
rdata$r	SEGMENT
??_R4CFileBase@@6B@ DD 00H				; CFileBase::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCFileBase@@@8
	DD	FLAT:??_R3CFileBase@@8
rdata$r	ENDS
;	COMDAT ??_7CFileBase@@6B@
CONST	SEGMENT
??_7CFileBase@@6B@ DD FLAT:??_R4CFileBase@@6B@		; CFileBase::`vftable'
	DD	FLAT:??_ECFileBase@@UAEPAXI@Z
	DD	FLAT:?Write@CFileBase@@UAEHPBXH@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0CFileBase@@QAE@XZ
_TEXT	SEGMENT
??0CFileBase@@QAE@XZ PROC				; CFileBase::CFileBase, COMDAT
; _this$ = ecx

; 5    : {

  00000	8b c1		 mov	 eax, ecx
  00002	33 c9		 xor	 ecx, ecx
  00004	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CFileBase@@6B@
  0000a	89 88 10 01 00
	00		 mov	 DWORD PTR [eax+272], ecx
  00010	89 88 14 01 00
	00		 mov	 DWORD PTR [eax+276], ecx

; 6    : }

  00016	c3		 ret	 0
??0CFileBase@@QAE@XZ ENDP				; CFileBase::CFileBase
_TEXT	ENDS
PUBLIC	?GetFileName@CFileBase@@QAEPADXZ		; CFileBase::GetFileName
; Function compile flags: /Ogtpy
;	COMDAT ?GetFileName@CFileBase@@QAEPADXZ
_TEXT	SEGMENT
?GetFileName@CFileBase@@QAEPADXZ PROC			; CFileBase::GetFileName, COMDAT
; _this$ = ecx

; 15   : 	return m_filename;

  00000	8d 41 08	 lea	 eax, DWORD PTR [ecx+8]

; 16   : }

  00003	c3		 ret	 0
?GetFileName@CFileBase@@QAEPADXZ ENDP			; CFileBase::GetFileName
_TEXT	ENDS
PUBLIC	?Close@CFileBase@@QAEXXZ			; CFileBase::Close
EXTRN	__imp__CloseHandle@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Close@CFileBase@@QAEXXZ
_TEXT	SEGMENT
?Close@CFileBase@@QAEXXZ PROC				; CFileBase::Close, COMDAT
; _this$ = ecx

; 25   : {

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 26   : 	if (m_hFile)

  00003	8b 86 10 01 00
	00		 mov	 eax, DWORD PTR [esi+272]
  00009	85 c0		 test	 eax, eax
  0000b	74 11		 je	 SHORT $LN1@Close

; 27   : 	{
; 28   : 		CloseHandle(m_hFile);	

  0000d	50		 push	 eax
  0000e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CloseHandle@4

; 29   : 		m_hFile = NULL;

  00014	c7 86 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [esi+272], 0
$LN1@Close:
  0001e	5e		 pop	 esi

; 30   : 	}
; 31   : }

  0001f	c3		 ret	 0
?Close@CFileBase@@QAEXXZ ENDP				; CFileBase::Close
_TEXT	ENDS
PUBLIC	?Size@CFileBase@@QAEKXZ				; CFileBase::Size
; Function compile flags: /Ogtpy
;	COMDAT ?Size@CFileBase@@QAEKXZ
_TEXT	SEGMENT
?Size@CFileBase@@QAEKXZ PROC				; CFileBase::Size, COMDAT
; _this$ = ecx

; 73   : 	return (m_dwSize);

  00000	8b 81 14 01 00
	00		 mov	 eax, DWORD PTR [ecx+276]

; 74   : }

  00006	c3		 ret	 0
?Size@CFileBase@@QAEKXZ ENDP				; CFileBase::Size
_TEXT	ENDS
PUBLIC	?SeekCur@CFileBase@@QAEXK@Z			; CFileBase::SeekCur
EXTRN	__imp__SetFilePointer@16:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?SeekCur@CFileBase@@QAEXK@Z
_TEXT	SEGMENT
_size$ = 8						; size = 4
?SeekCur@CFileBase@@QAEXK@Z PROC			; CFileBase::SeekCur, COMDAT
; _this$ = ecx

; 78   : 	SetFilePointer(m_hFile, size, NULL, FILE_CURRENT);

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _size$[esp-4]
  00004	8b 89 10 01 00
	00		 mov	 ecx, DWORD PTR [ecx+272]
  0000a	6a 01		 push	 1
  0000c	6a 00		 push	 0
  0000e	50		 push	 eax
  0000f	51		 push	 ecx
  00010	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetFilePointer@16

; 79   : }

  00016	c2 04 00	 ret	 4
?SeekCur@CFileBase@@QAEXK@Z ENDP			; CFileBase::SeekCur
_TEXT	ENDS
PUBLIC	?Seek@CFileBase@@QAEXK@Z			; CFileBase::Seek
; Function compile flags: /Ogtpy
;	COMDAT ?Seek@CFileBase@@QAEXK@Z
_TEXT	SEGMENT
_offset$ = 8						; size = 4
?Seek@CFileBase@@QAEXK@Z PROC				; CFileBase::Seek, COMDAT
; _this$ = ecx

; 83   : 	if (offset > m_dwSize)

  00000	8b 91 14 01 00
	00		 mov	 edx, DWORD PTR [ecx+276]
  00006	8b 44 24 04	 mov	 eax, DWORD PTR _offset$[esp-4]
  0000a	3b c2		 cmp	 eax, edx
  0000c	76 02		 jbe	 SHORT $LN1@Seek

; 84   : 		offset = m_dwSize;

  0000e	8b c2		 mov	 eax, edx
$LN1@Seek:

; 85   : 
; 86   : 	SetFilePointer(m_hFile, offset, NULL, FILE_BEGIN);

  00010	6a 00		 push	 0
  00012	6a 00		 push	 0
  00014	50		 push	 eax
  00015	8b 81 10 01 00
	00		 mov	 eax, DWORD PTR [ecx+272]
  0001b	50		 push	 eax
  0001c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetFilePointer@16

; 87   : }

  00022	c2 04 00	 ret	 4
?Seek@CFileBase@@QAEXK@Z ENDP				; CFileBase::Seek
_TEXT	ENDS
PUBLIC	?GetPosition@CFileBase@@QAEKXZ			; CFileBase::GetPosition
; Function compile flags: /Ogtpy
;	COMDAT ?GetPosition@CFileBase@@QAEKXZ
_TEXT	SEGMENT
?GetPosition@CFileBase@@QAEKXZ PROC			; CFileBase::GetPosition, COMDAT
; _this$ = ecx

; 91   : 	return SetFilePointer(m_hFile, 0, NULL, FILE_CURRENT);

  00000	8b 81 10 01 00
	00		 mov	 eax, DWORD PTR [ecx+272]
  00006	6a 01		 push	 1
  00008	6a 00		 push	 0
  0000a	6a 00		 push	 0
  0000c	50		 push	 eax
  0000d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetFilePointer@16

; 92   : }

  00013	c3		 ret	 0
?GetPosition@CFileBase@@QAEKXZ ENDP			; CFileBase::GetPosition
_TEXT	ENDS
EXTRN	__imp__GetFileSize@8:PROC
EXTRN	__imp__WriteFile@20:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Write@CFileBase@@UAEHPBXH@Z
_TEXT	SEGMENT
_src$ = 8						; size = 4
_dwUseless$ = 12					; size = 4
_bytes$ = 12						; size = 4
?Write@CFileBase@@UAEHPBXH@Z PROC			; CFileBase::Write, COMDAT
; _this$ = ecx

; 96   : 	DWORD dwUseless;
; 97   : 	BOOL ret = WriteFile(m_hFile, src, bytes, &dwUseless, NULL);

  00000	8b 54 24 04	 mov	 edx, DWORD PTR _src$[esp-4]
  00004	56		 push	 esi
  00005	6a 00		 push	 0
  00007	8b f1		 mov	 esi, ecx
  00009	8b 4c 24 10	 mov	 ecx, DWORD PTR _bytes$[esp+4]
  0000d	8d 44 24 10	 lea	 eax, DWORD PTR _dwUseless$[esp+4]
  00011	50		 push	 eax
  00012	8b 86 10 01 00
	00		 mov	 eax, DWORD PTR [esi+272]
  00018	51		 push	 ecx
  00019	52		 push	 edx
  0001a	50		 push	 eax
  0001b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WriteFile@20

; 98   : 	
; 99   : 	if (!ret)

  00021	85 c0		 test	 eax, eax
  00023	75 04		 jne	 SHORT $LN1@Write
  00025	5e		 pop	 esi

; 104  : }

  00026	c2 08 00	 ret	 8
$LN1@Write:

; 100  : 		return false;
; 101  : 
; 102  : 	m_dwSize = GetFileSize(m_hFile, NULL);

  00029	8b 8e 10 01 00
	00		 mov	 ecx, DWORD PTR [esi+272]
  0002f	6a 00		 push	 0
  00031	51		 push	 ecx
  00032	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetFileSize@8
  00038	89 86 14 01 00
	00		 mov	 DWORD PTR [esi+276], eax

; 103  : 	return true;

  0003e	b8 01 00 00 00	 mov	 eax, 1
  00043	5e		 pop	 esi

; 104  : }

  00044	c2 08 00	 ret	 8
?Write@CFileBase@@UAEHPBXH@Z ENDP			; CFileBase::Write
_TEXT	ENDS
PUBLIC	?Read@CFileBase@@QAEHPAXH@Z			; CFileBase::Read
EXTRN	__imp__ReadFile@20:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Read@CFileBase@@QAEHPAXH@Z
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_dwUseless$ = 12					; size = 4
_bytes$ = 12						; size = 4
?Read@CFileBase@@QAEHPAXH@Z PROC			; CFileBase::Read, COMDAT
; _this$ = ecx

; 108  : 	DWORD dwUseless;
; 109  : 	return ReadFile(m_hFile, dest, bytes, &dwUseless, NULL);

  00000	8b 54 24 08	 mov	 edx, DWORD PTR _bytes$[esp-4]
  00004	8b 89 10 01 00
	00		 mov	 ecx, DWORD PTR [ecx+272]
  0000a	6a 00		 push	 0
  0000c	8d 44 24 0c	 lea	 eax, DWORD PTR _dwUseless$[esp]
  00010	50		 push	 eax
  00011	8b 44 24 0c	 mov	 eax, DWORD PTR _dest$[esp+4]
  00015	52		 push	 edx
  00016	50		 push	 eax
  00017	51		 push	 ecx
  00018	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ReadFile@20

; 110  : }

  0001e	c2 08 00	 ret	 8
?Read@CFileBase@@QAEHPAXH@Z ENDP			; CFileBase::Read
_TEXT	ENDS
PUBLIC	?IsNull@CFileBase@@QAEHXZ			; CFileBase::IsNull
; Function compile flags: /Ogtpy
;	COMDAT ?IsNull@CFileBase@@QAEHXZ
_TEXT	SEGMENT
?IsNull@CFileBase@@QAEHXZ PROC				; CFileBase::IsNull, COMDAT
; _this$ = ecx

; 114  : 	return !m_hFile ? true : false;

  00000	33 c0		 xor	 eax, eax
  00002	39 81 10 01 00
	00		 cmp	 DWORD PTR [ecx+272], eax
  00008	0f 94 c0	 sete	 al

; 115  : }

  0000b	c3		 ret	 0
?IsNull@CFileBase@@QAEHXZ ENDP				; CFileBase::IsNull
_TEXT	ENDS
PUBLIC	?Destroy@CFileBase@@QAEXXZ			; CFileBase::Destroy
; Function compile flags: /Ogtpy
;	COMDAT ?Destroy@CFileBase@@QAEXXZ
_TEXT	SEGMENT
?Destroy@CFileBase@@QAEXXZ PROC				; CFileBase::Destroy, COMDAT
; _this$ = ecx

; 19   : {

  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx

; 20   : 	Close();

  00003	e8 00 00 00 00	 call	 ?Close@CFileBase@@QAEXXZ ; CFileBase::Close

; 21   : 	m_dwSize = 0;

  00008	c7 86 14 01 00
	00 00 00 00 00	 mov	 DWORD PTR [esi+276], 0
  00012	5e		 pop	 esi

; 22   : }

  00013	c3		 ret	 0
?Destroy@CFileBase@@QAEXXZ ENDP				; CFileBase::Destroy
_TEXT	ENDS
PUBLIC	?Create@CFileBase@@QAEHPBDW4EFileMode@1@@Z	; CFileBase::Create
EXTRN	__imp__CreateFileA@28:PROC
EXTRN	_strncpy:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?Create@CFileBase@@QAEHPBDW4EFileMode@1@@Z
_TEXT	SEGMENT
_filename$ = 8						; size = 4
_mode$ = 12						; size = 4
?Create@CFileBase@@QAEHPBDW4EFileMode@1@@Z PROC		; CFileBase::Create, COMDAT
; _this$ = ecx

; 34   : {

  00000	55		 push	 ebp
  00001	56		 push	 esi
  00002	57		 push	 edi
  00003	8b f1		 mov	 esi, ecx

; 35   : 	Destroy();

  00005	e8 00 00 00 00	 call	 ?Destroy@CFileBase@@QAEXXZ ; CFileBase::Destroy

; 36   : 
; 37   : 	strncpy(m_filename, filename, MAX_PATH);

  0000a	8b 6c 24 10	 mov	 ebp, DWORD PTR _filename$[esp+8]
  0000e	68 04 01 00 00	 push	 260			; 00000104H
  00013	8d 46 08	 lea	 eax, DWORD PTR [esi+8]
  00016	55		 push	 ebp
  00017	50		 push	 eax
  00018	e8 00 00 00 00	 call	 _strncpy

; 38   : 
; 39   : 	DWORD dwMode, dwShareMode = FILE_SHARE_READ;
; 40   : 
; 41   : 	if (mode == FILEMODE_WRITE)

  0001d	8b 7c 24 20	 mov	 edi, DWORD PTR _mode$[esp+20]
  00021	83 c4 0c	 add	 esp, 12			; 0000000cH
  00024	b8 01 00 00 00	 mov	 eax, 1
  00029	83 ff 02	 cmp	 edi, 2
  0002c	75 0a		 jne	 SHORT $LN3@Create

; 42   : 	{
; 43   : 		dwMode = GENERIC_READ | GENERIC_WRITE;

  0002e	b9 00 00 00 c0	 mov	 ecx, -1073741824	; c0000000H

; 44   : 		dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;

  00033	8d 47 01	 lea	 eax, DWORD PTR [edi+1]

; 45   : 	}
; 46   : 	else

  00036	eb 05		 jmp	 SHORT $LN2@Create
$LN3@Create:

; 47   : 		dwMode = GENERIC_READ;

  00038	b9 00 00 00 80	 mov	 ecx, -2147483648	; 80000000H
$LN2@Create:

; 48   : 
; 49   : 	m_hFile = CreateFile(filename,					// name of the file
; 50   : 						 dwMode,					// desired access
; 51   : 						 dwShareMode,				// share mode
; 52   : 						 NULL,						// security attributes
; 53   : 						 mode == FILEMODE_READ ? OPEN_EXISTING : OPEN_ALWAYS, // creation disposition
; 54   : 						 FILE_ATTRIBUTE_NORMAL,		// flags and attr
; 55   : 						 NULL);						// template file

  0003d	33 d2		 xor	 edx, edx
  0003f	83 ff 01	 cmp	 edi, 1
  00042	0f 95 c2	 setne	 dl
  00045	6a 00		 push	 0
  00047	68 80 00 00 00	 push	 128			; 00000080H
  0004c	83 c2 03	 add	 edx, 3
  0004f	52		 push	 edx
  00050	6a 00		 push	 0
  00052	50		 push	 eax
  00053	51		 push	 ecx
  00054	55		 push	 ebp
  00055	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateFileA@28
  0005b	89 86 10 01 00
	00		 mov	 DWORD PTR [esi+272], eax

; 56   : 
; 57   : 	if (m_hFile != INVALID_HANDLE_VALUE)

  00061	83 f8 ff	 cmp	 eax, -1
  00064	74 1d		 je	 SHORT $LN1@Create

; 58   : 	{
; 59   : 		m_dwSize = GetFileSize(m_hFile, NULL);

  00066	6a 00		 push	 0
  00068	50		 push	 eax
  00069	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetFileSize@8

; 60   : 		m_mode = mode;

  0006f	89 7e 04	 mov	 DWORD PTR [esi+4], edi
  00072	5f		 pop	 edi
  00073	89 86 14 01 00
	00		 mov	 DWORD PTR [esi+276], eax
  00079	5e		 pop	 esi

; 61   : 		return true;

  0007a	b8 01 00 00 00	 mov	 eax, 1
  0007f	5d		 pop	 ebp

; 69   : }

  00080	c2 08 00	 ret	 8
$LN1@Create:
  00083	5f		 pop	 edi

; 62   : 	}
; 63   : 
; 64   : /*	char buf[256];
; 65   : 	GetCurrentDirectory(256, buf);
; 66   : 	DWORD dwErr = GetLastError();*/
; 67   : 	m_hFile = NULL;

  00084	c7 86 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [esi+272], 0
  0008e	5e		 pop	 esi

; 68   : 	return false;

  0008f	33 c0		 xor	 eax, eax
  00091	5d		 pop	 ebp

; 69   : }

  00092	c2 08 00	 ret	 8
?Create@CFileBase@@QAEHPBDW4EFileMode@1@@Z ENDP		; CFileBase::Create
_TEXT	ENDS
PUBLIC	??1CFileBase@@UAE@XZ				; CFileBase::~CFileBase
; Function compile flags: /Ogtpy
;	COMDAT ??1CFileBase@@UAE@XZ
_TEXT	SEGMENT
??1CFileBase@@UAE@XZ PROC				; CFileBase::~CFileBase, COMDAT
; _this$ = ecx

; 9    : {

  00000	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], OFFSET ??_7CFileBase@@6B@

; 10   : 	Destroy();

  00006	e9 00 00 00 00	 jmp	 ?Destroy@CFileBase@@QAEXXZ ; CFileBase::Destroy
??1CFileBase@@UAE@XZ ENDP				; CFileBase::~CFileBase
_TEXT	ENDS
EXTRN	??3@YAXPAX@Z:PROC				; operator delete
; Function compile flags: /Ogtpy
;	COMDAT ??_GCFileBase@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GCFileBase@@UAEPAXI@Z PROC				; CFileBase::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1CFileBase@@UAE@XZ	; CFileBase::~CFileBase
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 09		 je	 SHORT $LN4@scalar
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00015	83 c4 04	 add	 esp, 4
$LN4@scalar:
  00018	8b c6		 mov	 eax, esi
  0001a	5e		 pop	 esi
  0001b	c2 04 00	 ret	 4
??_GCFileBase@@UAEPAXI@Z ENDP				; CFileBase::`scalar deleting destructor'
_TEXT	ENDS
END
