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

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

INCLUDELIB OLDNAMES

PUBLIC	?m_szFontName@CVTDrawer@@0QB_WB			; CVTDrawer::m_szFontName
PUBLIC	?m_ColourTable@CVTDrawer@@0PAKA			; CVTDrawer::m_ColourTable
PUBLIC	??_C@_13IIGBBHPI@?$AAW?$AA?$AA@			; `string'
PUBLIC	??_C@_13NAACAHKO@?$AAX?$AA?$AA@			; `string'
PUBLIC	??_C@_15EJIBIJAF@?$AAW?$AAy?$AA?$AA@		; `string'
EXTRN	__imp__SetRectEmpty@4:PROC
EXTRN	__imp__GetTextMetricsW@8:PROC
;	COMDAT ??_C@_15EJIBIJAF@?$AAW?$AAy?$AA?$AA@
CONST	SEGMENT
??_C@_15EJIBIJAF@?$AAW?$AAy?$AA?$AA@ DB 'W', 00H, 'y', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_13NAACAHKO@?$AAX?$AA?$AA@
CONST	SEGMENT
??_C@_13NAACAHKO@?$AAX?$AA?$AA@ DB 'X', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_13IIGBBHPI@?$AAW?$AA?$AA@
CONST	SEGMENT
??_C@_13IIGBBHPI@?$AAW?$AA?$AA@ DB 'W', 00H, 00H, 00H	; `string'
?m_szFontName@CVTDrawer@@0QB_WB DB 'A', 00H, 'r', 00H, 'i', 00H, 'a', 00H
	DB	'l', 00H, 00H, 00H				; CVTDrawer::m_szFontName
	ORG $+52
	ORG $+2
?m_ColourTable@CVTDrawer@@0PAKA DD 00H			; CVTDrawer::m_ColourTable
	DD	0ffH
	DD	0ff00H
	DD	0ffffH
	DD	0ff0000H
	DD	0ff00fcH
	DD	0ffff00H
	DD	0ffffffH
PUBLIC	__real@4058000000000000
PUBLIC	__real@4024000000000000
PUBLIC	?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
;	COMDAT __real@4058000000000000
; File c:\develop\dscaler423a\dscaler\vtdrawer.cpp
CONST	SEGMENT
__real@4058000000000000 DQ 04058000000000000r	; 96
CONST	ENDS
;	COMDAT __real@4024000000000000
CONST	SEGMENT
__real@4024000000000000 DQ 04024000000000000r	; 10
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z
_TEXT	SEGMENT
tv70 = -48						; size = 4
tv66 = -44						; size = 4
_this$ = -40						; size = 4
_SizeSmall$140162 = -36					; size = 8
_hFont$ = -28						; size = 4
_bWeight$ = -24						; size = 4
_hSave$ = -20						; size = 4
_Size$ = -16						; size = 8
_dwQuality$ = -8					; size = 4
_bWiden$ = -4						; size = 4
_hDC$ = 8						; size = 4
_iSize$ = 12						; size = 8
_iWidth$ = 20						; size = 8
_szFaceName$ = 28					; size = 4
_bAntiAliased$ = 32					; size = 4
_bWidenFont$ = 36					; size = 4
?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z PROC ; CVTDrawer::MakeFont, COMDAT
; _this$ = ecx

; 808  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 30	 sub	 esp, 48			; 00000030H
  00006	89 4d d8	 mov	 DWORD PTR _this$[ebp], ecx

; 809  :     // WidenFont = make X as wide as the average width of W and X
; 810  :     BOOL bWiden = bWidenFont && (iWidth > 10);

  00009	83 7d 24 00	 cmp	 DWORD PTR _bWidenFont$[ebp], 0
  0000d	74 19		 je	 SHORT $LN4@MakeFont
  0000f	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@4024000000000000
  00015	dc 5d 14	 fcomp	 QWORD PTR _iWidth$[ebp]
  00018	df e0		 fnstsw	 ax
  0001a	f6 c4 05	 test	 ah, 5
  0001d	7a 09		 jp	 SHORT $LN4@MakeFont
  0001f	c7 45 d4 01 00
	00 00		 mov	 DWORD PTR tv66[ebp], 1
  00026	eb 07		 jmp	 SHORT $LN5@MakeFont
$LN4@MakeFont:
  00028	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR tv66[ebp], 0
$LN5@MakeFont:
  0002f	8b 45 d4	 mov	 eax, DWORD PTR tv66[ebp]
  00032	89 45 fc	 mov	 DWORD PTR _bWiden$[ebp], eax

; 811  : 
; 812  :     DWORD dwQuality = bAntiAliased ? ANTIALIASED_QUALITY : NONANTIALIASED_QUALITY;

  00035	33 c9		 xor	 ecx, ecx
  00037	83 7d 20 00	 cmp	 DWORD PTR _bAntiAliased$[ebp], 0
  0003b	0f 95 c1	 setne	 cl
  0003e	83 c1 03	 add	 ecx, 3
  00041	89 4d f8	 mov	 DWORD PTR _dwQuality$[ebp], ecx

; 813  : 
; 814  :     // Small fonts blur when too heavy
; 815  :     LONG bWeight = (iWidth > 10) ? FW_SEMIBOLD : FW_NORMAL; //bWiden ? FW_BOLD : FW_SEMIBOLD;

  00044	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@4024000000000000
  0004a	dc 5d 14	 fcomp	 QWORD PTR _iWidth$[ebp]
  0004d	df e0		 fnstsw	 ax
  0004f	f6 c4 05	 test	 ah, 5
  00052	7a 09		 jp	 SHORT $LN6@MakeFont
  00054	c7 45 d0 58 02
	00 00		 mov	 DWORD PTR tv70[ebp], 600 ; 00000258H
  0005b	eb 07		 jmp	 SHORT $LN7@MakeFont
$LN6@MakeFont:
  0005d	c7 45 d0 90 01
	00 00		 mov	 DWORD PTR tv70[ebp], 400 ; 00000190H
$LN7@MakeFont:
  00064	8b 55 d0	 mov	 edx, DWORD PTR tv70[ebp]
  00067	89 55 e8	 mov	 DWORD PTR _bWeight$[ebp], edx

; 816  : 
; 817  :     HFONT hFont = CreateFont(-96, 96, 0, 0, bWeight, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
; 818  :         OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, dwQuality, DEFAULT_PITCH, szFaceName);

  0006a	8b 45 1c	 mov	 eax, DWORD PTR _szFaceName$[ebp]
  0006d	50		 push	 eax
  0006e	6a 00		 push	 0
  00070	8b 4d f8	 mov	 ecx, DWORD PTR _dwQuality$[ebp]
  00073	51		 push	 ecx
  00074	6a 00		 push	 0
  00076	6a 00		 push	 0
  00078	6a 01		 push	 1
  0007a	6a 00		 push	 0
  0007c	6a 00		 push	 0
  0007e	6a 00		 push	 0
  00080	8b 55 e8	 mov	 edx, DWORD PTR _bWeight$[ebp]
  00083	52		 push	 edx
  00084	6a 00		 push	 0
  00086	6a 00		 push	 0
  00088	6a 60		 push	 96			; 00000060H
  0008a	6a a0		 push	 -96			; ffffffa0H
  0008c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateFontW@56
  00092	89 45 e4	 mov	 DWORD PTR _hFont$[ebp], eax

; 819  :     HGDIOBJ hSave = SelectObject(hDC, hFont);

  00095	8b 45 e4	 mov	 eax, DWORD PTR _hFont$[ebp]
  00098	50		 push	 eax
  00099	8b 4d 08	 mov	 ecx, DWORD PTR _hDC$[ebp]
  0009c	51		 push	 ecx
  0009d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
  000a3	89 45 ec	 mov	 DWORD PTR _hSave$[ebp], eax

; 820  : 
; 821  :     SIZE Size;
; 822  :     GetTextExtentPoint32(hDC, _T("W"), 1, &Size);

  000a6	8d 55 f0	 lea	 edx, DWORD PTR _Size$[ebp]
  000a9	52		 push	 edx
  000aa	6a 01		 push	 1
  000ac	68 00 00 00 00	 push	 OFFSET ??_C@_13IIGBBHPI@?$AAW?$AA?$AA@
  000b1	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  000b4	50		 push	 eax
  000b5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTextExtentPoint32W@16

; 823  :     if (bWiden)

  000bb	83 7d fc 00	 cmp	 DWORD PTR _bWiden$[ebp], 0
  000bf	74 29		 je	 SHORT $LN1@MakeFont

; 824  :     {
; 825  :         SIZE SizeSmall;
; 826  :         GetTextExtentPoint32(hDC, _T("X"), 1, &SizeSmall);

  000c1	8d 4d dc	 lea	 ecx, DWORD PTR _SizeSmall$140162[ebp]
  000c4	51		 push	 ecx
  000c5	6a 01		 push	 1
  000c7	68 00 00 00 00	 push	 OFFSET ??_C@_13NAACAHKO@?$AAX?$AA?$AA@
  000cc	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  000cf	52		 push	 edx
  000d0	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTextExtentPoint32W@16

; 827  :         Size.cx = (Size.cx + 2 * SizeSmall.cx) / 3;

  000d6	8b 45 dc	 mov	 eax, DWORD PTR _SizeSmall$140162[ebp]
  000d9	8b 4d f0	 mov	 ecx, DWORD PTR _Size$[ebp]
  000dc	8d 04 41	 lea	 eax, DWORD PTR [ecx+eax*2]
  000df	99		 cdq
  000e0	b9 03 00 00 00	 mov	 ecx, 3
  000e5	f7 f9		 idiv	 ecx
  000e7	89 45 f0	 mov	 DWORD PTR _Size$[ebp], eax
$LN1@MakeFont:

; 828  :     }
; 829  :     iWidth = iWidth * 96 / Size.cx;

  000ea	dd 45 14	 fld	 QWORD PTR _iWidth$[ebp]
  000ed	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@4058000000000000
  000f3	da 75 f0	 fidiv	 DWORD PTR _Size$[ebp]
  000f6	dd 5d 14	 fstp	 QWORD PTR _iWidth$[ebp]

; 830  : 
; 831  :     GetTextExtentPoint32(hDC, _T("Wy"), 1, &Size);

  000f9	8d 55 f0	 lea	 edx, DWORD PTR _Size$[ebp]
  000fc	52		 push	 edx
  000fd	6a 01		 push	 1
  000ff	68 00 00 00 00	 push	 OFFSET ??_C@_15EJIBIJAF@?$AAW?$AAy?$AA?$AA@
  00104	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  00107	50		 push	 eax
  00108	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTextExtentPoint32W@16

; 832  :     iSize = iSize * 96 / Size.cy;

  0010e	dd 45 0c	 fld	 QWORD PTR _iSize$[ebp]
  00111	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@4058000000000000
  00117	da 75 f4	 fidiv	 DWORD PTR _Size$[ebp+4]
  0011a	dd 5d 0c	 fstp	 QWORD PTR _iSize$[ebp]

; 833  : 
; 834  :     SelectObject(hDC, hSave);

  0011d	8b 4d ec	 mov	 ecx, DWORD PTR _hSave$[ebp]
  00120	51		 push	 ecx
  00121	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  00124	52		 push	 edx
  00125	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8

; 835  :     DeleteObject(hFont);

  0012b	8b 45 e4	 mov	 eax, DWORD PTR _hFont$[ebp]
  0012e	50		 push	 eax
  0012f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 836  : 
; 837  :     hFont = CreateFont((int)-iSize, (int)iWidth, 0, 0, bWeight, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
; 838  :         OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, dwQuality, DEFAULT_PITCH, szFaceName);

  00135	8b 4d 1c	 mov	 ecx, DWORD PTR _szFaceName$[ebp]
  00138	51		 push	 ecx
  00139	6a 00		 push	 0
  0013b	8b 55 f8	 mov	 edx, DWORD PTR _dwQuality$[ebp]
  0013e	52		 push	 edx
  0013f	6a 00		 push	 0
  00141	6a 00		 push	 0
  00143	6a 01		 push	 1
  00145	6a 00		 push	 0
  00147	6a 00		 push	 0
  00149	6a 00		 push	 0
  0014b	8b 45 e8	 mov	 eax, DWORD PTR _bWeight$[ebp]
  0014e	50		 push	 eax
  0014f	6a 00		 push	 0
  00151	6a 00		 push	 0
  00153	dd 45 14	 fld	 QWORD PTR _iWidth$[ebp]
  00156	e8 00 00 00 00	 call	 __ftol2_sse
  0015b	50		 push	 eax
  0015c	dd 45 0c	 fld	 QWORD PTR _iSize$[ebp]
  0015f	d9 e0		 fchs
  00161	e8 00 00 00 00	 call	 __ftol2_sse
  00166	50		 push	 eax
  00167	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateFontW@56
  0016d	89 45 e4	 mov	 DWORD PTR _hFont$[ebp], eax

; 839  : 
; 840  :     return hFont;

  00170	8b 45 e4	 mov	 eax, DWORD PTR _hFont$[ebp]

; 841  : }

  00173	8b e5		 mov	 esp, ebp
  00175	5d		 pop	 ebp
  00176	c2 20 00	 ret	 32			; 00000020H
?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ENDP ; CVTDrawer::MakeFont
_TEXT	ENDS
PUBLIC	?DeleteFonts@CVTDrawer@@AAEXXZ			; CVTDrawer::DeleteFonts
; Function compile flags: /Odtp
;	COMDAT ?DeleteFonts@CVTDrawer@@AAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?DeleteFonts@CVTDrawer@@AAEXXZ PROC			; CVTDrawer::DeleteFonts, COMDAT
; _this$ = ecx

; 756  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 757  :     if (m_hNormalFont != NULL)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 b8 00 01 00
	00 00		 cmp	 DWORD PTR [eax+256], 0
  00011	74 1d		 je	 SHORT $LN8@DeleteFont

; 758  :     {
; 759  :         DeleteObject(m_hNormalFont);

  00013	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	8b 91 00 01 00
	00		 mov	 edx, DWORD PTR [ecx+256]
  0001c	52		 push	 edx
  0001d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 760  :         m_hNormalFont = NULL;

  00023	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	c7 80 00 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+256], 0
$LN8@DeleteFont:

; 761  :     }
; 762  : 
; 763  :     if (m_hDoubleFont != NULL)

  00030	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00033	83 b9 04 01 00
	00 00		 cmp	 DWORD PTR [ecx+260], 0
  0003a	74 1d		 je	 SHORT $LN7@DeleteFont

; 764  :     {
; 765  :         DeleteObject(m_hDoubleFont);

  0003c	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0003f	8b 82 04 01 00
	00		 mov	 eax, DWORD PTR [edx+260]
  00045	50		 push	 eax
  00046	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 766  :         m_hDoubleFont = NULL;

  0004c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004f	c7 81 04 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+260], 0
$LN7@DeleteFont:

; 767  :     }
; 768  : 
; 769  :     if (m_hNormalFontSmaller != NULL)

  00059	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0005c	83 ba 08 01 00
	00 00		 cmp	 DWORD PTR [edx+264], 0
  00063	74 1d		 je	 SHORT $LN6@DeleteFont

; 770  :     {
; 771  :         DeleteObject(m_hNormalFontSmaller);

  00065	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00068	8b 88 08 01 00
	00		 mov	 ecx, DWORD PTR [eax+264]
  0006e	51		 push	 ecx
  0006f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 772  :         m_hNormalFontSmaller = NULL;

  00075	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00078	c7 82 08 01 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+264], 0
$LN6@DeleteFont:

; 773  :     }
; 774  : 
; 775  :     if (m_hDoubleFontSmaller != NULL)

  00082	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00085	83 b8 0c 01 00
	00 00		 cmp	 DWORD PTR [eax+268], 0
  0008c	74 1d		 je	 SHORT $LN5@DeleteFont

; 776  :     {
; 777  :         DeleteObject(m_hDoubleFontSmaller);

  0008e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00091	8b 91 0c 01 00
	00		 mov	 edx, DWORD PTR [ecx+268]
  00097	52		 push	 edx
  00098	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 778  :         m_hDoubleFontSmaller = NULL;

  0009e	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000a1	c7 80 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+268], 0
$LN5@DeleteFont:

; 779  :     }
; 780  : 
; 781  :     if (m_hLowQNormalFont != NULL)

  000ab	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ae	83 b9 10 01 00
	00 00		 cmp	 DWORD PTR [ecx+272], 0
  000b5	74 1d		 je	 SHORT $LN4@DeleteFont

; 782  :     {
; 783  :         DeleteObject(m_hLowQNormalFont);

  000b7	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000ba	8b 82 10 01 00
	00		 mov	 eax, DWORD PTR [edx+272]
  000c0	50		 push	 eax
  000c1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 784  :         m_hLowQNormalFont = NULL;

  000c7	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ca	c7 81 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+272], 0
$LN4@DeleteFont:

; 785  :     }
; 786  : 
; 787  :     if (m_hLowQDoubleFont != NULL)

  000d4	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000d7	83 ba 14 01 00
	00 00		 cmp	 DWORD PTR [edx+276], 0
  000de	74 1d		 je	 SHORT $LN3@DeleteFont

; 788  :     {
; 789  :         DeleteObject(m_hLowQDoubleFont);

  000e0	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000e3	8b 88 14 01 00
	00		 mov	 ecx, DWORD PTR [eax+276]
  000e9	51		 push	 ecx
  000ea	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 790  :         m_hLowQDoubleFont = NULL;

  000f0	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000f3	c7 82 14 01 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+276], 0
$LN3@DeleteFont:

; 791  :     }
; 792  : 
; 793  :     if (m_hLowQNormalFontSmaller != NULL)

  000fd	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00100	83 b8 18 01 00
	00 00		 cmp	 DWORD PTR [eax+280], 0
  00107	74 1d		 je	 SHORT $LN2@DeleteFont

; 794  :     {
; 795  :         DeleteObject(m_hLowQNormalFontSmaller);

  00109	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0010c	8b 91 18 01 00
	00		 mov	 edx, DWORD PTR [ecx+280]
  00112	52		 push	 edx
  00113	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 796  :         m_hLowQNormalFontSmaller = NULL;

  00119	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0011c	c7 80 18 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+280], 0
$LN2@DeleteFont:

; 797  :     }
; 798  : 
; 799  :     if (m_hLowQDoubleFontSmaller != NULL)

  00126	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00129	83 b9 1c 01 00
	00 00		 cmp	 DWORD PTR [ecx+284], 0
  00130	74 1d		 je	 SHORT $LN9@DeleteFont

; 800  :     {
; 801  :         DeleteObject(m_hLowQDoubleFontSmaller);

  00132	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00135	8b 82 1c 01 00
	00		 mov	 eax, DWORD PTR [edx+284]
  0013b	50		 push	 eax
  0013c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 802  :         m_hLowQDoubleFontSmaller = NULL;

  00142	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00145	c7 81 1c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+284], 0
$LN9@DeleteFont:

; 803  :     }
; 804  : }

  0014f	8b e5		 mov	 esp, ebp
  00151	5d		 pop	 ebp
  00152	c3		 ret	 0
?DeleteFonts@CVTDrawer@@AAEXXZ ENDP			; CVTDrawer::DeleteFonts
_TEXT	ENDS
PUBLIC	?CreateMissingLowQFonts@CVTDrawer@@AAEXPAUHDC__@@@Z ; CVTDrawer::CreateMissingLowQFonts
; Function compile flags: /Odtp
;	COMDAT ?CreateMissingLowQFonts@CVTDrawer@@AAEXPAUHDC__@@@Z
_TEXT	SEGMENT
_this$ = -68						; size = 4
_hSaveFont$ = -64					; size = 4
_TextMetric$ = -60					; size = 60
_hDC$ = 8						; size = 4
?CreateMissingLowQFonts@CVTDrawer@@AAEXPAUHDC__@@@Z PROC ; CVTDrawer::CreateMissingLowQFonts, COMDAT
; _this$ = ecx

; 724  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 44	 sub	 esp, 68			; 00000044H
  00006	89 4d bc	 mov	 DWORD PTR _this$[ebp], ecx

