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

	TITLE	d:\# METIN2\work in progress\source client\Client\EterBase\Debug.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
PUBLIC	?g_PopupHwnd@@3PAUHWND__@@A			; g_PopupHwnd
_BSS	SEGMENT
_isLogFile DD	01H DUP (?)
?g_PopupHwnd@@3PAUHWND__@@A DD 01H DUP (?)		; g_PopupHwnd
_gs_uLevel DD	01H DUP (?)
_BSS	ENDS
;	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
EXTRN	__localtime64:PROC
; Function compile flags: /Ogtpy
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\time.inl
;	COMDAT _localtime
_TEXT	SEGMENT
_localtime PROC						; COMDAT
; __Time$ = eax

; 116  : #pragma warning( push )
; 117  : #pragma warning( disable : 4996 )
; 118  :     return _localtime64(_Time);

  00000	50		 push	 eax
  00001	e8 00 00 00 00	 call	 __localtime64
  00006	83 c4 04	 add	 esp, 4

; 119  : #pragma warning( pop )
; 120  : }

  00009	c3		 ret	 0
_localtime ENDP
_TEXT	ENDS
EXTRN	__time64:PROC
; Function compile flags: /Ogtpy
;	COMDAT _time
_TEXT	SEGMENT
_time	PROC						; COMDAT
; __Time$ = eax

; 135  :     return _time64(_Time);

  00000	50		 push	 eax
  00001	e8 00 00 00 00	 call	 __time64
  00006	83 c4 04	 add	 esp, 4

; 136  : }

  00009	c3		 ret	 0
_time	ENDP
_TEXT	ENDS
PUBLIC	??_C@_07POILLFDI@log?4txt?$AA@			; `string'
PUBLIC	??_C@_01NOFIACDB@w?$AA@				; `string'
PUBLIC	?Initialize@CLogFile@@QAEXXZ			; CLogFile::Initialize
EXTRN	_fopen:PROC
;	COMDAT ??_C@_07POILLFDI@log?4txt?$AA@
; File d:\# metin2\work in progress\source client\client\eterbase\debug.cpp
CONST	SEGMENT
??_C@_07POILLFDI@log?4txt?$AA@ DB 'log.txt', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_01NOFIACDB@w?$AA@
CONST	SEGMENT
??_C@_01NOFIACDB@w?$AA@ DB 'w', 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Initialize@CLogFile@@QAEXXZ
_TEXT	SEGMENT
?Initialize@CLogFile@@QAEXXZ PROC			; CLogFile::Initialize, COMDAT
; _this$ = ecx

; 30   : 		{

  00000	56		 push	 esi

; 31   : 			m_fp = fopen("log.txt", "w");

  00001	68 00 00 00 00	 push	 OFFSET ??_C@_01NOFIACDB@w?$AA@
  00006	68 00 00 00 00	 push	 OFFSET ??_C@_07POILLFDI@log?4txt?$AA@
  0000b	8b f1		 mov	 esi, ecx
  0000d	e8 00 00 00 00	 call	 _fopen
  00012	83 c4 08	 add	 esp, 8
  00015	89 46 04	 mov	 DWORD PTR [esi+4], eax
  00018	5e		 pop	 esi

; 32   : 		}

  00019	c3		 ret	 0
?Initialize@CLogFile@@QAEXXZ ENDP			; CLogFile::Initialize
_TEXT	ENDS
PUBLIC	??_C@_0BO@IGAAHNNJ@?$CF02d?$CF02d?5?$CF02d?3?$CF02d?3?$CF05d?5?3?3?5?$CFs?$AA@ ; `string'
PUBLIC	?Write@CLogFile@@QAEXPBD@Z			; CLogFile::Write
EXTRN	_fflush:PROC
EXTRN	_fprintf:PROC
EXTRN	?ELTimer_GetMSec@@YAKXZ:PROC			; ELTimer_GetMSec
;	COMDAT ??_C@_0BO@IGAAHNNJ@?$CF02d?$CF02d?5?$CF02d?3?$CF02d?3?$CF05d?5?3?3?5?$CFs?$AA@
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\time.inl
CONST	SEGMENT
??_C@_0BO@IGAAHNNJ@?$CF02d?$CF02d?5?$CF02d?3?$CF02d?3?$CF05d?5?3?3?5?$CFs?$AA@ DB '%'
	DB	'02d%02d %02d:%02d:%05d :: %s', 00H		; `string'
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\debug.cpp
CONST	ENDS
;	COMDAT ?Write@CLogFile@@QAEXPBD@Z
_TEXT	SEGMENT
_ct$ = -44						; size = 8
_ctm$ = -36						; size = 36
_c_pszMsg$ = 8						; size = 4
?Write@CLogFile@@QAEXPBD@Z PROC				; CLogFile::Write, COMDAT
; _this$ = ecx

; 35   : 		{

  00000	83 ec 2c	 sub	 esp, 44			; 0000002cH
  00003	53		 push	 ebx
  00004	8b d9		 mov	 ebx, ecx

; 36   : 			if (!m_fp)

  00006	83 7b 04 00	 cmp	 DWORD PTR [ebx+4], 0
  0000a	74 70		 je	 SHORT $LN2@Write
  0000c	56		 push	 esi
  0000d	57		 push	 edi

; 37   : 				return;
; 38   : 
; 39   : 			time_t ct = time(0);

  0000e	6a 00		 push	 0
  00010	e8 00 00 00 00	 call	 __time64
  00015	89 44 24 10	 mov	 DWORD PTR _ct$[esp+60], eax

; 40   : 			struct tm ctm = *localtime(&ct);

  00019	8d 44 24 10	 lea	 eax, DWORD PTR _ct$[esp+60]
  0001d	50		 push	 eax
  0001e	89 54 24 18	 mov	 DWORD PTR _ct$[esp+68], edx
  00022	e8 00 00 00 00	 call	 __localtime64
  00027	8b f0		 mov	 esi, eax
  00029	b9 09 00 00 00	 mov	 ecx, 9
  0002e	8d 7c 24 1c	 lea	 edi, DWORD PTR _ctm$[esp+64]
  00032	f3 a5		 rep movsd

; 41   : 
; 42   : 			fprintf(m_fp, "%02d%02d %02d:%02d:%05d :: %s", 
; 43   : 				ctm.tm_mon + 1, 
; 44   : 				ctm.tm_mday,
; 45   : 				ctm.tm_hour,
; 46   : 				ctm.tm_min,
; 47   : 				ELTimer_GetMSec() % 60000,
; 48   : 				c_pszMsg);

  00034	8b 4c 24 44	 mov	 ecx, DWORD PTR _c_pszMsg$[esp+60]
  00038	83 c4 08	 add	 esp, 8
  0003b	51		 push	 ecx
  0003c	e8 00 00 00 00	 call	 ?ELTimer_GetMSec@@YAKXZ	; ELTimer_GetMSec
  00041	33 d2		 xor	 edx, edx
  00043	b9 60 ea 00 00	 mov	 ecx, 60000		; 0000ea60H
  00048	f7 f1		 div	 ecx
  0004a	8b 44 24 20	 mov	 eax, DWORD PTR _ctm$[esp+68]
  0004e	8b 4c 24 24	 mov	 ecx, DWORD PTR _ctm$[esp+72]
  00052	52		 push	 edx
  00053	8b 54 24 20	 mov	 edx, DWORD PTR _ctm$[esp+68]
  00057	52		 push	 edx
  00058	8b 54 24 30	 mov	 edx, DWORD PTR _ctm$[esp+84]
  0005c	50		 push	 eax
  0005d	8b 43 04	 mov	 eax, DWORD PTR [ebx+4]
  00060	51		 push	 ecx
  00061	42		 inc	 edx
  00062	52		 push	 edx
  00063	68 00 00 00 00	 push	 OFFSET ??_C@_0BO@IGAAHNNJ@?$CF02d?$CF02d?5?$CF02d?3?$CF02d?3?$CF05d?5?3?3?5?$CFs?$AA@
  00068	50		 push	 eax
  00069	e8 00 00 00 00	 call	 _fprintf

; 49   : 
; 50   : 			fflush(m_fp);

  0006e	8b 4b 04	 mov	 ecx, DWORD PTR [ebx+4]
  00071	51		 push	 ecx
  00072	e8 00 00 00 00	 call	 _fflush
  00077	83 c4 24	 add	 esp, 36			; 00000024H
  0007a	5f		 pop	 edi
  0007b	5e		 pop	 esi
$LN2@Write:
  0007c	5b		 pop	 ebx

; 51   : 		}

  0007d	83 c4 2c	 add	 esp, 44			; 0000002cH
  00080	c2 04 00	 ret	 4
