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

	TITLE	c:\Develop\DScaler423a\DScaler\DebugLog.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB OLDNAMES

PUBLIC	??_C@_0P@DECLJHEH@Debug?5Log?5File?$AA@		; `string'
PUBLIC	?FlushAfterEachWrite_OnChange@@YAHJ@Z		; FlushAfterEachWrite_OnChange
PUBLIC	??_C@_0BE@LLMELDJG@FlushAfterEachWrite?$AA@	; `string'
PUBLIC	??_C@_0BH@GBNHOPBB@Flush?5After?5Each?5Write?$AA@ ; `string'
PUBLIC	??_C@_0L@PNFLEPPN@DebugLevel?$AA@		; `string'
PUBLIC	??_C@_0M@MDBKNIG@Debug?5Level?$AA@		; `string'
PUBLIC	??_C@_0BA@GOHPCAKD@DebugLogEnabled?$AA@		; `string'
PUBLIC	??_C@_05DIOAMJFE@Files?$AA@			; `string'
PUBLIC	??_C@_09NNILCKOM@Debug?5Log?$AA@		; `string'
PUBLIC	?DebugLogEnabled@@3HA				; DebugLogEnabled
PUBLIC	?StampEnabled@@3HA				; StampEnabled
PUBLIC	?gDebugLogLevel@@3JA				; gDebugLogLevel
PUBLIC	?FlushAfterEachWrite@@3HA			; FlushAfterEachWrite
PUBLIC	??_C@_1BE@INGKICGD@?$AAD?$AAe?$AAb?$AAu?$AAg?$AA?4?$AAl?$AAo?$AAg?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BM@JLGCFIDN@?$AA?$CF?$AAy?$AA?$CF?$AAm?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAH?$AA?$CF?$AAM?$AA?$CF?$AAS?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BM@NPMAAEGG@?$AA?$CF?$AAs?$AA?4?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CI?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_0O@KBHMNPGO@?$CFy?$CFm?$CFd?5?$CFH?$CFM?$CFS?$AA@ ; `string'
PUBLIC	??_C@_0O@KOIMILHK@?$CFs?4?$CF03d?$CI?$CF03d?$CJ?$AA@ ; `string'
PUBLIC	??_C@_0N@ICLELBJE@StampEnabled?$AA@		; `string'
PUBLIC	??_C@_0BG@ENFHCAKA@Put?5Time?5Stamp?5in?5Log?$AA@ ; `string'
PUBLIC	??_C@_0BB@OCNCIJIM@DebugLogFilename?$AA@	; `string'
EXTRN	_fputwc:PROC
EXTRN	_vfwprintf:PROC
EXTRN	_wcsftime:PROC
EXTRN	__imp__timeGetTime@0:PROC
EXTRN	__ftime64:PROC
EXTRN	_fprintf:PROC
EXTRN	_fputc:PROC
EXTRN	_vfprintf:PROC
EXTRN	_strftime:PROC
EXTRN	__localtime64:PROC
EXTRN	_fflush:PROC
_debugLog DD	01H DUP (?)
?DebugLogEnabled@@3HA DD 01H DUP (?)			; DebugLogEnabled
?StampEnabled@@3HA DD 01H DUP (?)			; StampEnabled
?FlushAfterEachWrite@@3HA DD 01H DUP (?)		; FlushAfterEachWrite
;	COMDAT ??_C@_0BB@OCNCIJIM@DebugLogFilename?$AA@
CONST	SEGMENT
??_C@_0BB@OCNCIJIM@DebugLogFilename?$AA@ DB 'DebugLogFilename', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@ENFHCAKA@Put?5Time?5Stamp?5in?5Log?$AA@
CONST	SEGMENT
??_C@_0BG@ENFHCAKA@Put?5Time?5Stamp?5in?5Log?$AA@ DB 'Put Time Stamp in L'
	DB	'og', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@ICLELBJE@StampEnabled?$AA@
CONST	SEGMENT
??_C@_0N@ICLELBJE@StampEnabled?$AA@ DB 'StampEnabled', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@DECLJHEH@Debug?5Log?5File?$AA@
CONST	SEGMENT
??_C@_0P@DECLJHEH@Debug?5Log?5File?$AA@ DB 'Debug Log File', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@LLMELDJG@FlushAfterEachWrite?$AA@
CONST	SEGMENT
??_C@_0BE@LLMELDJG@FlushAfterEachWrite?$AA@ DB 'FlushAfterEachWrite', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@GBNHOPBB@Flush?5After?5Each?5Write?$AA@
CONST	SEGMENT
??_C@_0BH@GBNHOPBB@Flush?5After?5Each?5Write?$AA@ DB 'Flush After Each Wr'
	DB	'ite', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@PNFLEPPN@DebugLevel?$AA@
CONST	SEGMENT
??_C@_0L@PNFLEPPN@DebugLevel?$AA@ DB 'DebugLevel', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@MDBKNIG@Debug?5Level?$AA@
CONST	SEGMENT
??_C@_0M@MDBKNIG@Debug?5Level?$AA@ DB 'Debug Level', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@GOHPCAKD@DebugLogEnabled?$AA@
CONST	SEGMENT
??_C@_0BA@GOHPCAKD@DebugLogEnabled?$AA@ DB 'DebugLogEnabled', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_05DIOAMJFE@Files?$AA@
CONST	SEGMENT
??_C@_05DIOAMJFE@Files?$AA@ DB 'Files', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_09NNILCKOM@Debug?5Log?$AA@
CONST	SEGMENT
??_C@_09NNILCKOM@Debug?5Log?$AA@ DB 'Debug Log', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@KOIMILHK@?$CFs?4?$CF03d?$CI?$CF03d?$CJ?$AA@
CONST	SEGMENT
??_C@_0O@KOIMILHK@?$CFs?4?$CF03d?$CI?$CF03d?$CJ?$AA@ DB '%s.%03d(%03d)', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@KBHMNPGO@?$CFy?$CFm?$CFd?5?$CFH?$CFM?$CFS?$AA@
CONST	SEGMENT
??_C@_0O@KBHMNPGO@?$CFy?$CFm?$CFd?5?$CFH?$CFM?$CFS?$AA@ DB '%y%m%d %H%M%S'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@NPMAAEGG@?$AA?$CF?$AAs?$AA?4?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CI?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@NPMAAEGG@?$AA?$CF?$AAs?$AA?4?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CI?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CJ?$AA?$AA@ DB '%'
	DB	00H, 's', 00H, '.', 00H, '%', 00H, '0', 00H, '3', 00H, 'd', 00H
	DB	'(', 00H, '%', 00H, '0', 00H, '3', 00H, 'd', 00H, ')', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@JLGCFIDN@?$AA?$CF?$AAy?$AA?$CF?$AAm?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAH?$AA?$CF?$AAM?$AA?$CF?$AAS?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@JLGCFIDN@?$AA?$CF?$AAy?$AA?$CF?$AAm?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAH?$AA?$CF?$AAM?$AA?$CF?$AAS?$AA?$AA@ DB '%'
	DB	00H, 'y', 00H, '%', 00H, 'm', 00H, '%', 00H, 'd', 00H, ' ', 00H
	DB	'%', 00H, 'H', 00H, '%', 00H, 'M', 00H, '%', 00H, 'S', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@INGKICGD@?$AAD?$AAe?$AAb?$AAu?$AAg?$AA?4?$AAl?$AAo?$AAg?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@INGKICGD@?$AAD?$AAe?$AAb?$AAu?$AAg?$AA?4?$AAl?$AAo?$AAg?$AA?$AA@ DB 'D'
	DB	00H, 'e', 00H, 'b', 00H, 'u', 00H, 'g', 00H, '.', 00H, 'l', 00H
	DB	'o', 00H, 'g', 00H, 00H, 00H			; `string'