; 725  :     if (m_hLowQNormalFont == NULL)

  00009	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 b8 10 01 00
	00 00		 cmp	 DWORD PTR [eax+272], 0
  00013	75 3c		 jne	 SHORT $LN4@CreateMiss

; 726  :     {
; 727  :         m_hLowQNormalFont = MakeFont(hDC, m_dAvgHeight, m_dAvgWidth, m_szFontName, FALSE, TRUE);

  00015	6a 01		 push	 1
  00017	6a 00		 push	 0
  00019	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  0001e	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00021	83 ec 08	 sub	 esp, 8
  00024	dd 81 28 01 00
	00		 fld	 QWORD PTR [ecx+296]
  0002a	dd 1c 24	 fstp	 QWORD PTR [esp]
  0002d	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  00030	83 ec 08	 sub	 esp, 8
  00033	dd 82 30 01 00
	00		 fld	 QWORD PTR [edx+304]
  00039	dd 1c 24	 fstp	 QWORD PTR [esp]
  0003c	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  0003f	50		 push	 eax
  00040	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00043	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  00048	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	89 81 10 01 00
	00		 mov	 DWORD PTR [ecx+272], eax
$LN4@CreateMiss:

; 728  :     }
; 729  : 
; 730  :     if (m_hLowQDoubleFont == NULL)

  00051	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  00054	83 ba 14 01 00
	00 00		 cmp	 DWORD PTR [edx+276], 0
  0005b	75 3e		 jne	 SHORT $LN3@CreateMiss

; 731  :     {
; 732  :         m_hLowQDoubleFont = MakeFont(hDC, m_dAvgHeight * 2, m_dAvgWidth, m_szFontName, FALSE, TRUE);

  0005d	6a 01		 push	 1
  0005f	6a 00		 push	 0
  00061	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  00066	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  00069	83 ec 08	 sub	 esp, 8
  0006c	dd 80 28 01 00
	00		 fld	 QWORD PTR [eax+296]
  00072	dd 1c 24	 fstp	 QWORD PTR [esp]
  00075	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00078	dd 81 30 01 00
	00		 fld	 QWORD PTR [ecx+304]
  0007e	dc c0		 fadd	 ST(0), ST(0)
  00080	83 ec 08	 sub	 esp, 8
  00083	dd 1c 24	 fstp	 QWORD PTR [esp]
  00086	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  00089	52		 push	 edx
  0008a	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0008d	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  00092	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00095	89 81 14 01 00
	00		 mov	 DWORD PTR [ecx+276], eax
$LN3@CreateMiss:

; 733  :     }
; 734  : 
; 735  :     if (m_hLowQNormalFontSmaller == NULL)

  0009b	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  0009e	83 ba 18 01 00
	00 00		 cmp	 DWORD PTR [edx+280], 0
  000a5	75 3c		 jne	 SHORT $LN2@CreateMiss

; 736  :     {
; 737  :         m_hLowQNormalFontSmaller = MakeFont(hDC, m_dAvgHeight, m_dAvgWidth, m_szFontName, FALSE, FALSE);

  000a7	6a 00		 push	 0
  000a9	6a 00		 push	 0
  000ab	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  000b0	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  000b3	83 ec 08	 sub	 esp, 8
  000b6	dd 80 28 01 00
	00		 fld	 QWORD PTR [eax+296]
  000bc	dd 1c 24	 fstp	 QWORD PTR [esp]
  000bf	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000c2	83 ec 08	 sub	 esp, 8
  000c5	dd 81 30 01 00
	00		 fld	 QWORD PTR [ecx+304]
  000cb	dd 1c 24	 fstp	 QWORD PTR [esp]
  000ce	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  000d1	52		 push	 edx
  000d2	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000d5	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  000da	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000dd	89 81 18 01 00
	00		 mov	 DWORD PTR [ecx+280], eax
$LN2@CreateMiss:

; 738  :     }
; 739  : 
; 740  :     if (m_hLowQDoubleFontSmaller == NULL)

  000e3	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  000e6	83 ba 1c 01 00
	00 00		 cmp	 DWORD PTR [edx+284], 0
  000ed	75 3e		 jne	 SHORT $LN1@CreateMiss

; 741  :     {
; 742  :         m_hLowQDoubleFontSmaller = MakeFont(hDC, m_dAvgHeight * 2, m_dAvgWidth, m_szFontName, FALSE, FALSE);

  000ef	6a 00		 push	 0
  000f1	6a 00		 push	 0
  000f3	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  000f8	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  000fb	83 ec 08	 sub	 esp, 8
  000fe	dd 80 28 01 00
	00		 fld	 QWORD PTR [eax+296]
  00104	dd 1c 24	 fstp	 QWORD PTR [esp]
  00107	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0010a	dd 81 30 01 00
	00		 fld	 QWORD PTR [ecx+304]
  00110	dc c0		 fadd	 ST(0), ST(0)
  00112	83 ec 08	 sub	 esp, 8
  00115	dd 1c 24	 fstp	 QWORD PTR [esp]
  00118	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  0011b	52		 push	 edx
  0011c	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0011f	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  00124	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00127	89 81 1c 01 00
	00		 mov	 DWORD PTR [ecx+284], eax
$LN1@CreateMiss:

; 743  :     }
; 744  : 
; 745  :     TEXTMETRIC TextMetric;
; 746  : 
; 747  :     HGDIOBJ hSaveFont = SelectObject(hDC, m_hLowQNormalFont);

  0012d	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  00130	8b 82 10 01 00
	00		 mov	 eax, DWORD PTR [edx+272]
  00136	50		 push	 eax
  00137	8b 4d 08	 mov	 ecx, DWORD PTR _hDC$[ebp]
  0013a	51		 push	 ecx
  0013b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
  00141	89 45 c0	 mov	 DWORD PTR _hSaveFont$[ebp], eax

; 748  :     GetTextMetrics(hDC, &TextMetric);

  00144	8d 55 c4	 lea	 edx, DWORD PTR _TextMetric$[ebp]
  00147	52		 push	 edx
  00148	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  0014b	50		 push	 eax
  0014c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTextMetricsW@8

; 749  :     SelectObject(hDC, hSaveFont);

  00152	8b 4d c0	 mov	 ecx, DWORD PTR _hSaveFont$[ebp]
  00155	51		 push	 ecx
  00156	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  00159	52		 push	 edx
  0015a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8

; 750  : 
; 751  :     m_bFixedPitch = !(TextMetric.tmPitchAndFamily & TMPF_FIXED_PITCH);

  00160	0f b6 45 fb	 movzx	 eax, BYTE PTR _TextMetric$[ebp+55]
  00164	83 e0 01	 and	 eax, 1
  00167	f7 d8		 neg	 eax
  00169	1b c0		 sbb	 eax, eax
  0016b	83 c0 01	 add	 eax, 1
  0016e	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00171	89 81 20 01 00
	00		 mov	 DWORD PTR [ecx+288], eax

; 752  : }

  00177	8b e5		 mov	 esp, ebp
  00179	5d		 pop	 ebp
  0017a	c2 04 00	 ret	 4
?CreateMissingLowQFonts@CVTDrawer@@AAEXPAUHDC__@@@Z ENDP ; CVTDrawer::CreateMissingLowQFonts
_TEXT	ENDS
PUBLIC	?CreateMissingStandardFonts@CVTDrawer@@AAEXPAUHDC__@@@Z ; CVTDrawer::CreateMissingStandardFonts
; Function compile flags: /Odtp
;	COMDAT ?CreateMissingStandardFonts@CVTDrawer@@AAEXPAUHDC__@@@Z
_TEXT	SEGMENT
_this$ = -68						; size = 4
_hSaveFont$ = -64					; size = 4
_TextMetric$ = -60					; size = 60
_hDC$ = 8						; size = 4
?CreateMissingStandardFonts@CVTDrawer@@AAEXPAUHDC__@@@Z PROC ; CVTDrawer::CreateMissingStandardFonts, COMDAT
; _this$ = ecx

; 688  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 44	 sub	 esp, 68			; 00000044H
  00006	89 4d bc	 mov	 DWORD PTR _this$[ebp], ecx

; 689  :     if (m_hNormalFont == NULL)

  00009	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 b8 00 01 00
	00 00		 cmp	 DWORD PTR [eax+256], 0
  00013	75 41		 jne	 SHORT $LN4@CreateMiss@2

; 690  :     {
; 691  :         // Wide fonts for most charaters
; 692  :         m_hNormalFont = MakeFont(hDC, m_dAvgHeight, m_dAvgWidth, m_szFontName, m_bAntialias, TRUE);

  00015	6a 01		 push	 1
  00017	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	8b 51 28	 mov	 edx, DWORD PTR [ecx+40]
  0001d	52		 push	 edx
  0001e	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  00023	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	83 ec 08	 sub	 esp, 8
  00029	dd 80 28 01 00
	00		 fld	 QWORD PTR [eax+296]
  0002f	dd 1c 24	 fstp	 QWORD PTR [esp]
  00032	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00035	83 ec 08	 sub	 esp, 8
  00038	dd 81 30 01 00
	00		 fld	 QWORD PTR [ecx+304]
  0003e	dd 1c 24	 fstp	 QWORD PTR [esp]
  00041	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  00044	52		 push	 edx
  00045	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00048	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  0004d	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00050	89 81 00 01 00
	00		 mov	 DWORD PTR [ecx+256], eax
$LN4@CreateMiss@2:

; 693  :     }
; 694  : 
; 695  :     if (m_hDoubleFont == NULL)

  00056	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  00059	83 ba 04 01 00
	00 00		 cmp	 DWORD PTR [edx+260], 0
  00060	75 43		 jne	 SHORT $LN3@CreateMiss@2

; 696  :     {
; 697  :         // Wide double height fonts for most charaters
; 698  :         m_hDoubleFont = MakeFont(hDC, m_dAvgHeight * 2, m_dAvgWidth, m_szFontName, m_bAntialias, TRUE);

  00062	6a 01		 push	 1
  00064	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  00067	8b 48 28	 mov	 ecx, DWORD PTR [eax+40]
  0006a	51		 push	 ecx
  0006b	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  00070	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  00073	83 ec 08	 sub	 esp, 8
  00076	dd 82 28 01 00
	00		 fld	 QWORD PTR [edx+296]
  0007c	dd 1c 24	 fstp	 QWORD PTR [esp]
  0007f	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  00082	dd 80 30 01 00
	00		 fld	 QWORD PTR [eax+304]
  00088	dc c0		 fadd	 ST(0), ST(0)
  0008a	83 ec 08	 sub	 esp, 8
  0008d	dd 1c 24	 fstp	 QWORD PTR [esp]
  00090	8b 4d 08	 mov	 ecx, DWORD PTR _hDC$[ebp]
  00093	51		 push	 ecx
  00094	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00097	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  0009c	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  0009f	89 82 04 01 00
	00		 mov	 DWORD PTR [edx+260], eax
$LN3@CreateMiss@2:

; 699  :     }
; 700  : 
; 701  :     if (m_hNormalFontSmaller == NULL)

  000a5	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  000a8	83 b8 08 01 00
	00 00		 cmp	 DWORD PTR [eax+264], 0
  000af	75 41		 jne	 SHORT $LN2@CreateMiss@2

; 702  :     {
; 703  :         // Smaller font for wide characters like 'W' (double iso int for lessening rounding artifacts)
; 704  :         m_hNormalFontSmaller = MakeFont(hDC, m_dAvgHeight, m_dAvgWidth, m_szFontName, m_bAntialias, FALSE);

  000b1	6a 00		 push	 0
  000b3	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000b6	8b 51 28	 mov	 edx, DWORD PTR [ecx+40]
  000b9	52		 push	 edx
  000ba	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  000bf	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  000c2	83 ec 08	 sub	 esp, 8
  000c5	dd 80 28 01 00
	00		 fld	 QWORD PTR [eax+296]
  000cb	dd 1c 24	 fstp	 QWORD PTR [esp]
  000ce	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000d1	83 ec 08	 sub	 esp, 8
  000d4	dd 81 30 01 00
	00		 fld	 QWORD PTR [ecx+304]
  000da	dd 1c 24	 fstp	 QWORD PTR [esp]
  000dd	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  000e0	52		 push	 edx
  000e1	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000e4	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  000e9	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ec	89 81 08 01 00
	00		 mov	 DWORD PTR [ecx+264], eax
$LN2@CreateMiss@2:

; 705  :     }
; 706  : 
; 707  :     if (m_hDoubleFontSmaller == NULL)

  000f2	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  000f5	83 ba 0c 01 00
	00 00		 cmp	 DWORD PTR [edx+268], 0
  000fc	75 43		 jne	 SHORT $LN1@CreateMiss@2

; 708  :     {
; 709  :         // Smaller double height font for wide characters like 'W'
; 710  :         m_hDoubleFontSmaller = MakeFont(hDC, m_dAvgHeight * 2, m_dAvgWidth, m_szFontName, m_bAntialias, FALSE);

  000fe	6a 00		 push	 0
  00100	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  00103	8b 48 28	 mov	 ecx, DWORD PTR [eax+40]
  00106	51		 push	 ecx
  00107	68 00 00 00 00	 push	 OFFSET ?m_szFontName@CVTDrawer@@0QB_WB ; CVTDrawer::m_szFontName
  0010c	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  0010f	83 ec 08	 sub	 esp, 8
  00112	dd 82 28 01 00
	00		 fld	 QWORD PTR [edx+296]
  00118	dd 1c 24	 fstp	 QWORD PTR [esp]
  0011b	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  0011e	dd 80 30 01 00
	00		 fld	 QWORD PTR [eax+304]
  00124	dc c0		 fadd	 ST(0), ST(0)
  00126	83 ec 08	 sub	 esp, 8
  00129	dd 1c 24	 fstp	 QWORD PTR [esp]
  0012c	8b 4d 08	 mov	 ecx, DWORD PTR _hDC$[ebp]
  0012f	51		 push	 ecx
  00130	8b 4d bc	 mov	 ecx, DWORD PTR _this$[ebp]
  00133	e8 00 00 00 00	 call	 ?MakeFont@CVTDrawer@@AAEPAUHFONT__@@PAUHDC__@@NNPB_WHH@Z ; CVTDrawer::MakeFont
  00138	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  0013b	89 82 0c 01 00
	00		 mov	 DWORD PTR [edx+268], eax
$LN1@CreateMiss@2:

; 711  :     }
; 712  : 
; 713  :     TEXTMETRIC TextMetric;
; 714  : 
; 715  :     HGDIOBJ hSaveFont = SelectObject(hDC, m_hNormalFont);

  00141	8b 45 bc	 mov	 eax, DWORD PTR _this$[ebp]
  00144	8b 88 00 01 00
	00		 mov	 ecx, DWORD PTR [eax+256]
  0014a	51		 push	 ecx
  0014b	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  0014e	52		 push	 edx
  0014f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
  00155	89 45 c0	 mov	 DWORD PTR _hSaveFont$[ebp], eax

; 716  :     GetTextMetrics(hDC, &TextMetric);

  00158	8d 45 c4	 lea	 eax, DWORD PTR _TextMetric$[ebp]
  0015b	50		 push	 eax
  0015c	8b 4d 08	 mov	 ecx, DWORD PTR _hDC$[ebp]
  0015f	51		 push	 ecx
  00160	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTextMetricsW@8

; 717  :     SelectObject(hDC, hSaveFont);

  00166	8b 55 c0	 mov	 edx, DWORD PTR _hSaveFont$[ebp]
  00169	52		 push	 edx
  0016a	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  0016d	50		 push	 eax
  0016e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8

; 718  : 
; 719  :     m_bFixedPitch = !(TextMetric.tmPitchAndFamily & TMPF_FIXED_PITCH);

  00174	0f b6 4d fb	 movzx	 ecx, BYTE PTR _TextMetric$[ebp+55]
  00178	83 e1 01	 and	 ecx, 1
  0017b	f7 d9		 neg	 ecx
  0017d	1b c9		 sbb	 ecx, ecx
  0017f	83 c1 01	 add	 ecx, 1
  00182	8b 55 bc	 mov	 edx, DWORD PTR _this$[ebp]
  00185	89 8a 20 01 00
	00		 mov	 DWORD PTR [edx+288], ecx

; 720  : }

  0018b	8b e5		 mov	 esp, ebp
  0018d	5d		 pop	 ebp
  0018e	c2 04 00	 ret	 4
?CreateMissingStandardFonts@CVTDrawer@@AAEXPAUHDC__@@@Z ENDP ; CVTDrawer::CreateMissingStandardFonts
_TEXT	ENDS
PUBLIC	__real@4039000000000000
PUBLIC	__real@4044000000000000
PUBLIC	?SetBounds@CVTDrawer@@AAEXPAUHDC__@@PAUtagRECT@@@Z ; CVTDrawer::SetBounds
;	COMDAT __real@4039000000000000
CONST	SEGMENT
__real@4039000000000000 DQ 04039000000000000r	; 25
CONST	ENDS
;	COMDAT __real@4044000000000000
CONST	SEGMENT
__real@4044000000000000 DQ 04044000000000000r	; 40
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?SetBounds@CVTDrawer@@AAEXPAUHDC__@@PAUtagRECT@@@Z
_TEXT	SEGMENT
tv154 = -20						; size = 4
tv149 = -16						; size = 4
_this$ = -12						; size = 4
_wOldWidth$ = -8					; size = 2
_wOldHeight$ = -4					; size = 2
_hDC$ = 8						; size = 4
_lpRect$ = 12						; size = 4
?SetBounds@CVTDrawer@@AAEXPAUHDC__@@PAUtagRECT@@@Z PROC	; CVTDrawer::SetBounds, COMDAT
; _this$ = ecx

; 668  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 669  :     WORD wOldWidth = (WORD)(m_BoundsRect.right - m_BoundsRect.left);

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0000f	8b 50 34	 mov	 edx, DWORD PTR [eax+52]
  00012	2b 51 2c	 sub	 edx, DWORD PTR [ecx+44]
  00015	66 89 55 f8	 mov	 WORD PTR _wOldWidth$[ebp], dx

; 670  :     WORD wOldHeight = (WORD)(m_BoundsRect.bottom - m_BoundsRect.top);

  00019	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0001c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001f	8b 50 38	 mov	 edx, DWORD PTR [eax+56]
  00022	2b 51 30	 sub	 edx, DWORD PTR [ecx+48]
  00025	66 89 55 fc	 mov	 WORD PTR _wOldHeight$[ebp], dx

; 671  : 
; 672  :     CopyRect(&m_BoundsRect, lpRect);

  00029	8b 45 0c	 mov	 eax, DWORD PTR _lpRect$[ebp]
  0002c	50		 push	 eax
  0002d	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00030	83 c1 2c	 add	 ecx, 44			; 0000002cH
  00033	51		 push	 ecx
  00034	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CopyRect@8

; 673  : 
; 674  :     if ((lpRect->right - lpRect->left) == wOldWidth &&
; 675  :         (lpRect->bottom - lpRect->top) == wOldHeight)

  0003a	8b 55 0c	 mov	 edx, DWORD PTR _lpRect$[ebp]
  0003d	8b 45 0c	 mov	 eax, DWORD PTR _lpRect$[ebp]
  00040	8b 4a 08	 mov	 ecx, DWORD PTR [edx+8]
  00043	2b 08		 sub	 ecx, DWORD PTR [eax]
  00045	0f b7 55 f8	 movzx	 edx, WORD PTR _wOldWidth$[ebp]
  00049	3b ca		 cmp	 ecx, edx
  0004b	75 16		 jne	 SHORT $LN1@SetBounds
  0004d	8b 45 0c	 mov	 eax, DWORD PTR _lpRect$[ebp]
  00050	8b 4d 0c	 mov	 ecx, DWORD PTR _lpRect$[ebp]
  00053	8b 50 0c	 mov	 edx, DWORD PTR [eax+12]
  00056	2b 51 04	 sub	 edx, DWORD PTR [ecx+4]
  00059	0f b7 45 fc	 movzx	 eax, WORD PTR _wOldHeight$[ebp]
  0005d	3b d0		 cmp	 edx, eax
  0005f	75 02		 jne	 SHORT $LN1@SetBounds