?Write@CLogFile@@QAEXPBD@Z ENDP				; CLogFile::Write
_TEXT	ENDS
PUBLIC	?SetLogLevel@@YAXI@Z				; SetLogLevel
; Function compile flags: /Ogtpy
;	COMDAT ?SetLogLevel@@YAXI@Z
_TEXT	SEGMENT
_uLevel$ = 8						; size = 4
?SetLogLevel@@YAXI@Z PROC				; SetLogLevel, COMDAT

; 63   : 	gs_uLevel=uLevel;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _uLevel$[esp-4]
  00004	a3 00 00 00 00	 mov	 DWORD PTR _gs_uLevel, eax

; 64   : }

  00009	c3		 ret	 0
?SetLogLevel@@YAXI@Z ENDP				; SetLogLevel
_TEXT	ENDS
PUBLIC	??_C@_06GDENEHCP@CONIN$?$AA@			; `string'
PUBLIC	??_C@_01KDCPPGHE@r?$AA@				; `string'
PUBLIC	??_C@_07GPDNMNG@CONOUT$?$AA@			; `string'
PUBLIC	??_C@_01MCMALHOG@a?$AA@				; `string'
PUBLIC	?OpenConsoleWindow@@YAXXZ			; OpenConsoleWindow
EXTRN	_freopen:PROC
EXTRN	___iob_func:PROC
EXTRN	__imp__AllocConsole@0:PROC
;	COMDAT ??_C@_06GDENEHCP@CONIN$?$AA@
CONST	SEGMENT
??_C@_06GDENEHCP@CONIN$?$AA@ DB 'CONIN$', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_01KDCPPGHE@r?$AA@
CONST	SEGMENT
??_C@_01KDCPPGHE@r?$AA@ DB 'r', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_07GPDNMNG@CONOUT$?$AA@
CONST	SEGMENT
??_C@_07GPDNMNG@CONOUT$?$AA@ DB 'CONOUT$', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_01MCMALHOG@a?$AA@
CONST	SEGMENT
??_C@_01MCMALHOG@a?$AA@ DB 'a', 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?OpenConsoleWindow@@YAXXZ
_TEXT	SEGMENT
?OpenConsoleWindow@@YAXXZ PROC				; OpenConsoleWindow, COMDAT

; 322  : 	AllocConsole();

  00000	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__AllocConsole@0

; 323  : 
; 324  : 	freopen("CONOUT$", "a", stdout);

  00006	e8 00 00 00 00	 call	 ___iob_func
  0000b	83 c0 20	 add	 eax, 32			; 00000020H
  0000e	50		 push	 eax
  0000f	68 00 00 00 00	 push	 OFFSET ??_C@_01MCMALHOG@a?$AA@
  00014	68 00 00 00 00	 push	 OFFSET ??_C@_07GPDNMNG@CONOUT$?$AA@
  00019	e8 00 00 00 00	 call	 _freopen

; 325  : 	freopen("CONIN$", "r", stdin);

  0001e	e8 00 00 00 00	 call	 ___iob_func
  00023	50		 push	 eax
  00024	68 00 00 00 00	 push	 OFFSET ??_C@_01KDCPPGHE@r?$AA@
  00029	68 00 00 00 00	 push	 OFFSET ??_C@_06GDENEHCP@CONIN$?$AA@
  0002e	e8 00 00 00 00	 call	 _freopen
  00033	83 c4 18	 add	 esp, 24			; 00000018H

; 326  : }

  00036	c3		 ret	 0
?OpenConsoleWindow@@YAXXZ ENDP				; OpenConsoleWindow
_TEXT	ENDS
PUBLIC	?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A ; CSingleton<CLogFile>::ms_singleton
PUBLIC	??_7?$CSingleton@VCLogFile@@@@6B@		; CSingleton<CLogFile>::`vftable'
PUBLIC	??0?$CSingleton@VCLogFile@@@@QAE@XZ		; CSingleton<CLogFile>::CSingleton<CLogFile>
PUBLIC	??_R4?$CSingleton@VCLogFile@@@@6B@		; CSingleton<CLogFile>::`RTTI Complete Object Locator'
PUBLIC	??_R0?AV?$CSingleton@VCLogFile@@@@@8		; CSingleton<CLogFile> `RTTI Type Descriptor'
PUBLIC	??_R3?$CSingleton@VCLogFile@@@@8		; CSingleton<CLogFile>::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2?$CSingleton@VCLogFile@@@@8		; CSingleton<CLogFile>::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@?$CSingleton@VCLogFile@@@@8	; CSingleton<CLogFile>::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_7type_info@@6B@:QWORD			; type_info::`vftable'
EXTRN	??_E?$CSingleton@VCLogFile@@@@UAEPAXI@Z:PROC	; CSingleton<CLogFile>::`vector deleting destructor'
;	COMDAT ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A
; File d:\# metin2\work in progress\source client\client\eterbase\singleton.h
_BSS	SEGMENT
?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A DD 01H DUP (?) ; CSingleton<CLogFile>::ms_singleton
_BSS	ENDS
;	COMDAT ??_R1A@?0A@EA@?$CSingleton@VCLogFile@@@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@?$CSingleton@VCLogFile@@@@8 DD FLAT:??_R0?AV?$CSingleton@VCLogFile@@@@@8 ; CSingleton<CLogFile>::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3?$CSingleton@VCLogFile@@@@8
rdata$r	ENDS
;	COMDAT ??_R2?$CSingleton@VCLogFile@@@@8
rdata$r	SEGMENT
??_R2?$CSingleton@VCLogFile@@@@8 DD FLAT:??_R1A@?0A@EA@?$CSingleton@VCLogFile@@@@8 ; CSingleton<CLogFile>::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R3?$CSingleton@VCLogFile@@@@8
rdata$r	SEGMENT
??_R3?$CSingleton@VCLogFile@@@@8 DD 00H			; CSingleton<CLogFile>::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2?$CSingleton@VCLogFile@@@@8
rdata$r	ENDS
;	COMDAT ??_R0?AV?$CSingleton@VCLogFile@@@@@8
_DATA	SEGMENT
??_R0?AV?$CSingleton@VCLogFile@@@@@8 DD FLAT:??_7type_info@@6B@ ; CSingleton<CLogFile> `RTTI Type Descriptor'
	DD	00H
	DB	'.?AV?$CSingleton@VCLogFile@@@@', 00H
_DATA	ENDS
;	COMDAT ??_R4?$CSingleton@VCLogFile@@@@6B@
rdata$r	SEGMENT
??_R4?$CSingleton@VCLogFile@@@@6B@ DD 00H		; CSingleton<CLogFile>::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AV?$CSingleton@VCLogFile@@@@@8
	DD	FLAT:??_R3?$CSingleton@VCLogFile@@@@8