?gDebugLogLevel@@3JA DD 01H				; gDebugLogLevel
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\time.inl
;	COMDAT _localtime
_TEXT	SEGMENT
__Time$ = 8						; size = 4
_localtime PROC						; COMDAT

; 115  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

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

  00003	8b 45 08	 mov	 eax, DWORD PTR __Time$[ebp]
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 __localtime64
  0000c	83 c4 04	 add	 esp, 4

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

  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
_localtime ENDP
_TEXT	ENDS
PUBLIC	?Debug_GetSetting@@YAPAUSETTING@@W4DEBUG_SETTING@@@Z ; Debug_GetSetting
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\debuglog.cpp
;	COMDAT ?Debug_GetSetting@@YAPAUSETTING@@W4DEBUG_SETTING@@@Z
_TEXT	SEGMENT
_Setting$ = 8						; size = 4
?Debug_GetSetting@@YAPAUSETTING@@W4DEBUG_SETTING@@@Z PROC ; Debug_GetSetting, COMDAT

; 225  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 226  :     if(Setting > -1 && Setting < DEBUG_SETTING_LASTONE)

  00003	83 7d 08 ff	 cmp	 DWORD PTR _Setting$[ebp], -1
  00007	7e 15		 jle	 SHORT $LN2@Debug_GetS
  00009	83 7d 08 05	 cmp	 DWORD PTR _Setting$[ebp], 5
  0000d	7d 0f		 jge	 SHORT $LN2@Debug_GetS

; 227  :     {
; 228  :         return &(DebugSettings[Setting]);

  0000f	8b 45 08	 mov	 eax, DWORD PTR _Setting$[ebp]
  00012	6b c0 34	 imul	 eax, 52			; 00000034H
  00015	05 00 00 00 00	 add	 eax, OFFSET ?DebugSettings@@3PAUSETTING@@A ; DebugSettings
  0001a	eb 04		 jmp	 SHORT $LN3@Debug_GetS

; 229  :     }
; 230  :     else

  0001c	eb 02		 jmp	 SHORT $LN3@Debug_GetS
$LN2@Debug_GetS:

; 231  :     {
; 232  :         return NULL;

  0001e	33 c0		 xor	 eax, eax
$LN3@Debug_GetS:

; 233  :     }
; 234  : }

  00020	5d		 pop	 ebp
  00021	c3		 ret	 0
?Debug_GetSetting@@YAPAUSETTING@@W4DEBUG_SETTING@@@Z ENDP ; Debug_GetSetting
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?FlushAfterEachWrite_OnChange@@YAHJ@Z
_TEXT	SEGMENT
_NewValue$ = 8						; size = 4
?FlushAfterEachWrite_OnChange@@YAHJ@Z PROC		; FlushAfterEachWrite_OnChange, COMDAT

; 178  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 179  :     FlushAfterEachWrite = (BOOL)NewValue;

  00003	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00006	a3 00 00 00 00	 mov	 DWORD PTR ?FlushAfterEachWrite@@3HA, eax ; FlushAfterEachWrite

; 180  :     if(FlushAfterEachWrite && (debugLog != NULL))

  0000b	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?FlushAfterEachWrite@@3HA, 0 ; FlushAfterEachWrite
  00012	74 18		 je	 SHORT $LN1@FlushAfter
  00014	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _debugLog, 0
  0001b	74 0f		 je	 SHORT $LN1@FlushAfter