; 676  :     {
; 677  :         return;

  00061	eb 49		 jmp	 SHORT $LN2@SetBounds
$LN1@SetBounds:

; 678  :     }
; 679  : 
; 680  :     m_dAvgWidth = (lpRect->right - lpRect->left) / 40.0;

  00063	8b 4d 0c	 mov	 ecx, DWORD PTR _lpRect$[ebp]
  00066	8b 55 0c	 mov	 edx, DWORD PTR _lpRect$[ebp]
  00069	8b 41 08	 mov	 eax, DWORD PTR [ecx+8]
  0006c	2b 02		 sub	 eax, DWORD PTR [edx]
  0006e	89 45 f0	 mov	 DWORD PTR tv149[ebp], eax
  00071	db 45 f0	 fild	 DWORD PTR tv149[ebp]
  00074	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4044000000000000
  0007a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0007d	dd 99 28 01 00
	00		 fstp	 QWORD PTR [ecx+296]

; 681  :     m_dAvgHeight = (lpRect->bottom - lpRect->top) / 25.0;

  00083	8b 55 0c	 mov	 edx, DWORD PTR _lpRect$[ebp]
  00086	8b 45 0c	 mov	 eax, DWORD PTR _lpRect$[ebp]
  00089	8b 4a 0c	 mov	 ecx, DWORD PTR [edx+12]
  0008c	2b 48 04	 sub	 ecx, DWORD PTR [eax+4]
  0008f	89 4d ec	 mov	 DWORD PTR tv154[ebp], ecx
  00092	db 45 ec	 fild	 DWORD PTR tv154[ebp]
  00095	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4039000000000000
  0009b	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0009e	dd 9a 30 01 00
	00		 fstp	 QWORD PTR [edx+304]

; 682  : 
; 683  :     DeleteFonts();

  000a4	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000a7	e8 00 00 00 00	 call	 ?DeleteFonts@CVTDrawer@@AAEXXZ ; CVTDrawer::DeleteFonts
$LN2@SetBounds:

; 684  : }

  000ac	8b e5		 mov	 esp, ebp
  000ae	5d		 pop	 ebp
  000af	c2 08 00	 ret	 8
?SetBounds@CVTDrawer@@AAEXPAUHDC__@@PAUtagRECT@@@Z ENDP	; CVTDrawer::SetBounds
_TEXT	ENDS
PUBLIC	?GetColourBrush@CVTDrawer@@AAEPAUHBRUSH__@@E@Z	; CVTDrawer::GetColourBrush
; Function compile flags: /Odtp
;	COMDAT ?GetColourBrush@CVTDrawer@@AAEPAUHBRUSH__@@E@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_VTColour$ = 8						; size = 1
?GetColourBrush@CVTDrawer@@AAEPAUHBRUSH__@@E@Z PROC	; CVTDrawer::GetColourBrush, COMDAT
; _this$ = ecx

; 653  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 654  :     if (VTColour == VTCOLOR_NONE)

  00007	0f b6 45 08	 movzx	 eax, BYTE PTR _VTColour$[ebp]
  0000b	83 f8 08	 cmp	 eax, 8
  0000e	75 23		 jne	 SHORT $LN2@GetColourB

; 655  :     {
; 656  :         if (m_TransparencyBrush == NULL)

  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	83 79 04 00	 cmp	 DWORD PTR [ecx+4], 0
  00017	75 12		 jne	 SHORT $LN1@GetColourB

; 657  :         {
; 658  :             m_TransparencyBrush = CreateSolidBrush(m_TransparencyColour);

  00019	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0001c	8b 02		 mov	 eax, DWORD PTR [edx]
  0001e	50		 push	 eax
  0001f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateSolidBrush@4
  00025	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00028	89 41 04	 mov	 DWORD PTR [ecx+4], eax
$LN1@GetColourB:

; 659  :         }
; 660  :         return m_TransparencyBrush;

  0002b	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0002e	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00031	eb 0b		 jmp	 SHORT $LN3@GetColourB
$LN2@GetColourB:

; 661  :     }
; 662  : 
; 663  :     return m_hColourBrush[VTColour];

  00033	0f b6 45 08	 movzx	 eax, BYTE PTR _VTColour$[ebp]
  00037	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003a	8b 44 81 08	 mov	 eax, DWORD PTR [ecx+eax*4+8]
$LN3@GetColourB:

; 664  : }

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c2 04 00	 ret	 4
?GetColourBrush@CVTDrawer@@AAEPAUHBRUSH__@@E@Z ENDP	; CVTDrawer::GetColourBrush
_TEXT	ENDS
PUBLIC	?GetColourRef@CVTDrawer@@AAEKE@Z		; CVTDrawer::GetColourRef
; Function compile flags: /Odtp
;	COMDAT ?GetColourRef@CVTDrawer@@AAEKE@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_VTColour$ = 8						; size = 1
?GetColourRef@CVTDrawer@@AAEKE@Z PROC			; CVTDrawer::GetColourRef, COMDAT
; _this$ = ecx

; 642  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 643  :     if (VTColour == VTCOLOR_NONE)

  00007	0f b6 45 08	 movzx	 eax, BYTE PTR _VTColour$[ebp]
  0000b	83 f8 08	 cmp	 eax, 8
  0000e	75 07		 jne	 SHORT $LN1@GetColourR

; 644  :     {
; 645  :         return m_TransparencyColour;

  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 01		 mov	 eax, DWORD PTR [ecx]
  00015	eb 0b		 jmp	 SHORT $LN2@GetColourR
$LN1@GetColourR:

; 646  :     }
; 647  : 
; 648  :     return m_ColourTable[VTColour];

  00017	0f b6 55 08	 movzx	 edx, BYTE PTR _VTColour$[ebp]
  0001b	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?m_ColourTable@CVTDrawer@@0PAKA[edx*4]
$LN2@GetColourR:

; 649  : }

  00022	8b e5		 mov	 esp, ebp
  00024	5d		 pop	 ebp
  00025	c2 04 00	 ret	 4
?GetColourRef@CVTDrawer@@AAEKE@Z ENDP			; CVTDrawer::GetColourRef
_TEXT	ENDS
PUBLIC	?FindRow24PageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDrawer::FindRow24PageNumberProc
; Function compile flags: /Odtp
;	COMDAT ?FindRow24PageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z
_TEXT	SEGMENT
tv87 = -20						; size = 4
tv81 = -16						; size = 4
_Foreground$140069 = -11				; size = 1
_Background$140072 = -10				; size = 1
_nCol$ = -9						; size = 1
_pPageHex$ = -8						; size = 4
_nSearchCol$ = -1					; size = 1
___formal$ = 8						; size = 4
_wPoint$ = 12						; size = 2
___formal$ = 16						; size = 4
_wColour$ = 20						; size = 2
_uChar$ = 24						; size = 1
_uMode$ = 28						; size = 1
_lpParam$ = 32						; size = 4
?FindRow24PageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z PROC ; CVTDrawer::FindRow24PageNumberProc, COMDAT

; 575  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H

; 576  :     BYTE  nSearchCol    = *(BYTE*)((LPVOID*)lpParam)[0];

  00006	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  00009	8b 08		 mov	 ecx, DWORD PTR [eax]
  0000b	8a 11		 mov	 dl, BYTE PTR [ecx]
  0000d	88 55 ff	 mov	 BYTE PTR _nSearchCol$[ebp], dl

; 577  :     WORD* pPageHex      =  (WORD*)((LPVOID*)lpParam)[1];

  00010	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  00013	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00016	89 4d f8	 mov	 DWORD PTR _pPageHex$[ebp], ecx

; 578  : 
; 579  :     BYTE nCol = HIBYTE(wPoint);

  00019	0f b7 55 0c	 movzx	 edx, WORD PTR _wPoint$[ebp]
  0001d	c1 ea 08	 shr	 edx, 8
  00020	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00026	88 55 f7	 mov	 BYTE PTR _nCol$[ebp], dl

; 580  : 
; 581  :     if (nCol == nSearchCol)

  00029	0f b6 45 f7	 movzx	 eax, BYTE PTR _nCol$[ebp]
  0002d	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nSearchCol$[ebp]
  00031	3b c1		 cmp	 eax, ecx
  00033	0f 85 f0 00 00
	00		 jne	 $LN15@FindRow24P

; 582  :     {
; 583  :         BYTE Foreground = LOBYTE(wColour);

  00039	0f b7 55 14	 movzx	 edx, WORD PTR _wColour$[ebp]
  0003d	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00043	88 55 f5	 mov	 BYTE PTR _Foreground$140069[ebp], dl

; 584  :         BYTE Background = HIBYTE(wColour);

  00046	0f b7 45 14	 movzx	 eax, WORD PTR _wColour$[ebp]
  0004a	c1 e8 08	 shr	 eax, 8
  0004d	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00052	88 45 f6	 mov	 BYTE PTR _Background$140072[ebp], al

; 585  : 
; 586  :         switch (Background)

  00055	0f b6 4d f6	 movzx	 ecx, BYTE PTR _Background$140072[ebp]
  00059	89 4d f0	 mov	 DWORD PTR tv81[ebp], ecx
  0005c	8b 55 f0	 mov	 edx, DWORD PTR tv81[ebp]
  0005f	83 ea 01	 sub	 edx, 1
  00062	89 55 f0	 mov	 DWORD PTR tv81[ebp], edx
  00065	83 7d f0 05	 cmp	 DWORD PTR tv81[ebp], 5
  00069	77 3e		 ja	 SHORT $LN8@FindRow24P
  0006b	8b 45 f0	 mov	 eax, DWORD PTR tv81[ebp]
  0006e	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN18@FindRow24P[eax*4]
$LN12@FindRow24P:

; 587  :         {
; 588  :         case VTCOLOR_RED:
; 589  :             *pPageHex = VTPAGE_FLOFRED;

  00075	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  0007a	8b 55 f8	 mov	 edx, DWORD PTR _pPageHex$[ebp]
  0007d	66 89 0a	 mov	 WORD PTR [edx], cx

; 590  :             break;

  00080	eb 32		 jmp	 SHORT $LN13@FindRow24P
$LN11@FindRow24P:

; 591  : 
; 592  :         case VTCOLOR_GREEN:
; 593  :             *pPageHex = VTPAGE_FLOFGREEN;

  00082	b8 11 00 00 00	 mov	 eax, 17			; 00000011H
  00087	8b 4d f8	 mov	 ecx, DWORD PTR _pPageHex$[ebp]
  0008a	66 89 01	 mov	 WORD PTR [ecx], ax

; 594  :             break;

  0008d	eb 25		 jmp	 SHORT $LN13@FindRow24P
$LN10@FindRow24P:

; 595  : 
; 596  :         case VTCOLOR_YELLOW:
; 597  :             *pPageHex = VTPAGE_FLOFYELLOW;

  0008f	ba 12 00 00 00	 mov	 edx, 18			; 00000012H
  00094	8b 45 f8	 mov	 eax, DWORD PTR _pPageHex$[ebp]
  00097	66 89 10	 mov	 WORD PTR [eax], dx

; 598  :             break;

  0009a	eb 18		 jmp	 SHORT $LN13@FindRow24P
$LN9@FindRow24P:

; 599  : 
; 600  :         case VTCOLOR_CYAN:
; 601  :             *pPageHex = VTPAGE_FLOFBLUE;

  0009c	b9 13 00 00 00	 mov	 ecx, 19			; 00000013H
  000a1	8b 55 f8	 mov	 edx, DWORD PTR _pPageHex$[ebp]
  000a4	66 89 0a	 mov	 WORD PTR [edx], cx

; 602  :             break;

  000a7	eb 0b		 jmp	 SHORT $LN13@FindRow24P
$LN8@FindRow24P:

; 603  : 
; 604  :         default:
; 605  :             *pPageHex = 0xFFFF;

  000a9	b8 ff ff 00 00	 mov	 eax, 65535		; 0000ffffH
  000ae	8b 4d f8	 mov	 ecx, DWORD PTR _pPageHex$[ebp]
  000b1	66 89 01	 mov	 WORD PTR [ecx], ax
$LN13@FindRow24P:

; 606  :             break;
; 607  :         }
; 608  : 
; 609  :         if (*pPageHex == 0xFFFF)

  000b4	8b 55 f8	 mov	 edx, DWORD PTR _pPageHex$[ebp]
  000b7	0f b7 02	 movzx	 eax, WORD PTR [edx]
  000ba	3d ff ff 00 00	 cmp	 eax, 65535		; 0000ffffH
  000bf	75 52		 jne	 SHORT $LN7@FindRow24P

; 610  :         {
; 611  :             switch (Foreground)

  000c1	0f b6 4d f5	 movzx	 ecx, BYTE PTR _Foreground$140069[ebp]
  000c5	89 4d ec	 mov	 DWORD PTR tv87[ebp], ecx
  000c8	8b 55 ec	 mov	 edx, DWORD PTR tv87[ebp]
  000cb	83 ea 01	 sub	 edx, 1
  000ce	89 55 ec	 mov	 DWORD PTR tv87[ebp], edx
  000d1	83 7d ec 05	 cmp	 DWORD PTR tv87[ebp], 5
  000d5	77 3c		 ja	 SHORT $LN7@FindRow24P
  000d7	8b 45 ec	 mov	 eax, DWORD PTR tv87[ebp]
  000da	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN19@FindRow24P[eax*4]
$LN4@FindRow24P:

; 612  :             {
; 613  :                 case VTCOLOR_RED:
; 614  :                     *pPageHex = VTPAGE_FLOFRED;

  000e1	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  000e6	8b 55 f8	 mov	 edx, DWORD PTR _pPageHex$[ebp]
  000e9	66 89 0a	 mov	 WORD PTR [edx], cx

; 615  :                     break;

  000ec	eb 25		 jmp	 SHORT $LN7@FindRow24P
$LN3@FindRow24P:

; 616  : 
; 617  :                 case VTCOLOR_GREEN:
; 618  :                     *pPageHex = VTPAGE_FLOFGREEN;

  000ee	b8 11 00 00 00	 mov	 eax, 17			; 00000011H
  000f3	8b 4d f8	 mov	 ecx, DWORD PTR _pPageHex$[ebp]
  000f6	66 89 01	 mov	 WORD PTR [ecx], ax

; 619  :                     break;

  000f9	eb 18		 jmp	 SHORT $LN7@FindRow24P
$LN2@FindRow24P:

; 620  : 
; 621  :                 case VTCOLOR_YELLOW:
; 622  :                     *pPageHex = VTPAGE_FLOFYELLOW;

  000fb	ba 12 00 00 00	 mov	 edx, 18			; 00000012H
  00100	8b 45 f8	 mov	 eax, DWORD PTR _pPageHex$[ebp]
  00103	66 89 10	 mov	 WORD PTR [eax], dx

; 623  :                     break;

  00106	eb 0b		 jmp	 SHORT $LN7@FindRow24P
$LN1@FindRow24P:

; 624  : 
; 625  :                 case VTCOLOR_CYAN:
; 626  :                     *pPageHex = VTPAGE_FLOFBLUE;

  00108	b9 13 00 00 00	 mov	 ecx, 19			; 00000013H
  0010d	8b 55 f8	 mov	 edx, DWORD PTR _pPageHex$[ebp]
  00110	66 89 0a	 mov	 WORD PTR [edx], cx
$LN7@FindRow24P:

; 627  :                     break;
; 628  :             }
; 629  :         }
; 630  : 
; 631  :         // Nothing for character four
; 632  :         *pPageHex |= 0xF000;

  00113	8b 45 f8	 mov	 eax, DWORD PTR _pPageHex$[ebp]
  00116	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  00119	81 c9 00 f0 00
	00		 or	 ecx, 61440		; 0000f000H
  0011f	8b 55 f8	 mov	 edx, DWORD PTR _pPageHex$[ebp]
  00122	66 89 0a	 mov	 WORD PTR [edx], cx

; 633  : 
; 634  :         return PARSE_STOPPAGE;

  00125	b0 02		 mov	 al, 2
  00127	eb 02		 jmp	 SHORT $LN16@FindRow24P
$LN15@FindRow24P:

; 635  :     }
; 636  : 
; 637  :     return PARSE_CONTINUE;

  00129	32 c0		 xor	 al, al
$LN16@FindRow24P:

; 638  : }

  0012b	8b e5		 mov	 esp, ebp
  0012d	5d		 pop	 ebp
  0012e	c3		 ret	 0
  0012f	90		 npad	 1
$LN18@FindRow24P:
  00130	00 00 00 00	 DD	 $LN12@FindRow24P
  00134	00 00 00 00	 DD	 $LN11@FindRow24P
  00138	00 00 00 00	 DD	 $LN10@FindRow24P
  0013c	00 00 00 00	 DD	 $LN8@FindRow24P
  00140	00 00 00 00	 DD	 $LN8@FindRow24P
  00144	00 00 00 00	 DD	 $LN9@FindRow24P
$LN19@FindRow24P:
  00148	00 00 00 00	 DD	 $LN4@FindRow24P
  0014c	00 00 00 00	 DD	 $LN3@FindRow24P
  00150	00 00 00 00	 DD	 $LN2@FindRow24P
  00154	00 00 00 00	 DD	 $LN7@FindRow24P
  00158	00 00 00 00	 DD	 $LN7@FindRow24P
  0015c	00 00 00 00	 DD	 $LN1@FindRow24P
?FindRow24PageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ENDP ; CVTDrawer::FindRow24PageNumberProc
_TEXT	ENDS
PUBLIC	?FindPageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDrawer::FindPageNumberProc
; Function compile flags: /Odtp
;	COMDAT ?FindPageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z
_TEXT	SEGMENT
_nCol$ = -9						; size = 1
_pPageHex$ = -8						; size = 4
_nSearchCol$ = -1					; size = 1
___formal$ = 8						; size = 4
_wPoint$ = 12						; size = 2
___formal$ = 16						; size = 4
___formal$ = 20						; size = 2
_uChar$ = 24						; size = 1
_uMode$ = 28						; size = 1
_lpParam$ = 32						; size = 4
?FindPageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z PROC ; CVTDrawer::FindPageNumberProc, COMDAT

; 534  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 535  :     BYTE  nSearchCol    = *(BYTE*)((LPVOID*)lpParam)[0];

  00006	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  00009	8b 08		 mov	 ecx, DWORD PTR [eax]
  0000b	8a 11		 mov	 dl, BYTE PTR [ecx]
  0000d	88 55 ff	 mov	 BYTE PTR _nSearchCol$[ebp], dl

; 536  :     WORD* pPageHex      =  (WORD*)((LPVOID*)lpParam)[1];

  00010	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  00013	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00016	89 4d f8	 mov	 DWORD PTR _pPageHex$[ebp], ecx

; 537  : 
; 538  :     BYTE nCol = HIBYTE(wPoint);

  00019	0f b7 55 0c	 movzx	 edx, WORD PTR _wPoint$[ebp]
  0001d	c1 ea 08	 shr	 edx, 8
  00020	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00026	88 55 f7	 mov	 BYTE PTR _nCol$[ebp], dl

; 539  : 
; 540  :     if ((uMode & VTMODE_GRAPHICS) ||
; 541  :         (uChar & 0x70) != 0x30 || (uChar & 0x0F) > 9)

  00029	0f b6 45 1c	 movzx	 eax, BYTE PTR _uMode$[ebp]
  0002d	83 e0 01	 and	 eax, 1
  00030	75 18		 jne	 SHORT $LN7@FindPageNu
  00032	0f b6 4d 18	 movzx	 ecx, BYTE PTR _uChar$[ebp]
  00036	83 e1 70	 and	 ecx, 112		; 00000070H
  00039	83 f9 30	 cmp	 ecx, 48			; 00000030H
  0003c	75 0c		 jne	 SHORT $LN7@FindPageNu
  0003e	0f b6 55 18	 movzx	 edx, BYTE PTR _uChar$[ebp]
  00042	83 e2 0f	 and	 edx, 15			; 0000000fH
  00045	83 fa 09	 cmp	 edx, 9
  00048	7e 2d		 jle	 SHORT $LN8@FindPageNu