rdata$r	ENDS
;	COMDAT ??_7?$CSingleton@VCLogFile@@@@6B@
CONST	SEGMENT
??_7?$CSingleton@VCLogFile@@@@6B@ DD FLAT:??_R4?$CSingleton@VCLogFile@@@@6B@ ; CSingleton<CLogFile>::`vftable'
	DD	FLAT:??_E?$CSingleton@VCLogFile@@@@UAEPAXI@Z
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ??0?$CSingleton@VCLogFile@@@@QAE@XZ
_TEXT	SEGMENT
??0?$CSingleton@VCLogFile@@@@QAE@XZ PROC		; CSingleton<CLogFile>::CSingleton<CLogFile>, COMDAT
; _this$ = ecx

; 11   : 	CSingleton()

  00000	8b c1		 mov	 eax, ecx
  00002	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7?$CSingleton@VCLogFile@@@@6B@

; 12   : 	{ 
; 13   : 		assert(!ms_singleton);
; 14   : 		int offset = (int) (T*) 1 - (int) (CSingleton <T>*) (T*) 1; 
; 15   : 		ms_singleton = (T*) ((int) this + offset);

  00008	a3 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, eax ; CSingleton<CLogFile>::ms_singleton

; 16   : 	} 

  0000d	c3		 ret	 0
??0?$CSingleton@VCLogFile@@@@QAE@XZ ENDP		; CSingleton<CLogFile>::CSingleton<CLogFile>
_TEXT	ENDS
PUBLIC	??1?$CSingleton@VCLogFile@@@@UAE@XZ		; CSingleton<CLogFile>::~CSingleton<CLogFile>
; Function compile flags: /Ogtpy
;	COMDAT ??1?$CSingleton@VCLogFile@@@@UAE@XZ
_TEXT	SEGMENT
??1?$CSingleton@VCLogFile@@@@UAE@XZ PROC		; CSingleton<CLogFile>::~CSingleton<CLogFile>, COMDAT
; _this$ = ecx

; 19   : 	{ 

  00000	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], OFFSET ??_7?$CSingleton@VCLogFile@@@@6B@

; 20   : 		assert(ms_singleton);
; 21   : 		ms_singleton = 0; 

  00006	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, 0 ; CSingleton<CLogFile>::ms_singleton

; 22   : 	}

  00010	c3		 ret	 0
??1?$CSingleton@VCLogFile@@@@UAE@XZ ENDP		; CSingleton<CLogFile>::~CSingleton<CLogFile>
_TEXT	ENDS
PUBLIC	?Instance@?$CSingleton@VCLogFile@@@@SAAAVCLogFile@@XZ ; CSingleton<CLogFile>::Instance
; Function compile flags: /Ogtpy
;	COMDAT ?Instance@?$CSingleton@VCLogFile@@@@SAAAVCLogFile@@XZ
_TEXT	SEGMENT
?Instance@?$CSingleton@VCLogFile@@@@SAAAVCLogFile@@XZ PROC ; CSingleton<CLogFile>::Instance, COMDAT

; 26   : 		assert(ms_singleton);
; 27   : 		return (*ms_singleton);

  00000	a1 00 00 00 00	 mov	 eax, DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A ; CSingleton<CLogFile>::ms_singleton

; 28   : 	}

  00005	c3		 ret	 0
?Instance@?$CSingleton@VCLogFile@@@@SAAAVCLogFile@@XZ ENDP ; CSingleton<CLogFile>::Instance
_TEXT	ENDS
EXTRN	??3@YAXPAX@Z:PROC				; operator delete
; Function compile flags: /Ogtpy
;	COMDAT ??_G?$CSingleton@VCLogFile@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$CSingleton@VCLogFile@@@@UAEPAXI@Z PROC		; CSingleton<CLogFile>::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	f6 44 24 04 01	 test	 BYTE PTR ___flags$[esp-4], 1
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx
  00008	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$CSingleton@VCLogFile@@@@6B@
  0000e	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, 0 ; CSingleton<CLogFile>::ms_singleton
  00018	74 09		 je	 SHORT $LN6@scalar
  0001a	56		 push	 esi
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN6@scalar:
  00023	8b c6		 mov	 eax, esi
  00025	5e		 pop	 esi
  00026	c2 04 00	 ret	 4
??_G?$CSingleton@VCLogFile@@@@UAEPAXI@Z ENDP		; CSingleton<CLogFile>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_7CLogFile@@6B@				; CLogFile::`vftable'
PUBLIC	??0CLogFile@@QAE@XZ				; CLogFile::CLogFile
PUBLIC	??_R4CLogFile@@6B@				; CLogFile::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVCLogFile@@@8				; CLogFile `RTTI Type Descriptor'
PUBLIC	??_R3CLogFile@@8				; CLogFile::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CLogFile@@8				; CLogFile::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CLogFile@@8			; CLogFile::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN	??_ECLogFile@@UAEPAXI@Z:PROC			; CLogFile::`vector deleting destructor'
;	COMDAT ??_R1A@?0A@EA@CLogFile@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CLogFile@@8 DD FLAT:??_R0?AVCLogFile@@@8	; CLogFile::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CLogFile@@8
rdata$r	ENDS
;	COMDAT ??_R2CLogFile@@8
rdata$r	SEGMENT
??_R2CLogFile@@8 DD FLAT:??_R1A@?0A@EA@CLogFile@@8	; CLogFile::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@?$CSingleton@VCLogFile@@@@8
rdata$r	ENDS
;	COMDAT ??_R3CLogFile@@8
rdata$r	SEGMENT
??_R3CLogFile@@8 DD 00H					; CLogFile::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2CLogFile@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCLogFile@@@8
_DATA	SEGMENT
??_R0?AVCLogFile@@@8 DD FLAT:??_7type_info@@6B@		; CLogFile `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCLogFile@@', 00H
_DATA	ENDS
;	COMDAT ??_R4CLogFile@@6B@
rdata$r	SEGMENT
??_R4CLogFile@@6B@ DD 00H				; CLogFile::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCLogFile@@@8
	DD	FLAT:??_R3CLogFile@@8
rdata$r	ENDS
;	COMDAT ??_7CLogFile@@6B@
CONST	SEGMENT
??_7CLogFile@@6B@ DD FLAT:??_R4CLogFile@@6B@		; CLogFile::`vftable'
	DD	FLAT:??_ECLogFile@@UAEPAXI@Z
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\debug.cpp
CONST	ENDS
;	COMDAT ??0CLogFile@@QAE@XZ
_TEXT	SEGMENT
??0CLogFile@@QAE@XZ PROC				; CLogFile::CLogFile, COMDAT
; _this$ = ecx

; 18   : 		{

  00000	8b c1		 mov	 eax, ecx
  00002	a3 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, eax ; CSingleton<CLogFile>::ms_singleton
  00007	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CLogFile@@6B@
  0000d	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], 0

; 19   : 		}

  00014	c3		 ret	 0
??0CLogFile@@QAE@XZ ENDP				; CLogFile::CLogFile
_TEXT	ENDS
PUBLIC	??1CLogFile@@UAE@XZ				; CLogFile::~CLogFile
EXTRN	_fclose:PROC
; Function compile flags: /Ogtpy
;	COMDAT ??1CLogFile@@UAE@XZ
_TEXT	SEGMENT
??1CLogFile@@UAE@XZ PROC				; CLogFile::~CLogFile, COMDAT
; _this$ = ecx

; 22   : 		{

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

; 23   : 			if (m_fp)

  00003	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  00006	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7CLogFile@@6B@
  0000c	85 c0		 test	 eax, eax
  0000e	74 09		 je	 SHORT $LN1@CLogFile

; 24   : 				fclose(m_fp);

  00010	50		 push	 eax
  00011	e8 00 00 00 00	 call	 _fclose
  00016	83 c4 04	 add	 esp, 4
$LN1@CLogFile:

; 25   : 
; 26   : 			m_fp = NULL;

  00019	c7 46 04 00 00
	00 00		 mov	 DWORD PTR [esi+4], 0

; 27   : 		}

  00020	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$CSingleton@VCLogFile@@@@6B@
  00026	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, 0 ; CSingleton<CLogFile>::ms_singleton
  00030	5e		 pop	 esi
  00031	c3		 ret	 0
??1CLogFile@@UAE@XZ ENDP				; CLogFile::~CLogFile
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT ??_GCLogFile@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GCLogFile@@UAEPAXI@Z PROC				; CLogFile::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  00006	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7CLogFile@@6B@
  0000c	85 c0		 test	 eax, eax
  0000e	74 09		 je	 SHORT $LN4@scalar@2
  00010	50		 push	 eax
  00011	e8 00 00 00 00	 call	 _fclose
  00016	83 c4 04	 add	 esp, 4
$LN4@scalar@2:
  00019	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0001e	c7 46 04 00 00
	00 00		 mov	 DWORD PTR [esi+4], 0
  00025	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$CSingleton@VCLogFile@@@@6B@
  0002b	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, 0 ; CSingleton<CLogFile>::ms_singleton
  00035	74 09		 je	 SHORT $LN9@scalar@2
  00037	56		 push	 esi
  00038	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0003d	83 c4 04	 add	 esp, 4
$LN9@scalar@2:
  00040	8b c6		 mov	 eax, esi
  00042	5e		 pop	 esi
  00043	c2 04 00	 ret	 4
??_GCLogFile@@UAEPAXI@Z ENDP				; CLogFile::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?LogFile@@YAXPBD@Z				; LogFile
; Function compile flags: /Ogtpy
;	COMDAT ?LogFile@@YAXPBD@Z
_TEXT	SEGMENT
_c_szMsg$ = 8						; size = 4
?LogFile@@YAXPBD@Z PROC					; LogFile, COMDAT

; 294  : 	CLogFile::Instance().Write(c_szMsg);

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _c_szMsg$[esp-4]
  00004	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A ; CSingleton<CLogFile>::ms_singleton
  0000a	50		 push	 eax
  0000b	e8 00 00 00 00	 call	 ?Write@CLogFile@@QAEXPBD@Z ; CLogFile::Write

; 295  : }

  00010	c3		 ret	 0
?LogFile@@YAXPBD@Z ENDP					; LogFile
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?LogFilef@@YAXPBDZZ				; LogFilef
EXTRN	__vsnprintf:PROC
EXTRN	___security_cookie:DWORD
EXTRN	@__security_check_cookie@4:PROC
; Function compile flags: /Ogtpy
;	COMDAT ?LogFilef@@YAXPBDZZ
_TEXT	SEGMENT
_szBuf$ = -1032						; size = 1025
__$ArrayPad$ = -4					; size = 4
_c_szMessage$ = 8					; size = 4
?LogFilef@@YAXPBDZZ PROC				; LogFilef, COMDAT

; 298  : {

  00000	81 ec 08 04 00
	00		 sub	 esp, 1032		; 00000408H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 04 04
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+1032], eax