; 181  :     {
; 182  :         fflush(debugLog);

  0001d	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _debugLog
  00023	51		 push	 ecx
  00024	e8 00 00 00 00	 call	 _fflush
  00029	83 c4 04	 add	 esp, 4
$LN1@FlushAfter:

; 183  :     }
; 184  :     return FALSE;

  0002c	33 c0		 xor	 eax, eax

; 185  : }

  0002e	5d		 pop	 ebp
  0002f	c3		 ret	 0
?FlushAfterEachWrite_OnChange@@YAHJ@Z ENDP		; FlushAfterEachWrite_OnChange
PUBLIC	__$ArrayPad$
PUBLIC	?LOG@@YAXHPBDZZ					; LOG
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?LOG@@YAXHPBDZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?LOG@@YAXHPBDZZ$0
__ehfuncinfo$?LOG@@YAXHPBDZZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?LOG@@YAXHPBDZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?LOG@@YAXHPBDZZ
_TEXT	SEGMENT
_i$140953 = -188					; size = 4
_FileName$140948 = -184					; size = 28
_TimeB$ = -156						; size = 16
_Time$ = -136						; size = 4
_Stamp$ = -132						; size = 100
__$ArrayPad$ = -24					; size = 4
_SysTime$ = -20						; size = 4
_Args$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_DebugLevel$ = 8					; size = 4
_Format$ = 12						; size = 4
?LOG@@YAXHPBDZZ PROC					; LOG, COMDAT

; 104  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?LOG@@YAXHPBDZZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec b0 00 00
	00		 sub	 esp, 176		; 000000b0H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 e8	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00021	50		 push	 eax
  00022	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00025	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 105  :     DWORD SysTime;
; 106  :     struct _timeb TimeB;
; 107  :     struct tm* Time;
; 108  :     char Stamp[100];
; 109  :     va_list Args;
; 110  : 
; 111  :     if (DebugLogEnabled == FALSE && DebugLevel > 0)

  0002b	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?DebugLogEnabled@@3HA, 0 ; DebugLogEnabled
  00032	75 0b		 jne	 SHORT $LN10@LOG
  00034	83 7d 08 00	 cmp	 DWORD PTR _DebugLevel$[ebp], 0
  00038	7e 05		 jle	 SHORT $LN10@LOG

; 112  :     {
; 113  :         return;

  0003a	e9 93 01 00 00	 jmp	 $LN11@LOG
$LN10@LOG:

; 114  :     }
; 115  : 
; 116  :     if (DebugLevel > gDebugLogLevel)

  0003f	8b 45 08	 mov	 eax, DWORD PTR _DebugLevel$[ebp]
  00042	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR ?gDebugLogLevel@@3JA ; gDebugLogLevel
  00048	7e 05		 jle	 SHORT $LN9@LOG

; 117  :     {
; 118  :         return;

  0004a	e9 83 01 00 00	 jmp	 $LN11@LOG
$LN9@LOG:

; 119  :     }
; 120  : 
; 121  :     if (debugLog == NULL && DebugLogFilename)

  0004f	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _debugLog, 0
  00056	75 5b		 jne	 SHORT $LN8@LOG
  00058	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  0005d	e8 00 00 00 00	 call	 ??BSettingStringValue@@QAEPB_WXZ ; SettingStringValue::operator wchar_t const *
  00062	85 c0		 test	 eax, eax
  00064	74 4d		 je	 SHORT $LN8@LOG

; 122  :     {
; 123  :         tstring FileName(DebugLogFilename);

  00066	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  0006b	e8 00 00 00 00	 call	 ??BSettingStringValue@@QAEPB_WXZ ; SettingStringValue::operator wchar_t const *
  00070	50		 push	 eax
  00071	8d 8d 48 ff ff
	ff		 lea	 ecx, DWORD PTR _FileName$140948[ebp]
  00077	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0007c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 124  :         debugLog = _tfopen(FileName.c_str(), _T("w"));

  00083	68 00 00 00 00	 push	 OFFSET ??_C@_13CIFDLIMG@?$AAw?$AA?$AA@
  00088	8d 8d 48 ff ff
	ff		 lea	 ecx, DWORD PTR _FileName$140948[ebp]
  0008e	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00093	50		 push	 eax
  00094	e8 00 00 00 00	 call	 __wfopen
  00099	83 c4 08	 add	 esp, 8
  0009c	a3 00 00 00 00	 mov	 DWORD PTR _debugLog, eax

; 125  :     }

  000a1	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000a8	8d 8d 48 ff ff
	ff		 lea	 ecx, DWORD PTR _FileName$140948[ebp]
  000ae	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN8@LOG:

; 126  : 
; 127  :     if (debugLog == NULL)

  000b3	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _debugLog, 0
  000ba	75 05		 jne	 SHORT $LN7@LOG

; 128  :     {
; 129  :         return;

  000bc	e9 11 01 00 00	 jmp	 $LN11@LOG
$LN7@LOG:

; 130  :     }
; 131  : 
; 132  :     if(StampEnabled)

  000c1	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?StampEnabled@@3HA, 0 ; StampEnabled
  000c8	74 7a		 je	 SHORT $LN6@LOG