$LN7@FindPageNu:

; 542  :     {
; 543  :         if (nCol > nSearchCol)

  0004a	0f b6 45 f7	 movzx	 eax, BYTE PTR _nCol$[ebp]
  0004e	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nSearchCol$[ebp]
  00052	3b c1		 cmp	 eax, ecx
  00054	7e 04		 jle	 SHORT $LN6@FindPageNu

; 544  :         {
; 545  :             return PARSE_STOPPAGE;

  00056	b0 02		 mov	 al, 2
  00058	eb 6a		 jmp	 SHORT $LN9@FindPageNu
$LN6@FindPageNu:

; 546  :         }
; 547  :         *pPageHex = 0xFFFF;

  0005a	ba ff ff 00 00	 mov	 edx, 65535		; 0000ffffH
  0005f	8b 45 f8	 mov	 eax, DWORD PTR _pPageHex$[ebp]
  00062	66 89 10	 mov	 WORD PTR [eax], dx

; 548  : 
; 549  :         if (nCol == nSearchCol)

  00065	0f b6 4d f7	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00069	0f b6 55 ff	 movzx	 edx, BYTE PTR _nSearchCol$[ebp]
  0006d	3b ca		 cmp	 ecx, edx
  0006f	75 04		 jne	 SHORT $LN5@FindPageNu

; 550  :         {
; 551  :             return PARSE_STOPPAGE;

  00071	b0 02		 mov	 al, 2
  00073	eb 4f		 jmp	 SHORT $LN9@FindPageNu
$LN5@FindPageNu:

; 552  :         }
; 553  :     }
; 554  :     else

  00075	eb 4b		 jmp	 SHORT $LN4@FindPageNu
$LN8@FindPageNu:

; 555  :     {
; 556  :         *pPageHex = (WORD)((*pPageHex << 4) | (uChar - 0x30));

  00077	8b 45 f8	 mov	 eax, DWORD PTR _pPageHex$[ebp]
  0007a	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  0007d	c1 e1 04	 shl	 ecx, 4
  00080	0f b6 55 18	 movzx	 edx, BYTE PTR _uChar$[ebp]
  00084	83 ea 30	 sub	 edx, 48			; 00000030H
  00087	0b ca		 or	 ecx, edx
  00089	8b 45 f8	 mov	 eax, DWORD PTR _pPageHex$[ebp]
  0008c	66 89 08	 mov	 WORD PTR [eax], cx

; 557  : 
; 558  :         // Even after matching 3 digits in a row at the
; 559  :         // point specified, we wait for one more to be
; 560  :         // certain there isn't a fourth digit.  Hence
; 561  :         // we add + 3 instead of + 2.
; 562  :         if ((nCol >= nSearchCol && (*pPageHex & 0xF000) != 0xF000) ||
; 563  :             nCol == nSearchCol + 3)

  0008f	0f b6 4d f7	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00093	0f b6 55 ff	 movzx	 edx, BYTE PTR _nSearchCol$[ebp]
  00097	3b ca		 cmp	 ecx, edx
  00099	7c 14		 jl	 SHORT $LN1@FindPageNu
  0009b	8b 45 f8	 mov	 eax, DWORD PTR _pPageHex$[ebp]
  0009e	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  000a1	81 e1 00 f0 00
	00		 and	 ecx, 61440		; 0000f000H
  000a7	81 f9 00 f0 00
	00		 cmp	 ecx, 61440		; 0000f000H
  000ad	75 0f		 jne	 SHORT $LN2@FindPageNu
$LN1@FindPageNu:
  000af	0f b6 55 f7	 movzx	 edx, BYTE PTR _nCol$[ebp]
  000b3	0f b6 45 ff	 movzx	 eax, BYTE PTR _nSearchCol$[ebp]
  000b7	83 c0 03	 add	 eax, 3
  000ba	3b d0		 cmp	 edx, eax
  000bc	75 04		 jne	 SHORT $LN4@FindPageNu
$LN2@FindPageNu:

; 564  :         {
; 565  :             return PARSE_STOPPAGE;

  000be	b0 02		 mov	 al, 2
  000c0	eb 02		 jmp	 SHORT $LN9@FindPageNu
$LN4@FindPageNu:

; 566  :         }
; 567  :     }
; 568  : 
; 569  :     return PARSE_CONTINUE;

  000c2	32 c0		 xor	 al, al
$LN9@FindPageNu:

; 570  : }

  000c4	8b e5		 mov	 esp, ebp
  000c6	5d		 pop	 ebp
  000c7	c3		 ret	 0
?FindPageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ENDP ; CVTDrawer::FindPageNumberProc
_TEXT	ENDS
PUBLIC	?GetRowColAtPoint@CVTDrawer@@QAEGPAUtagRECT@@PAUtagPOINT@@@Z ; CVTDrawer::GetRowColAtPoint
; Function compile flags: /Odtp
;	COMDAT ?GetRowColAtPoint@CVTDrawer@@QAEGPAUtagRECT@@PAUtagPOINT@@@Z
_TEXT	SEGMENT
tv162 = -64						; size = 4
tv160 = -60						; size = 4
tv157 = -54						; size = 2
tv156 = -52						; size = 4
tv151 = -48						; size = 4
tv149 = -44						; size = 4
tv146 = -38						; size = 2
tv145 = -36						; size = 4
tv141 = -32						; size = 4
tv137 = -28						; size = 4
_this$ = -24						; size = 4
_nRow$ = -18						; size = 1
_nCol$ = -17						; size = 1
_dHeight$ = -16						; size = 8
_dWidth$ = -8						; size = 8
_lpDisplayRect$ = 8					; size = 4
_DisplayPoint$ = 12					; size = 4
?GetRowColAtPoint@CVTDrawer@@QAEGPAUtagRECT@@PAUtagPOINT@@@Z PROC ; CVTDrawer::GetRowColAtPoint, COMDAT
; _this$ = ecx

; 473  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 474  :     double dWidth = (lpDisplayRect->right - lpDisplayRect->left) / 40.0;

  00009	8b 45 08	 mov	 eax, DWORD PTR _lpDisplayRect$[ebp]
  0000c	8b 4d 08	 mov	 ecx, DWORD PTR _lpDisplayRect$[ebp]
  0000f	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00012	2b 11		 sub	 edx, DWORD PTR [ecx]
  00014	89 55 e4	 mov	 DWORD PTR tv137[ebp], edx
  00017	db 45 e4	 fild	 DWORD PTR tv137[ebp]
  0001a	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4044000000000000
  00020	dd 5d f8	 fstp	 QWORD PTR _dWidth$[ebp]

; 475  :     double dHeight = (lpDisplayRect->bottom - lpDisplayRect->top) / 25.0;

  00023	8b 45 08	 mov	 eax, DWORD PTR _lpDisplayRect$[ebp]
  00026	8b 4d 08	 mov	 ecx, DWORD PTR _lpDisplayRect$[ebp]
  00029	8b 50 0c	 mov	 edx, DWORD PTR [eax+12]
  0002c	2b 51 04	 sub	 edx, DWORD PTR [ecx+4]
  0002f	89 55 e0	 mov	 DWORD PTR tv141[ebp], edx
  00032	db 45 e0	 fild	 DWORD PTR tv141[ebp]
  00035	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4039000000000000
  0003b	dd 5d f0	 fstp	 QWORD PTR _dHeight$[ebp]

; 476  : 
; 477  :     BYTE nRow = (BYTE)((DisplayPoint->y - lpDisplayRect->top + 1) / dHeight);

  0003e	8b 45 0c	 mov	 eax, DWORD PTR _DisplayPoint$[ebp]
  00041	8b 4d 08	 mov	 ecx, DWORD PTR _lpDisplayRect$[ebp]
  00044	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00047	2b 51 04	 sub	 edx, DWORD PTR [ecx+4]
  0004a	83 c2 01	 add	 edx, 1
  0004d	89 55 dc	 mov	 DWORD PTR tv145[ebp], edx
  00050	db 45 dc	 fild	 DWORD PTR tv145[ebp]
  00053	dc 75 f0	 fdiv	 QWORD PTR _dHeight$[ebp]
  00056	d9 7d da	 fnstcw	 WORD PTR tv146[ebp]
  00059	0f b7 45 da	 movzx	 eax, WORD PTR tv146[ebp]
  0005d	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00062	89 45 d4	 mov	 DWORD PTR tv149[ebp], eax
  00065	d9 6d d4	 fldcw	 WORD PTR tv149[ebp]
  00068	db 5d d0	 fistp	 DWORD PTR tv151[ebp]
  0006b	d9 6d da	 fldcw	 WORD PTR tv146[ebp]
  0006e	8a 45 d0	 mov	 al, BYTE PTR tv151[ebp]
  00071	88 45 ee	 mov	 BYTE PTR _nRow$[ebp], al

; 478  :     BYTE nCol = (BYTE)((DisplayPoint->x - lpDisplayRect->left + 1) / dWidth);

  00074	8b 4d 0c	 mov	 ecx, DWORD PTR _DisplayPoint$[ebp]
  00077	8b 55 08	 mov	 edx, DWORD PTR _lpDisplayRect$[ebp]
  0007a	8b 01		 mov	 eax, DWORD PTR [ecx]
  0007c	2b 02		 sub	 eax, DWORD PTR [edx]
  0007e	83 c0 01	 add	 eax, 1
  00081	89 45 cc	 mov	 DWORD PTR tv156[ebp], eax
  00084	db 45 cc	 fild	 DWORD PTR tv156[ebp]
  00087	dc 75 f8	 fdiv	 QWORD PTR _dWidth$[ebp]
  0008a	d9 7d ca	 fnstcw	 WORD PTR tv157[ebp]
  0008d	0f b7 45 ca	 movzx	 eax, WORD PTR tv157[ebp]
  00091	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00096	89 45 c4	 mov	 DWORD PTR tv160[ebp], eax
  00099	d9 6d c4	 fldcw	 WORD PTR tv160[ebp]
  0009c	db 5d c0	 fistp	 DWORD PTR tv162[ebp]
  0009f	d9 6d ca	 fldcw	 WORD PTR tv157[ebp]
  000a2	8a 4d c0	 mov	 cl, BYTE PTR tv162[ebp]
  000a5	88 4d ef	 mov	 BYTE PTR _nCol$[ebp], cl

; 479  : 
; 480  :     if (nRow >= 25 || nCol >= 40)

  000a8	0f b6 55 ee	 movzx	 edx, BYTE PTR _nRow$[ebp]
  000ac	83 fa 19	 cmp	 edx, 25			; 00000019H
  000af	7d 09		 jge	 SHORT $LN1@GetRowColA
  000b1	0f b6 45 ef	 movzx	 eax, BYTE PTR _nCol$[ebp]
  000b5	83 f8 28	 cmp	 eax, 40			; 00000028H
  000b8	7c 07		 jl	 SHORT $LN2@GetRowColA
$LN1@GetRowColA:

; 481  :     {
; 482  :         return 0xFEFE;

  000ba	b8 fe fe 00 00	 mov	 eax, 65278		; 0000fefeH
  000bf	eb 1f		 jmp	 SHORT $LN3@GetRowColA
$LN2@GetRowColA:

; 483  :     }
; 484  : 
; 485  :     return MAKEWORD(nRow, nCol);

  000c1	0f b6 4d ee	 movzx	 ecx, BYTE PTR _nRow$[ebp]
  000c5	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  000cb	0f b6 c1	 movzx	 eax, cl
  000ce	0f b6 55 ef	 movzx	 edx, BYTE PTR _nCol$[ebp]
  000d2	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  000d8	0f b6 ca	 movzx	 ecx, dl
  000db	c1 e1 08	 shl	 ecx, 8
  000de	0b c1		 or	 eax, ecx
$LN3@GetRowColA:

; 486  : }

  000e0	8b e5		 mov	 esp, ebp
  000e2	5d		 pop	 ebp
  000e3	c2 08 00	 ret	 8
?GetRowColAtPoint@CVTDrawer@@QAEGPAUtagRECT@@PAUtagPOINT@@@Z ENDP ; CVTDrawer::GetRowColAtPoint
_TEXT	ENDS
PUBLIC	?DrawPageProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDrawer::DrawPageProc
; Function compile flags: /Odtp
;	COMDAT ?DrawPageProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z
_TEXT	SEGMENT
tv548 = -120						; size = 4
tv495 = -116						; size = 4
tv489 = -112						; size = 4
tv484 = -108						; size = 4
tv479 = -104						; size = 4
tv474 = -100						; size = 4
_Size$139959 = -96					; size = 8
_hDoubleFontSmaller$139949 = -88			; size = 4
_hNormalFont$139946 = -84				; size = 4
_UnicodeChar$139952 = -80				; size = 2
_hDoubleFont$139947 = -76				; size = 4
_hNormalFontSmaller$139948 = -72			; size = 4
_LeftOffset$139957 = -68				; size = 4
_TempColour$139932 = -61				; size = 1
_pHilight$139925 = -60					; size = 4
_hSelectedFont$ = -56					; size = 4
_nRow$ = -52						; size = 1
_Foreground$ = -51					; size = 1
_Background$ = -50					; size = 1
_nCol$ = -49						; size = 1
_pThis$ = -48						; size = 4
_hDC$ = -44						; size = 4
_pRefreshProfile$ = -40					; size = 4
_pHilightList$ = -36					; size = 4
_lpRect$ = -32						; size = 4
_uVTDFlags$ = -28					; size = 2
_pDoubleProfile$ = -24					; size = 4
_pRefreshCount$ = -20					; size = 4
_DrawRect$ = -16					; size = 16
___formal$ = 8						; size = 4
_wPoint$ = 12						; size = 2
_lpFlags$ = 16						; size = 4
_wColour$ = 20						; size = 2
_uChar$ = 24						; size = 1
_uMode$ = 28						; size = 1
_lpParam$ = 32						; size = 4
?DrawPageProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z PROC ; CVTDrawer::DrawPageProc, COMDAT

; 174  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 78	 sub	 esp, 120		; 00000078H

; 175  :     HDC     hDC             = (HDC)     ((LPVOID*)lpParam)[0];

  00006	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  00009	8b 08		 mov	 ecx, DWORD PTR [eax]
  0000b	89 4d d4	 mov	 DWORD PTR _hDC$[ebp], ecx

; 176  :     LPRECT  lpRect          = (LPRECT)  ((LPVOID*)lpParam)[1];

  0000e	8b 55 20	 mov	 edx, DWORD PTR _lpParam$[ebp]
  00011	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00014	89 45 e0	 mov	 DWORD PTR _lpRect$[ebp], eax

; 177  :     WORD    uVTDFlags       = (WORD)    ((LPVOID*)lpParam)[2];

  00017	8b 4d 20	 mov	 ecx, DWORD PTR _lpParam$[ebp]
  0001a	66 8b 51 08	 mov	 dx, WORD PTR [ecx+8]
  0001e	66 89 55 e4	 mov	 WORD PTR _uVTDFlags$[ebp], dx

; 178  :     HFONT*  hSelectedFont   = (HFONT*)  ((LPVOID*)lpParam)[3];

  00022	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  00025	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00028	89 4d c8	 mov	 DWORD PTR _hSelectedFont$[ebp], ecx

; 179  : 
; 180  :     TVTLeftRight** pHilightList    = (TVTLeftRight**)((LPVOID*)lpParam)[4];

  0002b	8b 55 20	 mov	 edx, DWORD PTR _lpParam$[ebp]
  0002e	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00031	89 45 dc	 mov	 DWORD PTR _pHilightList$[ebp], eax

; 181  :     BYTE*          pDoubleProfile  = (BYTE*)         ((LPVOID*)lpParam)[5];

  00034	8b 4d 20	 mov	 ecx, DWORD PTR _lpParam$[ebp]
  00037	8b 51 14	 mov	 edx, DWORD PTR [ecx+20]
  0003a	89 55 e8	 mov	 DWORD PTR _pDoubleProfile$[ebp], edx

; 182  :     RECT*          pRefreshProfile = (RECT*)         ((LPVOID*)lpParam)[6];

  0003d	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  00040	8b 48 18	 mov	 ecx, DWORD PTR [eax+24]
  00043	89 4d d8	 mov	 DWORD PTR _pRefreshProfile$[ebp], ecx

; 183  :     BYTE*          pRefreshCount   = (BYTE*)         ((LPVOID*)lpParam)[7];

  00046	8b 55 20	 mov	 edx, DWORD PTR _lpParam$[ebp]
  00049	8b 42 1c	 mov	 eax, DWORD PTR [edx+28]
  0004c	89 45 ec	 mov	 DWORD PTR _pRefreshCount$[ebp], eax

; 184  :     CVTDrawer*     pThis           = (CVTDrawer*)    ((LPVOID*)lpParam)[8];

  0004f	8b 4d 20	 mov	 ecx, DWORD PTR _lpParam$[ebp]
  00052	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  00055	89 55 d0	 mov	 DWORD PTR _pThis$[ebp], edx

; 185  : 
; 186  :     if ((uVTDFlags & VTDF_CLOCKONLY) && HIBYTE(wPoint) < 32)

  00058	0f b7 45 e4	 movzx	 eax, WORD PTR _uVTDFlags$[ebp]
  0005c	25 00 01 00 00	 and	 eax, 256		; 00000100H
  00061	74 1c		 je	 SHORT $LN43@DrawPagePr
  00063	0f b7 4d 0c	 movzx	 ecx, WORD PTR _wPoint$[ebp]
  00067	c1 e9 08	 shr	 ecx, 8
  0006a	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00070	0f b6 d1	 movzx	 edx, cl
  00073	83 fa 20	 cmp	 edx, 32			; 00000020H
  00076	7d 07		 jge	 SHORT $LN43@DrawPagePr

; 187  :     {
; 188  :         return PARSE_CONTINUE;

  00078	32 c0		 xor	 al, al
  0007a	e9 f6 05 00 00	 jmp	 $LN44@DrawPagePr
$LN43@DrawPagePr:

; 189  :     }
; 190  : 
; 191  :     if ((uVTDFlags & VTDF_HEADERONLY) && LOBYTE(wPoint) > 0)

  0007f	0f b7 45 e4	 movzx	 eax, WORD PTR _uVTDFlags$[ebp]
  00083	25 80 00 00 00	 and	 eax, 128		; 00000080H
  00088	74 18		 je	 SHORT $LN42@DrawPagePr
  0008a	0f b7 4d 0c	 movzx	 ecx, WORD PTR _wPoint$[ebp]
  0008e	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00094	0f b6 d1	 movzx	 edx, cl
  00097	85 d2		 test	 edx, edx
  00099	7e 07		 jle	 SHORT $LN42@DrawPagePr

; 192  :     {
; 193  :         return PARSE_STOPPAGE;

  0009b	b0 02		 mov	 al, 2
  0009d	e9 d3 05 00 00	 jmp	 $LN44@DrawPagePr
$LN42@DrawPagePr:

; 194  :     }
; 195  : 
; 196  :     if ((uVTDFlags & VTDF_ROW24ONLY) && LOBYTE(wPoint) < 24)

  000a2	0f b7 45 e4	 movzx	 eax, WORD PTR _uVTDFlags$[ebp]
  000a6	25 00 02 00 00	 and	 eax, 512		; 00000200H
  000ab	74 19		 je	 SHORT $LN41@DrawPagePr
  000ad	0f b7 4d 0c	 movzx	 ecx, WORD PTR _wPoint$[ebp]
  000b1	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  000b7	0f b6 d1	 movzx	 edx, cl
  000ba	83 fa 18	 cmp	 edx, 24			; 00000018H
  000bd	7d 07		 jge	 SHORT $LN41@DrawPagePr