; 299  : 	va_list args;
; 300  : 	va_start(args, c_szMessage);
; 301  : 	char szBuf[DEBUG_STRING_MAX_LEN+1];
; 302  : 	_vsnprintf(szBuf, sizeof(szBuf), c_szMessage, args);

  00014	8b 8c 24 0c 04
	00 00		 mov	 ecx, DWORD PTR _c_szMessage$[esp+1028]
  0001b	8d 84 24 10 04
	00 00		 lea	 eax, DWORD PTR _c_szMessage$[esp+1032]
  00022	50		 push	 eax
  00023	51		 push	 ecx
  00024	8d 54 24 08	 lea	 edx, DWORD PTR _szBuf$[esp+1040]
  00028	68 01 04 00 00	 push	 1025			; 00000401H
  0002d	52		 push	 edx
  0002e	e8 00 00 00 00	 call	 __vsnprintf

; 303  : 
; 304  : 	CLogFile::Instance().Write(szBuf);

  00033	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A ; CSingleton<CLogFile>::ms_singleton
  00039	83 c4 10	 add	 esp, 16			; 00000010H
  0003c	8d 04 24	 lea	 eax, DWORD PTR _szBuf$[esp+1032]
  0003f	50		 push	 eax
  00040	e8 00 00 00 00	 call	 ?Write@CLogFile@@QAEXPBD@Z ; CLogFile::Write

; 305  : }

  00045	8b 8c 24 04 04
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+1032]
  0004c	33 cc		 xor	 ecx, esp
  0004e	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00053	81 c4 08 04 00
	00		 add	 esp, 1032		; 00000408H
  00059	c3		 ret	 0
?LogFilef@@YAXPBDZZ ENDP				; LogFilef
_TEXT	ENDS
PUBLIC	??_C@_0L@BOMBMLAA@syserr?4txt?$AA@		; `string'
PUBLIC	?OpenLogFile@@YAX_N@Z				; OpenLogFile
;	COMDAT ??_C@_0L@BOMBMLAA@syserr?4txt?$AA@
CONST	SEGMENT
??_C@_0L@BOMBMLAA@syserr?4txt?$AA@ DB 'syserr.txt', 00H	; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?OpenLogFile@@YAX_N@Z
_TEXT	SEGMENT
_bUseLogFIle$ = 8					; size = 1
?OpenLogFile@@YAX_N@Z PROC				; OpenLogFile, COMDAT

; 309  : #ifndef _DISTRIBUTE 
; 310  : 	freopen("syserr.txt", "w", stderr);

  00000	e8 00 00 00 00	 call	 ___iob_func
  00005	83 c0 40	 add	 eax, 64			; 00000040H
  00008	50		 push	 eax
  00009	68 00 00 00 00	 push	 OFFSET ??_C@_01NOFIACDB@w?$AA@
  0000e	68 00 00 00 00	 push	 OFFSET ??_C@_0L@BOMBMLAA@syserr?4txt?$AA@
  00013	e8 00 00 00 00	 call	 _freopen
  00018	83 c4 0c	 add	 esp, 12			; 0000000cH

; 311  : 
; 312  : 	if (bUseLogFIle)

  0001b	80 7c 24 04 00	 cmp	 BYTE PTR _bUseLogFIle$[esp-4], 0
  00020	74 27		 je	 SHORT $LN6@OpenLogFil
  00022	56		 push	 esi

; 313  : 	{
; 314  : 		isLogFile = true;
; 315  : 		CLogFile::Instance().Initialize();

  00023	8b 35 00 00 00
	00		 mov	 esi, DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A ; CSingleton<CLogFile>::ms_singleton
  00029	68 00 00 00 00	 push	 OFFSET ??_C@_01NOFIACDB@w?$AA@
  0002e	68 00 00 00 00	 push	 OFFSET ??_C@_07POILLFDI@log?4txt?$AA@
  00033	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR _isLogFile, 1
  0003d	e8 00 00 00 00	 call	 _fopen
  00042	83 c4 08	 add	 esp, 8
  00045	89 46 04	 mov	 DWORD PTR [esi+4], eax
  00048	5e		 pop	 esi
$LN6@OpenLogFil:

; 316  : 	}
; 317  : #endif
; 318  : }

  00049	c3		 ret	 0
?OpenLogFile@@YAX_N@Z ENDP				; OpenLogFile
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?Logf@@YAXIPBDZZ				; Logf
; Function compile flags: /Ogtpy
;	COMDAT ?Logf@@YAXIPBDZZ
_TEXT	SEGMENT
_szBuf$ = -1032						; size = 1025
__$ArrayPad$ = -4					; size = 4
_uLevel$ = 8						; size = 4
_c_szFormat$ = 12					; size = 4
?Logf@@YAXIPBDZZ PROC					; Logf, COMDAT

; 79   : {

  00000	81 ec 08 04 00
	00		 sub	 esp, 1032		; 00000408H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 04 04
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+1032], eax

; 80   : 	if (uLevel<gs_uLevel)

  00014	8b 84 24 0c 04
	00 00		 mov	 eax, DWORD PTR _uLevel$[esp+1028]
  0001b	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _gs_uLevel
  00021	72 37		 jb	 SHORT $LN1@Logf

; 81   : 		return;
; 82   : 	
; 83   : 	char szBuf[DEBUG_STRING_MAX_LEN+1];
; 84   : 
; 85   : 	va_list args;
; 86   : 	va_start(args, c_szFormat);
; 87   : 	_vsnprintf(szBuf, sizeof(szBuf), c_szFormat, args);

  00023	8b 94 24 10 04
	00 00		 mov	 edx, DWORD PTR _c_szFormat$[esp+1028]
  0002a	8d 8c 24 14 04
	00 00		 lea	 ecx, DWORD PTR _c_szFormat$[esp+1032]
  00031	51		 push	 ecx
  00032	52		 push	 edx
  00033	8d 44 24 08	 lea	 eax, DWORD PTR _szBuf$[esp+1040]
  00037	68 01 04 00 00	 push	 1025			; 00000401H
  0003c	50		 push	 eax
  0003d	e8 00 00 00 00	 call	 __vsnprintf
  00042	83 c4 10	 add	 esp, 16			; 00000010H

; 88   : 	va_end(args);
; 89   : #ifdef _DEBUG
; 90   : 	OutputDebugString(szBuf);	
; 91   : 	fputs(szBuf, stdout);
; 92   : #endif
; 93   : 
; 94   : 	if (isLogFile)

  00045	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  0004c	74 0c		 je	 SHORT $LN1@Logf

; 95   : 		LogFile(szBuf);

  0004e	8d 0c 24	 lea	 ecx, DWORD PTR _szBuf$[esp+1032]
  00051	51		 push	 ecx
  00052	e8 00 00 00 00	 call	 ?LogFile@@YAXPBD@Z	; LogFile
  00057	83 c4 04	 add	 esp, 4
$LN1@Logf:

; 96   : }

  0005a	8b 8c 24 04 04
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+1032]
  00061	33 cc		 xor	 ecx, esp
  00063	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00068	81 c4 08 04 00
	00		 add	 esp, 1032		; 00000408H
  0006e	c3		 ret	 0
?Logf@@YAXIPBDZZ ENDP					; Logf
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?Lognf@@YAXIPBDZZ				; Lognf
; Function compile flags: /Ogtpy
;	COMDAT ?Lognf@@YAXIPBDZZ
_TEXT	SEGMENT
_szBuf$ = -1032						; size = 1026
__$ArrayPad$ = -4					; size = 4
_uLevel$ = 8						; size = 4
_c_szFormat$ = 12					; size = 4
?Lognf@@YAXIPBDZZ PROC					; Lognf, COMDAT

; 99   : {

  00000	81 ec 08 04 00
	00		 sub	 esp, 1032		; 00000408H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 04 04
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+1032], eax

; 100  : 	if (uLevel<gs_uLevel)

  00014	8b 84 24 0c 04
	00 00		 mov	 eax, DWORD PTR _uLevel$[esp+1028]
  0001b	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _gs_uLevel
  00021	72 44		 jb	 SHORT $LN1@Lognf

; 101  : 		return;
; 102  : 
; 103  : 	va_list args;
; 104  : 	va_start(args, c_szFormat);
; 105  : 
; 106  : 	char szBuf[DEBUG_STRING_MAX_LEN+2];
; 107  : 	int len = _vsnprintf(szBuf, sizeof(szBuf)-1, c_szFormat, args);

  00023	8b 94 24 10 04
	00 00		 mov	 edx, DWORD PTR _c_szFormat$[esp+1028]
  0002a	8d 8c 24 14 04
	00 00		 lea	 ecx, DWORD PTR _c_szFormat$[esp+1032]
  00031	51		 push	 ecx
  00032	52		 push	 edx
  00033	8d 44 24 08	 lea	 eax, DWORD PTR _szBuf$[esp+1040]
  00037	68 01 04 00 00	 push	 1025			; 00000401H
  0003c	50		 push	 eax
  0003d	e8 00 00 00 00	 call	 __vsnprintf
  00042	83 c4 10	 add	 esp, 16			; 00000010H

; 108  : 
; 109  : 	if (len > 0)

  00045	85 c0		 test	 eax, eax
  00047	7e 09		 jle	 SHORT $LN2@Lognf

; 110  : 	{
; 111  : 		szBuf[len] = '\n';

  00049	c6 04 04 0a	 mov	 BYTE PTR _szBuf$[esp+eax+1032], 10 ; 0000000aH

; 112  : 		szBuf[len + 1] = '\0';

  0004d	c6 44 04 01 00	 mov	 BYTE PTR _szBuf$[esp+eax+1033], 0
$LN2@Lognf:

; 113  : 	}
; 114  : 	va_end(args);
; 115  : #ifdef _DEBUG
; 116  : 	OutputDebugString(szBuf);	
; 117  : 	puts(szBuf);
; 118  : #endif
; 119  : 
; 120  : 	if (isLogFile)

  00052	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  00059	74 0c		 je	 SHORT $LN1@Lognf

; 121  : 		LogFile(szBuf);

  0005b	8d 0c 24	 lea	 ecx, DWORD PTR _szBuf$[esp+1032]
  0005e	51		 push	 ecx
  0005f	e8 00 00 00 00	 call	 ?LogFile@@YAXPBD@Z	; LogFile
  00064	83 c4 04	 add	 esp, 4
$LN1@Lognf:

; 122  : }

  00067	8b 8c 24 04 04
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+1032]
  0006e	33 cc		 xor	 ecx, esp
  00070	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00075	81 c4 08 04 00
	00		 add	 esp, 1032		; 00000408H
  0007b	c3		 ret	 0
?Lognf@@YAXIPBDZZ ENDP					; Lognf
_TEXT	ENDS
PUBLIC	?Trace@@YAXPBD@Z				; Trace
; Function compile flags: /Ogtpy
;	COMDAT ?Trace@@YAXPBD@Z
_TEXT	SEGMENT
_c_szMsg$ = 8						; size = 4
?Trace@@YAXPBD@Z PROC					; Trace, COMDAT

; 127  : #ifdef _DEBUG
; 128  : 	OutputDebugString(c_szMsg);
; 129  : 	printf("%s", c_szMsg);
; 130  : #endif
; 131  : 
; 132  : 	if (isLogFile)

  00000	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  00007	74 05		 je	 SHORT $LN1@Trace

; 133  : 		LogFile(c_szMsg);

  00009	e9 00 00 00 00	 jmp	 ?LogFile@@YAXPBD@Z	; LogFile
$LN1@Trace:

; 134  : }

  0000e	c3		 ret	 0
?Trace@@YAXPBD@Z ENDP					; Trace
_TEXT	ENDS
PUBLIC	??_C@_01EEMJAFIK@?6?$AA@			; `string'
PUBLIC	?Tracen@@YAXPBD@Z				; Tracen
;	COMDAT ??_C@_01EEMJAFIK@?6?$AA@
CONST	SEGMENT
??_C@_01EEMJAFIK@?6?$AA@ DB 0aH, 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?Tracen@@YAXPBD@Z
_TEXT	SEGMENT
_c_szMsg$ = 8						; size = 4
?Tracen@@YAXPBD@Z PROC					; Tracen, COMDAT