; 133  :     {
; 134  :         SysTime = timeGetTime();

  000ca	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__timeGetTime@0
  000d0	89 45 ec	 mov	 DWORD PTR _SysTime$[ebp], eax

; 135  : 
; 136  :         _ftime(&TimeB);

  000d3	8d 8d 64 ff ff
	ff		 lea	 ecx, DWORD PTR _TimeB$[ebp]
  000d9	51		 push	 ecx
  000da	e8 00 00 00 00	 call	 __ftime64
  000df	83 c4 04	 add	 esp, 4

; 137  :         Time = localtime(&TimeB.time);

  000e2	8d 95 64 ff ff
	ff		 lea	 edx, DWORD PTR _TimeB$[ebp]
  000e8	52		 push	 edx
  000e9	e8 00 00 00 00	 call	 _localtime
  000ee	83 c4 04	 add	 esp, 4
  000f1	89 85 78 ff ff
	ff		 mov	 DWORD PTR _Time$[ebp], eax

; 138  :         strftime(Stamp, 100, "%y%m%d %H%M%S", Time);

  000f7	8b 85 78 ff ff
	ff		 mov	 eax, DWORD PTR _Time$[ebp]
  000fd	50		 push	 eax
  000fe	68 00 00 00 00	 push	 OFFSET ??_C@_0O@KBHMNPGO@?$CFy?$CFm?$CFd?5?$CFH?$CFM?$CFS?$AA@
  00103	6a 64		 push	 100			; 00000064H
  00105	8d 8d 7c ff ff
	ff		 lea	 ecx, DWORD PTR _Stamp$[ebp]
  0010b	51		 push	 ecx
  0010c	e8 00 00 00 00	 call	 _strftime
  00111	83 c4 10	 add	 esp, 16			; 00000010H

; 139  :         fprintf(debugLog, "%s.%03d(%03d)", Stamp, TimeB.millitm, SysTime % 1000);

  00114	8b 45 ec	 mov	 eax, DWORD PTR _SysTime$[ebp]
  00117	33 d2		 xor	 edx, edx
  00119	b9 e8 03 00 00	 mov	 ecx, 1000		; 000003e8H
  0011e	f7 f1		 div	 ecx
  00120	52		 push	 edx
  00121	0f b7 95 6c ff
	ff ff		 movzx	 edx, WORD PTR _TimeB$[ebp+8]
  00128	52		 push	 edx
  00129	8d 85 7c ff ff
	ff		 lea	 eax, DWORD PTR _Stamp$[ebp]
  0012f	50		 push	 eax
  00130	68 00 00 00 00	 push	 OFFSET ??_C@_0O@KOIMILHK@?$CFs?4?$CF03d?$CI?$CF03d?$CJ?$AA@
  00135	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _debugLog
  0013b	51		 push	 ecx
  0013c	e8 00 00 00 00	 call	 _fprintf
  00141	83 c4 14	 add	 esp, 20			; 00000014H
$LN6@LOG:

; 140  :     }
; 141  : 
; 142  :     for(int i(0); i < DebugLevel + 1; ++i)

  00144	c7 85 44 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$140953[ebp], 0
  0014e	eb 0f		 jmp	 SHORT $LN5@LOG
$LN4@LOG:
  00150	8b 95 44 ff ff
	ff		 mov	 edx, DWORD PTR _i$140953[ebp]
  00156	83 c2 01	 add	 edx, 1
  00159	89 95 44 ff ff
	ff		 mov	 DWORD PTR _i$140953[ebp], edx
$LN5@LOG:
  0015f	8b 45 08	 mov	 eax, DWORD PTR _DebugLevel$[ebp]
  00162	83 c0 01	 add	 eax, 1
  00165	39 85 44 ff ff
	ff		 cmp	 DWORD PTR _i$140953[ebp], eax
  0016b	7d 13		 jge	 SHORT $LN3@LOG

; 143  :     {
; 144  :         fputc(' ', debugLog);

  0016d	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _debugLog
  00173	51		 push	 ecx
  00174	6a 20		 push	 32			; 00000020H
  00176	e8 00 00 00 00	 call	 _fputc
  0017b	83 c4 08	 add	 esp, 8

; 145  :     }

  0017e	eb d0		 jmp	 SHORT $LN4@LOG
$LN3@LOG:

; 146  : 
; 147  :     va_start(Args, Format);

  00180	8d 55 10	 lea	 edx, DWORD PTR _Format$[ebp+4]
  00183	89 55 f0	 mov	 DWORD PTR _Args$[ebp], edx

; 148  :     vfprintf(debugLog, Format, Args);

  00186	8b 45 f0	 mov	 eax, DWORD PTR _Args$[ebp]
  00189	50		 push	 eax
  0018a	8b 4d 0c	 mov	 ecx, DWORD PTR _Format$[ebp]
  0018d	51		 push	 ecx
  0018e	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _debugLog
  00194	52		 push	 edx
  00195	e8 00 00 00 00	 call	 _vfprintf
  0019a	83 c4 0c	 add	 esp, 12			; 0000000cH

; 149  :     va_end(Args);

  0019d	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _Args$[ebp], 0

; 150  : 
; 151  :     fputc('\n', debugLog);

  001a4	a1 00 00 00 00	 mov	 eax, DWORD PTR _debugLog
  001a9	50		 push	 eax
  001aa	6a 0a		 push	 10			; 0000000aH
  001ac	e8 00 00 00 00	 call	 _fputc
  001b1	83 c4 08	 add	 esp, 8

; 152  :     if(FlushAfterEachWrite || DebugLevel == 0)

  001b4	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?FlushAfterEachWrite@@3HA, 0 ; FlushAfterEachWrite
  001bb	75 06		 jne	 SHORT $LN1@LOG
  001bd	83 7d 08 00	 cmp	 DWORD PTR _DebugLevel$[ebp], 0
  001c1	75 0f		 jne	 SHORT $LN11@LOG