; 197  :     {
; 198  :         return PARSE_CONTINUE;

  000bf	32 c0		 xor	 al, al
  000c1	e9 af 05 00 00	 jmp	 $LN44@DrawPagePr
$LN41@DrawPagePr:

; 199  :     }
; 200  : 
; 201  :     /*
; 202  :      * REPEATDOUBLE:
; 203  :      *
; 204  :      * First row:     dddddddDDDDDDDDDDDDD
; 205  :      * Repeat row:    -------DDDDDDDDDDDDD
; 206  :      *                       ^
; 207  :      *                       |- DOUBLEHEIGHT
; 208  :      *
; 209  :      * 1. Do the first row normally until DOUBLEHEIGHT then
; 210  :      *    double the background height from there on.  The
; 211  :      *    foreground height is as defined by VTMODE_DOUBLE.
; 212  :      * 2. Do the repeat row to fill the missing backgrounds
; 213  :      *    until DOUBLEHEIGHT is encountered.
; 214  :      *
; 215  :      */
; 216  : 
; 217  :     if ((*lpFlags & PARSE_DOUBLEREPEAT) && (*lpFlags & PARSE_DOUBLEHEIGHT))

  000c6	8b 45 10	 mov	 eax, DWORD PTR _lpFlags$[ebp]
  000c9	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  000cc	83 e1 40	 and	 ecx, 64			; 00000040H
  000cf	74 14		 je	 SHORT $LN40@DrawPagePr
  000d1	8b 55 10	 mov	 edx, DWORD PTR _lpFlags$[ebp]
  000d4	0f b7 02	 movzx	 eax, WORD PTR [edx]
  000d7	25 00 01 00 00	 and	 eax, 256		; 00000100H
  000dc	74 07		 je	 SHORT $LN40@DrawPagePr

; 218  :     {
; 219  :         return PARSE_STOPLINE;

  000de	b0 01		 mov	 al, 1
  000e0	e9 90 05 00 00	 jmp	 $LN44@DrawPagePr
$LN40@DrawPagePr:

; 220  :     }
; 221  : 
; 222  :     if (((uVTDFlags & VTDF_FLASHONLY) && !(uMode & VTMODE_FLASH)) ||
; 223  :         ((uVTDFlags & VTDF_HIDDENONLY) && !(uMode & VTMODE_CONCEAL)))

  000e5	0f b7 4d e4	 movzx	 ecx, WORD PTR _uVTDFlags$[ebp]
  000e9	83 e1 08	 and	 ecx, 8
  000ec	74 09		 je	 SHORT $LN37@DrawPagePr
  000ee	0f b6 55 1c	 movzx	 edx, BYTE PTR _uMode$[ebp]
  000f2	83 e2 04	 and	 edx, 4
  000f5	74 12		 je	 SHORT $LN38@DrawPagePr
$LN37@DrawPagePr:
  000f7	0f b7 45 e4	 movzx	 eax, WORD PTR _uVTDFlags$[ebp]
  000fb	83 e0 02	 and	 eax, 2
  000fe	74 10		 je	 SHORT $LN39@DrawPagePr
  00100	0f b6 4d 1c	 movzx	 ecx, BYTE PTR _uMode$[ebp]
  00104	83 e1 08	 and	 ecx, 8
  00107	75 07		 jne	 SHORT $LN39@DrawPagePr
$LN38@DrawPagePr:

; 224  :     {
; 225  :         return PARSE_CONTINUE;

  00109	32 c0		 xor	 al, al
  0010b	e9 65 05 00 00	 jmp	 $LN44@DrawPagePr
$LN39@DrawPagePr:

; 226  :     }
; 227  : 
; 228  :     BYTE nRow = LOBYTE(wPoint);

  00110	0f b7 55 0c	 movzx	 edx, WORD PTR _wPoint$[ebp]
  00114	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0011a	88 55 cc	 mov	 BYTE PTR _nRow$[ebp], dl

; 229  :     BYTE nCol = HIBYTE(wPoint);

  0011d	0f b7 45 0c	 movzx	 eax, WORD PTR _wPoint$[ebp]
  00121	c1 e8 08	 shr	 eax, 8
  00124	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00129	88 45 cf	 mov	 BYTE PTR _nCol$[ebp], al

; 230  : 
; 231  :     RECT DrawRect = {(LONG)(nCol * pThis->m_dAvgWidth + 0.5),

  0012c	0f b6 4d cf	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00130	89 4d 9c	 mov	 DWORD PTR tv474[ebp], ecx
  00133	db 45 9c	 fild	 DWORD PTR tv474[ebp]
  00136	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  00139	dc 8a 28 01 00
	00		 fmul	 QWORD PTR [edx+296]
  0013f	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fe0000000000000
  00145	e8 00 00 00 00	 call	 __ftol2_sse
  0014a	89 45 f0	 mov	 DWORD PTR _DrawRect$[ebp], eax

; 232  :                       (LONG)(nRow * pThis->m_dAvgHeight + 0.5),

  0014d	0f b6 45 cc	 movzx	 eax, BYTE PTR _nRow$[ebp]
  00151	89 45 98	 mov	 DWORD PTR tv479[ebp], eax
  00154	db 45 98	 fild	 DWORD PTR tv479[ebp]
  00157	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  0015a	dc 89 30 01 00
	00		 fmul	 QWORD PTR [ecx+304]
  00160	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fe0000000000000
  00166	e8 00 00 00 00	 call	 __ftol2_sse
  0016b	89 45 f4	 mov	 DWORD PTR _DrawRect$[ebp+4], eax

; 233  :                       (LONG)((nCol + 1) * pThis->m_dAvgWidth + 0.5),

  0016e	0f b6 55 cf	 movzx	 edx, BYTE PTR _nCol$[ebp]
  00172	83 c2 01	 add	 edx, 1
  00175	89 55 94	 mov	 DWORD PTR tv484[ebp], edx
  00178	db 45 94	 fild	 DWORD PTR tv484[ebp]
  0017b	8b 45 d0	 mov	 eax, DWORD PTR _pThis$[ebp]
  0017e	dc 88 28 01 00
	00		 fmul	 QWORD PTR [eax+296]
  00184	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fe0000000000000
  0018a	e8 00 00 00 00	 call	 __ftol2_sse
  0018f	89 45 f8	 mov	 DWORD PTR _DrawRect$[ebp+8], eax

; 234  :                       (LONG)((nRow + 1) * pThis->m_dAvgHeight + 0.5) };

  00192	0f b6 4d cc	 movzx	 ecx, BYTE PTR _nRow$[ebp]
  00196	83 c1 01	 add	 ecx, 1
  00199	89 4d 90	 mov	 DWORD PTR tv489[ebp], ecx
  0019c	db 45 90	 fild	 DWORD PTR tv489[ebp]
  0019f	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  001a2	dc 8a 30 01 00
	00		 fmul	 QWORD PTR [edx+304]
  001a8	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fe0000000000000
  001ae	e8 00 00 00 00	 call	 __ftol2_sse
  001b3	89 45 fc	 mov	 DWORD PTR _DrawRect$[ebp+12], eax

; 235  : 
; 236  :     if (*lpFlags & PARSE_DOUBLEHEIGHT)

  001b6	8b 45 10	 mov	 eax, DWORD PTR _lpFlags$[ebp]
  001b9	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  001bc	81 e1 00 01 00
	00		 and	 ecx, 256		; 00000100H
  001c2	74 24		 je	 SHORT $LN36@DrawPagePr

; 237  :     {
; 238  :         DrawRect.bottom = (LONG)((nRow + 2) * pThis->m_dAvgHeight + 0.5);

  001c4	0f b6 55 cc	 movzx	 edx, BYTE PTR _nRow$[ebp]
  001c8	83 c2 02	 add	 edx, 2
  001cb	89 55 8c	 mov	 DWORD PTR tv495[ebp], edx
  001ce	db 45 8c	 fild	 DWORD PTR tv495[ebp]
  001d1	8b 45 d0	 mov	 eax, DWORD PTR _pThis$[ebp]
  001d4	dc 88 30 01 00
	00		 fmul	 QWORD PTR [eax+304]
  001da	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fe0000000000000
  001e0	e8 00 00 00 00	 call	 __ftol2_sse
  001e5	89 45 fc	 mov	 DWORD PTR _DrawRect$[ebp+12], eax
$LN36@DrawPagePr:

; 239  :     }
; 240  : 
; 241  :     OffsetRect(&DrawRect, lpRect->left, lpRect->top);

  001e8	8b 4d e0	 mov	 ecx, DWORD PTR _lpRect$[ebp]
  001eb	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  001ee	52		 push	 edx
  001ef	8b 45 e0	 mov	 eax, DWORD PTR _lpRect$[ebp]
  001f2	8b 08		 mov	 ecx, DWORD PTR [eax]
  001f4	51		 push	 ecx
  001f5	8d 55 f0	 lea	 edx, DWORD PTR _DrawRect$[ebp]
  001f8	52		 push	 edx
  001f9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__OffsetRect@12

; 242  : 
; 243  :     BYTE Foreground = LOBYTE(wColour);

  001ff	0f b7 45 14	 movzx	 eax, WORD PTR _wColour$[ebp]
  00203	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00208	88 45 cd	 mov	 BYTE PTR _Foreground$[ebp], al

; 244  :     BYTE Background = HIBYTE(wColour);

  0020b	0f b7 4d 14	 movzx	 ecx, WORD PTR _wColour$[ebp]
  0020f	c1 e9 08	 shr	 ecx, 8
  00212	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00218	88 4d ce	 mov	 BYTE PTR _Background$[ebp], cl

; 245  : 
; 246  :     if ((uVTDFlags & VTDF_MIXEDMODE) && !(uMode & VTMODE_BOXED))

  0021b	0f b7 55 e4	 movzx	 edx, WORD PTR _uVTDFlags$[ebp]
  0021f	83 e2 10	 and	 edx, 16			; 00000010H
  00222	74 0d		 je	 SHORT $LN35@DrawPagePr
  00224	0f b6 45 1c	 movzx	 eax, BYTE PTR _uMode$[ebp]
  00228	83 e0 10	 and	 eax, 16			; 00000010H
  0022b	75 04		 jne	 SHORT $LN35@DrawPagePr

; 247  :     {
; 248  :         Background = VTCOLOR_NONE;

  0022d	c6 45 ce 08	 mov	 BYTE PTR _Background$[ebp], 8
$LN35@DrawPagePr:

; 249  :     }
; 250  : 
; 251  :     if (pHilightList != NULL)

  00231	83 7d dc 00	 cmp	 DWORD PTR _pHilightList$[ebp], 0
  00235	74 6a		 je	 SHORT $LN30@DrawPagePr

; 252  :     {
; 253  :         TVTLeftRight* pHilight;
; 254  : 
; 255  :         if (*lpFlags & PARSE_DOUBLEREPEAT)

  00237	8b 4d 10	 mov	 ecx, DWORD PTR _lpFlags$[ebp]
  0023a	0f b7 11	 movzx	 edx, WORD PTR [ecx]
  0023d	83 e2 40	 and	 edx, 64			; 00000040H
  00240	74 10		 je	 SHORT $LN33@DrawPagePr

; 256  :         {
; 257  :             pHilight = pHilightList[nRow - 1];

  00242	0f b6 45 cc	 movzx	 eax, BYTE PTR _nRow$[ebp]
  00246	8b 4d dc	 mov	 ecx, DWORD PTR _pHilightList$[ebp]
  00249	8b 54 81 fc	 mov	 edx, DWORD PTR [ecx+eax*4-4]
  0024d	89 55 c4	 mov	 DWORD PTR _pHilight$139925[ebp], edx

; 258  :         }
; 259  :         else

  00250	eb 0d		 jmp	 SHORT $LN32@DrawPagePr
$LN33@DrawPagePr:

; 260  :         {
; 261  :             pHilight = pHilightList[nRow];

  00252	0f b6 45 cc	 movzx	 eax, BYTE PTR _nRow$[ebp]
  00256	8b 4d dc	 mov	 ecx, DWORD PTR _pHilightList$[ebp]
  00259	8b 14 81	 mov	 edx, DWORD PTR [ecx+eax*4]
  0025c	89 55 c4	 mov	 DWORD PTR _pHilight$139925[ebp], edx
$LN32@DrawPagePr:

; 262  :         }
; 263  : 
; 264  :         while (pHilight != NULL && nCol >= pHilight->Left)

  0025f	83 7d c4 00	 cmp	 DWORD PTR _pHilight$139925[ebp], 0
  00263	74 3c		 je	 SHORT $LN30@DrawPagePr
  00265	0f b6 45 cf	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00269	8b 4d c4	 mov	 ecx, DWORD PTR _pHilight$139925[ebp]
  0026c	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  0026f	3b c2		 cmp	 eax, edx
  00271	7c 2e		 jl	 SHORT $LN30@DrawPagePr

; 265  :         {
; 266  :             if (nCol <= pHilight->Right)

  00273	0f b6 45 cf	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00277	8b 4d c4	 mov	 ecx, DWORD PTR _pHilight$139925[ebp]
  0027a	0f b6 51 01	 movzx	 edx, BYTE PTR [ecx+1]
  0027e	3b c2		 cmp	 eax, edx
  00280	7f 14		 jg	 SHORT $LN29@DrawPagePr

; 267  :             {
; 268  :                 BYTE TempColour;
; 269  :                 TempColour = Foreground;

  00282	8a 45 cd	 mov	 al, BYTE PTR _Foreground$[ebp]
  00285	88 45 c3	 mov	 BYTE PTR _TempColour$139932[ebp], al

; 270  :                 Foreground = Background;

  00288	8a 4d ce	 mov	 cl, BYTE PTR _Background$[ebp]
  0028b	88 4d cd	 mov	 BYTE PTR _Foreground$[ebp], cl

; 271  :                 Background = TempColour;

  0028e	8a 55 c3	 mov	 dl, BYTE PTR _TempColour$139932[ebp]
  00291	88 55 ce	 mov	 BYTE PTR _Background$[ebp], dl

; 272  :                 break;

  00294	eb 0b		 jmp	 SHORT $LN30@DrawPagePr
$LN29@DrawPagePr:

; 273  :             }
; 274  :             pHilight = pHilight->Next;

  00296	8b 45 c4	 mov	 eax, DWORD PTR _pHilight$139925[ebp]
  00299	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0029c	89 4d c4	 mov	 DWORD PTR _pHilight$139925[ebp], ecx

; 275  :         }

  0029f	eb be		 jmp	 SHORT $LN32@DrawPagePr
$LN30@DrawPagePr:

; 276  :     }
; 277  : 
; 278  :     FillRect(hDC, &DrawRect, pThis->GetColourBrush(Background));

  002a1	0f b6 55 ce	 movzx	 edx, BYTE PTR _Background$[ebp]
  002a5	52		 push	 edx
  002a6	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  002a9	e8 00 00 00 00	 call	 ?GetColourBrush@CVTDrawer@@AAEPAUHBRUSH__@@E@Z ; CVTDrawer::GetColourBrush
  002ae	50		 push	 eax
  002af	8d 45 f0	 lea	 eax, DWORD PTR _DrawRect$[ebp]
  002b2	50		 push	 eax
  002b3	8b 4d d4	 mov	 ecx, DWORD PTR _hDC$[ebp]
  002b6	51		 push	 ecx
  002b7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__FillRect@12

; 279  : 
; 280  :     if (pRefreshProfile != NULL)

  002bd	83 7d d8 00	 cmp	 DWORD PTR _pRefreshProfile$[ebp], 0
  002c1	0f 84 85 00 00
	00		 je	 $LN28@DrawPagePr

; 281  :     {
; 282  :         if (*pRefreshCount == 0 ||
; 283  :             pRefreshProfile[*pRefreshCount-1].top != DrawRect.top)

  002c7	8b 55 ec	 mov	 edx, DWORD PTR _pRefreshCount$[ebp]
  002ca	0f b6 02	 movzx	 eax, BYTE PTR [edx]
  002cd	85 c0		 test	 eax, eax
  002cf	74 18		 je	 SHORT $LN26@DrawPagePr
  002d1	8b 4d ec	 mov	 ecx, DWORD PTR _pRefreshCount$[ebp]
  002d4	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  002d7	83 ea 01	 sub	 edx, 1
  002da	c1 e2 04	 shl	 edx, 4
  002dd	8b 45 d8	 mov	 eax, DWORD PTR _pRefreshProfile$[ebp]
  002e0	8b 4c 10 04	 mov	 ecx, DWORD PTR [eax+edx+4]
  002e4	3b 4d f4	 cmp	 ecx, DWORD PTR _DrawRect$[ebp+4]
  002e7	74 37		 je	 SHORT $LN27@DrawPagePr
$LN26@DrawPagePr:

; 284  :         {
; 285  :             (*pRefreshCount)++;

  002e9	8b 55 ec	 mov	 edx, DWORD PTR _pRefreshCount$[ebp]
  002ec	8a 02		 mov	 al, BYTE PTR [edx]
  002ee	04 01		 add	 al, 1
  002f0	8b 4d ec	 mov	 ecx, DWORD PTR _pRefreshCount$[ebp]
  002f3	88 01		 mov	 BYTE PTR [ecx], al

; 286  :             pRefreshProfile[*pRefreshCount-1].top = DrawRect.top;

  002f5	8b 55 ec	 mov	 edx, DWORD PTR _pRefreshCount$[ebp]
  002f8	0f b6 02	 movzx	 eax, BYTE PTR [edx]
  002fb	83 e8 01	 sub	 eax, 1
  002fe	c1 e0 04	 shl	 eax, 4
  00301	8b 4d d8	 mov	 ecx, DWORD PTR _pRefreshProfile$[ebp]
  00304	8b 55 f4	 mov	 edx, DWORD PTR _DrawRect$[ebp+4]
  00307	89 54 01 04	 mov	 DWORD PTR [ecx+eax+4], edx

; 287  :             pRefreshProfile[*pRefreshCount-1].left = DrawRect.left;

  0030b	8b 45 ec	 mov	 eax, DWORD PTR _pRefreshCount$[ebp]
  0030e	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00311	83 e9 01	 sub	 ecx, 1
  00314	c1 e1 04	 shl	 ecx, 4
  00317	8b 55 d8	 mov	 edx, DWORD PTR _pRefreshProfile$[ebp]
  0031a	8b 45 f0	 mov	 eax, DWORD PTR _DrawRect$[ebp]
  0031d	89 04 0a	 mov	 DWORD PTR [edx+ecx], eax
$LN27@DrawPagePr:

; 288  :         }
; 289  : 
; 290  :         pRefreshProfile[*pRefreshCount-1].right = DrawRect.right;

  00320	8b 4d ec	 mov	 ecx, DWORD PTR _pRefreshCount$[ebp]
  00323	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  00326	83 ea 01	 sub	 edx, 1
  00329	c1 e2 04	 shl	 edx, 4
  0032c	8b 45 d8	 mov	 eax, DWORD PTR _pRefreshProfile$[ebp]
  0032f	8b 4d f8	 mov	 ecx, DWORD PTR _DrawRect$[ebp+8]
  00332	89 4c 10 08	 mov	 DWORD PTR [eax+edx+8], ecx

; 291  :         pRefreshProfile[*pRefreshCount-1].bottom = DrawRect.bottom;

  00336	8b 55 ec	 mov	 edx, DWORD PTR _pRefreshCount$[ebp]
  00339	0f b6 02	 movzx	 eax, BYTE PTR [edx]
  0033c	83 e8 01	 sub	 eax, 1
  0033f	c1 e0 04	 shl	 eax, 4
  00342	8b 4d d8	 mov	 ecx, DWORD PTR _pRefreshProfile$[ebp]
  00345	8b 55 fc	 mov	 edx, DWORD PTR _DrawRect$[ebp+12]
  00348	89 54 01 0c	 mov	 DWORD PTR [ecx+eax+12], edx
$LN28@DrawPagePr:

; 292  :     }
; 293  : 
; 294  :     if (*lpFlags & PARSE_DOUBLEREPEAT)

  0034c	8b 45 10	 mov	 eax, DWORD PTR _lpFlags$[ebp]
  0034f	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  00352	83 e1 40	 and	 ecx, 64			; 00000040H
  00355	74 07		 je	 SHORT $LN25@DrawPagePr