; 138  : #ifdef _DEBUG
; 139  : 	char szBuf[DEBUG_STRING_MAX_LEN+1];
; 140  : 	_snprintf(szBuf, sizeof(szBuf), "%s\n", c_szMsg);
; 141  : 	OutputDebugString(szBuf);
; 142  : 	puts(c_szMsg);
; 143  : 
; 144  : 	if (isLogFile)
; 145  : 		LogFile(szBuf);
; 146  : 
; 147  : 	puts(c_szMsg);
; 148  : 	putc('\n', stdout);
; 149  : #else
; 150  : 	if (isLogFile)

  00000	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  00007	74 1a		 je	 SHORT $LN1@Tracen

; 151  : 	{
; 152  : 		LogFile(c_szMsg);

  00009	8b 44 24 04	 mov	 eax, DWORD PTR _c_szMsg$[esp-4]
  0000d	50		 push	 eax
  0000e	e8 00 00 00 00	 call	 ?LogFile@@YAXPBD@Z	; LogFile
  00013	83 c4 04	 add	 esp, 4

; 153  : 		LogFile("\n");

  00016	c7 44 24 04 00
	00 00 00	 mov	 DWORD PTR _c_szMsg$[esp-4], OFFSET ??_C@_01EEMJAFIK@?6?$AA@
  0001e	e9 00 00 00 00	 jmp	 ?LogFile@@YAXPBD@Z	; LogFile
$LN1@Tracen:

; 154  : 	}
; 155  : #endif
; 156  : }

  00023	c3		 ret	 0
?Tracen@@YAXPBD@Z ENDP					; Tracen
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?Tracenf@@YAXPBDZZ				; Tracenf
; Function compile flags: /Ogtpy
;	COMDAT ?Tracenf@@YAXPBDZZ
_TEXT	SEGMENT
_szBuf$ = -1032						; size = 1026
__$ArrayPad$ = -4					; size = 4
_c_szFormat$ = 8					; size = 4
?Tracenf@@YAXPBDZZ PROC					; Tracenf, COMDAT

; 159  : {

  00000	81 ec 08 04 00
	00		 sub	 esp, 1032		; 00000408H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 04 04
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+1032], eax

; 160  : 	va_list args;
; 161  : 	va_start(args, c_szFormat);
; 162  : 
; 163  : 	char szBuf[DEBUG_STRING_MAX_LEN+2];
; 164  : 	int len = _vsnprintf(szBuf, sizeof(szBuf)-1, c_szFormat, args);

  00014	8b 8c 24 0c 04
	00 00		 mov	 ecx, DWORD PTR _c_szFormat$[esp+1028]
  0001b	8d 84 24 10 04
	00 00		 lea	 eax, DWORD PTR _c_szFormat$[esp+1032]
  00022	50		 push	 eax
  00023	51		 push	 ecx
  00024	8d 54 24 08	 lea	 edx, DWORD PTR _szBuf$[esp+1040]
  00028	68 01 04 00 00	 push	 1025			; 00000401H
  0002d	52		 push	 edx
  0002e	e8 00 00 00 00	 call	 __vsnprintf
  00033	83 c4 10	 add	 esp, 16			; 00000010H

; 165  : 
; 166  : 	if (len > 0)

  00036	85 c0		 test	 eax, eax
  00038	7e 09		 jle	 SHORT $LN2@Tracenf

; 167  : 	{
; 168  : 		szBuf[len] = '\n';

  0003a	c6 04 04 0a	 mov	 BYTE PTR _szBuf$[esp+eax+1032], 10 ; 0000000aH

; 169  : 		szBuf[len + 1] = '\0';

  0003e	c6 44 04 01 00	 mov	 BYTE PTR _szBuf$[esp+eax+1033], 0
$LN2@Tracenf:

; 170  : 	}
; 171  : 	va_end(args);
; 172  : #ifdef _DEBUG
; 173  : 	OutputDebugString(szBuf);	
; 174  : 	printf("%s", szBuf);
; 175  : #endif
; 176  : 
; 177  : 	if (isLogFile)

  00043	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  0004a	74 0c		 je	 SHORT $LN1@Tracenf

; 178  : 		LogFile(szBuf);

  0004c	8d 04 24	 lea	 eax, DWORD PTR _szBuf$[esp+1032]
  0004f	50		 push	 eax
  00050	e8 00 00 00 00	 call	 ?LogFile@@YAXPBD@Z	; LogFile
  00055	83 c4 04	 add	 esp, 4
$LN1@Tracenf:

; 179  : }

  00058	8b 8c 24 04 04
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+1032]
  0005f	33 cc		 xor	 ecx, esp
  00061	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00066	81 c4 08 04 00
	00		 add	 esp, 1032		; 00000408H
  0006c	c3		 ret	 0
?Tracenf@@YAXPBDZZ ENDP					; Tracenf
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?Tracef@@YAXPBDZZ				; Tracef
; Function compile flags: /Ogtpy
;	COMDAT ?Tracef@@YAXPBDZZ
_TEXT	SEGMENT
_szBuf$ = -1032						; size = 1025
__$ArrayPad$ = -4					; size = 4
_c_szFormat$ = 8					; size = 4
?Tracef@@YAXPBDZZ PROC					; Tracef, COMDAT

; 182  : {

  00000	81 ec 08 04 00
	00		 sub	 esp, 1032		; 00000408H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 04 04
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+1032], eax