$LN1@LOG:

; 153  :     {
; 154  :         fflush(debugLog);

  001c3	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _debugLog
  001c9	51		 push	 ecx
  001ca	e8 00 00 00 00	 call	 _fflush
  001cf	83 c4 04	 add	 esp, 4
$LN11@LOG:

; 155  :     }
; 156  : }

  001d2	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001d5	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001dc	59		 pop	 ecx
  001dd	8b 4d e8	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  001e0	33 cd		 xor	 ecx, ebp
  001e2	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001e7	8b e5		 mov	 esp, ebp
  001e9	5d		 pop	 ebp
  001ea	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?LOG@@YAXHPBDZZ$0:
  00000	8d 8d 48 ff ff
	ff		 lea	 ecx, DWORD PTR _FileName$140948[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?LOG@@YAXHPBDZZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 8a 4c ff ff
	ff		 mov	 ecx, DWORD PTR [edx-180]
  00018	33 c8		 xor	 ecx, eax
  0001a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001f	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00022	33 c8		 xor	 ecx, eax
  00024	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00029	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?LOG@@YAXHPBDZZ
  0002e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?LOG@@YAXHPBDZZ ENDP					; LOG
PUBLIC	__$ArrayPad$
PUBLIC	?LOG@@YAXHPB_WZZ				; LOG
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?LOG@@YAXHPB_WZZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?LOG@@YAXHPB_WZZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?LOG@@YAXHPB_WZZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?LOG@@YAXHPB_WZZ$2
__ehfuncinfo$?LOG@@YAXHPB_WZZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?LOG@@YAXHPB_WZZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?LOG@@YAXHPB_WZZ
_TEXT	SEGMENT
tv160 = -356						; size = 4
tv163 = -352						; size = 4
tv158 = -348						; size = 4
tv162 = -344						; size = 4
$T344809 = -340						; size = 28
$T344808 = -312						; size = 28
_i$140924 = -284					; size = 4
_FileName$140918 = -280					; size = 28
_TimeB$ = -252						; size = 16
_Time$ = -232						; size = 4
_Stamp$ = -228						; size = 200
__$ArrayPad$ = -24					; size = 4
_SysTime$ = -20						; size = 4
_Args$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_DebugLevel$ = 8					; size = 4
_Format$ = 12						; size = 4
?LOG@@YAXHPB_WZZ PROC					; LOG, COMDAT

; 44   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?LOG@@YAXHPB_WZZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 58 01 00
	00		 sub	 esp, 344		; 00000158H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 e8	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00021	50		 push	 eax
  00022	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00025	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 45   :     DWORD SysTime;
; 46   :     struct _timeb TimeB;
; 47   :     struct tm* Time;
; 48   :     wchar_t Stamp[100];
; 49   :     va_list Args;
; 50   : 
; 51   :     if (DebugLogEnabled == FALSE && DebugLevel > 0)

  0002b	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?DebugLogEnabled@@3HA, 0 ; DebugLogEnabled
  00032	75 0b		 jne	 SHORT $LN11@LOG@2
  00034	83 7d 08 00	 cmp	 DWORD PTR _DebugLevel$[ebp], 0
  00038	7e 05		 jle	 SHORT $LN11@LOG@2

; 52   :     {
; 53   :         return;

  0003a	e9 22 02 00 00	 jmp	 $LN12@LOG@2
$LN11@LOG@2:

; 54   :     }
; 55   : 
; 56   :     if (DebugLevel > gDebugLogLevel)

  0003f	8b 45 08	 mov	 eax, DWORD PTR _DebugLevel$[ebp]
  00042	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR ?gDebugLogLevel@@3JA ; gDebugLogLevel
  00048	7e 05		 jle	 SHORT $LN10@LOG@2

; 57   :     {
; 58   :         return;

  0004a	e9 12 02 00 00	 jmp	 $LN12@LOG@2
$LN10@LOG@2:

; 59   :     }
; 60   : 
; 61   :     if(!DebugLogFilename.IsValid())

  0004f	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  00054	e8 00 00 00 00	 call	 ?IsValid@SettingStringValue@@QAEHXZ ; SettingStringValue::IsValid
  00059	85 c0		 test	 eax, eax
  0005b	0f 85 8b 00 00
	00		 jne	 $LN9@LOG@2

; 62   :     {
; 63   :         DebugLogFilename.SetValue(GetUserFilePath() + _T("Debug.log"));

  00061	8d 8d c8 fe ff
	ff		 lea	 ecx, DWORD PTR $T344808[ebp]
  00067	51		 push	 ecx
  00068	e8 00 00 00 00	 call	 ?GetUserFilePath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetUserFilePath
  0006d	83 c4 04	 add	 esp, 4
  00070	89 85 a8 fe ff
	ff		 mov	 DWORD PTR tv162[ebp], eax
  00076	8b 95 a8 fe ff
	ff		 mov	 edx, DWORD PTR tv162[ebp]
  0007c	89 95 a4 fe ff
	ff		 mov	 DWORD PTR tv158[ebp], edx
  00082	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00089	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@INGKICGD@?$AAD?$AAe?$AAb?$AAu?$AAg?$AA?4?$AAl?$AAo?$AAg?$AA?$AA@
  0008e	8b 85 a4 fe ff
	ff		 mov	 eax, DWORD PTR tv158[ebp]
  00094	50		 push	 eax
  00095	8d 8d ac fe ff
	ff		 lea	 ecx, DWORD PTR $T344809[ebp]
  0009b	51		 push	 ecx
  0009c	e8 00 00 00 00	 call	 ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@ABV10@PB_W@Z ; std::operator+<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000a1	83 c4 0c	 add	 esp, 12			; 0000000cH
  000a4	89 85 a0 fe ff
	ff		 mov	 DWORD PTR tv163[ebp], eax
  000aa	8b 95 a0 fe ff
	ff		 mov	 edx, DWORD PTR tv163[ebp]
  000b0	89 95 9c fe ff
	ff		 mov	 DWORD PTR tv160[ebp], edx
  000b6	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  000ba	8b 85 9c fe ff
	ff		 mov	 eax, DWORD PTR tv160[ebp]
  000c0	50		 push	 eax
  000c1	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  000c6	e8 00 00 00 00	 call	 ?SetValue@SettingStringValue@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; SettingStringValue::SetValue
  000cb	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000cf	8d 8d ac fe ff
	ff		 lea	 ecx, DWORD PTR $T344809[ebp]
  000d5	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000da	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000e1	8d 8d c8 fe ff
	ff		 lea	 ecx, DWORD PTR $T344808[ebp]
  000e7	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN9@LOG@2:

; 64   :     }
; 65   : 
; 66   :     if (debugLog == NULL)

  000ec	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _debugLog, 0
  000f3	75 4d		 jne	 SHORT $LN8@LOG@2

; 67   :     {
; 68   :         tstring FileName(DebugLogFilename);

  000f5	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  000fa	e8 00 00 00 00	 call	 ??BSettingStringValue@@QAEPB_WXZ ; SettingStringValue::operator wchar_t const *
  000ff	50		 push	 eax
  00100	8d 8d e8 fe ff
	ff		 lea	 ecx, DWORD PTR _FileName$140918[ebp]
  00106	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0010b	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2

; 69   :         debugLog = _tfopen(FileName.c_str(), _T("w"));

  00112	68 00 00 00 00	 push	 OFFSET ??_C@_13CIFDLIMG@?$AAw?$AA?$AA@
  00117	8d 8d e8 fe ff
	ff		 lea	 ecx, DWORD PTR _FileName$140918[ebp]
  0011d	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00122	50		 push	 eax
  00123	e8 00 00 00 00	 call	 __wfopen
  00128	83 c4 08	 add	 esp, 8
  0012b	a3 00 00 00 00	 mov	 DWORD PTR _debugLog, eax

; 70   :     }

  00130	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00137	8d 8d e8 fe ff
	ff		 lea	 ecx, DWORD PTR _FileName$140918[ebp]
  0013d	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN8@LOG@2:

; 71   : 
; 72   :     if (debugLog == NULL)

  00142	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _debugLog, 0
  00149	75 05		 jne	 SHORT $LN7@LOG@2

; 73   :     {
; 74   :         return;

  0014b	e9 11 01 00 00	 jmp	 $LN12@LOG@2
$LN7@LOG@2:

; 75   :     }
; 76   : 
; 77   :     if(StampEnabled)

  00150	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?StampEnabled@@3HA, 0 ; StampEnabled
  00157	74 7a		 je	 SHORT $LN6@LOG@2

; 78   :     {
; 79   :         SysTime = timeGetTime();

  00159	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__timeGetTime@0
  0015f	89 45 ec	 mov	 DWORD PTR _SysTime$[ebp], eax

; 80   : 
; 81   :         _ftime(&TimeB);

  00162	8d 8d 04 ff ff
	ff		 lea	 ecx, DWORD PTR _TimeB$[ebp]
  00168	51		 push	 ecx
  00169	e8 00 00 00 00	 call	 __ftime64
  0016e	83 c4 04	 add	 esp, 4

; 82   :         Time = localtime(&TimeB.time);

  00171	8d 95 04 ff ff
	ff		 lea	 edx, DWORD PTR _TimeB$[ebp]
  00177	52		 push	 edx
  00178	e8 00 00 00 00	 call	 _localtime
  0017d	83 c4 04	 add	 esp, 4
  00180	89 85 18 ff ff
	ff		 mov	 DWORD PTR _Time$[ebp], eax

; 83   :         wcsftime(Stamp, 100, L"%y%m%d %H%M%S", Time);

  00186	8b 85 18 ff ff
	ff		 mov	 eax, DWORD PTR _Time$[ebp]
  0018c	50		 push	 eax
  0018d	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@JLGCFIDN@?$AA?$CF?$AAy?$AA?$CF?$AAm?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAH?$AA?$CF?$AAM?$AA?$CF?$AAS?$AA?$AA@
  00192	6a 64		 push	 100			; 00000064H
  00194	8d 8d 1c ff ff
	ff		 lea	 ecx, DWORD PTR _Stamp$[ebp]
  0019a	51		 push	 ecx
  0019b	e8 00 00 00 00	 call	 _wcsftime
  001a0	83 c4 10	 add	 esp, 16			; 00000010H

; 84   :         fwprintf(debugLog, L"%s.%03d(%03d)", Stamp, TimeB.millitm, SysTime % 1000);

  001a3	8b 45 ec	 mov	 eax, DWORD PTR _SysTime$[ebp]
  001a6	33 d2		 xor	 edx, edx
  001a8	b9 e8 03 00 00	 mov	 ecx, 1000		; 000003e8H
  001ad	f7 f1		 div	 ecx
  001af	52		 push	 edx
  001b0	0f b7 95 0c ff
	ff ff		 movzx	 edx, WORD PTR _TimeB$[ebp+8]
  001b7	52		 push	 edx
  001b8	8d 85 1c ff ff
	ff		 lea	 eax, DWORD PTR _Stamp$[ebp]
  001be	50		 push	 eax
  001bf	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@NPMAAEGG@?$AA?$CF?$AAs?$AA?4?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CI?$AA?$CF?$AA0?$AA3?$AAd?$AA?$CJ?$AA?$AA@
  001c4	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _debugLog
  001ca	51		 push	 ecx
  001cb	e8 00 00 00 00	 call	 _fwprintf
  001d0	83 c4 14	 add	 esp, 20			; 00000014H
$LN6@LOG@2:

; 85   :     }
; 86   : 
; 87   :     for(int i(0); i < DebugLevel + 1; ++i)

  001d3	c7 85 e4 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$140924[ebp], 0
  001dd	eb 0f		 jmp	 SHORT $LN5@LOG@2
$LN4@LOG@2:
  001df	8b 95 e4 fe ff
	ff		 mov	 edx, DWORD PTR _i$140924[ebp]
  001e5	83 c2 01	 add	 edx, 1
  001e8	89 95 e4 fe ff
	ff		 mov	 DWORD PTR _i$140924[ebp], edx
$LN5@LOG@2:
  001ee	8b 45 08	 mov	 eax, DWORD PTR _DebugLevel$[ebp]
  001f1	83 c0 01	 add	 eax, 1
  001f4	39 85 e4 fe ff
	ff		 cmp	 DWORD PTR _i$140924[ebp], eax
  001fa	7d 13		 jge	 SHORT $LN3@LOG@2

; 88   :     {
; 89   :         fputwc(' ', debugLog);

  001fc	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _debugLog
  00202	51		 push	 ecx
  00203	6a 20		 push	 32			; 00000020H
  00205	e8 00 00 00 00	 call	 _fputwc
  0020a	83 c4 08	 add	 esp, 8

; 90   :     }

  0020d	eb d0		 jmp	 SHORT $LN4@LOG@2
$LN3@LOG@2:

; 91   : 
; 92   :     va_start(Args, Format);

  0020f	8d 55 10	 lea	 edx, DWORD PTR _Format$[ebp+4]
  00212	89 55 f0	 mov	 DWORD PTR _Args$[ebp], edx

; 93   :     vfwprintf(debugLog, Format, Args);

  00215	8b 45 f0	 mov	 eax, DWORD PTR _Args$[ebp]
  00218	50		 push	 eax
  00219	8b 4d 0c	 mov	 ecx, DWORD PTR _Format$[ebp]
  0021c	51		 push	 ecx
  0021d	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _debugLog
  00223	52		 push	 edx
  00224	e8 00 00 00 00	 call	 _vfwprintf
  00229	83 c4 0c	 add	 esp, 12			; 0000000cH

; 94   :     va_end(Args);

  0022c	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _Args$[ebp], 0

; 95   : 
; 96   :     fputwc('\n', debugLog);

  00233	a1 00 00 00 00	 mov	 eax, DWORD PTR _debugLog
  00238	50		 push	 eax
  00239	6a 0a		 push	 10			; 0000000aH
  0023b	e8 00 00 00 00	 call	 _fputwc
  00240	83 c4 08	 add	 esp, 8

; 97   :     if(FlushAfterEachWrite || DebugLevel == 0)

  00243	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?FlushAfterEachWrite@@3HA, 0 ; FlushAfterEachWrite
  0024a	75 06		 jne	 SHORT $LN1@LOG@2
  0024c	83 7d 08 00	 cmp	 DWORD PTR _DebugLevel$[ebp], 0
  00250	75 0f		 jne	 SHORT $LN12@LOG@2
$LN1@LOG@2:

; 98   :     {
; 99   :         fflush(debugLog);

  00252	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _debugLog
  00258	51		 push	 ecx
  00259	e8 00 00 00 00	 call	 _fflush
  0025e	83 c4 04	 add	 esp, 4
$LN12@LOG@2:

; 100  :     }
; 101  : }

  00261	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00264	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0026b	59		 pop	 ecx
  0026c	8b 4d e8	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  0026f	33 cd		 xor	 ecx, ebp
  00271	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00276	8b e5		 mov	 esp, ebp
  00278	5d		 pop	 ebp
  00279	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?LOG@@YAXHPB_WZZ$0:
  00000	8d 8d c8 fe ff
	ff		 lea	 ecx, DWORD PTR $T344808[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?LOG@@YAXHPB_WZZ$1:
  0000b	8d 8d ac fe ff
	ff		 lea	 ecx, DWORD PTR $T344809[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?LOG@@YAXHPB_WZZ$2:
  00016	8d 8d e8 fe ff
	ff		 lea	 ecx, DWORD PTR _FileName$140918[ebp]
  0001c	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?LOG@@YAXHPB_WZZ:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 8a a4 fe ff
	ff		 mov	 ecx, DWORD PTR [edx-348]
  0002e	33 c8		 xor	 ecx, eax
  00030	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00035	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00038	33 c8		 xor	 ecx, eax
  0003a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?LOG@@YAXHPB_WZZ
  00044	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?LOG@@YAXHPB_WZZ ENDP					; LOG
; Function compile flags: /Odtp
;	COMDAT ??__EDebugLogFilename@@YAXXZ
text$yc	SEGMENT
??__EDebugLogFilename@@YAXXZ PROC			; `dynamic initializer for 'DebugLogFilename'', COMDAT

; 35   : SettingStringValue DebugLogFilename;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  00008	e8 00 00 00 00	 call	 ??0SettingStringValue@@QAE@XZ ; SettingStringValue::SettingStringValue
  0000d	68 00 00 00 00	 push	 OFFSET ??__FDebugLogFilename@@YAXXZ ; `dynamic atexit destructor for 'DebugLogFilename''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EDebugLogFilename@@YAXXZ ENDP			; `dynamic initializer for 'DebugLogFilename''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__EDebugSettings@@YAXXZ
text$yc	SEGMENT
??__EDebugSettings@@YAXXZ PROC				; `dynamic initializer for 'DebugSettings'', COMDAT

; 211  :         "Debug Log File", TCHARSTRING, 0, DebugLogFilename.GetPointer(),

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  00008	e8 00 00 00 00	 call	 ?GetPointer@SettingStringValue@@QAEPAJXZ ; SettingStringValue::GetPointer
  0000d	a3 a8 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+168, eax

; 212  :         (LONG_PTR)"", 0, 0, 0, 0,

  00012	c7 05 ac 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+172, OFFSET ??_C@_00CNPNBAHC@?$AA@
  0001c	c7 05 b0 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+176, 0
  00026	c7 05 b4 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+180, 0
  00030	c7 05 b8 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+184, 0
  0003a	c7 05 bc 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+188, 0

; 213  :         NULL,

  00044	c7 05 c0 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+192, 0

; 214  :         "Files", "DebugLogFilename", NULL,

  0004e	c7 05 c4 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+196, OFFSET ??_C@_05DIOAMJFE@Files?$AA@
  00058	c7 05 c8 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+200, OFFSET ??_C@_0BB@OCNCIJIM@DebugLogFilename?$AA@
  00062	c7 05 cc 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+204, 0

; 215  :     },
; 216  :     {
; 217  :         "Put Time Stamp in Log", ONOFF, 0, (LONG_PTR*)&StampEnabled,

  0006c	c7 05 d0 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+208, OFFSET ??_C@_0BG@ENFHCAKA@Put?5Time?5Stamp?5in?5Log?$AA@
  00076	c7 05 d4 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+212, 1
  00080	c7 05 d8 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+216, 0
  0008a	c7 05 dc 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+220, OFFSET ?StampEnabled@@3HA ; StampEnabled

; 218  :         TRUE, 0, 1, 1, 1,

  00094	c7 05 e0 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+224, 1
  0009e	c7 05 e4 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+228, 0
  000a8	c7 05 e8 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+232, 1
  000b2	c7 05 ec 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+236, 1
  000bc	c7 05 f0 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+240, 1

; 219  :         NULL,

  000c6	c7 05 f4 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+244, 0

; 220  :         "Files", "StampEnabled", NULL,

  000d0	c7 05 f8 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+248, OFFSET ??_C@_05DIOAMJFE@Files?$AA@
  000da	c7 05 fc 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+252, OFFSET ??_C@_0N@ICLELBJE@StampEnabled?$AA@
  000e4	c7 05 00 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?DebugSettings@@3PAUSETTING@@A+256, 0

; 221  :     },
; 222  : };

  000ee	5d		 pop	 ebp
  000ef	c3		 ret	 0
??__EDebugSettings@@YAXXZ ENDP				; `dynamic initializer for 'DebugSettings''
; Function compile flags: /Odtp
;	COMDAT ??__FDebugLogFilename@@YAXXZ
text$yd	SEGMENT
??__FDebugLogFilename@@YAXXZ PROC			; `dynamic atexit destructor for 'DebugLogFilename'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?DebugLogFilename@@3VSettingStringValue@@A ; DebugLogFilename
  00008	e8 00 00 00 00	 call	 ??1SettingStringValue@@QAE@XZ ; SettingStringValue::~SettingStringValue
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FDebugLogFilename@@YAXXZ ENDP			; `dynamic atexit destructor for 'DebugLogFilename''
PUBLIC	?DebugSettings@@3PAUSETTING@@A			; DebugSettings
PUBLIC	?DebugLogFilename@@3VSettingStringValue@@A	; DebugLogFilename
?DebugLogFilename@@3VSettingStringValue@@A DD 01H DUP (?) ; DebugLogFilename
?DebugSettings@@3PAUSETTING@@A DD FLAT:??_C@_09NNILCKOM@Debug?5Log?$AA@ ; DebugSettings
	DD	01H
	DD	00H
	DD	FLAT:?DebugLogEnabled@@3HA
	DD	01H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05DIOAMJFE@Files?$AA@
	DD	FLAT:??_C@_0BA@GOHPCAKD@DebugLogEnabled?$AA@
	DD	00H
	DD	FLAT:??_C@_0M@MDBKNIG@Debug?5Level?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?gDebugLogLevel@@3JA
	DD	01H
	DD	00H
	DD	05H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05DIOAMJFE@Files?$AA@
	DD	FLAT:??_C@_0L@PNFLEPPN@DebugLevel?$AA@
	DD	00H
	DD	FLAT:??_C@_0BH@GBNHOPBB@Flush?5After?5Each?5Write?$AA@
	DD	01H
	DD	00H
	DD	FLAT:?FlushAfterEachWrite@@3HA
	DD	01H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05DIOAMJFE@Files?$AA@
	DD	FLAT:??_C@_0BE@LLMELDJG@FlushAfterEachWrite?$AA@
	DD	FLAT:?FlushAfterEachWrite_OnChange@@YAHJ@Z
	DD	FLAT:??_C@_0P@DECLJHEH@Debug?5Log?5File?$AA@
	DD	06H
	DD	00H
	ORG $+92
_DebugLogFilename$initializer$ DD FLAT:??__EDebugLogFilename@@YAXXZ
_DebugSettings$initializer$ DD FLAT:??__EDebugSettings@@YAXXZ
END