; 295  :     {
; 296  :         return PARSE_CONTINUE;

  00357	32 c0		 xor	 al, al
  00359	e9 17 03 00 00	 jmp	 $LN44@DrawPagePr
$LN25@DrawPagePr:

; 297  :     }
; 298  : 
; 299  :     if (pDoubleProfile != NULL)

  0035e	83 7d e8 00	 cmp	 DWORD PTR _pDoubleProfile$[ebp], 0
  00362	74 18		 je	 SHORT $LN24@DrawPagePr

; 300  :     {
; 301  :         // Record all the lines where doubles are drawn
; 302  :         pDoubleProfile[nRow] = ((*lpFlags & PARSE_DOUBLEHEIGHT) != 0);

  00364	8b 55 10	 mov	 edx, DWORD PTR _lpFlags$[ebp]
  00367	0f b7 02	 movzx	 eax, WORD PTR [edx]
  0036a	25 00 01 00 00	 and	 eax, 256		; 00000100H
  0036f	0f 95 c1	 setne	 cl
  00372	0f b6 55 cc	 movzx	 edx, BYTE PTR _nRow$[ebp]
  00376	8b 45 e8	 mov	 eax, DWORD PTR _pDoubleProfile$[ebp]
  00379	88 0c 10	 mov	 BYTE PTR [eax+edx], cl
$LN24@DrawPagePr:

; 303  :     }
; 304  : 
; 305  :     if (uChar == 0x20)

  0037c	0f b6 4d 18	 movzx	 ecx, BYTE PTR _uChar$[ebp]
  00380	83 f9 20	 cmp	 ecx, 32			; 00000020H
  00383	75 07		 jne	 SHORT $LN23@DrawPagePr

; 306  :     {
; 307  :         return PARSE_CONTINUE;

  00385	32 c0		 xor	 al, al
  00387	e9 e9 02 00 00	 jmp	 $LN44@DrawPagePr
$LN23@DrawPagePr:

; 308  :     }
; 309  : 
; 310  :     if(((uMode & VTMODE_FLASH) && !(uVTDFlags & VTDF_FLASH)) ||
; 311  :        ((uMode & VTMODE_CONCEAL) && !(uVTDFlags & VTDF_HIDDEN)))

  0038c	0f b6 55 1c	 movzx	 edx, BYTE PTR _uMode$[ebp]
  00390	83 e2 04	 and	 edx, 4
  00393	74 09		 je	 SHORT $LN20@DrawPagePr
  00395	0f b7 45 e4	 movzx	 eax, WORD PTR _uVTDFlags$[ebp]
  00399	83 e0 04	 and	 eax, 4
  0039c	74 12		 je	 SHORT $LN21@DrawPagePr
$LN20@DrawPagePr:
  0039e	0f b6 4d 1c	 movzx	 ecx, BYTE PTR _uMode$[ebp]
  003a2	83 e1 08	 and	 ecx, 8
  003a5	74 10		 je	 SHORT $LN22@DrawPagePr
  003a7	0f b7 55 e4	 movzx	 edx, WORD PTR _uVTDFlags$[ebp]
  003ab	83 e2 01	 and	 edx, 1
  003ae	75 07		 jne	 SHORT $LN22@DrawPagePr
$LN21@DrawPagePr:

; 312  :     {
; 313  :         return PARSE_CONTINUE;

  003b0	32 c0		 xor	 al, al
  003b2	e9 be 02 00 00	 jmp	 $LN44@DrawPagePr
$LN22@DrawPagePr:

; 314  :     }
; 315  : 
; 316  :     if ((*lpFlags & PARSE_DOUBLEHEIGHT) && !(uMode & VTMODE_DOUBLE))

  003b7	8b 45 10	 mov	 eax, DWORD PTR _lpFlags$[ebp]
  003ba	0f b7 08	 movzx	 ecx, WORD PTR [eax]
  003bd	81 e1 00 01 00
	00		 and	 ecx, 256		; 00000100H
  003c3	74 39		 je	 SHORT $LN19@DrawPagePr
  003c5	0f b6 55 1c	 movzx	 edx, BYTE PTR _uMode$[ebp]
  003c9	83 e2 20	 and	 edx, 32			; 00000020H
  003cc	75 30		 jne	 SHORT $LN19@DrawPagePr

; 317  :     {
; 318  :         DrawRect.bottom = (LONG)((nRow + 1) * pThis->m_dAvgHeight + 0.5);

  003ce	0f b6 45 cc	 movzx	 eax, BYTE PTR _nRow$[ebp]
  003d2	83 c0 01	 add	 eax, 1
  003d5	89 45 88	 mov	 DWORD PTR tv548[ebp], eax
  003d8	db 45 88	 fild	 DWORD PTR tv548[ebp]
  003db	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  003de	dc 89 30 01 00
	00		 fmul	 QWORD PTR [ecx+304]
  003e4	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fe0000000000000
  003ea	e8 00 00 00 00	 call	 __ftol2_sse
  003ef	89 45 fc	 mov	 DWORD PTR _DrawRect$[ebp+12], eax

; 319  :         DrawRect.bottom += lpRect->top;

  003f2	8b 55 e0	 mov	 edx, DWORD PTR _lpRect$[ebp]
  003f5	8b 45 fc	 mov	 eax, DWORD PTR _DrawRect$[ebp+12]
  003f8	03 42 04	 add	 eax, DWORD PTR [edx+4]
  003fb	89 45 fc	 mov	 DWORD PTR _DrawRect$[ebp+12], eax
$LN19@DrawPagePr:

; 320  :     }
; 321  : 
; 322  :     if ((uMode & VTMODE_GRAPHICS) && (uChar & 0x20))

  003fe	0f b6 4d 1c	 movzx	 ecx, BYTE PTR _uMode$[ebp]
  00402	83 e1 01	 and	 ecx, 1
  00405	74 3f		 je	 SHORT $LN18@DrawPagePr
  00407	0f b6 55 18	 movzx	 edx, BYTE PTR _uChar$[ebp]
  0040b	83 e2 20	 and	 edx, 32			; 00000020H
  0040e	74 36		 je	 SHORT $LN18@DrawPagePr

; 323  :     {
; 324  :         CVTMosaicGraphics::DrawG1Mosaic(hDC, &DrawRect, uChar,
; 325  :             pThis->GetColourBrush(Foreground), (uMode & VTMODE_SEPARATED) != 0);

  00410	0f b6 45 1c	 movzx	 eax, BYTE PTR _uMode$[ebp]
  00414	83 e0 02	 and	 eax, 2
  00417	f7 d8		 neg	 eax
  00419	1b c0		 sbb	 eax, eax
  0041b	f7 d8		 neg	 eax
  0041d	50		 push	 eax
  0041e	0f b6 4d cd	 movzx	 ecx, BYTE PTR _Foreground$[ebp]
  00422	51		 push	 ecx
  00423	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  00426	e8 00 00 00 00	 call	 ?GetColourBrush@CVTDrawer@@AAEPAUHBRUSH__@@E@Z ; CVTDrawer::GetColourBrush
  0042b	50		 push	 eax
  0042c	0f b6 55 18	 movzx	 edx, BYTE PTR _uChar$[ebp]
  00430	52		 push	 edx
  00431	8d 45 f0	 lea	 eax, DWORD PTR _DrawRect$[ebp]
  00434	50		 push	 eax
  00435	8b 4d d4	 mov	 ecx, DWORD PTR _hDC$[ebp]
  00438	51		 push	 ecx
  00439	e8 00 00 00 00	 call	 ?DrawG1Mosaic@CVTMosaicGraphics@@SAXPAUHDC__@@PAUtagRECT@@EPAUHBRUSH__@@H@Z ; CVTMosaicGraphics::DrawG1Mosaic
  0043e	83 c4 14	 add	 esp, 20			; 00000014H

; 326  :     }
; 327  :     else

  00441	e9 2d 02 00 00	 jmp	 $LN17@DrawPagePr
$LN18@DrawPagePr:

; 328  :     {
; 329  :         HFONT hNormalFont;
; 330  :         HFONT hDoubleFont;
; 331  :         HFONT hNormalFontSmaller;
; 332  :         HFONT hDoubleFontSmaller;
; 333  : 
; 334  :         if (Background == VTCOLOR_NONE && pThis->m_bAntialias)

  00446	0f b6 55 ce	 movzx	 edx, BYTE PTR _Background$[ebp]
  0044a	83 fa 08	 cmp	 edx, 8
  0044d	75 47		 jne	 SHORT $LN16@DrawPagePr
  0044f	8b 45 d0	 mov	 eax, DWORD PTR _pThis$[ebp]
  00452	83 78 28 00	 cmp	 DWORD PTR [eax+40], 0
  00456	74 3e		 je	 SHORT $LN16@DrawPagePr

; 335  :         {
; 336  :             pThis->CreateMissingLowQFonts(hDC);

  00458	8b 4d d4	 mov	 ecx, DWORD PTR _hDC$[ebp]
  0045b	51		 push	 ecx
  0045c	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  0045f	e8 00 00 00 00	 call	 ?CreateMissingLowQFonts@CVTDrawer@@AAEXPAUHDC__@@@Z ; CVTDrawer::CreateMissingLowQFonts

; 337  : 
; 338  :             hNormalFont         = pThis->m_hLowQNormalFont;

  00464	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  00467	8b 82 10 01 00
	00		 mov	 eax, DWORD PTR [edx+272]
  0046d	89 45 ac	 mov	 DWORD PTR _hNormalFont$139946[ebp], eax

; 339  :             hDoubleFont         = pThis->m_hLowQDoubleFont;

  00470	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  00473	8b 91 14 01 00
	00		 mov	 edx, DWORD PTR [ecx+276]
  00479	89 55 b4	 mov	 DWORD PTR _hDoubleFont$139947[ebp], edx

; 340  :             hNormalFontSmaller  = pThis->m_hLowQNormalFontSmaller;

  0047c	8b 45 d0	 mov	 eax, DWORD PTR _pThis$[ebp]
  0047f	8b 88 18 01 00
	00		 mov	 ecx, DWORD PTR [eax+280]
  00485	89 4d b8	 mov	 DWORD PTR _hNormalFontSmaller$139948[ebp], ecx

; 341  :             hDoubleFontSmaller  = pThis->m_hLowQDoubleFontSmaller;

  00488	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  0048b	8b 82 1c 01 00
	00		 mov	 eax, DWORD PTR [edx+284]
  00491	89 45 a8	 mov	 DWORD PTR _hDoubleFontSmaller$139949[ebp], eax

; 342  :         }
; 343  :         else

  00494	eb 3c		 jmp	 SHORT $LN15@DrawPagePr
$LN16@DrawPagePr:

; 344  :         {
; 345  :             pThis->CreateMissingStandardFonts(hDC);

  00496	8b 4d d4	 mov	 ecx, DWORD PTR _hDC$[ebp]
  00499	51		 push	 ecx
  0049a	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  0049d	e8 00 00 00 00	 call	 ?CreateMissingStandardFonts@CVTDrawer@@AAEXPAUHDC__@@@Z ; CVTDrawer::CreateMissingStandardFonts

; 346  : 
; 347  :             hNormalFont         = pThis->m_hNormalFont;

  004a2	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  004a5	8b 82 00 01 00
	00		 mov	 eax, DWORD PTR [edx+256]
  004ab	89 45 ac	 mov	 DWORD PTR _hNormalFont$139946[ebp], eax

; 348  :             hDoubleFont         = pThis->m_hDoubleFont;

  004ae	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  004b1	8b 91 04 01 00
	00		 mov	 edx, DWORD PTR [ecx+260]
  004b7	89 55 b4	 mov	 DWORD PTR _hDoubleFont$139947[ebp], edx

; 349  :             hNormalFontSmaller  = pThis->m_hNormalFontSmaller;

  004ba	8b 45 d0	 mov	 eax, DWORD PTR _pThis$[ebp]
  004bd	8b 88 08 01 00
	00		 mov	 ecx, DWORD PTR [eax+264]
  004c3	89 4d b8	 mov	 DWORD PTR _hNormalFontSmaller$139948[ebp], ecx

; 350  :             hDoubleFontSmaller  = pThis->m_hDoubleFontSmaller;

  004c6	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  004c9	8b 82 0c 01 00
	00		 mov	 eax, DWORD PTR [edx+268]
  004cf	89 45 a8	 mov	 DWORD PTR _hDoubleFontSmaller$139949[ebp], eax
$LN15@DrawPagePr:

; 351  :         }
; 352  : 
; 353  :         WORD UnicodeChar = pThis->m_CharacterSet[uChar - 0x20];

  004d2	0f b6 4d 18	 movzx	 ecx, BYTE PTR _uChar$[ebp]
  004d6	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  004d9	66 8b 04 4a	 mov	 ax, WORD PTR [edx+ecx*2]
  004dd	66 89 45 b0	 mov	 WORD PTR _UnicodeChar$139952[ebp], ax

; 354  : 
; 355  :         // Select correct font
; 356  :         if (uMode & VTMODE_DOUBLE)

  004e1	0f b6 4d 1c	 movzx	 ecx, BYTE PTR _uMode$[ebp]
  004e5	83 e1 20	 and	 ecx, 32			; 00000020H
  004e8	74 22		 je	 SHORT $LN14@DrawPagePr

; 357  :         {
; 358  :             if (*hSelectedFont != hDoubleFont)

  004ea	8b 55 c8	 mov	 edx, DWORD PTR _hSelectedFont$[ebp]
  004ed	8b 02		 mov	 eax, DWORD PTR [edx]
  004ef	3b 45 b4	 cmp	 eax, DWORD PTR _hDoubleFont$139947[ebp]
  004f2	74 16		 je	 SHORT $LN13@DrawPagePr

; 359  :             {
; 360  :                 SelectObject(hDC, *hSelectedFont = hDoubleFont);

  004f4	8b 4d c8	 mov	 ecx, DWORD PTR _hSelectedFont$[ebp]
  004f7	8b 55 b4	 mov	 edx, DWORD PTR _hDoubleFont$139947[ebp]
  004fa	89 11		 mov	 DWORD PTR [ecx], edx
  004fc	8b 45 b4	 mov	 eax, DWORD PTR _hDoubleFont$139947[ebp]
  004ff	50		 push	 eax
  00500	8b 4d d4	 mov	 ecx, DWORD PTR _hDC$[ebp]
  00503	51		 push	 ecx
  00504	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
$LN13@DrawPagePr:

; 361  :             }
; 362  :         }
; 363  :         else

  0050a	eb 20		 jmp	 SHORT $LN11@DrawPagePr
$LN14@DrawPagePr:

; 364  :         {
; 365  :             if (*hSelectedFont != hNormalFont)

  0050c	8b 55 c8	 mov	 edx, DWORD PTR _hSelectedFont$[ebp]
  0050f	8b 02		 mov	 eax, DWORD PTR [edx]
  00511	3b 45 ac	 cmp	 eax, DWORD PTR _hNormalFont$139946[ebp]
  00514	74 16		 je	 SHORT $LN11@DrawPagePr

; 366  :             {
; 367  :                 SelectObject(hDC, *hSelectedFont = hNormalFont);

  00516	8b 4d c8	 mov	 ecx, DWORD PTR _hSelectedFont$[ebp]
  00519	8b 55 ac	 mov	 edx, DWORD PTR _hNormalFont$139946[ebp]
  0051c	89 11		 mov	 DWORD PTR [ecx], edx
  0051e	8b 45 ac	 mov	 eax, DWORD PTR _hNormalFont$139946[ebp]
  00521	50		 push	 eax
  00522	8b 4d d4	 mov	 ecx, DWORD PTR _hDC$[ebp]
  00525	51		 push	 ecx
  00526	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
$LN11@DrawPagePr:

; 368  :             }
; 369  :         }
; 370  : 
; 371  :         int LeftOffset = 0;

  0052c	c7 45 bc 00 00
	00 00		 mov	 DWORD PTR _LeftOffset$139957[ebp], 0

; 372  : 
; 373  :         if (!pThis->m_bFixedPitch)

  00533	8b 55 d0	 mov	 edx, DWORD PTR _pThis$[ebp]
  00536	83 ba 20 01 00
	00 00		 cmp	 DWORD PTR [edx+288], 0
  0053d	0f 85 c6 00 00
	00		 jne	 $LN2@DrawPagePr

; 374  :         {
; 375  :             SIZE Size;
; 376  :             GetTextExtentPoint32W(hDC, (LPCWSTR)&UnicodeChar, 1, &Size);

  00543	8d 45 a0	 lea	 eax, DWORD PTR _Size$139959[ebp]
  00546	50		 push	 eax
  00547	6a 01		 push	 1
  00549	8d 4d b0	 lea	 ecx, DWORD PTR _UnicodeChar$139952[ebp]
  0054c	51		 push	 ecx
  0054d	8b 55 d4	 mov	 edx, DWORD PTR _hDC$[ebp]
  00550	52		 push	 edx
  00551	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTextExtentPoint32W@16

; 377  : 
; 378  :             // Use smaller font if it doesn't fit
; 379  :             if (Size.cx > DrawRect.right - DrawRect.left)

  00557	8b 45 f8	 mov	 eax, DWORD PTR _DrawRect$[ebp+8]
  0055a	2b 45 f0	 sub	 eax, DWORD PTR _DrawRect$[ebp]
  0055d	39 45 a0	 cmp	 DWORD PTR _Size$139959[ebp], eax
  00560	7e 4b		 jle	 SHORT $LN9@DrawPagePr

; 380  :             {
; 381  :                 if (uMode & VTMODE_DOUBLE)

  00562	0f b6 4d 1c	 movzx	 ecx, BYTE PTR _uMode$[ebp]
  00566	83 e1 20	 and	 ecx, 32			; 00000020H
  00569	74 18		 je	 SHORT $LN8@DrawPagePr

; 382  :                 {
; 383  :                     SelectObject(hDC, *hSelectedFont = hDoubleFontSmaller);

  0056b	8b 55 c8	 mov	 edx, DWORD PTR _hSelectedFont$[ebp]
  0056e	8b 45 a8	 mov	 eax, DWORD PTR _hDoubleFontSmaller$139949[ebp]
  00571	89 02		 mov	 DWORD PTR [edx], eax
  00573	8b 4d a8	 mov	 ecx, DWORD PTR _hDoubleFontSmaller$139949[ebp]
  00576	51		 push	 ecx
  00577	8b 55 d4	 mov	 edx, DWORD PTR _hDC$[ebp]
  0057a	52		 push	 edx
  0057b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8

; 384  :                 }
; 385  :                 else

  00581	eb 16		 jmp	 SHORT $LN7@DrawPagePr
$LN8@DrawPagePr:

; 386  :                 {
; 387  :                     SelectObject(hDC, *hSelectedFont = hNormalFontSmaller);

  00583	8b 45 c8	 mov	 eax, DWORD PTR _hSelectedFont$[ebp]
  00586	8b 4d b8	 mov	 ecx, DWORD PTR _hNormalFontSmaller$139948[ebp]
  00589	89 08		 mov	 DWORD PTR [eax], ecx
  0058b	8b 55 b8	 mov	 edx, DWORD PTR _hNormalFontSmaller$139948[ebp]
  0058e	52		 push	 edx
  0058f	8b 45 d4	 mov	 eax, DWORD PTR _hDC$[ebp]
  00592	50		 push	 eax
  00593	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
$LN7@DrawPagePr:

; 388  :                 }
; 389  : 
; 390  :                 GetTextExtentPoint32W(hDC, (LPCWSTR)&UnicodeChar, 1, &Size);

  00599	8d 4d a0	 lea	 ecx, DWORD PTR _Size$139959[ebp]
  0059c	51		 push	 ecx
  0059d	6a 01		 push	 1
  0059f	8d 55 b0	 lea	 edx, DWORD PTR _UnicodeChar$139952[ebp]
  005a2	52		 push	 edx
  005a3	8b 45 d4	 mov	 eax, DWORD PTR _hDC$[ebp]
  005a6	50		 push	 eax
  005a7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTextExtentPoint32W@16
$LN9@DrawPagePr:

; 391  :             }
; 392  : 
; 393  :             LeftOffset = (int)((pThis->m_dAvgWidth - Size.cx) / 2);

  005ad	db 45 a0	 fild	 DWORD PTR _Size$139959[ebp]
  005b0	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  005b3	dc a9 28 01 00
	00		 fsubr	 QWORD PTR [ecx+296]
  005b9	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4000000000000000
  005bf	e8 00 00 00 00	 call	 __ftol2_sse
  005c4	89 45 bc	 mov	 DWORD PTR _LeftOffset$139957[ebp], eax

; 394  : 
; 395  :             if (nCol == 0)

  005c7	0f b6 55 cf	 movzx	 edx, BYTE PTR _nCol$[ebp]
  005cb	85 d2		 test	 edx, edx
  005cd	75 0f		 jne	 SHORT $LN6@DrawPagePr

; 396  :             {
; 397  :                 // This is 1 and not 0 to compensate for
; 398  :                 // antialiasing
; 399  :                 if (LeftOffset < 1)

  005cf	83 7d bc 01	 cmp	 DWORD PTR _LeftOffset$139957[ebp], 1
  005d3	7d 07		 jge	 SHORT $LN5@DrawPagePr

; 400  :                 {
; 401  :                     LeftOffset = 1;

  005d5	c7 45 bc 01 00
	00 00		 mov	 DWORD PTR _LeftOffset$139957[ebp], 1
$LN5@DrawPagePr:

; 402  :                 }
; 403  :             }

  005dc	eb 2b		 jmp	 SHORT $LN2@DrawPagePr
$LN6@DrawPagePr:

; 404  :             else if (nCol == 39)

  005de	0f b6 45 cf	 movzx	 eax, BYTE PTR _nCol$[ebp]
  005e2	83 f8 27	 cmp	 eax, 39			; 00000027H
  005e5	75 22		 jne	 SHORT $LN2@DrawPagePr

; 405  :             {
; 406  :                 if (LeftOffset + Size.cx > DrawRect.right - DrawRect.left - 1)

  005e7	8b 4d bc	 mov	 ecx, DWORD PTR _LeftOffset$139957[ebp]
  005ea	03 4d a0	 add	 ecx, DWORD PTR _Size$139959[ebp]
  005ed	8b 55 f8	 mov	 edx, DWORD PTR _DrawRect$[ebp+8]
  005f0	2b 55 f0	 sub	 edx, DWORD PTR _DrawRect$[ebp]
  005f3	83 ea 01	 sub	 edx, 1
  005f6	3b ca		 cmp	 ecx, edx
  005f8	7e 0f		 jle	 SHORT $LN2@DrawPagePr

; 407  :                 {
; 408  :                     LeftOffset = DrawRect.right - DrawRect.left - Size.cx - 1;

  005fa	8b 45 f8	 mov	 eax, DWORD PTR _DrawRect$[ebp+8]
  005fd	2b 45 f0	 sub	 eax, DWORD PTR _DrawRect$[ebp]
  00600	2b 45 a0	 sub	 eax, DWORD PTR _Size$139959[ebp]
  00603	83 e8 01	 sub	 eax, 1
  00606	89 45 bc	 mov	 DWORD PTR _LeftOffset$139957[ebp], eax
$LN2@DrawPagePr:

; 409  :                 }
; 410  :             }
; 411  :         }
; 412  : 
; 413  :         // Draw a shadow if there is no background
; 414  :         if (Background == VTCOLOR_NONE)

  00609	0f b6 4d ce	 movzx	 ecx, BYTE PTR _Background$[ebp]
  0060d	83 f9 08	 cmp	 ecx, 8
  00610	75 2b		 jne	 SHORT $LN1@DrawPagePr

; 415  :         {
; 416  :             SetTextColor(hDC, 0x000000);

  00612	6a 00		 push	 0
  00614	8b 55 d4	 mov	 edx, DWORD PTR _hDC$[ebp]
  00617	52		 push	 edx
  00618	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetTextColor@8

; 417  :             TextOutW(hDC, DrawRect.left + LeftOffset + 1,
; 418  :                 DrawRect.top, (LPCWSTR)&UnicodeChar, 1);

  0061e	6a 01		 push	 1
  00620	8d 45 b0	 lea	 eax, DWORD PTR _UnicodeChar$139952[ebp]
  00623	50		 push	 eax
  00624	8b 4d f4	 mov	 ecx, DWORD PTR _DrawRect$[ebp+4]
  00627	51		 push	 ecx
  00628	8b 55 bc	 mov	 edx, DWORD PTR _LeftOffset$139957[ebp]
  0062b	8b 45 f0	 mov	 eax, DWORD PTR _DrawRect$[ebp]
  0062e	8d 4c 10 01	 lea	 ecx, DWORD PTR [eax+edx+1]
  00632	51		 push	 ecx
  00633	8b 55 d4	 mov	 edx, DWORD PTR _hDC$[ebp]
  00636	52		 push	 edx
  00637	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__TextOutW@20
$LN1@DrawPagePr:

; 419  :         }
; 420  : 
; 421  :         SetTextColor(hDC, pThis->GetColourRef(Foreground));

  0063d	0f b6 45 cd	 movzx	 eax, BYTE PTR _Foreground$[ebp]
  00641	50		 push	 eax
  00642	8b 4d d0	 mov	 ecx, DWORD PTR _pThis$[ebp]
  00645	e8 00 00 00 00	 call	 ?GetColourRef@CVTDrawer@@AAEKE@Z ; CVTDrawer::GetColourRef
  0064a	50		 push	 eax
  0064b	8b 4d d4	 mov	 ecx, DWORD PTR _hDC$[ebp]
  0064e	51		 push	 ecx
  0064f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetTextColor@8

; 422  :         TextOutW(hDC, DrawRect.left + LeftOffset,
; 423  :             DrawRect.top - 1, (LPCWSTR)&UnicodeChar, 1);

  00655	6a 01		 push	 1
  00657	8d 55 b0	 lea	 edx, DWORD PTR _UnicodeChar$139952[ebp]
  0065a	52		 push	 edx
  0065b	8b 45 f4	 mov	 eax, DWORD PTR _DrawRect$[ebp+4]
  0065e	83 e8 01	 sub	 eax, 1
  00661	50		 push	 eax
  00662	8b 4d f0	 mov	 ecx, DWORD PTR _DrawRect$[ebp]
  00665	03 4d bc	 add	 ecx, DWORD PTR _LeftOffset$139957[ebp]
  00668	51		 push	 ecx
  00669	8b 55 d4	 mov	 edx, DWORD PTR _hDC$[ebp]
  0066c	52		 push	 edx
  0066d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__TextOutW@20
$LN17@DrawPagePr:

; 424  :     }
; 425  : 
; 426  :     return PARSE_CONTINUE;

  00673	32 c0		 xor	 al, al