; 183  : 	char szBuf[DEBUG_STRING_MAX_LEN+1];
; 184  : 
; 185  : 	va_list args;
; 186  : 	va_start(args, c_szFormat);
; 187  : 	_vsnprintf(szBuf, sizeof(szBuf), c_szFormat, args);

  00014	8b 8c 24 0c 04
	00 00		 mov	 ecx, DWORD PTR _c_szFormat$[esp+1028]
  0001b	8d 84 24 10 04
	00 00		 lea	 eax, DWORD PTR _c_szFormat$[esp+1032]
  00022	50		 push	 eax
  00023	51		 push	 ecx
  00024	8d 54 24 08	 lea	 edx, DWORD PTR _szBuf$[esp+1040]
  00028	68 01 04 00 00	 push	 1025			; 00000401H
  0002d	52		 push	 edx
  0002e	e8 00 00 00 00	 call	 __vsnprintf
  00033	83 c4 10	 add	 esp, 16			; 00000010H

; 188  : 	va_end(args);
; 189  : 
; 190  : #ifdef _DEBUG
; 191  : 	OutputDebugString(szBuf);	
; 192  : 	fputs(szBuf, stdout);
; 193  : #endif
; 194  : 
; 195  : 	if (isLogFile)

  00036	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  0003d	74 0c		 je	 SHORT $LN1@Tracef

; 196  : 		LogFile(szBuf);

  0003f	8d 04 24	 lea	 eax, DWORD PTR _szBuf$[esp+1032]
  00042	50		 push	 eax
  00043	e8 00 00 00 00	 call	 ?LogFile@@YAXPBD@Z	; LogFile
  00048	83 c4 04	 add	 esp, 4
$LN1@Tracef:

; 197  : }

  0004b	8b 8c 24 04 04
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+1032]
  00052	33 cc		 xor	 ecx, esp
  00054	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00059	81 c4 08 04 00
	00		 add	 esp, 1032		; 00000408H
  0005f	c3		 ret	 0
?Tracef@@YAXPBDZZ ENDP					; Tracef
_TEXT	ENDS
PUBLIC	??_C@_08MKEHAJJM@SYSERR?3?5?$AA@		; `string'
PUBLIC	__$ArrayPad$
PUBLIC	?TraceError@@YAXPBDZZ				; TraceError
EXTRN	_strncpy:PROC
;	COMDAT ??_C@_08MKEHAJJM@SYSERR?3?5?$AA@
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\time.inl
CONST	SEGMENT
??_C@_08MKEHAJJM@SYSERR?3?5?$AA@ DB 'SYSERR: ', 00H	; `string'
; Function compile flags: /Ogtpy
; File d:\# metin2\work in progress\source client\client\eterbase\debug.cpp
CONST	ENDS
;	COMDAT ?TraceError@@YAXPBDZZ
_TEXT	SEGMENT
_ct$ = -1076						; size = 8
_ctm$ = -1068						; size = 36
_szBuf$ = -1032						; size = 1026
__$ArrayPad$ = -4					; size = 4
_c_szFormat$ = 8					; size = 4
?TraceError@@YAXPBDZZ PROC				; TraceError, COMDAT

; 200  : {

  00000	81 ec 34 04 00
	00		 sub	 esp, 1076		; 00000434H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 30 04
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+1076], eax
  00014	56		 push	 esi
  00015	57		 push	 edi

; 201  : #ifndef _DISTRIBUTE 
; 202  : 
; 203  : 	char szBuf[DEBUG_STRING_MAX_LEN+2];
; 204  : 
; 205  : 	strncpy(szBuf, "SYSERR: ", DEBUG_STRING_MAX_LEN);

  00016	68 00 04 00 00	 push	 1024			; 00000400H
  0001b	8d 44 24 38	 lea	 eax, DWORD PTR _szBuf$[esp+1088]
  0001f	68 00 00 00 00	 push	 OFFSET ??_C@_08MKEHAJJM@SYSERR?3?5?$AA@
  00024	50		 push	 eax
  00025	e8 00 00 00 00	 call	 _strncpy

; 206  : 	int len = strlen(szBuf);

  0002a	8d 74 24 40	 lea	 esi, DWORD PTR _szBuf$[esp+1096]
  0002e	83 c4 0c	 add	 esp, 12			; 0000000cH
  00031	8d 4e 01	 lea	 ecx, DWORD PTR [esi+1]
$LL8@TraceError:
  00034	8a 06		 mov	 al, BYTE PTR [esi]
  00036	46		 inc	 esi
  00037	84 c0		 test	 al, al
  00039	75 f9		 jne	 SHORT $LL8@TraceError

; 207  : 
; 208  : 	va_list args;
; 209  : 	va_start(args, c_szFormat);
; 210  : 	len = _vsnprintf(szBuf + len, sizeof(szBuf) - (len + 1), c_szFormat, args) + len;

  0003b	8b 94 24 40 04
	00 00		 mov	 edx, DWORD PTR _c_szFormat$[esp+1080]
  00042	2b f1		 sub	 esi, ecx
  00044	8d 8c 24 44 04
	00 00		 lea	 ecx, DWORD PTR _c_szFormat$[esp+1084]
  0004b	51		 push	 ecx
  0004c	52		 push	 edx
  0004d	b8 01 04 00 00	 mov	 eax, 1025		; 00000401H
  00052	2b c6		 sub	 eax, esi
  00054	50		 push	 eax
  00055	8d 4c 34 40	 lea	 ecx, DWORD PTR _szBuf$[esp+esi+1096]
  00059	51		 push	 ecx
  0005a	e8 00 00 00 00	 call	 __vsnprintf
  0005f	03 f0		 add	 esi, eax

; 211  : 	va_end(args);
; 212  : 
; 213  : 	szBuf[len] = '\n';
; 214  : 	szBuf[len + 1] = '\0';
; 215  : 
; 216  : 	time_t ct = time(0);

  00061	6a 00		 push	 0
  00063	c6 44 34 48 0a	 mov	 BYTE PTR _szBuf$[esp+esi+1104], 10 ; 0000000aH
  00068	c6 44 34 49 00	 mov	 BYTE PTR _szBuf$[esp+esi+1105], 0
  0006d	e8 00 00 00 00	 call	 __time64
  00072	89 54 24 20	 mov	 DWORD PTR _ct$[esp+1108], edx

; 217  : 	struct tm ctm = *localtime(&ct);

  00076	8d 54 24 1c	 lea	 edx, DWORD PTR _ct$[esp+1104]
  0007a	52		 push	 edx
  0007b	89 44 24 20	 mov	 DWORD PTR _ct$[esp+1108], eax
  0007f	e8 00 00 00 00	 call	 __localtime64
  00084	8b f0		 mov	 esi, eax

; 218  : 
; 219  : 	fprintf(stderr, "%02d%02d %02d:%02d:%05d :: %s", 
; 220  : 					ctm.tm_mon + 1, 
; 221  : 					ctm.tm_mday,
; 222  : 					ctm.tm_hour,
; 223  : 					ctm.tm_min,
; 224  : 					ELTimer_GetMSec() % 60000,
; 225  : 					szBuf + 8);

  00086	8d 44 24 54	 lea	 eax, DWORD PTR _szBuf$[esp+1116]
  0008a	83 c4 18	 add	 esp, 24			; 00000018H
  0008d	b9 09 00 00 00	 mov	 ecx, 9
  00092	8d 7c 24 10	 lea	 edi, DWORD PTR _ctm$[esp+1084]
  00096	50		 push	 eax
  00097	f3 a5		 rep movsd
  00099	e8 00 00 00 00	 call	 ?ELTimer_GetMSec@@YAKXZ	; ELTimer_GetMSec
  0009e	33 d2		 xor	 edx, edx
  000a0	b9 60 ea 00 00	 mov	 ecx, 60000		; 0000ea60H
  000a5	f7 f1		 div	 ecx
  000a7	8b 44 24 1c	 mov	 eax, DWORD PTR _ctm$[esp+1096]
  000ab	8b 4c 24 20	 mov	 ecx, DWORD PTR _ctm$[esp+1100]
  000af	52		 push	 edx
  000b0	8b 54 24 1c	 mov	 edx, DWORD PTR _ctm$[esp+1096]
  000b4	52		 push	 edx
  000b5	8b 54 24 2c	 mov	 edx, DWORD PTR _ctm$[esp+1112]
  000b9	50		 push	 eax
  000ba	51		 push	 ecx
  000bb	42		 inc	 edx
  000bc	52		 push	 edx
  000bd	68 00 00 00 00	 push	 OFFSET ??_C@_0BO@IGAAHNNJ@?$CF02d?$CF02d?5?$CF02d?3?$CF02d?3?$CF05d?5?3?3?5?$CFs?$AA@
  000c2	e8 00 00 00 00	 call	 ___iob_func
  000c7	83 c0 40	 add	 eax, 64			; 00000040H
  000ca	50		 push	 eax
  000cb	e8 00 00 00 00	 call	 _fprintf