$LN44@DrawPagePr:

; 427  : }

  00675	8b e5		 mov	 esp, ebp
  00677	5d		 pop	 ebp
  00678	c3		 ret	 0
?DrawPageProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ENDP ; CVTDrawer::DrawPageProc
_TEXT	ENDS
PUBLIC	?SetTransparencyColour@CVTDrawer@@QAEXK@Z	; CVTDrawer::SetTransparencyColour
; Function compile flags: /Odtp
;	COMDAT ?SetTransparencyColour@CVTDrawer@@QAEXK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_ColorRef$ = 8						; size = 4
?SetTransparencyColour@CVTDrawer@@QAEXK@Z PROC		; CVTDrawer::SetTransparencyColour, COMDAT
; _this$ = ecx

; 113  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 114  :     if (ColorRef != m_TransparencyColour)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _ColorRef$[ebp]
  0000d	3b 08		 cmp	 ecx, DWORD PTR [eax]
  0000f	74 1f		 je	 SHORT $LN2@SetTranspa

; 115  :     {
; 116  :         m_TransparencyColour = ColorRef;

  00011	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00014	8b 45 08	 mov	 eax, DWORD PTR _ColorRef$[ebp]
  00017	89 02		 mov	 DWORD PTR [edx], eax

; 117  :         DeleteObject(m_TransparencyBrush);

  00019	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001c	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0001f	52		 push	 edx
  00020	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 118  :         m_TransparencyBrush = NULL;

  00026	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00029	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], 0
$LN2@SetTranspa:

; 119  :     }
; 120  : }

  00030	8b e5		 mov	 esp, ebp
  00032	5d		 pop	 ebp
  00033	c2 04 00	 ret	 4
?SetTransparencyColour@CVTDrawer@@QAEXK@Z ENDP		; CVTDrawer::SetTransparencyColour
_TEXT	ENDS
PUBLIC	?SetAntialias@CVTDrawer@@QAEXH@Z		; CVTDrawer::SetAntialias
; Function compile flags: /Odtp
;	COMDAT ?SetAntialias@CVTDrawer@@QAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bAntialias$ = 8					; size = 4
?SetAntialias@CVTDrawer@@QAEXH@Z PROC			; CVTDrawer::SetAntialias, COMDAT
; _this$ = ecx

; 103  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 104  :     if (bAntialias != m_bAntialias)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _bAntialias$[ebp]
  0000d	3b 48 28	 cmp	 ecx, DWORD PTR [eax+40]
  00010	74 11		 je	 SHORT $LN2@SetAntiali

; 105  :     {
; 106  :         m_bAntialias = bAntialias;

  00012	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00015	8b 45 08	 mov	 eax, DWORD PTR _bAntialias$[ebp]
  00018	89 42 28	 mov	 DWORD PTR [edx+40], eax

; 107  :         DeleteFonts();

  0001b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001e	e8 00 00 00 00	 call	 ?DeleteFonts@CVTDrawer@@AAEXXZ ; CVTDrawer::DeleteFonts
$LN2@SetAntiali:

; 108  :     }
; 109  : }

  00023	8b e5		 mov	 esp, ebp
  00025	5d		 pop	 ebp
  00026	c2 04 00	 ret	 4
?SetAntialias@CVTDrawer@@QAEXH@Z ENDP			; CVTDrawer::SetAntialias
PUBLIC	?SetCodepage@CVTDrawer@@QAEXW4eVTCodepage@@@Z	; CVTDrawer::SetCodepage
; Function compile flags: /Odtp
;	COMDAT ?SetCodepage@CVTDrawer@@QAEXW4eVTCodepage@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Codepage$ = 8						; size = 4
?SetCodepage@CVTDrawer@@QAEXW4eVTCodepage@@@Z PROC	; CVTDrawer::SetCodepage, COMDAT
; _this$ = ecx

; 93   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 94   :     if (Codepage != m_CurrentCodepage)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _Codepage$[ebp]
  0000d	3b 48 3c	 cmp	 ecx, DWORD PTR [eax+60]
  00010	74 1c		 je	 SHORT $LN2@SetCodepag

; 95   :     {
; 96   :         CVTCharacterSet::GetCharacterSet(Codepage, m_CharacterSet);

  00012	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00015	83 c2 40	 add	 edx, 64			; 00000040H
  00018	52		 push	 edx
  00019	8b 45 08	 mov	 eax, DWORD PTR _Codepage$[ebp]
  0001c	50		 push	 eax
  0001d	e8 00 00 00 00	 call	 ?GetCharacterSet@CVTCharacterSet@@SAXW4eVTCodepage@@QAG@Z ; CVTCharacterSet::GetCharacterSet
  00022	83 c4 08	 add	 esp, 8

; 97   :         m_CurrentCodepage = Codepage;

  00025	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00028	8b 55 08	 mov	 edx, DWORD PTR _Codepage$[ebp]
  0002b	89 51 3c	 mov	 DWORD PTR [ecx+60], edx
$LN2@SetCodepag:

; 98   :     }
; 99   : }

  0002e	8b e5		 mov	 esp, ebp
  00030	5d		 pop	 ebp
  00031	c2 04 00	 ret	 4
?SetCodepage@CVTDrawer@@QAEXW4eVTCodepage@@@Z ENDP	; CVTDrawer::SetCodepage
_TEXT	ENDS
PUBLIC	??1CVTDrawer@@QAE@XZ				; CVTDrawer::~CVTDrawer
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CVTDrawer@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CVTDrawer@@QAE@XZ$0
__ehfuncinfo$??1CVTDrawer@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1CVTDrawer@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CVTDrawer@@QAE@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
_i$139813 = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CVTDrawer@@QAE@XZ PROC				; CVTDrawer::~CVTDrawer, COMDAT
; _this$ = ecx

; 82   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CVTDrawer@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 83   :     for (int i = 0; i < 8; i++)

  0002f	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$139813[ebp], 0
  00036	eb 09		 jmp	 SHORT $LN3@CVTDrawer
$LN2@CVTDrawer:
  00038	8b 45 f0	 mov	 eax, DWORD PTR _i$139813[ebp]
  0003b	83 c0 01	 add	 eax, 1
  0003e	89 45 f0	 mov	 DWORD PTR _i$139813[ebp], eax
$LN3@CVTDrawer:
  00041	83 7d f0 08	 cmp	 DWORD PTR _i$139813[ebp], 8
  00045	7d 13		 jge	 SHORT $LN1@CVTDrawer

; 84   :     {
; 85   :         DeleteObject(m_hColourBrush[i]);

  00047	8b 4d f0	 mov	 ecx, DWORD PTR _i$139813[ebp]
  0004a	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  0004d	8b 44 8a 08	 mov	 eax, DWORD PTR [edx+ecx*4+8]
  00051	50		 push	 eax
  00052	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteObject@4

; 86   :     }

  00058	eb de		 jmp	 SHORT $LN2@CVTDrawer
$LN1@CVTDrawer:

; 87   : 
; 88   :     DeleteFonts();

  0005a	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  0005d	e8 00 00 00 00	 call	 ?DeleteFonts@CVTDrawer@@AAEXXZ ; CVTDrawer::DeleteFonts

; 89   : }

  00062	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00069	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  0006c	e8 00 00 00 00	 call	 ??1CVTCommon@@QAE@XZ	; CVTCommon::~CVTCommon
  00071	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00074	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0007b	59		 pop	 ecx
  0007c	8b e5		 mov	 esp, ebp
  0007e	5d		 pop	 ebp
  0007f	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CVTDrawer@@QAE@XZ$0:
  00000	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CVTCommon@@QAE@XZ	; CVTCommon::~CVTCommon
__ehhandler$??1CVTDrawer@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CVTDrawer@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CVTDrawer@@QAE@XZ ENDP				; CVTDrawer::~CVTDrawer
PUBLIC	??0CVTDrawer@@QAE@XZ				; CVTDrawer::CVTDrawer
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CVTDrawer@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CVTDrawer@@QAE@XZ$0
__ehfuncinfo$??0CVTDrawer@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0CVTDrawer@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CVTDrawer@@QAE@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
_i$139806 = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0CVTDrawer@@QAE@XZ PROC				; CVTDrawer::CVTDrawer, COMDAT
; _this$ = ecx

; 55   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CVTDrawer@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ??0CVTCommon@@QAE@XZ	; CVTCommon::CVTCommon
  00030	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 56   :     m_hNormalFont = NULL;

  00037	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  0003a	c7 80 00 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+256], 0

; 57   :     m_hDoubleFont = NULL;

  00044	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	c7 81 04 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+260], 0

; 58   :     m_hNormalFontSmaller = NULL;

  00051	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  00054	c7 82 08 01 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+264], 0

; 59   :     m_hDoubleFontSmaller = NULL;

  0005e	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00061	c7 80 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+268], 0

; 60   : 
; 61   :     m_hLowQNormalFont = NULL;

  0006b	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  0006e	c7 81 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+272], 0

; 62   :     m_hLowQDoubleFont = NULL;

  00078	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  0007b	c7 82 14 01 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+276], 0

; 63   :     m_hLowQNormalFontSmaller = NULL;

  00085	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00088	c7 80 18 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+280], 0

; 64   :     m_hLowQDoubleFontSmaller = NULL;

  00092	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00095	c7 81 1c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+284], 0

; 65   : 
; 66   :     m_TransparencyColour = 0x00FF0000;

  0009f	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  000a2	c7 02 00 00 ff
	00		 mov	 DWORD PTR [edx], 16711680 ; 00ff0000H

; 67   :     m_TransparencyBrush = NULL;

  000a8	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  000ab	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], 0

; 68   : 
; 69   :     m_bAntialias = FALSE;

  000b2	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  000b5	c7 41 28 00 00
	00 00		 mov	 DWORD PTR [ecx+40], 0

; 70   :     m_CurrentCodepage = VTCODEPAGE_NONE;

  000bc	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  000bf	c7 42 3c ff ff
	ff ff		 mov	 DWORD PTR [edx+60], -1

; 71   : 
; 72   :     SetRectEmpty(&m_BoundsRect);

  000c6	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  000c9	83 c0 2c	 add	 eax, 44			; 0000002cH
  000cc	50		 push	 eax
  000cd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetRectEmpty@4

; 73   : 
; 74   :     for (int i = 0; i < 8; i++)

  000d3	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$139806[ebp], 0
  000da	eb 09		 jmp	 SHORT $LN3@CVTDrawer@2
$LN2@CVTDrawer@2:
  000dc	8b 4d f0	 mov	 ecx, DWORD PTR _i$139806[ebp]
  000df	83 c1 01	 add	 ecx, 1
  000e2	89 4d f0	 mov	 DWORD PTR _i$139806[ebp], ecx
$LN3@CVTDrawer@2:
  000e5	83 7d f0 08	 cmp	 DWORD PTR _i$139806[ebp], 8
  000e9	7d 1d		 jge	 SHORT $LN4@CVTDrawer@2

; 75   :     {
; 76   :         m_hColourBrush[i] = CreateSolidBrush(m_ColourTable[i]);

  000eb	8b 55 f0	 mov	 edx, DWORD PTR _i$139806[ebp]
  000ee	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?m_ColourTable@CVTDrawer@@0PAKA[edx*4]
  000f5	50		 push	 eax
  000f6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateSolidBrush@4
  000fc	8b 4d f0	 mov	 ecx, DWORD PTR _i$139806[ebp]
  000ff	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  00102	89 44 8a 08	 mov	 DWORD PTR [edx+ecx*4+8], eax
  00106	eb d4		 jmp	 SHORT $LN2@CVTDrawer@2
$LN4@CVTDrawer@2:

; 77   :     }
; 78   : }

  00108	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0010f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00112	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00115	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0011c	59		 pop	 ecx
  0011d	8b e5		 mov	 esp, ebp
  0011f	5d		 pop	 ebp
  00120	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CVTDrawer@@QAE@XZ$0:
  00000	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CVTCommon@@QAE@XZ	; CVTCommon::~CVTCommon
__ehhandler$??0CVTDrawer@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CVTDrawer@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CVTDrawer@@QAE@XZ ENDP				; CVTDrawer::CVTDrawer
PUBLIC	?FindPageNumberAtRowCol@CVTDrawer@@QAEGPAU_VTPage@@G@Z ; CVTDrawer::FindPageNumberAtRowCol
; Function compile flags: /Odtp
;	COMDAT ?FindPageNumberAtRowCol@CVTDrawer@@QAEGPAU_VTPage@@G@Z
_TEXT	SEGMENT
_this$ = -28						; size = 4
_nRow$ = -21						; size = 1
_wFlags$ = -20						; size = 2
_wPageHex$ = -16					; size = 2
_nCol$ = -9						; size = 1
_lpParam$ = -8						; size = 8
_pPage$ = 8						; size = 4
_wSearchRowCol$ = 12					; size = 2
?FindPageNumberAtRowCol@CVTDrawer@@QAEGPAU_VTPage@@G@Z PROC ; CVTDrawer::FindPageNumberAtRowCol, COMDAT
; _this$ = ecx

; 498  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 1c	 sub	 esp, 28			; 0000001cH
  00006	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 499  :     WORD wFlags = PARSE_HASDATAONLY | PARSE_REPEATDOUBLE;

  00009	b8 09 00 00 00	 mov	 eax, 9
  0000e	66 89 45 ec	 mov	 WORD PTR _wFlags$[ebp], ax

; 500  :     WORD wPageHex = 0xFFFF;

  00012	b9 ff ff 00 00	 mov	 ecx, 65535		; 0000ffffH
  00017	66 89 4d f0	 mov	 WORD PTR _wPageHex$[ebp], cx

; 501  : 
; 502  :     BYTE nRow = LOBYTE(wSearchRowCol);

  0001b	0f b7 55 0c	 movzx	 edx, WORD PTR _wSearchRowCol$[ebp]
  0001f	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00025	88 55 eb	 mov	 BYTE PTR _nRow$[ebp], dl

; 503  :     BYTE nCol = HIBYTE(wSearchRowCol);

  00028	0f b7 45 0c	 movzx	 eax, WORD PTR _wSearchRowCol$[ebp]
  0002c	c1 e8 08	 shr	 eax, 8
  0002f	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00034	88 45 f7	 mov	 BYTE PTR _nCol$[ebp], al

; 504  : 
; 505  :     if (nRow >= 25 || nCol >= 40)

  00037	0f b6 4d eb	 movzx	 ecx, BYTE PTR _nRow$[ebp]
  0003b	83 f9 19	 cmp	 ecx, 25			; 00000019H
  0003e	7d 09		 jge	 SHORT $LN5@FindPageNu@2
  00040	0f b6 55 f7	 movzx	 edx, BYTE PTR _nCol$[ebp]
  00044	83 fa 28	 cmp	 edx, 40			; 00000028H
  00047	7c 07		 jl	 SHORT $LN6@FindPageNu@2
$LN5@FindPageNu@2:

; 506  :     {
; 507  :         return 0;

  00049	33 c0		 xor	 eax, eax
  0004b	e9 82 00 00 00	 jmp	 $LN7@FindPageNu@2
$LN6@FindPageNu@2:

; 508  :     }
; 509  : 
; 510  :     LPVOID lpParam[2] = { &nCol, &wPageHex };

  00050	8d 45 f7	 lea	 eax, DWORD PTR _nCol$[ebp]
  00053	89 45 f8	 mov	 DWORD PTR _lpParam$[ebp], eax
  00056	8d 4d f0	 lea	 ecx, DWORD PTR _wPageHex$[ebp]
  00059	89 4d fc	 mov	 DWORD PTR _lpParam$[ebp+4], ecx

; 511  : 
; 512  :     if (nRow != 24)

  0005c	0f b6 55 eb	 movzx	 edx, BYTE PTR _nRow$[ebp]
  00060	83 fa 18	 cmp	 edx, 24			; 00000018H
  00063	74 20		 je	 SHORT $LN4@FindPageNu@2

; 513  :     {
; 514  :         ParseLineElements(pPage, nRow, &wFlags,
; 515  :             (TParserCallback*)FindPageNumberProc, lpParam);

  00065	8d 45 f8	 lea	 eax, DWORD PTR _lpParam$[ebp]
  00068	50		 push	 eax
  00069	68 00 00 00 00	 push	 OFFSET ?FindPageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDrawer::FindPageNumberProc
  0006e	8d 4d ec	 lea	 ecx, DWORD PTR _wFlags$[ebp]
  00071	51		 push	 ecx
  00072	0f b6 55 eb	 movzx	 edx, BYTE PTR _nRow$[ebp]
  00076	52		 push	 edx
  00077	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  0007a	50		 push	 eax
  0007b	e8 00 00 00 00	 call	 ?ParseLineElements@CVTCommon@@SAEPAU_VTPage@@EPAGP6AE0G1GEEPAX@Z2@Z ; CVTCommon::ParseLineElements
  00080	83 c4 14	 add	 esp, 20			; 00000014H

; 516  :     }
; 517  :     else

  00083	eb 1e		 jmp	 SHORT $LN3@FindPageNu@2
$LN4@FindPageNu@2:

; 518  :     {
; 519  :         ParseLineElements(pPage, nRow, &wFlags,
; 520  :             (TParserCallback*)FindRow24PageNumberProc, lpParam);

  00085	8d 4d f8	 lea	 ecx, DWORD PTR _lpParam$[ebp]
  00088	51		 push	 ecx
  00089	68 00 00 00 00	 push	 OFFSET ?FindRow24PageNumberProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDrawer::FindRow24PageNumberProc
  0008e	8d 55 ec	 lea	 edx, DWORD PTR _wFlags$[ebp]
  00091	52		 push	 edx
  00092	0f b6 45 eb	 movzx	 eax, BYTE PTR _nRow$[ebp]
  00096	50		 push	 eax
  00097	8b 4d 08	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0009a	51		 push	 ecx
  0009b	e8 00 00 00 00	 call	 ?ParseLineElements@CVTCommon@@SAEPAU_VTPage@@EPAGP6AE0G1GEEPAX@Z2@Z ; CVTCommon::ParseLineElements
  000a0	83 c4 14	 add	 esp, 20			; 00000014H
$LN3@FindPageNu@2:

; 521  :     }
; 522  : 
; 523  :     if ((wPageHex & 0xF00) == 0xF00 || (wPageHex & 0xF000) != 0xF000)

  000a3	0f b7 55 f0	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  000a7	81 e2 00 0f 00
	00		 and	 edx, 3840		; 00000f00H
  000ad	81 fa 00 0f 00
	00		 cmp	 edx, 3840		; 00000f00H
  000b3	74 10		 je	 SHORT $LN1@FindPageNu@2
  000b5	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageHex$[ebp]
  000b9	25 00 f0 00 00	 and	 eax, 61440		; 0000f000H
  000be	3d 00 f0 00 00	 cmp	 eax, 61440		; 0000f000H
  000c3	74 04		 je	 SHORT $LN2@FindPageNu@2
$LN1@FindPageNu@2:

; 524  :     {
; 525  :         return 0;

  000c5	33 c0		 xor	 eax, eax
  000c7	eb 09		 jmp	 SHORT $LN7@FindPageNu@2
$LN2@FindPageNu@2:

; 526  :     }
; 527  : 
; 528  :     return (WORD)(wPageHex & 0xFFF);

  000c9	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageHex$[ebp]
  000cd	25 ff 0f 00 00	 and	 eax, 4095		; 00000fffH
$LN7@FindPageNu@2:

; 529  : }

  000d2	8b e5		 mov	 esp, ebp
  000d4	5d		 pop	 ebp
  000d5	c2 08 00	 ret	 8
?FindPageNumberAtRowCol@CVTDrawer@@QAEGPAU_VTPage@@G@Z ENDP ; CVTDrawer::FindPageNumberAtRowCol
_TEXT	ENDS
PUBLIC	?FindPageNumberAtPoint@CVTDrawer@@QAEGPAU_VTPage@@PAUtagRECT@@PAUtagPOINT@@@Z ; CVTDrawer::FindPageNumberAtPoint
; Function compile flags: /Odtp
;	COMDAT ?FindPageNumberAtPoint@CVTDrawer@@QAEGPAU_VTPage@@PAUtagRECT@@PAUtagPOINT@@@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_wRowCol$ = -4						; size = 2
_pPage$ = 8						; size = 4
_lpDisplayRect$ = 12					; size = 4
_DisplayPoint$ = 16					; size = 4
?FindPageNumberAtPoint@CVTDrawer@@QAEGPAU_VTPage@@PAUtagRECT@@PAUtagPOINT@@@Z PROC ; CVTDrawer::FindPageNumberAtPoint, COMDAT
; _this$ = ecx

; 491  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 492  :     WORD wRowCol = GetRowColAtPoint(lpDisplayRect, DisplayPoint);

  00009	8b 45 10	 mov	 eax, DWORD PTR _DisplayPoint$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d 0c	 mov	 ecx, DWORD PTR _lpDisplayRect$[ebp]
  00010	51		 push	 ecx
  00011	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00014	e8 00 00 00 00	 call	 ?GetRowColAtPoint@CVTDrawer@@QAEGPAUtagRECT@@PAUtagPOINT@@@Z ; CVTDrawer::GetRowColAtPoint
  00019	66 89 45 fc	 mov	 WORD PTR _wRowCol$[ebp], ax

; 493  :     return FindPageNumberAtRowCol(pPage, wRowCol);

  0001d	0f b7 55 fc	 movzx	 edx, WORD PTR _wRowCol$[ebp]
  00021	52		 push	 edx
  00022	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  00025	50		 push	 eax
  00026	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ?FindPageNumberAtRowCol@CVTDrawer@@QAEGPAU_VTPage@@G@Z ; CVTDrawer::FindPageNumberAtRowCol

; 494  : }

  0002e	8b e5		 mov	 esp, ebp
  00030	5d		 pop	 ebp
  00031	c2 0c 00	 ret	 12			; 0000000cH
?FindPageNumberAtPoint@CVTDrawer@@QAEGPAU_VTPage@@PAUtagRECT@@PAUtagPOINT@@@Z ENDP ; CVTDrawer::FindPageNumberAtPoint
_TEXT	ENDS
PUBLIC	?DrawPage@CVTDrawer@@QAEXPAUHDC__@@PAUtagRECT@@PAU_VTPage@@GQAPAU_VTLeftRight@@QAEQAU3@PAE@Z ; CVTDrawer::DrawPage
; Function compile flags: /Odtp
;	COMDAT ?DrawPage@CVTDrawer@@QAEXPAUHDC__@@PAUtagRECT@@PAU_VTPage@@GQAPAU_VTLeftRight@@QAEQAU3@PAE@Z
_TEXT	SEGMENT
_this$ = -56						; size = 4
_hSelectedFont$ = -52					; size = 4
_wParsePageFlags$ = -48					; size = 2
_hSaveFont$ = -44					; size = 4
_lpParams$ = -40					; size = 36
_hSaveBrush$ = -4					; size = 4
_hDC$ = 8						; size = 4
_lpRect$ = 12						; size = 4
_pPage$ = 16						; size = 4
_uFlags$ = 20						; size = 2
_pHilightList$ = 24					; size = 4
_pDoubleProfile$ = 28					; size = 4
_pRefreshProfile$ = 32					; size = 4
_pRefreshCount$ = 36					; size = 4
?DrawPage@CVTDrawer@@QAEXPAUHDC__@@PAUtagRECT@@PAU_VTPage@@GQAPAU_VTLeftRight@@QAEQAU3@PAE@Z PROC ; CVTDrawer::DrawPage, COMDAT
; _this$ = ecx

; 126  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 38	 sub	 esp, 56			; 00000038H
  00006	89 4d c8	 mov	 DWORD PTR _this$[ebp], ecx

; 127  :     WORD wParsePageFlags = PARSE_REPEATDOUBLE;

  00009	b8 08 00 00 00	 mov	 eax, 8
  0000e	66 89 45 d0	 mov	 WORD PTR _wParsePageFlags$[ebp], ax

; 128  : 
; 129  :     if (uFlags & VTDF_UPDATEDONLY)

  00012	0f b7 4d 14	 movzx	 ecx, WORD PTR _uFlags$[ebp]
  00016	83 e1 20	 and	 ecx, 32			; 00000020H
  00019	74 0b		 je	 SHORT $LN5@DrawPage

; 130  :     {
; 131  :         wParsePageFlags |= PARSE_UPDATEDONLY;

  0001b	0f b7 55 d0	 movzx	 edx, WORD PTR _wParsePageFlags$[ebp]
  0001f	83 ca 02	 or	 edx, 2
  00022	66 89 55 d0	 mov	 WORD PTR _wParsePageFlags$[ebp], dx
$LN5@DrawPage:

; 132  :     }
; 133  :     if (uFlags & VTDF_FORCEHEADER)

  00026	0f b7 45 14	 movzx	 eax, WORD PTR _uFlags$[ebp]
  0002a	83 e0 40	 and	 eax, 64			; 00000040H
  0002d	74 0b		 je	 SHORT $LN4@DrawPage

; 134  :     {
; 135  :         wParsePageFlags |= PARSE_FORCEHEADER;

  0002f	0f b7 4d d0	 movzx	 ecx, WORD PTR _wParsePageFlags$[ebp]
  00033	83 c9 04	 or	 ecx, 4
  00036	66 89 4d d0	 mov	 WORD PTR _wParsePageFlags$[ebp], cx
$LN4@DrawPage:

; 136  :     }
; 137  :     if (uFlags & VTDF_CLOCKONLY)

  0003a	0f b7 55 14	 movzx	 edx, WORD PTR _uFlags$[ebp]
  0003e	81 e2 00 01 00
	00		 and	 edx, 256		; 00000100H
  00044	74 0d		 je	 SHORT $LN3@DrawPage

; 138  :     {
; 139  :         uFlags |= VTDF_HEADERONLY;

  00046	0f b7 45 14	 movzx	 eax, WORD PTR _uFlags$[ebp]
  0004a	0d 80 00 00 00	 or	 eax, 128		; 00000080H
  0004f	66 89 45 14	 mov	 WORD PTR _uFlags$[ebp], ax
$LN3@DrawPage:

; 140  :     }
; 141  : 
; 142  :     if (pRefreshCount != NULL)

  00053	83 7d 24 00	 cmp	 DWORD PTR _pRefreshCount$[ebp], 0
  00057	74 08		 je	 SHORT $LN2@DrawPage

; 143  :     {
; 144  :         *pRefreshCount = 0;

  00059	8b 4d 24	 mov	 ecx, DWORD PTR _pRefreshCount$[ebp]
  0005c	c6 01 00	 mov	 BYTE PTR [ecx], 0

; 145  :     }
; 146  :     else

  0005f	eb 07		 jmp	 SHORT $LN1@DrawPage
$LN2@DrawPage:

; 147  :     {
; 148  :         pRefreshProfile = NULL;

  00061	c7 45 20 00 00
	00 00		 mov	 DWORD PTR _pRefreshProfile$[ebp], 0
$LN1@DrawPage:

; 149  :     }
; 150  : 
; 151  :     SetBounds(hDC, lpRect);

  00068	8b 55 0c	 mov	 edx, DWORD PTR _lpRect$[ebp]
  0006b	52		 push	 edx
  0006c	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  0006f	50		 push	 eax
  00070	8b 4d c8	 mov	 ecx, DWORD PTR _this$[ebp]
  00073	e8 00 00 00 00	 call	 ?SetBounds@CVTDrawer@@AAEXPAUHDC__@@PAUtagRECT@@@Z ; CVTDrawer::SetBounds

; 152  : 
; 153  :     HFONT hSelectedFont = m_hNormalFont;

  00078	8b 4d c8	 mov	 ecx, DWORD PTR _this$[ebp]
  0007b	8b 91 00 01 00
	00		 mov	 edx, DWORD PTR [ecx+256]
  00081	89 55 cc	 mov	 DWORD PTR _hSelectedFont$[ebp], edx

; 154  : 
; 155  :     LPVOID lpParams[9] = { hDC, lpRect, (LPVOID)uFlags, &hSelectedFont,

  00084	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  00087	89 45 d8	 mov	 DWORD PTR _lpParams$[ebp], eax
  0008a	8b 4d 0c	 mov	 ecx, DWORD PTR _lpRect$[ebp]
  0008d	89 4d dc	 mov	 DWORD PTR _lpParams$[ebp+4], ecx
  00090	0f b7 55 14	 movzx	 edx, WORD PTR _uFlags$[ebp]
  00094	89 55 e0	 mov	 DWORD PTR _lpParams$[ebp+8], edx
  00097	8d 45 cc	 lea	 eax, DWORD PTR _hSelectedFont$[ebp]
  0009a	89 45 e4	 mov	 DWORD PTR _lpParams$[ebp+12], eax

; 156  :                            pHilightList, pDoubleProfile, pRefreshProfile,

  0009d	8b 4d 18	 mov	 ecx, DWORD PTR _pHilightList$[ebp]
  000a0	89 4d e8	 mov	 DWORD PTR _lpParams$[ebp+16], ecx
  000a3	8b 55 1c	 mov	 edx, DWORD PTR _pDoubleProfile$[ebp]
  000a6	89 55 ec	 mov	 DWORD PTR _lpParams$[ebp+20], edx
  000a9	8b 45 20	 mov	 eax, DWORD PTR _pRefreshProfile$[ebp]
  000ac	89 45 f0	 mov	 DWORD PTR _lpParams$[ebp+24], eax

; 157  :                            pRefreshCount, this };

  000af	8b 4d 24	 mov	 ecx, DWORD PTR _pRefreshCount$[ebp]
  000b2	89 4d f4	 mov	 DWORD PTR _lpParams$[ebp+28], ecx
  000b5	8b 55 c8	 mov	 edx, DWORD PTR _this$[ebp]
  000b8	89 55 f8	 mov	 DWORD PTR _lpParams$[ebp+32], edx

; 158  : 
; 159  :     HGDIOBJ hSaveFont = SelectObject(hDC, hSelectedFont);

  000bb	8b 45 cc	 mov	 eax, DWORD PTR _hSelectedFont$[ebp]
  000be	50		 push	 eax
  000bf	8b 4d 08	 mov	 ecx, DWORD PTR _hDC$[ebp]
  000c2	51		 push	 ecx
  000c3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
  000c9	89 45 d4	 mov	 DWORD PTR _hSaveFont$[ebp], eax

; 160  :     HGDIOBJ hSaveBrush = SelectObject(hDC, GetColourBrush(VTCOLOR_BLACK));

  000cc	6a 00		 push	 0
  000ce	8b 4d c8	 mov	 ecx, DWORD PTR _this$[ebp]
  000d1	e8 00 00 00 00	 call	 ?GetColourBrush@CVTDrawer@@AAEPAUHBRUSH__@@E@Z ; CVTDrawer::GetColourBrush
  000d6	50		 push	 eax
  000d7	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  000da	52		 push	 edx
  000db	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8
  000e1	89 45 fc	 mov	 DWORD PTR _hSaveBrush$[ebp], eax

; 161  : 
; 162  :     SetBkMode(hDC, TRANSPARENT);

  000e4	6a 01		 push	 1
  000e6	8b 45 08	 mov	 eax, DWORD PTR _hDC$[ebp]
  000e9	50		 push	 eax
  000ea	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetBkMode@8

; 163  : 
; 164  :     ParsePageElements(pPage, &wParsePageFlags,
; 165  :         (TParserCallback*)DrawPageProc, lpParams);

  000f0	8d 4d d8	 lea	 ecx, DWORD PTR _lpParams$[ebp]
  000f3	51		 push	 ecx
  000f4	68 00 00 00 00	 push	 OFFSET ?DrawPageProc@CVTDrawer@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDrawer::DrawPageProc
  000f9	8d 55 d0	 lea	 edx, DWORD PTR _wParsePageFlags$[ebp]
  000fc	52		 push	 edx
  000fd	8b 45 10	 mov	 eax, DWORD PTR _pPage$[ebp]
  00100	50		 push	 eax
  00101	e8 00 00 00 00	 call	 ?ParsePageElements@CVTCommon@@SAEPAU_VTPage@@PAGP6AE0G1GEEPAX@Z2@Z ; CVTCommon::ParsePageElements
  00106	83 c4 10	 add	 esp, 16			; 00000010H

; 166  : 
; 167  :     SelectObject(hDC, hSaveBrush);

  00109	8b 4d fc	 mov	 ecx, DWORD PTR _hSaveBrush$[ebp]
  0010c	51		 push	 ecx
  0010d	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  00110	52		 push	 edx
  00111	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8

; 168  :     SelectObject(hDC, hSaveFont);

  00117	8b 45 d4	 mov	 eax, DWORD PTR _hSaveFont$[ebp]
  0011a	50		 push	 eax
  0011b	8b 4d 08	 mov	 ecx, DWORD PTR _hDC$[ebp]
  0011e	51		 push	 ecx
  0011f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SelectObject@8

; 169  : }

  00125	8b e5		 mov	 esp, ebp
  00127	5d		 pop	 ebp
  00128	c2 20 00	 ret	 32			; 00000020H
?DrawPage@CVTDrawer@@QAEXPAUHDC__@@PAUtagRECT@@PAU_VTPage@@GQAPAU_VTLeftRight@@QAEQAU3@PAE@Z ENDP ; CVTDrawer::DrawPage
END