; 226  : 	fflush(stderr);

  000d0	e8 00 00 00 00	 call	 ___iob_func
  000d5	83 c0 40	 add	 eax, 64			; 00000040H
  000d8	50		 push	 eax
  000d9	e8 00 00 00 00	 call	 _fflush
  000de	83 c4 24	 add	 esp, 36			; 00000024H

; 227  : 	
; 228  : #ifdef _DEBUG
; 229  : 	OutputDebugString(szBuf);
; 230  : 	fputs(szBuf, stdout);
; 231  : #endif
; 232  : 
; 233  : 	if (isLogFile)

  000e1	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  000e8	5f		 pop	 edi
  000e9	5e		 pop	 esi
  000ea	74 0d		 je	 SHORT $LN1@TraceError

; 234  : 		LogFile(szBuf);

  000ec	8d 44 24 2c	 lea	 eax, DWORD PTR _szBuf$[esp+1076]
  000f0	50		 push	 eax
  000f1	e8 00 00 00 00	 call	 ?LogFile@@YAXPBD@Z	; LogFile
  000f6	83 c4 04	 add	 esp, 4
$LN1@TraceError:

; 235  : 
; 236  : #endif
; 237  : }

  000f9	8b 8c 24 30 04
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+1076]
  00100	33 cc		 xor	 ecx, esp
  00102	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00107	81 c4 34 04 00
	00		 add	 esp, 1076		; 00000434H
  0010d	c3		 ret	 0
?TraceError@@YAXPBDZZ ENDP				; TraceError
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?TraceErrorWithoutEnter@@YAXPBDZZ		; TraceErrorWithoutEnter
; Function compile flags: /Ogtpy
;	COMDAT ?TraceErrorWithoutEnter@@YAXPBDZZ
_TEXT	SEGMENT
_ct$ = -1072						; size = 8
_ctm$ = -1064						; size = 36
_szBuf$ = -1028						; size = 1024
__$ArrayPad$ = -4					; size = 4
_c_szFormat$ = 8					; size = 4
?TraceErrorWithoutEnter@@YAXPBDZZ PROC			; TraceErrorWithoutEnter, COMDAT

; 240  : {

  00000	81 ec 30 04 00
	00		 sub	 esp, 1072		; 00000430H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 2c 04
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+1072], eax

; 241  : #ifndef _DISTRIBUTE 
; 242  : 
; 243  : 	char szBuf[DEBUG_STRING_MAX_LEN];
; 244  : 
; 245  : 	va_list args;
; 246  : 	va_start(args, c_szFormat);
; 247  : 	_vsnprintf(szBuf, sizeof(szBuf), c_szFormat, args);

  00014	8b 8c 24 34 04
	00 00		 mov	 ecx, DWORD PTR _c_szFormat$[esp+1068]
  0001b	56		 push	 esi
  0001c	57		 push	 edi
  0001d	8d 84 24 40 04
	00 00		 lea	 eax, DWORD PTR _c_szFormat$[esp+1080]
  00024	50		 push	 eax
  00025	51		 push	 ecx
  00026	8d 54 24 3c	 lea	 edx, DWORD PTR _szBuf$[esp+1088]
  0002a	68 00 04 00 00	 push	 1024			; 00000400H
  0002f	52		 push	 edx
  00030	e8 00 00 00 00	 call	 __vsnprintf

; 248  : 	va_end(args);
; 249  : 
; 250  : 	time_t ct = time(0);

  00035	6a 00		 push	 0
  00037	e8 00 00 00 00	 call	 __time64
  0003c	89 44 24 1c	 mov	 DWORD PTR _ct$[esp+1100], eax

; 251  : 	struct tm ctm = *localtime(&ct);

  00040	8d 44 24 1c	 lea	 eax, DWORD PTR _ct$[esp+1100]
  00044	50		 push	 eax
  00045	89 54 24 24	 mov	 DWORD PTR _ct$[esp+1108], edx
  00049	e8 00 00 00 00	 call	 __localtime64
  0004e	8b f0		 mov	 esi, eax
  00050	b9 09 00 00 00	 mov	 ecx, 9
  00055	8d 7c 24 28	 lea	 edi, DWORD PTR _ctm$[esp+1104]
  00059	f3 a5		 rep movsd

; 252  : 
; 253  : 	fprintf(stderr, "%02d%02d %02d:%02d:%05d :: %s", 
; 254  : 					ctm.tm_mon + 1, 
; 255  : 					ctm.tm_mday,
; 256  : 					ctm.tm_hour,
; 257  : 					ctm.tm_min,
; 258  : 					ELTimer_GetMSec() % 60000,
; 259  : 					szBuf + 8);

  0005b	8d 4c 24 54	 lea	 ecx, DWORD PTR _szBuf$[esp+1112]
  0005f	83 c4 18	 add	 esp, 24			; 00000018H
  00062	51		 push	 ecx
  00063	e8 00 00 00 00	 call	 ?ELTimer_GetMSec@@YAKXZ	; ELTimer_GetMSec
  00068	33 d2		 xor	 edx, edx
  0006a	b9 60 ea 00 00	 mov	 ecx, 60000		; 0000ea60H
  0006f	f7 f1		 div	 ecx
  00071	8b 44 24 1c	 mov	 eax, DWORD PTR _ctm$[esp+1092]
  00075	8b 4c 24 20	 mov	 ecx, DWORD PTR _ctm$[esp+1096]
  00079	52		 push	 edx
  0007a	8b 54 24 1c	 mov	 edx, DWORD PTR _ctm$[esp+1092]
  0007e	52		 push	 edx
  0007f	8b 54 24 2c	 mov	 edx, DWORD PTR _ctm$[esp+1108]
  00083	50		 push	 eax
  00084	51		 push	 ecx
  00085	42		 inc	 edx
  00086	52		 push	 edx
  00087	68 00 00 00 00	 push	 OFFSET ??_C@_0BO@IGAAHNNJ@?$CF02d?$CF02d?5?$CF02d?3?$CF02d?3?$CF05d?5?3?3?5?$CFs?$AA@
  0008c	e8 00 00 00 00	 call	 ___iob_func
  00091	83 c0 40	 add	 eax, 64			; 00000040H
  00094	50		 push	 eax
  00095	e8 00 00 00 00	 call	 _fprintf

; 260  : 	fflush(stderr);

  0009a	e8 00 00 00 00	 call	 ___iob_func
  0009f	83 c0 40	 add	 eax, 64			; 00000040H
  000a2	50		 push	 eax
  000a3	e8 00 00 00 00	 call	 _fflush
  000a8	83 c4 24	 add	 esp, 36			; 00000024H

; 261  : 
; 262  : #ifdef _DEBUG
; 263  : 	OutputDebugString(szBuf);
; 264  : 	fputs(szBuf, stdout);
; 265  : #endif
; 266  : 
; 267  : 	if (isLogFile)

  000ab	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _isLogFile, 0
  000b2	5f		 pop	 edi
  000b3	5e		 pop	 esi
  000b4	74 0d		 je	 SHORT $LN1@TraceError@2

; 268  : 		LogFile(szBuf);

  000b6	8d 44 24 2c	 lea	 eax, DWORD PTR _szBuf$[esp+1072]
  000ba	50		 push	 eax
  000bb	e8 00 00 00 00	 call	 ?LogFile@@YAXPBD@Z	; LogFile
  000c0	83 c4 04	 add	 esp, 4
$LN1@TraceError@2:

; 269  : #endif
; 270  : }

  000c3	8b 8c 24 2c 04
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+1072]
  000ca	33 cc		 xor	 ecx, esp
  000cc	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000d1	81 c4 30 04 00
	00		 add	 esp, 1072		; 00000430H
  000d7	c3		 ret	 0
?TraceErrorWithoutEnter@@YAXPBDZZ ENDP			; TraceErrorWithoutEnter
_TEXT	ENDS
PUBLIC	??_C@_03MLIHNEFJ@LOG?$AA@			; `string'
PUBLIC	?LogBox@@YAXPBD0PAUHWND__@@@Z			; LogBox
EXTRN	__imp__MessageBoxA@16:PROC
;	COMDAT ??_C@_03MLIHNEFJ@LOG?$AA@
CONST	SEGMENT
??_C@_03MLIHNEFJ@LOG?$AA@ DB 'LOG', 00H			; `string'
; Function compile flags: /Ogtpy
CONST	ENDS
;	COMDAT ?LogBox@@YAXPBD0PAUHWND__@@@Z
_TEXT	SEGMENT
_c_szMsg$ = 8						; size = 4
_c_szCaption$ = 12					; size = 4
_hWnd$ = 16						; size = 4
?LogBox@@YAXPBD0PAUHWND__@@@Z PROC			; LogBox, COMDAT

; 285  : 	if (!hWnd)

  00000	8b 4c 24 0c	 mov	 ecx, DWORD PTR _hWnd$[esp-4]
  00004	85 c9		 test	 ecx, ecx
  00006	75 06		 jne	 SHORT $LN1@LogBox

; 286  : 		hWnd = g_PopupHwnd;

  00008	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?g_PopupHwnd@@3PAUHWND__@@A ; g_PopupHwnd
$LN1@LogBox:

; 287  : 
; 288  : 	MessageBox(hWnd, c_szMsg, c_szCaption ? c_szCaption : "LOG", MB_OK);

  0000e	8b 44 24 08	 mov	 eax, DWORD PTR _c_szCaption$[esp-4]
  00012	85 c0		 test	 eax, eax
  00014	75 05		 jne	 SHORT $LN5@LogBox
  00016	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_03MLIHNEFJ@LOG?$AA@
$LN5@LogBox:
  0001b	56		 push	 esi
  0001c	8b 74 24 08	 mov	 esi, DWORD PTR _c_szMsg$[esp]
  00020	6a 00		 push	 0
  00022	50		 push	 eax
  00023	56		 push	 esi
  00024	51		 push	 ecx
  00025	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxA@16

; 289  : 	Tracen(c_szMsg);

  0002b	56		 push	 esi
  0002c	e8 00 00 00 00	 call	 ?Tracen@@YAXPBD@Z	; Tracen
  00031	83 c4 04	 add	 esp, 4
  00034	5e		 pop	 esi

; 290  : }

  00035	c3		 ret	 0
?LogBox@@YAXPBD0PAUHWND__@@@Z ENDP			; LogBox
_TEXT	ENDS
PUBLIC	?Log@@YAXIPBD@Z					; Log
; Function compile flags: /Ogtpy
;	COMDAT ?Log@@YAXIPBD@Z
_TEXT	SEGMENT
_uLevel$ = 8						; size = 4
_c_szMsg$ = 12						; size = 4
?Log@@YAXIPBD@Z PROC					; Log, COMDAT

; 68   : 	if (uLevel>=gs_uLevel)

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _uLevel$[esp-4]
  00004	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _gs_uLevel
  0000a	72 0b		 jb	 SHORT $LN1@Log

; 69   : 		Trace(c_szMsg);

  0000c	8b 4c 24 08	 mov	 ecx, DWORD PTR _c_szMsg$[esp-4]
  00010	51		 push	 ecx
  00011	e8 00 00 00 00	 call	 ?Trace@@YAXPBD@Z	; Trace
  00016	59		 pop	 ecx
$LN1@Log:

; 70   : }

  00017	c3		 ret	 0
?Log@@YAXIPBD@Z ENDP					; Log
_TEXT	ENDS
PUBLIC	?Logn@@YAXIPBD@Z				; Logn
; Function compile flags: /Ogtpy
;	COMDAT ?Logn@@YAXIPBD@Z
_TEXT	SEGMENT
_uLevel$ = 8						; size = 4
_c_szMsg$ = 12						; size = 4
?Logn@@YAXIPBD@Z PROC					; Logn, COMDAT

; 74   : 	if (uLevel>=gs_uLevel)

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _uLevel$[esp-4]
  00004	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _gs_uLevel
  0000a	72 0b		 jb	 SHORT $LN1@Logn

; 75   : 		Tracen(c_szMsg);

  0000c	8b 4c 24 08	 mov	 ecx, DWORD PTR _c_szMsg$[esp-4]
  00010	51		 push	 ecx
  00011	e8 00 00 00 00	 call	 ?Tracen@@YAXPBD@Z	; Tracen
  00016	59		 pop	 ecx
$LN1@Logn:

; 76   : }

  00017	c3		 ret	 0
?Logn@@YAXIPBD@Z ENDP					; Logn
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?LogBoxf@@YAXPBDZZ				; LogBoxf
; Function compile flags: /Ogtpy
;	COMDAT ?LogBoxf@@YAXPBDZZ
_TEXT	SEGMENT
_szBuf$ = -2052						; size = 2048
__$ArrayPad$ = -4					; size = 4
_c_szFormat$ = 8					; size = 4
?LogBoxf@@YAXPBDZZ PROC					; LogBoxf, COMDAT

; 273  : {

  00000	81 ec 04 08 00
	00		 sub	 esp, 2052		; 00000804H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c4		 xor	 eax, esp
  0000d	89 84 24 00 08
	00 00		 mov	 DWORD PTR __$ArrayPad$[esp+2052], eax

; 274  : 	va_list args;
; 275  : 	va_start(args, c_szFormat);
; 276  : 
; 277  : 	char szBuf[2048];
; 278  : 	_vsnprintf(szBuf, sizeof(szBuf), c_szFormat, args);

  00014	8b 8c 24 08 08
	00 00		 mov	 ecx, DWORD PTR _c_szFormat$[esp+2048]
  0001b	8d 84 24 0c 08
	00 00		 lea	 eax, DWORD PTR _c_szFormat$[esp+2052]
  00022	50		 push	 eax
  00023	51		 push	 ecx
  00024	8d 54 24 08	 lea	 edx, DWORD PTR _szBuf$[esp+2060]
  00028	68 00 08 00 00	 push	 2048			; 00000800H
  0002d	52		 push	 edx
  0002e	e8 00 00 00 00	 call	 __vsnprintf

; 279  : 
; 280  : 	LogBox(szBuf);

  00033	6a 00		 push	 0
  00035	8d 44 24 14	 lea	 eax, DWORD PTR _szBuf$[esp+2072]
  00039	6a 00		 push	 0
  0003b	50		 push	 eax
  0003c	e8 00 00 00 00	 call	 ?LogBox@@YAXPBD0PAUHWND__@@@Z ; LogBox

; 281  : }

  00041	8b 8c 24 1c 08
	00 00		 mov	 ecx, DWORD PTR __$ArrayPad$[esp+2080]
  00048	83 c4 1c	 add	 esp, 28			; 0000001cH
  0004b	33 cc		 xor	 ecx, esp
  0004d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00052	81 c4 04 08 00
	00		 add	 esp, 2052		; 00000804H
  00058	c3		 ret	 0
?LogBoxf@@YAXPBDZZ ENDP					; LogBoxf
_TEXT	ENDS
EXTRN	_atexit:PROC
_DATA	SEGMENT
_gs_logfile DD	FLAT:??_7CLogFile@@6B@
	DD	00H
; Function compile flags: /Ogtpy
_DATA	ENDS
;	COMDAT ??__Egs_logfile@@YAXXZ
text$yc	SEGMENT
??__Egs_logfile@@YAXXZ PROC				; `dynamic initializer for 'gs_logfile'', COMDAT

; 57   : static CLogFile gs_logfile;

  00000	68 00 00 00 00	 push	 OFFSET ??__Fgs_logfile@@YAXXZ ; `dynamic atexit destructor for 'gs_logfile''
  00005	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, OFFSET _gs_logfile ; CSingleton<CLogFile>::ms_singleton
  0000f	e8 00 00 00 00	 call	 _atexit
  00014	59		 pop	 ecx
  00015	c3		 ret	 0
??__Egs_logfile@@YAXXZ ENDP				; `dynamic initializer for 'gs_logfile''
; Function compile flags: /Ogtpy
text$yc	ENDS
;	COMDAT ??__Fgs_logfile@@YAXXZ
text$yd	SEGMENT
??__Fgs_logfile@@YAXXZ PROC				; `dynamic atexit destructor for 'gs_logfile'', COMDAT
  00000	a1 04 00 00 00	 mov	 eax, DWORD PTR _gs_logfile+4
  00005	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _gs_logfile, OFFSET ??_7CLogFile@@6B@
  0000f	85 c0		 test	 eax, eax
  00011	74 09		 je	 SHORT $LN3@dynamic
  00013	50		 push	 eax
  00014	e8 00 00 00 00	 call	 _fclose
  00019	83 c4 04	 add	 esp, 4
$LN3@dynamic:
  0001c	c7 05 04 00 00
	00 00 00 00 00	 mov	 DWORD PTR _gs_logfile+4, 0
  00026	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _gs_logfile, OFFSET ??_7?$CSingleton@VCLogFile@@@@6B@
  00030	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?ms_singleton@?$CSingleton@VCLogFile@@@@0PAVCLogFile@@A, 0 ; CSingleton<CLogFile>::ms_singleton
  0003a	c3		 ret	 0
??__Fgs_logfile@@YAXXZ ENDP				; `dynamic atexit destructor for 'gs_logfile''
text$yd	ENDS
CRT$XCU	SEGMENT
_gs_logfile$initializer$ DD FLAT:??__Egs_logfile@@YAXXZ
CRT$XCU	ENDS
END
